Vous êtes sur la page 1sur 52

SOA Services Web

BPEL : Orchestrer les Services Web


Mickal BARON 2010 (Rv. Mars 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr

Licence

Creative Commons
Contrat Paternit Partage des Conditions Initiales l'Identique
2.0 France

keulkeul.blogspot.com

http://creativecommons.org/licenses/by-sa/2.0/fr
BPEL - M. Baron - Page 2

Plan du cours

Problmatique Prsentation BPEL BPEL par lexemple : HelloWorld BPEL parties statique et dynamique Chorgraphie / Orchestration Structure dun BPEL
keulkeul.blogspot.com

Partener Links Variables Activities


BPEL - M. Baron - Page 3

Droulement du cours Pdagogie du cours


Illustration avec de nombreux exemples qui sont disponibles ladresse http://mbaron.developpez.com/soa/bpel Des bulles daide tout au long du cours Survol des principaux concepts en vitant une prsentation exhaustive Guide par lditeur graphique Netbeans

Logiciels utiliss
Nav. Web, Netbeans 6.7.1, Glassfish 2.1.1 (OpenESB 2.2), SOAP UI
keulkeul.blogspot.com

Pr-requis
Ingnierie des donnes Schema XML, WSDL, SOAP
Ceci est une astuce

Remerciements
TODO

Ceci est une alerte


BPEL - M. Baron - Page 4

Ressources Billets issus de Blog


jee-bpel-soa.blogspot.com/2008/09/apache-ode-first-bpel.html blueprints.dev.java.net/bpcatalog/ee5/soa/

Articles
docs.oasis-open.org/wsbpel/2.0/Primer/wsbpel-v2.0-Primer.pdf bpelsource.com www.oracle.com/technology/pub/articles/matjaz_bpel2.html

keulkeul.blogspot.com

Cours
dlc.sun.com/pdf/820-6323/820-6323.pdf www.javapassion.com/soaprogramming/BPELOverview.pdf developers.sun.com/docs/javacaps/jbi/capsbpeldeseng.cnfg_bpel-se-blueprints_r.html netbeans.org/kb/61/soa/understand-trs.html
BPEL - M. Baron - Page 5

Ressources : Bibliothque Java SOA Cookbook


Auteur : Eben Hewitt diteur : OReilly Edition : Mars 2009 - 752 pages - ISBN : 0596520727

Business Process Execution Language for WS


Auteur : Benny Mathew, Matjaz Juric, Poornachandra diteur : Packt Publishing Edition : January 2006 - 372 pages - ISBN : 1904811817
keulkeul.blogspot.com

SOA for the Business Developer : , BPEL,


Auteur : Benny Mathew, Matjaz Juric, Poornachandra diteur : Packt Publishing Edition : January 2006 - 372 pages - ISBN : 1904811817
BPEL - M. Baron - Page 6

Problmatique : Scnario
1

Inscription dun tudiant une cole


Inscription lcole (nom, adresse, ) Payement des frais dinscription (auprs des services dune banque) Attribution dun numro dtudiant

Chercher un logement au CROUS


Inscription partir du numro dtudiant Choisir son type de logement Payement des frais dhbergement Attribution dun numro CROUS

keulkeul.blogspot.com

Sabonner au transport de bus


Slectionner la ligne entre lcole et le logement Choisir la rduction propose en justifiant du numro dtudiant et du numro CROUS Inscription et payement
BPEL - M. Baron - Page 7

Problmatique : Scnario Solution 1 : lutilisateur doit se rendre sur chaque site Web des administrations
Se rendre sur le site de lcole 1 Client SI de lEcole Inscription Payement Gnrer numro tudiant (INE)

Se rendre sur le site du CROUS 2 keulkeul.blogspot.com Client SI du CROUS

Inscription partir INE Payement Gnrer numro CROUS

Se rendre sur le site de transport de BUS Client 3

SI BUS

Inscription partir INE et CROUS Payement Gnrer carte BUS

BPEL - M. Baron - Page 8

Problmatique : Scnario Solution 2 : lutilisateur nutilise que le site Web de lcole qui fournit un Workflow complet
1 Se rendre sur le site de lcole Inscription Payement Gnrer numro tudiant

Client SI de lEcole

Le site Web de lcole est adapte pour couvrir les besoins mtiers des sous SI keulkeul.blogspot.com

Inscription partir INE Payement Gnrer numro CROUS SI du CROUS

Moteur Orchestration

SI BUS

Inscription partir INE et CROUS Payement Gnrer carte BUS

BPEL - M. Baron - Page 9

Problmatique Processus mtiers sont de plus en plus complexes


Applications multiples intgrer Fort besoin de parallliser les processus Partenaires intgrer sont nombreux

Htrognit des langages due aux plateformes de dveloppement


Java .NET
keulkeul.blogspot.com

PHP

Fort besoin dvolution des processus


Partenaires peuvent voluer Intgration de nouveaux processus
BPEL - M. Baron - Page 10

Langages de processus mtiers (Workflow) Diffrents langages permettent de modliser les processus mtiers
01/2001 03/2001 06/2001 03/2002 06/2002 08/2002 08/2002 04/2007

XLang

WSFL

ebXML

WSCL

BPML

WSCI

BPEL 1.0

BPEL 2.0

Fonds sur des concepts proches


Activits, oprations, appels de services Echanges des messages, modification des messages Gestion des erreurs, vnements
keulkeul.blogspot.com

Syntaxe base sur le format XML Outills


Editeurs graphiques Moteur dexcution
BPEL - M. Baron - Page 11

Prsentation : WS-BPEL WS-BPEL (ou BPEL en abrg) est lacronyme de Business Process Execution Language Son origine est issu des langages WSFL et XLANG Standard OASIS en V2.0 Bas sur les standards du Services Web tendus (WSDL) Syntaxe base sur XML
keulkeul.blogspot.com

Langage graphique Fournit les oprateurs classiques dun langage de programmation (squence, parallle, boucle, ) Gestion des erreurs
BPEL - M. Baron - Page 12

Pour faire du BPEL : Outils Deux catgories doutils sont distinguer


Editeur graphique de processus BPEL Moteur BPEL intgr dans la majorit des serveurs dapplication

A noter que les solutions BPEL proposes par les diteurs de logiciels fournissent la fois lditeur et le serveur Les diteurs graphiques sont gnralement intgrables dans les environnements de dveloppement (Eclipse, Netbeans,
keulkeul.blogspot.com

Visual Studio, ) Dans ce cours, nous utiliserons une solution libre base sur le moteur OpenESB et le module graphique fourni par Netbeans
BPEL - M. Baron - Page 13

Pour faire du BPEL : Outils des solutions OpenESB (via Glassfish 2.1) et Netbeans 6.7.1
https://open-esb.dev.java.net/

Apache ODE et Eclipse BPEL Editor


http://ode.apache.org/ et http://www.eclipse.org/bpel/

JBoss jBPM (uniquement le moteur BPEL)


http://www.jboss.com/products/jbpm/

Oracle BPEL Process Manager (Weblogic + JDeveloper)


http://www.oracle.com/technology/bpel
keulkeul.blogspot.com

Orchestra
http://orchestra.ow2.org

IBM (Weblogic + Workshop) BPEL for Windows Workflow Foundation (Visual Studio et Biztalk) BPEL - M. Baron - Page
14

BPEL par lexemple : HelloWorld Pour introduire la prsentation du langage BPEL nous construisons un processus HelloWorld Le processus BPEL est dcrit par le Service Web suivant
Une opration makeHello qui prend en paramtre une chane de caractre et retourne une chane de caractre

Le processus BPEL traite le Workflow suivant


Rcupration du message envoy par le client (chane de caractres)
keulkeul.blogspot.com

Transformation du message en ajoutant le texte HelloWorld Retourner le nouveau message au client + +


BPEL - M. Baron - Page 15

BPEL par lexemple : HelloWorld Cration dun nouveau projet BPEL (File -> New Project) partir des exemples (Samples)

Choisir cet exemple Synchronous BPEL Process

keulkeul.blogspot.com

BPEL - M. Baron - Page 16

BPEL par lexemple : HelloWorld Prciser les caractristiques physiques du projet BPEL

keulkeul.blogspot.com

BPEL - M. Baron - Page 17

BPEL par lexemple : HelloWorld Gnration des fichiers et initialisation des outils BPEL

keulkeul.blogspot.com

Gestion des fichiers du projet

Editeur graphique

Palette des fonctionnalits BPEL

BPEL - M. Baron - Page 18

BPEL par lexemple : HelloWorld Edition du BPEL en mode texte


<process name="Synchronous"> <import namespace="http://localhost/Synchronous/Synchronous" location="Synchronous.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <partnerLinks> <partnerLink name="Synchronous" partnerLinkType="ns1:partnerlinktype1" myRole="partnerlinktyperole1"></partnerLink> </partnerLinks> <variables> <variable name="outputVar" messageType="ns1:responseMessage"></variable> <variable name="inputVar" messageType="ns1:requestMessage"></variable> </variables>

Une relation de partenaire est dfinie

Deux variables sont dfinies

keulkeul.blogspot.com

<sequence> <receive name="start" partnerLink="Synchronous" operation="operation1" portType="ns1:portType1" variable="inputVar" createInstance="yes"> </receive> <assign name="Assign1"> <copy> <from>$inputVar.inputType/ns2:paramA</from> <to>$outputVar.resultType/ns2:paramA</to> </copy> </assign> <reply name="end" partnerLink="Synchronous" operation="operation1" portType="ns1:portType1" variable="outputVar"> </reply> </sequence> </process>

Trois activits dclenches en squence

Synchronous.bpel du projet
HelloWorldBPEL
BPEL - M. Baron - Page 19

BPEL par lexemple : HelloWorld Extension de lactivit Assign

Ajout dune expression


keulkeul.blogspot.com
<assign name="Assign1"> <copy> <from>concat($inputVar.inputType/ns2:paramA, ' HelloWorld')</from> <to>$outputVar.resultType/ns2:paramA</to> </copy> </assign>

Le contenu de lactivit assign a t mis jour

BPEL - M. Baron - Page 20

BPEL par lexemple : HelloWorld Utilisation du projet HelloWorldBPELApplication pour le dploiement (type Composite Application)
Tous les projets BPEL peuvent tre dploys comme module JBI

<soapenv:Envelope ...> <soapenv:Body> <syn:typeA> <syn:paramA>Mickael BARON</syn:paramA> </syn:typeA> </soapenv:Body> </soapenv:Envelope>

keulkeul.blogspot.com

Des tests unitaires peuvent tre dfinis

<SOAP-ENV:Envelope ...> <SOAP-ENV:Header/> <SOAP-ENV:Body> <typeA xmlns="http://xml.netbeans.org/schema/Synchronous"> <paramA>Mickael BARON HelloWorld</paramA> </typeA> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Le message dentre a t tendu

BPEL - M. Baron - Page 21

BPEL par lexemple : HelloWorld Le processus BPEL est dcrit par un WSDL et est accessible par un client Service Web (voir cours JAX-WS)

keulkeul.blogspot.com

BPEL - M. Baron - Page 22

BPEL : partie statique Comme vu prcdemment la partie statique dun processus est dfinie par un document WSDL Le document WSDL permet de dcrire
Les points dentres et de sorties du processus Dfinir les types des donnes (XML Schema) et les messages utiliss pour dcrire ltat du processus Les oprations qui sont autorises et qui permettent dinvoquer le processus
keulkeul.blogspot.com

Par consquent tous les concepts introduits dans les prcdents cours WSDL, SOAP et JAX-WS sont r-utilisables
Cration dun client du processus partir du WSDL (ws-import) Envoie de messages SOAP
BPEL - M. Baron - Page 23

BPEL : partie dynamique La partie dynamique du processus est dcrite par le fichier BPEL Ce document BPEL permet de dcrire
Lordonnancement des diffrentes sous tapes du processus Linvocation vers les oprations des Services Web partenaires La logique et ltat du processus
WSDL WSDL
BPEL

SOAP
Serveur Web

keulkeul.blogspot.com

Client

SOAP
Serveur Web BPEL

WSDL SOAP
Serveur Web BPEL
Moteur Orchestration

BPEL Moteur Orchestration

BPEL - M. Baron - Page 24

Chorgraphie / Orchestration Chorgraphie


Vue globale Description des interactions entre plusieurs partenaires Description des messages changs entre les participants et leurs ordres WSDL sinscrit dans la description de la chorgraphie La chorgraphie peut tre dcrite par le langage WS-CDL

Orchestration
keulkeul.blogspot.com

Vue locale un processus Description de la logique dexcution des services partenaires et des messages changs BPEL sinscrit dans la description de lorchestration BPEL
- M. Baron - Page 25

Chorgraphie / Orchestration Exemple : Ordre dachat


Lentreprise A fait une demande aux services de lentreprise B pour un ordre dachat

Ordre dAchat (Request)


Lordre dachat est accept est un accus de rception est envoy

Services A

Accus de Rception de lOrdre dAchat

Services B

keulkeul.blogspot.com

Ordre dAchat (Response)

Lappel aux services de lentreprise B se termine par une rponse

BPEL - M. Baron - Page 26

Chorgraphie / Orchestration Exemple (suite) : Ordre dachat


Aucune description sur la logique dexcution des services partenaires Messages changs entre les participants

Envoyer l'OA

OA Request

Recevoir OA

Recevoir lAR de lOA

Accus Rception 2 de lOA

Envoyer lAR de lOA

keulkeul.blogspot.com

Recevoir lOA
Services A

OA Response

Envoyer lOA
Services B

Ordre des changes

Chorgraphie : Description des messages changs entre les participants et leurs ordres

BPEL - M. Baron - Page 27

Chorgraphie / Orchestration Exemple (suite) : Ordre dachat

Traitement amont

Envoyer l'OA

OA Request

Recevoir lAR de lOA

Accus Rception de lOA

keulkeul.blogspot.com

Traitement aval

Recevoir lOA
Processus A

OA Response

Orchestration : Description de la logique dexcution des services partenaires

et des messages changs

BPEL - M. Baron - Page 28

Structure dun fichier BPEL <process> (un seul autoris) <partnerLinks> (un seul autoris)
Dfinition et rles des processus participants

<variables> (un seul autoris)


Variable dtat utilise dans le processus

<correlationSets> (un seul autoris)


Proprits lies au droulement du processus

<faultHandlers> (un seul autoris)

Traitement des erreurs dclenches par l e processus


keulkeul.blogspot.com

Etudies dans ce cours dintroduction

<compensationHandlers> (un seul autoris)


Traitements des contextes arrires (undo)

<eventHandlers> (un seul autoris)


Traitement des vnements

<Activities> (plusieurs autoriss)


Description du processus
BPEL - M. Baron - Page 29

Structure dun projet BPEL Un projet BPEL se compose de trois catgories de fichiers
Les fichiers de description des processus (*.bpel) Les fichiers de description des Services Web (*.wsdl et *.xsd) Les fichiers de dploiement (*.xml) dont la structure dpend fortement du moteur BPEL utilis
*.bpel

Description des processus

*.wsdl *.xsd

Description des Services Web utiliss par les processus participants

keulkeul.blogspot.com

deploy.xml

Apache ODE
ou catalog.xml
META-INF

Fichiers de dploiement (dpend du moteur BPEL)

jbi.xml

OpenESB

BPEL - M. Baron - Page 30

BPEL par lexemple : HelloWorld 2 Nous tendons le processus HelloWorld prcdent en ajoutant une invocation un Service Web externe Ce processus BPEL est dcrit par le Service Web suivant
Une opration makeHello qui prend en paramtre une chane de caractres et retourne une chane de caractres

Le processus BPEL traite le Workflow suivant


keulkeul.blogspot.com

Rcupration du message envoy par le client (chane de caractres) Invocation dun Service Web externe (partenaire) avec comme paramtre la chane de caractres reue par le processus Retourner au client le message rcupr de linvocation prcdente
BPEL - M. Baron - Page 31

Partner Links Pour rappel, du point de vue des clients le processus BPEL est un Service Web Deux faons dinteragir entre un processus BPEL et des Web Services externes
Un processus BPEL invoque des oprations issues dautres Web Services (dit Partenaires) : Lien de partenaire (PartenerLink) de type invocation
keulkeul.blogspot.com

Un processus BPEL reoit des invocations issues de clients : Lien de partenaire (PartenerLink) de type client

Pour rsumer, un lien de partenaire dsigne les relations entre des partenaires / clients et le processus BPEL - Page BPEL - M. Baron
32

Partner Links Un lien de partenaire est reprsent dans le fichier BPEL par un lment partnerLink Il contient les attributs suivants
name : nom donn au partnerLink myRole : spcifie le rle du processus BPEL partnerRole : spcifie le rle du partenaire ou du client partnerLinkType : type de partnerLink dfini dans la description WSDL

Si lattribut myRole est uniquement utilis (sans partnerRole) seules les interactions vers le processus sont autorises
keulkeul.blogspot.com

Si lattribut partnerRole est uniquement utilis (sans myRole) seules les interactions vers les partenaires et les clients sont autoriss Les deux rles peuvent tre utiliss en mme temps - Page BPEL - M. Baron
33

Partner Links Exemple : Deux liens de partenaire (client et invocation)


PartnerLink de type Invocation

PartnerLink de type Client

Client

Service Web

HelloWorld

keulkeul.blogspot.com

Invocation dune opration du Service Web implment par le BPEL

Invocation dune opration du Service Web HelloWorld

BPEL - M. Baron - Page 34

Partner Links Exemple (suite) : Deux liens de partenaire (client et invocation)


Description du lien de partenaire li linteraction entre le client et le processus
<partnerLinks> <partnerLink name="PartnerLinkClient" partnerLinkType="tns:HelloWorldInvokeActivityBPEL" myRole="HelloWorldInvokeActivityBPELPortTypeRole"/>

keulkeul.blogspot.com

<partnerLink name="PartnerLinkInvocation" partnerLinkType="tns:HelloWorldLinkType" partnerRole="HelloWorldRole"/> </partnerLinks>

Description du lien de partenaire li linteraction entre le processus et le Service Web HelloWorld

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL
BPEL - M. Baron - Page 35

Partner Links Types Un PartnerLinkType dcrit la relation entre deux services en dtaillant le rle que chaque service implmente Chaque rle spcifie un PortType (issu du WSDL) qui doit tre implment par le service qui implmente ce rle
<partnerLink name="PartnerLinkInvocation" partnerLinkType="tns:HelloWorldLinkType" partnerRole="HelloWorldRole"/> ...

Le PartnerLinkType est dcrit dans le fichier WSDL du Service Web

keulkeul.blogspot.com

Le lien de partenaire (PartnerLink) dcrit dans le fichier BPEL

<portType name="HelloWorld"> <operation name="makeHelloWorld"> <input message="tns:makeHelloWorld" /> <output message="tns:makeHelloWorldResponse" /> </operation> <operation name="simpleHelloWorld"> <input message="tns:simpleHelloWorld" /> <output message="tns:simpleHelloWorldResponse" /> </operation> </portType> <plnk:partnerLinkType name="HelloWorldLinkType"> <plnk:role name="HelloWorldRole" portType="ns:HelloWorld"/> </plnk:partnerLinkType>

BPEL - M. Baron - Page 36

Variables Les messages sont envoys et reus vers et de partenaires


Ncessite de sauvegarder ces messages pour tre utiliss par le processus BPEL

BPEL dfinit la notion de variables qui permet de manipuler les messages des interactions entre les partenaires Une variable est dfinie par des types et des messages dclars dans un WSDL Une variable est dfinie par les attributs suivant
keulkeul.blogspot.com

name : nom de la variable type : type via un type XML Schema par exemple
Ou

messageType : type via un message

BPEL - M. Baron - Page 37

Variables Exemple : Dfinition de variables dans un BPEL


<variables> <variable <variable <variable <variable <variable </variables> name="tmpValue" type="xs:string"/> name="MakeHelloWorldOutput" messageType="tns:makeHelloWorldResponse"/> name="MakeHelloWorldInput" messageType="tns:makeHelloWorld"/> name="output" messageType="tns:HelloWorldInvokeActivityBPELOperationResponse"/> name="input" messageType="tns:HelloWorldInvokeActivityBPELOperationRequest"/>

<message name="HelloWorldInvokeActivityBPELOperationRequest"> <part name="inputmessage" type="xsd:string"/> </message> <message name="HelloWorldInvokeActivityBPELOperationResponse"> <part name="outputmessage" type="xsd:string"/> </message>

Variables dcrites dans le fichier BPEL Messages dcrits dans le fichier WSDL du processus Messages dcrits dans le fichier WSDL du Service Web
BPEL - M. Baron - Page 38

keulkeul.blogspot.com

<message name="makeHelloWorld"> <part name="value" type="xsd:string" /> </message> <message name="makeHelloWorldResponse"> <part name="helloWorldResult" type="xsd:string" /> </message>

Activits Un processus BPEL est dcrit par un ensemble dtapes Chaque tape est appele une activit (activity) Deux catgories dactivit sont distinguer

keulkeul.blogspot.com

Activit Simple

Activit Structure
BPEL - M. Baron - Page 39

Activits : Receive Lactivit Receive est utilise pour la mise en attente du processus tant quun message nest pas envoy par un partenaire Elle est utilise gnralement pour instancier le processus BPEL (premire activit du processus) Elle est dfinie par la balise <receive> dont les principaux attributs de cette activit sont
name : nom de lactivit
keulkeul.blogspot.com

partnerLink : lien partenaire utilis pour identifier le partenaire qui


doit dclencher le processus

operation : identifiant de lopration que le processus doit


implmenter

variable : o stocker le message envoy par le partenaire - Page BPEL - M. Baron

40

Activits : Receive Exemple : Mise en place de lactivit Receive


<receive name="Receive1" createInstance="yes" partnerLink="PartnerLinkClient" operation="HelloWorldInvokeActivityBPELOperation" portType="tns:HelloWorldInvokeActivityBPELPortType" variable="input"/>

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL

keulkeul.blogspot.com

Des outils simplifient ldition dune activit Receive

BPEL - M. Baron - Page 41

Activits : Reply Lactivit Reply permet denvoyer une rponse au message envoy lactivit Receive Le couple Reply / Receive dcrit une opration de type requte / rponse Elle est dfinie par la balise <reply> dont les principaux attributs de cette activit sont
name : nom de lactivit
keulkeul.blogspot.com

partnerLink : identifiant du lien partenaire utilis pour identifier le


partenaire qui doit recevoir le message de rponse

operation : identifiant de lopration que le processus a implment

variable : message contenant le message retourner M. Baron - Page BPEL -

42

Activits : Reply Exemple : Mise en place de lactivit Reply


<reply name="Reply1" partnerLink="PartnerLinkClient" operation="HelloWorldInvokeActivityBPELOperation" portType="tns:HelloWorldInvokeActivityBPELPortType" variable="output"/>

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL

keulkeul.blogspot.com

Des outils simplifient ldition dune activit Reply

BPEL - M. Baron - Page 43

Activits : Assign Lactivit Assign peut tre utilise pour copier des donnes dune variable vers une autre Possibilit dutiliser des expressions complexes pour modifier le contenu des variables (XPath, transformations XSL) Elle est dfinie par la balise <assign> qui peut contenir un ensemble de sous balises <copy> La balise <copy> contient son tour des sous balises <from> et <to> pour exprimer la copie dun contenu vers un autre
keulkeul.blogspot.com

Structure XML de la balise <assign>


<assign> <copy> <from ...> <to ...> </copy> </assign>

BPEL - M. Baron - Page 44

Activits : Assign Exemple : Mise en place de lactivit Assign


<assign name="Assign1"> <copy> <from variable="input" part="inputmessage"/> <to variable="MakeHelloWorldInput" part="value"/> </copy> </assign>

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL

Copie le contenu de la variable input vers celui de la variable

MakeHelloWorldInput

keulkeul.blogspot.com

<message name="HelloWorldInvokeActivityBPELOperationRequest"> <part name="inputmessage" type="xsd:string"/> </message>

<message name="makeHelloWorld"> <part name="value" type="xsd:string" /> </message>

Respect des typages puisque les parts des messages sont de type identique (xsd:string)
BPEL - M. Baron - Page 45

Activits : Assign Exemple (suite) : Mise en place de lactivit Assign

keulkeul.blogspot.com

Utilisation dun outil daide la construction du contenu de lactivit Assign


BPEL - M. Baron - Page 46

Activities : Invoke Lactivit Invoke est utilise pour dclencher lappel une opration sur un portType dfini par un lien de partenaire Seules les oprations suivant le modle One-way et Request/Response peuvent tre invoques par un BPEL Linvocation dopration ncessite lutilisation de variables en entre et en sortie pour initialiser la requte et la rponse Elle est dfinie par la balise <invoke>
name : nom de lactivit
keulkeul.blogspot.com

partnerLink : identifiant du lien partenaire operation : lopration invoquer portType : le portType pour de lopration inputVariable : informations transmettre la requte ouputVariable : utilises pour rcuprer les donnes de la rponse
BPEL - M. Baron - Page 47

Activities : Invoke Exemple : Mise en place de lactivit Invoke


<invoke name="Invoke1" partnerLink="PartnerLinkInvocation" operation="makeHelloWorld" portType="tns:HelloWorld" inputVariable="MakeHelloWorldInput" outputVariable="MakeHelloWorldOutput"/>

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL

keulkeul.blogspot.com

Des outils simplifient ldition dune activit Invoke

BPEL - M. Baron - Page 48

Activities : Invoke Lactivit Invoke ne permet de dclencher que des oprations issues dun Service Web tendu (via WSDL) Les travaux de standardisation sintressent actuellement la possibilit dinvoquer diffrents services de technologies diffrentes (Service Web de type REST) Toutefois, il est actuellement possible dinvoquer des services sous condition de dfinir un adaptateur WSDL Dmarche
keulkeul.blogspot.com

Dfinir un Service Web Adaptateur respectant le contrat du service (dfini par un EJB) invoquer Implmenter le mapping entre le Service Web Adaptateur et le service invoquer Ajouter comme lien de partenaire le Service Web Adaptateur Invoquer les oprations
BPEL - M. Baron - Page 49

Activities : Sequence / Flow / While / Pick / Lordonnancement des activits est dfini par des activits complexes Lactivit Sequence permet dexprimer que des activits soient dclenches dans un ordre donn Lactivit Flow permet de dfinir quune ou plusieurs activits soient dclenches de manire concurrente Lactivit While permet de dfinir quune activit peut tre
keulkeul.blogspot.com

rpte plusieurs fois Lactivit Pick permet de mettre en attente une activit jusqu larrive dun message
BPEL - M. Baron - Page 50

Activities : Sequence / Flow / While / Pick / Exemple : Mise en place de lactivit Sequence
<sequence> <receive name="Receive1" createInstance="yes" partnerLink="PartnerLinkClient" operation="makeHello" portType="tns:HelloWorldInvokeActivityBPELPortType" variable="input"/> 1 <assign name="Assign1"> <copy> <from variable="input" part="inputmessage"/> <to variable="MakeHelloWorldInput" part="value"/> </copy> </assign> <invoke name="Invoke1" partnerLink="PartnerLinkInvocation" operation="makeHelloWorld inputVariable="MakeHelloWorldInput" outputVariable="MakeHelloWorldOutput"/> <assign name="Assign2"> <copy> <from variable="MakeHelloWorldOutput" part="helloWorldResult"/> <to variable="output" part="outputmessage"/> </copy> </assign>

keulkeul.blogspot.com

<reply name="Reply1" partnerLink="PartnerLinkClient" operation="makeHello portType="tns:HelloWorldInvokeActivityBPELPortType" variable="output"/> </sequence>

HelloWorldInvokeActiviyBPEL.bpel du
projet HelloWorldInvokeActivityBPEL
BPEL - M. Baron - Page 51

Bilan De nombreux concepts sur BPEL restent encore tudier


Activits simples (throw, wait, empty) Activits complexes (scope, compensate, switch, link)

Processus BPEL en mode Synchrone et asynchrone Gestion des erreurs Gestion transactionnelle
keulkeul.blogspot.com

Journalisation et alertes
Connatre ltat du processus BPEL en cours dexcution

Moteur BPEL via Open ESB


Configuration du moteur
BPEL - M. Baron - Page 52

Vous aimerez peut-être aussi