Java Agent Development Framework - Java Agent Development Framework
| Stabiele vrijlating | 4.5.0 / 8 juni 2017
|
|---|---|
| Geschreven in | Java |
| Platform | Java SE |
| Type | Multi-agentsysteem , softwareframework |
| Licentie | GNU Lesser General Public License |
| Website |
jade |
Java Agent Development Framework , of JADE , is een softwareframework voor de ontwikkeling van intelligente agents , geïmplementeerd in Java . JADE-systeem ondersteunt de coördinatie tussen verschillende FIPA- agenten en biedt een standaardimplementatie van de communicatietaal FIPA-ACL , die de communicatie tussen agenten vergemakkelijkt en de detectie van services van het systeem mogelijk maakt. JADE is oorspronkelijk ontwikkeld door Telecom Italia en wordt verspreid als gratis software .
Hervat
JADE is een middleware die de ontwikkeling van multi-agentsystemen onder de standaard FIPA mogelijk maakt , waarvoor het meerdere containers voor agents maakt, die elk op een of meer systemen kunnen draaien. Het is duidelijk dat een set containers een platform vormt.
JADE biedt:
- Een omgeving waarin JADE-agenten worden uitgevoerd
- Klassenbibliotheken om agents te creëren met behulp van erfgoed en herdefiniëring van gedragingen
- Een grafische toolkit voor het bewaken en beheren van het platform van intelligente agents
Geschiedenis
JADE is oorspronkelijk ontwikkeld door Telecom Italia Lab. Deze sector is de R & D-tak van Telecom Italia Group die verantwoordelijk is voor het bevorderen van technologische innovatie. Telecom Italia bedacht en promootte JADE door het in 2000 te baseren. De laatst beschikbare dateert van juni 2017 (versie 4.5). De eerste versie van JADE die als gratis software wordt gedistribueerd, is beschikbaar vanaf februari 2000 (versie 1.3).
In maart 2003 hebben Motorola en Telecom Italia de JADE Governing Board opgericht met als doel de ontwikkeling en acceptatie van JADE in de mobiele telecommunicatie-industrie als middleware- gebaseerd te bevorderen. De raad van bestuur van JADE aanvaardt elk bedrijf en / of elke organisatie die geïnteresseerd is in het commerciële gebruik en de exploitatie van JADE zich in te zetten voor de ontwikkeling en promotie ervan.
Platform
JADE is een gedistribueerd agentsplatform, dat een container heeft voor elke host waarop u de agents uitvoert. Daarnaast heeft het platform verschillende debugging-tools, mobiliteit van code en content agents, de mogelijkheid om het gedrag van agents parallel uit te voeren, en ondersteuning voor de definitie van talen en ontologieën . Elk platform moet een bovenliggende container hebben met twee speciale agents, AMS en DF.
- De DF (Directory Facilitator) biedt een directory die aangeeft welke agents beschikbaar zijn op het platform.
- Het AMS (Agent Management System) beheert het platform. Het is de enige die andere agenten kan creëren en vernietigen, containers kan vernietigen en het platform kan stoppen.
DF-agent
Om toegang te krijgen tot de DF-agent wordt de klasse "jade.domain.DFService" en zijn statische methoden gebruikt: registreren, uitschrijven, wijzigen en zoeken .
AMS-agent
Om toegang te krijgen tot de AMS-service wordt een agent aangemaakt die standaard automatisch de registratiemethode van de AMS uitvoert voordat de methode- setup vanaf de nieuwe agent wordt uitgevoerd. Wanneer een agent wordt vernietigd voert de verwijdering () methode standaard automatisch verzoekt het afmelden werkwijze van de AMS.
Agent klasse
De klasse Agent is een superklasse waarmee gebruikers JADE-agents kunnen maken. Om een agent aan te maken, moet u rechtstreeks erven van Agent . Normaal gesproken registreert elke agent verschillende services waarvoor ze moeten worden geïmplementeerd door een of meer gedragingen.
Deze klasse biedt methoden om de basistaken van de agents uit te voeren, zoals:
- Geef berichten door objecten ACLMessage, met patroonovereenkomst
- Ondersteun de levenscyclus van een agent
- Plan en voer meerdere activiteiten tegelijkertijd uit
JADE-agent
De levenscyclus van een JADE-agent volgt de cyclus die wordt voorgesteld door FIPA. Deze agents gaan door verschillende statussen, gedefinieerd als:
- Geïnitieerd: de agent is gemaakt maar heeft de AMS nog niet geregistreerd.
- Actief: de agent is geregistreerd en heeft een naam. In deze staat kan het communiceren met andere agenten.
- Opgeschort: de agent is gestopt omdat de thread is onderbroken.
- Wachten: de agent is geblokkeerd in afwachting van een gebeurtenis.
- Verwijderd: de agent is klaar en zijn thread heeft zijn uitvoering beëindigd en er staat niets meer in de AMS.
- Transit: de agent verhuist naar een nieuwe locatie.
Gedrag van agenten
Het gedrag definieert de acties onder een bepaalde gebeurtenis. Dit gedrag van de agent wordt gedefinieerd in de methode- setup met behulp van de methode addBehaviour . De verschillende gedragingen die de agent zal aannemen, worden gedefinieerd vanuit de abstracte klasse Gedrag. De klasse Behaviour bevat de abstracte methoden:
- action (): wordt uitgevoerd wanneer de actie plaatsvindt.
- done (): wordt uitgevoerd aan het einde van de uitvoering.
Een gebruiker kan de methoden onStart () en OnEnd () eigenschap overschrijven . Bovendien zijn er andere methoden, zoals block () en restart (), die worden gebruikt om het gedrag van de agent te wijzigen. Wanneer een agent is vergrendeld, kan deze op verschillende manieren worden ontgrendeld. Anders kan de gebruiker de methoden onStart () en onEnd () die de agent bezit, overschrijven .
Ontgrendel een agent
- Een bericht ontvangen.
- Wanneer de time-out optreedt in verband met block ().
- Opnieuw opstarten.
ACL-berichten
Het doorgeven van berichten ACL (Agent Communication Language) is de basis van communicatie tussen agenten. Het verzenden van berichten gebeurt door de methode send van de klasse Agent. Bij deze methode moet u een object van het type ACLMessage doorgeven dat de informatie over de ontvanger, de taal, de codering en de inhoud van het bericht bevat. Deze berichten worden asynchroon verzonden, terwijl berichten worden ontvangen, worden ze opgeslagen in een berichtenwachtrij. Er zijn twee soorten ontvangst van ACL-berichten: blokkerend of niet-blokkerend. Hiervoor bieden methoden blockingReceive () en ontvangen () respectievelijk. Bij beide methoden kunt u ervoor zorgen dat filterberichten uit de wachtrij worden opgehaald door verschillende sjablonen in te stellen.
Extensies
JADE heeft een extensie genaamd WADE (Workflows and Agents Development Environment), een workflowsysteem dat een creatieproces mogelijk maakt door een grafische editor genaamd WOLF.
Zie ook
- Multi-agentsysteem
- Autonome agent
- Intelligente agent
- Cognitieve architectuur
- Agent Communications Language
Referenties
- Jade nieuwsarchief
- Wade gebruikershandleiding
- Multi-Agent Systems ontwikkelen met JADE , Volume 7 Wiley Series in Agent Technology, Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood ISBN 9780470058404
- Beveiliging en vertrouwen in agentgeoriënteerde middleware , Sixth International, OTM 2003 Workshops. OTM 2003. Lecture Notes in Computer Science, vol 2889. Springer, Berlijn, A Poggi, M Tomaiuolo, G Vitaglione. ISBN 978-3-540-20494-7