Créez votre premier agent avec JADE et ECLIPSE

Youghourta BENALI

JADE est une plateforme qui permet de construire des systèmes multiagents (SMA), créée par le laboratoire TILAB, entièrement implémenté en JAVA. Nous allons découvrir comment installer et créer notre premier agent avec cette plateforme.
Commentez ♪

- Titre : Créez votre premier agent avec JADE et ECLIPSE

- Auteur : Youghourta BENALI

- Parution : 23 mars 2009

- Licence : Copyright ® 2021 djug. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Installation

- III. Création du premier agent avec JADE et ECLIPSE

- IV. Compilation et exécution de l'agent

- V. Remerciements

I - Introduction

Jade est un middleware qui facilite le développement des systèmes multi agents (SMA). JADE contient :

- un runtime Environment : l'environnement ou les agents peuvent vivre. Ce runtime environment doit être activé pour pouvoir lancer les agents ;

- une librairie de classes : que les développeurs utilisent pour écrire leurs agents ;

- une suite d'outils graphiques : qui facilitent la gestion et la supervision de la plateforme des agents.

Chaque instance du JADE est appelée conteneur « container », et peut contenir plusieurs agents. Un ensemble de conteneurs constituent une plateforme. Chaque plateforme doit contenir un conteneur spécial appelé main-container et tous les autres conteneurs s'enregistrent auprès de celui-là dés leur lancement

La figure suivante illustre les concepts de base du jade en montrant un petit exemple de deux plateformes jade composées respectivement de trois et un conteneur. Chaque agent est identifié par un identifiant unique et peut communiquer avec n'importe quel autre agent sans avoir besoin de connaître son emplacement :

- dans le même conteneur (exemple agents A2 et A3) ;

- dans la même plateforme, mais dans des conteneurs différant (ex A1 et A2) ;

- dans deux plateformes différentes (ex. A4 and A5).

Un main-container se distingue des autres « simples » conteneurs par une autre chose; il contient toujours deux agents spéciaux appelés AMS et DF qui sont lancés automatiquement au lancement du main-container :

- AMS (Agent Management System) qui fournit le service de nommage (pour assurer par exemple que chaque agent possède un identifiant unique dans la plateforme) et qui représente l'autorité de la plateforme (par exemple il est possible de créer/arrêter des agents en envoyant des requêtes à l'AMS) ;

- DF (Directory Facilitator) qui fournit un système de pages jaunes qui permet aux agents de retrouver les agents fournisseurs de services.

Source : « Developing multiagent applications with JADE. Tutorial for beginners » de la documentation officielle du JADE.

II - Installation

Voici les étapes à suivre pour installer JADE :

1. Téléchargez le fichier JADE-all-3.6.zip de l'adresse suivante :
http://jade.tilab.com/download.php ;

2. Décompressez le fichier (on va supposer tout au long de ce tutoriel que le chemin du répertoire JADE-all-3.6 est le c:\ JADE-all-3.6 ). Après avoir décompressé le fichier, vous retrouvez quatre autres fichiers ZIP (JADE-bin-3.6.zip , JADE-doc-3.6.zip, JADE-examples-3.6.zip, JADE-src-3.6.zip). Décompressez ces quatre fichiers ;

3. On doit maintenant mettre à jour la variable classpath (si elle n'existe pas encore il faut la créer) en faisant comme suit :

1. par Clic droit sur le poste de travail, choisissez propriétés. La fenêtre propriétés système apparaît ,choisissez l'onglet Avancé Puis cliquez sur variables d'environnement

Une petite fenêtre intitulée « variables d'environnement » apparaît

Dans la zone variables système, essayez de trouver la variable d'environnement qui porte le nom CLASSPATH. Si vous ne la trouvez pas,il faut la créer Maintenant que la variable est trouvée/créée on doit lui attribuer une valeur .cette valeur est la concaténation des chemins des quatre fichiers jar http.jar, iiop.jar, jade.jar, jadeTools.jar situés dans le chemin c:\JADE-all-3.6\JADE-bin-3.6\jade\lib

C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\http.jar;C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\iiop.jar;
C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\jade.jar;C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\jadeTools.jar

Séparez les chemins par des ; et Sauvegardez les modifications. Pour vérifier que l'opération est bien réalisée, tapez dans la fenêtre exécuter(démarrer->Exécuter) ou dans l'invite de commande la commande suivante :

Java jade.Boot -gui

Une fenêtre dos s'ouvre qui lance la plateforme jade. La fenêtre suivante apparaît :

III - Création du premier agent avec JADE et ECLIPSE

Maintenant, nous allons créer notre premier agent. Nous allons utiliser l'exemple fourni avec la plateforme situé dans : C:\JADE-all-3.6\JADE-examples-3.6\jade\src\examples\hello. Ouvrez Eclipse et créez un nouveau projet (MyFirstAgent par exemple), ajoutez un package (firstAgent) puis créez une nouvelle classe appelée HelloWorldAgent. Collez le code suivant dans la classe.

package firstAgent;
import jade.core.Agent;

/**
This example shows a minimal agent that just prints "Hello World!"
and then terminates.
@author Giovanni Caire - TILAB
*/
public class HelloWorldAgent extends Agent {

protected void setup() {
System.out.println("Hello World! My name is "+getLocalName());
// Make this agent terminate
doDelete();
}
}

// On ne va pas s'intéresser à comprendre chaque ligne du code, mais juste comment compiler et lancer l'agent.

Vous remarquez l'existence de plusieurs erreurs dans ce petit code. Pour résoudre ce petit problème,effectuez un clic droit sur le nom du projet. Puis choisissez propriétés. Cliquez sur java build path >> Libraries>> add external JAR

Ajoutez les quatre jar « http.jar » « iiop.jar » « jade.jar » « jadeTools.jar » situés dans C:\JADE-all-3.6\JADE-bin-3.6\jade\lib puis cliquez sur OK

IV - Compilation et exécution de l'agent

Il reste à compiler et lancer l'agent pour cela : Allez dans run>>Run configuration puis double-cliquez sur java application. Dans l'onglet « main » et dans la zone de saisie Main class, tapez le code suivant : jade.Boot puis cochez la case : « Include librairies when searching for a main class »

Et dans l'onglet arguments : tapez le code suivant :

-gui jade.Boot  NomDuL'agent:LeNomDuPackage.LeNomDeLaClasse

Dans notre exemple on tape le code suivant :

-gui jade.boot smith:firstAgent.HelloWorldAgent

puis cliquez sur apply pour ne pas refaire cette configuration plusieurs fois dans le même projet

Cliquez sur run pour voir le résultat (affichage de Hello World! My name is smith Dans la console et ouverture du la plateforme jade)

V - Remerciements

Je remercie Ricky81 et Pierre Fauconnier pour la relecture et l'encouragement.