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
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
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.
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/
Top Related