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

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 logiciel...

Full description

Bibliographic Details
Main Author: Kornaś, Jakub
Language:ENG
Published: 2008
Subjects:
Online Access:http://tel.archives-ouvertes.fr/tel-00607906
http://tel.archives-ouvertes.fr/docs/00/60/79/06/PDF/Thesis_nv.pdf
id ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-00607906
record_format oai_dc
collection NDLTD
language ENG
sources NDLTD
topic [INFO:INFO_NI] Computer Science/Networking and Telecommunication
Gestion de configuration
déploiement de logiciel
systèmes répartis
programmation répartie
composants logiciels
programmation à composants
systèmes autonomes
spellingShingle [INFO:INFO_NI] Computer Science/Networking and Telecommunication
Gestion de configuration
déploiement de logiciel
systèmes répartis
programmation répartie
composants logiciels
programmation à composants
systèmes autonomes
Kornaś, Jakub
Contributions au déploiement dans les architectures réflexives basé sur les composants
description 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.
author Kornaś, Jakub
author_facet Kornaś, Jakub
author_sort Kornaś, Jakub
title Contributions au déploiement dans les architectures réflexives basé sur les composants
title_short Contributions au déploiement dans les architectures réflexives basé sur les composants
title_full Contributions au déploiement dans les architectures réflexives basé sur les composants
title_fullStr Contributions au déploiement dans les architectures réflexives basé sur les composants
title_full_unstemmed Contributions au déploiement dans les architectures réflexives basé sur les composants
title_sort contributions au déploiement dans les architectures réflexives basé sur les composants
publishDate 2008
url http://tel.archives-ouvertes.fr/tel-00607906
http://tel.archives-ouvertes.fr/docs/00/60/79/06/PDF/Thesis_nv.pdf
work_keys_str_mv AT kornasjakub contributionsaudeploiementdanslesarchitecturesreflexivesbasesurlescomposants
_version_ 1716396210114265088
spelling ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-006079062013-01-07T17:37:00Z http://tel.archives-ouvertes.fr/tel-00607906 http://tel.archives-ouvertes.fr/docs/00/60/79/06/PDF/Thesis_nv.pdf Contributions au déploiement dans les architectures réflexives basé sur les composants Kornaś, Jakub [INFO:INFO_NI] Computer Science/Networking and Telecommunication Gestion de configuration déploiement de logiciel systèmes répartis programmation répartie composants logiciels programmation à composants systèmes autonomes 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. 2008-10-23 ENG PhD thesis