• Aucun résultat trouvé

Les standards de la composition des services Web

Services Web

2.2 Composition des services Web

2.2.4 Les standards de la composition des services Web

Dans cette partie, nous présenterons la panoplie des standards ayant émergé dans le domaine de la composition des services Web.

a) BPML (Business Process Modeling Language)

C’est un métalangage de modélisation des processus collaboratifs qu’engage l’entreprise avec ses partenaires sur Internet. Il prend en compte aussi les aspects les plus complexes de la gestion et de la coordination de ces processus, en abordant les transactions, la sécurité et la liaison dynamique avec les services Web en cours d’exécution. C’est une spécification neutre

Activité 1

Activité 2

Activité 3

35

des processus métier, visant l’automatisation des échanges entre services Web et applications Web. XML est y utilisé pour le typage des données (XML schéma) et pour le corps exécutable du processus.

En effet, un processus BMPL est un enchainement d’activités simples ou complexes et de processus incluant une interaction entre participants, dans le but de réaliser un objectif métier. Le processus de l’entreprise est perçu comme une collaboration entre participants qui échangent des messages XML. Dans ce contexte:

• Un processus est un ensemble d’activité ;

• Une activité est un ensemble de tâches ;

• Une tâche est une opération élémentaire.

Ce standard est géré par le BPMI (Business Process Management Initiative:

http://www.BPMI.org/), une organisation qui regroupe plus d’une centaine de sociétés

comme: Sun, HP, SAP, Siemens…, et qui c’est fixée comme objectif la formalisation des processus métier des entreprises en utilisant BPML.

b) WSCI (Web Service Choregraphy Interface)

C’est un langage reposant sur XML et qui décrit le flux de messages échangés par un service Web participant à une chorégraphie. Il décrit, ainsi, le comportement externe observable du service par le biais d’interfaces. Pour cela, WSCI propose d’exprimer les dépendances logiques et temporelles entre messages échangés à l’aide de contrôle de séquences, corrélations, gestion de fautes et transactions. Il fonctionne en jonction avec le format WSDL et ses définitions abstraites (opérations, port types). De cette façon il pourra interagir avec un autre service qui exprime les mêmes caractéristiques en WSDL.

En résumé, WSCI décrit l’échange collectif de messages entre les services Web en interaction. Il fournit une vue globale orientée messages de l’ensemble des interactions et ne traite pas l’implémentation interne du processus qui guide les échanges, mais se limite aux interfaces.

Pour plus de détails consultez: http://www.w3.org/TR/wsci/ c) WSCL (Web Service Conversation Language)

Proposé par le consortium W3C (http://www.w3.org/TR/wscl10/), WSCL propose de décrire les services Web à l’aide de documents XML en mettant l’accent sur leurs conversations. En outre, les messages échangés sont pris en compte. WSCL a été pensé pour être employé conjointement avec WSDL.

Les descriptions WSDL peuvent être manipulées par WSCL pour décrire les opérations possibles et leur chorégraphie. En retour, WSDL fournit les concrétisations des définitions de messages et les détails techniques pour les éléments manipulés par WSDL.

d) XLANG

XLANG de Microsoft, permet de décrire formellement les processus d’entreprises comme des interactions entre participants. La description complète d’un processus consiste aussi bien à définir le comportement de chaque participant, qu’à décrire la manière dont l’ensemble des participants interagit pour produire le processus complet. La description du processus

36

consiste, alors, à décrire les messages échangés. La façon dont chaque participant implémente sa composante du processus n’est pas prise en compte par le protocole XLANG. [12]

L’objectif de XLANG est de spécifier seulement les comportements que chaque participant veut exposer à ses partenaires afin de faciliter l’intégration de services. XLANG est le format proposé par Microsoft, pour représenter en XML, l’orchestration des activités qui constituent un processus métier.

XLANG couvre essentiellement les fonctions suivantes: [12]

• L’orchestration des flots de contrôle séquentiels et parallèles ;

• La gestion des transactions longues;

• La gestion des corrélations des messages entre eux;

• La gestion des défaillances et des erreurs ;

• La découverte dynamique de services;

• La gestion de contrats multipartis.

XLANG s’appuie sur WSDL en réutilisant un certain nombre de concepts. Il reprend, en particulier, la description WSDL d’un service en termes de groupe de ports et de liaisons à des protocoles de transport. Chaque port étant constitué, à son tour, d’opérations caractérisées par un échange de messages.

e) WSFL (Web Service Flow Language)

C’est une approche IBM pour décrire les flux métiers. C’est un langage XML permettant de décrire des orchestrations de services Web. WSFL définit deux types de composition de services:

• Le premier type décrit les processus d’entreprises comme des chorégraphies de service Web à l’instar de XLANG. Il explicite des flux de contrôle et de données entre les services Web constituant le processus.

• Le second type définit les processus métier en explicitant les relations producteur/consommateur de messages entre les différents services Web constituant le processus global.

WSFL aborde les workflows par une démarche à deux niveaux:

Il se base sur une approche basée sur un modèle graphique direct pour définir et exécuter les processus métiers.

Il définit une interface publique qui permet aux processus métiers de s’annoncer en tant que services Web.

Un des avantages de WSFL est la possibilité de créer des modèles récursifs: une composition de services Web peut être considérée comme un service Web qui est alors utilisable dans une autre composition.

f) BPEL4WS ( Business Process Execution Language For Web Services)

Nouvelle spécification pour décrire les interactions entre les services Web qui composent un processus métier. Elle s’inspire des deux langages de processus qui sont XLANG de Microsoft et WSFL d’IBM. BPEL s’est imposé comme standard de base pour la composition des services Web.

37

BPEL (Acronyme utilisé au lieu de BPEL4WS) est un langage qui supporte la spécification des schémas de composition et des protocoles de coordination. Il profite de la similarité des techniques de modélisation de ces deux aspects pour fournir un cadre applicatif unique pour définir les deux.

Le schéma de composition exprimé en BPEL est une véritable spécification d’un processus exécutable qui définit la logique d’implémentation d’un service composite. Par ailleurs, le protocole de coordination est une perspective orientée service. Cette dualité descriptive de BPEL, permet de définir la séquence de messages échangés par un service (messages envoyés et reçus) et prend en compte les contraintes d’ordre entre les opérations d’envoi et de réception.

En d’autres termes, BPEL peut être utilisé pour définir le comportement externe d’un service (à travers un processus abstrait: BPEL Abstract) aussi bien que pour spécifier l’implémentation interne (à travers un processus exécutable).

Le processus BPEL spécifie l’ordre exact de l’invocation des services Web participant dans la composition. L’invocation peut se faire soit en parallèle soit séquentiellement. L’expression d’un comportement conditionnel est offerte. Par exemple, lorsque l’invocation d’un service peut être dépendante du résultat d’une invocation antérieure. La construction des boucles, la déclaration de variables et l’affectation de valeur…etc, sont aussi possibles. De plus, il est possible de combiner toutes ces constructions et de définir des processus métiers complexes d’une manière algorithmique. [10]

BPEL suppose que les interfaces des services Web en interaction sont définies en WSDL et que les services échangent les messages WSDL.