Java Agent Development Framework: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Pac72 (discussione | contributi)
Categorizzazione; piccole modifiche di formattazione e contenuto
Riga 2:
{{C|tradotta? ripresa da quali fonti?|software|gennaio 2009}}
{{F|software|gennaio 2009}}
{{S}}
JADE(Java Agent Development Framework) è un framework software che supporta lo sviluppo di applicazioni distribuite e basate sul paradigma di programmazione di agenti, fornendo un insieme di servizi di base, conformi allo standard [http://www.fipa.org FIPA]Foundation for Intelligent Physical Agents) e necessari alla creazione e al mantenimento di un [[Sistema multiagente]]. <br />
JADE è distribuito come software open source sotto la licenza [[LGPL]] (Lesser General Public License Version 2) ed è stato interamente realizzato in linguaggio JAVA.
 
 
 
JADE('''Java Agent DevelopmentDEvelopment Framework)''', o '''JADE''', è un [[framework]] softwaresviluppato in [[Java (linguaggio)|Java]] che supporta lo sviluppo di applicazioni distribuite e basate sul paradigma di programmazione diad [[Agente software|agenti]], fornendo un insieme di servizi di base, conformi allo standard [FIPA<ref>http://www.fipa.org FIPA]Foundation for Intelligent Physical Agents) </ref> e necessari alla creazione e al mantenimento di un [[Sistemasistema multiagente]]. <br />
JADE è un software [[open source]] e viene distribuito con licenza [[LGPL]].
 
== Descrizione della piattaforma ==
La distribuzione di JADE include un ambiente ''Runtime''di [[Run-time|runtime]], alcune librerie che il programmatore può utilizzare per sviluppare le proprie applicazioni ed alcuni tool grafici per attività di amministrazione e monitoringmonitoraggio.<br />
Ogni istanza dell’ambiente Runtimeruntime di JADE è chiamata ''Containercontainer'' (contenitore) ed all’interno dei Containercontainer possono essere attivi uno o più agenti. Un insieme di Contaimercontainer ècostituisce chiamatola ''Piattaformaplatform'' (piattaforma). All’interno di ogni Piattaformapiattaforma deve sempre essere attivo uno speciale container, chiamato ''Mainmain Containercontainer'' (container principale). Il Mainmain Containercontainer è, inoltre, il primo Containercontainer ad essere attivato alloalla Start-uppartenza della piattaforma e tutti gli altri Containercontainer si registranocollegano presso diad esso al loro avvio.<br />
All'interno del Mainmain Containercontainer, in conformità a quanto previsto da FIPA, sono presenti degli agenti con ruoli speciali deputati alla gestione della piattaforma stessa ed in particolare:
*'''Agent Management System (AMS)''': è il supervisore della piattaforma, controllandone il suo accesso e il suo utilizzo. È responsabile delle operazioni di creazione e terminazione di Agentiagenti e Containercontainer, dell’autenticazione e registrazione degli Agenti, mediante l'assegnazione ad essi di un AID (Agent IDentifier, identificatore di agente) unicounivoco all'interno della piattaforma stessa. Fornisce, inoltre, il servizio di Pagine Bianche della piattaforma, mantenendo un elenco di tutti gli agenti che in un certo istante risiedono nella piattaforma stessa e memorizzando per ciascuno di essi il relativo AID.
*'''Directory Facilitator (DF)''': fornisce il servizio di [[Pagine Gialle (software)|pagine gialle]] della piattaforma, mediante cui un Agenteagente può pubblicizzare i propri servizi e/o ricercare servizi offerti da altri Agentiagenti.
 
== Agenti e Behaviourbehaviour ==
 
All’interno di un Containercontainer JadeJADE possono essere attivi uno o più Agentiagenti, responsabili dell’esecuzione di uno o più task che sono loro assegnati.<br />
== Agenti e Behaviour ==
In JadeJADE i task assegnati ad un Agenteagente sono modellati mediante un’astrazione chiamata ''Behaviourbehaviour'' (comportamento). Il programmatore può definire specifici Behaviourbehaviour ed assegnarli agli Agentiagenti di una piattaforma estendendo la classe jade.core.behaviours.Behaviourbehaviour. Sono previste due tipologie di Behaviourbehaviour, realizzate come sottoclassi della classe Behaviourbehaviour: i ''SimpleBehaviour'' ed i ''CompositeBehaviour''.<br />
All’interno di un Container Jade possono essere attivi uno o più Agenti, responsabili dell’esecuzione di uno o più task che sono loro assegnati.<br />
In Jade i task assegnati ad un Agente sono modellati mediante un’astrazione chiamata ''Behaviour''. Il programmatore può definire specifici Behaviour ed assegnarli agli Agenti di una piattaforma estendendo la classe jade.core.behaviours.Behaviour. Sono previste due tipologie di Behaviour, realizzate come sottoclassi della classe Behaviour: i ''SimpleBehaviour'' ed i ''CompositeBehaviour''.<br />
Un SimpleBehaviour rappresenta un'azione composta da un task unico non interrompibile. Esempi di SimpleBehaviour sono:
*'''OneShotBehaviour''' in cui il task viene eseguito una sola volta;
*'''CyclicBehaviour''' in cui il task viene eseguito ciclicamente finchè l’Agentel’agente rimane attivo;
*'''TickerBehaviour''' in il task viene eseguito periodicamente ad intervalli regolari.
I CompositeBehaviour rappresentano invece un comportamento più complesso ed è ottenuto come aggregazione di più Behaviourbehaviour, chiamati ''Behaviourbehaviour Children''. Quando viene avviato, un CompositeBehaviour manda in esecuzione uno dei suoi children. La politica di scelta del children e le condizioni di terminazione del behaviour devono essere definite dal programmatore. I CompositeBehaviour si dividono in due tipologie in base alla modalità di esecuzione dei children:
*'''ParallelBehaviour''' in cui i Behaviourbehaviour Children vengono eseguiti in maniera concorrente;
*'''SerialBehaviour''' in cui i Behaviourbehaviour Children sono eseguiti in modo seriale. Tra i SerialBehaviour possiamo fare un'ulteriore distinzione tra ''Sequential Behaviourbehaviour'', in cui i Behaviourbehaviour children vengono eseguiti sequenzialmente, e l'''FSM Behaviourbehaviour'' che esegue i suoi children in base ad un automa a stati finiti definito dall'utente.
 
== Note ==
<references />
 
[[Categoria:Software libero]]
[[Categoria:Librerie software]]