SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
JADE :
Java Agent DEvelopment
framework
•Laboratoire IBISC & Départ. GEII
Université & IUT d’Evry
nadia.abchiche@ibisc.univ-evry.fr
Introduction à la plateforme
JADE
1) Modèle d’agent
2) Services
3) Norme FIPA
4) Environnement et Architecture
JADE
généralités
• Plate-forme Multi-agents en Java developpee
par Gruppo Telecom Italia
• Respecte la Norme FIPA
• But : Réaliser simplement des Systèmes
Multi-Agents interopérables
• Principalement de agents de type “cognitifs”
• Un agent :
• possède un état
• a un cycle de vie
• Classe Comportement derivée de la super-
classe Agent
• File de comportements d’agent : ajout ou
suppression d’un comportement à tout
moment
JADE
conception et implantation
• Programmation concurrente :
Un thread par agent
Plutôt qu’un thread par comportement pour
éviter une surcharge en nombre de threads
• Planificateur de tâches
• Un comportement peut se bloquer lui-même
pour éviter de gaspiller du CPU
 Ex.: pendant qu’il attend des messages
JADE
conception et implantation
• Les services
Action enregistrée et dispensée par la
plateforme
Comportements d’un ou plusieurs agents
répondant à une demande.
Annuaire des services = Pages Jaunes :
Directory Facilitator (DF)
JADE
conception et implantation
• 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
JADE
Conception et implantation
Norme FIPA (1997)
JADE
Conception et implantation
Spécificites de la plate-forme
• Système de Gestion d’Agents (AMS)
Agent central qui supervise les autres agents et
les accès à 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 d’Annuaire (DF)
Agent qui fournit un service de Pages Jaunes
(recensement des services disponibles)
JADE
Conception et implantation
Environnement JADE
• AMS, ACC, DF
• Plate-forme Multi-agents distribuee :
• 1 Machine Virtuelle JAVA par Hote
• 1 agent = 1 thread
• JADE planifie les tâches d’un agent plus
efficacement que la machine virtuelle JAVA
• Messages ACL codés en objets JAVA
• Interface graphique
JADE
Conception et implantation
Architecture de la plateforme
• Un receptacle d’agents :
• Est un objet serveur RMI qui gère localement un
ensemble d’agents + Machine Virtuelle JAVA
• Gère le cycle de vie des agents
(création, mort, supsension, reprise,…)
• Répartit les messages ACL dans les files d’attente
des agents
• Interface graphique implémentée comme un
agent
JADE
Conception et implantation
• Communication de plusieurs machines virtuelles
(VM) JAVA par la méthode RMI
• Chaque VM est un receptacle d’agents et un
environnement multi-threads compose :
• D’un thread d’exécution pour chaque agent
• De threads de RMI pour échanger les messages
• Plusieurs VM sur le même hôte possible, mais
déconseillé
Architecture de la plateforme (suite)
JADE
Conception et implantation
1) Démarrer JADE
2) Programmer des agents
3) Service de Pages Jaunes
4) Interface
5) Intégration
Programmer avec JADE
JADE
Conception et implantation
Installation de JADE
•Installer Java (jdk 1.2 ou plus)
Attention au « path » et au « classpath »
•Installer le package Jade
Copier les classes
Mettre à jour le « classpath » :
jade
jadeLib
jadeLibiiop.jar
jadeLibjade.jar
jadeLibjadeTools.jar
•Installer les agents comme des classes java classiques
JADE
Conception et implantation
Démarrage 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 <nom de l’agent>:<classe de l’agent>
•Lancer un agent avec des paramètres
java jade.Boot –gui <nom de l’agent>:<classe agent> (<Param>)
JADE
Conception et implantation
Création d’un 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 récupérer l’AID
•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)
JADE
Conception et implantation
Identification des agents
•Le nom d’un agent :
Est de la forme :
 <nom-agent>@<nom-plate-forme>
Doit être globalement unique
•Plate-forme par défaut :
<main-host>:<main-port>/JADE
•Nom de la plate-forme défini avec -name
JADE
Conception et implantation
Méthodes de la classe Agent
•Méthode getArguments() pour obtenir les
arguments d’un agent
•Méthode doDelete() pour tuer un agent
•Methode takeDown() pour lancer l’“agent
garbage collector”
JADE
Conception et implantation
Exemple
JADE
Conception et implantation
public class HelloWorldAgent extends Agent {
protected void setup() {
// creation de l’agent il se décrit lui même
ServiceDescription sd = new ServiceDescription();
sd.setType( "Hello example" );
sd.setName( "HelloServiceDescription" );
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName( getAID() );
dfd.addServices( sd );
// enregister sa description auprès du DF
DFService.register( this, dfd);
System.out.println("Hello! My name is"+ getLocalName());
//afficher son premier argumentObject[] args =
getArguments(); if (args != null && args.length > 0) {
System.out.println("mon premier argument : "+args[0]);
}
// l’agent se termine
doDelete(); } }
Création d’un comportement
•Créer (étendre la classe « behaviour »)
public class myBehaviour extends Behaviour
•Créer le constructeur avec la super classe
public myBehaviour(Agent agent){
super(agent);}
•Créer la méthode « action » (Obligatoire) qui
correspond à l’exécution du behaviour
public void action() {<code du behaviour>}
JADE
Conception et implantation
Comportements (1)
•Pour faire faire une tâche à un agent :
•Créer une instance de la sous-classe Behaviour
•Appeler la méthode MonAgent.addBehaviour()
•Chaque sous-classe Behaviour doit
implémenter les méthodes :
•Public void action() : Ce que fait le behaviour
•Public boolean done() : Si le behaviour est fini (rend
“true”) ou non (rend “false”)
JADE
Conception et implantation
Comportements (2)
•Plusieurs types de comportements :
•One Shot
•Complexe : combinaision de comportements simples
•SequentialBehaviour
•ParallelBehaviour
•FSMBehaviour
•Cyclique
•Nouveau comportement mis en place
quand la méthode done() du comportement
courant retourne vrai
JADE
Conception et implantation
Comportements (exemples)
public class MyOneShotBehaviour extends OneShotBehaviour {
public void action() {
// exécuter les opérations souhaitées une fois } }
public class MyCyclicBehaviour extends CyclicBehaviour {
public void action() {
// exécuter les opérations sans arrêt} }
public class ThreeStepBehaviour extends Behaviour {
private int step = 0;
// exécuter X, puis Y, puis Z, puis arrêt
public void action() {
switch (step) {
case 0: // perform operation X
step++; break;
case 1: // perform operation Y
step++; break;
case 2: // perform operation Z
step++; break; } }
public boolean done() {return step == 3; } }
JADE
Conception et implantation
Comportements (exemples)
public class MyStepAgent extends Agent {
protected void setup() {
System.out.println("Agent "+getLocalName()+"
démarre.");
// lancer le comportement généric
addBehaviour(new ThreeStepBehaviour());
// lancer un autre comportement (cyclic)
addBehaviour(new CyclicBehaviour(this));
}
JADE
Conception et implantation
Résume du fonctionnement d’un agent
JADE
Conception et implantation
Communication entre agents
•Messages codes en langage ACL
•Transmission asynchrone
•Messages instancies par la classe
jade.lang.acl.ACLMessage
JADE
Conception et implantation
Exemples de messages
else{ block(); } //bloque le comportement
JADE
Conception et implantation
Exemples de messages (filtrer les messages)
JADE
Conception et implantation
MessageTemplate mt;
mt= MessageTemplate.MatchPerformative(ACLMessage.CFP);
ACLMessage msg = myAgent.receive(mt);
if (msg != null) {
// un message de type CFP est reçu, récupérer son contenu
String titre = msg.getContent;
… }
Service de Pages Jaunes
•DF = Agent comme les autres qui
communique avec des messages ACL
•Classe jade.domain.DFService
•Search()
•Register()
•Deregister()
•Modify()
JADE
Conception et implantation
Recherche dans un DF
•Pour s’inscrire dans un DF, il faut une description,
classe DFAgentDescription :
•AID de l’agent
•Nom du service
•Type de service
•Langages, Ontologies,…
•Pour rechercher dans un DF, créer une autre
instance de la classe DFAgentDescription
JADE
Conception et implantation
Interface
• Jade GUI
• DF Agent GUI
• Dummy Agent
• Sniffer Agent
• Introspector Agent
JADE
Conception et implantation
Jade GUI
Permet de controler les agents
DF Agent GUI
Permet de consulter les Pages Jaunes
JADE
Conception et implantation
Dummy Agent
Pour envoyer et recevoir des messages
JADE
Conception et implantation
Sniffer Agent
Surveille les échanges de messages dans une
plate-forme
JADE
Conception et implantation
Introspector Agent
Pour surveiller l’activite d’un agent
(messages, cycle de vie)
JADE
Conception et implantation
• Integration avec JESS :
• Communication avec les messages de JESS
• Un programme JESS peut contrôler les messages
et les comportements des agents de JADE
• Classe JessBehavior
JADE
Conception et implantation
Conclusion
• Communauté de plus en plus importante
• Exécution distribuée sur plusieurs hôtes et
types de machines (PC, mobile, …)
• Exécution concurrente des agents
• Communication transparente par message
(ACL)
• Open Source
• Norme FIPA
JADE
Conception et implantation
Approfondir en TP ?
• Encapsuler le CBR et le RBR « stimulation
cognitive » avec Jess dans deux agents en vue
de les faire coopérer ;
• Dialogue dans un domaine de connaissance (à
choisir) entre 2 plusieurs agents. Faire
Communiquer les agents avec : tentative de
compréhension en employant la notion
ontologie ;
• Négociation via Contract Net protocol (exemple
d’application d’achat/vente) ;
• Résolution d’un problème par décomposition en
tâches et sous tâches ayant des
caractéristiques/ performances hétérogènes
(coopération). Cycle communication-
délibération-action.
JADE
Conception et implantation
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/
JADE
Conception et implantation

Contenu connexe

Tendances

Gp unified process
Gp unified processGp unified process
Gp unified processMoez Re
 
Théorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesThéorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesYann Caron
 
Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Amani Baklouti
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartisHeithem Abbes
 
Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents Rached Krim
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriMansouri Khalifa
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
SOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : DémystificationSOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : DémystificationKhaled Ben Driss
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
Intro conception et évaluation des IHM
Intro conception et évaluation des IHMIntro conception et évaluation des IHM
Intro conception et évaluation des IHMAnne-Marie Pinna-Dery
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 

Tendances (20)

Agent intelligent
Agent intelligentAgent intelligent
Agent intelligent
 
1.sma
1.sma1.sma
1.sma
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
Gp unified process
Gp unified processGp unified process
Gp unified process
 
Théorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langagesThéorie des langages - 04 Théorie des langages
Théorie des langages - 04 Théorie des langages
 
Cours fouille de donn+®es part1
Cours fouille de donn+®es part1Cours fouille de donn+®es part1
Cours fouille de donn+®es part1
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents Architecture des Systèmes Multi-Agents
Architecture des Systèmes Multi-Agents
 
UML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouriUML Part2- diagramme des uses cases_mansouri
UML Part2- diagramme des uses cases_mansouri
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
SOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : DémystificationSOA - Architecture Orientée Service : Démystification
SOA - Architecture Orientée Service : Démystification
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Intro conception et évaluation des IHM
Intro conception et évaluation des IHMIntro conception et évaluation des IHM
Intro conception et évaluation des IHM
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 

En vedette

Online Campaigning with Change.org Webinar
Online Campaigning with Change.org WebinarOnline Campaigning with Change.org Webinar
Online Campaigning with Change.org Webinarchangedotorg
 
Intelligent Online Case Based Planning Agent Model For Rts Games Conference ...
Intelligent Online Case Based Planning Agent Model For Rts Games  Conference ...Intelligent Online Case Based Planning Agent Model For Rts Games  Conference ...
Intelligent Online Case Based Planning Agent Model For Rts Games Conference ...Omar Enayet
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Visite virtuelle
Visite virtuelleVisite virtuelle
Visite virtuelleVictor Vela
 
Aeca group Energy & Sustainability Management For Asset Managers
Aeca group  Energy & Sustainability Management For Asset ManagersAeca group  Energy & Sustainability Management For Asset Managers
Aeca group Energy & Sustainability Management For Asset ManagersAeca group
 
Tutorial de google+ en teoría y modelos de aprendizaje
Tutorial de google+ en teoría y modelos de aprendizajeTutorial de google+ en teoría y modelos de aprendizaje
Tutorial de google+ en teoría y modelos de aprendizajeCarmen Valencia Gracia
 

En vedette (20)

Jade dimax
Jade dimaxJade dimax
Jade dimax
 
Online Campaigning with Change.org Webinar
Online Campaigning with Change.org WebinarOnline Campaigning with Change.org Webinar
Online Campaigning with Change.org Webinar
 
Intelligent Online Case Based Planning Agent Model For Rts Games Conference ...
Intelligent Online Case Based Planning Agent Model For Rts Games  Conference ...Intelligent Online Case Based Planning Agent Model For Rts Games  Conference ...
Intelligent Online Case Based Planning Agent Model For Rts Games Conference ...
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Visite virtuelle
Visite virtuelleVisite virtuelle
Visite virtuelle
 
Aeca group Energy & Sustainability Management For Asset Managers
Aeca group  Energy & Sustainability Management For Asset ManagersAeca group  Energy & Sustainability Management For Asset Managers
Aeca group Energy & Sustainability Management For Asset Managers
 
Tutorial de google+ en teoría y modelos de aprendizaje
Tutorial de google+ en teoría y modelos de aprendizajeTutorial de google+ en teoría y modelos de aprendizaje
Tutorial de google+ en teoría y modelos de aprendizaje
 

Similaire à JADE Framework

La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !Paris Salesforce Developer Group
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piadelegue
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsThomas Bassetto
 
ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéNicolas Deverge
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Francois Daoust
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyXavier Gorse
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 

Similaire à JADE Framework (20)

Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
JADE_C1.pdf
JADE_C1.pdfJADE_C1.pdf
JADE_C1.pdf
 
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
La Tooling API, est-ce pour moi ? Bien sûr, viens voir pourquoi !
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objets
 
ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & Agilité
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
2
22
2
 
Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?Le Web comme plateforme applicative - comment programme-t-on le Web?
Le Web comme plateforme applicative - comment programme-t-on le Web?
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Utiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec SymfonyUtiliser le Zend Framework avec Symfony
Utiliser le Zend Framework avec Symfony
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
Mgd scripting
Mgd scriptingMgd scripting
Mgd scripting
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 

Dernier

Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxbahija babzine
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 

Dernier (6)

Recurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptxRecurrent neural network_PresentationRNN.pptx
Recurrent neural network_PresentationRNN.pptx
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 

JADE Framework

  • 1. JADE : Java Agent DEvelopment framework •Laboratoire IBISC & Départ. GEII Université & IUT d’Evry nadia.abchiche@ibisc.univ-evry.fr
  • 2. Introduction à la plateforme JADE 1) Modèle d’agent 2) Services 3) Norme FIPA 4) Environnement et Architecture
  • 3. JADE généralités • Plate-forme Multi-agents en Java developpee par Gruppo Telecom Italia • Respecte la Norme FIPA • But : Réaliser simplement des Systèmes Multi-Agents interopérables • Principalement de agents de type “cognitifs”
  • 4. • Un agent : • possède un état • a un cycle de vie • Classe Comportement derivée de la super- classe Agent • File de comportements d’agent : ajout ou suppression d’un comportement à tout moment JADE conception et implantation
  • 5. • Programmation concurrente : Un thread par agent Plutôt qu’un thread par comportement pour éviter une surcharge en nombre de threads • Planificateur de tâches • Un comportement peut se bloquer lui-même pour éviter de gaspiller du CPU  Ex.: pendant qu’il attend des messages JADE conception et implantation
  • 6. • Les services Action enregistrée et dispensée par la plateforme Comportements d’un ou plusieurs agents répondant à une demande. Annuaire des services = Pages Jaunes : Directory Facilitator (DF) JADE conception et implantation
  • 7. • 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 JADE Conception et implantation
  • 9. Spécificites de la plate-forme • Système de Gestion d’Agents (AMS) Agent central qui supervise les autres agents et les accès à 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 d’Annuaire (DF) Agent qui fournit un service de Pages Jaunes (recensement des services disponibles) JADE Conception et implantation
  • 10. Environnement JADE • AMS, ACC, DF • Plate-forme Multi-agents distribuee : • 1 Machine Virtuelle JAVA par Hote • 1 agent = 1 thread • JADE planifie les tâches d’un agent plus efficacement que la machine virtuelle JAVA • Messages ACL codés en objets JAVA • Interface graphique JADE Conception et implantation
  • 11. Architecture de la plateforme • Un receptacle d’agents : • Est un objet serveur RMI qui gère localement un ensemble d’agents + Machine Virtuelle JAVA • Gère le cycle de vie des agents (création, mort, supsension, reprise,…) • Répartit les messages ACL dans les files d’attente des agents • Interface graphique implémentée comme un agent JADE Conception et implantation
  • 12. • Communication de plusieurs machines virtuelles (VM) JAVA par la méthode RMI • Chaque VM est un receptacle d’agents et un environnement multi-threads compose : • D’un thread d’exécution pour chaque agent • De threads de RMI pour échanger les messages • Plusieurs VM sur le même hôte possible, mais déconseillé Architecture de la plateforme (suite) JADE Conception et implantation
  • 13. 1) Démarrer JADE 2) Programmer des agents 3) Service de Pages Jaunes 4) Interface 5) Intégration Programmer avec JADE JADE Conception et implantation
  • 14. Installation de JADE •Installer Java (jdk 1.2 ou plus) Attention au « path » et au « classpath » •Installer le package Jade Copier les classes Mettre à jour le « classpath » : jade jadeLib jadeLibiiop.jar jadeLibjade.jar jadeLibjadeTools.jar •Installer les agents comme des classes java classiques JADE Conception et implantation
  • 15. Démarrage 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 <nom de l’agent>:<classe de l’agent> •Lancer un agent avec des paramètres java jade.Boot –gui <nom de l’agent>:<classe agent> (<Param>) JADE Conception et implantation
  • 16. Création d’un 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 récupérer l’AID •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) JADE Conception et implantation
  • 17. Identification des agents •Le nom d’un agent : Est de la forme :  <nom-agent>@<nom-plate-forme> Doit être globalement unique •Plate-forme par défaut : <main-host>:<main-port>/JADE •Nom de la plate-forme défini avec -name JADE Conception et implantation
  • 18. Méthodes de la classe Agent •Méthode getArguments() pour obtenir les arguments d’un agent •Méthode doDelete() pour tuer un agent •Methode takeDown() pour lancer l’“agent garbage collector” JADE Conception et implantation
  • 19. Exemple JADE Conception et implantation public class HelloWorldAgent extends Agent { protected void setup() { // creation de l’agent il se décrit lui même ServiceDescription sd = new ServiceDescription(); sd.setType( "Hello example" ); sd.setName( "HelloServiceDescription" ); DFAgentDescription dfd = new DFAgentDescription(); dfd.setName( getAID() ); dfd.addServices( sd ); // enregister sa description auprès du DF DFService.register( this, dfd); System.out.println("Hello! My name is"+ getLocalName()); //afficher son premier argumentObject[] args = getArguments(); if (args != null && args.length > 0) { System.out.println("mon premier argument : "+args[0]); } // l’agent se termine doDelete(); } }
  • 20. Création d’un comportement •Créer (étendre la classe « behaviour ») public class myBehaviour extends Behaviour •Créer le constructeur avec la super classe public myBehaviour(Agent agent){ super(agent);} •Créer la méthode « action » (Obligatoire) qui correspond à l’exécution du behaviour public void action() {<code du behaviour>} JADE Conception et implantation
  • 21. Comportements (1) •Pour faire faire une tâche à un agent : •Créer une instance de la sous-classe Behaviour •Appeler la méthode MonAgent.addBehaviour() •Chaque sous-classe Behaviour doit implémenter les méthodes : •Public void action() : Ce que fait le behaviour •Public boolean done() : Si le behaviour est fini (rend “true”) ou non (rend “false”) JADE Conception et implantation
  • 22. Comportements (2) •Plusieurs types de comportements : •One Shot •Complexe : combinaision de comportements simples •SequentialBehaviour •ParallelBehaviour •FSMBehaviour •Cyclique •Nouveau comportement mis en place quand la méthode done() du comportement courant retourne vrai JADE Conception et implantation
  • 23. Comportements (exemples) public class MyOneShotBehaviour extends OneShotBehaviour { public void action() { // exécuter les opérations souhaitées une fois } } public class MyCyclicBehaviour extends CyclicBehaviour { public void action() { // exécuter les opérations sans arrêt} } public class ThreeStepBehaviour extends Behaviour { private int step = 0; // exécuter X, puis Y, puis Z, puis arrêt public void action() { switch (step) { case 0: // perform operation X step++; break; case 1: // perform operation Y step++; break; case 2: // perform operation Z step++; break; } } public boolean done() {return step == 3; } } JADE Conception et implantation
  • 24. Comportements (exemples) public class MyStepAgent extends Agent { protected void setup() { System.out.println("Agent "+getLocalName()+" démarre."); // lancer le comportement généric addBehaviour(new ThreeStepBehaviour()); // lancer un autre comportement (cyclic) addBehaviour(new CyclicBehaviour(this)); } JADE Conception et implantation
  • 25. Résume du fonctionnement d’un agent JADE Conception et implantation
  • 26. Communication entre agents •Messages codes en langage ACL •Transmission asynchrone •Messages instancies par la classe jade.lang.acl.ACLMessage JADE Conception et implantation
  • 27. Exemples de messages else{ block(); } //bloque le comportement JADE Conception et implantation
  • 28. Exemples de messages (filtrer les messages) JADE Conception et implantation MessageTemplate mt; mt= MessageTemplate.MatchPerformative(ACLMessage.CFP); ACLMessage msg = myAgent.receive(mt); if (msg != null) { // un message de type CFP est reçu, récupérer son contenu String titre = msg.getContent; … }
  • 29. Service de Pages Jaunes •DF = Agent comme les autres qui communique avec des messages ACL •Classe jade.domain.DFService •Search() •Register() •Deregister() •Modify() JADE Conception et implantation
  • 30. Recherche dans un DF •Pour s’inscrire dans un DF, il faut une description, classe DFAgentDescription : •AID de l’agent •Nom du service •Type de service •Langages, Ontologies,… •Pour rechercher dans un DF, créer une autre instance de la classe DFAgentDescription JADE Conception et implantation
  • 31. Interface • Jade GUI • DF Agent GUI • Dummy Agent • Sniffer Agent • Introspector Agent JADE Conception et implantation
  • 32. Jade GUI Permet de controler les agents
  • 33. DF Agent GUI Permet de consulter les Pages Jaunes JADE Conception et implantation
  • 34. Dummy Agent Pour envoyer et recevoir des messages JADE Conception et implantation
  • 35. Sniffer Agent Surveille les échanges de messages dans une plate-forme JADE Conception et implantation
  • 36. Introspector Agent Pour surveiller l’activite d’un agent (messages, cycle de vie) JADE Conception et implantation
  • 37. • Integration avec JESS : • Communication avec les messages de JESS • Un programme JESS peut contrôler les messages et les comportements des agents de JADE • Classe JessBehavior JADE Conception et implantation
  • 38. Conclusion • Communauté de plus en plus importante • Exécution distribuée sur plusieurs hôtes et types de machines (PC, mobile, …) • Exécution concurrente des agents • Communication transparente par message (ACL) • Open Source • Norme FIPA JADE Conception et implantation
  • 39. Approfondir en TP ? • Encapsuler le CBR et le RBR « stimulation cognitive » avec Jess dans deux agents en vue de les faire coopérer ; • Dialogue dans un domaine de connaissance (à choisir) entre 2 plusieurs agents. Faire Communiquer les agents avec : tentative de compréhension en employant la notion ontologie ; • Négociation via Contract Net protocol (exemple d’application d’achat/vente) ; • Résolution d’un problème par décomposition en tâches et sous tâches ayant des caractéristiques/ performances hétérogènes (coopération). Cycle communication- délibération-action. JADE Conception et implantation
  • 40. 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/ JADE Conception et implantation