INGÉNIERIE LOGICIELLE ORIENTÉE AGENT ORIENTÉE AGENT
Faten BEN HMIDA
[email protected] [email protected]
Cours II3 - ILSI
Université de La Manouba – ENSI – 2015/2016
3 3
Le Standard FIPA Le Standard FIPA
FIPA – Introduction
2
(cid:1) FIPA : Foundation for Intelligent Physical Agents
www.fipa.org
(cid:1) Mission : Produire des normes et des spécifications standards pour les agents hétérogènes en interaction et les systèmes à base d’agents.
(cid:1) Historique :
(cid:2)
fondée en 1996 en Suisse
(cid:2) 11ème comité de standardisation IEEE Computer Society depuis
2005
FIPA – Introduction
3
(cid:1) Objectif : Promouvoir la technologie orientée-agent et assurer
sa réutilisation et son interopérabilité avec d’autres sa réutilisation et son interopérabilité avec d’autres technologies.
(cid:1) Définition d’un ensemble complet de normes et de
spécifications standards pour :
(cid:2)
(cid:2)
La mise en œuvre de systèmes dans lesquels les agents peuvent s’exécuter (plates-formes agents) s’exécuter (plates-formes agents)
La précision de la manière dont les agents devraient communiquer et interagir (langage de communication et protocoles d’interaction entre agents)
FIPA – Catégories de spécifications
4
(cid:1) Les spécifications FIPA représentent des collections de
standards rassemblées en 5 catégories : standards rassemblées en 5 catégories :
Applications
Architecture abstraite
Gestion des Gestion des agents
Communication Communication entre agents
Transport des Transport des messages
(cid:1) La catégorie « communication entre agents » est la catégorie de
base au cœur du modèle FIPA des systèmes multi-agents.
Spécifications FIPA – Applications
5
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
(cid:1) Exemples de domaines d’application dans lesquels les agents (cid:1) Exemples de domaines d’application dans lesquels les agents
peuvent être déployés conformément aux normes FIPA.
Spécifications FIPA – Applications
6
(cid:1) Pour chaque domaine, FIPA définit :
(cid:2) une ontologie (cid:2) des descriptions d’agents et de services liés à l’application.
(cid:1) Exemples : applications nomades, gestion des réseaux,
assistance personnelle de voyage, divertissement audio-visuel, etc.
(cid:1) Spécifications complètes disponibles dans :
http://www.fipa.org/repository/applicationspecs.html
Spécifications FIPA – Architecture abstraite
7
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
(cid:1) Identification des entités architecturales abstraites requises
pour construire un environnement orienté-agent. pour construire un environnement orienté-agent.
(cid:1) Eléments minimaux nécessaires :
(cid:2) Annuaire d’agents / Annuaire de services (cid:2)
Langage de communication Système de transport des messages
(cid:2)
Spécifications FIPA – Architecture abstraite
8
(cid:1) L’architecture abstraite FIPA peut se décliner en plusieurs
implémentations physiques possibles. implémentations physiques possibles.
(cid:1) Exemples :
(cid:2) Annuaires d’agents/de services : X.500, LDAP, … (cid:2) Transport des messages : IIOP, SMTP, HTTP, JMS, …
Spécifications FIPA – Gestion des agents
9
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
(cid:1) Fournir le cadre normatif de la structure permettant l’existence (cid:1) Fournir le cadre normatif de la structure permettant l’existence
et le fonctionnement des agents.
(cid:1) Etablir le modèle de référence logique pour la création,
l’enregistrement, la localisation, la communication, la migration et le retrait d’agents.
Spécifications FIPA – Gestion des agents
10
Spécifications FIPA – Gestion des agents
11
(cid:1) Les entités composant le modèle de référence représentent un
ensemble de fonctionnalités et n’impliquent pas une ensemble de fonctionnalités et n’impliquent pas une configuration physique particulière.
(cid:1) Les détails de l’implémentation de la plate-forme agent restent au choix de conception du développeur (de la plate-forme).
(cid:1) Plusieurs implémentations possibles du modèle de référence (cid:1) Plusieurs implémentations possibles du modèle de référence (cid:3) plusieurs plates-formes agent conformes à la norme FIPA.
(cid:1) Exemples de plates-formes : ADK (Agent Development Kit), April Agent Platform, Comtec Agent Platform, FIPA-OS, Grasshopper, JACK Intelligent Agents, JADE, JAS (Java Agent Services API), LEAP, ZEUS.
Spécifications FIPA – Gestion des agents
12
Agent
Processus informatique implémentant les Processus informatique implémentant les fonctionnalités d’autonomie et de communication.
Chaque agent possède : (cid:2) un identifiant unique qui permet de le
reconnaître sans ambigüité (AID).
(cid:2) une ou plusieurs compétences (services) une ou plusieurs compétences (services) qu’il peut publier dans un annuaire de services.
(cid:2) une ou plusieurs adresses qui permettent
aux autres agents de le contacter.
Les agents communiquent en utilisant un langage de communication agent (ACL).
Spécifications FIPA – Gestion des agents
13
Agent Management System (AMS)
Annuaire des agents / Service de pages Annuaire des agents / Service de pages blanches
Il exerce un contrôle de supervision sur l’accès et l’utilisation de la plate-forme.
Chaque plateforme ne peut contenir qu’un seul AMS qui assure l’enregistrement et la localisation des agents dans cette dernière. localisation des agents dans cette dernière.
Chaque agent doit s'inscrire auprès de l’AMS afin d'obtenir un AID valide.
L’AMS maintient un répertoire d’AIDs qui contiennent entre autre les adresses des agents enregistrés.
Spécifications FIPA – Gestion des agents
Publicité
14
Directory Facilitator (DF)
Annuaire des services / Service de pages Annuaire des services / Service de pages jaunes
Il assure l’enregistrement, la recherche et la consultation de services d’agents.
Les agents peuvent :
(cid:2) enregistrer et publier leurs services dans (cid:2) enregistrer et publier leurs services dans
le DF.
(cid:2) consulter le DF pour savoir quels sont les
services offerts par les autres agents.
(cid:2) interroger le DF pour savoir quels sont les
agents offrant un service particulier.
Spécifications FIPA – Gestion des agents
15
Message Transport System (MTS)
Le MTS constitue la méthode de Le MTS constitue la méthode de communication par défaut entre agents appartenant à différentes plates-formes.
Agent Platform (AP)
infrastructure physique dans laquelle les infrastructure physique dans laquelle les agents sont déployés : la machine, le système d’exploitation, les composants FIPA (AMS, DF, MTS), les agents.
Spécifications FIPA – Communication entre agents
16
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
(cid:1) Définir les normes de communication entre agents : (cid:1) Définir les normes de communication entre agents :
(cid:2)
(cid:2)
(cid:2)
(cid:2)
Le langage de communication FIPA-ACL les actes de communications basés sur la théorie des actes du langage. les échanges de messages dans les protocoles d’interaction. les représentations des langages de contenus.
Spécifications FIPA – Communication entre agents
17
(cid:1) Pour communiquer correctement à travers l’échange de
messages, les agents doivent savoir : messages, les agents doivent savoir :
(cid:2) avec quels autres agents communiquer,
(cid:2)
comment joindre ces agents,
(cid:2) quel langage utiliser pour échanger des connaissances,
(cid:2) quel protocole utiliser pour le dialogue ,
(cid:2) quels termes du langage utiliser pour garantir que l'autre agent va (cid:2) quels termes du langage utiliser pour garantir que l'autre agent va
interpréter les expressions dans le même sens,
(cid:2)
comment gérer l'information inutile et les possibles données erronées qui apparaissent des différentes vues du monde. (cid:3) Besoin de langages et de protocoles pour communiquer
Spécifications FIPA – Communication entre agents
18
L’échange de messages nécessite un langage bien défini avec les éléments suivants : éléments suivants :
(cid:1) une syntaxe
un langage commun pour représenter informations et requêtes.
(cid:1) une sémantique
un vocabulaire structuré et un cadre partagé de connaissance : une ontologie partagée. ontologie partagée.
(cid:1) une pragmatique
(cid:2) avec qui communiquer et comment le ou les trouver.
(cid:2)
(cid:2)
comment initialiser et maintenir un échange.
l'effet de la communication sur le destinataire.
Spécifications FIPA – Communication entre agents
19
L’échange de messages peut se baser également sur un protocole de communication qui spécifie : de communication qui spécifie :
(cid:1) l'expéditeur (émetteur),
(cid:1) le ou les destinataires (récepteurs),
(cid:1) le langage utilisé dans le protocole,
(cid:1) les actions à réaliser par les participants au protocole à
différentes étapes de son déroulement. différentes étapes de son déroulement.
Spécifications FIPA – Langage ACL
20
(cid:1) La communication entre agents se base sur la théorie des actes
du langage [Austin, 1962], [Searle,1969] : du langage [Austin, 1962], [Searle,1969] :
(cid:2)
"Communiquer c'est agir" : la communication est considérée comme une forme d'action.
(cid:2) Catégoriser des types de communication et définir des verbes dits
« performatifs » ou « actes de communication » : informer, demander, répondre, promettre, proposition, offre...
(cid:1) FIPA a défini un langage standard pour la communication entre agents : FIPA Agent Communication Language (FIPA-ACL ou tout simplement ACL) qui se base sur cette théorie.
Spécifications FIPA – Langage ACL
21
Structure d’un message ACL
(cid:1) Champs minimaux (obligatoires) :
(cid:2) performative : type de l’acte de communication (inform, request,
reply, propose, refuse …)
(cid:2)
(cid:2) (cid:2)
(cid:2)
sender : identité de l’agent expéditeur du message (nom).
receiver : identité(s) de(s) destinataire(s) du message (nom(s)). receiver : identité(s) de(s) destinataire(s) du message (nom(s)).
content : le contenu du message (l’information objet de l’acte de communication défini dans le champ performative)
Spécifications FIPA – Langage ACL
22
Structure d’un message ACL
(cid:1) Champs facultatifs mais souvent utiles :
(cid:2)
language : langage dans lequel le contenu du message est exprimé.
(cid:2) encoding : encodage spécifique du contenu du message.
(cid:2) ontology : ontologie du domaine utilisée pour donner un sens aux
termes et symboles utilisés dans l’expression du contenu. termes et symboles utilisés dans l’expression du contenu.
(cid:2) protocol : protocole d’interaction utilisé par les agents.
(cid:2)
conversation-id : identifiant d’une séquence de messages faisant partie d’une même conversation.
Spécifications FIPA – Langage ACL
23
Structure d’un message ACL
(cid:1) Champs facultatifs mais souvent utiles :
(cid:2)
(cid:2)
(cid:2)
(cid:2)
reply-to: la réponse au message doit être adressée à l’agent défini par ce champ et non à l’expéditeur du message.
reply-with : expression identifiant le message en vue d’une réponse ultérieure.
in-reply-to : expression identifiant le message auquel la réponse est adressée (précisé par l’attribut reply-with de l’émetteur).
reply-by : le temps ou la date limite de réponse.
Spécifications FIPA – Langage ACL
24
Structure d’un message ACL
Spécifications FIPA – Actes de communication
Publicité
25
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
Actes de Actes de communication
Protocoles Protocoles d’interaction
Langages de contenus
(cid:1) FIPA définit 22 actes de communication ou performatives en se
basant sur la théorie des actes du langage.
Spécifications FIPA – Actes de communication
26
Spécifications FIPA – Actes de communication
27
Performative
Définition - Sens
ACCEPT-PROPOSAL ACCEPT-PROPOSAL
The action of accepting a previously submitted proposal to perform The action of accepting a previously submitted proposal to perform an action.
AGREE
CANCEL
CFP
CONFIRM
DISCONFIRM
FAILURE
The action of agreeing to perform some action, possibly in the future.
The action of one agent informing another agent that the first no longer has the intention that the second perform some action.
Call for Proposal : The action of calling for proposals to perform a given action.
The sender informs the receiver that a given proposition is true, The sender informs the receiver that a given proposition is true, where the receiver is known to be uncertain about the proposition.
The sender informs the receiver that a given proposition is false, where the receiver is known to believe the proposition is true.
The action of telling another agent that an action was attempted but the attempt failed.
Spécifications FIPA – Actes de communication
28
Performative
Définition - Sens
INFORM INFORM
The sender informs the receiver that a given proposition is true. The sender informs the receiver that a given proposition is true.
INFORM-IF
INFORM-REF
The action to inform the recipient whether or not a proposition is true.
Action for sender to inform the receiver the object which corresponds to a descriptor, for example, a name.
NOT-UNDERSTOOD
The sender informs the receiver that it perceived that the latter performed some action or sent some message that the first did not understand. understand.
PROPAGATE
PROPOSE
PROXY
The sender wants the receiver to identify the agents denoted by the given descriptor and send the (same) received message to them.
The action of submitting a proposal to perform a certain action, given certain preconditions.
The sender wants the receiver to select target agents denoted by a given description and to send a (embedded) message to them.
Spécifications FIPA – Actes de communication
29
Performative
Définition - Sens
QUERY-IF QUERY-IF
The action of asking another agent whether or not a proposition is true. The action of asking another agent whether or not a proposition is true.
QUERY-REF
REFUSE
The action of asking another agent for the object referred to by a referential expression.
The action of refusing to perform a given action, and explaining the reason for the refusal.
REJECT-PROPOSAL
The action of rejecting a proposal to perform some action during a negotiation.
REQUEST REQUEST
The sender requests the receiver to perform some action. The sender requests the receiver to perform some action.
REQUEST-WHEN
The sender wants the receiver to perform some action when some given proposition becomes true
REQUEST-WHENEVER
The sender wants the receiver to perform some action as soon as some proposition becomes true and thereafter each time it becomes true again.
SUBSCRIBE
The act of requesting a persistent intention to notify the sender of the value of a reference, and to notify again whenever the object identified by the reference changes.
Spécifications FIPA – Messages ACL
30
Exemple d’un message ACL
(inform
:sender (agent-identifier :name A)
:receiver (set (agent-identifier :name B))
:content "weather (tomorrow, raining)"
:language Prolog
)
L’agent A informe l’agent B que demain le temps sera pluvieux.
Spécifications FIPA – Actes de communication
31
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
Actes de Actes de communication
Protocoles Protocoles d’interaction
Langages de contenus
(cid:1) FIPA définit 11 protocoles d’interaction entre agents et spécifie
les échanges de messages prédéfinis dans le cadre de ces protocoles.
Spécifications FIPA – Protocoles d’interaction
32
Liste des protocoles d’interaction FIPA
(cid:1) Request Interaction Protocol
(cid:1) Query Interaction Protocol
(cid:1) Request When Interaction Protocol
(cid:1) Contract Net Interaction Protocol
(cid:1) Iterated Contract Net Interaction Protocol
(cid:1) English Auction Interaction Protocol (cid:1) English Auction Interaction Protocol
(cid:1) Dutch Auction Interaction Protocol
(cid:1) Brokering Interaction Protocol
(cid:1) Recruiting Interaction Protocol
(cid:1) Subscribe Interaction Protocol
(cid:1) Propose Interaction Protocol
Spécifications FIPA – Protocoles d’interaction
33 FIPA-Request
• Un agent (initateur) demande à un autre agent • Un agent (initateur) demande à un autre agent
(participant) d’effectuer une tâche.
• Le participant examine la requête et décide de
l’accepter ou de la refuser.
• S’il refuse (refused = vrai) il envoie un message ACL de
type refuse.
Publicité
• S’il accepte (agreed = vrai) il peut soit : • S’il accepte (agreed = vrai) il peut soit :
• Échouer à réaliser la requête et donc renvoie un message de
type failure
• Réussir à réaliser la requête et donc renvoie un message de type inform soit avec seulement la confirmation d’exécution (inform-done) ou bien avec la confirmation et les résultats d’exécution (inform-result)
Spécifications FIPA – Protocoles d’interaction
34
FIPA-ContractNet
• Protocole d’interaction qui se base sur la négociation • Protocole d’interaction qui se base sur la négociation
• Création de marchés pour l’achat et la vente de produits
• Un agent (initiateur) prend le rôle de gestionnaire qui souhaite voir une certaine tâche réalisée par un ou plusieurs autres agents (participants)
• L’initiateur souhaite en plus optimiser une certaine fonction qui caractérise la
tâche à réaliser.
• Cette fonction est communément désignée comme étant le prix (dans certains domaines d’application) mais peut aussi être le temps d’exécution de la tâche, l’équité de répartition de la charge, etc.
• Pour une tâche donnée, n’importe quel nombre d’agents peuvent répondre par une proposition, les autres refusent. Dans ce cas, la négociation continue avec seulement les agents ayant fait une proposition.
Spécifications FIPA – Protocoles d’interaction
35 FIPA-ContractNet (suite)
• L’initiateur sollicite les propositions de m • L’initiateur sollicite les propositions de m
participants pour la réalisation d’une tâche en envoyant un message cfp (call for proposal).
• Une fois la deadline passée, n participants
auraient répondu soit par un refus soit par une proposition.
• Une proposition inclut les conditions pour la
réalisation de la tâche (coût, temps, etc) réalisation de la tâche (coût, temps, etc)
• L’initiateur examine les propositions des
participants et sélectionne un certain nombre d’agents pour la réalisation de la tâche (zéro, un ou plusieurs) et leur envoie un message de type accept-proposal pour les autres il envoie un message de type reject-proposal
Spécifications FIPA – Protocoles d’interaction
36 FIPA-ContractNet (suite)
• Une fois sa proposition acceptée par • Une fois sa proposition acceptée par
l’initiateur, le participant devient obligé d’effectuer la tâche allouée.
• S’il parvient à effectuer la tâche avec succès, le participant renvoie à l’initiateur un message de type inform soit avec seulement la confirmation d’exécution (inform-done) soit avec la confirmation et les résultats d’exécution avec la confirmation et les résultats d’exécution (inform-result)
• S’il échoue à effectuer la tâche, il lui renvoie un
message de type failure.
Spécifications FIPA – Protocoles d’interaction
37
FIPA-English-Auction
• Protocole d’interaction qui se base sur les enchères anglaises • Protocole d’interaction qui se base sur les enchères anglaises
• Le commissaire-priseur cherche à vendre un bien sur le marché en proposant d'abord un prix inférieur à celui de sa valeur supposée, puis en augmentant graduellement le prix.
• Chaque fois que le prix est annoncé, le commissaire-priseur attend de voir si les
acheteurs vont signaler leur volonté de payer le prix proposé. Dès qu'un acheteur indique qu'il accepte le prix, le commissaire-priseur émet un nouvel acheteur indique qu'il accepte le prix, le commissaire-priseur émet un nouvel appel d’offres.
• La vente aux enchères se poursuit jusqu'à ce qu’il n’y ai plus d'acheteurs prêts à
payer le prix proposé.
• Si le dernier prix qui a été acceptée par un acheteur dépasse le prix de
réservation du commissaire-priseur, le bien est vendu à cet acheteur pour le prix convenu. S’il est inférieur au prix de réserve, le bien ne se vend pas
Spécifications FIPA – Protocoles d’interaction
38 FIPA-English-Auction (suite)
• L’initiateur ouvre les enchères en envoyant un • L’initiateur ouvre les enchères en envoyant un
message de type inform.
• Il envoie ensuite aux participants l’appel à
proposition initial (cfp-1)
• Les participants envoient leurs propositions
suite à quoi l’initiateur répond par une acceptation (accept-proposal) ou par un refus acceptation (accept-proposal) ou par un refus (reject-proposal)
• Tant qu’il y a des participants qui ont répondu
à l’appel alors on passe à un second tour d’enchères (cfp-2)
Spécifications FIPA – Protocoles d’interaction
39 FIPA-English-Auction (suite)
• S’il n’y a plus de participants ayant fait une • S’il n’y a plus de participants ayant fait une
proposition, l’enchère se termine.
• L’initiateur informe d’abord tous les
participants (inform-2) de la fin de l’enchère
• Il envoie ensuite au gagnant de l’enchère un
message (request) pour réclamer le paiement du bien. du bien.
Spécifications FIPA – Protocoles d’interaction
40
FIPA-Dutch-Auction
• Protocole d’interaction qui se base sur les enchères hollandaises • Protocole d’interaction qui se base sur les enchères hollandaises
• Le commissaire-priseur cherche à vendre un bien sur le marché en proposant d'abord un prix beaucoup plus élevé à celui de sa valeur supposée, puis en réduisant graduellement le prix.
• Le taux de réduction du prix revient au commissaire-priseur et il y a
généralement un prix de réserve minimum à ne pas dépasser.
• Si le prix proposé par le commissaire-priseur est accepté, le bien est vendu à • Si le prix proposé par le commissaire-priseur est accepté, le bien est vendu à l’acheteur pour le prix convenu. S’il est inférieur au prix de réserve, le bien ne se vend pas et l’enchère se termine.
Spécifications FIPA – Protocoles d’interaction
41 FIPA-Dutch-Auction (suite)
• L’initiateur ouvre les enchères en envoyant • L’initiateur ouvre les enchères en envoyant
un message de type inform.
• Il envoie ensuite aux participants l’appel à
proposition initial (cfp-1)
• Les participants envoient leurs
propositions suite à quoi l’initiateur répond par une acceptation (accept- répond par une acceptation (accept- proposal) ou par un refus (reject-proposal)
• Tant qu’il y a des participants qui ont répondu à l’appel alors on passe à un second tour d’enchères (cfp-2) sinon l’enchère se termine sans vente.
Spécifications FIPA – Langages de contenus
42
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
Actes de Actes de communication
Protocoles Protocoles d’interaction
Langages de Langages de contenus
(cid:1) FIPA propose différentes possibilités de représentations du
contenu d’un message ACL.
Spécifications FIPA – Langages de contenus
43
Liste des langages de contenus FIPA
(cid:1) Semantic Language (SL) (cid:1) Constraint Choice Language (CCL) (cid:1) Knowledge Interchange Format (KIF) (cid:1) Resource Description Framework (RDF)
Spécifications FIPA – Transport des messages
44
Applications
Architecture abstraite
Gestion des agents
Communication entre agents
Transport des messages
(cid:1) Gérer la représentation des messages et leur livraison inter- (cid:1) Gérer la représentation des messages et leur livraison inter-
plateformes.
(cid:1) Définir un modèle de référence pour le service de transport des
messages.
Spécifications FIPA – Transport des messages
45
Message Transport System (MTS)
Il y a obligatoirement un MTS sur Il y a obligatoirement un MTS sur chaque plate-forme.
Le message d’un agent A à un agent B est transféré physiquement à travers le MTS.
Le message à relayer est formaté Le message à relayer est formaté comme suit :
Message = Enveloppe + Corps
Enveloppe : informations de transport Corps : message ACL