INGÉNIERIE LOGICIELLE ORIENTÉE AGENT

IEEE
Page 1 sur 46Lecteur de document UniversityLib

INGÉNIERIE LOGICIELLE ORIENTÉE AGENT

Programming, Agent-Based Systems, Standards · course

Voir tous les documents en programmation

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