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.