6. Ingénierie logicielle orienté agent
6.6 Conclusions
L'informatique est en train de changer, de manière assez profonde.
Tout d'abord, elle devient ubiquitaire, c'est-à-dire qu'elle est
présente dans les objets de la vie courante : téléphones
portables, assistants personnels, maison, etc. Elle devient ainsi de plus
en plus diffuse et distribuée dans de multiples objets et fonctionnalités
qui sont amenés à coopérer. La décentralisation
des logiciels devient maintenant inéluctable du fait de la complexité
des applications informatiques. La décentralisation est donc la
règle, et une organisation coopérative entre modules logiciels
est un besoin. On est ainsi naturellement conduit à chercher à
donner plus d'autonomie et d'initiative aux différents modules
logiciels. Le paradigme des systèmes multi-agents propose un cadre
de réponse à ces deux enjeux complémentaires : l'autonomie
et l'organisation.
Pourquoi les techniques basées sur le
paradigme des systèmes multi-agents vont, en toute probabilité,
réussir et devenir le courant principal de l'ingénierie
logicielle ? Il y a deux raisons importantes pour croire que
ces techniques seront largement adoptées. La première est
que cette approche peut être regardée comme une prochaine
étape naturelle dans l'évolution d'une gamme entière
d'approches à l'ingénierie logicielle (Jennings, 2000).
Le développement de l'ingénierie logicielle des vingt dernières
années a montré un mouvement vers des paradigmes et des
langages qui utilisent des concepts abstraits provenant du domaine du
problème même, par exemple l'approche orientée objet.
Bien qu'il y ait certaines similarités entre les approches orientées
objet et celles orientées agent, il y a aussi plusieurs différences
importantes. Premièrement, les objets sont généralement
passifs : ils ont besoin de recevoir un message avant de devenir actifs.
Deuxièmement, bien que les objets encapsulent l'état et
le comportement, ils n'encapsulent pas le choix de l'action. Troisièmement,
l'approche orientée objet ne fournit pas un ensemble de concepts
assez riche et les mécanismes nécessaires pour modéliser
les systèmes complexes à un niveau suffisant d'abstraction.
Finalement, les approches orientées objet offrent uniquement un
support minimal pour spécifier et gérer les rapports organisationnels.
Les agents représentent une prochaine étape dans l'évolution
des approches orientées objet. Tout comme le monde réel
est peuplé d' objets (passifs) sur lesquels on exécute des
opérations, il est également (si non plus) rempli d'agents
actifs et pro-actifs qui inter-agissent afin d'atteindre leurs buts. Par
conséquent, la vue orientée agents du monde est peut-être
la façon la plus naturelle de caractériser beaucoup de types
de problèmes. Les composants fondamentaux des modèles de
programmation ont un degré de localisation et d'encapsulation de
plus en plus élevé. Les agents suivent cette tendance en
localisant les buts dans chaque agent, en donnant à chaque agent
son propre thread de contrôle, et en encapsulant la sélection
d'action. En plus, les agents offrent des mécanismes plus riches
pour la réutilisation des composants.
Les techniques basées sur agents sont le modèle informatique
idéal pour développer des logiciels ouverts et des systèmes
distribués et connectés en réseau ( comme l'Internet).
Les agents sont actifs et autonomes, donc ils sont des entités
qui agissent pour atteindre des objectifs spécifiés. Ils
sont réactifs et pro-actifs, donc les entités informatiques
peuvent agir en faisant face à l'incertitude inhérente qui
existe dans un environnement ouvert, et sont dotées de capacités
d'interactions flexibles qui permettent d'interagir avec des entités
inconnues au moment de la conception. De plus, les agents ont la capacité
de représenter explicitement les rapports organisationnels.
Il faut aussi considérer les inconvénients potentiels de
l'approche agents et des systèmes multi-agents. Quelques caractéristiques
des agents qui donnent le pouvoir du paradigme peuvent mener à
des pièges ou à des difficultés. Par exemple, les
résultats de l'interaction entre agents sont parfois imprévisibles.
Prédire le comportement du système général
en partant de ces entités constituantes est extrêmement difficile
à cause de la possibilité d'un comportement émergent.
Il y a plusieurs possibilités pour contourner ces difficultés.
Le concepteur peut utiliser des protocoles d'interaction dont les propriétés
peuvent être analysées formellement, ou il peut adopter des
structures organisationnelles prédéfinies. Mais ceci peut
mener à la limitation de la nature et de l'étendue des interactions
entre les agents du système. De telles solutions réduisent
l'imprévisibilité du système, mais limitent du même
coup le pouvoir de l'approche basée sur les agents. La communauté
des chercheurs en systèmes multi-agents cherche activement des
solutions pour surmonter ces difficultés.
En dépit de ces difficultés et en considérant les
avantages et le pouvoir conceptuel du paradigme des systèmes multi-agents,
il y a de bonnes raisons de penser que cette nouvelle approche deviendra
un des paradigmes les plus influents, sinon le courant principal en ingénierie
logicielle et en informatique.
Dans le monde des chercheurs en systèmes multi-agents et en intelligence
artificielle distribuée, la communauté francophone a été
l'une des premières à s'impliquer dans les recherches dans
le domaine. L'activité française en systèmes multi-agents
et en intelligence artificielle distribuée a commencé à
être très visible internationalement au milieu des années
1980. En effet, plusieurs thèmes en SMA se sont développés
spécifiquement en France.
Les Gasser, dans la préface du livre "Principes et architectures
des systèmes multi-agents", Hermès, 2001, dit :
<< Une des forces de cette école française a été
la capacité d'intégrer des perspectives provenant de plusieurs
disciplines, en utilisant les résultats des unes pour faire avancer
de nouveaux thèmes et problèmes dans d'autres. Par exemple,
les chercheurs de la communauté francophone ont été
parmi les premiers à étudier les rapports étroits
entre les idées en matière de programmation à objets,
en programmation concurrente et répartie, en représentation
des connaissances et en systèmes multi-agents. …
Un deuxième type d'intégration réalisé par
la communauté francophone a été la tentative d'unifier
les agents à grain fin et à gros grain. Les chercheurs français
ont d'abord cherché à composer de plus grandes structures
d'agents à partir de composants à grain fin, et à
concevoir des problèmes distribués à très
grande échelle mais à grain fin (tels que les mécanismes
de vision de bas niveau) en tant que systèmes multi-agents. …
Une troisième intégration a tenté d'unifier clairement
les concepts d'architectures d'agents réactifs et délibératifs
(cognitifs). Un certain nombre de chercheurs ont commencé au début
des années 1980 à construire des systèmes multi-agents
délibératifs émergents, ainsi que des structures
complexes de résolution de problèmes à partir de
composants réactifs. En outre, ils ont montré l'application
pratique qui pouvait être faite de ces systèmes multi-echelles
ainsi que les manières dont ils pouvaient être employés
pour représenter des systèmes biologiques et physiques complexes,
aussi bien que des problèmes de calcul.
En conclusion, les chercheurs français ont initié certaines
des premières tentatives de méthodologies systématiques
de construction de logiciel à base d'agents, résultats directs
de leurs travaux d'unification.>>
Comme on a pu le constater, le domaine des agents intelligents et systèmes
multi-agents demeure encore aujourd'hui un domaine rempli de défis
à surmonter, autrement dit un domaine très ouvert pour la
recherche.
|