1 Introduction aux agents et systèmes multi-agents
1.3 La construction d'un système multi-agents

1.3.2 Les technologies d'agents

Un agent logiciel est vu comme un nouveau paradigme de développement d'applications. Les agents  ne définissent pas une nouvelle discipline mais plutôt une nouvelle façon d'envisager l'utilisation des technologies existantes comme outils pour construire des applications qui interagissent dynamiquement et communiquent avec leur environnement immédiat (utilisateur, ressources locales et système informatique) et d'une manière (semi-) autonome.

Une large variété de systèmes, de langages et d'efforts de standardisation ont été déployés pour concevoir des agents logiciels ; ceci est dû en partie à l'imprécision du terme "agent". Nous exposons ici les différentes technologies et montrons la place qu'occupe un langage de communication pour les agents dans ces technologies ainsi que quelques perspectives sur la standardisation.

Les technologies d'agent peuvent être divisées en deux catégories: langages d'agent et protocoles de coordination.

La catégorie des langages d'agent inclut tous les langages qui peuvent être utilisés pour rendre effective la construction d'agents logiciels. Une classe de langages qui ont gagné beaucoup d'attention dernièrement sont les langages conçus pour les programmes mobiles. Les langages tels que TCL/TK, Java, Telescript, etc., offrent l'avantage d'abstraction et paraissent particulièrement attrayants pour le développement d'agents logiciels. Ils sont classés sous la rubrique des langages d'agent. Nous distinguons ces langages des langages de communication d'agents, parce qu'ils sont essentiellement conçus à l'origine pour contrôler les processus sur une seule plate-forme. De plus, ces langages fournissent des primitives de communication utilisées pour le développement de l'agent, et pour la plus grande partie, ils se sont préoccupés des mécanismes du transport d'agents d'une machine à une autre.

Les langages de communication d'agents sont conçus spécialement pour décrire et faciliter la communication entre deux ou plusieurs agents. Trois sous catégories peuvent être identifiées sous l'étiquette de langages de communication : 1) modèles pour la communication entre humains (langage naturel), 2) travaux sur la théorie de la communication, et 3) langages de communication pour les agents logiciels. Nous nous intéressons ici à la troisième catégorie.

Des travaux considérables ont été développés (e.g., Cohen et Levesque (1990), et Singh (1991) pour définir les suppositions et conventions d'interaction entre agents humains et par conséquent, ils les traduisent dans le paradigme d'agents logiciels. Souvent, ces recherches s'appuient sur les travaux théoriques autour des agents visant à leur approprier des capacités cognitives proche de celles de l'être humain (Cohen 1995) (Singh 1995). De tels travaux entreprennent d'expliquer tous les aspects de l'état interne d'un agent autonome artificiel et comment cet état change quand l'agent interagit. Cependant, comme dans le cas de la programmation orientée agent (Agent Oriented Programming, Shoham, 1993), ces travaux sont utilisés pour rendre effectif le développement d'agents logiciels. Ainsi les langages de communication d'agents (ACLs) se sont occupés strictement de la communication entre entités informatiques qui n'est pas seulement un protocole pour l'échange de données, mais un moyen d'échange de connaissances et d'attitudes mentales.

L'autre classe principale de technologies de l'agent logiciel est celle des standards et des protocoles de coordination. CORBA, OpenDoc, OLE, etc., sont des résultats de recherches qui sont souvent promulgués comme solutions au problème de la communication inter-agents. Ces solutions sont centrées sur la difficulté d'exécuter des applications (généralement orientées objets) dynamiquement dans des environnements distribués et ouverts. La préoccupation fondamentale de ces technologies est d'assurer que les applications peuvent échanger des données (habituellement des objets) et des méthodes à travers plusieurs plates-formes. Bien que ces résultats soient utiles dans le développement d'agents logiciels, ils ne fournissent pas de réponses complètes aux problèmes de communication de l'agent qui nécessite la prise en compte des comportements intelligents à différents niveaux d'abstraction.

Les standards agent

Les technologies agent attirent beaucoup d'attention des industriels de nos jours, particulièrement pour des applications largement distribuées et ouvertes. Ces applications présupposent l'interopérabilité des agents issus de différentes infrastructures, ce qui mène naturellement à définir des normes.

Pour les normes des technologies agent, les conférences internationales sur les SMA réservent souvent une session sur la standardisation.  Une grande partie des discussions se concentrent sur les efforts de standardisation de FIPA, notamment sur le langage de communication d'agent (ACL). FIPA -- le seul regroupement sérieux de standardisation pour des agents -- est un organisme de normalisation privé semblable aux groupes de normalisation tels que OMG.  De tels organismes sont devenus importants pour un rapide développement des secteurs technologiques pointus, où les regroupements nationaux et internationaux traditionnels sont trop lents pour répondre à ces besoins.

ACLs permettent la communication de haut niveau, ce qui différencie fondamentalement les agents d'autres genres de logiciels.  Par exemple, les agents communiquent des manières bien plus sophistiquées que des objets.  Contrairement aux objets, les agents n'ont pas de comportement déterministe (peuvent dire "non"). En conséquence, ACLs sont parmi les plus importants des technologies d'agent devant être normalisés.  Malheureusement, un bon nombre d'ACL existent. Jusqu'à FIPA, la seule tentative de standardisation d'ACL était KQML, qui a cependant divergé dans plusieurs “ dialectes ” non-intéropérables.

FIPA a rendu public tous ses travaux à travers des spécifications et des "open sources". Il fait bon accueil à des commentaires extérieurs et permet la participation des personnes non-membres.

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

Politechnica University of Bucharest - 2002