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.
Identifer | oai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00607906 |
Date | 23 October 2008 |
Creators | Kornaś, Jakub |
Source Sets | CCSD theses-EN-ligne, France |
Language | English |
Detected Language | French |
Type | PhD thesis |
Page generated in 0.002 seconds