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

Post on 15-Mar-2020

0 views 0 download

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

La Programmation Orientee AgentFIPA - Jade

Emmanuel ADAM

LAMIH UMR CNRS 8530Universite de Valenciennes et du Hainaut-Cambresis

FRANCE

26 septembre 2007

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 1 / 61

Plan

1 FIPA - Generalites

2 JADEGeneralitesArchitectureOutilsAgentsComportementsCommunicationCas d’etudeCas d’etude - Solution sans protocoleCas d’etude - Solution avec protocole

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 2 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps

1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Architecture abstraite

But : favoriser l’interoperabilite et la reutilisabilite

Identifier les entites architecturales abstraites et leurs relations

Transport de messages, langage de communication, services derenseignements, langages de contenu

Identifier les entites difficilement definissable de facon abstraite

Gestion et mobilite des agents

Transports de messages

But : gerer la livraison et la representation des messages, desprotocoles de communications inter-reseaux et inter-plateformes

Message = enveloppe + corps1 MTS sur chaque plateforme

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 3 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)

Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)

Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Gestion des agents

But : fournir la structure permettant l’existence et le fonctionnementdes agents

Modele de reference logique pour la creation, l’enregistrement, lalocalisation, la communication, la migration et le retrait d’agents

Decrit les primitives et ontologies necessaires pour les services

Pages Blanches : localisation, designation et controle de l’acces auxservices (AMS)Pages Jaunes : localisation, et enregistrement des services (AMS)Service de transport de messages

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 4 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Communication entre agents

Techniques de communication pour structurer les interactions dans lesysteme

Specifications du langage de communication + protocolesd’interaction + bibliotheques d’actes communicatifs predefinis +protocoles d’interaction + langages de contenu

Groupes de travail FIPA

Agents and Web Services Interoperability Working Group (AWSI WG)

Human-Agent Communications Working Group (HAC WG)

Mobile Agents Working Group (MA WG)

P2P Nomadic Agents Working Group (P2PNA WG)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 5 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)

JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)

FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)

April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)

LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)

JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

FIPA - Generalites

Generalites sur FIPA (Foundation of Intelligent PhysicalAgents)

Plateforme FIPA

16 plateformes “FIPA-compliant”, dont 9 du domaine public, dont :

ZEUS (British Telecoms)JADE (CSELT)FIPA-OS (Emorphia)April Agent Platform (Fujitsu Labs of America)LEAP (Lightweight Extensible Agent Platform)JACK (Agent Oriented Software Group)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 6 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommage

service de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunes

transport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messages

service d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analyse

bibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

JADE : Java Agent DEvelopment framework

But : developpement et execution de systemes multi-agent conformesaux normes FIPA

service de nommageservice de pages jaunestransport de messagesservice d’analysebibliotheque des protocoles d’interaction de FIPA

Les agents sont des coquilles auxquelles il faut ajouter descomportements implementant des services/fonctionnalites

Les communications utilisent le standard ACL

Possibilite de communications entre plateformes JADE

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 7 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”

une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agents

une suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Generalites

Generalites sur JADE

Plateforme

Comprend 3 composantes de base :

un environnement d’execution dans lequel les agents “existent”une librairie de classes java utilisable directement ou par extension pourdevelopper les agentsune suite d’outils graphiques permettant l’administration et la gestiondes agents actifs

Caracteristiques de JADE

Entierement implementee en JAVA

Conforme aux specifications FIPA

Open Source et distribue avec licence LGPL

Distribution possible sur differents serveurs

Modifiable en cours d’execution (mobilite des agents)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 8 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actif

d’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agents

DF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Architecture

Chaque instance de JADE est un Conteneur (Container)

Plateforme = ensemble de Conteneurs

obligation d’avoir un Conteneur Principal (Main Container) actifd’autres conteneurs peuvent s’y enregistrer

Le conteneur principal possede 2 agents speciaux

AMS (Agent Management System) : Systeme de gestion d’agentsDF (Directory Facilitator) : Service de pages jaunes

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 9 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recus

routage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messages

depot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agent

gestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Conteneur

Chaque conteneur d’agents :

environnement multi-threads compose d’un thread d’execution pourchaque agent

gere localement un ensemble d’agents

regle le cycle de vie des agents (creation, attente et destruction)

assure le traitement des communication :

repartition des messages ACL recusroutage des messagesdepot des messages dans les boıtes privees de chaque agentgestion des messages vers l’exterieur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 10 / 61

JADE Architecture

Architecture de JADE

Exemple d’architecture

UNE plateforme avec 3 conteneurs et 4 agents

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 11 / 61

JADE Outils

Outils de JADE

Outils principaux

JADE propose quelques outils de gestion dont :

JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme

JADE Dummy Agent : permet d’envoyer des messages aux agents

JADE Sniffer : analyse des messages echanges entre agents

JADE Introspector : affiche le detail du cycle de vie d’un agent

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61

JADE Outils

Outils de JADE

Outils principaux

JADE propose quelques outils de gestion dont :

JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme

JADE Dummy Agent : permet d’envoyer des messages aux agents

JADE Sniffer : analyse des messages echanges entre agents

JADE Introspector : affiche le detail du cycle de vie d’un agent

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61

JADE Outils

Outils de JADE

Outils principaux

JADE propose quelques outils de gestion dont :

JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme

JADE Dummy Agent : permet d’envoyer des messages aux agents

JADE Sniffer : analyse des messages echanges entre agents

JADE Introspector : affiche le detail du cycle de vie d’un agent

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61

JADE Outils

Outils de JADE

Outils principaux

JADE propose quelques outils de gestion dont :

JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme

JADE Dummy Agent : permet d’envoyer des messages aux agents

JADE Sniffer : analyse des messages echanges entre agents

JADE Introspector : affiche le detail du cycle de vie d’un agent

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61

JADE Outils

Outils de JADE

Outils principaux

JADE propose quelques outils de gestion dont :

JADE RMA (Remote Agent Management) : gestion des agents d’une plateforme

JADE Dummy Agent : permet d’envoyer des messages aux agents

JADE Sniffer : analyse des messages echanges entre agents

JADE Introspector : affiche le detail du cycle de vie d’un agent

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 12 / 61

JADE Agents

Agents en JADE

Agent JADE

coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites

Suit son cycle de vie

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61

JADE Agents

Agents en JADE

Agent JADE

coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites

Suit son cycle de vie

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61

JADE Agents

Agents en JADE

Agent JADE

coquille a laquelle il faut ajouter des comportements implementantdes services/fonctionnalites

Suit son cycle de vie

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 13 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateforme

Comportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demande

Geres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages Jaunes

Proche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Agents

Agents en JADE

Agent JADE - Element de programmation

herite de la classe Agent

Thread

Possibilite de s’inscrire/rechercher un service

Action enregistree et dispensee par la plateformeComportement d’un ou de plusieurs agents repondant a une demandeGeres par Pages JaunesProche de la notion de Web Services

Methode setup() invoquee des la creation de l’agent

Methode takedown() invoquee avant qu’un agent ne quitte laplateforme (soit detruit)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 14 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.

Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Comportement JADE - Element de programmation

herite de la classe Behaviour ou d’une de ses sous-classes.

possede deux methodes.

Methode action() definit les actions a executer par l’agent.Methode done() retourne un booleen specifiant si le comportementdoit etre retire de la file des comportements de l’agent.

possibilite d’ajouter/retirer des comportements a un agent en coursd’execution.

un agent ”dort“ s’il n’a pas de comportement a executer.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 15 / 61

JADE Comportements

Comportements d’agents en JADE

Cycle de vie d’un comportement

La gestion des comportements d’un agent utilise ce cycle de vie

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 16 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()

prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()

prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()

jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recu

la date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,

le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Comportements d’agents en JADE

Elements de programmation

Un comportement peut etre bloque par block()prend effet des la fin de action()jusqu’a

l’arrivee d’un message ACL,N.B. dans un agent, tous les comportements bloques sontreprogrammes dans la file des qu’un message est recula date limite de blocage prefixee auparavant,le lancement de la methode restart(),

onStart() est lance a l’initialisation du comportement

onEnd() est lance a la fin du comportement et apres son retrait de lafile des comportements

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 17 / 61

JADE Comportements

Les types de comportements

Comportement classique

Le comportement se termine lorsque la methode done() retourne vrai

pub l i c c l a s s MonComportementATroisEtape extends B e h a v i o u r {p r i v a t e i n t s t e p = 0 ;pub l i c vo id a c t i o n ( ) {

switch ( s t e p ) {case 0 : t a c h e 1 ( ) ; s t e p ++; break ;case 1 : t a c h e 2 ( ) ; s t e p ++; break ;case 2 : t a c h e 3 ( ) ; s t e p ++; break ;

}}pub l i c boolean done ( ) { re tu rn ( s t e p == 3) ; }

}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 18 / 61

JADE Comportements

Les types de comportements

Comportement ephemere

Le comportement “One-shoot” se termine immediatement, action() estexecutee une seule fois.La classe jade.core.behaviours.OneShotBehaviour implemente lamethode done() qui retourne true.

pub l i c c l a s s MonComportementUneFois extends OneShotBehaviour{

pub l i c vo id a c t i o n ( ) { /∗ e f f e c t u e l e s t a c h e s ∗/ }}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 19 / 61

JADE Comportements

Les types de comportements

Comportement cyclique

Le comportement “Cyclic” ne se termine jamais, action() est executeea chaque appel du comportement.La classe jade.core.behaviours.CyclicBehaviour implemente lamethode done() qui retourne false.

pub l i c c l a s s MonComportementCycl ique extends C y c l i c B e h a v i o u r{

pub l i c vo id a c t i o n ( ) { /∗ e f f e c t u e l e s t a c h e s ∗/ }}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 20 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportements

ParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrence

FSMBehavior : execution de comportement selon une Machined’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.

WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delai

TickerBehavior : effectue une tache cycliquement en effectuant despauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Comportements

Les comportements complexes

Autres comportements

comportements incluant de sous-comportements :

SequentialBehavior : enchaınement de comportementsParallelBehavior : execution de comportements en concurrenceFSMBehavior : execution de comportement selon une Machine

d’Etats Finis (Finished State Machine) definie par leprogrammeur

comportements predefinis :

SenderBehavior : comportement one-shoot qui effectue l’envoie d’unmessage

ReceiverBehavior : effectue la reception d’un message.WakerBehavior : effectue une tache apres un delaiTickerBehavior : effectue une tache cycliquement en effectuant des

pauses.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 21 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)

est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACL

Emetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Communication asynchrone par protocole ACL (AgentCommunication Language )

Chaque agent :

possede une “boıte aux lettre” (agent messages queue)est averti des qu’un nouveau message est arrive dans sa boıte

Structure d’un message FIPA-ACLEmetteur (sender)

Destinataires (receivers)

Performatifs (REQUEST, INFORM, QUERY IF, CFP (Call For Proposal), PROPOSE,ACCEPT PROPOSAL, REJECT PROPOSAL, . . .)

Contenu (content)

Langage (language) : syntaxe

Ontologie (ontology) : vocabulaire

Gestion concurrence : conversation-id, reply-with, in-reply-to, reply-by...

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 22 / 61

JADE Communication

Communication entre agents en JADE

Communication JADE - Element de programmation

Envoi d’un message : Utilisation de la methode send()

// Message t r an sme t t an t une demande d ’ o f f r eACLMessage c f p = new ACLMessage ( ACLMessage . CFP) ;c f p . a d d R e c e i v e r (new AID ( ” v e n d e u r ” , AID . ISLOCALNAME) ) ;c f p . s e t C o n t e n t ( ”La p r o i e ” ) ;myAgent . send ( c f p ) ;

Lecture d’un message Utilisation de la methode receive()Methode non bloquante, retourne le premier message de laboıte, null si elle est vide

// p r end r e un message de l a f i l eACLMessage msg = r e c e i v e ( ) ;i f ( msg != nu l l ) {/∗ t r a i t emen t du message ∗/}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 23 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

BUT : fournir un cadre a l’echanges de messages dans un but precis

AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.

FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

BUT : fournir un cadre a l’echanges de messages dans un but precis

AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.

FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

BUT : fournir un cadre a l’echanges de messages dans un but precis

AchieveRE (Achieve Rational Effect) : un Initiateur envoie un message, lereceveur peut repondre par not-understood, refuse ouagree. Suite a l’accord (agree), le receveur retourne unmessage de type inform (reponse) ou failure.

FIPA - Contract NET : Un initiateur sollicite d’autres agents par un CFP,les receveurs peuvent repondre par une proposition(PROPOSE), ou un message de type REFUSE ouNOT-UNDERSTOOD. L’emetteur choisit parmi toutes lespropositions recues et envoie un message de typeACCEPT PROPOSAL au candidat retenu. Ce dernier retourneun message de type INFORM (accord), FAILURE ou CANCEL(annulation de l’offre)

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 24 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.

FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.

FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61

JADE Communication

Protocoles de communication entre agents en JADE

Protocoles de communication

FIPA - Propose : un Initiateur envoie un message a un Participant luiindiquant qu’il effectuera une action si le Participant estd’accord (agree). Le Participant repond par un refus ou unaccord. Lorsque l’accord est recu, l’Initiateur doit effectuerl’action et retourner un resultat.

FIPA - Subscribe : un Initiateur envoie un message a un Participant luidemande s’il souhaite souscrire (subscribe). Le participantrepond par un accord (agree) ou un refus (refuse). En casd’accord, le Participant envoie les informations repondant ala souscription jusqu’a ce que l’Initiateur annule lasouscription ou que le Participant emette un message detype failure.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 25 / 61

JADE Communication

Exemple de protocole CFP en JADE

Achat de livres par CFP

L’initiateur est l’acheteur, les participants (repondeurs) sont les vendeurs.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 26 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude

Cas d’etude : achat de livres

Enonce du cas d’etude (inspire de la documentation Jade)

Dans cet exemple, des agents vendent des livres et d’autres achetent des livres. . .

Chaque agent acheteur recoit le titre du livre a acheter (le livre cible) en argumentet invite periodiquement tous les agents vendeur connus a fournir une offre.

Des qu’une offre est recue, l’agent acheteur l’accepte et publie un ordre d’achat.

Si plus d’un agent vendeur fournit une offre, l’agent acheteur accepte la meilleure(le plus bas prix).

L’agent acheteur stoppe apres avoir achete le livre cible.

Chaque agent vendeur a une GUI minimale permettant a l’utilisateur d’inserer denouveaux titres (et les prix associes) dans le catalogue local des livres a vendre.

Les agents vendeur attendent sans interruption des demandes des agents acheteur.

Lorsque les agents acheteur sont invites a fournir une offre pour un livre, ilsverifient si le livre demande est dans leur catalogue et repondent avec le prix.Autrement ils refusent.

Quand ils recoivent un ordre d’achat, ils l’executent et enlevent le livre demandede leur catalogue.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 27 / 61

JADE Cas d’etude - Solution sans protocole

Definition d’un agent acheteur I

import j a d e . c o r e . Agent ;import j a d e . c o r e . b e h a v i o u r s . T i c k e r B e h a v i o u r ;

pub l i c c l a s s AgentAcheteur extends Agent {/∗∗ t i t r e du l i v r e a a c h e t e r ∗/p r i v a t e S t r i n g t i t r e L i v r e C i b l e ;

/∗∗ I n i t i a l i s a t i o n de l ’ agent ∗/pro tec ted vo id s e t u p ( ) {

System . out . p r i n t l n ( ” a c h e t e u r ”+getAID ( ) . getName ( )+” e s t p r e t . ” ) ;

Object [ ] a r g s = getArguments ( ) ; // R e c u p e r a t i o n des argumentsi f ( a r g s != n u l l && a r g s . l e n g t h > 0) {

t i t r e L i v r e C i b l e = ( S t r i n g ) a r g s [ 0 ] ;

// Toutes l e s 1 . 5 sec , l e comportement de demande d ’ a c h a t (Ef fectuerDemande ) e s t a j o u t e a l a p i l e de comportement

addBehav iour (new T i c k e r B e h a v i o u r ( t h i s , 15000) {pro tec ted vo id onTick ( ) {

myAgent . addBehav iour (new EffectuerDemande ( t i t r e L i v r e C i b l e ) ) ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 28 / 61

JADE Cas d’etude - Solution sans protocole

Definition d’un agent acheteur II

}} ) ;

} e l s e {System . out . p r i n t l n ( ”Aucun l i v r e c i b l e t r o u v e . . . ” ) ;// d e t r u i r e l ’ agentd o D e l e t e ( ) ;}}

// ’ Nettoyage ’ de l ’ agentpro tec ted vo id takeDown ( ) {

System . out . p r i n t l n ( ” A g e n t a c h e t e u r ”+getAID ( ) . getName ( )+” q u i t t e l a p l a t e f o r m e . ” ) ;

}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 29 / 61

JADE Cas d’etude - Solution sans protocole

Definition d’un agent vendeur I

import j a d e . c o r e . Agent ;import j a d e . c o r e . b e h a v i o u r s . OneShotBehaviour ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . domain . FIPAExcept ion ;import j a v a . u t i l . H a s h t a b l e ;

pub l i c c l a s s AgentVendeur extends Agent {

// C a t a l o g u e des l i v r e s a v e n d r e ( t i t r e − p r i x )p r i v a t e H a s h t a b l e c a t a l o g u e ;// I n t e r f a c e U t i l i s a t e u r pour l u i p e r m e t t r e d ’ a j o u t e r des l i v r e sp r i v a t e VendeurGui myGui ;

// I n i t i a l i s a t i o n de l ’ agentpro tec ted vo id s e t u p ( ) {

c a t a l o g u e = new H a s h t a b l e ( ) ;myGui = new VendeurGui ( t h i s ) ;myGui . a f f i c h e ( ) ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 30 / 61

JADE Cas d’etude - Solution sans protocole

Definition d’un agent vendeur II

// E n r e g i s t r e r l e s e r v i c e a s s o c i e a l ’ agent aux pages j a u n e s// d e c r i r e une d e s c r i p t i o n s u r s o iD F A g e n t D e s c r i p t i o n dfd = new D F A g e n t D e s c r i p t i o n ( ) ;d fd . setName ( getAID ( ) ) ;// d e c r i r e un s e r v i c eS e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;// l e t y p e de s e r v i c esd . setType ( ” vente− l i v r e ” ) ;// l e nom ( sous−t y p e ) du s e r v i c esd . setName ( ”JADE−vente− l i v r e ” ) ;d fd . a d d S e r v i c e s ( sd ) ;// t e n t e r l ’ e n r e f i s g r e m e n t dans l e s pages j a u n e st r y { DFServ ice . r e g i s t e r ( t h i s , d fd ) ; }catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }

// Ajout du comportement de r e p o n s e a une demande d ’ o f f r eaddBehav iour (new ReponseDemandeOffre ( c a t a l o g u e ) ) ;// Ajout du comportement de r e p o n s e a une demande d ’ a c h a taddBehav iour (new ReponseDemandeAchat ( c a t a l o g u e ) ) ;}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 31 / 61

JADE Cas d’etude - Solution sans protocole

Definition d’un agent vendeur III

// Fermeture de l ’ agentpro tec ted vo id takeDown ( ) {

// S ’ e f f a c e r du s e r v i c e pages j a u n e st r y { DFServ ice . d e r e g i s t e r ( t h i s ) ; }catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }myGui . d i s p o s e ( ) ;System . out . p r i n t l n ( ” Vendeur : ”+getAID ( ) . getName ( )+” p a r t . ” ) ;}

/∗∗ Methode i n v o q u e e par l ’ ihm pour a j o u t de l i v r e∗ a j o u t e un comportement s ’ e x e c u t a n t une s e u l e f o i s∗ c o n s i s t a n t a m e t t r e a j o u r l a t a b l e ∗/pub l i c vo id u p d a t e C a t a l o g u e ( f i n a l S t r i n g t i t r e , f i n a l i n t p r i x ) {

addBehav iour (new OneShotBehaviour ( ) {pub l i c vo id a c t i o n ( ) {

c a t a l o g u e . put ( t i t r e , new I n t e g e r ( p r i x ) ) ;System . out . p r i n t l n ( t i t r e +” i n s e r e au c a t a l o g u e . P r i x=”+p r i x ) ;} } ) ;

}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 32 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,

2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,

3 a choisir la meilleure offre et a envoyer un message d’acceptation de laproposition au vendeur retenu,

4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,

4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur

comportement et messages echanges , point de vue acheteur

Le comportement d’un acheteur consiste a rechercher la liste desagents inscrits en tant que vendeurs, puis :

1 a envoyer a tous les vendeurs une demande de proposition de prix,2 a receptionner toutes les propositions,3 a choisir la meilleure offre et a envoyer un message d’acceptation de la

proposition au vendeur retenu,4 a attendre la confirmation de la vente.

le comportement prend fin apres la 4eme etape

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 33 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur I

import j a d e . c o r e . AID ;import j a d e . c o r e . b e h a v i o u r s . B e h a v i o u r ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAExcept ion ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;

pub l i c c l a s s EffectuerDemande extends B e h a v i o u r{

p r i v a t e AID m e i l l e u r V e n d e u r ;p r i v a t e i n t m e i l l e u r P r i x ;p r i v a t e i n t nbReponses = 0 ;p r i v a t e MessageTemplate mt ;p r i v a t e i n t e t a p e = 0 ;p r i v a t e D F A g e n t D e s c r i p t i o n [ ] a g e n t s V e n d e u r s ;p r i v a t e S t r i n g t i t r e L i v r e C i b l e ;

pub l i c EffectuerDemande ( S t r i n g t i t r e L i v r e C i b l e ){ t i t r e L i v r e C i b l e = t i t r e L i v r e C i b l e ; }

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 34 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur II

// a c t i o n c o e u r du comportement , a 4 e t a p e s i c ipub l i c vo id a c t i o n ( ) {

// Recherche des a g e n t s v e n d e u r s// r e c h e r c h e des a g e n t s j o u a n t l e s e r v i c e du t y p e vente− l i v r eD F A g e n t D e s c r i p t i o n modele = new D F A g e n t D e s c r i p t i o n ( ) ;S e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;sd . setType ( ” vente− l i v r e ” ) ;modele . a d d S e r v i c e s ( sd ) ;t r y {

a g e n t s V e n d e u r s = DFServ ice . s e a r c h ( myAgent , modele ) ;System . out . p r i n t l n ( ” a g e n t s v e n d e u r s t r o u v e s : ” ) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )

System . out . p r i n t l n ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;}catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 35 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur III

sw i tch ( e t a p e ) {

case 0 : // Envoyer l e CFP a t o u s l e s v e n d e u r sACLMessage c f p = new ACLMessage ( ACLMessage . CFP) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )

c f p . a d d R e c e i v e r ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;c f p . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;c f p . s e t C o n v e r s a t i o n I d ( ” vente− l i v r e ” ) ;// p l a c e r un i d e n t i f i a n t ’ u n i q u e ’ , i c i c f p+d a t e en msc f p . s e t R e p l y W i t h ( ” c f p ”+System . c u r r e n t T i m e M i l l i s ( ) ) ;// e n v o y e r l e messagemyAgent . send ( c f p ) ;// d e f i n i r l e f i l t r e pour l a r e c e p t i o nmt = MessageTemplate . and ( MessageTemplate . M a t c h C o n v e r s a t i o n I d ( ”

vente− l i v r e ” ) , MessageTemplate . MatchInReplyTo ( c f p .getRep lyWith ( ) ) ) ;

e t a p e = 1 ;break ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 36 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur IV

case 1 : // r e c e v o i r des r e p o n s e s ( p r o p o s i t i o n s / r e f u s ) de t o u sl e s a g e n t s

// ne p r e n d r e en compte qu ’ un message c o r r e s p o n d a n t au f i l t r ed e f i n i precedemment

ACLMessage r e p o n s e = myAgent . r e c e i v e ( mt ) ;i f ( r e p o n s e != n u l l ) {// s i l e message r e c u e s t une p r o p o s i t i o ni f ( r e p o n s e . g e t P e r f o r m a t i v e ( ) == ACLMessage .PROPOSE) {i n t p r i x = I n t e g e r . p a r s e I n t ( r e p o n s e . g e t C o n t e n t ( ) ) ;i f ( m e i l l e u r V e n d e u r == n u l l | | p r i x < m e i l l e u r P r i x ) {// s i e l l e e s t l a m e i l l e u r e , l a memor i se r

m e i l l e u r P r i x = p r i x ;m e i l l e u r V e n d e u r = r e p o n s e . g e t S e n d e r ( ) ;

} }nbReponses++;// s i t o u t e s l e s r e p o n d e s s o n t r e c u e s , p a s s e r a l a s u i t ei f ( nbReponses>= a g e n t s V e n d e u r s . l e n g t h ) e t a p e = 2 ;}e l s e b l o c k ( ) ; // s i n o n , a t t e n d r e un message

break ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 37 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur V

case 2 : // Envoyer l ’ a c c e p t a t i o n au m e i l l e u r v e n d e u rACLMessage commande = new ACLMessage ( ACLMessage . ACCEPT PROPOSAL)

;commande . a d d R e c e i v e r ( m e i l l e u r V e n d e u r ) ;commande . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;commande . s e t C o n v e r s a t i o n I d ( ” vente− l i v r e ” ) ;commande . s e t R e p l y W i t h ( ”commande”+System . c u r r e n t T i m e M i l l i s ( ) ) ;myAgent . send ( commande ) ;// P r e p a r a t i o n du f i l t r e de l a p r o c h a i n e e t a p emt = MessageTemplate . and ( MessageTemplate . M a t c h C o n v e r s a t i o n I d ( ”

vente− l i v r e ” ) , MessageTemplate . MatchInReplyTo ( commande .getRep lyWith ( ) ) ) ;

e t a p e = 3 ;break ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 38 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur VI

case 3 : // r e c e p t i o n de l a c o n f i r m a t i o n d ’ a c h a tr e p o n s e = myAgent . r e c e i v e ( mt ) ;i f ( r e p o n s e != n u l l ) {i f ( r e p o n s e . g e t P e r f o r m a t i v e ( ) == ACLMessage . INFORM) {// Achat r e u s s i , f i n de l ’ agentSystem . out . p r i n t l n ( t i t r e L i v r e C i b l e +” a c h e t e avec s u c c e s . ” ) ;System . out . p r i n t l n ( ” P r i x = ”+m e i l l e u r P r i x ) ;// d e s t r u c t i o n de l ’ agent en t r a i n de r e a l i s e r l e comportementmyAgent . d o D e l e t e ( ) ;}e t a p e = 4 ;}e l s e b l o c k ( ) ; // s i n o n , a t t e n d r e un message

break ;}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 39 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur VII

// t e s t de f i n de comportementpub l i c boolean done ( ) {// f i n s i pas de p r o p o s i t i o n ou s i a c h a t v a l i d e

i f ( e t a p e == 2 && m e i l l e u r V e n d e u r == n u l l ) {System . out . p r i n t l n ( t i t r e L i v r e C i b l e + ” i n d i s p o n i b l e a l a v e n t e

. . . ” ) ; }

r e t u r n ( ( e t a p e == 2 && m e i l l e u r V e n d e u r == n u l l ) | | e t a p e == 4) ;}

} // F in de c l a s s e Ef fectuerDemande

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 40 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportements d’un vendeur

comportement et messages echanges , point de vue vendeur

Un vendeur possede deux comportement cyclique :

1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat

Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportements d’un vendeur

comportement et messages echanges , point de vue vendeur

Un vendeur possede deux comportement cyclique :

1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat

Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportements d’un vendeur

comportement et messages echanges , point de vue vendeur

Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente

2 attente et traitement d’une confirmation de d’achat

Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportements d’un vendeur

comportement et messages echanges , point de vue vendeur

Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat

Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportements d’un vendeur

comportement et messages echanges , point de vue vendeur

Un vendeur possede deux comportement cyclique :1 attente et traitement d’une demande de proposition de vente2 attente et traitement d’une confirmation de d’achat

Ces deux traitements fonctionnent “simultanement” car il peut existerplusieurs acheteurs et donc plusieurs actes de vente

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 41 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur 1/2 I

import j a d e . c o r e . b e h a v i o u r s . C y c l i c B e h a v i o u r ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;

import j a v a . u t i l . H a s h t a b l e ;

// Comportement c y c l i q u e de r e p o n s e a une demande d ’ o f f r e

pub l i c c l a s s ReponseDemandeOffre extends C y c l i c B e h a v i o u r {// c a t a l o g u e p r e s e n tH a s h t a b l e c a t a l o g u e ;

pub l i c ReponseDemandeOffre ( H a s h t a b l e c a t a l o g u e ){ c a t a l o g u e = c a t a l o g u e ; }

// c o e u r du comportement , en 1 e t a p epub l i c vo id a c t i o n ( ) {

// p r e n d r e en compte uniquement l e s messages de t y p e CFPMessageTemplate mt = MessageTemplate . M a t c h P e r f o r m a t i v e ( ACLMessage

. CFP) ;ACLMessage msg = myAgent . r e c e i v e ( mt ) ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 42 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur 1/2 II

i f ( msg != n u l l ) {S t r i n g t i t r e = msg . g e t C o n t e n t ( ) ;// c r e e r l a r e p o n s e a l a demande . l e message e s t a l o r s c r e e avec

l e s champs a p p r o p r i e s ( r e c e i v e r , s e nd e r , in−r e p l y−to , . . . )ACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . g e t ( t i t r e ) ;i f ( p r i x != n u l l ) {// Le L i v r e e s t d i s p o n i b l e . Repondre avec l e p r i xr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage .PROPOSE) ;r e p o n s e . s e t C o n t e n t ( S t r i n g . v a l u e O f ( p r i x . i n t V a l u e ( ) ) ) ;}e l s e {// l i v r e non d i s p o n i b l e a l a vente , r e p o n d r e un r e f u sr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . REFUSE) ;r e p o n s e . s e t C o n t e n t ( ” i n d i s p o n i b l e ” ) ;}myAgent . send ( r e p o n s e ) ;}e l s e b l o c k ( ) ; // a t t e n t e d ’ un message}} // F in de l a c l a s s e i n t e r n e ReponseDemandeOffre

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 43 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur 2/2 I

import j a d e . c o r e . b e h a v i o u r s . C y c l i c B e h a v i o u r ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;

import j a v a . u t i l . H a s h t a b l e ;

pub l i c c l a s s ReponseDemandeAchat extends C y c l i c B e h a v i o u r {// c a t a l o g u e p r e s e n tH a s h t a b l e c a t a l o g u e ;

pub l i c ReponseDemandeAchat ( H a s h t a b l e c a t a l o g u e ){ c a t a l o g u e = c a t a l o g u e ; }

pub l i c vo id a c t i o n ( ) {// c r e a t i o n du f i l t r e s u r un message d ’ a c c e p t a t i o nMessageTemplate mt = MessageTemplate . M a t c h P e r f o r m a t i v e ( ACLMessage

. ACCEPT PROPOSAL) ;ACLMessage msg = myAgent . r e c e i v e ( mt ) ;i f ( msg != n u l l ) {

S t r i n g t i t r e = msg . g e t C o n t e n t ( ) ;ACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 44 / 61

JADE Cas d’etude - Solution sans protocole

Cas d’etude - Comportement d’un acheteur 2/2 II

I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . remove ( t i t r e ) ;i f ( p r i x != n u l l ) {// Le l i v r e e s t t o u j o u r s p r e s e n t , e n v o y e r un message de

c o n f i r m a t i o nr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . INFORM) ;System . out . p r i n t l n ( t i t r e +” vendu a l ’ agent ”+msg . g e t S e n d e r ( ) .

getName ( ) ) ;}e l s e {

// Le l i v r e demande a e t e vendu a un a u t r e a c h e t e u r e n t r e tempsr e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . FAILURE ) ;r e p o n s e . s e t C o n t e n t ( ” i n d i s p o n i b l e ” ) ;}myAgent . send ( r e p o n s e ) ;}e l s e

b l o c k ( ) ; // a t t e n t e d ’ un message}} // f i n de ReponseDemandeAchat

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 45 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Protocole FIPA-ContractNet

Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :

ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.

ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Protocole FIPA-ContractNet

Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :

ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.

ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Protocole FIPA-ContractNet

Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :

ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.

ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Protocole FIPA-ContractNet

Le protocole FIPA-ContractNet est compose de deux comportementspour la gestion des communications dans le cadre d’un appel apropositions :

ContractNetInitiator : Initiant la demande et traitant les differentstypes de reponses. L’utilisation de ce comportementnecessite l’implementation de fonctions declenchees enfonction du type de message recu.

ContractNetResponder : permettant la gestion des demandes d’offreset des reponses associees. L’utilisation de cecomportement necessite l’implementation de fonctionsdeclenchees en fonction du type de message recu.

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 46 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Initiateur d’un ContractNet

methodes principales d’un ContractNetInitiator

void handleAllResponses(Vector reponses, Vector acceptations) methode appelee a lareception de toutes les reponses au cfp, ou apres le delai imparti.acceptations est la liste des messages d’acceptations/rejets a retourner,automatiquement si autorisation est different de ‘null’.

void handleAllResultNotifications(Vector resultNotifications) methode appelee quandtous les messages de notification de l’acceptation ont ete recus

void handleFailure(ACLMessage failure) pour chaque message de type ‘FAILURE’ recu

void handleInform(ACLMessage inform) pour chaque message de type ‘INFORM’ recu

void handleNotUnderstood(ACLMessage notUnderstood) pour chaque message de type‘NOT UNDERSTOOD’ recu

void handleOutOfSequence(ACLMessage msg) pour chaque message tardif recu

void handlePropose(ACLMessage proposition, Vector acceptations) methode appelee achaque proposition recue. acceptations est la liste des messagesd’acceptations/rejets a retourner.

void handleRefuse(ACLMessage refuse) pour chaque message de refus, ‘REFUSE’ recu

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 47 / 61

JADE Cas d’etude - Solution avec protocole

Participant a un ContractNet

methodes principales d’un ContractNetResponder

handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).

handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61

JADE Cas d’etude - Solution avec protocole

Participant a un ContractNet

methodes principales d’un ContractNetResponder

handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).

handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61

JADE Cas d’etude - Solution avec protocole

Participant a un ContractNet

methodes principales d’un ContractNetResponder

handleCfp ACLMessage handleCfp(ACLMessage cfp) : methode appelee a lareception du premier message dans le cadre d’un CFP. Retourne lemessage de reponse a l’initiateur (un message de type autre queINFORM termine le protocole).

handleAcceptProposal ACLMessage handleAcceptProposal(ACLMessage cfp,ACLMessage proposition, ACLMessage acceptation)] : methode appeleea la reception d’un message d’acceptation. retourne le message deconfirmation/infirmation a l’initiateur

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 48 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Cas d’etude

Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :

L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Cas d’etude

Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :

L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Cas d’etude

Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :

L’agent acheteur recoit alors periodiquement le comportementContractNetAchat

L’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61

JADE Cas d’etude - Solution avec protocole

Solution avec Protocole FIPA-ContractNet

Cas d’etude

Les classes definissants l’agent acheteur et l’agent vendeur sontlegerement modifiees :

L’agent acheteur recoit alors periodiquement le comportementContractNetAchatL’agent vendeur recoit alors le comportement ContractNetVente et sedeclare en tant que membre du service “vente livre”

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 49 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur I

import j a d e . c o r e . AID ;import j a d e . c o r e . Agent ;import j a d e . domain . DFServ i ce ;import j a d e . domain . FIPAExcept ion ;import j a d e . domain . FIPANames ;import j a d e . domain . FIPAAgentManagement . D F A g e n t D e s c r i p t i o n ;import j a d e . domain . FIPAAgentManagement . S e r v i c e D e s c r i p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . p r o t o . C o n t r a c t N e t I n i t i a t o r ;

import j a v a . u t i l . Date ;import j a v a . u t i l . V e c t o r ;

pub l i c c l a s s ContractNetAchat extends C o n t r a c t N e t I n i t i a t o r {i n t nbRepondants = 0 ;S t r i n g t i t r e L i v r e C i b l e ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 50 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur II

// C o n s t r u c t e u rpub l i c ContractNetAchat ( Agent agent , ACLMessage msg , S t r i n g

t i t r e L i v r e C i b l e ){super ( agent , msg ) ;t i t r e L i v r e C i b l e = t i t r e L i v r e C i b l e ;// Recherche / Mise a j o u r des a g e n t s v e n d e u r sD F A g e n t D e s c r i p t i o n modele = new D F A g e n t D e s c r i p t i o n ( ) ;S e r v i c e D e s c r i p t i o n sd = new S e r v i c e D e s c r i p t i o n ( ) ;sd . setType ( ” v e n t e l i v r e ” ) ;modele . a d d S e r v i c e s ( sd ) ;D F A g e n t D e s c r i p t i o n [ ] a g e n t s V e n d e u r s = n u l l ;

t r y {a g e n t s V e n d e u r s = DFServ ice . s e a r c h ( myAgent , modele ) ;System . out . p r i n t l n ( ” a g e n t s v e n d e u r s : ” ) ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; ++i )

System . out . p r i n t l n ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;}

catch ( FIPAExcept ion f e ) { f e . p r i n t S t a c k T r a c e ( ) ; }

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 51 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur III

nbRepondants = a g e n t s V e n d e u r s . l e n g t h ;f o r ( i n t i = 0 ; i < a g e n t s V e n d e u r s . l e n g t h ; i ++)msg . a d d R e c e i v e r ( a g e n t s V e n d e u r s [ i ] . getName ( ) ) ;

msg . s e t P r o t o c o l ( FIPANames . I n t e r a c t i o n P r o t o c o l . FIPA CONTRACT NET) ;// Reponse p l u s t a r d dans 10 s e c smsg . se tRep lyByDate (new Date ( System . c u r r e n t T i m e M i l l i s ( ) + 10000) ) ;msg . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;t h i s . r e s e t ( msg ) ;}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 52 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur IV

// p r i s e en compte d ’ une p r o p o s i t i o npro tec ted vo id h a n d l e P r o p o s e ( ACLMessage propose , V e c t o r v ) {System . out . p r i n t l n ( ” Agent ”+p r o p o s e . g e t S e n d e r ( ) . getName ( )+” p r o p o s e

”+p r o p o s e . g e t C o n t e n t ( ) ) ;}

// p r i s e en compte d ’ un r e f u spro tec ted vo id h a n d l e R e f u s e ( ACLMessage r e f u s e ) {System . out . p r i n t l n ( ” Agent ”+r e f u s e . g e t S e n d e r ( ) . getName ( )+” r e f u s e ” )

;}

// p r i s e ne compte d ’ un message d ’ i n f o r m a t i o npro tec ted vo id h a n d l e I n f o r m ( ACLMessage i n f o r m ) {System . out . p r i n t l n ( ” Agent ”+i n f o r m . g e t S e n d e r ( ) . getName ( )+” a

e f f e c t u e l ’ a c t i o n avec s u c c e s ” ) ;}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 53 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur V

// p r i s e en compte d ’ une r e t o u r d ’ e r r e u rpro tec ted vo id h a n d l e F a i l u r e ( ACLMessage f a i l u r e ) {i f ( f a i l u r e . g e t S e n d e r ( ) . e q u a l s ( myAgent . getAMS ( ) ) ) {// ERREUR : l e d e s t i n a t a i r e n ’ e x i s t e pasSystem . out . p r i n t l n ( ” Le d e s t i n a t a i r e n ’ e x i s t e pas . . . ” ) ;}e l s eSystem . out . p r i n t l n ( ” Agent ”+f a i l u r e . g e t S e n d e r ( ) . getName ( )+” a

echoue ” ) ;

// nombre de r e p o n d a n t s d ec r ement enbRepondants −−;}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 54 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur VI

// p r i s e en compte de l ’ ensemble des r e p o n s e spro tec ted vo id h a n d l e A l l R e s p o n s e s ( V e c t o r r e p o n s e s , V e c t o r

a c c e p t a t i o n s ) {i f ( r e p o n s e s . s i z e ( ) < nbRepondants ) {// S i q u e l q u e s v e n d e u r s n ’ ont pas r epondu a tempsSystem . out . p r i n t l n ( ”Temps d ’ a t t e n t e e x p i r e : i l manque ”+(

nbRepondants − r e p o n s e s . s i z e ( ) )+” r e p o n s e s ” ) ;}// E v a l u e r l e s p r o p o s i t i o n si n t m e i l l e u r P r i x = −1;AID m e i l l e u r V e n d e u r = n u l l ;ACLMessage a c c e p t = n u l l ;f o r ( i n t i =0; i <r e p o n s e s . s i z e ( ) ; i ++){

ACLMessage msg = ( ACLMessage ) r e p o n s e s . g e t ( i ) ;i f ( msg . g e t P e r f o r m a t i v e ( ) == ACLMessage .PROPOSE) {// c r e e r une r e p o n s e de r e f u s par d e f a u t pour chaque v e n d e u rACLMessage r e p o n s e = msg . c r e a t e R e p l y ( ) ;r e p o n s e . s e t C o n t e n t ( t i t r e L i v r e C i b l e ) ;r e p o n s e . s e t P e r f o r m a t i v e ( ACLMessage . REJECT PROPOSAL) ;

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 55 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole initiateur de l’acheteur VII

a c c e p t a t i o n s . addElement ( r e p o n s e ) ;// c h e r c h e r l a m e i l l e u r e p r o p o s i t i o n si n t p r i x = I n t e g e r . p a r s e I n t ( msg . g e t C o n t e n t ( ) ) ;i f ( m e i l l e u r V e n d e u r == n u l l | | p r i x < m e i l l e u r P r i x ) {

m e i l l e u r P r i x = p r i x ;m e i l l e u r V e n d e u r = msg . g e t S e n d e r ( ) ;a c c e p t = r e p o n s e ;

}}}// A c c e p t e r l a m e i l l e u r e o f f r e , m o d i f i e r l e t y p e de son messagei f ( a c c e p t != n u l l ) {System . out . p r i n t l n ( ” Accepte l a p r o p o s i t i o n a ” + m e i l l e u r P r i x +”

de l ’ agent ”+m e i l l e u r V e n d e u r . getName ( ) ) ;a c c e p t . s e t P e r f o r m a t i v e ( ACLMessage . ACCEPT PROPOSAL) ;

}}}// remarque : l e s r e p o n s e s du v e c t e u r r e p o n s e s s o n t p r i s e s

automat iquement de l a f i l e// l e s messages du v e c t e u r a c c e p t a t i o n s s o n t automat iquement

e n v o y e s

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 56 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole repondeur du vendeur I

import j a d e . c o r e . Agent ;import j a d e . domain . FIPAAgentManagement . F a i l u r e E x c e p t i o n ;import j a d e . domain . FIPAAgentManagement . N o t U n d e r s t o o d E x c e p t i o n ;import j a d e . domain . FIPAAgentManagement . R e f u s e E x c e p t i o n ;import j a d e . l a n g . a c l . ACLMessage ;import j a d e . l a n g . a c l . MessageTemplate ;import j a d e . p r o t o . C o n t r a c t N e t R e s p o n d e r ;import j a v a . u t i l . H a s h t a b l e ;

// comportement de r e p o n s e dans l e p r o t o c o l e c o n t r a c t N e tpub l i c c l a s s ContractNetVente extends C o n t r a c t N e t R e s p o n d e r{

// c a t a l o g u e du v e n d e u rH a s h t a b l e c a t a l o g u e ;

pub l i c ContractNetVente ( Agent agent , MessageTemplate template ,H a s h t a b l e c a t a l o g u e )

{super ( agent , t e m p l a t e ) ;c a t a l o g u e = c a t a l o g u e ;}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 57 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole repondeur du vendeur II

// p r e p a r e une r e p o n s e a un a p p e l d ’ o f f r epro tec ted ACLMessage p r e p a r e R e s p o n s e ( ACLMessage c f p ) throws

NotUnders toodExcept ion , R e f u s e E x c e p t i o n {

System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : CFP r e c u de”+c f p . g e t S e n d e r ( ) . getName ( )+” . S u j e t ”+c f p . g e t C o n t e n t ( ) ) ;

S t r i n g t i t r e = c f p . g e t C o n t e n t ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . g e t ( t i t r e ) ;

i f ( p r i x != n u l l ) {// Le L i v r e e s t d i s p o n i b l e . Repondre avec l e p r i xSystem . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : Propose ”+

p r i x ) ;ACLMessage p r o p o s e = c f p . c r e a t e R e p l y ( ) ;p r o p o s e . s e t P e r f o r m a t i v e ( ACLMessage .PROPOSE) ;p r o p o s e . s e t C o n t e n t ( S t r i n g . v a l u e O f ( p r i x . i n t V a l u e ( ) ) ) ;r e t u r n p r o p o s e ;}e l s e {

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 58 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole repondeur du vendeur III

// Le l i v r e n ’ e s t pas d i s p o n i b l e a l a vente , r e p o n d r e avec unr e f u s

System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : Refuse ,pas de l i v r e ’ ” + t i t r e + ” ’ en c a t a l o g u e . . . ” ) ;

throw new R e f u s e E x c e p t i o n ( ” e v a l u a t i o n−a−echoue ” ) ;}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 59 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole repondeur du vendeur IV

// g e s t i o n d ’ une a c c e p t a t i o n de l ’ o f f r epro tec ted ACLMessage p r e p a r e R e s u l t N o t i f i c a t i o n ( ACLMessage cfp ,

ACLMessage propose , ACLMessage a c c e p t ) throws F a i l u r e E x c e p t i o n{

S t r i n g t i t r e = a c c e p t . g e t C o n t e n t ( ) ;I n t e g e r p r i x = ( I n t e g e r ) c a t a l o g u e . remove ( t i t r e ) ;i f ( p r i x != n u l l ) {System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : A c t i o n

e f f e c t u e e avec s u c c e s ” ) ;ACLMessage i n f o r m = a c c e p t . c r e a t e R e p l y ( ) ;i n f o r m . s e t P e r f o r m a t i v e ( ACLMessage . INFORM) ;r e t u r n i n f o r m ;} e l s e {

System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : A c t i o n enechec − l i v r e e p u i s e e n t r e temps . . . ” ) ;

throw new F a i l u r e E x c e p t i o n ( ” unexpected−e r r o r ” ) ;}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 60 / 61

JADE Cas d’etude - Solution avec protocole

Cas d’etude - protocole repondeur du vendeur V

// g e s t i o n d ’ un r e f u s de l ’ o f f r epro tec ted vo id h a n d l e R e j e c t P r o p o s a l ( ACLMessage cfp , ACLMessage

propose , ACLMessage r e j e c t ) {System . out . p r i n t l n ( ” Agent ”+myAgent . getLocalName ( )+” : P r o p o s i t i o n

r e j e t e e ” ) ;}}

E. ADAM (University of Valenciennes) La Programmation Orientee Agent 26 septembre 2007 61 / 61