Java Agent Development Framework: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
{{S|software libero}}
Nessun oggetto della modifica
Riga 15:
 
== Agenti e behaviour ==
Come precedentemente accennato JADE è stato sviluppato completamente in Java e, pertanto, la creazione di un Agente in JADE corrisponde alla definizione di una classe che estende la classe Jade.core.Agent.
Gli agenti attivi all’interno di un container JADE sono responsabili dell’esecuzione dei compiti loro assegnati.<br />
In JADE i compiti 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.Behaviour. 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
 
== Communication Model==
I CompositeBehaviour rappresentano invece un comportamento più complesso ottenuto come aggregazione di più behaviour, chiamati ''children behaviour''. 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:
Uno degli aspetti chiave di un [[Sistema multiagente]]è la comunicazione. Gli agenti devono, infatti, essere in grado di comunicare gli uni con gli altri, per cooperare, collaborare, negoziare e così via.
*'''ParallelBehaviour''' in cui i behaviour Children vengono eseguiti in maniera concorrente
Il Communication Model adottato da Jade è l’''Asynchronous Message Passing'' in cui ad ogni agente è associata una coda di messaggi ricevuti dagli altri agenti, aggiornata ogniqualvolta arrivi un nuovo messaggio. Le modalità e le tempistiche di recupero dei messaggi è demandata alla logica applicativa dei singoli Agenti.
*'''SerialBehaviour''' in cui i behaviour Children sono eseguiti in modo seriale.
Il formato dei messaggi scambiati dagli Agenti è il formato ACL (Agent Communication Language http://en.wikipedia.org/wiki/Agent_Communications_Language) definito da FIPA (http://en.wikipedia.org/wiki/FIPA)
 
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 ==