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