SCA Tuscany 04012007 - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

SCA Tuscany 04012007

Description:

Protocole de transport quelconque (SOAP - xml) Contrats sur les interactions entre ... Assemblage d' l ments basiques. R utilisabilit , Evolutivit . Contrat ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 43
Provided by: Guil191
Category:

less

Transcript and Presenter's Notes

Title: SCA Tuscany 04012007


1
SCA - Tuscany04/01/2007
2
Agenda
  • SCA
  • Services
  • WebServices
  • Composants
  • Présentation SCA
  • Tuscany
  • Exemple dapplication
  • Développer avec Tuscany

3
SCA
  • Service Component Architecture
  • Spécifié par IBM, BEA, Oracle (nov. 2005)
  • Structurer et Composer de les Services (SOA)
  • Réifier la notion de service
  • Décrire les dépendances et interactions de
    services

4
Services
  • Dans notre cadre
  • Interaction entre deux machines (B to B)
  • Echange de données
  • Propriétés souhaitées
  • Interopérabilité
  • Description, contractualisation

5
WebServices
  • WebServices
  • Accès à distance de services
  • Protocole de communication quelconque (HTTP)
  • Protocole de transport quelconque (SOAP - xml)
  • Contrats sur les interactions entre clients /
    serveur (WSDL)
  • Faiblement dépendant, évolution facile

6
Composants
  • Assemblage déléments basiques
  • Réutilisabilité, Evolutivité
  • Contrat sur les services fournis et requis
  • Formalisme, Fiabilité, Responsabilités
  • Services non fonctionnels fournis par
    lenvironnement
  • Séparation des préoccupations
  • Description darchitecture
  • Vue globale de la solution
  • EJB, COM, Fractal, CCM , SCA

7
Service Component Architecture
  • Composant SCA

Component
Service
Reference
  • Service et Reference définies par
  • Java Interface
  • WSDL ...
  • Composants implémentés
  • JAVA, BPEL, JavaScript, C

8
Service Component Architecture
  • Organisation en modules

Module
ComponentA
ComponentB
EntryPoint
Extern.service
Wire
9
Service Component Architecture
  • Deux niveaux de composition
  • Composition de composants à petits grains
  • Composition de modules à gros grains
  • Liaisons entre les modules
  • WebServices (SOAP)
  • SCA link (appels locaux)
  • RMI
  • Extensible Bindings
  • par exemple JMS, JCA, SLSB,serialization
    adhoc

10
Service Component Architecture
  • Vue générale de SCA

11
Service Component Architecture
  • Description de larchitecture SCDL (Service
    Component Definition Language)
  • fichier XML définissant larchitecture
  • Un fichier .module par module
  • Des fichiers .subsystem optionnels
  • Annotation de composant (propriétés
    dassemblage)
  • .componentType file
  • JAVA 5 annotations

12
Agenda
  • SCA
  • Tuscany
  • Projet et sous-projets
  • SCA, SDO, DAS
  • Récursivité de Tuscany-SCA, Perspectives
  • Exemple dapplication
  • Développer avec Tuscany

13
Tuscany
  • Groupe de travail gérant les sous-projets
  • Tuscany SCA
  • Tuscany SDO
  • Tuscany DAS
  • Indépendance relative des sous-projets

14
Tuscany SCA
  • Le projet Tuscany SCA
  • Implémentation (de référence) de SCA
  • Open source
  • Licence Apache
  • Environnement dexécution JAVA ou C
  • (Milestone 1 sortie le 07/06/2006)
  • (Milestone 2 - java sortie le 22/12/2006)
  • http//incubator.apache.org/tuscany
  • Intégration  agile  dans les S.I. existant

15
Tuscany
  • Service Data Object (SDO)
  • Abstraction des sources de données
  • Data Access Service (DAS)
  • Service daccès RDB
  • Transformation SDO

16
Tuscany SDO
  • SDO
  • Abstraction de manipulation de données
  • Représentation en graphe
  • Historique des changements

Mode déconnecté disponible
17
Tuscany SDO
  • SDO diagramme UML

18
Tuscany SDO
  • Lien avec les données

19
Tuscany DAS
  • Mediator Service pour les RDB

DAS
20
Solution générale
Tuscany SCA
SDO
DAS
Tuscany SDO
Tuscany DAS
21
Tuscany SCA
  • Une architecture extensible
  • Implémentation des composants (java, javascript
    )
  • Protocole de communication (http, smtp )
  • Protocole de transport (soap )
  • Manipulation des données (SDO )
  • Autres services non-fonctionnels pour
    lapplication
  • se définissant elle-même
  • Tuscany modèle SCA décrit en SCDL
  • http//wiki.apache.org/ws/Tuscany/TuscanyJava/Exte
    nding

22
Tuscany SCA
23
Architecture SCA dynamique
  • Des perspectives intéressantes
  • Vers une architecture ubiquitaire et hautement
    reconfigurable.
  • Dériver une personnalité  SCA  de Fractal
  • Description hétérogène du modèle
  • Déploiement de la solution FDF ?

24
Agenda
  • SCA
  • Tuscany
  • Exemple dapplication
  • Calculatrice
  • Evolution de calculatrice
  • Développer avec Tuscany

25
Exemple de calculatrice
Existant
Objectif
-
/

x
26
Exemple de calculatrice
AddServiceComponent
SubstractServiceComponent
MultiplyServiceComponent
DivideServiceComponent
27
Exemple de calculatrice
CalculatorServiceComponent
28
Exemple de calculatrice
AddServiceComponent
SubstractServiceComponent
CalculatorServiceComponent
MultiplyServiceComponent
DivideServiceComponent
29
Exemple de calculatrice
CalculatorServiceComponent
  • public class CalculatorServiceImpl implements
    CalculatorService
  • private AddService addService
  • private SubtractService subtractService
  • private MultiplyService multiplyService
  • private DivideService divideService
  • _at_Reference
  • public void setAddService(AddService
    addService)
  • this.addService addService
  • / . . . /
  • public double divide(double n1, double n2)
  • return divideService.divide(n1, n2)
  • public double multiply(double n1, double n2)
  • return multiplyService.multiply(n1, n2)

30
Exemple de calculatrice
  • Décrire larchitecture

ltcomposite xmlns"http//www.osoa.org/xmlns/sca/1.
0" name"CalculatorComposite"gt ltservice
name"CalculatorService"gt ltinterface.java
interface"calculator.CalculatorService"/gt
ltreferencegtCalculatorServiceComponentlt/referencegt
lt/servicegt ltcomponent
name"CalculatorServiceComponent"gt
ltimplementation.java class"calculator.CalculatorS
erviceImpl"/gt ltreference
name"addService"gtAddServiceComponentlt/referencegt
ltreference name"subtractService"gtSubtract
ServiceComponentlt/referencegt ltreference
name"multiplyService"gtMultiplyServiceComponentlt/r
eferencegt ltreference name"divideService"gt
DivideServiceComponentlt/referencegt
lt/componentgt ltcomponent name"AddServiceCompo
nent"gt ltimplementation.java
class"calculator.AddServiceImpl"/gt
lt/componentgt ltcomponent name"SubtractService
Component"gt ltimplementation.java
class"calculator.SubtractServiceImpl"/gt
lt/componentgt lt!- a completer
--gt lt/compositegt
31
Exemple de calculatrice
AddServiceComponent
calculator.AddServiceImpl
SubstractServiceComponent
CalculatorServiceComponent
addService
subtractService
calculator.SubtractServiceImpl
CalculatorService
multiplyService
MultiplyServiceComponent
divideService
calculator.CalculatorServiceImpl
DivideServiceComponent
32
Exemple de calculatrice
  • Exemple de client de test

public class CalculatorClient public static
void main(String args) throws Exception
CompositeContext context CurrentCompositeConte
xt.getContext() CalculatorService
calculatorService
context.locateService(CalculatorService.class,
"CalculatorServiceComponent") //
Calculate System.out.println("3 2 "
calculatorService.add(3, 2))
System.out.println("3 2 " calculatorService.s
ubtract(3, 2)) System.out.println("3 2
" calculatorService.multiply(3, 2))
System.out.println("3 / 2 " calculatorService.d
ivide(3, 2))
33
Evolution de calculatrice
AddServiceComponent
Java
SubstractServiceComponent
Ruby
CalculatorServiceComponent
WS
MultiplyServiceComponent
javascript
RMI
DivideServiceComponent
Java
34
Evolution de calculatrice
  • Modification du SCDL

. . . ltreference name"CalculatorRmiService"gt
ltinterface.java interface"calculator.Calc
ulatorService"/gt ltrmibinding.rmi
host"localhost" port"9999" serviceName"rmiCalcu
lator"/gt lt/referencegt ltcomponent
name"SubtractServiceComponent"gt
ltrbimplementation.rb script"SubtractImpl.rb"
class"SubtractImpl"/gt lt/componentgt . . .
35
Agenda
  • SCA
  • Tuscany
  • Exemple dapplication
  • Développer avec Tuscany

36
Développer avec Tuscany
  • Installation des sources et exempleshttp//incu
    bator.apache.org/tuscany/sca_downloads.html
  • Disponible en sources ou en binaires
  • Disponible pour Windows ou Linux
  • Disponible en C ou JAVA
  • Installation dun JDK 1.5.xx
  • Installation de Maven 2.0.4
  • Intégration dans éclipse
  • Quelques exemples

37
Installation Maven 2.0.4
  • Building this distribution requires a Maven 2.0.4
    which can be downloaded from
  • http//maven.apache.org/download.html
  • Installing Maven 2 ()
  • The following instructions show how to
    install Maven 2
  • 1) Unpack the archive where you would like to
    store the binaries, eg
  • tar zxvf maven-2.0.tar.gz
  • or
  • unzip maven-2.0.zip
  • 2) A directory called "maven-2.0" will be
    created.
  • 3) Add the bin directory to your PATH, eg
  • export PATH/usr/local/maven-2.0/binPATH
  • or
  • set PATH"c\program files\maven-2.0\bin"P
    ATH

38
Jouer avec les exemples
  • Tuscany SCA, exemples disponibles
  • BigBank Scenario Sample
  • BigBank Account Module
  • BigBank Web Client Module
  • Calculator Sample
  • Calculator Combo Sample
  • Calculator RMI Service Sample
  • HelloWorld Web Service Async Client Sample
  • JavaScript Helloworld Sample
  • RMI Reference Helloworld Sample
  • RMI Service Helloworld Sample
  • Ruby helloworld Sample
  • HelloWorld Web Service Client Sample
  • HelloWorld Web Service Async Client Sample
  • Inner Composite Sample
  • Simple Callback Sample
  • Supply Chain Sample
  • Calculator Web Service Sample

39
Compile Tuscany
  • Build Tuscany binaries ()
  • You should have a good computer (memory and
    cpu) to compile, and at least
  • a DSL connexion cause 80Mo of dependencies are
    needed ...
  • run mvn on tuscany sources directory. (twice if
    an error occurs)
  • (download dependencies, build binaries, launch
    tests)
  • Take a coffee, This can be quite long ...
  • (15 minutes with a really good connexion and a
    good CPU)
  • if ( random() SUCCEED ) ... // stupid joke

40
Importation dans Eclipse
  • Configure the Eclipse IDE for Tuscany ()
  • 1) Define a classpath variable "M2_REPO" so
    that Eclipse can know the path
  • to the local maven repository.
  • Execute the following command
  • gt mvn -Declipse.workspaceltpath-eclipse-worksp
    acegt eclipseadd-maven-repo
  • (ex mvn -Declipse.workspacec\workspace_tusc
    any eclipseadd-maven-repo )
  • 2) Generate Eclipse configuration files
  • gt mvn -Peclipse eclipseeclipse
  • For more details about the maven eclipse
    plugin, please refer to the
  • following links
  • WWW http//maven.apache.org/guides/mini/guid
    e-ide-eclipse.html
  • WWW http//maven.apache.org/plugins/maven-ec
    lipse-plugin/.
  • 3) Load Tuscany projects into Eclipse
  • You can import the project into your eclipse
    workspace (From the menu bar,
  • select File gtImport gtExisting Projects into
    Workspace). Set the "root

41
Vue dans Eclipse
42
  • Des questions ?
  • Tuscany SCA
  • http//incubator.apache.org/tuscany
  • tuscany-user_at_ws.apache.org ou tuscany-dev_at_ws.apac
    he.org
  • Guillaume.Dufrene_at_lifl.fr
Write a Comment
User Comments (0)
About PowerShow.com