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

Dea Presentation 2eme Version

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

Notes de l'éditeur

  • #3 Evolutions : - développement d’Internet - multiplication des équipements communicants à forte puissance de calcul (PDA, …)
  • #6 Propriétés : - persistance - protection - duplication Contraintes : - sécurité - placement - implémentation
  • #7 Configuration : - un assemblage particulier de composants via des connecteurs. Génération d’un exécutable = Olan, Unicon Modélisation = Wright, Rapide
  • #8 Dédiée à la construction d’applications asynchrones
  • #11 Le langage d&amp;apos;interconnexion Pour décrire : les interfaces des composants logiciels, une application en termes d&amp;apos;interconnexions d&amp;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&amp;apos;exécution d&amp;apos;une application distribuée représentée par un ensemble de composants logiciels. Déploiement les prémices d&amp;apos;un outil de déploiement (détermination de l&amp;apos;ensemble des composants intergiciels nécessaires)
  • #15 un modèle de composants hiérarchique (décrire l&amp;apos;architecture d&amp;apos;un intergiciel en terme d&amp;apos;entités réparties, hiérarchiquement organisées)
  • #16 Simplicité : pouvoir décrire de nombreux types d’intergiciels Hiérarchique : faciliter le déploiement
  • #20 Activités de création: création d’un composant Suivant le type du composant: composite =&amp;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&amp;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