I.2. Approches existantes
Il existe principalement deux grandes approches de composition :
l'approche statique et l'approche dynamique. Nous présentons
brièvement chacune de ces approches dans ce qui suit.
I.2.1. Composition statique des services web
Dans cette approche, les services web à composer sont
choisis à l'heure de faire l'architecture et le design. Les composants
sont choisis et reliés ensemble, avant d'être compilés et
déployés [2]. Les techniques de composition statiques sont
définies à l'aide de processus métier :
orchestration et chorégraphie [1].
Orchestration : L'orchestration de services
web exige de définir l'enchaînement des services web selon un
canevas prédéfini, et de les exécuter selon un script
d'orchestration. Ces derniers (le canevas et le script) décrivent les
interactions entre services web en identifiant les messages, et en
spécifiant la logique et les séquences d'invocation. Le module
exécutant le script d'orchestration de services web est appelé un
moteur d'orchestration. Ce moteur d'orchestration est une entité
logicielle qui joue le rôle d'intermédiaire entre les services en
les appelant suivant le script d'orchestration [5]. Ce type de composition
permet de centraliser l'invocation des services web composants.
La « figure 3.2 » illustre l'orchestration [5]. La
requête du client (logiciel ou humain) est transmise au moteur
d'exécution (Moteur). Ce dernier, d'après le processus
préalablement défini, appelle les services Web (ici,
SW1, SW2, SW3 et SW4) selon l'ordre
d'exécution.
SW1 SW2
1 2
Moteur
Client
4
3
Requête Résultat requête
SW3
SW4
Figure 3.2 : vue générale de
l'orchestration
BPML - Business Process Modeling
Language: est un exemple des langages d'orchestration.
Chorégraphie : Contrairement à
l'orchestration, la chorégraphie n'a pas un coordinateur central. Chaque
service web mêlée dans la chorégraphie connaît
exactement quand ses opérations doivent être
exécutées et avec qui l'interaction doit avoir lieu [21]. Elle
est associée à l'échange de messages entre services web
plutôt qu'à un processus métier exécuté par
un seul partenaire.
La « figure 3.3 » permet d'illustrer une vue
générale d'une composition de services web de type
chorégraphie [5]. Le client (logiciel ou humain) établit une
requête qui est satisfaite par l'exécution automatique de quatre
services web (SW1, SW2, SW3 et SW4).
Requête
SW1 SW2
Résultat
Client
Envoi du résultat du SW Echange de messages
SW4 SW3
Figure 3.3 : vue générale de la
chorégraphie Les principaux langages de chorégraphie de
services web sont : WSCL(1), WSCI(2) et
XLANG(3).
Qu'il s'agisse d'orchestration ou de chorégraphie,
l'agrégation des différents services web se fait de
manière statique avant exécution. L'agrégation obtenue est
rigide et donc difficilement modifiable [1]. Ainsi si les fournisseurs de
services proposent d'autres services ou changent les anciens services, des
incohérences peuvent être causées, ce qui demanderait un
changement de l'architecture du logiciel, voire de la définition du
processus et créerait l'obligation de faire une nouvelle conception du
système [2].
|