Mobile Agent and Enterprise Architecture Integration Il Gestore di Librerie e Servizi Lambertini Riccardo Application Server con Gestore di piattaforma ad Agenti Mobili Mobile Agent AS AS MAEAI MAEAI Mobile Agent Mobile Agent Mobile Agent SCOPO PRINCIPALE Fornire un servizio di mobilità ad agenti per le richieste dell’AS attuando una migrazione intelligente e consapevole in base a: 1. Politiche degli AS mittente e destinatario 2. Località di Risorse quali servizi e librerie necessarie all’esecuzione dell’agente 3. Bilanciamento di carico dell’intero sistema REQUISITI PROGETTUALI : − Per gli Agenti − Sicurezza − Scalabilità • • • • Autonomia Interazione con l’ambiente Proattività Cooperazione REQUISITI IMPLEMENTATIVI: – Linguaggio JAVA e J2EE – Architettura SOMA (Secure and Open Mobile Agent) del DEIS – Application Server JBoss – Servizio di discovery JNDI (Java Naming and Directory Interface) ARCHITETTURA LOGICA 1 Application Server 0..* 1 1 1 1 Gestore Librerie e Servizi MAEAI 0..* Controllore Agenti Monitor Risorse di Esecuzione 1 0..* 1..* 1 1 1 Container Politiche 1 Agente Mobile 0..* Gestore di Librerie e Servizi Ruolo di un Gestore di risorse di rete: – aggiornare le risorse locali – reperire informazioni sulle risorse remote – poter comunicare le informazioni sulle risorse agli interessati SERVIZI D’APPOGGIO 1. Servizio di discovery dei servizi della rete 2. Servizio di gestione del classpath delle librerie Servizi offerti dai Gestori • Saper una data risorsa (Servizio o Libreria) è presente su di un nodo • Fornire l’elenco dei nodi nei quali è presente una data risorsa di una risorsa solo per le Librerie: • Richiedere il caricamento/scaricamento di una o più Librerie date su/da un nodo remoto Le informazioni sulle risorse della rete sono mantenute in tabelle e sono accedibili tramite l’uso di una chiave a scelta tra: • la risorsa cercata • il nodo di interesse Raccolta delle informazioni REQUISITO: scalabilità Domain info Place info Domain info Place info Place info Place info Generico Gestore ASPETTI COMUNI: • utilizza ad uso esclusivo all’interno di MAEAI un servizio messo a disposizione dall’Application Server ospitante • deve mantenere aggiornate delle informazioni riguardanti il nodo di residenza • deve mantenere aggiornate delle informazioni riguardanti la rete • deve rispondere a delle richieste riguardanti le informazioni gestite DIFFERENZA FONDAMENTALE: Servizi fortemente legati al nodo locale Librerie indipendenti dal nodo locale Struttura generico Gestore THREAD INFORMAZIONI LOCALI: THREAD INFORMAZIONI REMOTE: Flusso separato per svincolare la richiesta al servizio locale (necessaria per l’aggiornamento) dal flusso di controllo del gestore: Flusso separato per annullare l’overhead introdotto dalla rete sulla richiesta al gestore remoto: richieste di lettura info mai bloccate se non in fase di sovrascrittura variabili Comunicazione: i command I Command di SOMA sono in tutto e per tutto thread che, inviati ad un Place remoto, incominciano l’esecuzione appena arrivati in loco. • L’uso di Command innestati permette il corretto funzionamento anche a fronte di mancanza del supporto MAEAI in remoto. • L’uso di Command separati per ogni gruppo di informazioni mantiene svincolati i ritardi introdotti dalla rete, senza incrementare significativamente i tempi di aggiornamento delle informazioni locali. Conclusioni e sviluppi futuri La piattaforma MAEAI installata su di un AS realizza una migrazione consapevole degli Agenti Mobili, scegliendo per ognuno di essi la località migliore ove eseguire in funzione di: località delle risorse, carico dei nodi e politiche dei Gestori omologhi. Necessita di servizi messi a disposizione dall’AS quali un gestore del classpath librerie e un JNDI che sappia fornire informazioni sulla località dei servizi. Potrà permettere ad agenti mobili di fungere da proxy di un utente mobile, memorizzando profilo o sessione. Si potrebbe estendere l’espansione e/o aggiornamento della conoscenza della rete tramite un agente mobile incaricato, mantenendo però la proprietà di scalabilità.