Title: JADE : Java Agent DEvelopment framework
1JADE Java Agent DEvelopment framework
- PRIMA
- Laboratoire GRAVIR
- INRIA Rhône-Alpes
2Problematiques
- Pourquoi le multi-agents ?
- Quest ce quun systeme multi-agents ?
- Comment implementer des systemes multi-agents
avec JADE ? - Quels sont les interets de JADE ?
3Plan
- 1) Introduction aux systemes
- multi-agents
- 2) Introduction au langage JADE
- 3) Programmer avec JADE
41. Introduction aux systemes multi-agents
- 1.1) Motivation
- 1.2) Definition dun agent
- 1.3) Definition dun systeme multi-agents
- 1.4) Programmation orientee multi-agents
51.1 Motivation (1)
- Annees 80 Intelligence Artificielle
- Un systeme unique
- Gros
- Sachant faire beaucoup de choses a lui seul
- Trop difficile
- -gt Impasse
61.1 Motivation (2)
- Annees 90 Architecture multi-agents
- Plusieurs systemes
- Petits
- Sachant faire peu de choses a eux seuls
- Pouvant faire beacoup de choses quand ils
COLLABORENT - Analogie avec la vie reelle
- Ex. Domaine de la recherche
71.2 Definition dun agent
- Pas de definition unifiee
- Agent
- Entite autonome (logiciel, robot,)
- Capable dagir sur son environnement
- De communiquer avec dautres agents
- (a laide de messages)
81.2 Communication entre agents
- Plusieurs types de messages
- 2 types de messages les plus utilises
- Message a plusieurs agents, pour demander ou
signaler quelque chose - Message a un seul agent, par exemple pour
repondre a une question
91.2 Comportement dun agent
- Comportement Consequences
- De ses observations de lenvironnement
- De ses connaissances
- De ses interactions avec les autres agents
- Un agent peut etre specialise
101.3 Definition dun systeme multi-agents
- Systeme Multi-Agents (SMA)
- Agents
- Objets passifs
- Environnement Lois
- Relations unissant agents et objets
- Actions possibles
- Objectif a atteindre
- Centralise ou pas
111.3 Les agents dans un systeme multi-agents
- Les agents
- Vivent dans une communaute, le SMA
- Sorganisent et cooperent entre eux au sein dun
SMA pour satisfaire son objectif - Peuvent se deplacer dun SMA a un autre,
volontairement ou pas
121.3 Problemes lies aux systemes multi-agents
- Certains agents peuvent
- Ne pas cooperer
- Etre trop gourmands en ressources
- -gt Lobjectif du SMA ne peut etre atteint
- -gt Les agents doivent respecter des regles de
bonne conduite
131.3 Exemples de systemes multi-agents
- Systemes naturels
- Ecosystemes
- Fourmillieres
- Robots dans des milieux hostiles
- Systemes informatiques
- Mondes virtuels (avatars,)
- Moteurs de recherche
- Calculs paralleles
141.4 Programmation orientee multi-agents
- Analogie avec la programmation orientee objet
- Programmation haut niveau
- Architecture generale des agents
- Representation de lenvironnement
- Interactions
- Organisation
- (Dynamique particuliere
- Comportement emergent, flux,)
151.4 Plateformes multi-agents
- Concevoir des applications
- Ne pas programmer les fonctions de base
dinteractions, de connexions, - Programmer sans avoir des connaissances
theoriques poussees sur les systemes multi-agents
162. Introduction au langage JADE
- 2.1) Modele dagent
- 2.2) Services
- 2.3) Norme FIPA
- 2.4) Environnement et Architecture
172. Quest-ce que JADE ?
- Plate-forme Multi-agents en Java developpee par
Gruppo Telecom Italia - Respecte la Norme FIPA
- But Realiser simplement des Systemes
Multi-Agents inter-operables
182.1 Modele dagents - Objectifs
- Un agent ne doit pas se limiter a reagir aux
evenements exterieurs - Un agent doit avoir la possibilite de prendre des
initiatives - Comment rendre un agent autonome ?
192.1 Modele dagents (1)
- Un agent
- possede toujours un etat
- a toujours un cycle de vie
- Classe Comportement derivee de la super-classe
Agent - File de comportement dagent rajouter ou
enlever un comportement a un agent
202.1 Modele dagents (2)
- Programmation concurrente
- Un thread par agent
- Plutot quun thread par comportement
- -gt surcharge du nombre de threads
- Planificateur de taches
- Un comportement peut se bloquer lui-meme pour
eviter de gaspiller du CPU (Ex. pendant quil
attend des messages)
212.2 Les services
- Action enregistrée et dispensée par la plateforme
- Comportements dun ou plusieurs agents répondant
a une demande. - Annuaire des services Pages Jaunes
- Directory Facilitator (DF)
222.2 Les Pages Jaunes (DF)
- Enregistre les descriptions des agents ainsi que
les services qu'ils offrent - Les agents peuvent
- Enregistrer leurs services auprès d'un DF
- Demander au DF de découvrir les services offerts
par d'autres agents
232.3 Norme FIPA
- Regles permettant a des agents de cooperer (1997)
242.3 Specificites dune plate-forme FIPA
- Systeme de Gestion dAgents (AMS)
- Agent central qui supervise les autres agents et
les acces a la plate-forme (Pages Blanches) - Canal de Communication entre Agents (ACC)
- Agent qui fournit la route pour les interactions
entre agents dans et en dehors de la plateforme - Facilitateur dAnnuaire (DF)
- Agent qui fournit un service de Pages Jaunes
(recensement des services disponibles)
252.4 Environnement JADE
- AMS, ACC, DF
- Plate-forme Multi-agents distribuee
- 1 Machine Virtuelle JAVA par Hote
- 1 agent 1 thread
- JADE planifie les taches dun agent plus
efficacement que la machine virtuelle JAVA - Messages ACL codes en objets JAVA
- Interface graphique
262.4 Architecture dune plate-forme multi-agents
(1)
- Un receptacle dagents
- Est un objet serveur RMI qui gere localement un
ensemble dagents Machine Virtuelle JAVA - Gere le cycle de vie des agents
- (creation, mort, supsension, reprise,)
- Repartit les messages ACL dans les files
dattente des agents - Interface graphique implementee comme un agent
permet de jouer sur letat des agents
272.4 Architecture dune plate-forme multi-agents
(2)
- Communication de plusieurs machines virtuelles
(VM) JAVA par la methode RMI - Chaque VM est un receptacle dagents et un
environnement multi-threads compose - Dun thread dexecution pour chaque agent
- De threads de RMI pour echanger les messages
- Plusieurs VM sur le meme hote possible, mais
deconseille car surcroit de travail pour lhote
282.4 Architecture dune plate-forme multi-agents
(3)
- Réceptacle spécial implémenté pour l'exécution
des agents dans un navigateur Web - Receptacle frontal de la plate-forme
- Contient les agents de gestion
- Represente la plate-forme vue par lexterieur
- Les differentes plate-formes multi-agents sont
connectees entre elles grace au protocole IIOP
292.4 Receptacle frontal
302.4 Une plate-forme multi-agents
313. Programmer avec JADE
- 3.1) Demarrer JADE
- 3.2) Programmer des agents
- 3.3) Service de Pages Jaunes
- 3.4) Interface
- 3.5) Integration
323.1 Installation de JADE
- Installer Java (jdk 1.2 ou superieure)
- Attention au  path et au  classpathÂ
- Installer le package Jade
- Copier les classes
- Mettre a jour le  classpathÂ
- \jade
- \jade\Lib
- \jade\Lib\iiop.jar
- \jade\Lib\jade.jar
- \jade\Lib\jadeTools.jar
- Installer les agents comme des classes java
classiques
333.1 Demarrage de JADE
- Lancer Jade avec la ligne de commandes
- java jade.Boot
- Lancer Jade et la GUI
- java jade.Boot gui
- Lancer un agent au demarrage
- java jade.Boot gui ltnom de lagentgtltclasse de
lagentgt - Lancer un agent avec des parametres
- java jade.Boot gui ltnom de lagentgtltclasse de
lagentgt(ltParametresgt)
343.2 Creation dun agent
- Etendre la classe jade.core.Agent
- import jade.core.agent
- public class monAgent extends Agent
- Chaque agent est identifie par un AID
- Methode getAID() pour recuperer lAID
- Dans la méthode setup() (Obligatoire)
- Enregistrer les langages de contenu
- Enregistrer les Ontologies
- Enregistrer les Services auprès du DF
- Démarrer les Comportements (behaviors)
353.2 Nommage des agents
- Le nom dun agent
- Est de la forme
- ltnom-agentgt_at_ltnom-plate-formegt
- Doit etre globallement unique
- Plate-forme par defaut
- ltmain-hostgtltmain-portgt/JADE
- Nom de la plate-forme defini avec -name
363.2 Methodes de la classe Agent
- Methode getArguments() pour obtenir les arguments
dun agent - Methode doDelete() pour tuer un agent
- Methode takeDown() pour le agent garbage
collector
373.2 Exemple dagent
383.2 Creation dun comportement
- Créer (étendre la classe  behaviour )
- public class myBehaviour extends Behaviour
- Creer le constructeur avec la super classe
- public myBehaviour(Agent agent) super(agent)
- Créer la méthode  action (Obligatoire) qui
correspond à lexécution du behaviour - public void action() ltcode du behaviourgt
393.2 Comportements (1)
- Pour faire faire une tache a un agent
- Creer une instance de la sous-classe Behaviour
- Appeler la methode MonAgent.addBehaviour()
- Chaque sous-classe Behaviour doit avoir les
methodes - Public void action() Ce que fait le behaviour
- Public boolean done() Si le behaviour est fini
ou non
403.2 Comportements (2)
- Plusieurs types de comportements
- Cyclique
- One Shot
- Complexes, one shot
-
- Nouveau comportement mis en place quand la
methode done() du comportement courant retourne 1
413.2 Resume du fonctionnement dun agent
423.2 Communication entre agents
- Messages codes en langage ACL
- Transmission asynchrone
- Messages instancies par la classe
jade.lang.acl.ACLMessage
433.2 Exemples de messages
-
- Else block() //bloque un comportement
443.2 Lecture selective
- Ne lire que certains messages
453.3 Service de Pages Jaunes
- DF Agent comme les autres qui communique avec
des messages ACL - Classe jade.domain.DFService
- Search()
- Register()
- Deregister()
- Modify()
463.3 Recherche dans un DF
- Pour sinscrire dans un DF, il faut une
description classe DFAgentDescription - AID de lagent
- Nom du service
- Type de service
- Langages, Ontologies,
- Pour rechercher dans un DF, creer une autre
instance de la classe DFAgentDescription
473.4 Interface
- Jade GUI
- DF Agent GUI
- Dummy Agent
- Sniffer Agent
- Introspector Agent
483.4 Jade GUI
- Permet de controler les agents
493.4 DF Agent GUI
- Permet de consulter les Pages Jaunes
503.4 Dummy Agent
- Pour envoyer et recevoir des messages
513.4 Sniffer Agent
- Surveille les echanges de messages dans une
plate-forme
523.4 Introspector Agent
- Pour surveiller lactivite dun agent (messages,
cycle de vie)
533.5 Integration
- Integration avec JESS
- Communication avec les messages de JESS
- Un programme JESS peut controler les messages et
les comportements des agents de JADE - Classe JessBehavior
- Integration avec servlets, applets, JSP
- Integration avec XML
54Conclusion - Interets de JADE
- Norme FIPA deja implementee
- Communauté de plus en plus importante
- Exécution distribuée sur plusieurs hotes et types
de machines (PC, mobile, ) - Exécution concurrente des agents
- Communication transparente par message (ACL)
- Prise en main facile
- Open Source
55Conclusion - Bibliographie
- FIPA Foundation for Intelligent Physical Agents.
Specifications. 1997. http//www.fipa.org - Plate-forme JADE Java Agent Development
Framework, 2000. http//jade.tilab.com/ - Java Expert System Shell (JESS)
http//herzberg.ca.sandia.gov/jess/ - AUML. The Agent Unified Modelling language,
http//www.auml.org/