1 / 15

FIPA e JADE

FIPA e JADE. Una breve introduzione. Vasco Gallotti. Email: vascogallotti@hotmail.it. Battle plan…. Prima Parte. FIPA. La specifica SC00023J. AMS DF MTS. ACL. Rappresentazione messaggi ACL. Protocolli di invio. Seconda Parte. Cos’è JADE. Installazione JADE. Servizi forniti da JADE.

baxter
Download Presentation

FIPA e JADE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FIPA e JADE Una breve introduzione Vasco Gallotti Email: vascogallotti@hotmail.it

  2. Battle plan… Prima Parte FIPA La specifica SC00023J • AMS • DF • MTS ACL Rappresentazione messaggi ACL Protocolli di invio Seconda Parte Cos’è JADE Installazione JADE Servizi forniti da JADE Scriviamo un agente in JADE

  3. Cos’è JADE? JADE: Java Agent DEvelopment framework è una piattaforma, altamente ingegnerizzata, scritta in Java, per la creazione e gestione di agenti intelligenti. La caratteristica principale è la struttura distribuita del sistema stesso, esso genera un “contenitore” (Container) nel qual gli agenti esistono e convivono. Ogni Istanza di JADE DEVE avere un contenitore principale (“MainContrainer”) il cui ruolo è quello fondamentale di organizzare la Comunicazione tra gli agenti. Ad ogni main può essere associato uno o più container residenti sulla stessa macchina o in qualsiasi altro posto nella rete…anche in internet! Altro aspetto fondamentale: JADE è “FIPA Compliant”

  4. FIPA FIPA: Foundation for Intelligent and Phisycal Agent È un’organizzazione che si è impegnata nella stesura degli standard che regolano la vita di un agente intelligente. Essa ha definito una serie di standard tra cui • Ciclo di vita di un agente • Protocolli di interazione tra agenti e altri agenti, e tra agenti e piattaforma • Struttura di un sistema multiagente • ACL ACL è un linguaggio grazie al quale vengono scritti i messaggi tra gli agenti, esso si basa sullo “stato intenzionale” dell’agente.

  5. Specifica SC00023J La specifica SC00023J fornisce gli standard per tutto ciò che concerne il “management” di un agente. E’ la specifica più importante per la gestione e creazione di una piattaforma: Software Agent Agent Management System Directory Facilitator Message Transport System

  6. Agent Un agente può trovarsi in vari stati durante la sua esistenza, FIPA formalizza questo concetto:

  7. AMS L’ams (Agent Mangement Service) è un servizio che deve esistere in ogni piattaforma per agenti. Deve esistere necessariamente solo un AMS per ogni piattaforma. L’ams è responsabile della gestione delle operazioni di una piattaforma per agenti intelligenti: • Creazione di un nuovo agente • Eliminazione di un agente • Migrazione di un agente • Mantenimento del ciclo di vita di un agente L’ams contiene al suo interno anche la lista degli agenti attualmente presenti nel residenti nella piattaforma. Va notato che un agente che si trova su una stessa piattaforma non è detto che stia su di una stessa macchina.

  8. DF • La Directory Facilitator è un servizio associato ad una piattaforma per agenti grazie al quale un agente registra il servizio da lui stesso offerto. • E’ possibile paragonarlo alle pagine gialle. • Ad un agente è possibile: • Registrare un servizio • Modificare un suo servizio • Eliminare una voce dal registro • Cercare per trovare un agente associato ad un servizio La DF è opzionale, può esistere una piattaforma senza una DF; in una piattaforma possiamo trovare anche più di una DF.

  9. MTS Il Message Transport Service fornisce un meccanismo per trasferire messaggi ACL tra agenti. Ecco la struttura che deve avere: Nella sua forma astratta un messaggio è composto da una “envelope” e da un “payload”. L’”envelope” contiene solo informazioni utili alla consegna del messaggio. L’MTS non deve in nessun caso alterare il payload del messaggio. Il payload è rappresentato da un messaggio ACL

  10. ACL Messagge ACL (Agent Communication Language) è il linguaggio utilizzato dagli agenti per scambiare messaggi. ACL viene utilizzato anche tra agente e piattaforma per scopi interni. La specifica SC00061G definisce in dettaglio i parametri dei messaggi ACL. Un messaggio ACL è composto da una serie di parametri e deve contenere obbligatoriamente il performative-act, sender, receiver e content.

  11. Atti comunicativi Un agente che vuole inviare un messaggio ad un altro deve esprimere la sua intenzione. Questo viene realizzato iniziando ogni messaggio con delle parole chiave che rappresentano l’intenzione dell’agente che ha inviato il messaggio stesso. Gli atti comunicativi sono:

  12. ACL Messagge in “String Mode” Un messaggio ACL può essere rappresentato usando una serie di stringhe disposte in un preciso modo Message = “(” MessaggeType MessageParameter* “)”. MessageParameter = “:sender” AgentIdentifier | “:receiver” AgentIdentifierSet | “:content” String | “:reply-with” Expression | “:reply-by” DateTime | “:in-reply-to” Expression | “reply-to” AgentIdentifierSet | “:language” Expression | “:encoding” Expression | “:ontology” Expression | “:protocol” Word | “:convesation-id” Expression. La specifica SC00070J definisce il modo in cui scrivere messaggi ACL usando una grammatica ben definita. Vediamo alcune regole di questa grammatica…

  13. Altre regole indispensabili sono: AgentIdentifier = “(” “agent-identifier” “:name” word [“:addresses” URLSequence] [“:reslvers” AgentIdentifierSequence] AgentIdentifierSequence = “(” “sequence” AgentIdentifier* “)”. AgentIdentifierSet = “(” “set” AgentIdentifier* “)”. Queste tre regole servono per generare tutto ciò che riguarda gli identificativi agenti (AID). Questi possono servire in più parti del messaggio ACL.

  14. Vediamo alcuni esempi di messaggio in String mode: (INFORM :sender ( agent-identifier :name simple@Blaskino:1099/JADE :addresses (sequence IOR:000000000000001149444C3A464950412F4D54533A312E3000000000000000010000000000000060000102000000000A3132372E302E302E3100042600000019AFABCB0000000002E88E33210000000800000000000000000A0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100 )) :receiver (set ( agent-identifier :name RMA@Blaskino:1099/JADE :addresses (sequence IOR:000000000000001149444C3A464950412F4D54533A312E3000000000000000010000000000000060000102000000000A3132372E302E302E3100042600000019AFABCB0000000002E88E33210000000800000000000000000A0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100 )) ) :content “Hallo Homer!!!" :reply-with RMA@Blaskino:1099/JADE1107708472917 ) (QUERY-IF :sender ( agent-identifier :name RMA@Blaskino:1099/JADE :addresses (sequence IOR:000000000000001149444C3A464950412F4D54533A312E3000000000000000010000000000000060000102000000000A3132372E302E302E3100042600000019AFABCB0000000002E88E33210000000800000000000000000A0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100 )) :receiver (set ( agent-identifier :name simple@Blaskino:1099/JADE )) :content “Homer goes to hollywood" :in-reply-to homer :language English :conversation-id "23" )

  15. Inviare messaggi ACL Esistono vari protocolli per inviare dei messaggi tra agenti, sia residenti sulla stessa piattaforma, sia residenti su piattaforme distinte. FIPA fornisce glil standard per inviare messaggi ACL usando i seguenti protocolli: HTTP IIOP WAP Tutti questi protocolli sono delegati al trasporto di messaggi ACL, la scelta di quale usare è lasciata al programmatore della piattaforma per agenti.

More Related