Déploiement auto-adaptatif d'intergiciel sur plate-forme élastique / Maurice-Djibril Faye ; sous la direction de Eddy Caron et de Ousmane Thiare

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Autostabilisation (informatique)

Simulateurs

Informatique autonome

Caron, Eddy (1972-.... ; chercheur en informatique) (Directeur de thèse / thesis advisor)

Thiare, Ousmane (1973-....) (Directeur de thèse / thesis advisor)

Palma, Noël de (1974-.... ; auteur en informatique) (Président du jury de soutenance / praeses)

Flauzac, Olivier (19..-....) (Rapporteur de la thèse / thesis reporter)

Petit, Franck (19..-.... ; professeur en informatique) (Rapporteur de la thèse / thesis reporter)

Tedeschi, Cédric (1982-....) (Membre du jury / opponent)

École normale supérieure de Lyon (2010-...) (Organisme de soutenance / degree-grantor)

Université de Saint-Louis (Sénégal) (Organisme de cotutelle / degree co-grantor)

École doctorale en Informatique et Mathématiques de Lyon (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : Nous avons étudié durant cette thèse les moyens de rendre le déploiement d'un intergiciel auto-adaptatif. Le type d'intergiciel que nous avons considéré ici est hiérarchique (structure de graphe) et distribué. Chaque sommet du graphe modélise un processus qui peut être déployé sur une machine physique ou virtuelle d'une infrastructure de type grille/cloud, les arêtes modélisent des liens de communications entre processus. Il offre aux clients des services de calcul haute performance. Les infrastructures de grilles/cloud étant élastiques (perte et ajout de nœuds), un déploiement statique n'est pas la solution idéale car en cas de panne on risque de tout reprendre à zéro, ce qui est coûteux. Nous avons donc proposé un algorithme auto-stabilisant pour que l'intergiciel puisse retrouver un état stable sans intervention extérieure, au bout d'un temps fini, lorsqu'il est confronté à certains types de pannes. Les types de pannes que nous avons considérés sont les pannes transitoires (simulé par la perte de nœuds, l'ajout de nouveaux nœuds, la perte de liens entre deux nœuds). Pour évaluer ces algorithmes, nous avons conçu un simulateur. Les résultats des simulations montrent qu'un déploiement, sujet à des pannes transitoires, s'auto-adapte. Avant d'en arriver à la phase de programmation du simulateur, nous avons d'abord proposé un modèle d'infrastructure distribuée (ce modèle permet de décrire des environnements de type grille/cloud), un modèle pour décrire certains types d'intergiciels hiérarchiques et enfin un modèle pouvant décrire un intergiciel en cours d'exécution (processus déployés sur les machines).

Résumé / Abstract : We have studied the means to make a middleware deployment self-adaptive. Our use case middleware is hierarchical and distributed and can be modeled by a graph. A vertex models a process and an edge models a communication link between two processes. The middleware provides high performance computing services to the users.Once the middleware is deployed on a computing infrastructure like a grid or cloud, how it adapt the changes in dynamic environment? If the deployment is static, it may be necessary to redo all the deployment process, which is a costly operation. A better solution would be to make the deployment self-adaptive. We have proposed a rules-based self-stabilizing algorithm to manage a faulty deployment. Thus, after the detection of an unstable deployment, caused by some transients faults (joining of new nodes or deletion of existing nodes which may modify the deployment topology), the system will eventually recover a stable state, without external help, but only by executing the algorithm.We have designed an ad hoc discrete events simulator to evaluate the proposed algorithm. The simulation results show that, a deployment, subjected to transients faults which make it unstable, adapts itself. Before the simulator design, we had proposed a model to describe a distributed infrastructure, a model to describe hierarchical middleware and a model to describe a deployment, that is the mapping between the middleware processes and the hardware on which they are running on.