Università Politecnica delle Marche Corso di laurea magistrale in Ingegneria Informatica Relatore Prof. Aldo Franco Dragoni Correlatori Dott. Gianluigi Biancucci Dott. Luca Palazzo Candidato Marco Giuliani Introduzione Scenario: valutazione e confronto di framework per lo sviluppo di sistemi multi-agente Motivazione: necessità di utilizzare agenti in sistemi embedded in cui le limitazioni hardware impediscono l’esecuzione di una Java Virtual Machine Obiettivo: ricerca dei vantaggi e svantaggi derivanti dall’utilizzo di Mobile-C e di Jade, sia singolarmente che congiuntamente in un sistema ad agenti ibrido Stato dell’arte delle piattaforme per lo sviluppo di sistemi multi-agente Gran parte delle piattaforme basate su Java (Jade, Mole, Aglets, Concordia) Difficoltà di interfacciamento con hardware di basso livello Mobile-C è l’unica piattaforma che supporta agenti mobili C/C++ ad adottare uno standard internazionale Lo standard IEEE FIPA Organizzazione internazionale no-profit Fornisce standard per l’interoperatività di agenti eterogenei Non fornisce alcuna implementazione fisica, i cui dettagli dipendono dalle scelte degli sviluppatori Standard adottato da Mobile-C e da Jade Confronto qualitativo VS Distribuito secondo licenza LGPL Distribuito secondo licenza BSD Deve essere designato un “Main Container” come agenzia centrale Completamente decentralizzato, ogni agenzia è un peer a sé Libreria scritta completamente in Java Libreria scritta in C utilizzando le librerie proprietarie embedded CH Agenti scritti in Java Agenti scritti in C++ Richiede la presenza di una Java Virtual Machine Java Virtual Machine non necessaria Architettura Mobile-C Due tipi di agenti nel sistema: agenti stazionari (SA) e agenti mobili (MA) L’agent execution engine serve come ambiente di esecuzione per codice di MA AEE contiene l’interprete CH per eseguire il codice dell’agente mobile Le librerie Embedded CH per l’esecuzione di codice CH non sono gratuite (hanno un costo di 99$ per licenza) Modello di analisi delle prestazioni di sistemi ad agenti mobili Misurazioni su singolo host per evitare errori dovuti alle interconnessioni o ad eterogeneità di caratteristiche dei calcolatori Caratteristiche della macchina utilizzata per i test: CPU Intel Core i7 @1,60GHz architettura X86 RAM 4,00 GB S.O. Microsoft Windows 7 professional Viene fatto ricorso a carichi artificiali per l’esecuzione di alcuni test Confronto quantitativo Carico di memoria del framework in esecuzione Jade necessita del quintuplo della memoria rispetto a Mobile-C Confronto quantitativo Tempo di avvio del framework Mobile-C è quasi 7 volte più veloce in fase di avvio Confronto quantitativo Creazione di agenti stazionari Mobile-C circa 10 volte più veloce rispetto a Jade! Confronto quantitativo Creazione e migrazione di agenti mobili Comportamento assimilabile per un numero elevato di agenti Per ragioni di portabilità e sicurezza, gli agenti mobili C vengono eseguiti all’interno di un interprete CH, perciò il tempo di migrazione risente del tempo necessario ad interpretare il codice migrato Comunicazione cross-platform Sistema sviluppato Jade platform S Agente Server C Agente client Mobile-C platform C Agente client Jade platform Comunicazione cross-platform Tempi di comunicazione Degrado delle prestazioni contenuto Implementazione semplice anche per piattaforme eterogenee grazie al rispetto di specifiche FIPA Agevole costruzione di sistemi multi agente ibridi Conclusioni Mobile-C superiore in termini di prestazioni, ma migliorabile nel supporto e nella documentazione Jade più adatto per applicazioni IT, Mobile-C più adatto per sistemi embedded e real-time Ragioni economiche, non solo prestazionali Sviluppi futuri Migliorare complessivamente la velocità di risposta di sistemi ad agenti esistenti Possibilità di costruzione di sistemi multi-agente ibridi senza eccessivo degrado di prestazioni Grazie per l’attenzione