Vés al contingut

Java Agent Development Framework

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 16:27, 27 maig 2025 amb l'última edició de Rebot (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.
(dif.) ←la pròxima versió més antiga | vegeu la versió actual (dif.) | Versió més nova → (dif.)
Infotaula de llenguatge de programacióJava Agent Development Framework
Tipusentorn de treball, llenguatge de programació i programari lliure Modifica el valor a Wikidata
Darrera versió estable4.6.0 () Modifica el valor a Wikidata
Llenguatge de programacióJava Modifica el valor a Wikidata
LlicènciaGNU LGPL Modifica el valor a Wikidata
Pàgina webjade.tilab.com Modifica el valor a Wikidata

Java Agent Development Framework, o JADE, és un framework de programari per al desenvolupament d'agents de programari, implementat en Java. El sistema JADE suporta la coordinació entre diversos agents FIPA i proporciona una implementació estàndard del llenguatge de comunicació FIPA-ACL, que facilita la comunicació entre agents i permet la detecció de serveis del sistema. JADE va ser desenvolupat originalment per Telecom Italia i es distribueix com a programari lliure.[1]

Resum

[modifica]

JADE és un middleware que facilita el desenvolupament de sistemes multiagent sota l'estàndard FIPA, per al qual crea múltiples contenidors per a agents, cadascun dels quals pot executar-se en un o més sistemes. S'entén que un conjunt de contenidors constitueix una plataforma.[2]

JADE ofereix:

  • Un entorn on s'executen agents JADE
  • Biblioteques de classes per crear agents utilitzant herència i redefinició de comportaments
  • Un conjunt d'eines gràfic per a la monitorització i gestió de la plataforma d'agents intel·ligents

Història

[modifica]

JADE va ser desenvolupat inicialment per Telecom Italia Lab. Aquest sector és la branca d'R+D del Grup Telecom Italia, que s'encarrega de promoure la innovació tecnològica. Telecom Italia va concebre i promoure JADE fundant-lo l'any 2000. Les últimes dades disponibles són del desembre de 2022 (versió 4.6.0). La primera versió de JADE distribuïda com a programari lliure està disponible des del febrer del 2000 (versió 1.3).

El març de 2003, Motorola i Telecom Italia van crear el Consell de Govern de JADE amb l'objectiu de promoure el desenvolupament i l'adopció de JADE a la indústria de les telecomunicacions mòbils com a middleware basat. El Consell de Govern de JADE accepta que qualsevol empresa i/o organització interessada en l'ús i l'explotació comercial de JADE es comprometi amb el seu desenvolupament i promoció.

El 2021, l'equip que va desenvolupar amb èxit JADE va anunciar que ja no hi podia continuar treballant. Un equip d'investigadors que l'ha bifurcat ara està duent a terme el desenvolupament de la plataforma.[3]

Plataforma

[modifica]

JADE és una plataforma d'agents distribuïts, que té un contenidor per a cada host on s'executen els agents. A més, la plataforma disposa de diverses eines de depuració, mobilitat d'agents de codi i contingut, la possibilitat d'execució paral·lela del comportament dels agents, així com suport per a la definició de llenguatges i ontologies. Cada plataforma ha de tenir un contenidor principal que tingui dos agents especials anomenats AMS i DF.

  • El DF (Directory Facilitator) proporciona un directori que anuncia quins agents estan disponibles a la plataforma.[4]
  • L'AMS (Agent Management System) controla la plataforma. És l'únic que pot crear i destruir altres agents, destruir contenidors i aturar la plataforma.

Agent de DF

[modifica]

Per accedir a l'agent DF s'utilitza la classe "jade.domain.DFService" i els seus mètodes estàtics: registrar, donar de baixa, modificar i Recerca.

Agent de l'AMS

[modifica]

Per accedir al servei AMS es crea un agent que executa automàticament el mètode de registre de l'AMS per defecte abans d'executar la configuració del mètode des del nou agent. Quan un agent és destruït, executa el seu mètode takeDown() per defecte i crida automàticament el mètode de deregister de l'AMS.[5]

Classe d'agent

[modifica]

La classe Agent és una superclasse que permet als usuaris crear agents JADE. Per crear un agent cal heretar directament d' Agent. Normalment, cada agent registra diversos serveis que s'han d'implementar mitjançant un o més comportaments.

Aquesta classe proporciona mètodes per dur a terme les tasques bàsiques dels agents com ara:

  • Passar missatges per objectes ACLMessage, amb coincidència de patrons
  • Donar suport al cicle de vida d'un agent
  • Planificar i executar diverses activitats alhora

Agent de JADE

[modifica]

El cicle de vida d'un agent JADE segueix el cicle proposat per FIPA. Aquests agents passen per diferents estats que es defineixen com:

  1. Iniciat: L'agent s'ha creat però encara no ha registrat l'AMS.
  2. Actiu: L'agent ha estat registrat i té un nom. En aquest estat, pot comunicar-se amb altres agents.
  3. Suspès: L'agent s'ha aturat perquè el seu fil està suspès.
  4. Esperant: L'agent està bloquejat esperant un esdeveniment.
  5. Suprimit: L'agent ha acabat i el seu fil ha finalitzat la seva execució i no hi ha més a l'AMS.
  6. Trànsit: L'agent es trasllada a una nova ubicació.

Comportament dels agents

[modifica]

El comportament defineix les accions sota un esdeveniment determinat. Aquest comportament de l'agent es defineix a la configuració del mètode mitjançant el mètode addBehaviour. Els diferents comportaments que adoptarà l'agent es defineixen a partir de la classe abstracta Behaviour. La classe Behaviour conté els mètodes abstractes:

  • acció(): S'executa quan té lloc l'acció.
  • fet(): S'executa al final de l'actuació.

Un usuari pot sobreescriure les propietats dels mètodes onStart() i OnEnd(). A més, hi ha altres mètodes com ara block () i restart() que s'utilitzen per modificar el comportament de l'agent. Quan un agent està bloquejat, es pot desbloquejar de diferents maneres. Altrament, l'usuari pot sobreescriure els mètodes onStart() i onEnd() que posseeix l'agent.

Missatges de l'ACL

[modifica]

L'ACL (Agent Communication Language) per la transmissió de missatges és la base de la comunicació entre agents. L'enviament de missatges es fa mitjançant el mètode send de la classe Agent. En aquest mètode, heu de passar un objecte de tipus ACLMessage que contingui la informació del destinatari, l'idioma, el codi i el contingut del missatge. Aquests missatges s'envien de manera asíncrona, a mesura que es reben els missatges s'emmagatzemen en una cua de missatges. Hi ha dos tipus de recepció de missatges ACL: bloquejant o no bloquejant. Per això, proporcioneu els mètodes blockingReceive() i receive() respectivament. En ambdós mètodes, podeu fer que els missatges de filtratge es recuperin de la cua definint plantilles diferents.

Referències

[modifica]
  1. «Jade Site | Java Agent DEvelopment Framework» (en anglès americà). Arxivat de l'original el 2025-03-15. [Consulta: 26 maig 2025].
  2. Bellifemine, Fabio; Bergenti, Federico; Caire, Giovanni; Poggi, Agostino. Jade — A Java Agent Development Framework (en anglès). Boston, MA: Springer US, 2005, p. 125–147. DOI 10.1007/0-387-26350-0_5. ISBN 978-0-387-26350-2. 
  3. Team, Invoxico. «Java Agent DEvelopment Framework - JADE | Invoxico» (en anglès americà), 16-08-2024. [Consulta: 26 maig 2025].
  4. «Java Agent Development Framework» (en anglès). [Consulta: 26 maig 2025].
  5. «[https://users.exa.unicen.edu.ar/catedras/tmultiag/JADE.pdf JADE – Java Agent DEvelopment Framework]» (en anglès). [Consulta: 6 maig 2025].