thesis

Conception d'une infrastructure pour un déploiement sûr et flexible des composants logiciels

Defense date:

Jan. 1, 2008

Edit

Institution:

Télécom Bretagne

Disciplines:

Directors:

Abstract EN:

Software deployment is a complex task because it requires numerous dependent actions to be carried out. It covers all the activities of the software life cycle from its development to its use. In this work, we are interested in the installation, deinstallation and update activities. At the same time, applications are becoming more complex, causing an explosion in their size. To facilitate their management and reuse, they are represented as collections of components that are shared between several applications. Thus, deploying an application will affect all the applications that use it. Such an operation requires prior knowledge of the architecture of the applications with all their dependencies. The current approaches for managing deployment are often ad hoc and necessitate the intervention of experts to solve problems and carry out the deployment. Moreover, there is no way to guarantee the correctness of the deployment operation. Therefore, it is necessary to change to more structured, flexible and reliable approaches to be able to verify the deployment. Hence, we propose a generic meta-model for automatic component deployment and a formal system to check and ensure correct deployment. The metamodel represents the main deployment concepts so it can be re-used in several contexts. The formal system represents the mathematical description of the generic model. It allows the success and safety (maintaining consistency of the system) of the deployment operations to be demonstrated and proved. Finally, we propose a formal system which integrates the non-functional properties (version, level of security, performance, etc. ) in managing the deployment. The interest of these properties is that they can take into account multiple instances of the same component or the same service in order to personalize deployment, depending on the target system.

Abstract FR:

Le déploiement de logiciels est une tâche complexe car elle nécessite la réalisation de nombreuses actions ayant de fortes contraintes de dépendance. Il recouvre toutes les activités qui composent le cycle de vie du logiciel depuis son développement jusqu’à son utilisation. Dans le cadre de ce travail, nous nous intéressons aux activités d’installation, de désinstallation et de mise à jour. En parallèle, les applications deviennent de plus en plus complexes, ce qui provoque une explosion de leur taille. Pour faciliter leur gestion et leur réutilisation, elles sont représentées par des collections de composants qui sont partagés entre plusieurs applications. Ainsi, une opération de déploiement concernant une application aura un effet sur toutes les applications qui l’utilisent. Une telle opération, nécessite la connaissance préalable de l’architecture sur laquelle repose les applications avec toutes leurs dépendances. Les approches de gestion du déploiement actuelles sont souvent ad-hoc et se basent sur l’intervention d’experts pour résoudre les problèmes et mener à bien le déploiement. De plus, il n’existe pas de moyens efficaces pour garantir le bon déroulement du déploiement. Il est donc crutial de changer ces approches en des approches plus structurées, plus flexibles et plus sûres afin de maîtriser et de vérifier le déploiement. Pour cela, nous proposons un méta-modèle générique pour le déploiement automatique des composants ainsi qu’un système formel pour vérifier et garantir le bon déroulement du déploiement. Le méta-modèle permet d’abstraire tous les concepts nécessaires au déploiement ainsi, il peut être réutilisable dans plusieurs contextes. Le système formel est une formalisation mathématique du modèle générique. Il permet de démontrer et de prouver la réussite (le bon déroulement) et la sûreté (maintien de la cohérence du système) des opérations de déploiement. Enfin, nous proposons un système formel intégrant les propriétés non fonctionnelles (version, niveau de sécurité, performance, etc. ) dans la gestion du déploiement. L’intérêt est de pouvoir prendre en compte plusieurs instances d’un même composant ou d’un même service selon la plate-forme visée afin de personnaliser le déploiement.