Axe "Auto-Adaptation"

Contact : Jean-Paul Arcangeli

 

Les systèmes artificiels du futur seront de plus en plus complexes (au sens du nombre d’entités qui les composent et de leurs interactions), hétérogènes, distribués voire enfouis. Par nature, ils seront décentralisés et ouverts. D’une part, ils seront plongés dans des environnements instables, dont les variations seront peu ou mal connues en phase de conception. D’autre part, un système pourra être ou devenir un sous-système, c’est-à-dire un élément d’un ou de plusieurs autres systèmes, sans que cela n’ait été prévu initialement ni forcément maîtrisé au niveau du sous-système lui-même, de par l’ouverture et les capacités de communications, il existera des systèmes qui résulteront d’une agglomération fortuite de sous-systèmes déjà existants.

Pour être robustes et pérennes, les systèmes informatiques devront donc évoluer dynamiquement et pour cela être capables de s’adapter de manière autonome aux changements de leur environnement. Leur concepteur ne saura pas à l’avance quelles seront les évolutions nécessaires ni si le système s’intègrera dans un autre système et comment. Par ailleurs, les adaptations devront se faire sans que le système soit arrêté et remplacé par un autre plus adapté.

Dans un tel contexte, il est illusoire de penser qu’un utilisateur puisse contrôler et piloter à distance (de manière continue au moins) le système ou les entités qui le composent. Au contraire, il s’agira pour le système et/ou ses composants d’être suffisamment autonomes pour s’administer, s’organiser et s’adapter eux-mêmes (auto-adaptation). On peut penser que si l’on ne peut pas prévoir à l’avance quelles seront les adaptations, on pourra néanmoins prévoir que le système devra être adapté et comment il pourrait l’être. Pour cela on pourra fixer à l’avance quelques principes et règles qui régiront l’adaptation et définir des architectures logicielles qui la favoriseront.

Objectifs

Notre objectif à long terme est de produire des systèmes auto-adaptatifs à partir de « composants sur étagère », génériques et réutilisables dans de multiples champs d’application.

Nos objectifs à court terme et moyen terme sont corrélés avec la gradation des difficultés associés aux diverses formes d’auto-adaptation :

  • Auto-ajustement. Ici, l’organisation entre les composants du système est connue mais ce dernier doit maintenir certains paramètres dans des plages prédéfinies. La simulation adaptative est typique de cette problématique où il faut trouver le réglage (tuning) des paramètres de chaque agent, adéquat avec le fonctionnement collectif désiré.
  • Auto-organisation. Les agents pré-existent au sein du système, mais il est mal organisé. Le couplage avec l’environnement et les acquis de l’expérience conduisent les agents à se réorganiser, donc à réajuster la structure du système. Par exemple, la prise en compte de défaillances peut conduire à l’auto-réparation qui est une forme d’auto-organisation dynamique.
  • Evolution (structurelle ?). Dans les systèmes ouverts de nouveaux agents peuvent apparaître dynamiquement (réplication, création ou intégration de nouveaux agents) ou des agents du système peuvent disparaître (apoptose, mobilité...).

Ces différentes formes d’adaptation ne sont pas dépendantes d’une finalité pré-donnée ; en conséquence, les comportements collectifs observés au macro-niveau seront véritablement émergents.

Par ailleurs, afin de limiter la complexité induite par la prise en compte des besoins d’auto-adaptation lors du développement des applications, il faudra définir une méthodologie et un outillage associé. Les besoins d’auto-adaptation seront donc à l’origine du développement de modèles et d’infrastructures pour la conception et le développement

Bibliographie sélective

  • Sébastien Leriche, Jean-Paul Arcangeli. Modeling Self-Adaptive Agents for Ubiquitous and Pervasive Computing. Dans/In : International Workshop on Multi-Agent Systems Challenges for Ubiquitous and Pervasive Computing, Paris, 02-04 mai/May 2007, Université de Technologie de Belfort-Montbeliard, Laboratoire Systèmes et Transport, 5-16, 2007. BibTeX