Composition de plans d'adaptations

Le passage à l'échelle des applications et la nécessité d'un service continu imposent d'introduire des mécanismes d'auto-adaptation dans les grands systèmes informatiques [1]. Actuellement, ces auto-adaptations sont souvent organisées comme des boucles de rétro-action autonomiques qui explicitent les activités de monitoring des informations, d'analyse à partir de ces informations, de planification et d'exécution des adaptations [2]. Ce projet s'intéresse en particulier aux plans d'adaptations et à leur cohérence.

En effet, la multiplicité des stratégies et des plans d'adaptation peut conduire à des actions incohérentes, telles que :

  • la création d'un comportement global incohérent du composant logiciel adapté : par exemple, stopper l'émission de signaux par un composant et demander le reboot du composant lorsqu'il n'émet plus de signaux;
  • la création d'adaptation contradictoire : par exemple, réduire la taille des messages acceptés lorsque la taille de la boîte atteint un seuil s1, et augmenter la taille des messages acceptés lorsque la taille de la boîte atteint un seuil s2 : et si s2 > s1 ?;
  • la création d'adaptations concurrentes qui vont entrer en conflit ou écrouler le système, par exemple lors de la récente panne de Facebook ;
  • la propagation d'adaptations à de nombreux composants, provoquant un comportement général incohérent, par exemple lorsque le système de trading automatique de la bourse de New York a propagé la panique dans tous les systèmes ;

Dans ce projet, nous nous proposons d'étudier les mécanismes d'adaptations permettant de corréler plusieurs demandes simultanées avec pour objectifs de détecter des conflits ou de composer de manière automatique ces plans d'adaptations. Ce projet est prospectif et peut être abordé en fonction du profil des étudiants selon deux points de vue :

  • Applicatifs: dans ce cas nous mettrons l'accent sur le développement
  • Recherche : étudier les algorithmes de détection de conflits et de composition de plans d'adaptation.

Les principales étapes du projet sont :

  1. un état de l'art sur les différents langages d'adaptations (scripts, workflows),
  2. une mise en place d'exemples clefs de scénarii mettant en place plusieurs jeux d'adaptation dans les domaines du middleware et des adaptations de workflows,
  3. la proposition d'algorithmes de détection de conflits et de composition.



[1] : IBM Autonomic Initiative http://www.research.ibm.com/autonomic/manifesto/
[2] : An architectural blueprint for autonomic computing: http://www-01.ibm.com/software/tivoli/autonomic/pdfs/AC_Blueprint_White_Paper_4th.pdf