Framework rozwoju agenta Java

JADEIT
Wersja stabilna
4.6.0 / 19 grudnia 2022 r . ; 2 miesiące temu ( 2022-12-19 )
Napisane w Jawa
Platforma Java SE
Typ System wieloagentowy , szkielet oprogramowania
Licencja Mniejsza Powszechna Licencja Publiczna GNU
Strona internetowa jade-project .gitlab .io  Edit this on Wikidata

Java Agent Development Framework lub JADE to platforma programowa do tworzenia inteligentnych agentów , zaimplementowana w Javie . System JADE wspiera koordynację pomiędzy kilkoma agentami FIPA oraz zapewnia standardową implementację języka komunikacji FIPA-ACL , który ułatwia komunikację pomiędzy agentami oraz umożliwia wykrycie przez służby systemu. JADE został pierwotnie opracowany przez Telecom Italia i jest rozpowszechniany jako darmowe oprogramowanie .

Wznawiać

JADE to oprogramowanie pośrednie , które ułatwia tworzenie systemów wieloagentowych w ramach standardu FIPA , w tym celu tworzy wiele kontenerów dla agentów, z których każdy może działać na jednym lub kilku systemach. Rozumie się, że zestaw kontenerów stanowi platformę.

JADE zapewnia:

  • Środowisko, w którym wykonywani są agenci JADE
  • Biblioteki klas do tworzenia agentów przy użyciu dziedzictwa i redefinicji zachowań
  • Graficzny zestaw narzędzi do monitorowania i zarządzania platformą inteligentnych agentów

Historia

JADE został początkowo opracowany przez Telecom Italia Lab. Sektor ten to dział badawczo-rozwojowy Grupy Telecom Italia, który jest odpowiedzialny za promowanie innowacji technologicznych. Telecom Italia wymyślił i wypromował JADE, opierając się na nim w 2000 roku. Ostatnie dostępne daty pochodzą z czerwca 2017 (wersja 4.5). Pierwsza wersja JADE rozpowszechniana jako wolne oprogramowanie jest dostępna od lutego 2000 (wersja 1.3).

W marcu 2003 r. Motorola i Telecom Italia utworzyły Radę Zarządzającą JADE w celu promowania rozwoju i wdrażania JADE w branży telefonii komórkowej jako oprogramowania pośredniego . Rada Zarządzająca JADE zgadza się, aby każda firma i/lub organizacja zainteresowana komercyjnym wykorzystaniem i eksploatacją JADE zobowiązała się do jej rozwoju i promocji.

W 2021 roku zespół, który z powodzeniem opracował JADE, ogłosił, że nie może dalej nad nim pracować. Zespół badaczy rozwidlił go i obecnie zajmuje się rozwojem platformy.

Platforma

JADE to platforma rozproszonych agentów, która ma kontener dla każdego hosta, na którym uruchamiasz agentów. Dodatkowo platforma posiada różne narzędzia do debugowania, mobilność agentów kodu i treści, możliwość równoległego wykonywania zachowań agentów, a także wsparcie dla definicji języków i ontologii . Każda platforma musi mieć kontener nadrzędny, który ma dwóch agentów specjalnych o nazwach AMS i DF.

  • DF (Directory Facilitator) udostępnia katalog, który informuje, którzy agenci są dostępni na platformie.
  • AMS (Agent Management System) kontroluje platformę. Jako jedyny może tworzyć i niszczyć innych agentów, niszczyć kontenery i zatrzymywać platformę.

Agent DF

Aby uzyskać dostęp do agenta DF, używana jest klasa „jade.domain.DFService” i jej metody statyczne: register, deregister,modyfikuj i Search .

Agent AMS

Aby uzyskać dostęp do usługi AMS, tworzony jest agent, który domyślnie automatycznie uruchamia metodę register systemu AMS przed wykonaniem konfiguracji metody z nowego agenta. Kiedy agent zostaje zniszczony, domyślnie wykonuje swoją metodę takeDown() i automatycznie wywołuje metodę deregister AMS.

Klasa agenta

Klasa Agent jest nadklasą, która umożliwia użytkownikom tworzenie agentów JADE. Aby utworzyć agenta, należy dziedziczyć bezpośrednio po Agent . Zwykle każdy agent rejestruje kilka usług, które powinien realizować za pomocą jednego lub kilku zachowań.

Ta klasa udostępnia metody do wykonywania podstawowych zadań agentów, takich jak:

  • Przekazuj komunikaty przez obiekty ACLMessage z dopasowywaniem wzorców
  • Wspieraj cykl życia agenta
  • Planuj i wykonuj wiele czynności jednocześnie

agent JADE

Cykl życia agenta JADE jest zgodny z cyklem zaproponowanym przez FIPA. Agenci ci przechodzą przez różne stany zdefiniowane jako:

  1. Zainicjowano: agent został utworzony, ale nie zarejestrował jeszcze systemu AMS.
  2. Aktywny: agent został zarejestrowany i ma nazwę. W tym stanie może komunikować się z innymi agentami.
  3. Zawieszony: Agent jest zatrzymany, ponieważ jego wątek jest zawieszony.
  4. Oczekiwanie: Agent jest zablokowany w oczekiwaniu na zdarzenie.
  5. Usunięto: Agent zakończył działanie, a jego wątek zakończył wykonywanie i nie ma już więcej w AMS.
  6. Tranzyt: agent przenosi się do nowej lokalizacji.

Zachowanie agentów

Zachowanie definiuje działania w ramach danego zdarzenia. To zachowanie agenta jest zdefiniowane w konfiguracji metody za pomocą metody addBehaviour . Różne zachowania, które przyjmie agent, są zdefiniowane na podstawie klasy abstrakcyjnej Zachowanie. Klasa Behavior zawiera metody abstrakcyjne:

  • akcja (): jest wykonywana, gdy akcja ma miejsce.
  • done (): Jest wykonywany na końcu występu.

Użytkownik może nadpisać właściwości metod onStart() i OnEnd() . Ponadto istnieją inne metody, takie jak block () i restart(), które służą do modyfikowania zachowania agenta. Gdy agent jest zablokowany, można go odblokować na różne sposoby. W przeciwnym razie użytkownik może zastąpić metody onStart() i onEnd() agenta.

Odblokuj agenta

  1. Odbieranie wiadomości.
  2. Kiedy nastąpi przekroczenie limitu czasu związane z blokiem ().
  3. Ponowne dzwonienie.

wiadomości ACL

Przekazywanie wiadomości ACL (Agent Communication Language) jest podstawą komunikacji między agentami. Wysyłanie wiadomości odbywa się metodą send klasy Agent. W tej metodzie musisz przekazać obiekt typu ACLMessage, który zawiera informacje o odbiorcy, język, kodowanie i treść wiadomości. Wiadomości te są wysyłane asynchronicznie, podczas odbierania wiadomości będą przechowywane w kolejce wiadomości. Istnieją dwa rodzaje otrzymywania komunikatów ACL, blokujące i nieblokujące. W tym celu udostępnij metody blockingReceive() i receive() odpowiednio. W obu metodach można ustawić filtrowanie wiadomości, które mają być pobierane z kolejki, ustawiając różne szablony.

Rozszerzenia

JADE posiada rozszerzenie o nazwie WADE (Workflows and Agents Development Environment), które jest systemem workflow umożliwiającym tworzenie procesu przez edytor graficzny o nazwie WOLF.

Zobacz też

  • Archiwum wiadomości Jade
  • Podręcznik użytkownika Wade'a
  •   Tworzenie systemów wieloagentowych za pomocą JADE , tom 7 Wiley Series in Agent Technology, Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood ISBN 9780470058404
  •   Bezpieczeństwo i zaufanie w oprogramowaniu pośrednim zorientowanym na agenty , Sixth International, Warsztaty OTM 2003. OTM 2003. Notatki z wykładów z informatyki, tom 2889. Springer, Berlin, A Poggi, M Tomaiuolo, G Vitaglione. ISBN 978-3-540-20494-7

Linki zewnętrzne