Designing and Deploying an SCA system architecture using DeployWare (FDF) Online Store Demo
description
Transcript of Designing and Deploying an SCA system architecture using DeployWare (FDF) Online Store Demo
1
Designing and Deploying Designing and Deploying an SCA system architecture an SCA system architecture using DeployWare (FDF)using DeployWare (FDF)
Online Store DemoOnline Store Demo
Damien Fournier, Philippe Merle INRIA ADAM team / SCOrWare Project
SCOrWare Project Review – Paris, January 25, 2008SCOrWare Project Review – Paris, January 25, 2008
2
SCA and System architecture definition
Service Component Architecture specification :• Component model.
• Components can be implemented in different programming languages and accessed through several communication protocols.
• Focus on software architecture.
An SCA application is specific to a system architecture.(implied by bindings)
How to define the system architecture for an SCA application ?
3
System architecture using DeployWare
DeployWare
• Framework for deployment of any kind of software on distributed and heterogeneous systems.
• Provide language to describe system architecture
• Provide software personalities.
• Extensible.
Extend DeployWare in order to allow deployment of SCA systems
4
SCA using DeployWare
SCA personalities in DeployWare allow :
• To specify hosts when deploying SCA runtimes
• To specify runtimes when deploying SCA applications
• To configure SCA applications bindings and properties during deployment
5
The Store exampleinspired by Tuscany
A sample CD store, using a Web server, an application server and a database
Store
Converter
Catalog
Tomcat
Application
Platform
Network
6
The Store exampleinspired by Tuscany
Define hosts configuration
host1 = INTERNET.HOST { hostname = INTERNET.HOSTNAME(host1); user = INTERNET.USER(login,[password],[privateKey]); transfer = TRANSFER.JSCP; protocol = PROTOCOL.OpenSSH; shell = SHELL.SH; software { java = JAVA.JRE { archive = JAVA.ARCHIVE(Archive_File_URI); home = JAVA.HOME(Java_Home_URI); } }}
7
The Store exampleinspired by Tuscany
Define platforms
tuscany-sca-host2 = TUSCANY.RUNTIME { archive = TUSCANY.ARCHIVE(Archive_File_URI); home = TUSCANY.HOME(Tuscany_Home_URI); host = Hosts/host2;
}
tomcat-host1 = TOMCAT.SERVER { archive = TOMCAT.ARCHIVE(Archive_File_URI); home = TOMCAT.HOME(Tomcat_Home_URI); host = Hosts/host1;
properties { http-port = HTTP.PORT(Tomcat_Server_Port); http-user = HTTP.USER(Tomcat_User_Name); http-password = HTTP.PASSWORD(Tomcat_User_Password); }}
8
The Store exampleinspired by Tuscany
Define Applications
store-converter = TUSCANY.PACKAGE(launch.Launch,demo-store-converter) { runtime = /tuscany-sca-lowrider; archive = TUSCANY.ARCHIVE(/Archives/demo-store-converter.jar);
sca-setting { service-converter = SCA.SERVICE(CurrencyConverter) { wsdl = SCA.BINDING.WSDL(http://lowrider.local:8250); converter = SCA.BINDING.WS(http://converter#wsdl.port (CurrencyConverter/CurrencyConverterSOAPPort)); } }}
Converter
9
The Store exampleinspired by Tuscany
Define Applications
store-catalog = TUSCANY.PACKAGE(launch.Launch,demo-store-catalog) { runtime = /tuscany-sca-lowrider; archive = TUSCANY.ARCHIVE(/home/dfournie/Archives/demo-store-catalog.jar); sca-setting { service-catalog = SCA.SERVICE(Catalog) { catalog = TUSCANY.BINDING.RMI(lowrider.local,4500,catalog); } data = SCA.PROPERTY(databaseUrl,jdbc:mysql://horse.local:7090/store); }
dependencies { start-when-install { /query; } }}
Catalog
10
The Store exampleinspired by Tuscany
Define Applicationsservlet-1 = TUSCANY.WAR { archive = TOMCAT.WAR.ARCHIVE(/home/dfournie/Archives/store.war); name = TOMCAT.WAR.NAME(store); tomcat = /tomcat-hoeve; sca-setting { reference-converter = SCA.REFERENCE(CurrencyConverter) { wsdl = /store-converter/sca-setting/service-converter; converter = /store-converter/sca-setting/service-converter; } reference-catalog = SCA.REFERENCE(Catalog) { catalog = /store-catalog/sca-setting/service-catalog; } } dependencies { start-when-install { /store-catalog; /store-converter; } }}
Store
11
ContactContactINRIA ADAM TeamINRIA ADAM Team
Damien Fournier – INRIA Expert EngineerDamien Fournier – INRIA Expert [email protected]
Philippe Merle – INRIA Research ScientistPhilippe Merle – INRIA Research [email protected]
DeployWare teamDeployWare [email protected]