Mobile Agent and
Enterprise Architecture
Integration
Il gestore della mobilità degli agenti
Raffaelli Massimo
matricola 0000171842
Obiettivi del progetto

Integrazione su un Application Server di una
piattaforma ad agenti mobili per la realizzazione
di:

Agenti come entità specializzate cui delegare
l’effettivo uso di servizi e la memorizzazione dei
risultati, sotto il controllo dei gestori.

Gestore come entità in grado di realizzare
migrazioni consapevoli degli agenti, in funzione
di considerazioni sulla località delle risorse, sul
bilanciamento del carico e sulle politiche attuate
da gestori omologhi.
Requisiti implementativi
Integrazione componente realizzato su
application server J2EE (JBoss).
 Uso di SOMA, piattaforma ad agenti mobili
realizzata dal DEIS e completamente
implementata in JAVA.
 Utilizzo del servizio di discovery JNDI.

Scelta del linguaggio JAVA
Application Server, gestori, agenti
Mobile
Agent
AS
AS
MAEAI
MAEAI
Mobile
Agent
Mobile
Agent
Mobile
Agent
Architettura logica di un nodo MAEAI
MAEAIAgentManager
MAEAIAgent
MAEAIAgentManager
mi g r
ate
and
m
m
canAccept
c o mm
co
an
d
hasLibrary()
findLibrary()
uploadLibrary()
downloadLibrary()
hasService()
findService()
ServicesManager
MAEAIAgentManager
LibrariesManager
Policy
manageAgentsForOverCharge()
MAEAIChargeManager
command
command
MAEAIChargeManager
intra dominio
MAEAIChargeManager
extra dominio
command
manageCharge()
manageOverCharge()
Charge monitor
L’Agente MAEAI - Struttura
Incapsula la business logic dell’applicazione
che utilizza l’infrastruttura MAEAI:
 Nozione
dei servizi e dei relativi parametri di
utilizzo.
 Librerie necessarie per la computazione.
 Strutture dati contenenti risultati parziali o
finali.
 Elenco di località preferite per la
esecuzione.
L’Agente MAEAI - Funzionalità
Funzionalità implementate:
 Comportamentali di base, e per l’ interazione
con il gestore degli agenti.
 Supporto per l’inizializzazione delle strutture dati
di base.
Funzionalità non implementate:
 Business logic finale. (fortemente dipendente
dall’applicazione specifica).
 Meccanismo per reperimento del fattore di
carico effettivo apportato sul server (servizio su
Application Server per assolvere tale compito).
L’Agente MAEAI - Comportamento

La prima operazione effettuata alla “nascita” o in seguito
alla migrazione su un nuovo nodo è la richiesta presso il
gestore locale di:




migrazione se per il servizio da utilizzare ha un luogo di
esecuzione preferito diverso dal corrente.
accettazione e reperimento del servizio nell’AS locale. In caso
di rifiuto procede alla richiesta di migrazione su eventuale altro
nodo preferito di esecuzione, o alla migrazione sul nodo indicato
dal gestore all’atto del rifiuto.
L’agente mantiene coerenti le informazioni circa il suo
stato di migrabilità e circa il prossimo servizio di cui
necessiterà durante la sua missione.
Se un agente riceve una richiesta di migrazione mentre
sta eseguendo un servizio in maniera non interrompibile,
migrerà non appena terminato l’uso di quel servizio.
Gestore del carico - Responsabilità

Informare il gestore degli agenti di situazioni
di sovraccarico: dati di carico o sovraccarico
ricevuti dal monitor del carico.

Mantenere informazioni di carico sui nodi
della rete conosciuti per poterle fornire al
gestore degli agenti a fronte di necessità di
migrazioni.

Informazioni sul carico sono fortemente
dinamiche legate all’esecuzione. Persistenza
non richiesta.
Gestore del carico - Scelte progettuali

Divisione della rete in località ai fini della scalabilità.
Senza località no scalabilità:



Eccessivo overhead in termini di messaggi di carico sulla rete,
in quanto spesso non è necessario avere l’informazione
aggiornata di ogni altro nodo della rete.
Informazione di carico fortemente distribuita: le tabelle di
carico possono aumentare a piacere, proporzionalmente ai nodi
della rete.
Località mappata con il dominio SOMA.



Dominio: come aggregazione di place vicini fisicamente o
logicamente (inter dominio comunicazione diretta).
Place: luogo di esecuzione degli agenti, astrazione di nodo della
rete in cui sono presenti risorse.
Place di default: place che fa da anche da ponte di
collegamento tra il dominio e altri domini.
Gestore del carico - Scelte progettuali


Informazione aggiornata per nodi inter dominio;
meccanismo a notifica dai vari gestori (pool di
connessioni SOMA sempre disponibili).
Conoscenza parziale sui nodi all’esterno del dominio,
legata alla parziale visibilità di altri domini del place di
default. Polling per limitare numero di messaggi
scambiati.



Place di default: polling sui domini conosciuti per richiesta
tabella di carico di dominio.
Place non di default: polling su place di default per richiesta
tabelle di carico domini conosciuti
Polling a frequenza minore rispetto a quella di monitoraggio:
informazione meno aggiornata e meno attendibile. Si suppone
che pur cambiando rapidamente il fattore di carico, ciò non valga
però per la condizione di macchina carica/scarica.
Gestione del carico extra dominio
Non default
Place
Non default
Place
Tabella di
carico
Tabella di
carico
Tabella di
carico
Non default
Place
Default place Tabella di
carico
Tabella di
carico
Default place
Presenza di un gestore funzionante
Richiesta della tabella di carico
Non default
Place
Tabella di
carico
Non default
Place
Tabella di
carico
Gestore del carico - Dettagli

Carico fittizio
Fattore di carico per un nodo costituito da somma di due
componenti: fattore di carico reale, notificato dal monitor, e
fattore di carico fittizio (pesato), tiene conto di una sorta di “soft
state” creato dalle prenotazioni per migrazioni di agenti da parte
di gestori di agenti remoti.

Espansione conoscenza extra dominio
Conoscenza extra dominio fortemente legata a configurazione
dell’infrastruttura SOMA impostata staticamente.
Possibilità in futuro di espandere le tabelle DNS del place di default
a tempo di esecuzione in base a criteri.

Comandi SOMA e assenza di gestori
Comunicazione avviene mediante comandi SOMA, entità inviate in
remoto e dotate di un flusso di esecuzione autonomo specifico.
Gestita la possibilità di mancanza di gestori MAEAI su place di
default o non di default mediante comandi specifici.
Gestore degli agenti - Responsabilità



Accogliere o meno agenti sul nodo locale, e in questo
secondo caso ordinarne la migrazione su un altro nodo.
Decidere se consentire migrazioni dal nodo locale di
agenti che ne fanno richiesta.
In caso di sovraccarico della macchina, ordinare la
migrazione di agenti che eseguono sul nodo locale.
Gestione di tutti gli aspetti riguardanti la mobilità degli
agenti (cambiamento di prospettiva rispetto al
paradigma classico degli agenti mobili)
Il gestore degli agenti incapsula un meccanismo.
Per le decisioni si coordina con il gestore delle migrazioni
che realizza le politiche.
Gestore degli agenti - Accettazione

Richiesta di accettazione locale

Accettazione agente sulla base di:



presenza del servizio specifico.
decisione presa dal gestore delle migrazioni sulla base del
fattore di carico del nodo e dell’apporto al carico dato
dall’agente stesso.
No considerazioni su dati di carico o di località di risorse
riguardanti altri nodi della rete. Cause migrazione:



Invio da altro nodo (es. sovraccarico).
Invio diretto (es. da strato più alto del livello applicativo,
migrazione su iniziativa dell’agente).
Le politiche non consultate se agente presente nella
lista di prenotazione del nodo. (V.di meccanismo
prenotazione).
Gestore degli agenti - Accettazione

Richiesta di prenotazione da remoto


Richiesta da gestore remoto della disponibilità ad
accettare un agente. In caso positivo il gestore
locale mantiene questa informazione.
Decisione presa in base alle informazioni di carico
del nodo e all’apporto al carico dato dall’agente:

Scelta globale fatta dal gestore remoto.
Gestore degli agenti - Migrazione

Reazione a condizione di sovraccarico



Per ogni agente in esecuzione, prenotazione su
ogni nodo con il servizio richiesto che si rende
disponibile ad accettare l’agente.
Informazioni passate al gestore delle migrazioni:
agenti in esecuzione, dato di carico nodo corrente,
dati di carico nodi conosciuti, insieme di place con il
servizio disponibili ad accettare l’agente.
Associazione dapprima con nodi del dominio…




Informazione di carico più recente
Probabile vicinanza fisica, ad esempio rete locale
…poi eventualmente con nodi extra dominio.
Invio dell’agente sul nodo destinazione previo invio
librerie necessarie.
Gestore degli agenti - Dettagli
Meccanismo di prenotazione


Prenotazione con soft state sul nodo destinazione e somma al
fattore di carico del nodo un fattore di carico fittizio dovuto all’agente.
Risposte attese e considerate entro un timeout.
Interrogazione concorrente di più nodi permette:
migliore capacità di reazione al sovraccarico (meno tempo)

migliore visione globale per le politiche (conoscenza globale)
…ma altera fattore di carico di una molteplicità di gestori. Soluzione:

Carico fittizio pesato in base ad un indice (es. dipendente da probabilità
di scelta del nodo o di arrivo dell’agente dopo una migrazione).

Disdette prenotazioni su nodi scartati -> durata minima per soft state


Allineamento delle librerie


Upload concorrente librerie in caso di migrazione.
Download concorrente delle librerie mancanti per l’esecuzione sul
nodo corrente.
Conclusioni

Affidabilità: l’infrastruttura SOMA deve essere
affidabile in termini di persistenza dei dati e degli
agenti (es. integrazione come servizio in un cluster).

Sicurezza: aspetti legati alla sicurezza sono
delegati a SOMA che supporta, al suo livello,
confidenzialità ed autenticazione: protezione place
da agenti malintenzionati e viceversa.
MAEAI e applicazioni enterprise
Agente
MAEAI
Agente
MAEAI
MAEAI
Place
Agente
MAEAI
SOMA
Mobile
Place
Application Server
SERVIZIO BUSINESS
SOMA
Place
SOMA
• La creazione di un agente
MAEAI deve avvenire su un
nodo in cui sia presente un
gestore.
• Agenti diversi possono
essere istanziati da un
servizio del livello
applicativo superiore a
seconda della business
logic che realizzano per
esso.
Scarica

presentazione