• Aucun résultat trouvé

6.2 M´ ecanisme de r´ esolution

7.1.2 Protocoles d’interaction

Cette section d´efinit plus pr´ecis´ement les protocoles d’interactions qui apparaissent sur la figure 7.1. Chacun de ces protocoles est d´etaill´e sous la forme d’un diagramme de

s´equence qui indique les diff´erents messages ´echang´es entre les parties. Les messages sont exprim´es `a l’aide des langages FIPA-ACL et FIPA-SL (voir section 3.2.3). La signification des messages est d´ecrite ici de mani`ere informelle, mais leur contenu pr´ecis est explicit´e dans la section 7.2.1.

Les interactions entre ces diff´erents types d’agents sont r´egies par quatre protocoles d’interaction principaux :

ComposeApplication (not´e CA sur la figure 7.1) est le protocole qui permet `a un utili- sateur (ou `a un agent assistant qui le repr´esente dans le syst`eme) d’interagir avec un agent composeur. Ce protocole permet de d´efinir la tˆache de composition de l’application.

SuperviseFunctionality (not´e SP sur la figure 7.1) est le protocole qui permet `a un agent composeur et `a un agent superviseur d’´echanger des informations sur la tˆache de supervision d’une fonctionnalit´e abstraite.

InterpretDescription (not´e ID sur la figure 7.1) est le protocole qui permet `a un agent superviseur et `a un agent d’interpr´etation d’´echanger des informations sur une interpr´etation de fonctionnalit´es.

DescribeSolution (non repr´esent´e sur la figure 7.1) est le protocole qui permet `a l’ensemble des agents de construire collectivement une description de la confi- guration adapt´ee `a partir des solutions du probl`eme de contraintes.

Le reste de cette section d´ecrit les quatre protocoles d’interaction.

a) Le protocole de composition d’application

Le protocole ComposeApplication implique un agent assistant (ext´erieur au sys- t`eme) et un agent composeur d’application. Son d´eroulement est repr´esent´e par la figure 7.2 :

Utilisateur

cp:Composeur

REQUEST (action (agent cp) (BeginCompose :reference application)) INFORM

(realizes configuration application)

1.1

REFUSE

1.2

SUBSCRIBE

(iota ?configuration

(realizes ?configuration application))

2.1

2.2

2.N

DONE

1.3

FAILLURE

1.4

Figure 7.2 – Protocole d’interaction ComposeApplication

1. Affectation d’une application : au cours de cette premi`ere phase, l’assistant de- mande au composeur de prendre en charge la composition d’une application. Pour ce faire, il lui fournit la description abstraite de l’application `a r´ealiser (1.1). Le composeur examine cette description et r´ealise les op´erations d’initia- lisation pour la recherche de solutions. Il informe ensuite l’assistant du succ`es (1.4) ou de l’´echec (1.3) de l’initialisation. Le composeur peut aussi refuser de r´ealiser cette composition (1.2), par exemple s’il est d´ej`a occup´e `a en r´ealiser une autre. En cas de succ`es de l’initialisation, le composeur prend l’engagement de poursuivre l’activit´e de composition de l’application.

2. Surveillance des r´esultats : tout au long du fonctionnement de l’application, l’assistant peut surveiller les configurations mises en place pour la r´ealiser. Pour cela, il s’inscrit aupr`es du composeur de mani`ere `a recevoir les descriptions de configurations qui r´ealisent l’application demand´ee (2.1). A chaque modification de configuration, le composeur fournit une description de la configuration choisie pour r´ealiser le comportement souhait´e de mani`ere adapt´ee `a la situation (2.2 . . . 2.N). La description de configuration peut ´eventuellement ˆetre vide, ce qui traduit l’impossibilit´e de r´ealiser l’application dans la situation courante.

b) Le protocole de supervision de fonctionnalit´e

Le protocole SuperviseFunctionality concerne un agent composeur et un agent superviseur. Son d´eroulement est repr´esent´e par la figure 7.3 :

cp:Composeur

sp:Superviseur

1.1

REFUSE

1.2

2.1

2.2

2.N

DONE

1.3

FAILLURE

1.4

REQUEST (action (agent sp) (BeginSupervise :variable variable :problem problem)) SUBSCRIBE

(all ?value (cspValue ?value variable))

INFORM

(= set(value1, value2, ...)

(all ?value (cspValue ?value variable))

Figure 7.3 – Protocole d’interaction SuperviseFunctionality

Ce protocole se d´eroule en deux phases :

1. Affectation d’une fonctionnalit´e abstraite : le composeur demande tout d’abord au superviseur de prendre en charge une des fonctionnalit´es n´ecessaires `a l’appli- cation (1.1). Pour cela, le composeur fournit une description de la fonctionnalit´e abstraite concern´ee (cette description est extraite de la description globale de

l’application). Le superviseur d´emarre alors la recherche de fonctionnalit´es ap- propri´ees pour r´ealiser la fonctionnalit´e abstraite, et informe le composeur du succ`es (1.4) ou de l’´echec (1.3) de cette initialisation. Le superviseur peut aussi refuser de prendre en charge cette fonctionnalit´e abstraite (1.2).

2. Obtention de propositions de fonctionnalit´es : une fois l’initialisation effectu´ee, le composeur s’inscrit pour recevoir des propositions de fonctionnalit´es appropri´ees (2.1). Au fur et `a mesure, le superviseur fournit au composeur une liste de description des fonctionnalit´es appropri´ees dans la situation courante (2.2 . . . 2.N).

c) Le protocole d’interpr´etation de description

Le protocole InterpretDescription implique un agent de r´esolution (composeur ou superviseur) et un nombre ind´efini d’agents d’interpr´etation. Il s’agit d’un protocole d’interaction de groupe : l’agent de r´esolution n’adresse pas un message `a un agent bien d´etermin´e, mais `a un groupe de discussion dont les membres ne sont pas d´efinis. Ainsi, n’importe quel agent d’interpr´etation peut s’int´eresser `a un groupe de discussion et d´ecider de fournir des informations `a un superviseur ou `a un composeur sans que celui-ci ne lui ait sp´ecifiquement demand´e. Le d´eroulement de ce protocole est pr´esent´e dans la figure 7.4 (avec un seul agent d’interpr´etation)

sp:Superviseur

int:Interpreteur

SUBSCRIBE (any ?utility (cspEval ?utility assignment)) INFORM

(cspEval utility assignment)

Groupe de discussion

inscription préalable SUBSCRIBE (any ?utility (cspEval ?utility assignment)) décision

1

2.1

4.1

4.2

4.N

2.2

3

Figure 7.4 – Protocole d’interaction InterpretDescription

Ce protocole se d´eroule en quatre phases :

1. Enregistrement des agents d’interpr´etation : `a tout moment un agent d’interpr´e- tation peut s’inscrire aupr`es du m´ediateur pour recevoir les demandes d’inter- pr´etations `a effectuer (1).

2. Publication d’une demande d’interpr´etation : l’agent de r´esolution publie une instanciation pour laquelle il souhaite obtenir des interpr´etations (2.1). Une ins- tanciation est d´efinie comme une liste de couples (description de fonctionnalit´e abstraite, description de fonctionnalit´e r´eelle). Lorsqu’une demande d’interpr´eta- tion est publi´ee, elle est accessible `a tous les agents d’interpr´etation. Par ailleurs, elle est directement transmise aux agents d’interpr´etation qui se sont pr´ealable- ment inscrits (2.2).

3. D´ecision d’interpr´etation : chaque agent d’interpr´etation d´ecide s’il souhaite proposer une interpr´etation correspondant `a cette instanciation (3).

4. D´eclaration d’´evaluations : chaque agent d’interpr´etation peut d´ecider de s’in- t´eresser `a une instanciation publi´ee et indiquer une ou des contraintes qu’il connaˆıt sur cette instanciation. Dans ce cas, il envoie directement au supervi- seur concern´e un ou des messages contenant les informations sur une contrainte dont il veut l’informer (4.1 . . . 4.N). Chaque message d´ecrit une contrainte en indiquant notamment son type et le coˆut qui lui est associ´e.

d) Le protocole de description de solution

Le protocole DescribeSolution implique tous les agents du syst`eme. Il permet de reconstituer la description de la configuration choisie `a partir des diff´erentes interpr´eta- tions de fonctionnalit´es fournit par diff´erents agents d’interpr´etation. Le d´eroulement de ce protocole est pr´esent´e dans la figure 7.5.

1.1

2.1

3.1

3.2

2.2

1.2

cp:Composeur

itp1:Interpreteur

QUERY-REF (iota ?f (describes1 ?f asg1))

sp:Superviseur

itp2:Interpreteur

QUERY-REF (any ?d (interprets2 ?d asg2)) INFORM (= f (iota ?f (describes1 ?f asg1))) INFORM (= d (any ?d (interprets2 ?d asg2)) QUERY-REF (any ?d (interprets1 ?d asg1)) INFORM (= d (any ?d (interprets1 ?d asg1)) 1 1 n p m 1

Figure 7.5 – Protocole DescribeSolution

Ce protocole se d´eroule en trois phases :

1. Requˆete de description contextualis´ee des fonctionnalit´es individuelles : le com- poseur demande `a chacun des n superviseurs une description contextualis´ee de la fonctionnalit´e choisie (1.1).

2. Requˆete de descriptions des interpr´etations locales : chaque superviseur demande `

a chacun des m agents d’interpr´etation ayant propos´e une interpr´etation pour la fonctionnalit´e choisie de d´ecrire son interpr´etation (2.1). Apr`es la r´eponse des agents d’interpr´etation (2.2), Il agr`ege les interpr´etations obtenues et fournit au composeur une description contextualis´ee de la fonctionnalit´e qui le concerne (1.2).

3. Requˆete de descriptions des interpr´etations partag´ees : le composeur demande `a chacun des p agents d’interpr´etation ayant propos´e une interpr´etation portant

sur plusieurs fonctionnalit´es de d´ecrire son interpr´etation (3.1). Il collecte ensuite les r´eponses des agents d’interpr´etation (3.2).

A l’issue du d´eroulement de ce protocole, l’agent composeur agr`ege finalement les interpr´etations obtenues aupr`es des superviseurs (1.2) et celles obtenues aupr`es des agents d’interpr´etation (3.2) pour former une description de la configuration choisie.