La plate-forme MERCURE

Xavier Briffault1, Romuald Coeffier2, Olivier Ferret1, Nicolas Guichard1, Pascal Héraud2, Jean-Philippe   Kotowicz1, Sébastien Landeau2, Denis Pierre2, Christophe Roche3, Gérard Sabah1, Jérôme Saelen2,  Jérôme Vapillon1

                                   LIMSI-CNRS1

                                      AEGIS2

                                       LGIS3

                               Contact : briffault@limsi.fr

 

 

Caractéristiques générales

 
La plate-forme multi-agents MERCURE est une plate-forme générique en cours de développement dans le cadre d?une collaboration entre le LIMSI-CNRS (groupe Langage et Cognition), la société AEGIS et le LGIS, au sein du projet EUREKA PVS98. Cette plate-forme est globalement conforme aux spécifications architecturales proposées par la FIPA (Foundation for Intelligent Physical Agents, http://www.fipa.org/spec/index.html ), et a d?ailleurs été choisie récemment par cet organisme pour
développer une application de démonstration de l?intérêt des SMA (aide à la gestion de réunions). Il s?agit d?un prototype d?environnement commercial de développement de SMA, développé en Smalltalk, sur lequel quelques petites applications ont été testées. Elle est essentiellement destinée au développement de systèmes d?informations d?entreprises.

Modèles multi-agents

Une plate-forme MERCURE se compose des agents techniques spécifiés par la FIPA (Directory Facilitator, Agents Management Service, Agent Communication Channel, Agent Naming Service) et d?agents spécialisés que l?environnement permet de développer et de faire fonctionner. Plusieurs plate-formes peuvent communiquer entre elles sur des machines et systèmes différents. Les communications entre agents se font actuellement en utilisant un ACL (Agent Communication
Language) proche de KQML (Knowledge Query and Manipulation Language, http://www.csee.umbc.edu/kqml/ ) et les graphes conceptuels de Sowa comme langage de contenu. Une extension vers l?ACL et le langage de contenu de la FIPA (SL0) est en cours. Les échanges entre agents peuvent se structurer en utilisant des modèles de " conversations " issus de travaux de Winograd et Florès (perspective Langage/Action). Les agents déclarent leurs compétences en utilisant ce même
ACL auprès du ou des facilitateurs disponibles. Un langage de programmation dédié a été développé, le LPPA (Langage de Programmation des Plans d?Agents), qui permet de manipuler aisément les messages, les problèmes de parallélisme et les langages de contenu en format natif. Les mécanismes nécessaires à la gestion d?un modèle BDI (Beliefs, Desires and Intentions) sont en cours de développement, dans un champ applicatif restreint relatif à la gestion de projet. Des travaux sont
également en cours quant à l ?utilisation de cette plate-forme pour la réalisation de systèmes de traitement du langage naturel.
Des mécanismes d?encapsulation de logiciels externes permettent, grâce à une description conceptuelle des opérations et des données du logiciel encapsulé (utilisant les concepts issus d?une ontologie du domaine concerné), une manipulation par les agents des logiciels totalement indépendante de leur implémentation. Des encapsulations de ce type sont disponibles actuellement pour les bases de données relationnelles, Outlook et Project, ainsi que pour les objets Smalltalk, CORBA et COM.
Les agents sont statiques, mais peuvent se voir attribuer dynamiquement des ressources logicielles, permettant ainsi de faire effectuer par un agent distant des opérations qu?il ne pouvait pas réaliser, en lui transmettant ces ressources.

Caractéristiques physiques

 

Les agents sont développés en Smalltalk, mais peuvent utiliser des modules logiciels écrits dans d?autres langages, en s?interfaçant par CORBA, COM, ou via une liaison C. Les protocoles de communication physique entre agents supportés sont TCP/IP, IIOP, CORBA et POP/SMTP.

Environnement de développement

 
L?environnement VisualWorks utilisé (accompagné du gestionnaire de code Envy) offre par lui-même de nombreux outils de développements et d?aide à la mise au point (browsers de code, gestion de version, debuggers, profilers?). Des outils spécifiques aux aspects SMA ont par ailleurs été développés pour les besoins de la programmation agent (éditeur syntaxique pour le LPPA, suivi des échanges de messages, outils graphiques pour la manipulation des graphes conceptuels, outils spécialisés pour
l?encapsulation de logiciels extérieurs?).
 

Environnement d'exécution

 Un environnement d?exécution MERCURE se compose d?une machine virtuelle et d?une image Smalltalk, contenant le byte code des agents exécutés. Une plate-forme peut fonctionner sans modification aucune (y compris au niveau des IHM) sur les machines et systèmes supportés par VisualWorks (la plupart des systèmes significatifs du marché). En raison de la forte participation industrielle dans ce projet, les publications ont jusqu?à ce jour été suspendues. Contacter les auteurs pour toute demande d?information.