1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien...

25
1 Déploiement de Déploiement de systèmes SCA systèmes SCA distribués distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA [email protected] 4 avril 2007

Transcript of 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien...

Page 1: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

1

Déploiement de Déploiement de systèmes SCA systèmes SCA distribuésdistribués

Damien FournierProjet SCOrWare / Équipe ADAM - [email protected]

4 avril 2007

Page 2: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

2

PrésentationPrésentation

1.1. SCA - Service Component ArchitectureSCA - Service Component Architecture

2.2. FDF - Fractal Deployment FrameworkFDF - Fractal Deployment Framework1. Langage pour le déploiement

2. Personnalités

3. Composants primitifs

3.3. Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués1. Prérequis

2. Personnalité Tuscany

3. Déploiement

4. Limites

4.4. Conclusion & PerspectiveConclusion & Perspective

Page 3: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

3

PrésentationPrésentation

1.1. SCA - Service Component ArchitectureSCA - Service Component Architecture

2.2. FDF - Fractal Deployment FrameworkFDF - Fractal Deployment Framework1. Langage pour le déploiement

2. Personnalités

3. Composants primitifs

3.3. Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués1. Prérequis

2. Personnalité Tuscany

3. Déploiement

4. Limites

4.4. Conclusion & PerspectiveConclusion & Perspective

Page 4: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

4

SCASCA - Introduction

ObjectifsObjectifs

• Modèle pour assemblage de Services fortement et faiblement couplés

• Support préoccupations non fonctionnelles par l’infrastructure (sécurité, transaction)

Consortium industriel :

IBM, Sun, IONA, SAP, Oracle, Red Hat,Siemens, …

Page 5: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

5

SCASCA – Particularité

Descripteur SCDL :• Assemblage mixe vue à gros / fin grain

– Composants implémentent logique métier

– Services exposés par l’assemblage

– Propriétés de l’assemblage et des composants

• Conteneur d’implémentation

• Bindings et protocoles

Damien Fournier
La notion de service est une vue à gros grains, alors que la notion de composant est une vue à petit grain
Page 6: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

6

SCASCA - LimitesLimites

1 composite SCA = assemblage à grain fin / fortement couplé

1 archive contenant 1..n descripteurs SCDL + implémentations

1 système SCA = assemblage à gros grain

liaisons entre plusieurs composites SCA répartis sur le réseau

Composite A

protocole

binding

Composite B

binding

Page 7: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

7

SCASCA - LimitesLimites

• Quid description / déploiement d’un système SCA complet ?• Quid infrastructure sous-jacente à chaque composite

– Quelle machine du réseau ?

– Quel conteneur SCA ?

– Tomcat ou Standalone Tuscany Runtime

• Configurabilité de chaque composite

– propriétés et bindings entre composites

Composite A

protocole

binding

Composite B

binding

Page 8: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

8

SCASCA - LimitesLimitesComposite A

protocole

binding

Composite B

binding

Conteneur A ?

Machine A ?

Conteneur B ?

Serveur App. B ?

Machine B ?

Page 9: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

9

PrésentationPrésentation

1.1. SCA - Service Component ArchitectureSCA - Service Component Architecture

2.2. FDF - Fractal Deployment FrameworkFDF - Fractal Deployment Framework1. Langage pour le déploiement

2. Personnalités

3. Composants primitifs

3.3. Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués1. Prérequis

2. Personnalité Tuscany

3. Déploiement

4. Limites

4.4. Conclusion & PerspectiveConclusion & Perspective

Page 10: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

10

FDFFDF - Introduction

• Framework générique pour le déploiement de systèmes• Déploiement de différentes couches logicielles avec résolution des

dépendances• Gestion du déploiement de systèmes distribués et/ou hétérogènes

• 1 langage spécifique au domaine du déploiement• Description de systèmes par administrateurs• Programmation de personnalités encapsulant les détails du déploiement

• 1 bibliothèque de composants primitifs encapsulant mécanismes bas niveau de déploiement

• protocoles de transfert, de contrôle à distance, shells, etc.

• 1 interface graphique pour visualiser la configuration du système et déployer les logiciels sélectionnés

• Basé sur le modèle à composants Fractal

Page 11: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

11

FDFFDF - Langage de déploiement

• Fournit un langage haut niveau pour le déploiement

• Description de systèmes par les administrateurs• Déclaration de l’infrastructure système / les machines / les protocoles

• Déclaration des logiciels à déployer

• Notion de personnalité logiciel• Programmation / scriptage des procédures de déploiement

– Installation, configuration, démarrage, arrêt, déinstallation

• Spécifique à chaque logiciel

Page 12: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

12

FDFFDF - Déclaration du système

Hosts = INTERNET.NETWORK { horse = INTERNET.HOST { hostname = INTERNET.HOSTNAME(horse); user = INTERNET.USER(dfournie,,/home/dfournie/.ssh/id_rsa.pub); transfer = TRANSFER.SCP; protocol = PROTOCOL.OpenSSH; shell = SHELL.SH; } }

Page 13: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

13

FDFFDF - Déclaration du système

Hosts = INTERNET.NETWORK { horse = INTERNET.HOST { hostname = INTERNET.HOSTNAME(horse); user = INTERNET.USER(dfournie,,/home/dfournie/.ssh/id_rsa.pub); transfer = TRANSFER.SCP; protocol = PROTOCOL.OpenSSH; shell = SHELL.SH; software { java = JAVA.JRE { archive = JAVA.ARCHIVE(/media/sda5/fdf/lib/jdk-1.5.tgz); home = JAVA.HOME(/home/dfournie/fdf/jdk1.5.0_09); } } }

}

Page 14: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

14

FDFFDF - Déclaration des logiciels

Tomcat-Servers { tomcat-horse = TOMCAT.SERVER { archive =

TOMCAT.ARCHIVE(/media/sda5/fdf/lib/apache-tomcat-5.5.23.tar.gz); home = TOMCAT.HOME(/home/dfournie/fdf/apache-tomcat-5.5.23); host = Hosts/horse; properties { http-port = HTTP.PORT(8080); http-user = HTTP.USER(admin); http-password = HTTP.PASSWORD(null); } }

}

Servlets { sca-print-ws = TOMCAT.WAR.COMPONENT { archive = TOMCAT.WAR.ARCHIVE(/media/sda5/fdf/lib/print-ws.war); name = TOMCAT.WAR.NAME(print-ws); tomcat = Tomcat-Servers/tomcat-horse; }

}

Page 15: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

15

FDFFDF - Personnalités

• Composant réifiant un logiciel à déployer

• Hérite du composite Software fourni par le framework

• De nombreuses personnalités existantes : Ant, J2EE, JOnAS, JAVA, Apache Tomcat, etc.

Damien Fournier
Fournit les méthodes élémentaires install(), configure(), start(), stop(),uninstall(), getStatus()pour déployer le logiciel.Gérer en interne par un automate à trois états (UNINSTALLED, INSTALLED,STARTED)
Page 16: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

16

FDFFDF - Composants primitifs

• Ensemble de composants exécutables ou bas niveau

• Composants exécutables fournissent les « fonctionnalités de  bases » pour l’upload/download, exécution de commandes dans le shell, …

• Composants bas niveau représentent de manière abstraite les mécanismes d’accès aux machines hôtes

Page 17: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

17

PrésentationPrésentation

1.1. SCA - Service Component ArchitectureSCA - Service Component Architecture

2.2. FDF - Fractal Deployment FrameworkFDF - Fractal Deployment Framework1. Langage pour le déploiement

2. Personnalités

3. Composants primitifs

3.3. Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués1. Prérequis

2. Personnalité Tuscany

3. Déploiement

4. Limites

4.4. Conclusion & PerspectiveConclusion & Perspective

Page 18: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

18

Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués

Utilisation de FDF pour déployer un système SCA

Pré requis : JAVA, Tomcat (Web Service), Runtime Standalone Tuscany

Client WS

SOAP

HTTP

Serveur WS

HTTP

TuscanyStandalone

Runtime

Horse

Tuscany WebContainer

Tomcat

Omega

Page 19: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

19

Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués Personnalité Tuscany - UtilisationPersonnalité Tuscany - Utilisation

Description du Runtime SCAtuscany-sca-horse = TUSCANY-SCA.SOFTWARE { archive = TUSCANY-SCA.ARCHIVE(/media/sda5/fdf/lib/tuscany-sca-1.0-incubator-M2-bin.tgz); home = TUSCANY-SCA.HOME(/home/dfournie/fdf/tuscany-sca-1.0-incubator-M2-bin); host = Hosts/horse;}

Description du clientsca_client = TUSCANY-SCA.MODULE(/media/sda5/fdf/lib/sample-converter.jar,WS) { tuscany-sca = /tuscany-sca-horse; dependencies { start-when-install { Servlets/sca-print-ws; Servlets/sca-converter-ws; /tuscany-sca-horse; } }}

Page 20: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

20

Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués Personnalité Tuscany - RuntimePersonnalité Tuscany - Runtime

TUSCANY-SCA.SOFTWARE = software.Installable(tuscany-sca,TUSCANY SCA), JAVA.DependOn(tuscany-sca), software.Hosting(tuscany-sca)

{

# archive is required. archive = TUSCANY-SCA.ARCHIVE(UNDEFINED);

# home is required. home = TUSCANY-SCA.HOME(UNDEFINED);

tuscany-sca-applications =

TUSCANY-SCA.HOME(#[home]/applications,Applications);

# The 'configure' procedure. configure { SHELL.MakeDirectory(#[tuscany-sca-applications]); } # The 'start' procedure. start { } # The 'stop' procedure. stop { }}

Page 21: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

21

Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribués Personnalité Tuscany – StandalonePersonnalité Tuscany – Standalone

TUSCANY-SCA.MODULE-SERVER(archive)= software.Hosted(module-sca,TUSCANY SCA ${execution-mode} Module (#[archive-filename]),tuscany-sca)

{ archive = TUSCANY-SCA.ARCHIVE(${archive},${execution-mode} Module); # The 'install' procedure. install { TRANSFER.Upload(#[archive],#[tuscany-sca-applications]/#[archive-filename]); }

# The ‘start' procedure. start { . . . }

# The ‘stop' procedure. stop { . . . }

# The 'uninstall' procedure. uninstall { SHELL.RemoveFile(#[tuscany-sca-applications]/#[archive-filename]); }}

Page 22: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

22

Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Vue globale du systèmeVue globale du système

Visualisation :Visualisation :

• Dépendances

• Etat des composants logiciels

Interaction :Interaction :

•Installation, exécution, désinstallation avec résolution des dépendances

Page 23: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

23

Déploiement de systèmes SCA distribuésDéploiement de systèmes SCA distribuésLimitations

• Personnalité Tuscany permet uniquement le déploiement des composants nécessaires à l’exécution

• La configuration de l’application est imposée par l’architecte logiciel• URL et Ports sont fixés par descripteurs WSDL

• Protocoles et Binding fixés par descripteurs SCDL

→ La configuration d’une application SCA impose à l’administrateur système d’éditer les descripteurs

Page 24: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

24

Conclusion & PerspectivesConclusion & Perspectives

• L’introduction de la personnalité Tuscany permet l’installation et la gestion d’un système SCA et des composants logiciels dont il dépend de manière automatique

• L’application ne peut être configuré (pourtant permis par le modèle SCA et l’outil FDF)

• Pistes :

La configuration d’une application SCA dépend uniquement des descripteurs

→ Besoin de manipuler l’archive

→ Transformation de documents XML

Page 25: 1 Déploiement de systèmes SCA distribués Déploiement de systèmes SCA distribués Damien Fournier Projet SCOrWare / Équipe ADAM - INRIA damien.fournier@inria.fr.

25

RéférencesRéférencesFDF source - http://gforge.inria.fr/projects/fdf

SCA Spec - http://www.osoa.org

Tuscany SCA - http://cwiki.apache.org/TUSCANY/