Sites Inria

English version

Equipe de recherche SPIRALS

Self-adaptation for distributed services and large software systems

Présentation de l'équipe

Spirals mène des activités de recherche dans les domaines des systèmes répartis et des sciences du logiciel. Nous avons pour but d'introduire plus d'autonomie dans les mécanismes d'adaptation des systèmes logiciels, en particulier, afin d'assurer la transition des systèmes adaptatifs vers les systèmes auto-adaptatifs. Nous visons plus particulièrement deux propriétés : l'auto-guérison et l'auto-optimisation. Avec l'auto-guérison, nous avons pour but d'étudier et d'adapter des solutions de fouille de données et d'apprentissage à la conception et la mise en œuvre de systèmes logiciels, plus particulièrement en vue de la réparation automatique des systèmes logiciels. Avec l'auto-optimisation, nous avons pour but de partager, collecter et analyser les comportements dans un environnement réparti afin de continuellement adapter, optimiser et maintenir en fonctionnement des systèmes logiciels et d'aller vers l'obtention de systèmes distribués éternels.

Axes de recherche

  • Auto-guérison : Fouille d'artéfacts logiciels pour faire évoluer automatiquement les systèmes. Les systèmes logiciels doivent faire face au changement tout au long de leur cycle de vie. Les méthodes de développement agiles floutent la frontière entre la conception et l'exécution et entraînent des adaptations constantes. La taille des systèmes (qui se compte en millions de lignes de code) multiplie le nombre de bugs par un ordre de grandeur similaire. De plus en plus de systèmes logiciels s'exécutent en mode "survie", au sens où on ne peut ni les rebooter, ni les mettre à jour. Nous pensons que des solutions nouvelles et innovantes peuvent être trouvées en utilisant des techniques de fouille de données et d'apprentissage adaptées au génie logiciel. Ce type de recherche consiste à faire de la fouille de connaissances sur les systèmes logiciels en analysant le code source, les systèmes de versionnement, les traces d'exécution, la documentation et tous les artéfacts de développement et d'exécution en général. Cette connaissance peut alors être utilisée dans des systèmes de recommandation pour le développement logiciel, les outils d'audit, les consoles de supervision à l'exécution, les frameworks de résilience.
  • Auto-optimisation : Partage de comportements à l'exécution pour l'adaptation continue du logiciel. Les systèmes répartis complexes doivent s'adapter de façon fluide à un grand nombre de cibles de déploiement. Ceci est dû à l'impossibilité pour les développeurs d'anticiper toutes les conditions d'exécution dans lesquelles ces systèmes seront immergés. Un défi majeur pour ces systèmes est de développer leur capacité à raisonner de façon continue sur eux-mêmes et de leur permettre de prendre les décisions et les actions appropriées quant aux optimisations qu'ils peuvent s'auto-appliquer. La contribution de recherche que nous visons dans ce domaine sera de ce fait organisée autour d'un modèle de référence pour l'ingénierie des systèmes répartis auto-optimisés pilotés de façon autonome par des boucles de contrôle adaptatives, qui s'étendront de façon automatique pour faire face à la complexité des décisions à prendre. Le programme de recherche sur cet objectif se focalisera sur l'étude de mécanismes pour superviser, prendre des décisions, et reconfigurer automatiquement les logiciels à l'exécution et à différents niveaux de granularité.

Suivez Inria tout au long de son 50e anniversaire et au-delà !