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