Dottorato di Ricerca in Ingegneria dell’Informazione
XVIII Ciclo
Ferrari Luca
Curriculum:
Informatica
Titolo della Ricerca da svolgere:
Paradigmi e tecniche di interazione in applicazioni multi-agente
Interaction paradigms and techniques in multi-agent applications
Tutor:
prof.ssa Letizia Leonardi
Breve descrizione dell’attività di ricerca svolta nel triennio del XVIII ciclo di dottorato:
L’attività di ricerca condotta si è concentrata fondamentalmente sullo studio dei principali
paradigmi e tecniche per la modellazione e implementazione delle interazioni nei sistemi multiagente. La ricerca si è da subito focalizzata nello studio dei sistemi a ruoli che, sfruttando il
concetto di ruolo come astrazione per la definizione di uno stereotipo di comportamenti comuni ad
agenti diversi, consentono un facile riutilizzo di modelli, soluzioni, esperienze e codice.
Durante il primo anno si è proceduto con uno studio volto ad individuare lo stato dell’arte nei
sistemi a ruoli per agenti; tale studio ha consentito di individuare limitazioni e pregi dei sistemi
esistenti, consentendo la definizione e l’implementazione di un sistema a ruoli avanzato. Con le
conoscenze acquisite, e partendo dal framework BRAIN, si è implementato un sistema a ruoli Java
altamente dinamico e ispirato alla vita reale, denominato RoleX,.
Il secondo anno ha visto l’affinamento dello studio sullo stato dell’arte già condotto, e molto
importanti a tale scopo si sono rivelate le conoscenze e le esperienze acquisite con la partecipazione
a diverse conferenze sul tema. L’attenzione si è rivolta ad aspetti legati alla sicurezza, consentendo
di formalizzare un approccio per la valutazione della fiducia in interazione role-based.
Analogamente, l’utilizzo di tecniche Java per l’autenticazione e l’autorizzazione hanno portato alla
definizione di tecniche e modelli per consentire l’implementazione di ruoli sicuri. In particolare, si è
tenuta in considerazione la differente granularità richiesta dai ruoli nelle svariate applicazioni, al
fine di consentire un effettivo riutilizzo del codice.
Parallelamente, si è proceduto all’implementazione di un’applicazione per la messaggistica basata
su agenti mobili. Lo sviluppo di una simile applicazione ha consentito di dimostrare l’efficacia del
paradigma ad agenti mobili per l’integrazione e il sostegno delle attività umane, prima fra tutti la
comunicazione, come peraltro già enfatizzato da applicazioni di Workflow Management.
Il terzo anno ha consentito di consolidare le nozioni e i risultati conseguiti negli anni precedenti.
L’attenzione si è nuovamente volta a RoleX, la cui implementazione è stata gradualmente migrata e
inclusa in una piattaforma ad agenti mobili (Aglets), con lo scopo di semplificare e uniformare lo
sviluppo di applicazioni multi-agente, anche role-based. Contemporaneamente, diverse modifiche
sono state applicate al codice della piattaforma ad agenti in questione, sotto la gestione del progetto
Aglets-Sourceforge.net, consentendo così di apprendere meglio le tecniche implementative che un
simile sistema coinvolge.
Il terzo anno è stato anche caratterizzato dallo studio dei sistemi per Ambient Intelligence,
relativamente al progetto LAICA, ove si sono studiati e progettati sistemi ad agenti e middleware
per AmI in contesto urbano.
Infine, considerato il largo utilizzo di Java nei sistemi ad agenti mobili, si è proceduto allo studio di
tecniche di migrazione dei processi (thread) Java, sia basate su modifiche della virtual machine che
non, concentrando l’attenzione in particolare su questo ultimo caso. Lo studio si è indirizzato sulla
virtual machine sperimentale JikesRVM, prodotta da IBM e quasi interamente realizzata in Java.
Una serie di pubblicazioni scientifiche e di partecipazione a congressi e seminari, rappresentano i
risultati conseguiti in questo triennio di ricerca.
Partecipazioni a progetti nazionali ed internazionali:



IS-MANET: Infrastrutture per reti ad-hoc mobili, progetto CNR-MIUR, anni 2003-2005;
Fiducia e Diritto nella società dell'Informazione: Promozione e Tutela Giuridica della
Fiducia nel Mercato, nelle Istituzioni e nell'Infrastruttura Tecnologica, progetto PRIN del
MIUR, anni 2004-2005;
LAICA: Laboratorio di Ambient Intelligence per una Città Amica, progetto regionale
Emilia Romagna, anni 2004-2006;
Partecipazioni a congressi e workshop internazionali e nazionali (per presentazione lavori):







The Fourth International Joint Conference on Agents and Multi Agent Systems (AAMAS),
Luglio 2005, Utrecht, Olanda;
The Eighth International Workshop on Cooperative Information Agents (CIA), Ottobre
2004, Erfurt, Germania;
The Third ACM International Conference on Principles and Practice of Programming Java
(PPPJ), Giugno 2004, Las Vegas, U.S.A.;
The IEEE 13th International Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises (WETICE), Giugno 2004, Modena, Italia;
The first European Workshop on Multi Agent Systems (EUMAS), Dicembre 2003, Oxford,
Inghilterra;
The International Conference on Systems, Man and Cybernetics (SMC), Ottobre 2003,
Washington D.C., U.S.A.;
The Second ACM International Conference on Principles and Practice of Programming Java
(PPPJ), Giugno 2003, Kilkenny City, Irlanda.
Partecipazioni a congressi e scuole internazionali e nazionali (per studio-approfondimento):
 18 – 25 Luglio 2005: The Seventh European Agent Systems Summer School (EASSS05),
scuola estiva sui sistemi ad agenti, tenutasi a Utrecht, The Netherlands.
 24 Giugno 2005: Mobile Agents for Mobile Ubiquitous Computing, Ichiro Satoh, seminario
svoltosi presso il Dip. di Elettronica, Informatica e Sistemistica dell’Università degli Studi
di Bologna.
 6 Aprile 2005: Constructing Agent Systems, Marcin Paprzycky. Seminario svoltosi presso il
Dip. di Matematica Pura ed Applicata dell’Università di Modena e Reggio Emilia.
 17 Giugno 2004, Introduction to Distributed Java - J2EE and CORBA, Markus Aleksy, Ralf
Gitzel and Martin Schader. Tutorial svoltosi presso la conferenza The 3rd International
Conference on the Principles and Practice of Programming in JavaTM (PPPJ), Las Vegas,
USA.
 7 Marzo 2003, Linux: Problematiche dei Sistemi Embedded & Real Time, seminario svoltosi
presso l’Università degli Studi di Modena e Reggio Emilia.
Attività didattica:
 Seminario introduttivo sul linguaggio Java, 19 Ottobre 2005
Il seminario, svolto nell’ambito del corso di Principi di Sistemi Operativi della prof.ssa Letizia
Leonardi, ha presentato agli studenti i principi della programmazione ad oggetti e gli elementi di
base della programmazione Java. Sono stati presentati in particolare concetti e astrazioni quali:
classi, metodi, variabili di istanza e di classe, interfacce, classi astratte, eccezioni, asserzioni. Un
breve confronto fra Java e altri linguaggi, quali C, C++ e Perl ha concluso il seminario.
 Attività di supporto alla didattica per il corso di Fondamenti di Informatica C, Ing. G. Cabri,
Maggio – Giugno 2005
Esercitazioni guidate al calcolatore per l’apprendimento del paradigma di programmazione ad
oggetti (OOP) con particolare riferimento al linguaggio Java. Gli argomenti trattati hanno spaziato
dai tipi di dato astratto realizzati in linguaggi non esplicitamente OOP, alla programmazione Java
multithreaded, di rete (socket TCP/UDP), creazione di interfacce grafiche (GUI), Input/Output.
strutture dati complesse quali alberi e liste.
 Seminario dal titolo: “Tecnologie ad Agenti Mobili”, 16 Marzo 2005
Il seminario, svolto nell’ambito del corso di Sistemi Software Distribuiti dell’Ing. Giacomo Cabri,
ha presentato agli studenti il paradigma ad agenti mobili. Dopo una accurata introduzione sulle
motivazioni, i vantaggi e gli svantaggi del paradigma ad agenti mobili, il seminario ha presentato
applicazioni concrete, illustrando agli studenti le tecniche implementative, i problemi di sicurezza e
l’esecuzione di tali applicazioni. Si è poi presa in esame la piattaforma ad agenti mobili Aglets,
della quale ne sono stati presentati fattori di usabilità e di implementazione interna.
 Esercitatore per il corso di Sistemi Operativi, prof.ssa L. Leonardi, Febbraio – Marzo 2005
Esercitazioni in aula su programmazione Bourne Shell e C per Unix. Sono stati trattati in particolare
le primitive base Unix per la gestione di processi, Input/Output e sincronizzazione messe a
disposizione nella programmazione shell e C.
 Attività di supporto alla didattica per il corso di Sistemi Operativi, prof.ssa L. Leonardi, Febbraio
- Marzo 2005
Attività di sostegno al calcolatore, svolta su sistemi SUN dotati di Solaris 9, con particolare
riferimento alla programmazione Bourne Shell e C concorrente.
 Seminario dal titolo: “J2SE 5: l’evoluzione di Java”, 20 Dicembre 2004
Il seminario, svolto nell’ambito del corso di Linguaggi per la Programmazione ad Oggetti ed esteso
poi all’intero dipartimento di Ingegneria, ha coperto le principali novità sintattiche e semantiche
della nuova piattaforma di sviluppo Java, con particolare riferimento all’uso e alla progettazione
tramite Generics e General Purpose Annotations. Ha completato il seminario una spiegazione
introduttiva alle tecniche di garbage collection, con esempi pratici sull’analisi del garbage collector
in una JVM SUN.
 Seminario introduttivo sul linguaggio Java, 20 Ottobre 2004
Il seminario, svolto nell’ambito del corso di Principi di Sistemi Operativi, ha introdotto gli studenti
alla programmazione ad oggetti ed al linguaggio Java, coprendone la storia e l’evoluzione, nonché
argomenti quali ereditarietà, polimorfismo, gestione degli errori (eccezioni e asserzioni), gestione
dei package.
 Attività di supporto alla didattica per il corso di Fondamenti di Informatica C, Ing. G. Cabri,
Maggio – Giugno 2004
Esercitazioni guidate in laboratorio per l’apprendimento del paradigma di programmazione ad
oggetti (OOP) e del linguaggio Java. Gli argomenti trattati hanno coperto in particolare il sistema di
ereditarietà del linguaggio, tecniche di Input/Output, creazione di interfacce grafiche (GUI) e
gestione di strutture dati lineari e non (liste ed alberi).
 Attività di supporto alla didattica per il corso di Sistemi Operativi, prof.ssa L. Leonardi Febbraio
- Marzo 2004
Attività di sostegno ed esercitazioni guidate in laboratorio su sistemi Unix (Solaris 8/9) con
particolare riferimento allo scripting shell e alla programmazione concorrente in C.
 OT Consulting (via Calvi di Coenzo 12, 42100 Reggio Emilia) Seminario sulla programmazione
di applicazioni GUI in Java, Marzo 2003
Seminario della durata di un giorno sulle librerie standard di Java (AWT, Swing) per la
programmazione di applicativi dotati di GUI.
Pubblicazioni scientifiche (suddivise per riviste internazionali, capitoli di libri, conferenze e
workshop nazionali ed internazionali, rapporti tecnici):
Le pubblicazioni sotto elencate sono ordinate per data dalla più recente in modo decrescente.
Riviste e Journals
1. G. Cabri, L. Ferrari, L. Leonardi, Applying Security Policies Through Agent Roles: a JAAS
Based Approach, Science of Computer Programming, (Elsevier, Amsterdam-NL), ISSN:
0167-6423, 2005
2. G. Cabri, L. Ferrari, L. Leonardi, A Role-based Mobile-Agent Approach to Support EDemocracy, Applied Soft Computing, Vol. 6, No. 1, pp.85-99, November 2005
3. G. Cabri, L. Ferrari, L. Leonardi, Injecting Roles in Java Agents Through Run-Time
Bytecode Manipulation, IBM Systems Journal, Vol. 44, No. 1, pp.185-208, 2005
4. G. Cabri, L. Ferrari, L. Leonardi, Exploiting Run-Time Bytecode Manipulation to Add Roles
to Java Agents, Science of Computer Programming, (Elsevier, Amsterdam-NL), 2005 ISSN:
0167-6423, volume 54/1, pp.73-98
Capitoli di Libri
5. G. Cabri, L. Ferrari, L. Leonardi, M. Mamei, F. Zambonelli, Uncoupling Coordination: Tuplebased Models for Mobility, chapter of the book Mobile Middleware (CRC Press, London-UK),
Paolo Bellavista and Antonio Corradi editors, May 2006
6. G. Cabri, L. Ferrari, F. Zambonelli, Role-based Approaches for Engineering Interactions in
Largescale Multi-Agent Systems, invited chapter del libro Software Engineering for MultiAgent Systems II, Pereira de Lucena, Garcia, Romanovsky, Castro, and Alencar editors,
Lecture Notes in Computer Science n. 2940, pp. 243-263, April 2004
Conferenze Internazionali
7. G. Cabri, L. Ferrari, L. Leonardi, R. Quitadamo, Strong Agent Mobility for Aglets based on
the IBM JikesRVM, The 21st ACM International Symposium on Applied Computing (SAC),
Dijon, France, April 2006
8. G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, Connecting Ambient Intelligent
Components via Dedicated Middleware: an Agent Approach, Workshop on Ambient
Intelligence - Agents for Ubiquitous Environments at AAMAS 2005, Utrecht, The Netherlands,
Luglio 2005 (speaker)
9. G. Cabri, L. Ferrari, L. Leonardi, Supporting the Development of Multi-Agent Interactions
via Roles, The 6th International Workshop on Agent-Oriented Software Engineering (AOSE) at
AAMAS 2005, Utrecht, The Netherlands, Luglio 2005
10. G. Cabri, L. Ferrari, L. Leonardi, F. Zambonelli, The LAICA Project: Supportino Ambient
Intelligence via Agents and Ad-Hoc Middleware, The IEEE 14th International Workshops on
Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), Linkopping,
Sweden, June 2005
11. G. Cabri, L. Ferrari, L. Leonardi, Agent Roles in the BRAIN Framework: Rethinking Agent
Roles, The 2004 IEEE Systems, Man and Cybernetics Conference, session on Role-based
Collaboration, The Hague, The Netherlands, October 2004
12. G. Cabri, L. Ferrari, L. Leonardi, Agent Role-based Collaboration and Coordination: a
Survey About Existing Approaches, The 2004 IEEE Systems, Man and Cybernetics
Conference, session on Role-based Collaboration, The Hague, The Netherlands, October 2004
13. G. Cabri, L. Ferrari, L. Leonardi, The RoleX Environment for Multi-Agent Cooperation,
Eighth International Workshop CIA 2004 on Cooperative Information Agents, Erfurt, Germany,
September 2004, Lecture Notes in Artificial Intelligence N. 3191 (speaker)
14. G. Cabri, L. Ferrari, L. Leonardi, Role-based Approaches for Agent Development, Poster a
3rd Conference on Autonomous Agents and Multi Agent Systems (AAMAS), New York, USA,
July 2004
15. G. Cabri, L. Ferrari, L. Leonardi, Towards the Use of Mobile Agent Based Message
Systems, The IEEE 13th International Workshops on Enabling Technologies: Infrastructure for
Collaborative Enterprises (WETICE), Modena, Italy, June 2004 (speaker)
16. G. Cabri, L. Ferrari, L. Leonardi, Embedding JAAS in Agent Roles to Apply Local Security
Policies, The 3rd International Conference on the Principles and Practice of Programming in
JavaTM (PPPJ), Las Vegas, USA, June 2004 (speaker)
17. G. Cabri, L. Ferrari, L. Leonardi, Mailconfigurator: Automatic Configuration of E-Mail
Accounts Through Java Mobile Agents, short paper, The 3rd International Conference on the
Principles and Practice of Programming in JavaTM (PPPJ), Las Vegas, USA, June, 2004
(speaker)
18. G. Cabri, L. Ferrari, L. Leonardi, Role Agent Pattern: a Developer Guideline, The 2003 IEEE
Systems, Man and Cybernetics Conference, session on Role-based Collaboration, Washington
DC, USA, October 2003 (speaker)
19. G. Cabri, L. Ferrari, L. Leonardi, A Case Study in Role-based Agent Interactions, The IEEE
International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises
(WETICE), Linz, Austria, June 2003 - Best paper della sezione Agent Computing for Enterprise
Collaboration (ACEC)
20. G. Cabri, L. Ferrari, L. Leonardi, Manipulation of Java Agent Bytecode to Add Roles, The
2nd International Conference on the Principles and Practice of Programming in Java, Kilkenny
City, Ireland, June 2003 (speaker)
21. G. Cabri, L. Ferrari, L. Leonardi, Enabling Mobile Agents to Dynamically Assume Roles,
The 2003 ACM International Symposium on Applied Computing (SAC), Melbourne, Florida,
USA, March 2003
22. G. Cabri, L. Ferrari, L. Leonardi, BRAIN: a Framework for Flexible Role-Based Interactions
in Multiagent Systems, The First European Workshop on MultiAgent Systems, December
2003, Oxford, U.K.
Conferenze Nazionali
23. G. Cabri, L. Ferrari, L. Leonardi, Evaluating Trust Among Agents, Workshop Dagli oggetti
agli agenti: Sistemi Complessi e Agenti Razionali, Torino, November 2004
24. G. Cabri, F. Ferrari, L. Leonardi, A Case Study in Role-based Agent Interactions to Perform
Administrative Tasks, Workshop Dagli oggetti agli agenti: tendenze evolutive dei sistemi
software, Sardegna, September 2003
25. G. Cabri, F. Ferrari, L. Leonardi, How to Dynamically Add Roles to Agents, Workshop dagli
Oggetti agli Agenti (WOA): tendenze evolutive dei sistemi software, Milano, November 2002
Indirizzo di e-mail: [email protected]
Indirizzo sito web: http://www.agentgroup.ing.unimo.it/didattica/curriculum/luca