Upload
ludivine-alexandre
View
109
Download
3
Embed Size (px)
Citation preview
LSR - ADELE UJF
Une Approche Générique pour la Une Approche Générique pour la Reconfiguration Dynamique des Reconfiguration Dynamique des
Applications à base de Composants Applications à base de Composants LogicielsLogiciels
Abdelmadjid KETFIAbdelmadjid KETFI
le 10 décembre 2004
Laboratoire LSRLaboratoire LSRÉquipe ADELEÉquipe ADELE
Université Joseph Fourier – GrenobleUniversité Joseph Fourier – Grenoble
22
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
33
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
44
LSR - ADELE UJF
MotivationMotivation
Analyse Conception Développement DéploiementDéploiement
Internet Composants Mobilité
55
LSR - ADELE UJF
MotivationMotivation
Analyse Conception Développement DéploiementDéploiement
Configuration Fin de support
Installation Désinstallation
Mise à jour Reconfiguration
Activation Désactivation
Reconfiguration
Modifier une application à l’exécution, sans
l’arrêter
66
LSR - ADELE UJF
MotivationMotivation
Scénarios d’applications : Scénarios d’applications : Hautement disponiblesHautement disponibles
WWW
77
LSR - ADELE UJF
MotivationMotivation
Scénarios d’applications : Scénarios d’applications : Hautement disponiblesHautement disponibles Distribuées, large échelleDistribuées, large échelle
88
LSR - ADELE UJF
MotivationMotivation
Scénarios d’applications : Scénarios d’applications : Hautement disponiblesHautement disponibles Distribuées, large échelleDistribuées, large échelle Clients hétérogènesClients hétérogènes
WWW
99
LSR - ADELE UJF
MotivationMotivation
Scénarios d’applications : Scénarios d’applications : Hautement disponiblesHautement disponibles Distribuées, large échelleDistribuées, large échelle Clients hétérogènesClients hétérogènes EmbarquéesEmbarquées
1010
LSR - ADELE UJF
ObjectifObjectif
Traiter la reconfiguration Traiter la reconfiguration dynamique comme un dynamique comme un concept non-fonctionnelconcept non-fonctionnel Séparation des préoccupationsSéparation des préoccupations
Conception et développement d’un Conception et développement d’un systèmesystème de de reconfigurationreconfiguration dynamiquedynamique « « génériquegénérique » pour » pour les applications à base de les applications à base de composantscomposants Indépendant des applications à reconfigurerIndépendant des applications à reconfigurer Indépendant des modèles de composants sous-jacentsIndépendant des modèles de composants sous-jacents Facile à utiliserFacile à utiliser Automatisé le plus possibleAutomatisé le plus possible
Code de l’application
Code non-fonctionnel
Avec Séparationde préoccupations
Sans Séparationde préoccupations
Code de la reconfiguration
1111
LSR - ADELE UJF
Cadre de travailCadre de travail
Application à base de composantsApplication à base de composants RéutilisationRéutilisation Architecture explicite – assemblageArchitecture explicite – assemblage Séparation aspects fonctionnels/non fonctionnelsSéparation aspects fonctionnels/non fonctionnels Capable de s’auto-décrireCapable de s’auto-décrire
• DépendancesDépendances• Fonctionnalités offertes Fonctionnalités offertes
Déploiement dynamiqueDéploiement dynamique ÉvolutionÉvolution
Aucun modèle de composants ne supporte toutes ces
caractéristiques
1212
LSR - ADELE UJF
Cadre de travail (suite)Cadre de travail (suite)
Définition Définition ConfigurationConfiguration ReconfigurationReconfiguration Reconfiguration dynamiqueReconfiguration dynamique
Propriétés d’un système de reconfigurationPropriétés d’un système de reconfiguration CohérenceCohérence PerformancePerformance AutomatisationAutomatisation Facilité d’utilisationFacilité d’utilisation
1313
LSR - ADELE UJF
Serveur1
calculer()
Cadre de travail (suite)Cadre de travail (suite)
Taxonomie des modificationsTaxonomie des modifications ImplémentationImplémentation
Client1
calculer()
1414
LSR - ADELE UJF
Cadre de travail (suite)Cadre de travail (suite)
Taxonomie des modificationsTaxonomie des modifications ImplémentationImplémentation InterfaceInterface
Serveur2
traiter()
?? Serveur1
calculer()
Client1
calculer()
1515
LSR - ADELE UJF
Serveur
calculer()
Client
calculer()
Cadre de travail (suite)Cadre de travail (suite)
Taxonomie des modificationsTaxonomie des modifications ImplémentationImplémentation InterfaceInterface ArchitectureArchitecture
Filtre
calculer()
calculer()
1616
LSR - ADELE UJF
Cadre de travail (suite)Cadre de travail (suite)
Taxonomie des modificationsTaxonomie des modifications ArchitectureArchitecture ImplémentationImplémentation InterfaceInterface LocalisationLocalisation
DB
stocker()
Client
calculer()
Serveur
calculer()
stocker()
Machine1
1717
LSR - ADELE UJF
Cadre de travail (suite)Cadre de travail (suite)
Taxonomie des modificationsTaxonomie des modifications ArchitectureArchitecture ImplémentationImplémentation InterfaceInterface LocalisationLocalisation
Client
calculer()
Serveur
calculer()
stocker()
Machine1
DB
stocker()
Machine2
1818
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
1919
LSR - ADELE UJF
État de l’artÉtat de l’art
OuvertureOuverture
Dimensions : Dimensions :
GranularitéGranularité
SupportSupport
2020
LSR - ADELE UJF
État de l’artÉtat de l’art
Dimension 1 :Dimension 1 : SupportSupport Remplacer une entité Remplacer une entité logiciellelogicielle par par
une autreune autre Remplacer une entité Remplacer une entité matériellematérielle par par
une autreune autre ACARS (ARINC, Inc)ACARS (ARINC, Inc)
• Système de messagerie aérienne Système de messagerie aérienne SCP (Bellcore)SCP (Bellcore)
• Système de télécommunicationSystème de télécommunication
2121
LSR - ADELE UJF
Dimension 2 :Dimension 2 : Solutions Solutions ferméesfermées vs. vs. ouvertesouvertes FerméesFermées
Logique de reconfiguration intégrée Logique de reconfiguration intégrée
dans l’applicationdans l’application Il faut tout envisager à l’avanceIl faut tout envisager à l’avance
Partiellement ouvertesPartiellement ouvertes « Points » de reconfiguration bien définis « plug-ins »« Points » de reconfiguration bien définis « plug-ins » Modifications non spécifiées à l’avance Modifications non spécifiées à l’avance Eclipse, Netscape, OpenVLEclipse, Netscape, OpenVL
OuvertesOuvertes Tous les éléments du système sont sujets à la Tous les éléments du système sont sujets à la
manipulationmanipulation Iguana/JIguana/J
État de l’artÉtat de l’art
2222
LSR - ADELE UJF
Systèmes réflexifsSystèmes réflexifs
Tours réflexives (B. Smith)Tours réflexives (B. Smith)
NotionsNotions IntrospectionIntrospection
• Lire les informations du méta-niveauLire les informations du méta-niveau IntercessionIntercession
• Modifier les informations du méta-Modifier les informations du méta-niveauniveau
RéificationRéification• Construire le méta-niveau à partir du Construire le méta-niveau à partir du
niveau de baseniveau de base
Niveau de base
Méta-niveau
Méta-méta-niveau
Méta-méta-méta…........
Méta-niveau
Niveau de base
Réification
Introspection
Intercession
2323
LSR - ADELE UJF
État de l’artÉtat de l’art
Dimension 3 :Dimension 3 : GranularitéGranularité ProcéduralesProcédurales
DYMOS (Insup Lee, USA, 1983)DYMOS (Insup Lee, USA, 1983) ModulairesModulaires
Polylith (Maryland, 1985-)Polylith (Maryland, 1985-) Orientées-objetOrientées-objet
Dynamic Java/C++ classesDynamic Java/C++ classes Orientées-composantOrientées-composant
K-Components (Trinity College of Dublin)K-Components (Trinity College of Dublin) SOFA/DCUP (Charles University, Prague)SOFA/DCUP (Charles University, Prague)
2424
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
2525
LSR - ADELE UJF
DémarcheDémarche
Système de reconfiguration
JavaBeans
Système de reconfiguration
OSGi
Approche ascendanteApproche ascendante
GénéralisationGénéralisation
Systèmes de reconfiguration Systèmes de reconfiguration dédiés à des modèles dédiés à des modèles particuliersparticuliers
PersonnalisationPersonnalisation
Système de reconfiguration
Générique
Généralisation
Personnalisation
2626
LSR - ADELE UJF
Système de reconfiguration pour le Système de reconfiguration pour le modèle JavaBeansmodèle JavaBeans
BeanBoxBeanBox DBeanBoxDBeanBox
Intercepteurs : générés, compilés et chargés à la voléeIntercepteurs : générés, compilés et chargés à la volée Communication limitée aux événementsCommunication limitée aux événements
2727
LSR - ADELE UJF
Système de reconfiguration pour le Système de reconfiguration pour le modèle JavaBeansmodèle JavaBeans
Intercepteurs Intercepteurs Principe : Principe :
SondeSonde MoniteurMoniteurIntercepteurIntercepteur
notifynotify receivereceive
IReconfigurationIReconfiguration
Rôle : Rôle :
setTargetObject(...)
setTargetMethod(...)
passivate()
activate()
IReconfigurationIReconfiguration
Gestion des Gestion des connexionsconnexions
Gestion des messagesGestion des messages
2828
LSR - ADELE UJF
Système de reconfiguration pour le Système de reconfiguration pour le modèle JavaBeansmodèle JavaBeans
Gestion des messagesGestion des messages Éviter la perte des messagesÉviter la perte des messages Files d’attenteFiles d’attente
Gestion du transfert d’état Gestion du transfert d’état Solution ad-hocSolution ad-hoc Lire les valeurs des propriétés du Bean à remplacer et les Lire les valeurs des propriétés du Bean à remplacer et les
écrire dans les propriétés du nouveau Beanécrire dans les propriétés du nouveau Bean Problème de correspondanceProblème de correspondance
3311 44
5522Bean1
IkI1
Bean2 Bean3
I1 IkIkI1
2929
LSR - ADELE UJF
Synthèse des expérimentationsSynthèse des expérimentations
3030
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
3131
LSR - ADELE UJF
DYVA : principe de conceptionDYVA : principe de conception
DYVA :DYVA : Dynamic Virtual Adaptation machineDynamic Virtual Adaptation machine Noyau générique pour la reconfiguration dynamiqueNoyau générique pour la reconfiguration dynamique Une approche réflexiveUne approche réflexive
Abstraction
Connexion Causale
Méta-niveau
Niveau de baseApplication
Environnement
Système de Reconfiguration
Services supportés : Services supportés : • PersonnalisationPersonnalisation• InstallationInstallation• ExécutionExécution
3232
LSR - ADELE UJF
Base de composants
Bases de composantsBases de composants : organisation des composants, : organisation des composants, propriétés…propriétés…
DYVA : architecture interneDYVA : architecture interne
Gestionnaire de reconfiguration
Modification
Gestionnaire de reconfigurationGestionnaire de reconfiguration : opérations de : opérations de reconfiguration de basereconfiguration de base
Superviseur
Notification
SuperviseurSuperviseur : responsable de l’auto-reconfiguration : responsable de l’auto-reconfiguration
Politiques de reconfiguration
Politiques de reconfigurationPolitiques de reconfiguration : règles interprétées par le : règles interprétées par le superviseursuperviseur
Gestionnaire du modèle abstrait
Gestionnaire du modèle abstraitGestionnaire du modèle abstrait des applications à des applications à reconfigurerreconfigurer
3333
LSR - ADELE UJF
DYVA : modèle abstrait d’applicationDYVA : modèle abstrait d’application
3434
LSR - ADELE UJF
DYVA : opérations de reconfigurationDYVA : opérations de reconfiguration
Exemple du remplacement d’instances : Exemple du remplacement d’instances :
IM1Sonde
IJJournal
IJIM2Moniteur
2
IJIM1 Moniteur1
Moniteur1XX XX
3535
LSR - ADELE UJF
DYVA : auto-reconfigurationDYVA : auto-reconfiguration
AutomatisationAutomatisation
Règles ECA : Règles ECA : ON <événement> IF <condition> THEN <action>ON <événement> IF <condition> THEN <action>
Exemple : Exemple : [RULE][RULE]
ON: OVERLOAD_EVENTON: OVERLOAD_EVENTIF: LOAD > 80 AND IF: LOAD > 80 AND Moniteur = MoniteurMoniteur = Moniteur11THEN: replace MoniteurTHEN: replace Moniteur11 Moniteur Moniteur22
Application
Environnement
Observation
Action
Décision
3636
LSR - ADELE UJF
DYVA : vue externeDYVA : vue externe
DYVA
Interface de Notification
Interface de notificationInterface de notification Application (instanciation, connexion…)Application (instanciation, connexion…) Environnement (bande passante, disque, charge…)Environnement (bande passante, disque, charge…)
Interface de Reconfiguration
Interface de reconfigurationInterface de reconfiguration Disconnect, remove, replace… (en exécution)Disconnect, remove, replace… (en exécution)
Plugins de Projection
Plugins de projectionPlugins de projection Plugins spécifiquesPlugins spécifiques
3737
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
3838
LSR - ADELE UJF
DYVA : ImplémentationDYVA : ImplémentationArchitecture interneArchitecture interne
Implémentation du modèle abstraitImplémentation du modèle abstrait Génération des classes Java en utilisant XML CastorGénération des classes Java en utilisant XML Castor
Organisation du méta-niveauOrganisation du méta-niveau
3939
LSR - ADELE UJF
DYVA : ImplémentationDYVA : ImplémentationTransfert d’étatTransfert d’état
Outil d’assistance au transfert d’état Outil d’assistance au transfert d’état
Introspection
SpécificationXML
Classe Java
Ci
Instrumentation
Outil
4040
LSR - ADELE UJF
DYVA : ImplémentationDYVA : ImplémentationInterface d’administrationInterface d’administration
Affichage du graphe de l'architecture : GrappaAffichage du graphe de l'architecture : Grappa Mode « Local »Mode « Local » Mode « Distant » (RMI)Mode « Distant » (RMI)
4141
LSR - ADELE UJF
DYVA : ImplémentationDYVA : ImplémentationEffort de programmationEffort de programmation
Taille du code Taille du code (calculée en utilisant JavaNCSS)(calculée en utilisant JavaNCSS)
Exemple comparatif : plug-in de bindingExemple comparatif : plug-in de binding
Système de reconfiguration JavaBeans 2000
Système de reconfiguration OSGi 3600
BeanBox = 5400
OSGi = 7200
Noyau 3200
Personnalisation OSGi 1600
Plug-in de binding pour OSGi 400
Plug-in de binding pour Fractal 30
On réutilise la conception
4242
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
4343
LSR - ADELE UJF
DYVA : Personnalisation pour OSGiDYVA : Personnalisation pour OSGi
ObjetService
Services
ClasseJava
Interfaces
Instanciation
Composants OSGiComposants OSGi
Le modèle OSGiLe modèle OSGi Chargement/déchargement Chargement/déchargement
dynamiquesdynamiques Gestion limitée aux unités de Gestion limitée aux unités de
déploiementdéploiementJVMJVM
OSGi FrameworkOSGi Framework
htt
p S
erv
ice
log
Serv
ice
Perm
issio
n
MyP
rob
e
MyH
an
dle
r
… …
OS
GiA
dap
tor
4444
LSR - ADELE UJF
DYVA : Personnalisation pour OSGiDYVA : Personnalisation pour OSGi
Principe de personnalisationPrincipe de personnalisation
NOYAUInterface de reconfiguration OSGi
Interface de notification OSGi
Plug-ins de projection OSGi
enregistrement de service
dé-enregistrement de service
connexion
déconnexion
événement
binding
transfert d’état
instanciation
libérer interface de servicelibérer objet serviceconnecter interface de servicelibérer bundle
remplacer objet service
Concept de “Bundle”Concept de “Bundle”
Opération “Opération “libérer bundlelibérer bundle”” Bundle={composants}Bundle={composants} Un composant a plusieurs instancesUn composant a plusieurs instances ““libérer bundle” libérer bundle” déconnecter toutes les déconnecter toutes les
instances de tous les composants contenus dans instances de tous les composants contenus dans le bundlele bundle
4545
LSR - ADELE UJF
Démo : Application Portail en OSGiDémo : Application Portail en OSGi
MySQLMySQL
4646
LSR - ADELE UJF
Démo : scénario de reconfigurationDémo : scénario de reconfiguration
Règles
Superviseur
Événement
Gestionnaire deReconfiguration
Gestionnaire du méta-niveau
Application
600
400
Version haute qualité
Version basse qualité
4747
LSR - ADELE UJF
PlanPlan
Motivation, objectif et cadre de travail
État de l’art
Expérimentations
Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation
Personnalisation
Conclusion et perspectives
4848
LSR - ADELE UJF
ConclusionConclusion
ProblématiqueProblématique Reconfiguration dynamique des applications à base de Reconfiguration dynamique des applications à base de
composantscomposants La plupart des solutions existantes : spécifiquesLa plupart des solutions existantes : spécifiques
SolutionSolution Proposition d’une approche générique de reconfiguration Proposition d’une approche générique de reconfiguration
pour les applications à base de composantspour les applications à base de composants MéthodologieMéthodologie
Spécifique vers généralisation puis personnalisationSpécifique vers généralisation puis personnalisation ImplémentationImplémentation
Extension de la BeanBox puis OSGiExtension de la BeanBox puis OSGi Noyau DYVA : prototypeNoyau DYVA : prototype Personnalisation pour OSGIPersonnalisation pour OSGI
4949
LSR - ADELE UJF
Perspectives (1/2)Perspectives (1/2)
Stabilisation du prototype DYVAStabilisation du prototype DYVA Large diffusion : logiciel libre (consortium ObjectWeb)Large diffusion : logiciel libre (consortium ObjectWeb)
ExpérimentationsExpérimentations Valider la personnalisation OSGi (Projet OSMOSE, Valider la personnalisation OSGi (Projet OSMOSE,
PISE…)PISE…) Autres personnalisations : Fractal, EJB…Autres personnalisations : Fractal, EJB…
5050
LSR - ADELE UJF
Perspectives (2/2)Perspectives (2/2)
RechercheRecherche Formalisation du problème de transfert d’étatFormalisation du problème de transfert d’état
• Solution conceptuelleSolution conceptuelle• Automatisation du transfert d’étatAutomatisation du transfert d’état
MigrationMigration Gestion de la cohérence de la reconfigurationGestion de la cohérence de la reconfiguration
• Détection et résolution des anomalies lors de la Détection et résolution des anomalies lors de la reconfigurationreconfiguration
• États stablesÉtats stables Sensibilité au contexte : auto-reconfigurationSensibilité au contexte : auto-reconfiguration
• Paradigmes : ECA, agents…Paradigmes : ECA, agents…
5151
LSR - ADELE UJF
Questions?Questions?