Thèse soutenue

Méthodes et outils pour la conception de systèmes logiciels auto-adaptatifs
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Franck Chauvel
Direction : Isabelle Borne
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2008
Etablissement(s) : Lorient

Mots clés

FR

Résumé

FR

Avec l'avènement des systèmes mobiles, la plupart des systèmes logiciels doivent s'adapter à un environnement fluctuant en ressources matérielles et logicielles. Ce besoin d'adaptabilité survient à la fois dans des systèmes à large échelle tels que les systèmes paire-à-paire déployés sur Internet et dans des systèmes de taille plus modeste, voire dans des systèmes embarqués, téléphonie mobile, GPS, etc. Ces systèmes, dits « auto-adaptatifs », doivent donc observer les fluctuations de leur environnement dans le but d'offrir un service de qualité le plus longtemps possible. « Observation, décision, action » est alors naturellement le credo des systèmes auto-adaptatifs : observer l'environnement pour décider des modifications à apporter à la configuration ou à l'architecture. Le conception et le développement de tels systèmes fait converger plusieurs branches de l'informatique actuelle : le génie logiciel, l'intelligence artificielle, et les systèmes distribués. Les systèmes distribués et les systèmes sensibles traitent tout d'abord de problèmes liés à l'observation de l'environnement. L'intelligence artificielle et les systèmes de décision permettent ensuite de raisonner sur des données pour automatiser la prise de décision. Enfin, le génie logiciel et plus précisément les architectures à base de composants ont apporté un support technique permettant de modifier « à chaud » l'architecture d'un système logiciel en cours d'exécution. Pourtant, le développement et la conception de ces systèmes restent pour le moins difficile à cause d'un manque d'outils et de techniques dédiés. Si la plupart des plates-formes d'exécution récentes supportant le déploiement de systèmes à base de composant permettent effectivement d'adapter dynamiquement un système, les mécanismes mis en œuvre restent très rudimentaires et empêchent l'architecte de concevoir, en intention, le comportement lié à l'auto-adaptation. L'auto-adaptation reste donc une tâche annexe et ne fait pas encore l'objet des bonnes pratiques issues du génie logiciel. C'est pourquoi la contribution de cette thèse est de fournir à l'architecte des méthodes et des outils lui permettant d'exprimer, au bon niveau d'abstraction, l'auto-adaptation d'un système logiciel. Nous proposons de modéliser l'auto-adaptation sous la forme de règles qualifiant l'environnement et le système à l'aide d'un langage naturel contraint. Ces règles, par ailleurs composables, sont interprétées à l'aide d'un moteur de logique floue, soit lors de la conception via un moteur de simulation, soit dans le système réel à l'aide d'un moteur d'interprétation. La simulation des règles lors de la conception permet de valider, a priori et à moindre coût, des systèmes dont le test en situation réelle est excessivement complexe et coûteux. Ces différents outils ont été intégrés dans un outil nommé TanGraM permettant de concevoir et de simuler des systèmes auto-adaptatifs et une extension de la plate-forme d'exécution Fractal a été développée pour supporter l'intégration de règles d'adaptation floues dans un système réel. Cet outil a été utilisé pour concevoir un serveur HTTP susceptible d'adapter son architecture et sa configuration en fonction du nombre et de la dispersion des requêtes qu'il reçoit. Déployé ensuite sur la plate-forme Fractal, le système montre la pertinence d'une validation a priori lors de la conception de systèmes complexes. L'expression de l'adaptation sous la forme de règles de haut niveau n'est cependant que le premier pas vers des systèmes pleinement adaptatifs. La prise en compte des objectifs de qualité sous-jacents à l'adaptation, tels que la minimisation du temps de réponse par exemple, offre une perspective intéressante pour contrôler et simplifier encore la conception de systèmes auto-adaptatifs.