Vous êtes sur la page 1sur 13

02/11/2020

Processus métier

Dr. Rim Samia Kaabi •Un processus métier décrit des interactions entre des
agents (personnes, services, organisations) et des systèmes
d’information (logiciels, sous-systèmes).
SOA: Gestion des processus métier
•Les différentes entités qui interagissent dans un processus
Composition de services web
donné sont les participants de ce processus.

•Le processus métier est déterminé par un objectif précis :


produire une facture d’achat de fournitures, éditer un
catalogue électronique, etc.

1 2

Objectifs de l’approche

Un processus métier, dans le domaine des services Web :


• repose sur la coopération entre applications participantes
« faiblement couplées » ;
• peut être de courte durée (et mis en œuvre dans le cadre
d’une transaction atomique) ou bien de longue durée (avec
des états intermédiaires visibles) ;
• peut échouer partiellement, déclencher des situations
d’exception et gérer des compensations ;
• peut être mis en œuvre par l’enchaînement de plusieurs
transactions atomiques et/ou imbriquées.

3 4

1
02/11/2020

Objectifs de l’approche Principe d’une approche à


base de services

5 6

Pourquoi pas CORBA, DCOM, Etude de cas


RMI

7 8

2
02/11/2020

Composition des services Vocabulaire…

• Pour atteindre un objectif, il faut combiner les


fonctionnalités de plusieurs services
– Articulation de différents
services élémentaires S4
S2
(composant)
S1 S3

• Un service comme un processus


– Chaque tâche est rempli par un service composant

9 10

Orchestration Des outils pour la conception/exécution


de l’orchestration

11 12

3
02/11/2020

Composition des services


• Plusieurs acteurs
– Pas toujours connus au démarrage
• Temps d'exécution long
BPEL4WS: Business Process Execution
– Transactions de longue durée
– Nécessité d'un état persistant pour le processus Language for Web Service
– Plusieurs instances simultanées pour un même processus
• Transactions complexes
– Multiparties
– Non annulables, mais compensables
• Vue a haut niveau
– Détails gères par les services

13 14

BPEL Historique

• Langage pour l'orchestration de services


• Décrit un enchainement d'actions (workow)
• Langage et moteur d'execution dédiés au processus métier :
• Acteurs multiples et dynamiques
• Transaction complexes
• Longue durée
• Syntaxe XML

15 16

4
02/11/2020

WS BPEL WS BPEL

• BPEL distingue 2 types de processus : Dans la plupart des cas, BPEL est utilisé comme un serveur. C'est à
dire que BPEL sert de proxy à d'autres systèmes. Dans ce cas,
– Processus abstrait l'enchainement des évènements est le suivant:
• Spécification du comportement des partenaires par • Requête du WS client, provenant soit d'un browser, soit d'un
rapport aux messages échangés autre WS.
• Le processus abstrait peut être relié à une chorégraphie • Réception de la requête par le serveur BPEL.
• La requête client est identifiée comme une nouvelle requête, et
– Processus exécutable (concret) un nouveau processus BPEL est utilisé pour servir ce client.
• Spécification de l’ordre d’exécution des activités, des • Le client continue à interagir avec le processus BPEL, faisant des
partenaires concernés, des messages échangés… requêtes, jusqu'à ce que l'interaction soit achevée.
• Moteur d’orchestration • Le processus BPEL disparaît.

17 18

BPEL: les bases BPEL: les outils

• BPEL est un langage de programmation XML. Deux catégories d’outils sont à distinguer :
• Comme tous les langages de programmation, il a 23 composants - Editeur graphique de processus BPEL
de base : - Moteur BPEL intégré dans la majorité des serveurs d’application
• Des operateurs Programming logic
• Des Types de Données: XSD (« XML Shema Definition ») Les solutions BPEL proposées par les éditeurs de logiciels fournissent à
• Des Entrées/Sorties (I/O) :WSDL (« Web Services Description la fois l’éditeur et le serveur. Les éditeurs graphiques sont généralement
Language ») intégrables dans les environnements de développement (Eclipse,
Netbeans, Visual Studio, …)

19 20

5
02/11/2020

BPEL: les outils Exemple d’un scénario

Les outils les plus connus : Inscription d’un étudiant à un institut universitaire
- OpenESB (via Glassfish 2.1) et Netbeans 6.7.1 : https://open-
esb.dev.java.net/
- Apache ODE et Eclipse BPEL Editor : http://ode.apache.org/ et
http://www.eclipse.org/bpel/
- JBoss jBPM (uniquement le moteur BPEL) :
http://www.jboss.com/products/jbpm/
- Oracle BPEL Process Manager (Weblogic + JDeveloper) :
http://www.oracle.com/technology/bpel
- Orchestra : http://orchestra.ow2.org
- IBM (Weblogic + Workshop) : BPEL for Windows Workflow
Foundation (Visual Studio et Biztalk)
21 22

1ère solution : l’utilisateur se rend 2ème solution : l’utilisateur n’utilise


sur chaque site de l’administration que le site web de l’institut qui
concernée comporte un workflow complet

23 24

6
02/11/2020

BPEL : le projet BPEL : le projet

Partie statique
Un projet BPEL se compose de trois catégories de fichiers : est définie par un document WSDL qui permet de :
- les fichiers de description des processus (*.bpel) - décrire les points d’entrées et de sorties du processus
- les fichiers de description des Services Web (*.wsdl et *.xsd) - définir les types des données (XML Schema) et les messages utilisés
- les fichiers de déploiement (*.xml) dont la structure dépend pour décrire l’état du processus
fortement du moteur BPEL utilisé. - décrire les opérations qui sont autorisées et qui permettent d’invoquer
le processus

Partie dynamique
est décrite par le fichier BPEL. Ce document BPEL permet de décrire :
- l’ordonnancement des différentes sous étapes du processus
- l’invocation vers les opérations des Services Web partenaires
- la logique et l’état du processus
25 26

Structure d’un fichier BPEL BPEL par l’exemple :


HelloWorld

Le processus BPEL est décrit par le Service Web suivant : une


opération makeHello qui prend en paramètre une chaîne de caractère
et retourne une chaîne de caractère

- Récupération du message envoyé par le client (chaîne de caractères)


- Invocation d’un Service Web externe (partenaire) avec comme
paramètre la chaîne de caractères reçue par le processus
- Retourner au client le message récupéré de l’invocation précédente

27 28

7
02/11/2020

Fichier BPEL complet Fichier BPEL complet

29 30

Fichier BPEL complet Fichier BPEL complet

31 32

8
02/11/2020

Fichier BPEL complet Partner links

• Du point de vue des clients, le processus BPEL est un Service Web.


• Deux façons d’interagir entre un processus BPEL et des Web
Services externes :
- Un processus BPEL invoque des opérations issues d’autres Web
Services (dit Partenaires): lien de partenaire (PartenerLink) de type
invocation

33 34

Partner links Partner links

Un processus BPEL reçoit des invocations issues de clients : lien de • Pour résumer, un lien de partenaire désigne les relations entre des
partenaire (PartenerLink) de type client partenaires / clients et le processus BPEL.
• Un lien de partenaire est représenté dans le fichier BPEL par un
élément partnerLink. Il contient les attributs suivants :
- name : nom donné au partnerLink
- myRole : spécifie le rôle du processus BPEL
- partnerRole : spécifie le rôle du partenaire ou du client
- partnerLinkType : type de partnerLink défini dans la description WSDL

• Si l’attribut myRole est uniquement utilisé (sans partnerRole), seules les


interactions vers le processus sont autorisées. Si l’attribut partnerRole
est uniquement utilisé (sans myRole) seules les interactions vers les
partenaires et les clients sont autorisés. Les deux rôles peuvent être
35 utilisés en même temps. 36

9
02/11/2020

Partner Link Types Partner Link Types

• Un PartnerLinkType décrit la relation entre deux services en


détaillant le rôle que chaque service implémente.
• Chaque rôle spécifie un PortType (issu du WSDL) qui doit être
implémenté par le service qui implémente ce rôle

37 38

Variables Variables

• Les messages sont envoyés et reçus vers et de partenaires, il est


donc nécessaire de les sauvegarder pour être utilisés par le
processus BPEL.
• Ce dernier définit la notion de variables qui permet de manipuler
les messages des interactions entre les partenaires.
• Ainsi, une variable est définie par des types et des messages
déclarés dans un WSDL.
• Chaque variable est définie par les attributs suivant :
- name : nom de la variable
- type : typée via un type XML Schema par exemple Ou
- messageType : typée via un message

39 40

10
02/11/2020

Activités Activités

Receive
• L’activité Receive est utilisée pour la mise en attente du processus
tant qu’un message n’est pas envoyé par un partenaire. Elle est
utilisée généralement pour instancier le processus BPEL (première
activité du processus). Elle est définie par la balise <receive> dont
les principaux attributs de cette activité sont :
- name : nom de l’activité
- partnerLink : lien partenaire utilisé pour identifier le partenaire qui
doit déclencher le processus
- operation : identifiant de l’opération que le processus doit
implémenter
- variable : où stocker le message envoyé par le partenaire
41 42

Activités Activités

Reply
• L’activité Reply permet d’envoyer une réponse au message envoyé
à l’activité Receive. Le couple Reply / Receive décrit une opération
de type requête / réponse. Elle est définie par la balise <reply> dont
les principaux attributs de cette activité sont :
- name : nom de l’activité
- partnerLink : identifiant du lien partenaire utilisé pour identifier le
partenaire qui doit recevoir le message de réponse
- operation : identifiant de l’opération que le processus a implémenté
- variable : message contenant le message à retourner

43 44

11
02/11/2020

Activités Activités

Assign
• L’activité Assign peut être utilisée pour copier des données d’une
variable vers une autre. Il est possible d’utiliser des expressions
complexes pour modifier le contenu des variables (XPath,
transformations XSL).
• L’activité Assign est définie par la balise <assign> qui peut contenir
un ensemble de sous balises <copy> qui contient à son tour des sous
balises <from> et <to> pour exprimer la copie d’un contenu vers un
autre.

45 46

Activités Activités

Invoke
• utilisée pour déclencher l’appel à une opération sur un portType
défini par un lien de partenaire. Seules les opérations suivant le
modèle One-way et Request/Response peuvent être invoquées par
un BPEL. L’invocation d’opération nécessite l’utilisation de
variables en entrée et en sortie pour initialiser la requête et la
réponse.
• L’activité Invoke est définie par la balise <invoke> et possède les
attributs suivants :
- name : nom de l’activité
- partnerLink : identifiant du lien partenaire
- operation : l’opération à invoquer
- portType : le portType pour de l’opération
47
- inputVariable : informations à transmettre à la requête 48
- ouputVariable : utilisées pour récupérer les données de la réponse

12
02/11/2020

Activités Activités

Activités Sequence, Flow, While, Pick,…


• L’ordonnancement des activités est défini par des activités
complexes.
• L’activité Sequence permet d’exprimer que des activités soient
déclenchées dans un ordre donné.
• L’activité Flow permet de définir qu’une ou plusieurs activités soient
déclenchées de manière concurrente.
• L’activité While permet de définir qu’une activité peut être répétée
plusieurs fois.
• L’activité Pick permet de mettre en attente une activité jusqu’à
l’arrivée d’un message

49 50

51

13

Vous aimerez peut-être aussi