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.
|