Thomas Calmant - Gestion Autonomique d'Applications Dynamiques Sûres et Résilientes

08:00
Lundi
19
Oct
2015
Organisé par : 
Thomas Calmant
Intervenant : 
Thomas Calmant
Équipes : 

 

Jury :

  • Lionel Seinturier, Professeur, Université Lille 1, rapporteur
  • Gaël Thomas, Professeur, Télécom SudParis, rapporteur
  • Sonia Ben Mokthar, Chargée de Recherche au CNRS, Université de Lyon
  • Vivien Quéma, Professeur, Université Joseph Fourier, Grenoble
  • Walter Rudametkin, Maître de Conférences, Université Lille 1
  • Didier Donsez, Professeur, Université Joseph Fourier, Grenoble
  • Olivier Gattaz, Architecte Logiciel à isandlaTech, co-encadrant
 

Les architectures orientées services (SOA) sont considérées comme le moyen le plus avancé pour réaliser et intégrer rapidement des applications modulaires et flexibles.

Dans ce domaine, les plates-formes SOA à disposition des développeurs et des architectes de produits logiciels sont multiples; les deux plus évoluées d'entre elles étant SCA et OSGi.
Une application s'appuyant sur l'une de ces plates-formes peut ainsi être assemblée avec le minimum de composants nécessaires à la réalisation de ses tâches, afin de réduire sa consommation de ressources et d'augmenter sa maintenabilité.
De plus, ces plates-formes autorisent l'ajout de composants greffons qui n'étaient pas connus lors des phases initiales de la réalisation du produit.
Elles permettent ainsi de mettre à jour, d'étendre et d'adapter continuellement les fonctionnalités du produit de base ou des services techniques nécessaires à sa mise en production, sans interruption de service.
Ces capacités sont notamment utilisées dans le cadre du paradigme DevOps et, plus généralement, pour mettre en œuvre le déploiement continu d'artefacts.
 
Cependant, l'extensibilité offerte par ces plates-formes peut diminuer la fiabilité globale du système: une tendance forte pour développer un produit est l'assemblage de composants provenant de tierces-parties. De tels composants peuvent être d'une qualité inconnue voire douteuse.
En cas d'erreur, de détérioration des performances, etc., il est difficile de diagnostiquer les composants ou combinaisons de composants incriminés.
Il devient indispensable pour le producteur d'un logiciel de déterminer la responsabilité des différents composants impliqués dans un dysfonctionnement.
 
Cette thèse a pour objectif de fournir une plate-forme, Cohorte, permettant de concevoir et d'exécuter des produits logiciels extensibles et résilients aux dysfonctionnements d'extensions non qualifiées.
Les composants de tels produits pourront être développés dans différents langages de programmation et être déployés (ajout, mise à jour et retrait) en continu et sans interruption de service.
Notre proposition adopte pour principe d'isoler les composants considérés comme instables ou peu sûrs.
Le choix des composants à isoler peut être décidé par l'équipe de développement et l'équipe opérationnelle, à partir de leur expertise, ou bien déterminé à partir d'une combinaison d'indicateurs.
Ces derniers évoluent au cours du temps pour refléter la fiabilité des composants.
Par exemple, des composants peuvent être considérés fiables après une période de quarantaine; une mise à jour peut entraîner la dégradation de leur stabilité, etc..
Par conséquent, il est indispensable de remettre en cause les choix initiaux dans l'isolation des composants afin, dans le premier cas, de limiter le coup des communications entre composants et, dans le deuxième cas, de maintenir le niveau de fiabilité du noyau critique du produit.
 
Mots-Clés : Évolution du logiciel; Sûreté de fonctionnement ; Qualité des logiciels ;  Adaptation dynamique ; Gestion autonomique