6. Ingénierie logicielle orienté agent

6.4 Plates-formes de développement des systèmes multi-agents

La nouvelle technologie des agents et systèmes multi-agents connaît un vif succès chez les industriels pour qui elle promet des outils de conception et d'implémentation flexibles et adaptatifs. Pourtant, la difficulté de réalisation des systèmes multi-agents due à la multiplicité et à la complexité des concepts et composantes rend l'utilisation des outils existants très difficile par les "non-spécialistes" des systèmes multi-agents, et même par les "non-auteurs". Ces systèmes ont tous les problèmes des systèmes distribués et concurrents mais aussi d'autres problèmes liés à leurs caractéristiques telles que la flexibilité des interactions et la dynamique des organisations.

Dans le chapitre 2, on a présenté des architectures et des langages orientés agents (voir section 2.3 pour les langages). Ces langages, aussi bien que d'autres langages non présentés dans la section, montrent cependant des limitations sur un certain nombre de points. Ils sont la plupart du temps limités au type de modèle d'agent particulier qu'ils développent. S'ils sont centrés agents, on constate en termes de modèles une grande focalisation sur les aspects de décision et des limitations sur les aspects sociaux. On peut remarquer qu'une bonne partie des langages portent sur les approches BDI (Belief-Desire-Intentions). D'autre part, les langages d'interaction comme FIPA et KQML sont le plus souvent définis indépendamment des modèles ou des types d'agents utilisés, ce qui permet aux concepteurs de choisir leurs propres architectures d'agents. Pourtant, on se trouve face à un dilemme : soit on laisse le modèle d'agent totalement libre et on garde un niveau d'abstraction très élevé et peu opérationnel pour le langage (comme KQML), soit on fournit un langage opérationnel mais qui contraint fortement le modèle et la programmation des agents (comme AGENT0).

Afin de réaliser une opérationalisation plus accessible des systèmes multi-agents, des travaux ont tenté de réutiliser des architectures et des langages existants pour construire des environnements de développement de ces systèmes. Les environnements de développement ou les plates-formes multi-agents sont nécessaires pour renforcer le succès de la technologie multi-agents. Les plates-formes multi-agents permettent aux développeurs de concevoir et réaliser leurs applications sans perdre de temps à réaliser des fonctions de base pour la création et l'interaction entre agents et éliminent, dans la plupart des cas, la nécessité d'être familier avec les différents concepts théoriques des systèmes multi-agents.

Il existe un nombre important d'environnements de développement des applications orientées agents : il y a aussi bien des produits commerciaux que des logiciels dans le domaine public. L'étudiant peut trouver une liste assez complète de ces plates-formes à l'adresse http://www.agentlink.org/resources/agent-software.php.

Parmi les plates-formes fournies comme logiciels libres, il y quelques plates-formes plus connues pour avoir été utilisées dans le développement de plusieurs applications : JADE, MACE, ZEUS, et MADKIT pour les agents cognitifs, et SWORM pour les agents réactifs. Il faut noter que cette liste n'est pas unique, et qu'il y a aussi d'autres plates-formes qui ont été utilisées avec beaucoup de succès pour bâtir diverses applications.

La plate-forme multi-agents JADE sera présentée en détail dans la section suivante. Les autres mentionnées ci- dessous vont être présentées d'une manière synthétique dans cette section même.

MACE (Gasser e.a., 1987) est le premier environnement de conception et d'expérimentation de différentes architectures d'agents dans divers domaines d'application. Dans MACE, un agent est un objet actif qui communique par envoi de messages. Les agents existent dans un environnement qui regroupe tous les autres agents et toutes les autres entités du système. Un agent peut effectuer trois types d'actions : changer son état interne, envoyer des messages aux autres agents et envoyer des requêtes au noyau MACE pour contrôler les événements internes. Chaque agent est doté d'un moteur qui représente la partie active de l'agent. Ce moteur détermine l'activité de l'agent et la façon dont les messages sont interprétés. MACE a été utilisé pour développer des simulations d'applications distribuées.

ZEUS (Nwama e.a., 1999) est une plate-forme multi-agents conçue et réalisée par British Telecom (Agent Research Programme of BT Intelligent Research Laboratory) pour développer des applications collaboratives. ZEUS est écrit dans le langage Java et il est fondé sur les travaux de la FIPA. L'architecture des agents ZEUS est similaire à la majorité des agents collaboratifs. Elle regroupe principalement les composantes suivantes :

  • une boîte aux lettres et un gestionnaire de messages qui analyse les messages de la boîte aux lettres et les transmet aux composantes appropriées ;
  • un moteur de coordination ;
  • un planificateur qui planifie les tâches de l'agent en fonction des décisions du moteur de coordination, des ressources disponibles et des spécifications des tâches ;
  • plusieurs bases de données représentant les plans connus par l'agent, les ressources et l'ontologie utilisée ;
  • un contrôleur d'exécution qui gère l'horloge locale de l'agent et les tâches actives.
L'environnement comporte trois bibliothèques : une avec des agents utilitaires, une avec des outils pour la construction des agents, et une avec des composants agents.

ZEUS met un fort accent sur la méthodologie de développement, fondée sur la notion de rôle (voir aussi la section précédente). ZEUS a été utilisé pour développer plusieurs applications réelles comme les ventes aux enchères et la simulation de la fabrication des ordinateurs. Les caractéristiques des domaines d'applications de ZEUS ont été définies par les concepteurs ; parmi ces caractéristiques, on peut mentionner :

  • chaque agent crée un plan qui nécessite un raisonnement explicite pour atteindre son but ;
  • la résolution de problèmes nécessite une coopération entre agents ;
  • le rôle de chaque agent consiste à contrôler un système externe qui réalise une tâche du domaine d'application, la résolution de problème est ainsi effectuée par ce système externe et contrôlée par les agents.

MADKIT (Madkit, 2003) est une plate-forme développée par le Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM) de l'Université Montpellier II. MADKIT est libre pour l'utilisation dans l'éducation. MADKIT est écrit en Java et est fondé sur le modèle organisationnel Alaadin. Il utilise un moteur d'exécution où chaque agent est construit en partant d'un micro-noyau. Chaque agent a un rôle et peut appartenir à un groupe. Il y a un environnement de développement graphique qui permet facilement la construction des applications.

SWARM (Minar e.a., 1996) est une plate-forme multi-agents avec agents réactifs. L'inspiration du modèle d'agent utilisé vient de la vie artificielle. SWARM est l'outil privilégié de la communauté américaine et des chercheurs en vie artificielle. L'environnement offre un ensemble de bibliothèques qui permettent l'implémentation des systèmes multi-agents avec un grand nombre d'agents simples qui interagissent dans le même environnement. De nombreuses applications ont été développées à partir de SWARM qui existe aujourd'hui implémenté en plusieurs langages (Java, Objective-C).


<< Section précédente Table de matières Section suivante >>

Politechnica University of Bucharest - 2002