Java Agent Development Framework: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pac72 (discussione | contributi)
Categorizzazione; piccole modifiche di formattazione e contenuto
Pac72 (discussione | contributi)
Aggiunte fonti, rimosso {{F}}; rimosso {{C}} ingiustificato (v. quando si usa il template); altre modifiche minori
Riga 1:
{{E|allo stato vi sono forti dubbi di intenti non enciclopedici|software|gennaio 2009}}
{{S|Software libero}}
{{C|tradotta? ripresa da quali fonti?|software|gennaio 2009}}
{{F|software|gennaio 2009}}
{{S}}
 
'''Java Agent DEvelopment Framework''', o '''JADE''', è un [[framework]] sviluppato in [[Java (linguaggio)|Java]] che supporta lo sviluppo di [[Sistema distribuito|applicazioni distribuite]] e basate sul paradigma di programmazione ad [[Agente software|agenti]], fornendo un insieme di servizi di base, conformi allo standard FIPA<ref>http://www.fipa.org</ref> e necessari alla creazione e al mantenimento di un [[sistema multiagente]].<ref>{{cita libro|cognome=Bellifemine|nome=Fabio|coautori=Giovanni Caire, Dominic Greenwood|anno=2007|mese=aprile|lingua=inglese|titolo=Developing Multi-Agent Systems with JADE|editore=[[Wiley]]|città=|id=ISBN 978-0-470-05747-6}}<br/ref><ref>{{cita web|url=http://jade.tilab.com/doc/programmersguide.pdf|titolo=JADE Programmer's Guide|accesso=26-1-2009|formato=pdf|lingua=inglese|pagine=4}}</ref>
<br />
JADE è un software [[open source]] e viene distribuito con licenza [[LGPL]].
 
== Descrizione della piattaforma ==
 
La distribuzione di JADE include un ambiente 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 monitoraggio.<br />
Ogni istanza dell’ambiente runtime di JADE è chiamata ''container'' (contenitore) ed all’interno dei container possono essere attivi uno o più agenti. Un insieme di container costituisce la ''platform'' (piattaforma). All’interno di ogni piattaforma deve sempre essere attivo uno speciale container, chiamato ''main container'' (container principale). Il main container è, inoltre, il primo container ad essere attivato alla partenza della piattaforma e tutti gli altri container si collegano ad esso al loro avvio.<br />
All'interno del main container, 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 agenti e container, e dell’autenticazione e registrazione degli Agenti,agenti mediante l'assegnazione ad essi di un AID (Agent IDentifier, identificatore di agente) univoco all'interno della piattaforma stessa. Fornisce, inoltre, il servizio di Paginepagine Bianchebianche 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 agente può pubblicizzare i propri servizi e/o ricercare servizi offerti da altri agenti.
 
== Agenti e behaviour ==
All’internoGli agenti attivi all’interno di un container JADE possono essere attivi uno o più agenti,sono responsabili dell’esecuzione didei uno o più task che sonocompiti loro assegnati.<br />
In JADE i taskcompiti assegnati ad un agente sono modellati mediante un’astrazione chiamata ''behaviour'' (comportamento). Il programmatore può definire specifici behaviour ed assegnarli agli agenti di una piattaforma estendendo la classe jade.core.behaviours.behaviourBehaviour. Sono previste due tipologie di behaviour, realizzate come sottoclassi della classe behaviour: i ''SimpleBehaviour'' ed i ''CompositeBehaviour''.<br />
 
== Classificazione dei behaviour ==
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’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ù behaviour, chiamati ''behaviourchildren Childrenbehaviour''. 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 behaviour Children vengono eseguiti in maniera concorrente;
*'''ParallelBehaviour''' in cui i behaviour Children vengono eseguiti in maniera concorrente
*'''SerialBehaviour''' in cui i behaviour Children sono eseguiti in modo seriale.

Tra i SerialBehaviour possiamo fare un'ulteriore distinzione tra ''Sequential behaviour'', in cui i behaviour children vengono eseguiti sequenzialmente, e l'''FSM behaviour'' che esegue i suoi children in base ad un [[automa a stati finiti]] definito dall'utente.
 
== Collegamenti esterni ==
* {{en}} [http://jade.tilab.com Sito ufficiale]
* {{en}} [http://jade.tilab.com Foundation for Intelligent Physical Agents (FIPA)]
 
== Note ==
Riga 30 ⟶ 39:
[[Categoria:Software libero]]
[[Categoria:Librerie software]]
 
[[en:Java Agent Development Framework]]