Tecniche innovative per l'estensione delle piattaforme
object-oriented. Individuazione di tecniche di programmazione
avanzate per piattaforme di programmazione orientate agli oggetti
come Java.
Ingegneria di sistemi distribuiti complessi orientata agli
agenti. Individuazione di modelli e tecnologie per la
co-progettazione delle astrazioni di agente ed artefatto, e la
individuazione e formalizzazione di linguaggi per la specifica
delle loro proprietà e per la loro implementazione.
Modelli di coordinazione. Utilizzo sistematico di tecniche
di modellazione formale per la specifica di sistemi di
coordinazione, usate come base per l'analisi di proprietà e per la
costruzione di sistemi corretti.
Sistemi auto-organizzanti. Studio di soluzioni
auto-organizzanti nel contesto dei sistemi multi-agente, nei
modelli di coordinazione, e nel pervasive computing.
Tecniche innovative per l'estensione delle piattaforme
object-oriented
L'attuale riferimento per lo sviluppo di software nell'ambito di
applicazioni distribuite su architetture eterogenee, è costituito
da piattaforme quali Java e .NET, che forniscono: (i) una macchina
virtuale (VM) eseguibile su ogni dispositivo o nodo della rete,
(ii) un linguaggio di programmazione ad alto livello basato sul
paradigma object-oriented (Java e C#), (iii) un insieme di librerie
e strumenti avanzati per facilitare lo sviluppo e il deployment di
applicazioni distribuite complesse. Queste piattaforme, utilizzate
da milioni di sviluppatori, sono lo standard di fatto nella
programmazione di molte applicazioni, e si evolvono continuamente
per soddisfare i crescenti requirement di espressività,
mantenibilità, e flessibilità tipici delle applicazioni
moderne. Le linee di ricerca in questo contesto riguardano:
- Supporto run-time dei tipi generici - Sviluppo di tecniche
innovative peril supporto a tempo di esecuzione del meccanismo dei
generici, sia tramite un approccio a compilazione che tramite una
estensione della Java Virtual Machine
- Tipi parametrici varianti e Java wildcards - Studio e
introduzione degli aspetti teorici e pragmatici di questo
meccanismo di "unificazione" del polimorfismo parametrico e del
polimorfismo inclusivo.
- Polimorfismo a famiglie - Sviluppo di un approccio per
estendere una gerarchia di classi creando una nuova gerarchia
specializzata in cui tutte le relazioni fra le sottoclassi (di
ereditarietà e delegazione) vengano preservate senza incorrere nel
noto problema della covarianza, e quindi supportando funzionalità
tipiche dei sistemi a componenti
- Programmazione multi-paradigma - Esplorazione di estensioni
logiche e orientate agli agenti del linguaggio Java
Ingegneria di sistemi distribuiti complessi orientata agli
agenti
Il campo di ricerca dei sistemi multi-agente, originato
dall'intelligenza artificiale distribuita e poi influenzato
dall'ingeneria del software, promuove l'idea di analizzare,
progettare, e implementare i sistemi software in termini di agenti
autonomi (ognuno dei quali proattivamente esegue un certo task e/o
cerca di raggiungere un certo goal) che comunicano tra di loro per
raggiungere un goal sociale, ossia l'obbiettivo dell'intero
sistema. Una attività di ricerca svolta in questo campo parte dal
riconoscimento del ruolo fondamentale dell'ambiente (environment)
nei sistemi multi-agente (un pattern ispirato ai sistemi
complessi), non solo come luogo superimposto dove avviene il
deployment dell'applicazione, ma come oggetto della progettazione,
e che come tale richiede appropriate astrazioni per essere
modellato, e infrastrutture/tecnologie per essere realizzato. Le
linee di ricerca in questo contesto riguardano:
- Environment e infrastrutture - Studio di metododologie e
infrastrutture per incorporare l'environment come entità di prima
classe nell'ingegneria di sistemi ad agenti
- Artefatti e modello A&A - Identificando nella nozione di
artefatto l'astrazione fondamentale per supportare l'environment,
in questa tematiche se ne studiano gli aspetti fondazionali, e il
supporto a livallo di linguaggio di programmazione e di
infrastruttura.
- Agent Coordination Context - Introduzione di una astrazione per
supportare organizzazione, sicurezza e coordinazione nei sistemi ad
agenti.
Modelli di coordinazione
La coordinazione è uno dei temi più pervasivi e multidisciplinari
della moderna ricerca informatica e non, e tratta dell'introduzione
di modelli, linguaggi e piattaforme per la gestione delle
interazioni fra componenti software. Nata nel contesto di
architetture parallele col modello Linda, è stata poi utilizzata in
tecnologie di coordinazione come TuCSoN. In particolare, i modelli
e le tecnologie
introdotte nel campo di ricerca dei "coordination models and
languages", si candidano ad essere fra i principali strumenti con
cui costruire e gestire l'ambiente in un sistema multi-agente, per
via del loro focus sulla gestione delle interazioni in sistemi
distribuiti. Le linee di ricerca in questo contesto
riguardano:
- Modelli di coordinazione avanzati - In questa linea di ricerca
si studiano nuovi modelli di coordinazione ed estensioni dei
modelli esistenti
- Artefatto di coordinazione - Questa astrazione, caso
particolare di artefatto, consente di creare un ponte fra il campo
di ricerca dei sistemi ad agente e dei modelli di
coordinazione
- Coordinazione come servizio. Riconoscendo la possibilità di
fornire la coordinazione come servizio, attraverso una
infrastruttura, in questa linea di ricerca si analizzano le
relazione con framework diversi quali approcci algebrici o
infrastrutture service-oriented.
Sistemi auto-organizzanti
Nelle applicazioni moderne, i modelli di coordinazione per sistemi
distribuiti devono sempre più di frequente fronteggiare
l'impredicibilità di comportamento di parti del sistema fuori dal
controllo della progettazione, sia per motivi di legacy che di
deployment. Caratteristiche quali robustezza ai guasti e
adattatività a impreviste situazioni, diventano molto più critiche
rispetto a caratteristiche di performance, e quindi ispirano
implementazioni di servizi di coordinazione basati su tecniche
innovative, legate a modelli di auto-organizzazione. In questo tipo
di approccio, un sistema è realizzato da sottoparti che
interagiscono localmente sulla base di comportamenti estremamente
esemplici, col risultato però di far "emergere" a livello globale
proprietà di interesse. Questo contesto richiede strumenti di
analisi e progettazione innovativi per esempio basati su
simulazioni che consentono una previsione qualitativa e
quantitativa del funzionamento del sistema, una individuazione
anticipata di eventuali errori di design, e quindi una più rapida
progettazione di sistemi corretti.
- Sistemi multi-agente auto-organizzanti - Introduzione di un
approccio metodologico per la progettazione e verifica di sistemi
multi-agente dotati di caratteristiche di auto-organizzazione
- Auto-organizzazione e coordinazione - Studio di meccanismi
auto-organizzanti per il posizionamento di tuple in sistemi di
coordinazione.
- Ecosistemi di Servizi Pervasivi - Studio di modelli e
progettazione di infrastrutture per gli ecosistemi
auto-organizzanti di servizi pervasivi