la programmation orient ee agentemmanuel.adam.free.fr/site/img/pdf/poa_fipa_jade.pdf ·...
TRANSCRIPT
La Programmation Orientee AgentFIPA - Jade
Emmanuel ADAM
LAMIH UMR CNRS 8530Universite de Valenciennes et du Hainaut-Cambresis
FRANCE
26 septembre 2007
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 1 / 61
Plan
1 FIPA - Generalites
2 JADEGeneralitesArchitectureOutilsAgentsComportementsCommunicationCas d’etudeCas d’etude - Solution sans protocoleCas d’etude - Solution avec protocole
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 2 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps
1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Architecture abstraite
But : favoriser l’interoperabilite et la reutilisabilite
Identifier les entites architecturales abstraites et leurs relations
Transport de messages, langage de communication, services derenseignements, langages de contenu
Identifier les entites difficilement definissable de facon abstraite
Gestion et mobilite des agents
Transports de messages
But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes
Message = enveloppe + corps1 MTS sur chaque plateforme
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)
Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)
Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Gestion des agents
But : fournir la structure permettant l’existence et le fonctionnementdes agents
Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents
Decrit les primitives et ontologies necessaires pour les services
Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Communication entre agents
Techniques de communication pour structurer les interactions dans lesysteme
Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu
Groupes de travail FIPA
Agents and Web Services Interoperability Working Group (AWSI WG)
Human-Agent Communications Working Group (HAC WG)
Mobile Agents Working Group (MA WG)
P2P Nomadic Agents Working Group (P2PNA WG)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)
JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)
FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)
April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)
LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)
JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
FIPA - Generalites
Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)
Plateforme FIPA
16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :
ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommage
service de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunes
transport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messages
service d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analyse
bibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
JADE : Java Agent DEvelopment framework
But : developpement et execution de systemes multi-agent conformesaux normes FIPA
service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA
Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites
Les communications utilisent le standard ACL
Possibilite de communications entre plateformes JADE
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”
une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agents
une suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Generalites
Generalites sur JADE
Plateforme
Comprend 3 composantes de base :
un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs
Caracteristiques de JADE
Entierement implementee en JAVA
Conforme aux specifications FIPA
Open Source et distribue avec licence LGPL
Distribution possible sur differents serveurs
Modifiable en cours d’execution (mobilite des agents)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actif
d’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agents
DF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Architecture
Chaque instance de JADE est un Conteneur (Container)
Plateforme = ensemble de Conteneurs
obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer
Le conteneur principal possede 2 agents speciaux
AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recus
routage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messages
depot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agent
gestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Conteneur
Chaque conteneur d’agents :
environnement multi-threads compose d’un thread d’execution pourchaque agent
gere localement un ensemble d’agents
regle le cycle de vie des agents (creation, attente et destruction)
assure le traitement des communication :
repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61
JADE Architecture
Architecture de JADE
Exemple d’architecture
UNE plateforme avec 3 conteneurs et 4 agents
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 11 / 61
JADE Outils
Outils de JADE
Outils principaux
JADE propose quelques outils de gestion dont :
JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme
JADE Dummy Agent : permet d’envoyer des messages aux agents
JADE Sniffer : analyse des messages echanges entre agents
JADE Introspector : affiche le detail du cycle de vie d’un agent
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61
JADE Outils
Outils de JADE
Outils principaux
JADE propose quelques outils de gestion dont :
JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme
JADE Dummy Agent : permet d’envoyer des messages aux agents
JADE Sniffer : analyse des messages echanges entre agents
JADE Introspector : affiche le detail du cycle de vie d’un agent
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61
JADE Outils
Outils de JADE
Outils principaux
JADE propose quelques outils de gestion dont :
JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme
JADE Dummy Agent : permet d’envoyer des messages aux agents
JADE Sniffer : analyse des messages echanges entre agents
JADE Introspector : affiche le detail du cycle de vie d’un agent
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61
JADE Outils
Outils de JADE
Outils principaux
JADE propose quelques outils de gestion dont :
JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme
JADE Dummy Agent : permet d’envoyer des messages aux agents
JADE Sniffer : analyse des messages echanges entre agents
JADE Introspector : affiche le detail du cycle de vie d’un agent
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61
JADE Outils
Outils de JADE
Outils principaux
JADE propose quelques outils de gestion dont :
JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme
JADE Dummy Agent : permet d’envoyer des messages aux agents
JADE Sniffer : analyse des messages echanges entre agents
JADE Introspector : affiche le detail du cycle de vie d’un agent
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61
JADE Agents
Agents en JADE
Agent JADE
coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites
Suit son cycle de vie
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61
JADE Agents
Agents en JADE
Agent JADE
coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites
Suit son cycle de vie
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61
JADE Agents
Agents en JADE
Agent JADE
coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites
Suit son cycle de vie
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateforme
Comportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demande
Geres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages Jaunes
Proche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Agents
Agents en JADE
Agent JADE - Element de programmation
herite de la classe Agent
Thread
Possibilite de s’inscrire/rechercher un service
Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services
Methode setup() invoquee des la creation de l’agent
Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.
Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Comportement JADE - Element de programmation
herite de la classe Behaviour ou d’une de ses sous-classes.
possede deux methodes.
Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.
possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.
un agent ”dort“ s’il n’a pas de comportement a executer.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61
JADE Comportements
Comportements d’agents en JADE
Cycle de vie d’un comportement
La gestion des comportements d’un agent utilise ce cycle de vie
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 16 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()
prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()
prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()
jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recu
la date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,
le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Comportements d’agents en JADE
Elements de programmation
Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a
l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),
onStart() est lance a l’initialisation du comportement
onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61
JADE Comportements
Les types de comportements
Comportement classique
Le comportement se termine lorsque la methode done() retourne vrai
pub l i c c l a s s MonComportementATroisEtape extends B e h a v i o u r {p r i v a t e i n t s t e p = 0 ;pub l i c vo id a c t i o n ( ) {
switch ( s t e p ) {case 0 : t a c h e 1 ( ) ; s t e p ++; break ;case 1 : t a c h e 2 ( ) ; s t e p ++; break ;case 2 : t a c h e 3 ( ) ; s t e p ++; break ;
}}pub l i c boolean done ( ) { re tu rn ( s t e p == 3) ; }
}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 18 / 61
JADE Comportements
Les types de comportements
Comportement ephemere
Le comportement “One-shoot” se termine immediatement, action() estexecutee une seule fois.La classe jade.core.behaviours.OneShotBehaviour implemente lamethode done() qui retourne true.
pub l i c c l a s s MonComportementUneFois extends OneShotBehaviour{
pub l i c vo id a c t i o n ( ) { /∗ e f f e c t u e l e s t a c h e s ∗/ }}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 19 / 61
JADE Comportements
Les types de comportements
Comportement cyclique
Le comportement “Cyclic” ne se termine jamais, action() est executeea chaque appel du comportement.La classe jade.core.behaviours.CyclicBehaviour implemente lamethode done() qui retourne false.
pub l i c c l a s s MonComportementCycl ique extends C y c l i c B e h a v i o u r{
pub l i c vo id a c t i o n ( ) { /∗ e f f e c t u e l e s t a c h e s ∗/ }}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 20 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportements
ParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrence
FSMBehavior : execution de comportement selon une Machined’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.
WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delai
TickerBehavior : effectue une tache cycliquement en effectuant despauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Comportements
Les comportements complexes
Autres comportements
comportements incluant de sous-comportements :
SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine
d’Etats Finis (Finished State Machine) definie par leprogrammeur
comportements predefinis :
SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage
ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des
pauses.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)
est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACL
Emetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Communication asynchrone par protocole ACL (AgentCommunication Language )
Chaque agent :
possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte
Structure d’un message FIPA-ACLEmetteur (sender)
Destinataires (receivers)
Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)
Contenu (content)
Langage (language) : syntaxe
Ontologie (ontology) : vocabulaire
Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61
JADE Communication
Communication entre agents en JADE
Communication JADE - Element de programmation
Envoi d’un message : Utilisation de la methode send()
// Message t r an sme t t an t une demande d ’ o f f r eACLMessage c f p = new ACLMessage ( ACLMessage . CFP) ;c f p . a d d R e c e i v e r (new AID ( ” v e n d e u r ” , AID . ISLOCALNAME) ) ;c f p . s e t C o n t e n t ( ”La p r o i e ” ) ;myAgent . send ( c f p ) ;
Lecture d’un message Utilisation de la methode receive()Methode non bloquante, retourne le premier message de laboıte, null si elle est vide
// p r end r e un message de l a f i l eACLMessage msg = r e c e i v e ( ) ;i f ( msg != nu l l ) {/∗ t r a i t emen t du message ∗/}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 23 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
BUT : fournir un cadre a l’echanges de messages dans un but precis
AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.
FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
BUT : fournir un cadre a l’echanges de messages dans un but precis
AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.
FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
BUT : fournir un cadre a l’echanges de messages dans un but precis
AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.
FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.
FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.
FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61
JADE Communication
Protocoles de communication entre agents en JADE
Protocoles de communication
FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.
FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61
JADE Communication
Exemple de protocole CFP en JADE
Achat de livres par CFP
L’initiateur est l’acheteur, les participants (repondeurs) sont les vendeurs.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 26 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude
Cas d’etude : achat de livres
Enonce du cas d’etude (inspire de la documentation Jade)
Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .
Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.
Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.
Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).
L’agent acheteur stoppe apres avoir achete le livre cible.
Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.
Les agents vendeur attendent sans interruption des demandes des agents acheteur.
Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.
Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61
JADE Cas d’etude - Solution sans protocole
Definition d’un agent acheteur I
import j a d e . c o r e . Agent ;import j a d e . c o r e . b e h a v i o u r s . T i c k e r B e h a v i o u r ;
pub l i c c l a s s AgentAcheteur extends Agent {/∗∗ t i t r e du l i v r e a a c h e t e r ∗/p r i v a t e S t r i n g t i t r e L i v r e C i b l e ;
/∗∗ I n i t i a l i s a t i o n de l ’ agent ∗/pro tec ted vo id s e t u p ( ) {
System . out . p r i n t l n ( ” a c h e t e u r ”+getAID ( ) . getName ( )+” e s t p r e t . ” ) ;
Object [ ] a r g s = getArguments ( ) ; // R e c u p e r a t i o n des argumentsi f ( a r g s != n u l l && a r g s . l e n g t h > 0) {
t i t r e L i v r e C i b l e = ( S t r i n g ) a r g s [ 0 ] ;
// Toutes l e s 1 . 5 sec , l e comportement de demande d ’ a c h a t (Ef fectuerDemande ) e s t a j o u t e a l a p i l e de comportement
addBehav iour (new T i c k e r B e h a v i o u r ( t h i s , 15000) {pro tec ted vo id onTick ( ) {
myAgent . addBehav iour (new EffectuerDemande ( t i t r e L i v r e C i b l e ) ) ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 28 / 61
JADE Cas d’etude - Solution sans protocole
Definition d’un agent acheteur II
}} ) ;
} e l s e {System . out . p r i n t l n ( ”Aucun l i v r e c i b l e t r o u v e . . . ” ) ;// d e t r u i r e l ’ agentd o D e l e t e ( ) ;}}
// ’ Nettoyage ’ de l ’ agentpro tec ted vo id takeDown ( ) {
System . out . p r i n t l n ( ” A g e n t a c h e t e u r ”+getAID ( ) . getName ( )+” q u i t t e l a p l a t e f o r m e . ” ) ;
}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 29 / 61
JADE Cas d’etude - Solution sans protocole
Definition d’un agent vendeur I
import j a d e . c o r e . Agent ;import j a d e . c o r e . b e h a v i o u r s . OneShotBehaviour ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . domain . FIPAExcept ion ;import j a v a . u t i l . H a s h t a b l e ;
pub l i c c l a s s AgentVendeur extends Agent {
// C a t a l o g u e des l i v r e s a v e n d r e ( t i t r e − p r i x )p r i v a t e H a s h t a b l e c a t a l o g u e ;// I n t e r f a c e U t i l i s a t e u r pour l u i p e r m e t t r e d ’ a j o u t e r des l i v r e sp r i v a t e VendeurGui myGui ;
// I n i t i a l i s a t i o n de l ’ agentpro tec ted vo id s e t u p ( ) {
c a t a l o g u e = new H a s h t a b l e ( ) ;myGui = new VendeurGui ( t h i s ) ;myGui . a f f i c h e ( ) ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 30 / 61
JADE Cas d’etude - Solution sans protocole
Definition d’un agent vendeur II
// E n r e g i s t r e r l e s e r v i c e a s s o c i e a l ’ agent aux pages j a u n e s// d e c r i r e une d e s c r i p t i o n s u r s o iD F A g e n t D e s c r i p t i o n dfd = new D F A g e n t D e s c r i p t i o n ( ) ;d fd . setName ( getAID ( ) ) ;// d e c r i r e un s e r v i c eS e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;// l e t y p e de s e r v i c esd . setType ( ” vente− l i v r e ” ) ;// l e nom ( sous−t y p e ) du s e r v i c esd . setName ( ”JADE−vente− l i v r e ” ) ;d fd . a d d S e r v i c e s ( sd ) ;// t e n t e r l ’ e n r e f i s g r e m e n t dans l e s pages j a u n e st r y { DFServ ice . r e g i s t e r ( t h i s , d fd ) ; }catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }
// Ajout du comportement de r e p o n s e a une demande d ’ o f f r eaddBehav iour (new ReponseDemandeOffre ( c a t a l o g u e ) ) ;// Ajout du comportement de r e p o n s e a une demande d ’ a c h a taddBehav iour (new ReponseDemandeAchat ( c a t a l o g u e ) ) ;}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 31 / 61
JADE Cas d’etude - Solution sans protocole
Definition d’un agent vendeur III
// Fermeture de l ’ agentpro tec ted vo id takeDown ( ) {
// S ’ e f f a c e r du s e r v i c e pages j a u n e st r y { DFServ ice . d e r e g i s t e r ( t h i s ) ; }catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }myGui . d i s p o s e ( ) ;System . out . p r i n t l n ( ” Vendeur : ”+getAID ( ) . getName ( )+” p a r t . ” ) ;}
/∗∗ Methode i n v o q u e e par l ’ ihm pour a j o u t de l i v r e∗ a j o u t e un comportement s ’ e x e c u t a n t une s e u l e f o i s∗ c o n s i s t a n t a m e t t r e a j o u r l a t a b l e ∗/pub l i c vo id u p d a t e C a t a l o g u e ( f i n a l S t r i n g t i t r e , f i n a l i n t p r i x ) {
addBehav iour (new OneShotBehaviour ( ) {pub l i c vo id a c t i o n ( ) {
c a t a l o g u e . put ( t i t r e , new I n t e g e r ( p r i x ) ) ;System . out . p r i n t l n ( t i t r e +” i n s e r e au c a t a l o g u e . P r i x=”+p r i x ) ;} } ) ;
}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 32 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,
2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,
3 a choisir la meilleure offre et a envoyer un message d’acceptation de laproposition au vendeur retenu,
4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,
4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur
comportement et messages echanges , point de vue acheteur
Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :
1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la
proposition au vendeur retenu,4 a attendre la confirmation de la vente.
le comportement prend fin apres la 4eme etape
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur I
import j a d e . c o r e . AID ;import j a d e . c o r e . b e h a v i o u r s . B e h a v i o u r ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAExcept ion ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;
pub l i c c l a s s EffectuerDemande extends B e h a v i o u r{
p r i v a t e AID m e i l l e u r V e n d e u r ;p r i v a t e i n t m e i l l e u r P r i x ;p r i v a t e i n t nbReponses = 0 ;p r i v a t e MessageTemplate mt ;p r i v a t e i n t e t a p e = 0 ;p r i v a t e D F A g e n t D e s c r i p t i o n [ ] a g e n t s V e n d e u r s ;p r i v a t e S t r i n g t i t r e L i v r e C i b l e ;
pub l i c EffectuerDemande ( S t r i n g t i t r e L i v r e C i b l e ){ t i t r e L i v r e C i b l e = t i t r e L i v r e C i b l e ; }
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 34 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur II
// a c t i o n c o e u r du comportement , a 4 e t a p e s i c ipub l i c vo id a c t i o n ( ) {
// Recherche des a g e n t s v e n d e u r s// r e c h e r c h e des a g e n t s j o u a n t l e s e r v i c e du t y p e vente− l i v r eD F A g e n t D e s c r i p t i o n modele = new D F A g e n t D e s c r i p t i o n ( ) ;S e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;sd . setType ( ” vente− l i v r e ” ) ;modele . a d d S e r v i c e s ( sd ) ;t r y {
a g e n t s V e n d e u r s = DFServ ice . s e a r c h ( myAgent , modele ) ;System . out . p r i n t l n ( ” a g e n t s v e n d e u r s t r o u v e s : ” ) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )
System . out . p r i n t l n ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;}catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 35 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur III
sw i tch ( e t a p e ) {
case 0 : // Envoyer l e CFP a t o u s l e s v e n d e u r sACLMessage c f p = new ACLMessage ( ACLMessage . CFP) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )
c f p . a d d R e c e i v e r ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;c f p . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;c f p . s e t C o n v e r s a t i o n I d ( ” vente− l i v r e ” ) ;// p l a c e r un i d e n t i f i a n t ’ u n i q u e ’ , i c i c f p+d a t e en msc f p . s e t R e p l y W i t h ( ” c f p ”+System . c u r r e n t T i m e M i l l i s ( ) ) ;// e n v o y e r l e messagemyAgent . send ( c f p ) ;// d e f i n i r l e f i l t r e pour l a r e c e p t i o nmt = MessageTemplate . and ( MessageTemplate . M a t c h C o n v e r s a t i o n I d ( ”
vente− l i v r e ” ) , MessageTemplate . MatchInReplyTo ( c f p .getRep lyWith ( ) ) ) ;
e t a p e = 1 ;break ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 36 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur IV
case 1 : // r e c e v o i r des r e p o n s e s ( p r o p o s i t i o n s / r e f u s ) de t o u sl e s a g e n t s
// ne p r e n d r e en compte qu ’ un message c o r r e s p o n d a n t au f i l t r ed e f i n i precedemment
ACLMessage r e p o n s e = myAgent . r e c e i v e ( mt ) ;i f ( r e p o n s e != n u l l ) {// s i l e message r e c u e s t une p r o p o s i t i o ni f ( r e p o n s e . g e t P e r f o r m a t i v e ( ) == ACLMessage .PROPOSE) {i n t p r i x = I n t e g e r . p a r s e I n t ( r e p o n s e . g e t C o n t e n t ( ) ) ;i f ( m e i l l e u r V e n d e u r == n u l l | | p r i x < m e i l l e u r P r i x ) {// s i e l l e e s t l a m e i l l e u r e , l a memor i se r
m e i l l e u r P r i x = p r i x ;m e i l l e u r V e n d e u r = r e p o n s e . g e t S e n d e r ( ) ;
} }nbReponses++;// s i t o u t e s l e s r e p o n d e s s o n t r e c u e s , p a s s e r a l a s u i t ei f ( nbReponses>= a g e n t s V e n d e u r s . l e n g t h ) e t a p e = 2 ;}e l s e b l o c k ( ) ; // s i n o n , a t t e n d r e un message
break ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 37 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur V
case 2 : // Envoyer l ’ a c c e p t a t i o n au m e i l l e u r v e n d e u rACLMessage commande = new ACLMessage ( ACLMessage . ACCEPT PROPOSAL)
;commande . a d d R e c e i v e r ( m e i l l e u r V e n d e u r ) ;commande . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;commande . s e t C o n v e r s a t i o n I d ( ” vente− l i v r e ” ) ;commande . s e t R e p l y W i t h ( ”commande”+System . c u r r e n t T i m e M i l l i s ( ) ) ;myAgent . send ( commande ) ;// P r e p a r a t i o n du f i l t r e de l a p r o c h a i n e e t a p emt = MessageTemplate . and ( MessageTemplate . M a t c h C o n v e r s a t i o n I d ( ”
vente− l i v r e ” ) , MessageTemplate . MatchInReplyTo ( commande .getRep lyWith ( ) ) ) ;
e t a p e = 3 ;break ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 38 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur VI
case 3 : // r e c e p t i o n de l a c o n f i r m a t i o n d ’ a c h a tr e p o n s e = myAgent . r e c e i v e ( mt ) ;i f ( r e p o n s e != n u l l ) {i f ( r e p o n s e . g e t P e r f o r m a t i v e ( ) == ACLMessage . INFORM) {// Achat r e u s s i , f i n de l ’ agentSystem . out . p r i n t l n ( t i t r e L i v r e C i b l e +” a c h e t e avec s u c c e s . ” ) ;System . out . p r i n t l n ( ” P r i x = ”+m e i l l e u r P r i x ) ;// d e s t r u c t i o n de l ’ agent en t r a i n de r e a l i s e r l e comportementmyAgent . d o D e l e t e ( ) ;}e t a p e = 4 ;}e l s e b l o c k ( ) ; // s i n o n , a t t e n d r e un message
break ;}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 39 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur VII
// t e s t de f i n de comportementpub l i c boolean done ( ) {// f i n s i pas de p r o p o s i t i o n ou s i a c h a t v a l i d e
i f ( e t a p e == 2 && m e i l l e u r V e n d e u r == n u l l ) {System . out . p r i n t l n ( t i t r e L i v r e C i b l e + ” i n d i s p o n i b l e a l a v e n t e
. . . ” ) ; }
r e t u r n ( ( e t a p e == 2 && m e i l l e u r V e n d e u r == n u l l ) | | e t a p e == 4) ;}
} // F in de c l a s s e Ef fectuerDemande
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 40 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportements d’un vendeur
comportement et messages echanges , point de vue vendeur
Un vendeur possede deux comportement cyclique :
1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat
Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportements d’un vendeur
comportement et messages echanges , point de vue vendeur
Un vendeur possede deux comportement cyclique :
1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat
Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportements d’un vendeur
comportement et messages echanges , point de vue vendeur
Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente
2 attente et traitement d’une confirmation de d’achat
Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportements d’un vendeur
comportement et messages echanges , point de vue vendeur
Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat
Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportements d’un vendeur
comportement et messages echanges , point de vue vendeur
Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat
Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur 1/2 I
import j a d e . c o r e . b e h a v i o u r s . C y c l i c B e h a v i o u r ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;
import j a v a . u t i l . H a s h t a b l e ;
// Comportement c y c l i q u e de r e p o n s e a une demande d ’ o f f r e
pub l i c c l a s s ReponseDemandeOffre extends C y c l i c B e h a v i o u r {// c a t a l o g u e p r e s e n tH a s h t a b l e c a t a l o g u e ;
pub l i c ReponseDemandeOffre ( H a s h t a b l e c a t a l o g u e ){ c a t a l o g u e = c a t a l o g u e ; }
// c o e u r du comportement , en 1 e t a p epub l i c vo id a c t i o n ( ) {
// p r e n d r e en compte uniquement l e s messages de t y p e CFPMessageTemplate mt = MessageTemplate . M a t c h P e r f o r m a t i v e ( ACLMessage
. CFP) ;ACLMessage msg = myAgent . r e c e i v e ( mt ) ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 42 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur 1/2 II
i f ( msg != n u l l ) {S t r i n g t i t r e = msg . g e t C o n t e n t ( ) ;// c r e e r l a r e p o n s e a l a demande . l e message e s t a l o r s c r e e avec
l e s champs a p p r o p r i e s ( r e c e i v e r , s e nd e r , in−r e p l y−to , . . . )ACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . g e t ( t i t r e ) ;i f ( p r i x != n u l l ) {// Le L i v r e e s t d i s p o n i b l e . Repondre avec l e p r i xr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage .PROPOSE) ;r e p o n s e . s e t C o n t e n t ( S t r i n g . v a l u e O f ( p r i x . i n t V a l u e ( ) ) ) ;}e l s e {// l i v r e non d i s p o n i b l e a l a vente , r e p o n d r e un r e f u sr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . REFUSE) ;r e p o n s e . s e t C o n t e n t ( ” i n d i s p o n i b l e ” ) ;}myAgent . send ( r e p o n s e ) ;}e l s e b l o c k ( ) ; // a t t e n t e d ’ un message}} // F in de l a c l a s s e i n t e r n e ReponseDemandeOffre
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 43 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur 2/2 I
import j a d e . c o r e . b e h a v i o u r s . C y c l i c B e h a v i o u r ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;
import j a v a . u t i l . H a s h t a b l e ;
pub l i c c l a s s ReponseDemandeAchat extends C y c l i c B e h a v i o u r {// c a t a l o g u e p r e s e n tH a s h t a b l e c a t a l o g u e ;
pub l i c ReponseDemandeAchat ( H a s h t a b l e c a t a l o g u e ){ c a t a l o g u e = c a t a l o g u e ; }
pub l i c vo id a c t i o n ( ) {// c r e a t i o n du f i l t r e s u r un message d ’ a c c e p t a t i o nMessageTemplate mt = MessageTemplate . M a t c h P e r f o r m a t i v e ( ACLMessage
. ACCEPT PROPOSAL) ;ACLMessage msg = myAgent . r e c e i v e ( mt ) ;i f ( msg != n u l l ) {
S t r i n g t i t r e = msg . g e t C o n t e n t ( ) ;ACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 44 / 61
JADE Cas d’etude - Solution sans protocole
Cas d’etude - Comportement d’un acheteur 2/2 II
I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . remove ( t i t r e ) ;i f ( p r i x != n u l l ) {// Le l i v r e e s t t o u j o u r s p r e s e n t , e n v o y e r un message de
c o n f i r m a t i o nr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . INFORM) ;System . out . p r i n t l n ( t i t r e +” vendu a l ’ agent ”+msg . g e t S e n d e r ( ) .
getName ( ) ) ;}e l s e {
// Le l i v r e demande a e t e vendu a un a u t r e a c h e t e u r e n t r e tempsr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . FAILURE ) ;r e p o n s e . s e t C o n t e n t ( ” i n d i s p o n i b l e ” ) ;}myAgent . send ( r e p o n s e ) ;}e l s e
b l o c k ( ) ; // a t t e n t e d ’ un message}} // f i n de ReponseDemandeAchat
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 45 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Protocole FIPA-ContractNet
Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :
ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.
ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Protocole FIPA-ContractNet
Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :
ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.
ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Protocole FIPA-ContractNet
Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :
ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.
ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Protocole FIPA-ContractNet
Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :
ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.
ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Initiateur d’un ContractNet
methodes principales d’un ContractNetInitiator
void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.
void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus
void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu
void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu
void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu
void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu
void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.
void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61
JADE Cas d’etude - Solution avec protocole
Participant a un ContractNet
methodes principales d’un ContractNetResponder
handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).
handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61
JADE Cas d’etude - Solution avec protocole
Participant a un ContractNet
methodes principales d’un ContractNetResponder
handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).
handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61
JADE Cas d’etude - Solution avec protocole
Participant a un ContractNet
methodes principales d’un ContractNetResponder
handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).
handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Cas d’etude
Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :
L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Cas d’etude
Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :
L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Cas d’etude
Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :
L’agent acheteur recoit alors periodiquement le comportementContractNetAchat
L’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61
JADE Cas d’etude - Solution avec protocole
Solution avec Protocole FIPA-ContractNet
Cas d’etude
Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :
L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur I
import j a d e . c o r e . AID ;import j a d e . c o r e . Agent ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAExcept ion ;import j a d e . domain . FIPANames ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . p r o t o . C o n t r a c t N e t I n i t i a t o r ;
import j a v a . u t i l . Date ;import j a v a . u t i l . V e c t o r ;
pub l i c c l a s s ContractNetAchat extends C o n t r a c t N e t I n i t i a t o r {i n t nbRepondants = 0 ;S t r i n g t i t r e L i v r e C i b l e ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 50 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur II
// C o n s t r u c t e u rpub l i c ContractNetAchat ( Agent agent , ACLMessage msg , S t r i n g
t i t r e L i v r e C i b l e ){super ( agent , msg ) ;t i t r e L i v r e C i b l e = t i t r e L i v r e C i b l e ;// Recherche / Mise a j o u r des a g e n t s v e n d e u r sD F A g e n t D e s c r i p t i o n modele = new D F A g e n t D e s c r i p t i o n ( ) ;S e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;sd . setType ( ” v e n t e l i v r e ” ) ;modele . a d d S e r v i c e s ( sd ) ;D F A g e n t D e s c r i p t i o n [ ] a g e n t s V e n d e u r s = n u l l ;
t r y {a g e n t s V e n d e u r s = DFServ ice . s e a r c h ( myAgent , modele ) ;System . out . p r i n t l n ( ” a g e n t s v e n d e u r s : ” ) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )
System . out . p r i n t l n ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;}
catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 51 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur III
nbRepondants = a g e n t s V e n d e u r s . l e n g t h ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; i ++)msg . a d d R e c e i v e r ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;
msg . s e t P r o t o c o l ( FIPANames . I n t e r a c t i o n P r o t o c o l . FIPA CONTRACT NET) ;// Reponse p l u s t a r d dans 10 s e c smsg . se tRep lyByDate (new Date ( System . c u r r e n t T i m e M i l l i s ( ) + 10000) ) ;msg . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;t h i s . r e s e t ( msg ) ;}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 52 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur IV
// p r i s e en compte d ’ une p r o p o s i t i o npro tec ted vo id h a n d l e P r o p o s e ( ACLMessage propose , V e c t o r v ) {System . out . p r i n t l n ( ” Agent ”+p r o p o s e . g e t S e n d e r ( ) . getName ( )+” p r o p o s e
”+p r o p o s e . g e t C o n t e n t ( ) ) ;}
// p r i s e en compte d ’ un r e f u spro tec ted vo id h a n d l e R e f u s e ( ACLMessage r e f u s e ) {System . out . p r i n t l n ( ” Agent ”+r e f u s e . g e t S e n d e r ( ) . getName ( )+” r e f u s e ” )
;}
// p r i s e ne compte d ’ un message d ’ i n f o r m a t i o npro tec ted vo id h a n d l e I n f o r m ( ACLMessage i n f o r m ) {System . out . p r i n t l n ( ” Agent ”+i n f o r m . g e t S e n d e r ( ) . getName ( )+” a
e f f e c t u e l ’ a c t i o n avec s u c c e s ” ) ;}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 53 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur V
// p r i s e en compte d ’ une r e t o u r d ’ e r r e u rpro tec ted vo id h a n d l e F a i l u r e ( ACLMessage f a i l u r e ) {i f ( f a i l u r e . g e t S e n d e r ( ) . e q u a l s ( myAgent . getAMS ( ) ) ) {// ERREUR : l e d e s t i n a t a i r e n ’ e x i s t e pasSystem . out . p r i n t l n ( ” Le d e s t i n a t a i r e n ’ e x i s t e pas . . . ” ) ;}e l s eSystem . out . p r i n t l n ( ” Agent ”+f a i l u r e . g e t S e n d e r ( ) . getName ( )+” a
echoue ” ) ;
// nombre de r e p o n d a n t s d ec r ement enbRepondants −−;}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 54 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur VI
// p r i s e en compte de l ’ ensemble des r e p o n s e spro tec ted vo id h a n d l e A l l R e s p o n s e s ( V e c t o r r e p o n s e s , V e c t o r
a c c e p t a t i o n s ) {i f ( r e p o n s e s . s i z e ( ) < nbRepondants ) {// S i q u e l q u e s v e n d e u r s n ’ ont pas r epondu a tempsSystem . out . p r i n t l n ( ”Temps d ’ a t t e n t e e x p i r e : i l manque ”+(
nbRepondants − r e p o n s e s . s i z e ( ) )+” r e p o n s e s ” ) ;}// E v a l u e r l e s p r o p o s i t i o n si n t m e i l l e u r P r i x = −1;AID m e i l l e u r V e n d e u r = n u l l ;ACLMessage a c c e p t = n u l l ;f o r ( i n t i =0; i <r e p o n s e s . s i z e ( ) ; i ++){
ACLMessage msg = ( ACLMessage ) r e p o n s e s . g e t ( i ) ;i f ( msg . g e t P e r f o r m a t i v e ( ) == ACLMessage .PROPOSE) {// c r e e r une r e p o n s e de r e f u s par d e f a u t pour chaque v e n d e u rACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;r e p o n s e . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;r e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . REJECT PROPOSAL) ;
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 55 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole initiateur de l’acheteur VII
a c c e p t a t i o n s . addElement ( r e p o n s e ) ;// c h e r c h e r l a m e i l l e u r e p r o p o s i t i o n si n t p r i x = I n t e g e r . p a r s e I n t ( msg . g e t C o n t e n t ( ) ) ;i f ( m e i l l e u r V e n d e u r == n u l l | | p r i x < m e i l l e u r P r i x ) {
m e i l l e u r P r i x = p r i x ;m e i l l e u r V e n d e u r = msg . g e t S e n d e r ( ) ;a c c e p t = r e p o n s e ;
}}}// A c c e p t e r l a m e i l l e u r e o f f r e , m o d i f i e r l e t y p e de son messagei f ( a c c e p t != n u l l ) {System . out . p r i n t l n ( ” Accepte l a p r o p o s i t i o n a ” + m e i l l e u r P r i x +”
de l ’ agent ”+m e i l l e u r V e n d e u r . getName ( ) ) ;a c c e p t . s e t P e r f o r m a t i v e ( ACLMessage . ACCEPT PROPOSAL) ;
}}}// remarque : l e s r e p o n s e s du v e c t e u r r e p o n s e s s o n t p r i s e s
automat iquement de l a f i l e// l e s messages du v e c t e u r a c c e p t a t i o n s s o n t automat iquement
e n v o y e s
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 56 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole repondeur du vendeur I
import j a d e . c o r e . Agent ;import j a d e . domain . FIPAAgentManagement . F a i l u r e E x c e p t i o n ;import j a d e . domain . FIPAAgentManagement . N o t U n d e r s t o o d E x c e p t i o n ;import j a d e . domain . FIPAAgentManagement . R e f u s e E x c e p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;import j a d e . p r o t o . C o n t r a c t N e t R e s p o n d e r ;import j a v a . u t i l . H a s h t a b l e ;
// comportement de r e p o n s e dans l e p r o t o c o l e c o n t r a c t N e tpub l i c c l a s s ContractNetVente extends C o n t r a c t N e t R e s p o n d e r{
// c a t a l o g u e du v e n d e u rH a s h t a b l e c a t a l o g u e ;
pub l i c ContractNetVente ( Agent agent , MessageTemplate template ,H a s h t a b l e c a t a l o g u e )
{super ( agent , t e m p l a t e ) ;c a t a l o g u e = c a t a l o g u e ;}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 57 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole repondeur du vendeur II
// p r e p a r e une r e p o n s e a un a p p e l d ’ o f f r epro tec ted ACLMessage p r e p a r e R e s p o n s e ( ACLMessage c f p ) throws
NotUnders toodExcept ion , R e f u s e E x c e p t i o n {
System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : CFP r e c u de”+c f p . g e t S e n d e r ( ) . getName ( )+” . S u j e t ”+c f p . g e t C o n t e n t ( ) ) ;
S t r i n g t i t r e = c f p . g e t C o n t e n t ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . g e t ( t i t r e ) ;
i f ( p r i x != n u l l ) {// Le L i v r e e s t d i s p o n i b l e . Repondre avec l e p r i xSystem . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : Propose ”+
p r i x ) ;ACLMessage p r o p o s e = c f p . c r e a t e R e p l y ( ) ;p r o p o s e . s e t P e r f o r m a t i v e ( ACLMessage .PROPOSE) ;p r o p o s e . s e t C o n t e n t ( S t r i n g . v a l u e O f ( p r i x . i n t V a l u e ( ) ) ) ;r e t u r n p r o p o s e ;}e l s e {
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 58 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole repondeur du vendeur III
// Le l i v r e n ’ e s t pas d i s p o n i b l e a l a vente , r e p o n d r e avec unr e f u s
System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : Refuse ,pas de l i v r e ’ ” + t i t r e + ” ’ en c a t a l o g u e . . . ” ) ;
throw new R e f u s e E x c e p t i o n ( ” e v a l u a t i o n−a−echoue ” ) ;}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 59 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole repondeur du vendeur IV
// g e s t i o n d ’ une a c c e p t a t i o n de l ’ o f f r epro tec ted ACLMessage p r e p a r e R e s u l t N o t i f i c a t i o n ( ACLMessage cfp ,
ACLMessage propose , ACLMessage a c c e p t ) throws F a i l u r e E x c e p t i o n{
S t r i n g t i t r e = a c c e p t . g e t C o n t e n t ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . remove ( t i t r e ) ;i f ( p r i x != n u l l ) {System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : A c t i o n
e f f e c t u e e avec s u c c e s ” ) ;ACLMessage i n f o r m = a c c e p t . c r e a t e R e p l y ( ) ;i n f o r m . s e t P e r f o r m a t i v e ( ACLMessage . INFORM) ;r e t u r n i n f o r m ;} e l s e {
System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : A c t i o n enechec − l i v r e e p u i s e e n t r e temps . . . ” ) ;
throw new F a i l u r e E x c e p t i o n ( ” unexpected−e r r o r ” ) ;}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 60 / 61
JADE Cas d’etude - Solution avec protocole
Cas d’etude - protocole repondeur du vendeur V
// g e s t i o n d ’ un r e f u s de l ’ o f f r epro tec ted vo id h a n d l e R e j e c t P r o p o s a l ( ACLMessage cfp , ACLMessage
propose , ACLMessage r e j e c t ) {System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : P r o p o s i t i o n
r e j e t e e ” ) ;}}
E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 61 / 61