Framework di supporto per applicazioni Java agent-based Autore: Davide Raspanti, 171686 Corso: Reti di Calcolatori L-S Docente: Antonio Corradi Facoltà: Ingegneria Corso di laurea: Ingegneria Informatica Università degli Studi di Bologna A.A.2005-2006 1 Il contesto... Sviluppo di applicazioni distribuite in termini di agenti Mancanza di un’adeguata formalizzazione di Ruoli e responsabilità Obiettivi Patterns di interazione Riconoscimento di problemi ricorrenti in fase di modellazione Necessità di un insieme comune di concetti e di astrazioni… 2 …e gli obiettivi del progetto Realizzare un framework di riferimento in termini di Paradigmi di progetto Tecnologie Sistema di programmazione ad oggetti Java Domini applicativi Recupero di informazioni distribuite 3 I paradigmi di progetto. Gli Agent Design Patterns… Configurazione e mutue interazioni dei componenti di sistema definite da ricorrenti schemi organizzativi di mobilità e cooperazione Patterns di progetto ad agenti General-purpose Indipendenti dalla piattaforma operativa di supporto 4 …ed i relativi domini di influenza Mobilità Travelling patterns Incapsulamento della gestione degli spostamenti Itinerary, Forwarding, Ticket Cooperazione Interaction patterns Strategie di riutilizzo Modellazione degli schemi di interazione Meeting, Locker, Messenger, Facilitator, Organized group Autonomia Task patterns Specifica dei compiti e delle modalità di assegnamento di questi agli agenti 5 Master-Slave, Plan Il modello di computazione Comportamenti elementari… Creazione Creazione onCreation(parameters) Attivazione onActivation() Rilascio in rete onDispatching() Eventuale reinizializzazione dell’agente Ripristino onReactivation(parameters) L’agente riprende la propria esecuzione nel nuovo contesto Riattivazione onArrival() Distruzione onDisposing() Distruzione Metodo Riattivazione Inserimento dell’agente nel contesto di destinazione Ripristino L’agente inizia l’esecuzione della propria attività Rilascio in rete Evento Attivazione Inizializzazione dell’agente L’agente termina la propria esecuzione …e modello event-driven 6 Supporto al concetto di itinerario Itinerario come oggetto Gestione separata del processo di migrazione Situazioni critiche Piani di migrazione complessi Modifica dinamica del percorso Modularità 7 Sincronizzazione fra agenti diversi: il modello strutturale… Astrazione della sincronizzazione spaziale e temporale Concetto di meeting Incapsulamento dell’indirizzo di un meeting place Mediazione rispetto al meeting manager 8 …ed il modello di funzionamento Interazione locale Semplificazione della comunicazione interagente Riduzione dell’overhead dovuto ad interazioni remote Tradeoff fra overhead di interazione e grado di attività degli agenti 9 Ruoli e responsabilità: i partecipanti… Svolgimento di un compito in parallelo con altre attività Schema comportamentale a delegazione Asincronismo 10 ...e le relative collaborazioni Master Inizializzazione ed attivazione dell’applicazione Gestione dell’interazione con l’utente Slave Accesso a risorse ed a servizi di rete remoti 11 Hosts ed astrazioni di località Scenario esecutivo Agency Ricezione degli agenti mobili Rapporto agente mobile-Agency mediato da un broker Gestione della sicurezza Interazione con i servizi locali Contesto Infrastrutture di Gestione degli agenti Protezione dell’host ospitante 12 La tecnologia di supporto. Il processo di astrazione,… Modellazione ad oggetti Coordinazione a patterns Classi di agenti con specifica di Struttura… Proprietà protette o private …e comportamento Metodi pubblici… • Interazione fondata sull’invocazione di metodi e sull’esecuzione delle operazioni corrispondenti …e protetti o privati Agenti come threads Trasferimento di codice stand-alone Agency come agent-server concorrente multithreaded 13 …il linguaggio… Java e le applicazioni distribuite con codice mobile Portabilità Protocolli di comunicazione Programmazione concorrente Sicurezza Mobilità debole Migrazione o esecuzione remota? Java Aglets… 14 …ed il sistema di programmazione Java programming environment La JVM come implementazione dell’environment computazionale di ogni host Classloader personalizzato per scaricare dalla rete gli agenti mobili e le classi ad essi necessarie “Simulazione” di mobilità forte Attributi preservati fra una migrazione e l’altra come stato degli agenti mobili Invocazione di appositi metodi alla destinazione Mobilità controllabile dal programmatore Definizione e ricostruzione dello stato di esecuzione degli agenti mobili Accesso alla rete di comunicazione Esecuzione differita Programmazione location-aware Sincronizzazione di processi e risorse a livello di sintassi Serializzazione delle strutture dati di supporto Introspection delle classi corrispondenti agli agenti mobili Comunicazione remota via socket connectionoriented Modello di sicurezza a sandbox Security Manager e politica di monitoraggio dei threads di attivazione degli agenti mobili 15 Il dominio applicativo Il recupero di informazioni distribuite Migrazione del codice di ricerca presso ciascuna sede di dati Il caso di studio Ricerca di files aventi un certo nome presso nodi di rete remoti Pattern Master-Slave Efficienza Traffico di rete Paradigma clienteservitore Un agente master per gestire la GUI di interazione con l’utente Un agente slave per svolgere la ricerca Ricerca presso una molteplicità di locazioni Combinazione dei patterns Master-Slave ed Itinerary 16 Conclusioni Sviluppo di applicazioni agent-based secondo appositi patterns di progetto… Schema concettuale di guida per le problematiche più ricorrenti Riusabilità delle tecniche di progettazione Riduzione dei costi di costruzione dei sistemi …ed approccio object-oriented Personalizzazione dei componenti Passività delle astrazioni Organizzazione statica delle interazioni 17