LIP6 2000/020

  • Soutenance de thèse
    Une approche componentielle pour la modélisation d'agents coopératifs et leur validation
  • M.-J. Yoo
  • 168 pages - 29/10/1999- document en - http://www.lip6.fr/lip6/reports/2000/lip6.2000.020.ps.tar.gz - 2,046 Ko
  • Contact : Min-Jung.Yoo (at) nullinfo.unine.ch
  • Ancien Thème : OASIS
  • Du fait de la popularisation de l'Internet et de la technologie du Web, l'approche visant à adapter le paradigme d'agent à la réalisation d'une application ou d'une interface qui aide l'utilisateur de l'Internet/Web est de plus en plus explorée. Cependant la réalisation d'un système multi-agents sur Internet nécessite de résoudre quelques problèmes complexes posés par les caractéristiques spécifiques suivantes :
    1) ouverture de l'environnement de développement et d'exécution
    2) problème de coopération entre des agents
    3) introduction de la mobilité d'agent
    4) besoin de validation
    Le modèle d'agent dans un environnement ouvert comme Internet doit être évolutif parce qu'il y a des modifications possibles au cours de l'exécution du système. Par exemple, un nouvel agent peut être introduit dans ce système en remplaçant un ancien. Ainsi une modification du modèle de coopération des agents peut être envisagée dans le comportement des agents existants.
    L'ouverture de l'environnement d'exécution d'agents entraîne également le besoin de validation de certaines propriétés dans le système multi-agents, notamment la validité du modèle de coopération des agents. Pour valider le modèle de coopération des agents qui sont dispersés sur les réseaux, une simulation locale ou un test d'exécution sur un site ne sont pas suffisantes pour assurer la validité du modèle entier, il nous faut considérer des méthodes de validation formelle. Du fait de l'évolution des applications sur le Web, le modèle d'agents doit être assez flexible pour que l'on puisse le modifier facilement au cours du cycle de vie. Une partie du modèle doit pouvoir être modifiée sans remise en cause du reste du modèle. Pour ce faire, l'approche componentielle (à base de composants) est un bon moyen pour modéliser des agents. Nous proposons le langage SCD qui permet de modéliser un agent par des composants dans un framework. Les caractéristiques du langage SCD sont les suivantes :
    1) Il est facile de modéliser les protocoles de coopération d'agents. Sa syntaxe est basée sur la notion d'état/transition. Ceci permet de décrire facilement des protocoles de coopération d'agents qui sont importants pour réaliser l'aspect coopératif des agents.
    2) Le langage permet aussi de modéliser la migration d'agent comme une action intégrée dans un protocole de coopération. La mobilité d'agent est modélisée en décrivant dans le comportement interne d'un composant le moment de migration qui est synchronisé avec d'autres comportements.
    3) Le langage permet d'encapsuler un module programmé en Java comme un composant connectable. Ceci facilite le développement d'un service réel en permettant l'utilisation de technologies courantes basés sur Java (e.g., Applet, Java Beans, JDBC, etc.).
    4) En outre, le langage SCD peut être traduit en modèle de réseaux de Petri en vue d'une validation formelle à l'aide d'environnements de validation tels que CPN/AMI du thème SRC/LIP6.
    L'environnement de composants que nous avons réalisé contient donc :
    * un environnement permettant la production des composants exécutables par compilation. La compilation d'un composant SCD est réalisée par notre générateur de code qui parcourt la description du modèle en SCD pour générer le code source en Java.
    * un environnement d'exécution des composants en Java. Cet environnement contient des mécanismes de base pour exécuter des composants compilés en Java, par exemple des primitives pour la communication inter-composants, le changement d'états internes d'un composant, des opérations de base d'un composant, etc.
    * un environnement d'intégration de composants SCD dans la structure d'agent mobile donnée par une plate-forme d'agents mobiles. Nous avons fourni des mécanismes de base pour l'intégration des composants exécutables dans de telles plates-formes.
    Notre architecture d'agent est vue comme un composant composite qui joue un rôle de framework. Le modèle d'agent réalisé par des composants exécutables en Java est ensuite intégré dans une plate-forme d'agents mobiles, notamment JNA et Voyager.
    Nous avons choisi un scénario d'agence de voyages (proposé par FIPA) comme exemple de test pour une première application de notre approche. Nous avons modélisé en SCD l'agent agence de voyage et quelques agents serveurs de voyage qui coopèrent suivant les protocoles de coopération, par exemple, protocole d'appel d'offre ("Contract Net"), le protocole 'FIPA-Query-reference', ou le protocole 'FIPA-request', etc. Notre générateur a produit du code exécutable en Java qui a été ensuite intégré dans la plate-forme différentes d'agents mobiles Voyager et JNA. Les agents du scénario ont pu être exécutés sur deux plates-formes d'agents mobiles. Nous avons pu visualiser des échanges de messages entre agents suivant la définition de chaque protocole de coopération. En parallèle, à partir du modèle conçu en SCD, nous avons dérivé le modèle de validation en réseaux de Petri colorés et procédé, en collaboration avec SRC, à la validation de certaines propriétés (pas de blocage non désiré, problème d'équité, etc.) sur notre modèle.
    Notre expérimentation exploite également la réutilisabilité des composants SCD. Un des avantages de l'approche componentielle et des frameworks est la possibilité de réutiliser des composants existants pour la conception d'un autre modèle. Nous avons étendu le modèle de protocole d'appel d'offre initial en réutilisant des composants utilisés dans le premier modèle conçu en SCD. Deux exemples sont l'extension vers un protocole d'appel d'offre avec délai de temps ("timeout") ou avec itération ("Iterated-FIPA-Contract-Net").
    Dans la conclusion de la thèse, nous résumons et évaluons les résultats obtenus et proposons des pistes pour la suite. Notre expérience montre que l'approche génération de code peut résoudre certaines difficultés sur la programmation des agents mobiles dans une plate-forme d'agents mobiles, par exemple la géstion de la migration d'agent avec multi-threads, le problème de reprise d'une activité après la migration, etc. En dissociant clairement le modèle d'agent de haut niveau qui est donné par la description en SCD et la structure physique d'agents mobiles qui est fournie par une plate-forme d'agent mobile, nous avons simplifié le problème de portabilité du modèle d'agents sur deux différents types de plates-formes.
  • Mots clés : composant logiciel, agents mobiles, framework d'agent, protocole de coopération, validation, réseaux de Petri, Java, Voyager
  • Directeur de la publication : Valerie.Mangin (at) nulllip6.fr