Vai al contenuto

Java Agent Development Framework

Da Wikipedia, l'enciclopedia libera.
Versione del 1 feb 2009 alle 17:28 di Pac72 (discussione | contributi) (Reinserito <br /> necessario)

Java Agent DEvelopment Framework, o JADE, è un framework sviluppato in Java che supporta lo sviluppo di applicazioni distribuite e basate sul paradigma di programmazione ad agenti, fornendo un insieme di servizi di base, conformi allo standard FIPA[1] e necessari alla creazione e al mantenimento di un sistema multiagente.[2][3]
JADE è un software open source e viene distribuito con licenza LGPL.

Descrizione della piattaforma

La distribuzione di JADE include un ambiente di runtime, alcune librerie che il programmatore può utilizzare per sviluppare le proprie applicazioni ed alcuni tool grafici per attività di amministrazione e monitoraggio.
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.
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 mediante l'assegnazione ad essi di un AID (Agent IDentifier, identificatore di agente) univoco 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 della piattaforma, mediante cui un agente può pubblicizzare i propri servizi e/o ricercare servizi offerti da altri agenti.

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.
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.

Modello di Comunicazione

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. Il modello di comunicazione 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.
Il formato dei messaggi scambiati dagli agenti segue le specifiche del linguaggio ACL (Agent Communication Language[4]) definito da FIPA.

Ontologie

Affinché gli agenti di una piattaforma possano comunicare, è necessario che essi condividano non solo linguaggi e protocolli di comunicazione, ma anche un comune vocabolario di termini utilizzati nei messaggi scambiati. La definizione di tale vocabolario in JADE è basata sul concetto di ontologia che trova frequenti applicazioni nell’ambito dell’intelligenza artificiale e della rappresentazione della conoscenza.
Un’ontologia rappresenta un modo formale per definire un vocabolario comune di concetti relativi ad un preciso dominio, nonché le relazioni che intercorrono tra di essi.
JADE fornisce numerosi strumenti software per la definizione di ontologie.[5]

Voci Correlate

Sistema multiagente
Agente intelligente

Collegamenti esterni

Note

  1. ^ http://www.fipa.org
  2. ^ (EN) Fabio Bellifemine, Giovanni Caire, Dominic Greenwood, Developing Multi-Agent Systems with JADE, Wiley, aprile 2007, ISBN 978-0-470-05747-6.
  3. ^ (EN) JADE Programmer's Guide (PDF), su jade.tilab.com, 4. URL consultato il 26-1-2009.
  4. ^ http://en.wikipedia.org/wiki/Agent_Communications_Language
  5. ^ http://wwwmath.uni-muenster.de/u/lammers/EDU/ws03/Landminen/Abgaben/Gruppe4b/jade/doc/CLOntoSupport.pdf