Académique Documents
Professionnel Documents
Culture Documents
Zenika
Conseil / Dveloppement / Formation Localisation : Paris et Rennes Nos partenaires
Mon exprience
Consultant JEE/SOA depuis 8 ans Spring / GWT / Flex ... BPEL / WS / ESB / EIP...
Zenika 2009 BPEL Orchestration de Web Services 2
Sommaire
Zenika 2009
SOA
Zenika 2009
SOA : pourquoi ?
L'entreprise doit s'adapter continuellement L'entreprise est de plus en plus dpendante des technologies le SI peut devenir un frein C'est pas notre faute, c'est un problme informatique...
Acteurs mtiers
Zenika 2009
SOA : principes
Simplicit Efficacit Communication mtier/technique Flexibilit et maintenabilit Prennit des systmes Rutilisabilit Rduction des anomalies Gain de productivit Indpendance vis vis des technologies S'appuyer sur les standards et les bonnes pratiques
Zenika 2009
SOA : comment ?
Dfinition
dsigne un type d'architecture fournissant un ensemble de services localisables, des applications clientes ou d'autres services distribus sur un rseau, via des interfaces publies
SOA : volution du SI
Service = Contrat
Fonctionnalits mtier Performances ; Robustesse ...
Zenika 2009
Zenika 2009
Web Services
Zenika 2009
10
WSDL
Dcrit
Reli
SOAP
Zenika 2009
11
SOAP
Couche message
Bas sur XML Indpendant de la couche transport Normalis par W3C
WS-* (WS-STAR)
Extensions de SOAP : WS-Addressing ; WS-Security ; WS-Reliability ; ...
Zenika 2009
12
SOAP : format
Enveloppe Entte Corps
<soapenv:Envelope...> <soapenv:Header> <add:MessageID>132465789</add:MessageID> </soapenv:Header> <soapenv:Body> <ns:Requete> <ns:ELEMENT> <ns:action>CREATION</ns:action> <ns:id>123</ns:id> </ns:ELEMENT> </ns:Requete> </soapenv:Body> </soapenv:Envelope>
Zenika 2009
13
WSDL
Zenika 2009
14
WSDL : Format
Dfinitions types messages oprations protocole
<definitions name="exemple" ...> <types> <schema> <import namespace="http://zenika.com" schemaLocation="exemple.xsd"/> </schema> </types> <message name="exempleRequestMessage"> <part name="payload" element="tns:exempleProcessRequest"/> </message> <message name="exempleResponseMessage"> <part name="payload" element="tns:exempleProcessResponse"/> </message> <portType name="exemple"> <operation name="process"> <input message="tns:exempleRequestMessage"/> <output message="tns:exempleResponseMessage"/> </operation> </portType> <binding name="exempleBinding" type="tns:exemple"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="process"> <soap:operation style="document" soapAction="process"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="exemple"> <port name="exemplePort" binding="tns:exempleBinding"> <soap:address location="http://localhost:8080/exemple/1.0"/> </port> </service> </definitions>
adresse
Zenika 2009
15
BPEL
Zenika 2009
16
BPEL
Zenika 2009
17
Langage
Description de Business Processes Interactions avec des Web Services crit en XML
Zenika 2009
18
Business Process
Requte / Rponse Modle de donnes Activits et tches Sous-processus / Services
Zenika 2009
19
Zenika 2009
20
Processus BPEL
WSDL Types Messages Oprations / PortTypes
BPEL
PartnerLinks Variables Activits
Zenika 2009
21
Zenika 2009
22
Oracle BPEL
JDeveloper BPEL Designer
BPEL
BPEL Process Manager Integrated BPM Services WSDL Binding Web services Workflow
Decision Service
Sensors
Java, JMS
File, FTP
Zenika 2009
MANAGE
23
Zenika 2009
24
Dmonstration
Dmonstration n1
Orchestration de 2 processus BPEL Cration dun processus BPEL parent Dploiement Simulation sur Oracle BPEL PM 10.1.3.1
Zenika 2009
25
Le langage BPEL est compos dun nombre restreint de briques logicielles (activits BPEL) qui permettent :
De communiquer avec des web services De manipuler des donnes XML De grer des exceptions De grer la compensation (ie. rollback)
Zenika 2009
26
Assign
Scope
Flow
Zenika 2009 BPEL Orchestration de Web Services 27
Description
Fournit n branches. Chacune de ces branches est associe une expression boolenne. La premire branche (de gauche droite) dont la condition est vraie est excute. Il est possible de fournir une branche otherwise qui est lance si aucune des autres branches nest valide. Effectue un traitement tant que la condition associe nest pas respecte.
Switch
While
Zenika 2009
28
Throw
Catch
Rcupre au sein dun scope les exceptions dun type donn et permet dy associer un traitement spcifique.
Permet de rcuprer lensemble des exceptions non rcupres par des catchs simples.
29
Pick
Zenika 2009
30
Processus synchrone
attente active (appel bloquant) de la rponse traitements courts (quelques secondes) sortie = message ou exception
Processus asynchrone
pas dattente active (appel non bloquant) dune ventuelle rponse traitements longs sortie = message
Zenika 2009
31
Dmonstration
Dmonstration n2
Cration de 2 processus BPEL
Synchrone Asynchrone avec timer de 20 secondes Dploiement Simulation sur Oracle BPEL PM 10.1.3.1
Zenika 2009
32
Base de dshydratation
Zenika 2009
33
Base de dshydratation
Pourquoi dshydrater ?
Ncessit technique (gestion mmoire) Robustesse du systme Cohrence et intgrit
Quand dshydrater ?
Selon implmentation Activits BPEL spcifiques (Receive, Wait) Action utilisateur
Zenika 2009
34
Dshydratation : quand ?
Zenika 2009
35
Communications asynchrones
Problmatique : dbloquer une instance BPEL en attente de rponse Processus appelant : attente passive cest au processus appel de rveiller le processus appelant
Zenika 2009
36
Asynchrone
<definitions name="ProcessWait" ...> ... <portType name="ProcessWait"> <operation name="initiate"> <input message="tns:IMessage"/> </operation> </portType> <portType name="ProcessWaitCallback"> <operation name="onResult"> <input message="tns:OMessage"/> </operation> </portType> ... <service name="ProcessWait"> <port name="ProcessWaitPort" binding="tns:ProcessWaitBinding"> <soap:address location="http://localhost:8888/orabpel/default/ ProcessWait/1.0"/> </port> </service> <service name="ProcessWaitCallbackService"> <port name="ProcessWaitCallbackPort" binding="tns:ProcessWaitCallbackBinding"> <soap:address location="http://set.by.caller"/> </port> </service> ... </definitions>
37
Zenika 2009
WS-Addressing
Spcifications W3C : mcanismes permettant aux WS de communiquer des informations dadressage
donnes de routage de messages incluses au header SOAP
Zenika 2009
38
WS-Addressing - tape 1
<soap:Envelope ...> <soap:Header>
Processus
Id
Contexte
ProcessAppel
Zenika 2009 BPEL Orchestration de Web Services
ProcessWait
39
WS-Addressing - tape 2
Processus
Id
Contexte
<ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel>
ProcessAppel
123
ProcessAppel
Zenika 2009 BPEL Orchestration de Web Services
ProcessWait
40
WS-Addressing - tape 3
Processus
Id
Contexte
<ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel>
ProcessAppel
123
ProcessAppel
Zenika 2009 BPEL Orchestration de Web Services
ProcessWait
41
WS-Addressing - tape 4
<soap:Envelope ...> <soap:Header> <soap:Header> <soap:Body> </soap:Body> </soap:Envelope>
<wsa:RelatesTo>123</wsa:RelatesTo>
Processus
Id
Contexte
<ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel>
ProcessAppel
123
ProcessAppel
Zenika 2009 BPEL Orchestration de Web Services
ProcessWait
42
Fonction XPath
XPath est une syntaxe (non XML) pour dsigner une portion dun document XML (variable XML dans Oracle BPEL). XPath = langage dinterrogation Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limit Oracle BPEL permet de construire des fonctions personnalises ( base de classe Java)
Zenika 2009
43
Corrlation custom
Zenika 2009
44
initiate
correlate
Zenika 2009
45
Zenika 2009
46
Processus ProcessCorrelate
Id 965
Correlation 123456
Zenika 2009
47
Processus ProcessCorrelate Id
Id 965
965
Zenika 2009
Processus ProcessCorrelate Id
Id 965
965
Zenika 2009
49
Processus ProcessCorrelate Id
Id 965
965
Zenika 2009
50
Zenika 2009
51
Services
SOA s'appuie avant tout sur la notion de service
ESB
Outil d'intgration
BPEL
pour orchestrer des services...il faut des services
EIP
Les patterns de l'intgration
...
Zenika 2009
52
SI = Ensemble de systmes htrognes Les diteurs fournissent des adaptateurs Les adaptateurs Oracle BPEL
Fichier JMS MQ ...
Zenika 2009
53
Les adaptateurs Oracle s'appuient sur la technologie JCA Interface Web Service intgration simplifie BPEL
Zenika 2009
54
Adaptateurs : Alternative
BPEL est un langage ddi aux Web Services Adaptateur = Web Service MOM, BDD, Fichiers mise en uvre de Web Services Possibilit de mettre en place des Web Services asynchrones via le systme de custom correlation
http://java-soa.blogspot.com
Zenika 2009 BPEL Orchestration de Web Services 55
Utiliser BPEL comme intermdiaire entre le systme appelant et les systmes appels
Implmenter dans loutil la logique de routage et dchange avec les autres systmes Concevoir un processus comme une suite dchanges avec des services
Zenika 2009
56
Performances et robustesse
Importance du sizing serveur Clustering Importance du tuning JVM et BPEL Possibilit de mettre en place Oracle Coherence sur la base de dshydration
Performances
Failover
Zenika 2009
57
Zenika 2009
58
Des questions ?
Grgory LE BONNIEC
Zenika 2009 BPEL Orchestration de Web Services
gregory.lebonniec@zenika.com
59