Déploiement d’intergiciel en environnement hétérogène à grande échelle Pierre Marguerite DEA ISC LSR-IMAG, projet SARDES 2...
Introduction (1) <ul><li>Systèmes répartis </li></ul><ul><ul><li>Répondent aux évolutions technologiques  </li></ul></ul><...
Introduction (2) <ul><ul><li>Défis du déploiement </li></ul></ul><ul><ul><ul><li>Hétérogénéité des environnements considér...
Plan <ul><li>Etat de l’art  </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><l...
Déploiement dans les applications à composants (1) <ul><li>La notion de composant </li></ul><ul><ul><li>Brique de base con...
Déploiement dans les applications à composants (2) <ul><li>Langages de description d'architectures (ADL) </li></ul><ul><ul...
Déploiement dans les applications à composants (3) <ul><li>Déploiement d’applications sur la plateforme ScalAgent </li></u...
Plan <ul><li>Etat de l’art   </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><...
Déploiement dans les intergiciels (1) <ul><li>Intergiciel ? </li></ul><ul><ul><li>Couche logicielle entre les applications...
<ul><li>Divers exemples étudiés </li></ul><ul><ul><li>Synchrone : Aster, OpenORB, Cactus, Lasagne </li></ul></ul><ul><ul><...
Déploiement dans les intergiciels (3) <ul><li>Capacités de reconfiguration dynamique </li></ul><ul><ul><li>Utilisation de ...
Synthèse de l’état de l’art <ul><li>Applications  </li></ul><ul><ul><li>Utilisation de modèles à composants </li></ul></ul...
Plan <ul><li>Etat de l’art  </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><l...
Proposition <ul><li>Objectif </li></ul><ul><ul><li>Proposer un outil de déploiement d’intergiciels </li></ul></ul><ul><li>...
1. Un modèle de composants hiérarchique (1) <ul><li>But </li></ul><ul><ul><li>Modéliser un intergiciel de façon simple et ...
1. Un modèle de composants hiérarchique (2) <ul><li>Exemple </li></ul>Interface d’activation Partie de contrôle Partie fon...
2. Langage de description d’architectures (1) <ul><li>But </li></ul><ul><ul><li>Décrire un intergiciel suivant le modèle d...
2. Langage de description d’architectures (2) <ul><li><composite name=''Composite''>  </li></ul><ul><li>*** Interfaces fon...
3. Une application de déploiement asynchrone hiérarchique (1) <ul><li>But </li></ul><ul><ul><li>Utiliser la description de...
3. Une application de déploiement asynchrone hiérarchique (2) <ul><li>Principe  </li></ul><ul><ul><li>Utilisation de contr...
Plan <ul><li>Etat de l’art  </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><l...
Mise en œuvre (1) <ul><li>Les activités et le répertoire suivent un modèle événement=>réaction </li></ul><ul><li>Utilisati...
Mise en œuvre (2) <ul><ul><li>Types d’agents (suite) </li></ul></ul><ul><ul><ul><li>Les agents du contrôleur </li></ul></u...
Conclusion (1) <ul><li>Evaluation du travail </li></ul><ul><ul><li>Un processus de déploiement d'intergiciel, afin de comb...
Conclusion (2) <ul><li>Perspectives </li></ul><ul><ul><li>Rendre l'application de déploiement tolérante aux fautes. </li><...
Prochain SlideShare
Chargement dans…5
×

Dea Presentation Pierre Marguerite 24 Juin 2003

790 vues

Publié le

Publié dans : Formation, Business
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
790
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
5
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Evolutions : - développement d’Internet - multiplication des équipements communicants à forte puissance de calcul (PDA, …)
  • Propriétés : - persistance - protection - duplication Contraintes : - sécurité - placement - implémentation
  • Configuration : - un assemblage particulier de composants via des connecteurs. Génération d’un exécutable = Olan, Unicon Modélisation = Wright, Rapide
  • Dédiée à la construction d’applications asynchrones
  • Le langage d&apos;interconnexion Pour décrire : les interfaces des composants logiciels, une application en termes d&apos;interconnexions d&apos;interfaces. Le bus abstrait Les applications Aster repose sur un intergiciel synchrone. obtenu en ajoutant des composants intergiciels à un intergiciel de base présent sur les différentes plateformes. héberge l&apos;exécution d&apos;une application distribuée représentée par un ensemble de composants logiciels. Déploiement les prémices d&apos;un outil de déploiement (détermination de l&apos;ensemble des composants intergiciels nécessaires)
  • un modèle de composants hiérarchique (décrire l&apos;architecture d&apos;un intergiciel en terme d&apos;entités réparties, hiérarchiquement organisées)
  • Simplicité : pouvoir décrire de nombreux types d’intergiciels Hiérarchique : faciliter le déploiement
  • Activités de création: création d’un composant Suivant le type du composant: composite =&gt;création du contrôleur associé + transmet l’ADL Primitif: crée le composant suivant les informations contenus dans l’ADL Mise à jour du répertoire Activités d&apos;activation: activation d’un composant Primitif appel sur son interface Pour les composites, l’ordre est transmis aux contrôleurs fils Exécution suivant la Logique fonctionnelle: liaison dépend de la création des deux composants activation dépend de la création du composant et des liaisons de ses interfaces clientes
  • Dea Presentation Pierre Marguerite 24 Juin 2003

    1. 1. Déploiement d’intergiciel en environnement hétérogène à grande échelle Pierre Marguerite DEA ISC LSR-IMAG, projet SARDES 24 juin 2003
    2. 2. Introduction (1) <ul><li>Systèmes répartis </li></ul><ul><ul><li>Répondent aux évolutions technologiques </li></ul></ul><ul><ul><li>Soulèvent de nombreux défis </li></ul></ul><ul><ul><ul><li>Développement, Configuration, Administration, Déploiement, … </li></ul></ul></ul><ul><li>Projet de DEA </li></ul><ul><ul><li>Déploiement </li></ul></ul><ul><ul><ul><li>Installation du code du logiciel </li></ul></ul></ul><ul><ul><ul><li>Instanciation </li></ul></ul></ul><ul><ul><ul><li>Liaison </li></ul></ul></ul><ul><ul><ul><li>Activation </li></ul></ul></ul><ul><ul><ul><li>… </li></ul></ul></ul>
    3. 3. Introduction (2) <ul><ul><li>Défis du déploiement </li></ul></ul><ul><ul><ul><li>Hétérogénéité des environnements considérés </li></ul></ul></ul><ul><ul><ul><li>Nombre important d'entités à déployer </li></ul></ul></ul><ul><ul><ul><ul><li>Nombre en constante augmentation </li></ul></ul></ul></ul><ul><ul><li>Systèmes répartis : Application(s) au-dessus d’un intergiciel </li></ul></ul><ul><ul><ul><li>=> Le déploiement dans les intergiciels </li></ul></ul></ul>
    4. 4. Plan <ul><li>Etat de l’art </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><li>Déploiement dans les intergiciels </li></ul></ul><ul><li>Contribution </li></ul><ul><ul><li>Proposition d’un modèle de déploiement d’intergiciel </li></ul></ul><ul><ul><li>Mise en œuvre </li></ul></ul>
    5. 5. Déploiement dans les applications à composants (1) <ul><li>La notion de composant </li></ul><ul><ul><li>Brique de base configurable </li></ul></ul><ul><ul><ul><li>Construction d’applications par composition </li></ul></ul></ul><ul><ul><li>Interfaces </li></ul></ul><ul><ul><ul><li>Fonctionnelles </li></ul></ul></ul><ul><ul><ul><li>De contrôle </li></ul></ul></ul><ul><ul><li>Propriétés </li></ul></ul><ul><ul><li>Contraintes </li></ul></ul>Composant Propriétés configurables Contraintes techniques I n t e r f a c e s I n t e r f a c e s Fournit Utilise
    6. 6. Déploiement dans les applications à composants (2) <ul><li>Langages de description d'architectures (ADL) </li></ul><ul><ul><li>Description structurée d'un système informatique </li></ul></ul><ul><li>Concepts communs des ADL </li></ul><ul><ul><li>Composants </li></ul></ul><ul><ul><li>Connecteurs </li></ul></ul><ul><ul><li>Configuration </li></ul></ul><ul><li>2 types </li></ul><ul><ul><li>Génération d’un exécutable </li></ul></ul><ul><ul><li>Modélisation et analyse du système </li></ul></ul>
    7. 7. Déploiement dans les applications à composants (3) <ul><li>Déploiement d’applications sur la plateforme ScalAgent </li></ul><ul><ul><li>Modèle de composants : SCBeans – SCContainer - SCControler </li></ul></ul><ul><ul><ul><li>Asynchrone </li></ul></ul></ul><ul><ul><ul><li>Hiérarchique </li></ul></ul></ul><ul><ul><li>Langage de description d’architectures </li></ul></ul><ul><ul><ul><li>Description des composants (fonctionnel) </li></ul></ul></ul><ul><ul><ul><li>Description d’aspects non fonctionnels </li></ul></ul></ul><ul><ul><ul><ul><li>Site de déploiement </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Ordre d’activation </li></ul></ul></ul></ul><ul><ul><ul><ul><li>… </li></ul></ul></ul></ul><ul><ul><li>Déploiement asynchrone et hiérarchique à l’aide de l’ADL </li></ul></ul>
    8. 8. Plan <ul><li>Etat de l’art </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><li>Déploiement dans les intergiciels </li></ul></ul><ul><li>Contribution </li></ul><ul><ul><li>Proposition d’un modèle de déploiement d’intergiciel </li></ul></ul><ul><ul><li>Mise en œuvre </li></ul></ul>
    9. 9. Déploiement dans les intergiciels (1) <ul><li>Intergiciel ? </li></ul><ul><ul><li>Couche logicielle entre les applications et le système d’exploitation </li></ul></ul><ul><ul><li>Services de gestion de la distribution et de la coopération entre les applications </li></ul></ul><ul><li>Plusieurs modèles d’exécution </li></ul><ul><ul><li>Client - serveur </li></ul></ul><ul><ul><li>Communication par messages </li></ul></ul><ul><ul><li>Communication par événements </li></ul></ul><ul><ul><li>Code mobile </li></ul></ul><ul><ul><li>Mémoire virtuelle partagée </li></ul></ul>Application(s) Intergiciel Système d’exploitation
    10. 10. <ul><li>Divers exemples étudiés </li></ul><ul><ul><li>Synchrone : Aster, OpenORB, Cactus, Lasagne </li></ul></ul><ul><ul><li>Asynchrone : AAA, DREAM </li></ul></ul><ul><li>Capacités de configuration évoluées </li></ul><ul><ul><li>Modularité par composition de composants logiciels </li></ul></ul><ul><ul><li>Programmation par aspects </li></ul></ul>Déploiement dans les intergiciels (2)
    11. 11. Déploiement dans les intergiciels (3) <ul><li>Capacités de reconfiguration dynamique </li></ul><ul><ul><li>Utilisation de techniques réflexives </li></ul></ul><ul><li>Absence d’outils de déploiement </li></ul><ul><ul><li>Déploiement ad-hoc </li></ul></ul><ul><ul><li>Composants de l’intergiciel déployés indépendamment </li></ul></ul>
    12. 12. Synthèse de l’état de l’art <ul><li>Applications </li></ul><ul><ul><li>Utilisation de modèles à composants </li></ul></ul><ul><ul><li>Utilisation d’une description de l’application (ADL) </li></ul></ul><ul><ul><li>Cas de la plateforme ScalAgent </li></ul></ul><ul><ul><ul><li>Utilisation d’un modèle de composants hiérarchique permettant le déploiement à grande échelle </li></ul></ul></ul><ul><li>Intergiciels </li></ul><ul><ul><li>Capacités de (re)configuration </li></ul></ul><ul><ul><li>Peu d’outils de déploiement =>Pas de déploiement à grande échelle </li></ul></ul>
    13. 13. Plan <ul><li>Etat de l’art </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><li>Déploiement dans les intergiciels </li></ul></ul><ul><li>Contribution </li></ul><ul><ul><li>Proposition d’un modèle de déploiement d’intergiciel </li></ul></ul><ul><ul><li>Mise en œuvre </li></ul></ul>
    14. 14. Proposition <ul><li>Objectif </li></ul><ul><ul><li>Proposer un outil de déploiement d’intergiciels </li></ul></ul><ul><li>Méthodologie </li></ul><ul><ul><li>S’inspirer des technologies mises en œuvre au niveau applicatif dans la plateforme ScalAgent </li></ul></ul><ul><ul><ul><li>Un modèle de composants hiérarchique </li></ul></ul></ul><ul><ul><ul><li>Un langage de description associé </li></ul></ul></ul><ul><ul><ul><li>Une application de déploiement </li></ul></ul></ul>
    15. 15. 1. Un modèle de composants hiérarchique (1) <ul><li>But </li></ul><ul><ul><li>Modéliser un intergiciel de façon simple et hiérarchique </li></ul></ul><ul><li>Le modèle </li></ul><ul><ul><li>Les composants </li></ul></ul><ul><ul><ul><li>La partie fonctionnelle </li></ul></ul></ul><ul><ul><ul><ul><li>Interfaces clientes et serveurs définies par un Identifiant, un rôle et une signature </li></ul></ul></ul></ul><ul><ul><ul><li>La partie contrôle </li></ul></ul></ul><ul><ul><ul><ul><li>Activation, … </li></ul></ul></ul></ul><ul><ul><li>Les composants primitifs </li></ul></ul><ul><ul><li>Les composants composites </li></ul></ul><ul><ul><li>Les connecteurs </li></ul></ul>
    16. 16. 1. Un modèle de composants hiérarchique (2) <ul><li>Exemple </li></ul>Interface d’activation Partie de contrôle Partie fonctionnelle Composant primitif Composant composite
    17. 17. 2. Langage de description d’architectures (1) <ul><li>But </li></ul><ul><ul><li>Décrire un intergiciel suivant le modèle de composants présenté </li></ul></ul><ul><li>L’ADL permet de décrire </li></ul><ul><ul><li>La partie fonctionnelle de l'intergiciel </li></ul></ul><ul><ul><ul><li>Les composants </li></ul></ul></ul><ul><ul><ul><li>Les interconnections </li></ul></ul></ul><ul><ul><li>La partie non fonctionnelle de l’intergiciel </li></ul></ul><ul><ul><ul><li>Positionnement des composants sur les sites </li></ul></ul></ul>
    18. 18. 2. Langage de description d’architectures (2) <ul><li><composite name=''Composite''> </li></ul><ul><li>*** Interfaces fonctionnelles *** </li></ul><ul><li><interface name='‘serveur''> </li></ul><ul><li><role>serveur< ole> </li></ul><ul><li><signature>./fr/primitif2/service1.java<signature> </li></ul><ul><li><caractere>obligatoire<caractere> </li></ul><ul><li><interface> </li></ul><ul><li>*** Composants encapsulés *** </li></ul><ul><li><importComponent description='‘primitif1''> </li></ul><ul><li><importComponent description='‘primitif2''> </li></ul><ul><li>*** Mise en oeuvre *** </li></ul><ul><li><instanciateComponent name=primitif1 deploymentsite=''zirconium.inrialpes.fr''> </li></ul><ul><li><instanciateComponent name=primitif2 deploymentsite='‘nickel.inrialpes.fr''> </li></ul><ul><li>*** Instanciation des fabriques de connecteurs *** </li></ul><ul><li><instanciateConnector name=''jms'' description=''JMS'' connectorfactory=''zirconium.inrialpes.fr''> </li></ul><ul><li>*** Liaisons avec connecteurs spécifiés *** </li></ul><ul><li><bind server='‘primitif2'' interface='‘serveur2'' client='‘primitif1'‘ interface='‘client‘ </li></ul><ul><li>connector=''jms''> </li></ul><ul><li><composite> </li></ul>1 2 serveur serveur1 client serveur2 jms
    19. 19. 3. Une application de déploiement asynchrone hiérarchique (1) <ul><li>But </li></ul><ul><ul><li>Utiliser la description de l’intergiciel pour procéder à son déploiement asynchrone et hiérarchique </li></ul></ul><ul><li>Déploiement </li></ul><ul><ul><li>Création, liaison et activation des différents composants </li></ul></ul><ul><ul><li>Respect de la logique fonctionnelle </li></ul></ul><ul><ul><ul><li>Un composant ne peut être lié que s’il a été créé auparavant </li></ul></ul></ul><ul><ul><ul><li>Un composant ne peut être activé que s’il a déjà été créé et que toutes ses interfaces clientes ont été liées </li></ul></ul></ul>
    20. 20. 3. Une application de déploiement asynchrone hiérarchique (2) <ul><li>Principe </li></ul><ul><ul><li>Utilisation de contrôleurs de déploiement hiérarchiquement organisés (un contrôleur par composant composite) </li></ul></ul><ul><li>Architecture d'un contrôleur de déploiement </li></ul><ul><ul><li>Un ensemble d’activités </li></ul></ul><ul><ul><ul><li>Instanciation </li></ul></ul></ul><ul><ul><ul><li>Liaison </li></ul></ul></ul><ul><ul><ul><li>Activation </li></ul></ul></ul><ul><ul><li>Un répertoire </li></ul></ul><ul><ul><ul><li>Stocke le résultat des opérations effectuées par les activités </li></ul></ul></ul><ul><ul><ul><li>Moyen de synchronisation entre activités </li></ul></ul></ul>
    21. 21. Plan <ul><li>Etat de l’art </li></ul><ul><ul><li>Déploiement dans les applications à composants </li></ul></ul><ul><ul><li>Déploiement dans les intergiciels </li></ul></ul><ul><li>Contribution </li></ul><ul><ul><li>Proposition d’un modèle de déploiement d’intergiciel </li></ul></ul><ul><ul><li>Mise en œuvre </li></ul></ul>
    22. 22. Mise en œuvre (1) <ul><li>Les activités et le répertoire suivent un modèle événement=>réaction </li></ul><ul><li>Utilisation de l’intergiciel AAA </li></ul><ul><ul><li>Modèle de programmation distribué à base d’agents qui envoient et réagissent à des notifications </li></ul></ul><ul><ul><li>asynchrone </li></ul></ul><ul><li>5 types d’agents </li></ul><ul><ul><li>Les activités: </li></ul></ul><ul><ul><ul><li>agent création </li></ul></ul></ul><ul><ul><ul><ul><li>Crée un composant et met à jour le répertoire; </li></ul></ul></ul></ul><ul><ul><ul><li>agent liaison </li></ul></ul></ul><ul><ul><ul><ul><li>Crée une liaison et met à jour le répertoire; </li></ul></ul></ul></ul><ul><ul><ul><li>agent activation </li></ul></ul></ul><ul><ul><ul><ul><li>Active un composant et met à jour le répertoire. </li></ul></ul></ul></ul>
    23. 23. Mise en œuvre (2) <ul><ul><li>Types d’agents (suite) </li></ul></ul><ul><ul><ul><li>Les agents du contrôleur </li></ul></ul></ul><ul><ul><ul><ul><li>agent contrôleur </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Met en place les activités et le répertoire du contrôleur; </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>agent répertoire </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Tient à jour la liste des opérations effectuées et envoie des notifications aux agents concernés après une mise à jour. </li></ul></ul></ul></ul></ul>
    24. 24. Conclusion (1) <ul><li>Evaluation du travail </li></ul><ul><ul><li>Un processus de déploiement d'intergiciel, afin de combler un manque des intergiciels existants. </li></ul></ul><ul><ul><li>contrôle décentralisé du déploiement: l'application de déploiement est hiérarchisée en accord avec la structure de l'intergiciel à déployer. </li></ul></ul><ul><ul><li>Environnement de déploiement hétérogène: modélisation de façon simple. </li></ul></ul><ul><ul><li>L'exécution parallèle des différentes activités de l'application garantit une activation au plus tôt de l'ensemble des composants déployés. </li></ul></ul>
    25. 25. Conclusion (2) <ul><li>Perspectives </li></ul><ul><ul><li>Rendre l'application de déploiement tolérante aux fautes. </li></ul></ul><ul><ul><li>Prendre en compte les intergiciels déjà installés </li></ul></ul><ul><ul><li>Etendre la description d'architectures </li></ul></ul>

    ×