SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
BPEL
Un orchestre de services
Luc Trudeau
4 avril 2014
Cette pr´esentation de Luc Trudeau est mise `a disposition selon les termes
de 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)
Orchestration
BPEL permet de d´efinir un nouveau service compos´e qui orchestre
l’ex´ecution de services.
Ref : http://soapatterns.org/design patterns/composition autonomy
L. Trudeau BPEL (3/13)
Exemple d’orchestration
Supposons 3 services
Tambour (drumService)
M´elodie (melodyService)
Harmonie (harmonyService)
L. Trudeau BPEL (4/13)
Tambour (drum.wsdl)
Drum Service
Drum PortType (avec l’op´eration play)
L. Trudeau BPEL (5/13)
M´elodie (melody.wsdl)
Melody Service
Melody PortType (avec l’op´eration play)
L. Trudeau BPEL (6/13)
Harmonie (harmony.wsdl)
Harmony Service
Harmony PortType (avec l’op´eration play)
L. Trudeau BPEL (7/13)
Orchestre (Ochestra.wsdl)
Nous allons concevoir un service compos´e avec BPEL permettant
d’orchestrer les services : tambour, m´elodie et harmonie.
Logique d’affaires
Il faut d´emarrer les services m´elodie et harmonie en mˆeme 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 ex´ecute le service compos´e)
Le service tambour
Le service m´elodie
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’ex´ecution simultan´ee 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’op´eration play avec comme param`etre la
variable HarmonyServicePLRequest. Pour ce faire, nous utilisons
le lien vers un partenaire d´efini par HarmonyServicePL.
L’op´eration play fait partie du portType Harmony qui est d´efini
dans le fichier harmony.wsdl.
L. Trudeau BPEL (11/13)
BPEL (XML)
Invocation du service m´elodie
<bpel:invoke name="InvokeMelody" partnerLink="MelodyServicePL
" operation="play" portType="melody:Melody" inputVariable
="MelodyServicePLRequest" outputVariable="
MelodyServicePLResponse"/>
Souvenez-vous du PortType contenu dans melody.wsdl notez
l’op´eration 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)

Weitere ähnliche Inhalte

Mehr von Luc Trudeau

Mehr von Luc Trudeau (10)

Revue de l'année 2019 dans le monde des codecs videos
Revue de l'année 2019 dans le monde des codecs videosRevue de l'année 2019 dans le monde des codecs videos
Revue de l'année 2019 dans le monde des codecs videos
 
I don’t care if you have 360 Intra directional predictors
I don’t care if you have 360 Intra directional predictorsI don’t care if you have 360 Intra directional predictors
I don’t care if you have 360 Intra directional predictors
 
Les technologies actuelles et futures de l'ott
Les technologies actuelles et futures de l'ottLes technologies actuelles et futures de l'ott
Les technologies actuelles et futures de l'ott
 
Chroma from Luma Intra Prediction for AV1
Chroma from Luma Intra Prediction for AV1Chroma from Luma Intra Prediction for AV1
Chroma from Luma Intra Prediction for AV1
 
Chroma From Luma Status Update
Chroma From Luma Status UpdateChroma From Luma Status Update
Chroma From Luma Status Update
 
HTTP Long Polling is awesome
HTTP Long Polling is awesomeHTTP Long Polling is awesome
HTTP Long Polling is awesome
 
UML Class Diagrams are Awesome
UML Class Diagrams are AwesomeUML Class Diagrams are Awesome
UML Class Diagrams are Awesome
 
Inverting Dependencies
Inverting DependenciesInverting Dependencies
Inverting Dependencies
 
HTTP et REST
HTTP et RESTHTTP et REST
HTTP et REST
 
Architecture vs Design
Architecture vs DesignArchitecture vs Design
Architecture vs Design
 

Orchestre de services

  • 1. BPEL Un orchestre de services Luc Trudeau 4 avril 2014 Cette pr´esentation de Luc Trudeau est mise `a disposition selon les termes de la licence Creative Commons Attribution 4.0 International.
  • 2. 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)
  • 3. Orchestration BPEL permet de d´efinir un nouveau service compos´e qui orchestre l’ex´ecution de services. Ref : http://soapatterns.org/design patterns/composition autonomy L. Trudeau BPEL (3/13)
  • 4. Exemple d’orchestration Supposons 3 services Tambour (drumService) M´elodie (melodyService) Harmonie (harmonyService) L. Trudeau BPEL (4/13)
  • 5. Tambour (drum.wsdl) Drum Service Drum PortType (avec l’op´eration play) L. Trudeau BPEL (5/13)
  • 6. M´elodie (melody.wsdl) Melody Service Melody PortType (avec l’op´eration play) L. Trudeau BPEL (6/13)
  • 7. Harmonie (harmony.wsdl) Harmony Service Harmony PortType (avec l’op´eration play) L. Trudeau BPEL (7/13)
  • 8. Orchestre (Ochestra.wsdl) Nous allons concevoir un service compos´e avec BPEL permettant d’orchestrer les services : tambour, m´elodie et harmonie. Logique d’affaires Il faut d´emarrer les services m´elodie et harmonie en mˆeme temps, suivis du service tambour 5 secondes plus tard. L. Trudeau BPEL (8/13)
  • 9. ´Etablir les liens avec les partenaires (PartnerLinks) Dans ce contexte, il y a 4 partenaires : Le client (celui qui ex´ecute le service compos´e) Le service tambour Le service m´elodie 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)
  • 10. Processus BPEL Eclipse BPEL Designer (http://www.eclipse.org/bpel/) L. Trudeau BPEL (10/13)
  • 11. BPEL (XML) Voici le XML correspondant `a l’ex´ecution simultan´ee 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’op´eration play avec comme param`etre la variable HarmonyServicePLRequest. Pour ce faire, nous utilisons le lien vers un partenaire d´efini par HarmonyServicePL. L’op´eration play fait partie du portType Harmony qui est d´efini dans le fichier harmony.wsdl. L. Trudeau BPEL (11/13)
  • 12. BPEL (XML) Invocation du service m´elodie <bpel:invoke name="InvokeMelody" partnerLink="MelodyServicePL " operation="play" portType="melody:Melody" inputVariable ="MelodyServicePLRequest" outputVariable=" MelodyServicePLResponse"/> Souvenez-vous du PortType contenu dans melody.wsdl notez l’op´eration play (c’est celle qu’on invoque) L. Trudeau BPEL (12/13)
  • 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)