Orchestre de services

Post on 18-Dec-2014

106 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Une orchestre de services pour apprendre l'orchestration de service avec BPEL. Attention! Peut contenir des traces de XML.

Transcript

BPELUn orchestre de services

Luc Trudeau

4 avril 2014

Cette presentation de Luc Trudeau est mise a disposition selon les termesde la licence Creative Commons Attribution 4.0 International.

Business Process Execution Language (BPEL)Un langage standard (XML) permettant la composition de services.

Ref : Architecting Service-Oriented Systems, SEI, 2011

L. Trudeau BPEL (2/13)

OrchestrationBPEL permet de definir un nouveau service compose qui orchestrel’execution de services.

Ref : http://soapatterns.org/design patterns/composition autonomy

L. Trudeau BPEL (3/13)

Exemple d’orchestrationSupposons 3 services

Tambour (drumService)

Melodie (melodyService)

Harmonie (harmonyService)

L. Trudeau BPEL (4/13)

Tambour (drum.wsdl)

Drum Service

Drum PortType (avec l’operation play)

L. Trudeau BPEL (5/13)

Melodie (melody.wsdl)

Melody Service

Melody PortType (avec l’operation play)

L. Trudeau BPEL (6/13)

Harmonie (harmony.wsdl)

Harmony Service

Harmony PortType (avec l’operation play)

L. Trudeau BPEL (7/13)

Orchestre (Ochestra.wsdl)

Nous allons concevoir un service compose avec BPEL permettantd’orchestrer les services : tambour, melodie et harmonie.

Logique d’affaires

Il faut demarrer les services melodie et harmonie en meme temps,suivis du service tambour 5 secondes plus tard.

L. Trudeau BPEL (8/13)

Etablir les liens avec les partenaires (PartnerLinks)

Dans ce contexte, il y a 4 partenaires :

Le client (celui qui execute le service compose)

Le service tambour

Le service melodie

Le service harmonie

<bpel:partnerLinks>

<bpel:partnerLink name="client" partnerLinkType="tns:

OrchestreService"

myRole="OrchestreServiceProvider" />

<bpel:partnerLink name="DrumServicePL"

partnerLinkType="tns:DrumServiceLT" partnerRole="

DrumServiceRole"></bpel:partnerLink>

...

</bpel:partnerLinks>

L. Trudeau BPEL (9/13)

Processus BPEL

Eclipse BPEL Designer (http://www.eclipse.org/bpel/)

L. Trudeau BPEL (10/13)

BPEL (XML)

Voici le XML correspondant a l’execution simultanee des services.

<bpel:flow name="StartTheMusic">

<bpel:invoke name="InvokeHarmony" partnerLink="

HarmonyServicePL" operation="play" portType="harmony:

Harmony" inputVariable="HarmonyServicePLRequest"

outputVariable="HarmonyServicePLResponse"/>

Ici, nous invoquons l’operation play avec comme parametre lavariable HarmonyServicePLRequest. Pour ce faire, nous utilisonsle lien vers un partenaire defini par HarmonyServicePL.L’operation play fait partie du portType Harmony qui est definidans le fichier harmony.wsdl.

L. Trudeau BPEL (11/13)

BPEL (XML)

Invocation du service melodie

<bpel:invoke name="InvokeMelody" partnerLink="MelodyServicePL

" operation="play" portType="melody:Melody" inputVariable

="MelodyServicePLRequest" outputVariable="

MelodyServicePLResponse"/>

Souvenez-vous du PortType contenu dans melody.wsdl notezl’operation play (c’est celle qu’on invoque)

L. Trudeau BPEL (12/13)

BPEL (XML)

<bpel:sequence name="WaitForTheDrums">

<bpel:wait name="Wait">

<bpel:for>’PT5S’</bpel:for>

</bpel:wait>

<bpel:invoke name="InvokeDrum" partnerLink="DrumServicePL

" operation="play" portType="drum:Drum" inputVariable

="DrumServicePLRequest" outputVariable="

DrumServicePLResponse"></bpel:invoke>

</bpel:sequence>

</bpel:flow>

L. Trudeau BPEL (13/13)

top related