JADE : Java Agent DEvelopment framework - PowerPoint PPT Presentation

1 / 55
About This Presentation
Title:

JADE : Java Agent DEvelopment framework

Description:

Comment implementer des systemes multi-agents avec JADE ? Quels sont ... 1.3) Definition d'un systeme multi-agents. 1.4) Programmation orientee ... – PowerPoint PPT presentation

Number of Views:1639
Avg rating:3.0/5.0
Slides: 56
Provided by: Nico257
Category:

less

Transcript and Presenter's Notes

Title: JADE : Java Agent DEvelopment framework


1
JADE Java Agent DEvelopment framework
  • PRIMA
  • Laboratoire GRAVIR
  • INRIA Rhône-Alpes

2
Problematiques
  • Pourquoi le multi-agents ?
  • Quest ce quun systeme multi-agents ?
  • Comment implementer des systemes multi-agents
    avec JADE ?
  • Quels sont les interets de JADE ?

3
Plan
  • 1) Introduction aux systemes
  • multi-agents
  • 2) Introduction au langage JADE
  • 3) Programmer avec JADE

4
1. 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

5
1.1 Motivation (1)
  • Annees 80 Intelligence Artificielle
  • Un systeme unique
  • Gros
  • Sachant faire beaucoup de choses a lui seul
  • Trop difficile
  • -gt Impasse

6
1.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

7
1.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)

8
1.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

9
1.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

10
1.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

11
1.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

12
1.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

13
1.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

14
1.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,)

15
1.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

16
2. Introduction au langage JADE
  • 2.1) Modele dagent
  • 2.2) Services
  • 2.3) Norme FIPA
  • 2.4) Environnement et Architecture

17
2. 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

18
2.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 ?

19
2.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

20
2.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)

21
2.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)

22
2.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

23
2.3 Norme FIPA
  • Regles permettant a des agents de cooperer (1997)

24
2.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)

25
2.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

26
2.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

27
2.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

28
2.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

29
2.4 Receptacle frontal
30
2.4 Une plate-forme multi-agents
31
3. Programmer avec JADE
  • 3.1) Demarrer JADE
  • 3.2) Programmer des agents
  • 3.3) Service de Pages Jaunes
  • 3.4) Interface
  • 3.5) Integration

32
3.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

33
3.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)

34
3.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)

35
3.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

36
3.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

37
3.2 Exemple dagent
38
3.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

39
3.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

40
3.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

41
3.2 Resume du fonctionnement dun agent
42
3.2 Communication entre agents
  • Messages codes en langage ACL
  • Transmission asynchrone
  • Messages instancies par la classe
    jade.lang.acl.ACLMessage

43
3.2 Exemples de messages
  • Else block() //bloque un comportement

44
3.2 Lecture selective
  • Ne lire que certains messages

45
3.3 Service de Pages Jaunes
  • DF Agent comme les autres qui communique avec
    des messages ACL
  • Classe jade.domain.DFService
  • Search()
  • Register()
  • Deregister()
  • Modify()

46
3.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

47
3.4 Interface
  • Jade GUI
  • DF Agent GUI
  • Dummy Agent
  • Sniffer Agent
  • Introspector Agent

48
3.4 Jade GUI
  • Permet de controler les agents

49
3.4 DF Agent GUI
  • Permet de consulter les Pages Jaunes

50
3.4 Dummy Agent
  • Pour envoyer et recevoir des messages

51
3.4 Sniffer Agent
  • Surveille les echanges de messages dans une
    plate-forme

52
3.4 Introspector Agent
  • Pour surveiller lactivite dun agent (messages,
    cycle de vie)

53
3.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

54
Conclusion - 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

55
Conclusion - 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/
Write a Comment
User Comments (0)
About PowerShow.com