Vous êtes sur la page 1sur 15

Master 2 IDTW 2013/2014

Composition de Service

06/12/2013 Service web et structure de données H. Meziane 1


La composition de service : Définition

La composition des services web est le


processus de créer de nouveaux services
web à partir de deux ou plusieurs services
web déjà présents et publiés sur le web.

06/12/2013 Service web et structure de données H. Meziane


2
Objectif

 L’objectif de la composition de services Web est de


créer de nouvelles fonctionnalités en combinant des
fonctionnalités offertes par des services existants.

 La composition de services web est un domaine qui a


suscité l’intérêt de nombreux organismes de recherche
académiques et industriels.

06/12/2013 Service web et structure de données H. Meziane


3
Problématique
Avec l’introduction des web services, les termes tels que “web
services composition” ou “web services flow” ont été utilisés pour
décrire la composition de services web dans un flux de procédé
(processus). Cela a relancé les travaux de recherche sur les
problèmes d’interopérabilité et coordination de services web.

La solution proposée par la plupart de ces travaux consiste à


modéliser le logiciel par un procédé. Ce procédé gère la
coordination des tâches et des opérations de ce logiciel. Ces
travaux de recherche autour de la coordination de services web
ont donné naissance à deux nouveaux termes : la Chorégraphie et
l’Orchestration des services web.
Note : un procédé spécifie les activités et l’ordre de leurs exécutions, comme il spécifie
les partenaires impliqués dans le procédé, des messages échangés entre ces partenaires

06/12/2013 Service web et structure de données H. Meziane


4
Orchestration (1/2)

 L'orchestration repose sur un processus central (qui


peut être un autre service Web) qui prend le contrôle
des services web impliqués dans la composition et
coordonne l’exécution de leurs opérations suivant les
besoins de l’orchestration. Les service Web concernés ne
savent pas qu’ils participent à la composition et qu’ils
font partie d’un processus de plus haut niveau. Seul le
coordonateur central le sait et l’orchestration est donc
centralisée avec les définitions explicites des opérations
et l’ordre d’invocation des services web.

06/12/2013 Service web et structure de données H. Meziane


5
Orchestration (2/2)

Service Web Service Web


1 2
2:Invoque
1:Reçoit de

5:Répond à Orchestration
(Coordinateur) 4:…n:Invoque

3:Invoque

Service Web Service Web


3 n

Figure 1 : Orchestration de services web

06/12/2013
Service web et structure de données H. Meziane
6
Chorégraphie (1/2)

 la chorégraphie ne repose pas sur un service Web principal.


Chacun des services web impliqué sait exactement quand
exécuter ses opérations et avec qui interagir. La chorégraphie
est un effort collectif centralisé sur l’échange de message dans
les processus métier. Tous les participants doivent connaître le
processus, les opérations à exécuter et le moment choisi pour
les échanges de messages intervenant dans la composition.

Note : processus métier de l'entreprise est un ensemble d'activités reliées les unes aux
autres pour réaliser un objectif, dans un contexte généralement organisationnel qui définit
des rôles et des relations.
06/12/2013 Service web et structure de données H. Meziane
7
Chorégraphie (2/2)

Service Web
5:Invoque 1 1:Invoque

Service Web Service Web


4 3:Répond à 2

2:Invoque
4:Invoque
Service Web
3

Figure 1 : Chorégraphie de services web

06/12/2013
Service web et structure de données H. Meziane
8
Langages d’orchestration et chorégraphie de services web
 En termes de standardisation, de nombreuses approches de
modélisation de la composition ont été proposées en terme de
langages. L'émergence de langages pour la coordination des
services web est à base des deux paradigmes qui sont
l'orchestration et la chorégraphie. Parmi ces langages nous avons :

WSCI (Web Services Choreography Interface)

 BPML (Business Process Modeling Language)


 WSCL (Web Services Conversation Language)
 BPEL4WS (Business Process Execution Language for Web services)

06/12/2013 Service web et structure de données H. Meziane


9
BEPL

 Le langage BPEL4WS, (Business Process Execution Language for


Web Services) ou tout simplement BPEL est une spécification de
IBM, Microsoft, et BEA;
 BPEL a été conçu dans le seul but de composer des services, et
n’est donc pas préconisé pour construire des services
élémentaires « de travail ».
 Plus fondamentalement, BPEL permet aux entreprises de
modéliser et ainsi formaliser leurs processus de fonctionnement,
ce qui permet de les optimiser.

06/12/2013 Service web et structure de données H. Meziane


10
Anatomie d’un processus BPEL (1/2)
BPEL permet de concevoir des processus synchrones ou
asynchrones.
 Quand un client se connecte à un service synchrone, il attend
patiemment que ce dernier se termine avant de continuer son
travail (c’est donc essentiellement un appel de fonction comme
on l’entend d’habitude).
 Souvent toutefois, un service peut prendre beaucoup de temps
pour se terminer, et il peut donc être utile d’effectuer des appels
asynchrones. Le client demande alors au service d’effectuer un
certain travail, mais n’attend pas que celui-ci soit effectué. Le
service préviendra lui-même le client (un procédé appelé
callback) quand il a terminé.

06/12/2013 Service web et structure de données H. Meziane


11
Anatomie d’un processus BPEL (2/2)
 le fonctionnement d’un processus BPEL synchrone est représenté dans la
zone grisée. Le client initie le processus (ce qui cause une instanciation de ce
dernier), et l’instance récupère l’input fourni. Il effectue ensuite son
traitement qui consistera essentiellement à invoquer d’autres services à son
tour. Finalement, l’instance du processus renvoie l’output au client.

recevoirInput
Service

Client
Activité
Service

renvoyerOutput

Fig. 3 - Structure d’un processus BPEL synchrone


06/12/2013 Service web et structure de données H. Meziane 12
Processus exécutable et processus abstrait
 BPEL supporte les deux modèles (orchestration ,chorégraphie),
au travers de processus métier exécutable ou abstrait :
Les processus métiers exécutables : spécifie l’ordre d’exécution
des activités constituant le processus, des partenaires impliqués
dans le processus, des messages échangés entre ces partenaires, et
le traitement de fautes et d’exceptions spécifiant le comportement
dans les cas d’erreurs ou d’exceptions. Ces processus suivent le
modèle d’orchestration et doivent être exécuter par un moteur
BPEL.
Les processus métiers abstraits : spécifient uniquement les
échanges de messages entre les parties. Ils ne décrivent pas le
comportement interne de chacun d’eux (n’inclut par les détails
internes du flux) et ne sont pas exécutable et sont rarement
utilisés. Ils suivent le modèle de chorégraphie.
06/12/2013 Service web et structure de données H. Meziane
13
Les concepts fondamentaux
 Un processus BPEL est constitué d’étapes. Chacune d’elles est
appelée une activités. Les activités de base sont les briques
élémentaire et sont utilisées pour des tâches communes comme
celles listées ci-après :
• Invocation de service web, à l’aide de <invoke>
• Attente que le client invoque le processus par l’envoi d’un message, a l’aide
de <receive> (réception d’une requête)
• Génération d’une réponse pour les opérations synchrones, à l’aide de
<reply>
• Manipulation des données de variables, à l’aide de <assign>
• Signale des fautes, et d’exceptions à l’aide <throw>
• Attente pour une durée déterminée , à l’aide de <wait>
• Arrêt du processus entier, , à l’aide de <terminate>

06/12/2013 Service web et structure de données H. Meziane


14
Les activités structurées
 Nous pouvons assembler ces activités de base et autres et
définir ainsi des algorithmes complexes qui spécifieront les
étapes exactes d’un processus métier. Pour combiner ces
activités, BPEL supporte plusieurs activités structurées. Les plus
importantes sont :
• La séquence ( <Sequence>) , pour définir un ensemble d’activités qui
seront exécutées les unes à la suite des autres.
• Le flux (<Flow>), pour définir un ensemble d’activités qui seront
exécutées en parallèle.
• L’aiguillage (<Switch > ), pour implémenter des embranchements.
• Le tant que (<While>) pour définir des boucle.
• La possibilité de choisir un chemin parmi d’autres à l’aide de <Pick >.

06/12/2013 Service web et structure de données H. Meziane


15

Vous aimerez peut-être aussi