La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LSR - ADELE UJF Une Approche Générique pour la Reconfiguration Dynamique des Applications à base de Composants Logiciels Abdelmadjid KETFI le 10 décembre.

Présentations similaires


Présentation au sujet: "LSR - ADELE UJF Une Approche Générique pour la Reconfiguration Dynamique des Applications à base de Composants Logiciels Abdelmadjid KETFI le 10 décembre."— Transcription de la présentation:

1 LSR - ADELE UJF Une Approche Générique pour la Reconfiguration Dynamique des Applications à base de Composants Logiciels Abdelmadjid KETFI le 10 décembre 2004 Laboratoire LSR Équipe ADELE Université Joseph Fourier – Grenoble

2 LSR - ADELE UJF 2 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

3 LSR - ADELE UJF 3 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

4 LSR - ADELE UJF 4 Motivation Analyse ConceptionDéveloppementDéploiement Internet Composants Mobilité

5 LSR - ADELE UJF 5 Motivation Analyse ConceptionDéveloppementDéploiement Configuration Fin de support Installation Désinstallation Mise à jourReconfiguration ActivationDésactivation Reconfiguration Modifier une application à lexécution, sans larrêter

6 LSR - ADELE UJF 6 Motivation Scénarios dapplications : Scénarios dapplications : Hautement disponibles Hautement disponibles WWW

7 LSR - ADELE UJF 7 Motivation Scénarios dapplications : Scénarios dapplications : Hautement disponibles Hautement disponibles Distribuées, large échelle Distribuées, large échelle

8 LSR - ADELE UJF 8 Motivation Scénarios dapplications : Scénarios dapplications : Hautement disponibles Hautement disponibles Distribuées, large échelle Distribuées, large échelle Clients hétérogènes Clients hétérogènes WWW

9 LSR - ADELE UJF 9 Motivation Scénarios dapplications : Scénarios dapplications : Hautement disponibles Hautement disponibles Distribuées, large échelle Distribuées, large échelle Clients hétérogènes Clients hétérogènes Embarquées Embarquées

10 LSR - ADELE UJF 10 Objectif Traiter la reconfiguration dynamique comme un concept non-fonctionnel Traiter la reconfiguration dynamique comme un concept non-fonctionnel Séparation des préoccupations Séparation des préoccupations Conception et développement dun système de reconfiguration dynamique « générique » pour les applications à base de composants Conception et développement dun système de reconfiguration dynamique « générique » pour les applications à base de composants Indépendant des applications à reconfigurer Indépendant des applications à reconfigurer Indépendant des modèles de composants sous-jacents Indépendant des modèles de composants sous-jacents Facile à utiliser Facile à utiliser Automatisé le plus possible Automatisé le plus possible Code de lapplication Code non-fonctionnel Avec Séparation de préoccupations Sans Séparation de préoccupations Code de la reconfiguration

11 LSR - ADELE UJF 11 Cadre de travail Application à base de composants Application à base de composants Réutilisation Réutilisation Architecture explicite – assemblage Architecture explicite – assemblage Séparation aspects fonctionnels/non fonctionnels Séparation aspects fonctionnels/non fonctionnels Capable de sauto-décrire Capable de sauto-décrire DépendancesDépendances Fonctionnalités offertesFonctionnalités offertes Déploiement dynamique Déploiement dynamique Évolution Évolution Aucun modèle de composants ne supporte toutes ces caractéristiques

12 LSR - ADELE UJF 12 Cadre de travail (suite) Définition Définition Configuration Configuration Reconfiguration Reconfiguration Reconfiguration dynamique Reconfiguration dynamique Propriétés dun système de reconfiguration Propriétés dun système de reconfiguration Cohérence Cohérence Performance Performance Automatisation Automatisation Facilité dutilisation Facilité dutilisation

13 LSR - ADELE UJF 13 Serveur1 calculer() Cadre de travail (suite) Taxonomie des modifications Taxonomie des modifications Implémentation Implémentation Client1 calculer()

14 LSR - ADELE UJF 14 Cadre de travail (suite) Taxonomie des modifications Taxonomie des modifications Implémentation Implémentation Interface Interface Serveur2 traiter() ? Serveur1 calculer() Client1 calculer()

15 LSR - ADELE UJF 15 Serveur calculer() Client calculer() Cadre de travail (suite) Taxonomie des modifications Taxonomie des modifications Implémentation Implémentation Interface Interface Architecture Architecture Filtre calculer()

16 LSR - ADELE UJF 16 Cadre de travail (suite) Taxonomie des modifications Taxonomie des modifications Architecture Architecture Implémentation Implémentation Interface Interface Localisation Localisation DB stocker() Client calculer() Serveur calculer() stocker() Machine1

17 LSR - ADELE UJF 17 Cadre de travail (suite) Taxonomie des modifications Taxonomie des modifications Architecture Architecture Implémentation Implémentation Interface Interface Localisation Localisation Client calculer() Serveur calculer() stocker() Machine1 DB stocker() Machine2

18 LSR - ADELE UJF 18 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

19 LSR - ADELE UJF 19 État de lart Ouverture Dimensions : Dimensions : Granularité Support

20 LSR - ADELE UJF 20 État de lart Dimension 1 : Support Remplacer une entité logicielle par une autre Remplacer une entité logicielle par une autre Remplacer une entité matérielle par une autre Remplacer une entité matérielle par une autre ACARS (ARINC, Inc) ACARS (ARINC, Inc) Système de messagerie aérienneSystème de messagerie aérienne SCP (Bellcore) SCP (Bellcore) Système de télécommunicationSystème de télécommunication

21 LSR - ADELE UJF 21 Dimension 2 : Solutions fermées vs. ouvertes Fermées Fermées Logique de reconfiguration intégrée Logique de reconfiguration intégrée dans lapplication Il faut tout envisager à lavance Il faut tout envisager à lavance Partiellement ouvertes Partiellement ouvertes « Points » de reconfiguration bien définis « plug-ins » « Points » de reconfiguration bien définis « plug-ins » Modifications non spécifiées à lavance Modifications non spécifiées à lavance Eclipse, Netscape, OpenVL Eclipse, Netscape, OpenVL Ouvertes Ouvertes Tous les éléments du système sont sujets à la manipulation Tous les éléments du système sont sujets à la manipulation Iguana/J Iguana/J État de lart

22 LSR - ADELE UJF 22 Systèmes réflexifs Tours réflexives (B. Smith) Tours réflexives (B. Smith) Notions Notions Introspection Introspection Lire les informations du méta-niveauLire les informations du méta-niveau Intercession Intercession Modifier les informations du méta-niveauModifier les informations du méta-niveau Réification Réification Construire le méta-niveau à partir duConstruire le méta-niveau à partir du niveau 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

23 LSR - ADELE UJF 23 État de lart Dimension 3 : Granularité Procédurales Procédurales DYMOS (Insup Lee, USA, 1983) DYMOS (Insup Lee, USA, 1983) Modulaires Modulaires Polylith (Maryland, 1985-) Polylith (Maryland, 1985-) Orientées-objet Orientées-objet Dynamic Java/C++ classes Dynamic Java/C++ classes Orientées-composant Orientées-composant K-Components (Trinity College of Dublin) K-Components (Trinity College of Dublin) SOFA/DCUP (Charles University, Prague) SOFA/DCUP (Charles University, Prague)

24 LSR - ADELE UJF 24 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

25 LSR - ADELE UJF 25 Démarche Système de reconfiguration JavaBeans Système de reconfiguration OSGi Approche ascendante Approche ascendante Généralisation Généralisation Systèmes de reconfiguration dédiés à des modèles particuliers Systèmes de reconfiguration dédiés à des modèles particuliers Personnalisation Personnalisation Système de reconfiguration Générique Généralisation Personnalisation

26 LSR - ADELE UJF 26 Système de reconfiguration pour le modèle JavaBeans BeanBox BeanBox DBeanBox DBeanBox Intercepteurs : générés, compilés et chargés à la volée Intercepteurs : générés, compilés et chargés à la volée Communication limitée aux événements Communication limitée aux événements

27 LSR - ADELE UJF 27 Système de reconfiguration pour le modèle JavaBeans Intercepteurs Intercepteurs Principe : Principe : Sonde Moniteur Intercepteur notify receive IReconfiguration Rôle : Rôle : setTargetObject(... ) setTargetMethod(... ) passivate() activate() IReconfiguration Gestion des connexions Gestion des messages

28 LSR - ADELE UJF 28 Système de reconfiguration pour le modèle JavaBeans Gestion des messages Gestion des messages Éviter la perte des messages Éviter la perte des messages Files dattente Files dattente Gestion du transfert détat Gestion du transfert détat Solution ad-hoc Solution ad-hoc Lire les valeurs des propriétés du Bean à remplacer et les écrire dans les propriétés du nouveau Bean Lire les valeurs des propriétés du Bean à remplacer et les écrire dans les propriétés du nouveau Bean Problème de correspondance Problème de correspondance Bean1 IkIk I1I1 Bean2 Bean3 I1I1 IkIk IkIk I1I1

29 LSR - ADELE UJF 29 Synthèse des expérimentations

30 LSR - ADELE UJF 30 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

31 LSR - ADELE UJF 31 DYVA : principe de conception DYVA : DYVA : Dynamic Virtual Adaptation machine Dynamic Virtual Adaptation machine Noyau générique pour la reconfiguration dynamique Noyau générique pour la reconfiguration dynamique Une approche réflexive Une approche réflexive Abstraction Connexion Causale Méta-niveau Niveau de base Application Environnement Système de Reconfiguration Services supportés : Services supportés : Personnalisation Personnalisation Installation Installation Exécution Exécution

32 LSR - ADELE UJF 32 Base de composants Bases de composants : organisation des composants, propriétés… Bases de composants : organisation des composants, propriétés… DYVA : architecture interne Gestionnaire de reconfiguration Modification Gestionnaire de reconfiguration : opérations de reconfiguration de base Gestionnaire de reconfiguration : opérations de reconfiguration de base Superviseur Notification Superviseur : responsable de lauto-reconfiguration Superviseur : responsable de lauto-reconfiguration Politiques de reconfiguration Politiques de reconfiguration : règles interprétées par le superviseur Politiques de reconfiguration : règles interprétées par le superviseur Gestionnaire du modèle abstrait Gestionnaire du modèle abstrait des applications à reconfigurer Gestionnaire du modèle abstrait des applications à reconfigurer

33 LSR - ADELE UJF 33 DYVA : modèle abstrait dapplication

34 LSR - ADELE UJF 34 DYVA : opérations de reconfiguration Exemple du remplacement dinstances : Exemple du remplacement dinstances : IM1 Sonde IJ Journal IJ IM2 Moniteur2 IJ IM1 Moniteur1 X X

35 LSR - ADELE UJF 35 DYVA : auto-reconfiguration Automatisation Automatisation Règles ECA : Règles ECA : ON IF THEN ON IF THEN Exemple : Exemple : [RULE] ON: OVERLOAD_EVENT IF: LOAD > 80 AND Moniteur = Moniteur1 THEN: replace Moniteur1 Moniteur2 Application Environnement Observation Action Décision

36 LSR - ADELE UJF 36 DYVA : vue externe DYVA Interface de Notification Interface de notification Interface de notification Application (instanciation, connexion…) Application (instanciation, connexion…) Environnement (bande passante, disque, charge…) Environnement (bande passante, disque, charge…) Interface de Reconfiguration Interface de reconfiguration Interface de reconfiguration Disconnect, remove, replace… (en exécution) Disconnect, remove, replace… (en exécution) Plugins de Projection Plugins de projection Plugins de projection Plugins spécifiques Plugins spécifiques

37 LSR - ADELE UJF 37 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

38 LSR - ADELE UJF 38 DYVA : Implémentation Architecture interne Implémentation du modèle abstrait Implémentation du modèle abstrait Génération des classes Java en utilisant XML Castor Génération des classes Java en utilisant XML Castor Organisation du méta-niveau Organisation du méta-niveau

39 LSR - ADELE UJF 39 DYVA : Implémentation Transfert détat Outil dassistance au transfert détat Outil dassistance au transfert détat Introspection Spécification XML Classe Java CiCi Instrumentation Outil

40 LSR - ADELE UJF 40 DYVA : Implémentation Interface dadministration Affichage du graphe de l'architecture : Grappa Affichage du graphe de l'architecture : Grappa Mode « Local » Mode « Local » Mode « Distant » (RMI) Mode « Distant » (RMI)

41 LSR - ADELE UJF 41 DYVA : Implémentation Effort de programmation Taille du code (calculée en utilisant JavaNCSS) Taille du code (calculée en utilisant JavaNCSS) Exemple comparatif : plug-in de binding Exemple comparatif : plug-in de binding Système de reconfiguration JavaBeans 2000 Système de reconfiguration OSGi 3600 BeanBox = 5400 OSGi = 7200 Noyau3200 Personnalisation OSGi 1600 Plug-in de binding pour OSGi 400 Plug-in de binding pour Fractal 30 On réutilise la conception

42 LSR - ADELE UJF 42 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

43 LSR - ADELE UJF 43 DYVA : Personnalisation pour OSGi Objet Service Services Classe Java Interfaces Instanciation Composants OSGi Composants OSGi Le modèle OSGi Le modèle OSGi Chargement/déchargement dynamiques Chargement/déchargement dynamiques Gestion limitée aux unités de déploiement Gestion limitée aux unités de déploiement JVM OSGi Framework http Servicelog ServicePermissionMyProbeMyHandler … … OSGiAdaptor

44 LSR - ADELE UJF 44 DYVA : Personnalisation pour OSGi Principe de personnalisation Principe de personnalisation NOYAU Interface 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 service libérer objet service connecter interface de service libérer bundle remplacer objet service Concept de Bundle Concept de Bundle Opération libérer bundle Opération libérer bundle Bundle={composants} Bundle={composants} Un composant a plusieurs instances Un composant a plusieurs instances libérer bundle déconnecter toutes les instances de tous les composants contenus dans le bundle libérer bundle déconnecter toutes les instances de tous les composants contenus dans le bundle

45 LSR - ADELE UJF 45 Démo : Application Portail en OSGi MySQL

46 LSR - ADELE UJF 46 Démo : scénario de reconfiguration Règles Superviseur Événement Gestionnaire de Reconfiguration Gestionnaire du méta-niveau Application Version haute qualité Version basse qualité

47 LSR - ADELE UJF 47 Plan Motivation, objectif et cadre de travail État de lart Expérimentations Noyau générique pour la reconfiguration dynamique : DYVA Conception et implémentation Personnalisation Conclusion et perspectives

48 LSR - ADELE UJF 48 Conclusion Problématique Problématique Reconfiguration dynamique des applications à base de composants Reconfiguration dynamique des applications à base de composants La plupart des solutions existantes : spécifiques La plupart des solutions existantes : spécifiques Solution Solution Proposition dune approche générique de reconfiguration pour les applications à base de composants Proposition dune approche générique de reconfiguration pour les applications à base de composants Méthodologie Méthodologie Spécifique vers généralisation puis personnalisation Spécifique vers généralisation puis personnalisation Implémentation Implémentation Extension de la BeanBox puis OSGi Extension de la BeanBox puis OSGi Noyau DYVA : prototype Noyau DYVA : prototype Personnalisation pour OSGI Personnalisation pour OSGI

49 LSR - ADELE UJF 49 Perspectives (1/2) Stabilisation du prototype DYVA Stabilisation du prototype DYVA Large diffusion : logiciel libre (consortium ObjectWeb) Large diffusion : logiciel libre (consortium ObjectWeb) Expérimentations Expérimentations Valider la personnalisation OSGi (Projet OSMOSE, PISE…) Valider la personnalisation OSGi (Projet OSMOSE, PISE…) Autres personnalisations : Fractal, EJB… Autres personnalisations : Fractal, EJB…

50 LSR - ADELE UJF 50 Perspectives (2/2) Recherche Recherche Formalisation du problème de transfert détat Formalisation du problème de transfert détat Solution conceptuelleSolution conceptuelle Automatisation du transfert détatAutomatisation du transfert détat Migration Migration Gestion de la cohérence de la reconfiguration Gestion de la cohérence de la reconfiguration Détection et résolution des anomalies lors de la reconfigurationDétection et résolution des anomalies lors de la reconfiguration États stablesÉtats stables Sensibilité au contexte : auto-reconfiguration Sensibilité au contexte : auto-reconfiguration Paradigmes : ECA, agents…Paradigmes : ECA, agents…

51 LSR - ADELE UJF 51 Questions?


Télécharger ppt "LSR - ADELE UJF Une Approche Générique pour la Reconfiguration Dynamique des Applications à base de Composants Logiciels Abdelmadjid KETFI le 10 décembre."

Présentations similaires


Annonces Google