Vous êtes sur la page 1sur 2

bpel Page 1 sur 2

index

SOA : WS-BPEL
Introduction
Le Business Process Execution Langage (BPEL) ou langage d'exécution des
processus métier - permet la composition et l'orchestration de ws.
BPEL permet d'écrire des programmes qui utilisent des WS et qui sont des WS.
Un standard était nécessaire pour assurer les liens entre plusieurs WS, au sein
d'une application.
BPEL a donc été conçu pour intégrer un grand nombre d'applications, publiées
sous forme de service, sans dépendance de plate-forme ou de langage, le tout
de manière automatique.
Cette spécification n'est pas la seule visant à créer une infrastructure
d'orchestration pour services Web, mais c'est la plus en vue, car soumise à
l'organisme Oasis par de grands acteurs : IBM, Microsoft, BEA, SAP et Siebel.
BPEL consiste en un langage XML conçu pour définir et gérer les orchestrations
de processus. Dans ce contexte, une orchestration est une collaboration entre
deux ou plusieurs services, mise en place et/ou gérée (orchestré) par un tiers -
en l'occurrence, BPEL. Ce dernier prend en charge la séquence complète
d'invocations des divers services, ou "collaborateurs".

Un processus BPEL dispose donc d'une logique d'invocation, celle-ci pouvant


être synchrone ou asynchrone. BPEL fait fortement usage des autres standards
liés aux services Web, à commencer par WSDL et SOAP .
Chaque processus BPEL étant un service Web à part entière, il dispose donc de
son propre wsdl.

Historique
Initialement BPEL était connu sous le nom de BPEL4WS: « Business Process
Execution Langage for Web Services » .
Comme c'était absolument imprononçable, l'appelation fut modifié en WS-
BPEL .

BPEL est issu des langages WSLF (Web Services Flow Language) et XLANG.

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.

Bpel:Le langage
BPEL: Principe

Dans la pluspart des cas, BPEL est utilisé comme un serveur. C'est à dire que
BPEL sert de proxy à d'autres systèmes.

http://bertrand.guiral.free.fr/jee/bpel.html 08/06/2011
bpel Page 2 sur 2

Dans ce cas, l'enchainement des évènements est le suivant:

z Requête du WS client ,provenant soit d'un browser, soit d'un autre WS


z Reception de la requête par le serveur BPEL.
z La requête client est identifiée comme une nouvelle requête, et un
nouveau process BPEL est utilisé pour servir ce client.
z Le client ccontinue à interagir avec le process BPEL, faisant des requêtes,
jusqu'à ce que l'interaction soit achevée.
z Le process BPEL disparaît.

Cette manière de créer une instance d'un process BPEL en réponse à la requête
d'un client est appélée « Création à la demande » (« Create on demand »).

D'autres applications ont un fonctionnement différent. Par exemple des


programmes de test peuvent être programmés en BPEL, et l'enchainement des
évènements est alors différents. L'éxécution est lancé par le « user », qui
observe ensuite les logs. (Voir par exemple:
http://www.eclipse.org/tptp/platform/documents/design/choreography_html/ ).
Il n'y a pas de « Création à la demande » de Process.

PBEL les bases

BPEL est un langage de programmation XML. Comme tous les langages de


programmation, il a 23 composants de base:

z Des operateursProgramming logic


z Des Types de Données: XSD (« XML Shema Definition »)
z Des Entrées/Sorties (I/O) :WSDL (« Web Services Description Language »)

Regardons un exemple: Le programme « Hello World »

XSD sera utilisé pour définir les types utilisés dans ce programme. Il sera utilisé
pour définir un type « String » qui composera la chaîne « Hello World ».

WSDL sera utilisé pour définir le WS qui imprimera la chaîne.

BPEL mettra tout cela ensemble pour créer la chaîne et l'imprimer.

References
z tutorial IBM ode + eclipse
z tutorial IBM BPML+ eclipse

http://bertrand.guiral.free.fr/jee/bpel.html 08/06/2011