Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Business Process Execution Language — Wikipédia
Business Process Execution Language — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Business Process Execution Language

Description de cette image, également commentée ci-après
OpenESP, un éditeur BPEL.
Informations
Première version Avril 2003Voir et modifier les données sur Wikidata
Type Langage de balisage
Application XML (d)
Langage de flux de travaux (d)Voir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

En informatique, Business Process Execution Language (ou BPEL, prononcé « bipeul », ou « bipèl »), est un langage de programmation destiné à l'exécution des procédures d'entreprise. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.

Le BPEL vise à rendre possible le programming in the large. Les concepts de programming in the large et programming in the small distinguent deux aspects de l'écriture de procédures asynchrones à long terme qu'on voit généralement dans les procédures d'entreprise.

Ce langage a été défini dans sa version 2.0 par une spécification du consortium OASIS à la fin du mois de mars 2007.

Le fichier BPEL

[modifier | modifier le code]

Le fichier BPEL définit le processus, ou l'enchaînement et la logique des actions qui seront exécutées par le moteur d'orchestration. La structure du fichier BPEL est la même que celle du processus. Ce fichier est véritablement le code source de l'application que constitue le processus, le moteur d'orchestration agissant comme une machine virtuelle capable d'exécuter le code BPEL.

La balise <process>

[modifier | modifier le code]

La balise <process> est l'élément racine (au sens XML) du fichier BPEL. C'est à l'intérieur de cette balise que se retrouvera la description complète du processus. Grâce à l'attribut name, on peut donner un nom au processus.

Exemple:

<process 
  name="processName"
  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
  targetNamespace="http://example.com"
  xmlns:tns="http://example.com"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
[...]
 
</process>

La balise <import>

[modifier | modifier le code]

Cette balise permet d'importer un fichier WSDL par exemple :

<import namespace="http://example.com" location="fichier.wsdl" importType="http://schemas.xmlsoap.org/wsdl/" />

La balise <partnerLinks>

[modifier | modifier le code]

Cette balise permet de lier des actions définies dans le fichier WSDL (via partnerLinkType) au process BPEL. L'attribut myRole ou partnerRole définit si c'est une action qui appelle le processus ou si c'est une action appelée par le processus.

<partnerLinks>
  <partnerLink name="PartnerLink1" partnerLinkType="tns:examplePL" myRole="exampleRole" />
</partnerLinks>


La balise <variables>

[modifier | modifier le code]

Cette balise permet de définir les variables utilisées par le processus.

<variables>
  <variable name="var" messageType="tns:exampleMessage" />
</variables>

La balise <sequence>

[modifier | modifier le code]

Cette balise va contenir des actions ou de la structure directement liée à l'exécution du processus.

<sequence name="Main">
  [Actions]
</sequence>


La balise <receive>

[modifier | modifier le code]

Cette balise permet de recevoir un signal de l'extérieur du processus. Cela permet d'instancier un processus par exemple, ou plus généralement d'attendre qu'un évènement se termine avant de continuer le processus.

<receive name="Receive1" createInstance="yes" PartnerLink="PartnerLink1" operation="exampleOperation" portType="examplePortType" variable="var1In"/>


La balise <reply>

[modifier | modifier le code]

Cette balise permet de renvoyer une réponse à un partnerLink qui en attend une. D'abord le receive, puis, après le traitement, le reply.

<reply name="Reply1" PartnerLink="PartnerLink1" operation="exampleOperation" portType="examplePortType" variable="var1Out"/>

La balise <invoke>

[modifier | modifier le code]

Cette balise permet d'appeler un webservice. Elle utilise un partnerLink « sortant » et peut ou non recevoir une réponse.

<invoke name="invoke1" PartnerLink="PartnerLink1" operation="exampleOperation" portType="examplePortType" inputVariable="varIn" outputVariable="varOut"/>

La balise <forEach>

[modifier | modifier le code]

La balise forEach permet d'effectuer une boucle. On déclare un compteur (variable qui sera incrémentée à chaque itération), une valeur de départ et une valeur finale pour ce compteur. La boucle peut s'exécuter en mode parallèle.

<forEach name="superBoucle" parallel="yes" counterName="index">
  <startCounterValue>1</startCounterValue>
  <finalCounterValue>$uneVariable</finalCounterValue>
  [Instructions]...
</forEach>

Dans cet exemple, si $uneVariable est égale à 3, la boucle sera exécutée 3 fois. Le compteur peut être appelé comme n'importe quelle variable (ici $index).

La balise <while>

[modifier | modifier le code]

Boucle.

La balise <repeatUntil>

[modifier | modifier le code]

Boucle.

La balise <correlationSet>

[modifier | modifier le code]

Lorsque plusieurs actions sont lancées en mode parallèle, il peut être indispensable de les relier entre elles, par exemple, un receive peut être lié à un invoke. La balise correlationSet permet de lier des invoke et des receive entre eux. Il ne peut y avoir qu'un seul correlationSet par process, donc lorsqu'on veut utiliser des correlationSet dans un forEach en mode parallèle, le correlationSet doit être défini dans le forEach.

<correlationSet name="CorSetEx" properties="exns:propEx"/>

Pour que ce soit valable, il faut avoir déclaré dans le fichier WSDL (de namespace exns et importé dans le BPEL) ceci :

<vprop:property name="propEx" type="xsd:string"/>

<vprop:propertyAlias propertyName="tns:propEx" messageType="action1Response" part="part">
  <vprop:query>idEx</vprop:query>
</vprop:propertyAlias>

<vprop:propertyAlias propertyName="tns:propEx" messageType="action2Request" part="part">
  <vprop:query>idEx</vprop:query>
</vprop:propertyAlias>

Le namespace vprop correspond à http://docs.oasis-open.org/wsbpel/2.0/varprop et on suppose que les structures des messages action1Response et action2Request est identique:

<part>
  <idEX>valeur</idEx>
  [...]
<part>

Ensuite, dans l'invoke et le receive correspondants, vous renseignez la corrélation :

<invoke ... > <!-- Action1 -->
  <correlations>
    <correlation set="CorSetEx" initiate="yes" pattern="response"/>
  </correlations>
</invoke>

<receive ...> <!-- Action2 -->
  <correlations>
    <correlation set="CorSetEx" initiate="no"/>
  </correlations>
</receive>

Voir aussi

[modifier | modifier le code]

Liens internes

[modifier | modifier le code]
  • Workflow
  • Modélisation de procédure d'entreprise (Business Process Modeling, BPM)
  • Pilotage de procédure d'entreprise (Business Process Management, BPM)
  • Business Process Modeling Notation (BPMN)
  • Processus d'affaires

Liens externes

[modifier | modifier le code]

Spécifications

[modifier | modifier le code]

Cette section liste la plupart des spécifications considérées comme faisant partie des standards BPEL.

  • (en) OASIS WSBPEL TC Webpage
  • (en) OASIS WSBPEL TC Issues List
  • (en) Spécification WS-BPEL 2.0

Implémentations

[modifier | modifier le code]
  • EasyBPEL, moteur Open-Source (LGPL) contribué par PetalsLink, utilisé comme implémentation BPEL dans l'ESB Petals.
  • Apache ODE
  • OW2 Orchestra
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Business_Process_Execution_Language&oldid=221703312 ».
Catégories :
  • Workflow
  • Service web
  • XML
Catégories cachées :
  • Image locale sans image sur Wikidata
  • Page utilisant P571
  • Page utilisant P31
  • Article utilisant une Infobox
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id