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.
Dans ce cas, l'enchainement des évènements est le suivant: 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: 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