Foto del docente

Mirko Viroli

Professore ordinario

Dipartimento di Informatica - Scienza e Ingegneria

Settore scientifico disciplinare: ING-INF/05 SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Coordinatore del Corso di Laurea Magistrale in Ingegneria e scienze informatiche

Responsabile unità organizzativa di sede (UOS) Cesena — Dipartimento di Informatica — Scienza e Ingegneria

Temi di ricerca

Parole chiave: Linguaggi orientati agli oggetti Sistemi multiagente Simulazione e verifica Coordinazione Ingegneria del software Pervasive computing Auto-organizzazione Java

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

Ultimi avvisi

Al momento non sono presenti avvisi.