confronto tra due infrastrutture a ruoli per agenti Tesi di laurea di: Alberto Braglia Rolesystem e RoleX: confronto tra due infrastrutture a ruoli per agenti Obiettivo della tesi: Confrontare Rolesystem e RoleX, due infrastrutture a ruoli per agenti, attraverso la realizzazione di una applicazione scelta come caso di studio
Agenti Mobili: agenti che si muovono tra gli Cosa sono gli Agenti Agenti: entità software che portano a termine i loro compiti senza interagire continuamente con l’utente Agenti Mobili: agenti che si muovono tra gli host della rete Componenti attivi della rete Applicazioni distribuite Piattaforma
Ruolo: insieme di capacità e comportamenti attesi modellazione delle interazioni Database Updater Vantaggi: Riusabilità: i Ruoli permettono di separare gli aspetti algoritmici da quelli di interazione Sicurezza: i Ruoli permettono di applicare in modo semplice politiche locali agli agenti
Infrastruttura BRAIN (Behavioural Roles for Agent INteraction) XML-based notation Role-based interaction model BRAIN framework … Interaction infrastructure (implementation c) (implementation a) (implementation b) XML-based notation Role-based interaction model BRAIN framework … Interaction infrastructure (implementation c) (implementation a) (implementation b) XML-based notation Role-based interaction model BRAIN framework … Interaction infrastructure (implementation c) (implementation a) (implementation b) XML-based notation Role-based interaction model BRAIN framework RoleX Rolesystem … Interaction infrastructure (implementation c) Una notazione XML per la definizione delle caratteristiche dei ruoli: Leggibilità da parte degli utenti e degli agenti Interoperabilità tra sistemi differenti Un modello di interazione basato sui ruoli: i ruoli sono modellati attraveso un insieme di capacità (azioni) comportamenti attesi (eventi) Due implementazioni in Java: Rolesystem-piattaforma JADE RoleX-piattaforma IBM Aglets
Caso di studio Simulazione di una seduta d’asta reale Ruoli definiti: Contesto altamente dinamico Frequenti interazioni tra gli agenti Ruoli definiti: Auctioneer: gestisce l’asta Bidder: cerca di acquistare un prodotto sottoponendo le proprie offerte Seller: pone in vendita un bene
Schema delle interazioni Agent1 Agent4 Agent2 Agent3 StartSellEvent GoodOnSaleEvent GoodOnSaleEvent GoodOnSaleEvent BidEvent BidEvent SituationEvent SituationEvent BidEvent BidEvent AuctionOverEvent AuctionOverEvent AuctionOverEvent Role:Seller Role:Auctioneer Role:Bidder Role:Bidder
Rolesystem Agenti Ruoli soggetto Agente involucro Eventi ServerAgent Strato soggetto: agente all’interno del sistema a ruoli Strato involucro: agente della piattaforma JADE Ruoli Definizione mediante documenti XML Utilizzo di uno schema XLS ServerAgent Agente soggetto involucro Eventi RoleAction: name addressee content RoleEvent: name sender senderRole content KnownEvent: name senderRole contentClass Realizzazione di una classe astratta contenente le azioni e gli eventi riconoscibili.
Assunzione dei ruoli in Rolesystem Meccanismo di registrazione reqRegistration Server Agent MyAgent Registration Bidder Metodi classe Registration doAction: esegue azione listen: riceve un evento dismiss: rilascia la registrazione
RoleX (Role eXtension) Middleware da anteporre alla piattaforma con comunicazioni event-driven Agenti Svincolati dalla piattaforma Ruoli Interfaccia Java Classe di implementazione Java Descrittori di ruolo XML Eventi Classi Java che estendono la classe GenericEvent Identificativo del mittente Allegato che estende la classe Java Object
Assunzione dei ruoli in RoleX Fusione del bytecode del ruolo con quello dell’agente Agente originale Catalogo dei descrittori Agente manipolato
Confronto: righe di codice Righe di codice necessarie all'implementazione degli agenti Righe di codice necessarie all'implementazione dei ruoli Rolesystem RoleX Nome Righe livello involucro Righe livello Soggetto Righe comportamento successivo Totale Righe di codice AuctioneerAgent 17 211 16 244 221 ActorAgent 24 178 218 375 SellerAgent 20 91 127 99 61 480 48 589 695 Rolesystem RoleX Ruolo Righe di codice XML Righe interfaccia e implementazione Righe gestore di eventi Righe di codice XML del descrittore Totale Auctioneer 108 40 191 84 315 Bidder 62 81 97 218 Seller 45 50 54 93 197 215 130 326 274 730
Confronto: velocità acquisizione dei ruoli Ruolo RoleX Rolesystem Auctioneer 853 10 Bidder 1030 18 Seller 825 9 Ruolo RoleX Rolesystem Auctioneer 398 8 Bidder 382 9 Seller 381 10 Tempi di acquisizione dei ruoli in RoleX e Rolesystem in millisecondi Tempi di rilascio dei ruoli in RoleX e Rolesystem in millisecondi Ruolo RoleX Rolesystem Auctioneer 2113 2787 Bidder 2338 2371 Seller 1884 1861 Ruolo RoleX Rolesystem Auctioneer 2.48 278 Bidder 2.27 131 Seller 2.28 207 Bytecode dei ruoli utilizzati in bytes Velocità di assunzione dei ruoli in bytes/millisecondi
Confronto: velocità interazioni Evento RoleX Rolesystem GoodOnSaleEvent 36 21 BidEvent 31 47 SituationEvent 17 34 Evento RoleX Rolesystem GoodOnSaleEvent 725 1371 BidEvent 615 1220 SituationEvent 686 1330 Tempi di interazione in millisecondi Bytecode degli eventi scambiati in bytes Evento RoleX Rolesystem GoodOnSaleEvent 21 65 BidEvent 20 26 SituationEvent 40 39 Velocità nello scambio di eventi in bytes/millisecondo
Conclusioni Vantaggi Rolesystem: Vantaggi RoleX: Semplicità nell'implementazione dei ruoli Velocità acquisizione e rilascio dei ruoli da parte degli agenti Vantaggi RoleX: Elevato disaccoppiamento tra ruoli ed agenti Sviluppo di ruoli più modulari e portabili Elevata dinamicità nell'assunzione dei ruoli da parte degli agenti
Sviluppi futuri Rolesystem Utilizzo dei descrittori Miglioramento della gestione degli identificativi RoleX Velocizzare il processo di fusione del codice Semplificare le comunicazioni con il middleware