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

Post on 04-Apr-2015

112 views 1 download

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

1

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

Damien FournierProjet SCOrWare / Équipe ADAM - INRIAdamien.fournier@inria.fr

4 avril 2007

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

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

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, …

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

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

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

8

SCASCA - LimitesLimitesComposite A

protocole

binding

Composite B

binding

Conteneur A ?

Machine A ?

Conteneur B ?

Serveur App. B ?

Machine B ?

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

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

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

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; } }

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); } } }

}

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; }

}

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)

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

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

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

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; } }}

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 { }}

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]); }}

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

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

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

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/