Contributions to software deployment in a component-based reflexive architecture - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2008

Contributions to software deployment in a component-based reflexive architecture

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

Jakub Kornaś
  • Fonction : Auteur
  • PersonId : 905369

Résumé

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 autonomic 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. In particular, this architecture reifies the runtime behavior of the distributed system, such as node failures or performance characteristics. Using this complete architecture, autonomic managers observe and react accordingly to changing conditions. The reaction of autonomic managers is to plan an architecture reconfiguration. For instance, a self-repair manager observing a node 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 finds the challenge of component deployment. Indeed, most reconfigurations of the architecture of a 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 well 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 thesis has provided JADE with advanced deployment capabilities in a distributed environment. In 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. In particular, we can deploy application components as well 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 specifics. Although conceived for FRACTAL and JADE, these extensions apply to most current component models that focus on the functional assembly of components and not on how components are deployed. This work has also shown that autonomic architecture based management has specific dynamic needs in terms 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 of using the Java platform for supporting our extended FRACTAL as the foundation to autonomic architecture-based management of complex distributed systems.
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 fondé sur les composant a vu le jour qui vise une meilleure ingénierie des logiciels. En particulier, une approche à composants structure les logiciels comme un assemblage dynamique des composants qui doivent être déployés et gérés à l'exécution, en continu. Pour ce deploiement et cette gestion, nous avons adopté une approche fondée sur une architecture logicielle explicite de composants. Cette approche, communément appelée " gestion basée sur l'architecture ", a évolué de premières solutions ad-hoc vers des infrastructures génériques fondées sur des modèles de composants réflexifs. Une de ces infrastructures est la plateforme JADE. JADE vise à gérer autonomiquement des 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 non seulement les applications distribuées hébergées mais aussi les systèmes distribués qui les hébergent". En particulier, cette architecture réifie en continue certains aspects de l'exécution des systèmes distribués, tels que les défaillances de nœuds ou les caractéristiques de performance. Utilisant cette architecture réifiée, les gestionnaires autonomes observent et réagissent selon les changements de conditions. Chaque réaction de gestionnaires automatiques a pour but de planifier une reconfiguration de l'architecture en réponse à un changement des conditions d'exécution. Par exemple, un gestionnaire d'auto-réparation observant la défaillance d'un nœud aurait pour but de reconstruire, sur un autre nœud, la partie perdue du système distribué. 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 une disponibilité en baisse d'un serveur répliqué et planifier d'augmenter cette réplication cardinale des composants serveurs. Au coeur de cette gestion autonomique fournie par JADE se trouve le déploiement des composants. En effet, la plupart des reconfigurations de l'architecture de systèmes distribués s'appuient sur l'aptitude à instancier des composants sur des nœuds distants. 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 édition de liens. 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 est le socle de JADE, fournissant les capacités de déploiement avancé dans un environnement distribué. En particulier, nous avons traité ce défi via une conception récursive où l'implémentation de composants a été modélisée par des composants. Cette approche fournie un déploiement uniforme qui suit les principes basés sur l'architecture. En particulier, nous pouvons déployer non seulement des composants d'applications mais aussi des composants " middleware ". De plus, au-delà du déploiement de composants normaux, nous pouvons également déployer des logiciels " legacy " qui sont gérés uniformément par JADE. En plus de fournir le socle du déploiement de JADE, ce travail a montré que le modèle de composant réflexif utilisé par JADE (appelé FRACTAL) a besoin d'être étendu pour capter les implémentations et leur spécificité. Bien que conçu spécifiquement pour FRACTAL et JADE, ces extensions présetent une applicabilité bien plus large, elles s'appliquent en effet à la plupart des modèles de composant courant. En effet, la plupart de ces modèles se focalisent sur l'assemblage fonctionnel de composants et ne proposent rien ou peu sur le déploiement des composants. Ce travail a également montré que l'architecture autonomique basée sur l'architecture a des besoins dynamiques spécifiques en terme de déploiement qui rend difficile la ré-utilisation de plateformes existantes pour la gestion dynamique de composants, tels que OSGI. Sur la base d'OSGi, cette thèse a expérimenté plusieurs conceptions et prototypes qui ont été utilisé avec succès, mais dont ultimement les limites sont apparues. Ces limites sont liées à une tension fondamentale entre les conceptions architecturales de JADE et OSGI. Une nouvelle conception et un nouveau prototype ont montré la faisabilité de supporter notre FRACTAL étendu sur la plateforme JAVA, servant de fondation à la gestion autonomique de systèmes distribués complexes fondée sur l'architecture.
Fichier principal
Vignette du fichier
Thesis_nv.pdf (1.59 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00607906 , version 1 (11-07-2011)

Identifiants

  • HAL Id : tel-00607906 , version 1

Citer

Jakub Kornaś. Contributions to software deployment in a component-based reflexive architecture. Networking and Internet Architecture [cs.NI]. Université Joseph-Fourier - Grenoble I, 2008. English. ⟨NNT : ⟩. ⟨tel-00607906⟩
203 Consultations
443 Téléchargements

Partager

Gmail Facebook X LinkedIn More