• Aucun résultat trouvé

Impl´ ementation de la gestion de composition flexible

7.3 Agents d’interpr´ etation

8.1.3 Impl´ ementation de la gestion de composition flexible

Les m´ecanismes de gestion de composition flexible sont pr´esent´es dans les chapitres 6 et 7. Concernant l’impl´ementation de ces m´ecanismes, on peut distinguer d’une part l’impl´ementation des algorithmes de gestion de composition et d’autre part l’impl´emen- tation du syst`eme multi-agents mettant en œuvre ces algorithmes. L’impl´ementation des algorithmes de gestion de composition d´ecoule de mani`ere relativement directe du pseudo-code d´etaill´e dans le chapitre 6. Cette section pr´ecise uniquement l’impl´emen- tation du syst`eme multi-agents pr´esent´e dans le chapitre 7, et indique en particulier l’infrastructure multi-agents utilis´ee, l’impl´ementation des agents de r´esolution (agents composeurs et superviseurs) et l’impl´ementation des agents d’interpr´etation.

a) Infrastructure du syst`eme multi-agents

L’impl´ementation des agents pour la gestion de composition se base sur la pla- teforme multi-agents Jade4. Pour une grande partie, Jade impl´emente les standards d´efinis par la FIPA5, en particulier le langage de communication FIPA-ACL et les services de gestion des agents. Jade fournit un environnement complet de d´eploiement d’un syst`eme multi-agents, et g`ere notamment la distribution physique des agents, les m´ecanismes de communication par messages, ainsi que le cycle de vie des agents.

Jade d´efinit les primitives `a partir desquelles un agent sp´ecifique peut ˆetre impl´e- ment´e. Jade fournit ainsi une classe Agent, qui peut ˆetre ´etendue pour r´ealiser un agent particulier. Pour les exp´erimentations, les deux types d’agents de r´esolution (compo- seur et superviseurs) ainsi que plusieurs types d’agents d’interpr´etation (en particulier les agents d´efinis dans la section 7.3.2) ont ´et´e impl´ement´es de cette mani`ere.

Une particularit´e de notre impl´ementation est l’utilisation conjointe de la pla- teforme multi-agents Jade avec une plateforme OSGi, utilis´ee pour l’int´egration des

3. Open Service Gateway Initiative, http://www.osgi.org

4. Java Agent Development Environment, http://jade.tilab.org/ 5. Foundation for Intelligent Physical Agents, http://www.fipa.org/

diff´erentes infrastructures de services. Pour cela, l’impl´ementation des diff´erents agents est fournie sous la forme de bundles OSGi.

b) Impl´ementation des agents de r´esolution

Les agents de r´esolution poss`edent une architecture d’agents rationnels, et leur comportement est d´efini par un ensemble de plans permettant d’atteindre leurs buts. Les plans utilis´es pour les agents de r´esolution sont d´etaill´es dans la section 7.2.2 (pour l’agent superviseur) et dans la section 7.2.3 (pour l’agent composeur).

Dans le cadre de la plateforme Jade, l’impl´ementation des agents de r´esolution re- pose sur une extension de Jade appel´ee JSA (Jade Semantic Add-on). Le JSA fournit les ´el´ements de base pour l’impl´ementation d’agents rationnels capables d’interpr´eter des actes de communications exprim´es `a l’aide des langages FIPA-ACL (FIPA, 2002a) et FIPA-SL (FIPA, 2002c). FIPA-SL est un langage de contenu standardis´e par la FIPA, grˆace auquel il est possible d’exprimer formellement les croyances et intentions des diff´erents agents. Le JSA permet en particulier d’impl´ementer un agent autour d’une base de croyances contenant des formules FIPA-SL, en d´efinissant un ensemble de m´ecanismes d’interpr´etation pour ces formules (SIP, Semantic Interpretation Prin- ciple).

Chacun des plans des agents composeurs et superviseurs est impl´ement´e sous la forme d’un SIP. Pour cela, la condition d’activation du plan est exprim´ee sous la forme d’une expression FIPA-SL, afin que le plan soit ex´ecut´e lorsqu’une formule FIPA-SL correspondante apparait. Pour chacun des types de condition d’activation d´efinis dans la section 7.2.1, une expression FIPA-SL est obtenue assez simplement :

– une perception est traduite par l’ajout direct d’une croyance.

– la r´eception d’un message est traduite par l’ajout d’une formule FIPA-SL corres- pondant `a la s´emantique du message, obtenue par le JSA selon la sp´ecification ´etablie par la FIPA (FIPA, 2002b).

– l’activation d’un but est traduite par l’ajout d’une intention de l’agent. La plupart des primitives utilis´ees pour former les corps de plans ont un ´equivalent dans le JSA (manipulation des croyances, interaction avec d’autres agents), ou sont impl´ement´ees directement par des m´ethodes Java (interaction avec l’environnement). Seule la manipulation des intentions donne lieu `a une impl´ementation particuli`ere, en particulier pour g´erer les buts persistants et les buts futurs. Ces cas sont g´er´es par un module particulier, qui se charge d’ajouter `a la base de croyance des formules d´ecrivant les intentions lorsqu’elles sont n´ecessaires. Dans le cas d’un but persistant, la formule correspondante est ajout´ee `a la base de croyances `a chaque fois que le but n’est plus satisfait. Dans le cas d’un but futur, la formule correspondante n’est ajout´ee `a la base de croyances qu’apr`es ´ecoulement du temps pr´evu.

c) Impl´ementation des agents d’interpr´etation

Pour les agents d’interpr´etation, l’impl´ementation est relativement simple et repose sur l’impl´ementation de quelques comportements (Behaviour) d’un agent Jade. Cela consiste g´en´eralement `a r´ealiser les trois points suivants :

1. effectuer les ´echanges de messages conform´ement aux protocoles de communica- tion InterpretDescription et DescribeSolution (section 7.1.2).

2. obtenir les descriptions appropri´ees en utilisant les m´ecanismes de gestion de description. Pour cela, chaque message de demande d’interpr´etation est lu pour extraire les couples (r, D) identifiants les descriptions consid´er´ees.

3. invoquer une fonction qui r´ealise l’algorithme d’interpr´etation consid´er´e, en four- nissant les identifiants de description en param`etre. Cette fonction utilise les m´e- canismes de gestion de descriptions sont utilis´es pour acc´eder aux descriptions, puis effectue les traitements d’un algorithme de la section 6.1 .

Dans certains cas (par exemple, l’agent d’interpr´etation de conditions de contexte), il peut aussi ˆetre n´ecessaire d’impl´ementer l’int´egration avec un syst`eme externe (par exemple, un syst`eme de gestion de contexte), ainsi que de g´erer des ´ev`enements asyn- chrones.