web services 07 bpel slides

34
Proce ssus m´ etier et s ervices : Illustr ation ` a tr avers WS-BPEL Processus m´ etier et ser vices : Illu str ation ` a tra ver s WS-BPEL E.Coquery [email protected] http://liris.cnrs.fr/ ~ ecoquery Enseignement TIW5 E.Coquery 1/34

Upload: islem-denden

Post on 08-Mar-2016

217 views

Category:

Documents


0 download

DESCRIPTION

services web et bpel

TRANSCRIPT

Page 1: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 1/34

Processus metier et services : Illustration a travers WS-BPEL

Processus metier et services :

Illustration a travers WS-BPEL

E.Coquery

[email protected]

http://liris.cnrs.fr/~ecoquery

→ Enseignement→ TIW5

E.Coquery 1/34

Page 2: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 2/34

Processus metier et services : Illustration a travers WS-BPEL

Processus metier 1

Ensemble d’actions

Visant a realiser une tache de haut niveauAyant un sens metier

En general pas informatique

Comment l’implementer dans une architecture SOA ?

1. Business Process (BP)E.Coquery 2/34

Page 3: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 3/34

Processus metier et services : Illustration a travers WS-BPEL

Retour sur la commande de glaces

Representer un processus de traitement d’une commande de glaces

CommandePaiement

Livraison

...

E.Coquery 3/34

S

Page 4: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 4/34

Processus metier et services : Illustration a travers WS-BPEL

Specificites

Plusieurs acteurs

Pas toujours connus au demarrage

Temps d’execution long

Transactions de longue dureeNecessite d’un etat persistant pour le processusPlusieurs instances simultanees pour un meme processus

Transactions complexes

Multiparties

Non annulables, mais compensablesVue a haut niveau

Details geres par les services

E.Coquery 4/34

P ´ i i Ill i ` WS BPEL

Page 5: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 5/34

Processus metier et services : Illustration a travers WS-BPEL

WS-BPEL

Langage pour l’orchestration de services

Decrit un enchaınement d’actions (workflow)Langage et moteur d’execution dedies au processus metier :

Acteurs multiples et dynamiquesTransaction complexesLongue duree

E.Coquery 5/34

P ti t i Ill t ti ` t WS BPEL

Page 6: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 6/34

Processus metier et services : Illustration a travers WS-BPEL

BPEL : structure de base

Syntaxe XML

targetNamespaceimports possibles

Blocs

<s c o p e name=” t o t o ”> . . .</ s c o p e>

E.Coquery 6/34

Processus metier et services : Illustration a travers WS BPEL

Page 7: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 7/34

Processus metier et services : Illustration a travers WS-BPEL

Glaces : quels acteurs, quelles actions ?

Client

Passe la commandePaie

Preparateur de glaces

Prepare les glaces a livrer

Livreur

Prend les glaces et effectue la livraison

Banque

Effectue le transfert d’argent lors du paiementProcessus de traitement

Orchestre les interactionsPrevient le client du bon deroulement des actions

E.Coquery 7/34

Processus metier et services : Illustration a travers WS-BPEL

Page 8: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 8/34

Processus metier et services : Illustration a travers WS-BPEL

Acteurs en WS-BPEL

Representes par des services, exposes :

Par le process lui-meme

Par des services externes

Definition

Dans le BPEL :partnerLink (= nom + partnerLinkType)Quel role est joue par

le process ( myRole)le partenaire (partnerRole)

Dans le WSDL :partnerLinkType (= mapping role ↔ portType)

Souvent un seul role

sauf pour les process interactions asynchrones

E.Coquery 8/34

Processus metier et services : Illustration a travers WS-BPEL

Page 9: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 9/34

Processus metier et services : Illustration a travers WS BPEL

Exemple glaces : myRole

BPEL :

<b p e l : p a r t n e r L i n kname=” C l i e n t ”partnerLinkType=”tns:CommandePLT”m y R o l e = ” p r o c e s s R o l e ” />

WSDL :

<p l n k : p a r t n e r L i n k T y p e name=”CommandePLT”><

p l n k : r o l e name=” p r o c e s s R o l e ”portType=”wsdl:CommandPortType”/></ p l n k : p a r t n e r L i n k T y p e>

+ Banque

E.Coquery 9/34

Processus metier et services : Illustration a travers WS-BPEL

Page 10: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 10/34

Processus metier et services : Illustration a travers WS BPEL

Exemple glaces : partnerRole

BPEL :

<b p e l : p a r t n e r L i n kname=” L i v r e u r ”p a r t n e r L i n k T y p e = ” t n s : L i v r e u r P L T ”p a r t n e r R o l e=” l i v r e u r R o l e ” />

WSDL :

<p l n k : p a r t n e r L i n k T y p e name=” L i v r e u r PL T ”><

p l n k : r o l e name=” l i v r e u r R o l e ”p o r t Ty p e=” w s d l : L i v r a i s o n P o r t T y p e ” /></ p l n k : p a r t n e r L i n k T y p e>

+ LivraisonLookup, ClientInfo

E.Coquery 10/34

Processus metier et services : Illustration a travers WS-BPEL

Page 11: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 11/34

Workflow en BPEL

Machine a etats

1 etat↔

une actionou un ensemble d’action : nesting via les  scope

Transitions = relation de dependance

Instructions de controle classiques en plus

pour simplifier la modelisation

E.Coquery 11/34

Processus metier et services : Illustration a travers WS-BPEL

Page 12: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 12/34

Workflow des glaces - 1

E.Coquery 12/34

Processus metier et services : Illustration a travers WS-BPEL

Page 13: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 13/34

Workflow des glaces - 2

E.Coquery 13/34

Processus metier et services : Illustration a travers WS-BPEL

Page 14: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 14/34

Premiere action

Engendre une nouvelle instance

Declenchement par un evenementEn general : reception d’un message

Attribut  createInstance="yes"

Glace : reception d’un message de commande

E.Coquery 14/34

Processus metier et services : Illustration a travers WS-BPEL

Page 15: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 15/34

Variables

4 sortes :

message

element XMLtype complexetype simple

<b p e l : v a r i a b l e name=”CommandeV”

messageType=”ns:CommandeGlaceRequest”/>

E.Coquery 15/34

Processus metier et services : Illustration a travers WS-BPEL

Page 16: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 16/34

Controle

Sequences<sequence> ... </sequence>

If then else

<if><condition>...</condition>...<elseif><condition>...</condition>...</elseif>

<else>...</else></if>

Boucles (while/ repeat until)

<while><condition>...</condition>...</while><repeatUntil>...<condition>...</condition>

</repeatUntil>

E.Coquery 16/34

Processus metier et services : Illustration a travers WS-BPEL

Page 17: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 17/34

Interactions avec les  partners 

Roles

Appel a un service (partnerRole)

Necessairement synchrone et bloquant<invoke ...

Implementation d’un endpoint ( myRole)Synchrone egalement<receive ...

bloquant

<reply ...

Valeurs en entree et en sortie

Variables

+ XPath / XQuery / ...

E.Coquery 17/34

Processus metier et services : Illustration a travers WS-BPEL

Page 18: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 18/34

Exemple glaces : reception de commande

<b p e l : r e c e i v e name=”Commande”p a r t n e r L i n k=” C l i e n t ”operation=”CommandeGlace”c r e a t e I n s t a n c e = ” y e s ”

variable=”CommandeV”/>

<b p e l : r e p l y name=”RepCommande”p a r t n e r L i n k=” C l i e n t ”operation=”CommandeGlace”variable=”RepCommandeV”>

. . .</ b p e l : r e p l y>

E.Coquery 18/34

Processus metier et services : Illustration a travers WS-BPEL

Page 19: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 19/34

Exemple glaces : recherche d’un livreur

<b p e l : i n v o k e name=” L i v r e u r L o o k u p ”

p a r t n e r L i n k = ” L i v r a i s o n L o o k u p ”o p e r a t i o n = ” R e c h e r c h e L i v r e u r ”i n p u t V a r i a b l e = ” L i v r a i s o n L o o k u p R e q u e s t V ”o u t p u t V a r i a b l e=” L i v r a i so n L o o ku p R e s po n s e V ” />

E.Coquery 19/34

Processus metier et services : Illustration a travers WS-BPEL

Page 20: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 20/34

receive   a plusieurs possibilites :  pick

<b p e l : p i c k name=” R e p o n s e D u C l i e n t ”><b p e l : o n M e s s a g e p a r t n e r L i n k=” C l i e n t ”

o p e r a t i o n = ” C o n f i r m a t i o n ”portType=”ns:CommandPortType”v a r i a b l e = ” C o n f i r m a t i o n V ”>

. . .</ b p e l : o n M e s s a g e><b p e l : o n M e s s a g e p a r t n e r L i n k=” C l i e n t ”

o p e r a t i o n = ” A n n u l a t i o n ”portType=”ns:CommandPortType”

v a r i a b l e = ” A n n u l a t i o n V ”><b p e l : e x i t name=” E x i t ” />

</ b p e l : o n M e s s a g e></ b p e l : p i c k>

E.Coquery 20/34

Processus metier et services : Illustration a travers WS-BPEL

Page 21: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 21/34

Affectations

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

Depuis / vers :

Variables

Messages

PartnerLinks

Expressions

XPath / XQuery

Pour la source et la destination

Atomicite

<assign>  = ensemble d’affectation

<assign> ↔ transaction ACID

E.Coquery 21/34

Processus metier et services : Illustration a travers WS-BPEL

Page 22: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 22/34

Adresses de services

<sref:service-ref>  : element contenant l’adresse

peut contenir une adresse au format WS-Addressing

<wsa:EnpointReference>

Utile pour

les  callback 

la parallelisation d’appelsl’utilisation d’annuaires de services (lookupLivraison)

E.Coquery 22/34

Processus metier et services : Illustration a travers WS-BPEL

Page 23: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 23/34

Correlations

Valeurs utilisees pour aiguiller les messages sur la bonne instance

Propriete (= nom + type) :

valeur utilisee pour des correlations∈ WSDL

Alias (= propriete + message + emplacement)ou trouver la propriete dans le messageaussi bien en entree qu’en sortie∈ WSDL

Correlation set  (= ensemble de proprietes)

tuple de valeurs a utiliser pour une correlationpeut etre reference dans une interactioninitiate="yes"

∈ BPEL

E.Coquery 23/34

Processus metier et services : Illustration a travers WS-BPEL

Page 24: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 24/34

Correlation de reponses

Plusieurs messages

sur un meme parnerLink

peuvent etre recusavant que la reponse du premier ne soit envoyee

→  messageExchange="..."  pour correler un  receive  avec unreply

E.Coquery 24/34

Processus metier et services : Illustration a travers WS-BPEL

Page 25: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 25/34

Exemple glaces : correlation sets, WSDL

<v p r o p : p r o p e r t y name=” C md Id Pt y ”t y p e=” x s d : s t r i n g ” />

<v p r o p : p r o p e r t y A l i a smessageType=”wsdl:CommandeGlaceResponse”p a r t = ” p a r a m e t e r s ”p r o p e r t y N a m e = ” t n s : C m d I d P t y ”><

v p r o p : q u e r y><

! [CDATA

[ @cmdid ] ]><

/ v p r o p : q u e r y>

</ v p r o p : p r o p e r t y A l i a s>

E.Coquery 25/34

Processus metier et services : Illustration a travers WS-BPEL

Page 26: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 26/34

Exemple glaces : correlation sets, BPEL

<b p e l : c o r r e l a t i o n S e t name=” CmdIdSet ”p r o p e r t i e s = ” t n s : C m d I d P t y ” />

. . .<b p e l : r e p l y name=”RepCommande”

p a r t n e r L i n k=” C l i e n t ”operation=”CommandeGlace”variable=”RepCommandeV”><b p e l : c o r r e l a t i o n s>

<b p e l : c o r r e l a t i o n i n i t i a t e =” y e s ”set=”CmdIdSet”/>

</ b p e l : c o r r e l a t i o n s></ b p e l : r e p l y>

E.Coquery 26/34

Processus metier et services : Illustration a travers WS-BPEL

Page 27: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 27/34

Parallelisme

<f o r E a c h counte rName=”N” p a r a l l e l=” y e s ”><s t a r t C o u n t e r V a l u e>1</ s t a r t C o u n t e r V a l u e><f i n a l C o u n t e r V a l u e>5</ f i n a l C o u n t e r V a l u e><

c o m p l e t i o n C o n d i t i o n>

<b r a n c h e s>3</ b r a n c h e s></ c o m p l e t i o n C o n d i t i o n>

. . .</ f o r E a c h>

La valeur du compteur peut etre utilisee dans une expressionXPath

$lookupResponse/services/service[$N]

E.Coquery 27/34

Processus metier et services : Illustration a travers WS-BPEL

Page 28: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 28/34

Concurrence : Flow

<flow>Lien (= dependance)  <link>

Actions :source : action terminee → activation d’un liencible : combinaison de liens actives → action demarree

Combinaison : expression booleennevariables : liensvaleur : vrai si lien active

Valeur expression :vrai : declenchement de l’action

indeterminee : rien ne se passefaux : erreur

suppressJoinFailure

no  : erreur si une action ne peut etre declencheeyes  : pas d’erreur si une combinaison  s’evalue a  false

E.Coquery 28/34

Processus metier et services : Illustration a travers WS-BPEL

Page 29: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 29/34

Handlers

<faultHandler>

↔ try/catch

faute SOAP↔

exception<terminationHandler>

Appele a la fin d’un  <scope>

<eventHandlers> → <onEvent>

similaire au  pick

pas de point d’attente bloquant

E.Coquery 29/34

Processus metier et services : Illustration a travers WS-BPEL

Page 30: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 30/34

Exemple glace :  eventHandlers

<b p e l : e v e n t H a n d l e r s><b p e l : o n E v e n t p a r t n e r L i n k =” C l i e n t ”

o p e r a t i o n = ” A n n u l a t i o n ”portType=”ns:CommandPortType”v a r i a b l e = ” A n n u l a t i o n V ”

m e s s a g e T y p e = ” n s : A n n u l a t i o n R e q u e s t ”><b p e l : s c o p e>

<b p e l : e x i t name=” E x i t 1 ” /></ b p e l : s c o p e><b p e l : c o r r e l a t i o n s>

<

b p e l : c o r r e l a t i o n s e t=” CmdIdSet ”i n i t i a t e=” no ” /></ b p e l : c o r r e l a t i o n s>

</ b p e l : o n E v e n t></ b p e l : e v e n t H a n d l e r s>

E.Coquery 30/34

Processus metier et services : Illustration a travers WS-BPEL

Page 31: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 31/34

Versions de processus

Execution de longue duree

Mise a jour lors d’une executionMigration parfois impossible :

Changement des donnees / d’un schemaDisparition d’etats (actions)

Plusieurs version d’un meme process simultanement

E.Coquery 31/34

Processus metier et services : Illustration a travers WS-BPEL

Page 32: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 32/34

Deploiement

Informations

Essentiellement les partnerLinks :

Les partenaires distants (e.g. lookupLivraison)Les interfaces du process

partenerLinks avec  myRole=...

Persistence de l’etat/des donnees

In memory : plus rapideDans un SGBD

Propriete (constantes) pour la configuration du process  e.g.  :

valeur de seuil utilisee dans une condition metierniveau de parallelisme /seuil de deblocage d’un forEachparallele

E.Coquery 32/34

Processus metier et services : Illustration a travers WS-BPEL

Page 33: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 33/34

Processus abstraits

Process avec des parties non definies

Correspondrait a des trous dans le process

<opaqueActivity>Peut etre instancie en un   processus executable .

sans  opaqueActivity

Possibilite d’utilisation sous forme de patron (template ) de

services

E.Coquery 33/34

Processus metier et services : Illustration a travers WS-BPEL

Page 34: Web Services 07 Bpel Slides

7/21/2019 Web Services 07 Bpel Slides

http://slidepdf.com/reader/full/web-services-07-bpel-slides 34/34

References

BPEL Primer

https://www.oasis-open.org/committees/download.php/23964/wsbpel-v2.0-primer.htm

Documentation d’Apache ODEhttp://ode.apache.org/userguide/

E.Coquery 34/34