Programmation orientée-agent : évaluation comparative d outils et environnements



Documents pareils
Analyse,, Conception des Systèmes Informatiques

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Forthcoming Database

Une méthode d apprentissage pour la composition de services web

Programmation de services en téléphonie sur IP

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Modernisation et gestion de portefeuilles d applications bancaires

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Analyse des logiciels d application spécialisée pour le courtage en épargne collective

Chapitre I Notions de base et outils de travail

Le génie logiciel. maintenance de logiciels.

Visual Paradigm Contraintes inter-associations

Stage Ingénieur en développement logiciel/modélisation 3D

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Modélisation multi-agent d allocation des ressources : application à la maintenance

Génie logiciel (Un aperçu)

Patrons de Conception (Design Patterns)

IBM Business Process Manager

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

Évaluation et implémentation des langages

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

DotNet. Plan. Les outils de développement

Infrastructure PLM pour la capitalisation et la réutilisation de données en conception mécanique

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Annexe : La Programmation Informatique

Architecture distribuée

Utilisation de SysML pour la simulation d environnement virtuel

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Eclipse Process Framework et Telelogic Harmony/ITSW

Plan de cours ADM 992C Page 1. École des sciences de la gestion Département de management et technologie Université du Québec à Montréal

Dafoe Présentation de la plate-forme UIMA

L enseignement de méthodes agiles dans un contexte d apprentissage actif

WHITE PAPER Une revue de solution par Talend & Infosense

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Un environnement de déploiement automatique pour les applications à base de composants

11 Février 2014 Paris nidays.fr. ni.com

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Retour d expériences avec UML

Préparer un état de l art

Cours en ligne Développement Java pour le web

Formula Negator, Outil de négation de formule.

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

L Architecture Logicielle UMR pour les Interactions Multicanaux et Multimodales avec les e-services

Master IAC Philippe Caillou DÉVELOPPEMENT DE SMA. Cours 1b

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

RTDS G3. Emmanuel Gaudin

Machine virtuelle Java pour Palm TX

Architectures Ouvertes pour l Adaptation des Logiciels

Service de Détection de Pannes avec SNMP

Mobile OGSI.NET: Grid Computing on Mobile Devices

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Les approches globales et intégrées en promotion de la santé et du bien-être : les conditions nécessaires à leur développement 1

Chapitre I : le langage UML et le processus unifié

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

IFT2255 : Génie logiciel

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Générer du code à partir d une description de haut niveau

Sujet de thèse CIFRE RESULIS / LGI2P

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Brève introduction à la recherche d!information sur le Web à base d!agents logiciels

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Article de recherche théorique et article de recherche empirique : particularités 1

Introduction à Microsoft InfoPath 2010

Software Engineering and Middleware A Roadmap

Vérifier la qualité de vos applications logicielle de manière continue

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise

Avant-propos. Le logiciel libre au service de la gestion

Etude de la simulation de systèmes multiagents pour la conception vivante d agents dans la méthode ADELFE

Jean-Philippe VIOLET Solutions Architect

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

UML est-il soluble dans les méthodes agiles?

Le talent redéfini en fonction de l économie mondiale. Points de vue sur la situation des talents en finances au Canada. kpmg.ca/lafonctionfinances

Curriculum Vitae 1 er février 2008

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

Pascal Forget 2310, Avenue Notre-Dame Québec, (Québec) Canada, G2E 3G5 Tél. (418) Fax (418)

TP1 : Initiation à Java et Eclipse

Rapport de certification

Forge. Présentation ( )

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

ÉNONCÉ DE PRINCIPES LE COMMERCE ÉLECTRONIQUE DES PRODUITS D ASSURANCE

RAPPORT DE CONCEPTION UML :

Entreposage de données complexes pour la médecine d anticipation personnalisée

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Dotez-vous des moyens de communication d une grande entreprise au prix d une petite entreprise. Avaya vous aide à atteindre vos objectifs.

Bourses d excellence pour les masters orientés vers la recherche

Accélérateur de votre RÉUSSITE

1 JBoss Entreprise Middleware

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Le cadre des Web Services Partie 1 : Introduction

Personnalisation et recommandation * ENEIDE

Transcription:

Programmation orientée-agent : évaluation comparative d outils et environnements Tony Garneau & Sylvain Delisle Département de mathématiques et d informatique Université du Québec à Trois-Rivières 3351 boulevard des Forges, Trois-Rivières Québec, Canada, G9A 5H7 {Tony_Garneau, Sylvain_Delisle}@uqtr.ca RÉSUMÉ. Cet article propose une évaluation de différents outils de programmation et environnements de développement orientés-agents. L évaluation se base sur un ensemble de critères déterminés à partir des caractéristiques jugées importantes pour les environnements de développement de systèmes multi-agents. Une justification des caractéristiques et des différents critères est donnée. Une grille donne les résultats des outils pour chaque critère. Par la suite, une brève description de chaque outil et de leurs différentes caractéristiques est fournie. ABSTRACT. We present in this paper an evaluation of a variety of agent-oriented programming tools and multiagent system development environments. Our evaluation is based on a set of criteria we consider essential for such tools. We explain our criteria and how they have been applied in the comparative evaluation of the tools. Results of the evaluation are presented in a grid from which we make observations and draw conclusions. We also make a few suggestions related to future work this research may lead us to. MOTS-CLÉS : programmation orientée-agent, développement de systèmes multiagents, évaluation et comparaison d outils de programmation et de développement. KEYWORDS : agent-oriented programming, multiagent system development, evaluation and comparison of programming and development tools. JFIADSMA 2002, 28-30 octobre, Lille, France

2 JFIADSMA 2002, 28-30 octobre, Lille, France 1. Introduction Depuis quelques années, une évolution de la programmation OO (orientée-objet) se dessine à l horizon : la programmation orientée-agent. En effet, la programmation OO n est pas toujours adaptée aux besoins des applications d aujourd hui. Les systèmes sont souvent distribués sur plusieurs machines. Ils interagissent et communiquent entre eux et doivent aussi s exécuter indépendamment les uns des autres. Ils sont souvent divisés en sous-systèmes (indépendants) qui exécutent chacun une partie du travail dans un but commun. La programmation orientée-agent offre une façon beaucoup plus naturelle de concevoir ce type de système. Elle fut proposée par Yoav Shoham (Shoham, 1993) comme un nouveau paradigme de programmation basé sur une «vue sociétale de la programmation». L un de ces aspects fondamentaux est la programmation des agents en termes de notions mentales comme celles qu impliquent les croyances, désirs et intentions des architectures BDI (Beliefs, Desires, Intentions). L émergence de ce nouveau paradigme de programmation a donné lieu à l élaboration de plusieurs méthodologies et architectures pour la modélisation des systèmes multiagents. En voici quelques-unes : MaSE (multi-agents software engineering) (DeLoach et Wood, 2001), Aalaadin ou AGR (agent, groupe, rôle) (Ferber et Gutknecht, 1997), RETSINA (Sycara et al.), dmars (d Iverno et al., 1997), OAA (open agent architecture) (Martin et al., 1999), DESIRE (Brazier et al.,1997), Gaia (Zambonelli et al., 2000), Tropos (Mylopoulos et al.), et Kaos (Bradshaw et al., 1996). Récemment, nous avons effectué une étude comparative des principales méthodologies pour le développement des systèmes multiagents (Sabas 2001 ; Sabas et al. 2002). Le présent article poursuit cette recherche dans une perspective complémentaire, celle des outils de programmation et environnements informatiques pour le développement des systèmes multiagents. Le concept de programmation orientée-agent est une idée très intéressante et les méthodologies développées fournissent des patrons théoriques pour la modélisation des SMA (systèmes multiagents). Cependant, les systèmes à base d agents spécifiés à partir de ces méthodologies sont souvent difficiles à implémenter directement à partir des langages de programmation standards comme Java ou C++. Plusieurs outils (éléments logiciels offrant des services pour le développement de SMA) de différents types ont été développés récemment pour la programmation orientée-agent. Parmi ces outils, une dizaine ont retenu notre attention en raison de leur popularité et de leur pertinence : JADE (Rimassa et al., 2000), Zeus (Lee et al., 1999), MadKit (Ferber et Gutknecht, 1997), AgentBuilder (AgentBuilder U. G. 2000), Jack (Busetta et al., 1999), JAFMAS (Chauhan, 1997), AgentTool (DeLoach et Wood, 2001), DECAF (Graham et al., 2000), RMIT (Kendall et al.) et Brainstorm / J (Zunino et Amandi, 2000). Nous présentons ici une évaluation des principaux outils de programmation orientée-agent. La section suivante constitue une description de nos critères et de notre mode d évaluation. Les résultats et une analyse de ceux-ci suivront. En

Programmation et développement orientés-agent 3 conclusion, des travaux connexes seront abordés et quelques pistes de recherches seront identifiées. 2. Evaluation Si l on veut développer des outils utiles et applicables dans la pratique, plusieurs caractéristiques sont essentielles. Quelques lacunes semblent chroniques et des efforts devraient être faits pour y remédier. Voici plusieurs caractéristiques importantes que devrait contenir un environnement complet de développement de systèmes multiagents (SMA) : Offrir un support simple pour le déploiement inter-machine. Offrir un support pour les bases de données. L utilisation de l outil diminue l effort nécessaire à l implémentation et la quantité de code à écrire. L abstraction est assez forte pour permettre aux personnes moins expérimentées en programmation orientée-agent de créer facilement des SMA sans connaître tous les détails d implémentation. L outil laisse de la latitude aux plus expérimentés pour qu ils puissent accéder et interagir directement avec les différents composants du système (l outil doit ajouter un niveau d abstraction à la programmation sans toutefois qu il devienne un obstacle pour les programmeurs). Le code est facilement extensible. Les développeurs n ont pas à se soucier de l implémentation du système de communication et des protocoles utilisés pour transporter les messages. L outil possède un utilitaire de «débuggage» (déverminage), une interface utilisateur facilitant le développement et un générateur automatique de code source. Finalement, cet environnement est supporté par une documentation appropriée. 2.1. Objectifs et choix des outils Les critères de l évaluation sont directement liés aux objectifs qui, à notre avis, doivent au minimum être atteints pour considérer les outils comme étant des environnements de développement de SMA. Évidemment, les outils évalués n en sont pas tous et leurs objectifs diffèrent. Ils peuvent donc obtenir une faible évaluation d après notre grille, mais répondre adéquatement à leurs buts respectifs. Les objectifs essentiels d un environnement de développement de SMA sont : Accélérer le développement et diminuer l effort de programmation ; Abstraire les mécanismes de communication, d interaction et de coordination ; Permettre l implémentation de systèmes relativement complexes ; Permettre une bonne extensibilité du code ; et Fournir un support pour le déploiement (et l exécution) des systèmes.

4 JFIADSMA 2002, 28-30 octobre, Lille, France 2.2. Critères d évaluation Les critères d évaluations étaient plus détaillés à l origine de notre travail. Cependant, dans un souci de lisibilité, nous les avons standardisés. Le barème choisi est un nombre compris entre 0 et 4 qui est interprété comme suit : 4 si l outil répond très bien au critère ; 3 si l outil répond bien au critère ; 2 si l outil répond moyennement au critère ; 1 si l outil répond peu au critère ; 0 si l outil ne répond pas du tout au critère. 2.3. Description des critères d évaluation La méthodologie liée à l outil couvre les différentes étapes (1) : La méthodologie couvre les différentes étapes du développement. Comme la majorité des auteurs, nous considérons que le processus de développement des SMA se divise en quatre étapes : l analyse, le développement, l implémentation et l exécution (déploiement). Facilité d apprentissage de l'outil (2) : Ce critère est déterminé en fonction de plusieurs facteurs dont la qualité de la documentation, la complexité des composants et les concepts utilisés. Les connaissances préalables à son utilisation comme le langage de programmation, le langage de communication entre les agents, les protocoles d interactions et autres sont aussi à prendre en considération. Facilité de transition entre le développement et l implémentation (3) : Facilité de passer du modèle à son implémentation. Plusieurs méthodologies développées sont très intéressantes au niveau conceptuel, mais difficilement applicables, notamment en ce qui concerne l implémentation. Souplesse de l outil (4) : C est la flexibilité et la polyvalence de l outil par rapport à l utilisation de ses composants et de sa méthodologie. Communication inter-agents (5) : Le programmeur ne doit pas avoir à se préoccuper de l implémentation des connections entre les différentes machines, des protocoles de communications, de la sécurité, de la synchronisation, des services de messagerie et autres. Ces services doivent donc être déjà implémentés. Outils de «débuggage» (6) : Plusieurs erreurs de coordination et de synchronisme risquent de se glisser à l intérieur des programmes. La découverte (et la correction) de ces erreurs peut s avérer très difficile voir même impossible sans outils appropriés. Support graphique pour le développement et l implémentation (7) : L environnement propose des interfaces graphiques facilitant et accélérant le

Programmation et développement orientés-agent 5 développement et l implémentation. Ces dernières peuvent servir à la création du modèle, la création des agents, l élaboration de conversations, le déploiement des agents sur les différentes plate-formes, etc. Support pour la gestion du SMA (8) : L outil permet l interaction avec le système. Il permet par exemple, d ajouter, de modifier ou de supprimer dynamiquement des agents dans le système. L intérêt de ce type de gestion n est pas à négliger, elle peut être très utile pour l étude du système au niveau de l exécution, de la vérification et validation. Diminution de l effort demandé et Simplicité d implémentation (9) : Dans ce critère, plusieurs facteurs doivent être pris en considération. Un langage supportant bien la programmation orientée-objet, le «multi-threads» et la programmation réseau procurent des avantages importants. Les composants doivent aussi être facilement identifiables (nom, packages, documentation, paramètres, etc.). De plus, les classes et les services disponibles doivent être faciles à utiliser. La diminution de l effort demandé en termes de quantité de code à écrire, de complexité des composants à implémenter, de facilité d utilisation des composants existants sont aussi des facteurs à prendre en considération. Support pour les bases de données (10) : La sauvegarde des données est une tâche assez technique au niveau de la programmation. Il est intéressant d abstraire ce processus le plus possible et fournir des outils facilitant la sauvegarde des informations. Génération automatique de code (11) : Si les spécifications du système sont possibles au niveau des interfaces, il est important de pouvoir générer le code source du système (au moins les squelettes) et de ses différents composants. Extensibilité du code (12) : Les utilitaires fournis par les outils comme les modules, les agents pré-définis ou le code généré doivent être facilement modifiables. Il faut aussi pouvoir ajouter facilement du code à celui existant. Déploiement (13) : La possibilité de répartir le système sur plusieurs machines est un critère très important au niveau de l exécution. L outil doit aussi permettre une exécution simple du système. L exécution doit être indépendante de l environnement. Documentation (14) : La documentation disponible est de qualité. Elle couvre l ensemble des composants de l outil. De plus, elle est claire, concise et nonambiguë. D autres critères ont été considérés. Par contre, une évaluation numérique de ceux-ci ne nous a pas semblé nécessaire ou même souhaitable. Ils ont donc été pris en considération dans l évaluation globale mais ne font pas partie de la grille. Parmi ces critères, on retrouve la méthodologie utilisée pour le développement, le langage de communication entre les agents et le langage de programmation.

6 JFIADSMA 2002, 28-30 octobre, Lille, France 3. Résultats Nous avons évalué huit (8) outils/environnements de programmation pour le développement de SMA à l aide des 15 critères introduits ci-haut en 2.3. Nous avons choisi ces huit outils essentiellement en raison de leur popularité actuelle et de leur accessibilité. 3.1. Grille des résultats Outils Critères JADE DECAF AgentBuilder Zeus JAFMAS/JIVE Jack AgentTool Madkit Méthodologie (1) 0 0 4 4 3 0 3 3 Facilité d apprentissage (2) 0 3 1 1 1 0 3 2 Transition entre les étapes (3) 0 0 3 2 2 0 3 2 Souplesse de l outil (4) 3 0 1 1 2 3 0 3 Communication inter-agents (5) 4 2 4 4 2 3 2 3 Outil de «débuggage» (6) 3 2 4 4 1 0 2 4 Support développement (7) 0 2 4 4 2 1 4 2 Support implémentation (7) 0 0 4 4 2 1 2 1 Gestion du SMA (8) 4 0 3 3 0 0 1 4 Effort et simplicité (9) 2 3 2 2 1 2 3 1 Bases de données (10) 0 0 1 2 0 3 0 0 Génération de code (11) 0 0 1 3 1 0 1 0 Extensibilité du code (12) 4 1 1 2 1 4 0 3 Déploiement (13) 4 1 2 2 1 2 1 3 Documentation disponible (14) 3 1 4 4 1 3 1 3 Total (sur 60) 27 15 39 42 20 22 26 34

Programmation et développement orientés-agent 7 3.2. Résultats par outil Nous donnons ici une brève description des outils et de leurs caractéristiques. Quelques commentaires sont faits sur chacun par rapport à leur évaluation. AgentTool : Cet outil se base sur une méthodologie qui se veut une extension au modèle OO : la méthodologie MaSE. Celle-ci comporte sept phases : trouver les buts, appliquer les cas d utilisation, raffiner les buts, créer les classes d agents, construire les conversations, assembler les classes d agents et l implémentation. Cette méthode met l accent sur l analyse et le développement. L outil permet la vérification et la validation des conversations. Le déploiement (partiel) se fait directement à l intérieur de l environnement. La génération automatique du code (en Java) des conversations est disponible. Cet outil est intéressant pour effectuer les premières étapes du développement d un SMA. AgentBuilder : AgentBuilder est un environnement de développement complet. Une modélisation orientée-objet avec OMT constitue la base de la conception des systèmes à laquelle on ajoute une partie «ontologie». L élaboration du comportement des agents se fait à partir du modèle BDI et du langage AGENT-0. KQML est utilisé comme langage de communication entre les agents. L exécution du système se fait à partir de l engin d exécution d AgentBuilder. Par contre, on peut créer des fichier «.class» et les exécuter sur une JVM standard. AgentBuilder est un outil complexe qui demande des efforts d apprentissage importants et de bonnes connaissances dans le domaine des systèmes multiagents pour être utilisé de façon performante. Il est limité au niveau de l extensibilité, du déploiement et de la réutilisabilité. DECAF : DECAF est un environnement de développement de plans. L outil fourni quelques utilitaires pour l élaboration de plans et pour la coordination des tâches. Un planificateur applique des heuristiques pour trouver un ordonnancement aux tâches. Une interface permet la construction de celles-ci. DECAF fourni aussi un éditeur d agent qui est utile pour le «débuggage». Aucune méthodologie n est spécifiée pour la conception. Jack : L environnement Jack est constitué d un éditeur gestionnaire de projet, d un langage de programmation JAL (Jack Agent Language) et d un compilateur. Le gestionnaire de projet est une interface qui possède un éditeur de textes où se fait l implémentation du système. La compilation (passage de JAL à Java) et l exécution du système se font aussi à l intérieur de cette interface. Le langage JAL est une extension à Java. Aucune méthodologie n est proposée. Les agents sont basés sur un modèle BDI. Aucun éditeur n est disponible pour le développement ou le déploiement des systèmes. Jack est très long à maîtriser, il faut apprendre le langage JAL et connaître le modèle BDI de dmars (d Iverno, 1997). De plus, le manque de support graphique complique l implémentation et le déploiement des systèmes. Jade : Jade est un outil qui répond aux normes FIPA97. Aucune méthodologie n est spécifiée pour le développement. Jade fourni des classes qui implémentent

8 JFIADSMA 2002, 28-30 octobre, Lille, France «JESS» pour la définition du comportement des agents. L outil possède trois modules principaux (nécessaire aux normes FIPA). Le DF «director facilitor» fourni un service de pages jaunes à la plateforme. Le ACC «agent communication chanel» gère la communication entre les agents. Le AMS «agent management system» supervise l enregistrement des agents, leur authentification, leur accès et utilisation du système. Les agents communiquent par le langage FIPA ACL. Un éditeur est disponible pour l enregistrement et la gestion des agents. Aucune autre interface n est disponible pour le développement ou l implémentation. À cause de cette lacune, l implémentation demande beaucoup d efforts. Elle nécessite une bonne connaissance des classes et des différents services offerts. JAFMAS et JiVE : JAFMAS met l emphase sur les protocoles de communications, l interaction entre les agents, la coordination et la cohérence à l intérieur du système. Il propose une méthodologie en cinq phases : identifier les agents, identifier les conversations, identifier les règles de conversation, analyser le modèle des conversations et l implémentation. L éditeur graphique (JiVE) est un outil de support pour le développement qui propose une interface qui aide l utilisateur dans sa démarche. Une particularité de JiVE est la possibilité de travailler en groupe sur un projet. Les réseaux de Pétri et l utilisation de COOL rendent la création de conversations et la coordination très complexe. Aucun support pour le déploiement n est disponible. MadKit : Madkit est un environnement basé sur la méthodologie Aalaadin ou AGR (agent / groupe / rôle). L outil fourni un éditeur permettant le déploiement et la gestion des SMA (G-box). La gestion faite via cet éditeur offre plusieurs possibilités intéressantes. L outil offre aussi un utilitaire pour effectuer des simulations. Zeus : Zeus est un environnement complet qui utilise une méthodologie appelée «role modeling» pour le développement de systèmes collaboratifs. Les agents possèdent trois couches. La première couche est celle de la définition où l agent est vu comme une entité autonome capable de raisonner en termes de ses croyances, ses ressources et de ses préférences. La seconde couche est celle de l organisation. Dans celle-ci, il faut déterminer les relations entre les agents. La dernière couche est celle de la coordination. Dans celle-ci, on décide des modes de communication entre les agents, protocoles, coordination et autres mécanismes d interactions. L outil est un des plus complets. Les différentes étapes du développement se font à l intérieur de plusieurs éditeurs : ontologie, description des tâches, organisation, définition des agents, coordination, faits et variables ainsi que les contraintes. Le développement de SMA avec Zeus est cependant conditionnel à l utilisation de l approche «role modeling». L outil est assez complexe et sa maîtrise nécessite beaucoup de temps. 3.3. Classement global À l origine, deux outils supplémentaires faisaient partie de la grille d évaluation : RMIT et Brainstorm / J. Cependant, ces deux outils ayant obtenus des pointages très

Programmation et développement orientés-agent 9 bas, nous avons décidé de les retirer de la grille d évaluation. Ces deux outils semblent plutôt être dédiés à un usage interne aux équipes qui les ont développés. Nous voulons quand même souligner que ce sont deux librairies de classes implémentées en Java. Les deux ont un manque important au niveau de la documentation. Les architectures définies et les classes à utiliser sont très complexes. De plus, aucun outil graphique n aide le développement. Enfin, on peut critiquer l absence de méthodologie, la complexité de leur composants, le manque de support au niveau du «débuggage» et du déploiement. Jack et JADE peuvent être considérés comme étant des «frameworks». Ils sont plus complets que RMIT et Branstorm / J. Cependant, les deux outils n ont aucune spécification au niveau de la méthodologie. De plus, les deux ont de grandes lacunes au niveau des utilitaires graphiques. Leur documentation est bonne et couvre la majorité de leurs outils respectifs. Les deux offrent de grandes possibilités au niveau de l implémentation même si celle-ci demande beaucoup d efforts. La différence majeure entre les deux est que le développement avec JADE se fait en Java pur contrairement à JAL pour le développement avec Jack. DECAF, JAFMAS (et JiVE), MadKit et agenttool sont plutôt des environnements aidant à différents niveaux du processus de développement. DECAF et JAFMAS mettent l accent sur les interactions et la planification mais délaissent le côté implémentation et déploiement. AgentTool se concentre sur les premières phases du développement mais l implémentation n est pas prise en compte par l outil. MadKit, quant à lui, met l accent plus au niveau du déploiement qu aux autres étapes du développement (même s il se base sur la méthodologie Aalaadin). Madkit offre une bonne documentation comparativement aux trois autres. Zeus et AgentBuilder ont obtenus les deux meilleurs pointages (44 et 41) des huit outils évalués. Ils sont aussi les deux outils les plus complets du groupe. Les deux environnements possèdent une documentation abondante. Ces outils offrent plusieurs interfaces graphiques aidant le développement. De plus, les deux outils offrent un utilitaire de «débuggage». Ils proposent chacun une méthodologie pour le développement. Les deux outils sont cependant très complexes et leur apprentissage nécessite beaucoup d efforts. Dans le cas d AgentBuilder il faut connaître RADL (Reticular Agent Definition Language), la gestion des ontologies, l engin d exécution, les protocoles utilisés et maîtriser les différents interfaces de l environnement. L apprentissage de Zeus est aussi très long car il faut maîtriser la technique de modélisation «Role modeling» qu il faut obligatoirement utiliser. Il est aussi nécessaire de comprendre les différents éditeurs qui fournissent plusieurs services plus ou moins sophistiqués (ontologie, tâches, ressources, règles, protocoles d interactions, visualisation du système, etc.). Les deux outils ont quelques lacunes au niveau de l extensibilité et de la souplesse.

10 JFIADSMA 2002, 28-30 octobre, Lille, France 4. Conclusion Peu de travaux ont jusqu ici été publiés sur l évaluation des différents outils et environnements de développement de systèmes multi-agents. Il est primordial d évaluer et comparer les aspects techniques des outils pour en relever les forces et faiblesses de chacun. Ce type de synthèse et d évaluation aide à faire ressortir les tendances que prennent, ou devraient éventuellement prendre, les équipes de recherches actives dans ce domaine. Ricordel et Demazeau (2000) présentent une étude comparative de quatre (4) outils (AgentBuilder, Jack, MadKit et Zeus). La différence fondamentale entre leur article et le nôtre est que nous nous situons davantage au niveau applicatif, alors que leur travail se situe surtout au niveau conceptuel. Notons aussi Galan (2000) qui fait une brève comparaison entre quelques éléments de différents outils (JiVE, AgentBuilder, ADE, Zeus, DECAF, MASSIVE kit, JADE, Kaos et Bond). La majorité des outils développés le furent pour exploiter ou démontrer un concept ou une idée en particulier. De ce fait, le développement de ces outils négligent, volontairement ou non, le développement de plusieurs dimensions essentielles à l implémentation d un SMA. Ceci rend leur utilisation inappropriée ou même impossible pour le développement de systèmes réels. Nous avons suggéré un peu plus haut plusieurs caractéristiques que devraient posséder les environnements de développement de SMA. À partir de celles-ci, nous avons élaboré une grille de critères et avons évalué dix outils destinés aux SMA. La grille d évaluation nous permet de constater quelques tendances entre les différents outils : Les outils fournissant des utilitaires graphiques pour le développement et l implémentation ont tous un manque au niveau de l extensibilité et de la souplesse. Les outils qui fournissent des interfaces pour l implémentation diminuent l effort de programmation. Les outils les plus complets utilisent une méthodologie pour le développement. La plupart des outils ne supportent aucun mécanisme pour la sauvegarde des données. Il serait intéressant de développer un environnement complet qui : mettrait l accent sur la facilité et la simplicité du développement ; fournirait aux programmeurs plusieurs options pré-implémentées ; offrirait plusieurs types d agents ayant chacun des caractéristiques et comportements différents ; fournirait une implémentation appropriée de ceux-ci. Un environnement comme celui-ci définirait aussi des mécanismes (encapsulés) simples de communication inter-machines (sockets, multicast, RMI). Il permettrait aussi la génération automatique des sources (base des agents, mécanismes de communication, squelettes des méthodes nécessaires, attributs et spécifications du système et des agents). De plus, il devrait permettre une bonne extensibilité du code généré et offrir quelques mécanismes d interaction (entre les agents) simples et extensibles. De cette façon, on obtiendrait

Programmation et développement orientés-agent 11 un environnement qui combine les principales qualités des meilleurs outils tout en palliant à leurs faiblesses par des ajouts substantiels. Bien sûr, cette idée représente une vision «idéaliste» d un environnement de développement de SMA. Cependant, un constat est évident : les outils existants ne permettent pas encore le développement complet, et ce de façon relativement simple, de SMA appliqués à des systèmes réels d envergure intéressante. La plupart des éléments essentiels à un environnement de développement de systèmes multiagents existent déjà dans un ou l autre des différents outils présentés. Un mariage des différents concepts et des différentes caractéristiques de ceux-ci laisse entrevoir le développement d outils encore plus adéquats et productifs. 5. Remerciements Nous remercions le CRSNG du Canada pour son support financier à nos recherches. Nous remercions aussi le professeur Mourad Badri pour ses idées, commentaires et suggestions au début de ce travail. 6. Références AgentBuilder R.M., An Integrated Toolkit for Constructing Intelligent Sofware Agents, AgentBuilder, Reference Manual, Avril 2000. AgentBuilder U.G., An Integrated Toolkit for Constructing Intelligent Sofware Agents, AgentBuilder, User s Guide, Avril 2000. AgentTool U.M., AgentTool, User s Manual, Juin 2001. Bradshaw, J. M., Dutfield S., Benoit P., Woolley J. D., KaoS : Toward an Industrial- Strength Open Agent Architecture, G. M. O Hare, N. R. Jennings, eds. Foundations of Distributed Artificial Intelligence, John Wiley & Sons, p. 375 418, 1996. Brazier F. M. T., Dunin-Keplicz B. M., Jennings N. R., Treur J., DESIRE : Modelling Multi-Agent Systems in a Compositional Formal Framework, International Journal of Cooperative Information Systems, Vol 6, No 1, p. 67-94, 1997. Busetta P., Ronnquist R., Hodgson A., Lucas A., Jack Intelligent Agents Components for Intelligent Agents in Java, AgentLink News Letter, Janvier 1999. Chauhan D., JAFMAS : A Java-Based Agent Framework for Multi-Agent Systems Development and Implementation, Masters Thesis, ECECS Department, University of Cincinnati, Juillet 1997. DeLoach S. A., Wood M., Developing Multiagent Systems with agenttool, (ATAL'2000), Berlin, 2001.

12 JFIADSMA 2002, 28-30 octobre, Lille, France d'iverno M., Kinny D., Luck M., Wooldridge M., A Formal Specification of dmars, Agent Theories, Architectures, and Languages (ATAL 1997), p. 155-176, 1997. Ferber J., Gutknecht O., The MadKit agent platform architecture. Galan A. K., JiVE : JAFMAS integrated Visual Environment, Thèse présentée à l'université de Cincinnati, 2000. Graham J. R., Mchugh D., Mersic M., McGeary F., Windley M. V., Cleaver D., Decker K. S., Tools for Developing and Monitoring Agents in Distributed Multi- Agent Systems, Agents Workshop on Infrastructure for Multi-Agent Systems, p. 12-27, 2000. Jack D. E., Jack Development Environment, User Guide, 2001. Jack U.G., Jack Intelligent Agents, User Guide, 2001. JADE P.G., Bellifemine F., Caire G., Trucco T., Rimassa G., JADE, Programmer s Guide, Février 2002. Kendall E. A., Krishna P. V., Pathak C. V., Suresh C. B., A Java Application Framework for Agent Based Systems. Lee L. C., Ndumu D. T., Nwana H. S., ZEUS: An Advanced Tool-Kit for Engineering Distributed Multi-Agent Systems. In Proceedings of the Practical Application of Intelligent Agents and Multi-Agent Systems, p. 377-392, Londres, 1998. Martin D., Cheyer A., Moran D., The Open Agent Architecture : A Framework for Building Distributed Software Systems, Applied Artificial Intelligence, Vol 13, No 1-2, p. 91-128, 1999. McGeaty F., DECAF Programming : An Introduction, Avril 2001. Mylopoulos J., Kolp M., Giorgini P., Agent-Oriented Software Development. Ricordel P. M., Demazeau Y., From Analysis to Deployment : a Multi-Agent Platform Survey, ESAW, p. 93-105, 2000. Rimassa G., Bellifemine F., Poggi A., JADE - A FIPA Compliant Agent Framework, PMAA`99, p. 97-108, Londres, Avril 1999. Sabas A., Delisle S., Badri M. A Comparative Analysis of Multiagent System Development Methodologies: Towards a Unified Approach, Third International Symposium "From Agent Theory to Agent Implementation" (AT2AI-3), Sixteenth European Meeting on Cybernetics and Systems Research, Vienne (Autriche), 2-5 avril 2002, Volume 2, 599-604. Sabas A., Systèmes multi-agents : une analyse comparative des méthodologies de développement (Vers la convergence des méthodologies de développement et la standardisation des plateformes SMA), Mémoire de maîtrise en mathématiques et informatique appliquées, Université du Québec à Trois-Rivières, Octobre 2001. Shoham Y., Agent-Oriented Programming, Artificial Intelligence, Vol. 60, No. 1, p. 51-92, Mars 1993.

Programmation et développement orientés-agent 13 Sycara K., Paolucci M., Velsen M. V., Giampapa J., The RETSINA MAS Infrastructure. Zambonelli F., Jennings N., Omicini A., Wooldridge M., Agent-Oriented Software Engineering for Internet Applications, Coordination of Internet Agents : Models, Technologies and Applications, Springer, 2000. ZEUS A.R.G., Collis J., Ndumu D., The Zeus Agent Building Toolkit, The Application Realisation Guide, Septembre 1999. ZEUS R. M..G., Collis J., Ndumu D., The Zeus Agent Building Toolkit, The Role modelling Guide, Août 1999. ZEUS T.M., Collis J., Ndumu D., The Zeus Agent Building Toolkit, Technical Manual, Septembre 1999. Zunino A., Amandi A., Brainstorm/J : a Java Framework for Intelligent Agents, Argentinina Symposium on Artificial Intelligence, 2000. 7. Sites webs AgentBuilder AgentTool Brainstorm/J DECAF Jack Jade JAFMAS JiVE MadKit Zeus http://www.agentbuilder.com/ http://en.afit.af.mil/ai/agentool.htm http://www.exa.unicen.edu.ar/~azunino/brainstormj.html http://www.eecis.udel.edu/~decaf/ http://www.agent-software.com.au/shared/products/index.html http://sharon.cselt.it/projects/jade/ http://www.ececs.uc.edu/~abaker/jafmas/home.html http://www.ececs.uc.edu/~abaker/jive/index.html http://www.madkit.org/ http://www.labs.bt.com/projects/agents/zeus/