thesis

Contributions au déploiement dans les architectures réflexives basé sur les composants

Defense date:

Jan. 1, 2008

Edit

Institution:

Grenoble 1

Disciplines:

Authors:

Abstract EN:

Modern software systems are increasingly complex regarding their development and their runtime management. To address this complexity, a component-based paradigm has emerged. Components modularize development for better software engineering and promote a vision of software as a dynamic assembly of components that can be deployed and managed at runtime. One successful approach for advanced runtime management is based on the software architecture that components make explicit. This approach, called architecture-based management, has evolved from ad-hoc early solutions to generic frameworks based on reflexive component models. One such framework is the JADE framework. JADE targets autonomie management of complex distributed systems. Based on a reflexive component model, JADE captures the complete software architecture of distributed systems, including hosted distributed applications and their hosting distributed system. Ln particular, this architecture reifies the runtime behavior of the distributed system, such as node failures or performance characteristics. Using this complete architecture, autonomie managers observe and react accordingly to changing conditions. The reaction of autonomie managers is to plan an architecture reconfiguration. Forinstance, a self-repair manager observing anode failure would plan to reconstruct the lost part of the distributed system on another node. A self-protection manager would observe an intrusion and would plan reconfiguring the distributed system in order to isolate or sandbox compromised components. A self-optimizing manager could observe an availability problem in a replicated server and plan to augment the replication cardinality of the server components. Consequently, at the heart of JADE, one tinds the challenge ofcomponent deployment. Indeed, most reconfigurations of the architecture ofa distributed system rely on the ability to instantiate components on remote nodes of the distributed system. More precisely, once autonomic managers have generated a reconfiguration plan of the distributed system, the actual execution of the plan is itself distributed, essentially creating and removing components as weil as binding and unbinding them. Creating and removing components requires a local management of components on each node of the distributed system. This local management requires a distributed infrastructure to find, download, install, and remove components. The work presented in this thes. Is has provided JADE with advanced deployment capabilities in a distributed environment. Ln particular, we have approached this challenge through a recursive design where the implementation of components has been modelled using components, providing a sound and uniform deployment that follows the architecture-based principles. Ln particular, we can deploy application components as weil as middleware components. Moreover, we can not only deploy regular components but we can also deploy legacy software that are wrapped with components. Through wrapping, remotely deployed legacy software can be managed by JADE in a uniform manner. Besides providing the deployment subsystem of JADE, this work has shown that underlying reflexive component model called FRACTAL needed to be extended in order to capture implementations and their specifies. Although conceived for FRACT AL and JADE, these extensions apply to most curren: component models that focus on the functional assembly of components and not on how components are deployed. This work has also shown that autonomie architecture based management has specifie dynamic needs in terrns of deployment that makes it difficult to reuse existing dynamic component platforms such as OSGI. A first design and prototype built during this thesis, although successful in many ways, has demonstrated fundamental design and architectural tensions between OSGI and JADE. A second design and prototype has shown the feasibility ofusing the Java platforrn for supporting our extended FRACT AL as the foundation to autonomie architecture-based management of complex distributed systems.

Abstract FR:

Les logiciels récents sont de plus en plus complexes en terme de leur développement et gestions associés. Pour adresser cette complexité, un approche basé sur les composant a vu le jour. Les composants modulent le développement pour une meilleure ingénierie des logiciels et permettent une vision des logiciels comme un assemblage dynamique des composants qui peuvent être déployés et gérés en continu. Une approche concluante pour la gestion avancée en continu est basée sur une architecture logicielle de composants explicites. Cette approche, appelée « gestion basée sur l'architecture », a évolué de premières solutions ad-hoc en des infrastructures génériques basées sur des modèles de composants réflexifs. Une de ces infrastructures est la plateforme JADE. JADE vise à gérer automatiquement les systèmes distribués complexes. Basé sur un modèle de composants réflexifs, JADE capture l'architecture logicielle complète des systèmes distribués, incluant les applications distribuées hébergées et les systèmes distribués « hébergeants ». En particulier, cette architecture réifie le comportement continu des systèmes distribués, tels que les défaillances de nœuds ou les caractéristiques de performance. Utilisant cette architecture complète, les gestionnaires autonomes observent et réagissent selon les changements de conditions. Cette réaction des gestionnaires automatiques a pour but de planifier la reconfiguration de l'architecture. Par exemple, un gestionnaire d'auto-réparation observant la défaillance d'un nœud aurait pour but de reconstruire la part perdue du système distribué sur un autre nœud. Un gestionnaire d'auto-protection observerait une intrusion et planifierait la reconfiguration du système distribué pour isoler les composants compromis. Un gestionnaire d'auto-optimisation pourrait observer un problème disponible dans un serveur répliqué et planifier d'augmenter cette réplication cardinale des composants serveurs. Par ce fait, au cœur de JADE, se trouve le déploiement des composants. En effet, la plupart des reconfigurations de l'architecture des systèmes distribués est basée sur l'aptitude à instancier des composants sur des nœuds distants du système distribué. Plus précisément, une fois que les gestionnaires autonomes ont générés un plan de reconfiguration du système distribué, l'exécution effective du plan est automatiquement distribuée, essentiellement par création et suppression de composants ainsi que leur union et désunion. La création et la suppression de composants requièrent une gestion locale des composants sur chaque nœud du système distribué. Cette gestion locale nécessite une infrastructure distribuée pour trouver, installer, charger et supprimer les composants. Le travail présenté dans cette thèse a contribué à JADE au travers des capacités de déploiement avancé dans un environnement distribué. En particulier, nous avons traité ce challenge via une conception récursive où l'implémentation de composants a été modélisée en utilisant des composants fournissant un son et un déploiement uniforme qui suit les principes basés sur l'architecture. En particulier, nous pouvons déployer des composants d'applications ainsi que des composants « middleware ». De plus, au-delà du déploiement de composants réguliers, nous pouvons également des logiciels « legacy » qui sont re-capitalisés avec des composants. En plus du déploiement de sous-système de JADE, ce travail a montré que le modèle de composant réflexif dérivé appelé FRACT AL a besoin d'être étendu pour capter les implémentations et leur spécificité. Bien que conçu pour FRACT AL et JADE, ces extensions s'appliquent pour la plupart des modèles de composant courant qui s'oriente sur l'assemblage fonctionnel de composants et non sur comment ces composants sont déployés. Ce travail a également montré que l'architecture autonome basée sur la gestion a des besoins dynamiques spécifiques en terme de déploiement qui rend difficile sa ré-utilisation pour des plateformes de composants dynamiques tels que OSGI. Des premières conceptions et prototypes ont été définis durant cette thèse avec des réussites sur bien des aspects mais également des limites démontrées sur la conception fondamentale et les tensions architecturales entre OSGI et JADE. Des secondes conceptions et prototypes ont montré la faisabilité de supporter notre FRACT AL étendu sur plateforme JA VA en tant que fondation de la gestion basée sur l'architecture autonome de svstèmes distribués complexes.