La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf ·...

213
La Programmation Orient´ ee Agent FIPA - Jade Emmanuel ADAM LAMIH UMR CNRS 8530 Universit´ e de Valenciennes et du Hainaut-Cambr´ esis FRANCE 26 septembre 2007 E. ADAM (University of Valenciennes) La Programmation Orient´ ee Agent 26 septembre 2007 1 / 61

Transcript of La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf ·...

Page 1: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 2: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 3: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 4: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 5: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 6: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 7: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 8: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 9: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 10: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 11: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 12: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 13: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 14: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 15: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 16: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 17: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 18: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 19: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 20: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 21: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 22: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 23: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 24: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 25: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 26: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 27: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 28: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 29: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 30: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 31: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 32: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 33: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 34: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 35: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 36: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 37: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 38: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 39: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 40: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 41: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 42: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 43: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 44: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 45: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 46: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 47: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 48: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 49: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 50: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 51: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 52: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 53: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 54: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 55: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 56: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 57: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 58: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 59: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 60: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 61: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 62: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 63: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 64: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 65: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 66: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 67: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 68: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 69: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 70: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 71: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 72: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 73: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 74: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 75: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 76: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 77: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 78: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 79: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 80: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 81: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 82: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 83: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 84: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 85: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 86: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 87: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 88: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 89: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 90: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 91: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 92: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 93: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 94: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 95: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 96: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 97: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 98: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 99: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 100: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 101: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 102: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 103: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 104: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 105: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 106: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 107: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 108: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 109: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 110: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 111: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 112: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 113: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 114: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 115: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 116: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 117: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 118: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 119: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 120: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 121: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 122: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 123: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 124: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 125: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 126: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 127: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 128: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 129: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 130: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 131: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 132: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 133: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 134: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 135: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 136: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 137: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 138: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 139: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 140: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 141: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 142: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 143: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 144: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 145: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 146: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 147: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 148: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 149: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 150: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 151: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 152: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 153: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 154: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 155: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 156: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 157: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 158: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 159: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 160: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 161: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 162: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 163: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 164: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 165: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 166: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 167: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 168: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 169: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 170: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 171: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 172: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 173: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 174: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 175: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 176: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 177: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 178: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 179: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 180: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 181: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 182: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 183: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 184: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 185: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 186: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 187: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 188: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 189: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 190: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 191: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 192: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 193: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 194: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 195: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 196: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 197: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 198: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 199: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 200: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 201: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 202: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 203: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 204: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 205: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 206: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 207: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 208: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 209: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 210: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 211: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 212: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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

Page 213: La Programmation Orient ee Agentemmanuel.adam.free.fr/site/IMG/pdf/poa_fipa_jade.pdf · 2009-04-24 · But : fournir la structure permettant l’existence et le fonctionnement des

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