Framework de développement d'agent Java - Java Agent Development Framework
| Version stable | 4.5.0 / 8 juin 2017
|
|---|---|
| Écrit en | Java |
| Plate-forme | Java SE |
| Taper | Système multi-agents , cadre logiciel |
| Licence | Licence publique générale limitée GNU |
| Site Internet |
jade |
Java Agent Development Framework , ou JADE , est un framework logiciel pour le développement d' agents intelligents , implémenté en Java . Le système JADE prend en charge la coordination entre plusieurs agents FIPA et fournit une implémentation standard du langage de communication FIPA-ACL , qui facilite la communication entre les agents et permet la détection des services du système. JADE a été à l'origine développé par Telecom Italia et est distribué sous forme de logiciel gratuit .
Reprendre
JADE est un middleware qui facilite le développement de systèmes multi-agents dans le cadre du FIPA standard pour lequel il crée plusieurs conteneurs pour les agents, chacun d'eux pouvant fonctionner sur un ou plusieurs systèmes. Il est entendu qu'un ensemble de conteneurs constitue une plate-forme.
JADE fournit:
- Un environnement dans lequel les agents JADE sont exécutés
- Bibliothèques de classes pour créer des agents en utilisant l'héritage et la redéfinition des comportements
- Une boîte à outils graphique pour surveiller et gérer la plateforme d' agents intelligents
Histoire
JADE a été initialement développé par Telecom Italia Lab. Ce secteur est la branche R&D du groupe Telecom Italia qui est chargée de promouvoir l'innovation technologique. Telecom Italia a conçu et promu JADE en le fondant en 2000. Les dernières dates disponibles à partir de juin 2017 (version 4.5). La première version de JADE distribuée sous forme de logiciel libre est disponible à partir de février 2000 (versión 1.3).
En mars 2003, Motorola et Telecom Italia ont créé le comité directeur de JADE dans le but de promouvoir le développement et l'adoption de JADE dans le secteur des télécommunications mobiles en tant que middleware . Le Conseil d'Administration de JADE accepte à toute entreprise et / ou organisation intéressée par l'utilisation commerciale et l'exploitation de JADE de s'engager dans son développement et sa promotion.
Plate-forme
JADE est une plate-forme d'agents distribuée, qui dispose d'un conteneur pour chaque hôte sur lequel vous exécutez les agents. De plus, la plate-forme dispose de divers outils de débogage, de la mobilité du code et des agents de contenu, de la possibilité d'exécution parallèle du comportement des agents, ainsi que du support pour la définition de langages et d' ontologies . Chaque plate-forme doit avoir un conteneur parent qui a deux agents spéciaux appelés AMS et DF.
- Le DF (Directory Facilitator) fournit un annuaire qui annonce quels agents sont disponibles sur la plateforme.
- L'AMS (Agent Management System) contrôle la plateforme. C'est le seul qui peut créer et détruire d'autres agents, détruire des conteneurs et arrêter la plateforme.
Agent DF
Pour accéder à l'agent DF, la classe "jade.domain.DFService" et ses méthodes statiques sont utilisées: enregistrer, désenregistrer, modifier et rechercher .
Agent AMS
Pour accéder au service AMS, un agent est créé qui exécute automatiquement la méthode de registre de l'AMS par défaut avant d'exécuter la configuration de la méthode à partir du nouvel agent. Lorsqu'un agent est détruit, il exécute sa méthode takeDown () par défaut et appelle automatiquement la méthode de désenregistrement de l'AMS.
Classe d'agent
La classe Agent est une superclasse qui permet aux utilisateurs de créer des agents JADE. Pour créer un agent, il faut hériter directement de l' agent . Normalement, chaque agent enregistre plusieurs services dont ils doivent être implémentés par un ou plusieurs comportements.
Cette classe fournit des méthodes pour effectuer les tâches de base des agents comme:
- Passer les messages par objets ACLMessage, avec correspondance de modèle
- Soutenir le cycle de vie d'un agent
- Planifiez et exécutez plusieurs activités en même temps
Agent JADE
Le cycle de vie d'un agent JADE suit le cycle proposé par le FIPA. Ces agents passent par différents états définis comme:
- Initié: l'agent a été créé mais n'a pas encore enregistré l'AMS.
- Actif: l'agent a été enregistré et a un nom. Dans cet état, il peut communiquer avec d'autres agents.
- Suspendu: l'agent est arrêté car son thread est suspendu.
- En attente: l'agent est bloqué en attente d'un événement.
- Supprimé: L'agent a terminé et son thread a terminé son exécution et il n'y en a plus dans l'AMS.
- Transit: l'agent déménage vers un nouvel emplacement.
Comportement des agents
Le comportement définit les actions sous un événement donné. Ce comportement de l'agent est défini dans la configuration de la méthode à l'aide de la méthode addBehaviour . Les différents comportements que l'agent adoptera sont définis à partir de la classe abstraite Behavior. La classe Behavior contient les méthodes abstraites:
- action (): est exécutée lorsque l'action a lieu.
- done (): est exécuté à la fin de la performance.
Un utilisateur peut remplacer les méthodes onStart () et la propriété OnEnd () . De plus, il existe d'autres méthodes telles que block () et restart () utilisées pour modifier le comportement de l'agent. Lorsqu'un agent est verrouillé, il peut être déverrouillé de différentes manières. Sinon, l'utilisateur peut remplacer les méthodes onStart () et onEnd () que l'agent possède.
Débloquer un agent
- Recevoir un message.
- Lorsque le délai d'expiration se produit, associé à block ().
- Appel de redémarrage.
Messages ACL
Message passant ACL (Agent Communication Language) est la base de la communication entre les agents. L'envoi des messages se fait par la méthode send de la classe Agent. Dans cette méthode, vous devez passer un objet de type ACLMessage qui contient les informations du destinataire, la langue, le codage et le contenu du message. Ces messages sont envoyés de manière asynchrone, tandis que les messages sont reçus, ils seront stockés dans une file d'attente de messages. Il existe deux types de réception de messages ACL, bloquants ou non bloquants. Pour cela, fournissez respectivement les méthodes blockingReceive () et receive () . Dans les deux méthodes, vous pouvez faire en sorte que les messages de filtrage soient récupérés de la file d'attente en définissant différents modèles.
Extensions
JADE a une extension dénommée WADE (Workflows and Agents Development Environment) qui est un système de workflow qui permet de créer des processus par un éditeur graphique nommé WOLF.
Voir également
- Système multi-agents
- Agent autonome
- Agent intelligent
- Architecture cognitive
- Langue de communication de l'agent
Les références
- Archives des actualités de Jade
- Guide de l'utilisateur de Wade
- Développement de systèmes multi-agents avec JADE , Volume 7 Wiley Series in Agent Technology, Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood ISBN 9780470058404
- Sécurité et confiance dans le middleware orienté agent , Sixth International, Ateliers OTM 2003. OTM 2003. Notes de cours en informatique, vol 2889. Springer, Berlin, A Poggi, M Tomaiuolo, G Vitaglione. ISBN 978-3-540-20494-7