Presentation bpel
-
Upload
anasse-ej -
Category
Technology
-
view
547 -
download
0
description
Transcript of Presentation bpel
![Page 1: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/1.jpg)
Plan
1. Introduction
2. BPEL, c'est quoi ?
3. BPEL, quelle utilité ?
4. BPEL par l’exemple : HelloWorld
5. BPEL : partie statique et dynamique
6. Activités BPEL
7. Conclusion
2
![Page 2: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/2.jpg)
PROBLÉMATIQUE : SCÉNARIO
Réservation billet d’avion
1. Consulter la liste des vols (Recherche).
2. Choisir le vol que vous souhaitez.
3. Réserver le billet d’avion.
4. Paiement en ligne du billet.
Chercher un hôtel pour le séjour.
1. Faire une recherche sur les hôtels,
2. Choisir l’hôtel que vous souhaitez.
3. Faire une réservation du nombre des jours.
4. Paiement d’une partie de montant en ligne.
3
![Page 3: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/3.jpg)
PROBLÉMATIQUE : SCÉNARIO
Location d’une voiture
1. Consulter le site web d’une agence de location
2. Choisir la voiture souhaitée
3. Réserver cette voiture pour la période souhaitée.
4. Paiement en ligne d’une somme du montant.
4
![Page 4: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/4.jpg)
Problématique : Solution 1 5
SI compagnie
aérien
SI hôtel
SI agence de location
Site web 1
Site web 2
Site web 3
![Page 5: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/5.jpg)
Problématique : Solution 2 6
SI compagnie
aérien
SI hôtel
SI agence de location
Moteur d’orchestration
1
2
3
![Page 6: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/6.jpg)
BPEL, c'est quoi ?
Business Process Execution Language (ou BPEL, prononcé
« bipeul », ou « bipèl ») est un langage de programmation
destiné à l'exécution des procédures d'entreprise.
Procédures d'entreprise : est la manière spécifiée
d'effectuer une activité ou un processus métiers
(Workflow).
Le processus représente le Quoi ?
La procédure représente le Qui fait Quoi ? Où ?
Quand ? Comment ? Combien ? Et Pourquoi
7
![Page 7: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/7.jpg)
Problématique
Processus métiers sont de plus en plus complexes
Applications multiples à intégrer
Fort besoin de paralléliser les processus
Partenaires à intégrer sont nombreux
Hétérogénéité des langages due aux plateformes de
développement
Java
.NET
PHP
Fort besoin d’évolution des processus
Partenaires peuvent évoluer
Intégration de nouveaux processus
8
![Page 8: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/8.jpg)
BPEL, c'est quoi ?
Syntaxe basée sur le format XML
Standard OASIS en V2.0
Fondés sur des concepts proches
Activités, opérations, appels de services
Échanges des messages, modification des messages
Gestion des erreurs, événements
Outillés
Éditeurs graphiques
Moteur d’exécution
9
![Page 9: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/9.jpg)
BPEL, QUELLE UTILITÉ ?
Processus métiers
Requête / Réponse
Modelé de données
Activités et taches
Sous-processus / Services
Processus métier = Processus BPEL
Processus BPEL = Web Service
10
![Page 10: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/10.jpg)
BPEL, QUELLE UTILITÉ ?(EXEMPLE) 11
Processus BPEL pour assistance technique
Reception
Requête
Détails
Requête
Notifier
le client
Tâche utilisateur
FIN
Workflow humaine
Assigner la tâche
Vérifier résultat
Réception
Reponse
App.Assistance
Khalid Ali
Amine
![Page 11: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/11.jpg)
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
Le processus BPEL traite le Workflow suivant:
1. Récupération du message envoyé par le client (chaîne de
caractères)
2. Transformation du message en ajoutant le texte HelloWorld
3. Retourner le nouveau message au client
12
12
![Page 12: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/12.jpg)
BPEL par l’exemple : HelloWorld 13
![Page 13: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/13.jpg)
Génération des fichiers et initialisation
des outils BPEL 14
![Page 14: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/14.jpg)
BPEL par l’exemple : HelloWorld
Gestion
des fichiers
du projet
Editeur
Graphique Palette des
fonctionnalité
s BPEL
15
![Page 15: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/15.jpg)
Edition du BPEL en mode « texte »
Une relation
de type
partenaire
est définie 2 variables
sont définies
3 activités
déclanchées
en séquence
16
![Page 16: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/16.jpg)
BPEL par l’exemple : HelloWorld
définion de
service,Binding
type et d’adresse
PortType pour
exécuter le
service
HelloWorld
17
![Page 17: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/17.jpg)
BPEL par l’exemple : HelloWorld
Pour permettre à
l'ODE Apache de
connaître vos
déclarations ainsi
que vos designs. Vous
devez ajouter un
descripteur
Deploy.xml
18
![Page 18: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/18.jpg)
BPEL par l’exemple : HelloWorld
19
![Page 19: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/19.jpg)
Si on veut retourner la chaine
« HelloWord»+input.
Quelle est la modification à
apporter ?
BPEL par l’exemple : HelloWorld 20
![Page 20: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/20.jpg)
BPEL par l’exemple : HelloWorld 21
![Page 21: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/21.jpg)
BPEL par l’exemple : HelloWorld
Le processus BPEL est
décrit par un WSDL et est
accessible
par un client Service
Web
22
![Page 22: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/22.jpg)
BPEL : partie statique
la partie statique d’un processus est définie par un
document WSDL
Le document WSDL permet de décrire:
Les points d’entrées et de sorties du processus
Définir les types des données (XML Schema) et les messages
utilisés pour décrire l’état du processus
Les opérations qui sont autorisées et qui permettent
d’invoquer le processus
23
![Page 23: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/23.jpg)
BPEL : partie dynamique
La partie dynamique du processus 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
24
![Page 24: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/24.jpg)
BPEL : partie dynamique 25
Orchestration vue locale à un processus
Description de la logique d’exécution des services partenaires et des
messages échangés,
BPEL s’inscrit, dans la description de l’orchestration
![Page 25: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/25.jpg)
Activités BPEL de base (1/3) 26
![Page 26: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/26.jpg)
Activités BPEL de base (2/3) 27
![Page 27: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/27.jpg)
Activités BPEL 28
![Page 28: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/28.jpg)
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
Un processus BPEL reçoit des invocations issues de clients :
Lien de partenaire (PartenerLink) de type client
Pour résumer, un lien de partenaire désigne les relations
entre des partenaires / clients et le processus BPEL
29
![Page 29: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/29.jpg)
Partner Links
Description du
lien de
partenaire lié à
l’interaction
entre le client et
le processus
Description du lien de partenaire lié à
l’interaction entre le processus et le
Service Web PingPong
spécifie le rôle du processus BPEL
spécifie le rôle du
partenaire
30
![Page 30: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/30.jpg)
Variables
BPEL définit la notion de variables qui permet de
manipuler les messages des interactions entre les
partenaires
Une variable est définie par des types et des messages
déclarés dans un WSDL
Une variable est définie par les attributs suivants
name : nom de la variable
type : typée via un type XML Schema par exemple
ou
messageType : typée via un message
31
![Page 31: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/31.jpg)
Variables
Exemple : Définition de variables dans un BPEL
Variables décrites dans le fichier BPEL
Messages décrits dans le fichier WSDL du processus
Messages décrits dans le fichier WSDL du Service Web
BPEL –Orchestration de Web Services
32
![Page 32: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/32.jpg)
Activité : 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
33
![Page 33: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/33.jpg)
Activité : Receive
Exemple : Mise en place de l’activité Receive
Des outils simplifient l’édition d’une activité Receive
34
![Page 34: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/34.jpg)
Activité : 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ée
variable : message contenant le message à retourner
35
![Page 35: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/35.jpg)
Activité : Reply Exemple : Mise en place de l’activité Reply
Des outils simplifient l’édition d’une activité Reply
36
![Page 36: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/36.jpg)
Activité :Assign
L’activité Assign peut être utilisée pour copier des données
d’une variable vers une autre
Possibilité d’utiliser des expressions complexes pour modifier
le contenu des variables (XPath, transformations XSL)
Elle est définie par la balise <assign> qui peut contenir un
ensemble de sous balises <copy>
La balise <copy> contient à son tour des sous balises
<from> et <to> pour exprimer la copie d’un contenu vers
un autre
Structure XML de la balise <assign>
37
![Page 37: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/37.jpg)
Activité : Assign
Exemple : Mise en place de l’activité Assign
Des outils simplifient l’édition d’une activité Assign
38
![Page 38: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/38.jpg)
Activité :Invoke
L’activité Invoke est utilisée pour déclencher l’appel à une
opération sur un portType défini par un lien de partenaire
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
Elle est définie par la balise <invoke>
name : nom de l’activité
partnerLink : identifiant du lien partenaire
operation : l’opération à invoquer
portType : le portType pour de l’opération
inputVariable : informations à transmettre à la requête
ouputVariable : utilisées pour récupérer les données de la
réponse
39
![Page 39: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/39.jpg)
Activité : Invoke
Des outils simplifient l’édition d’une activité Invoke
40
![Page 40: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/40.jpg)
Conclusion
Processus BPEL en mode Synchrone et asynchrone
Gestion des erreurs
Gestion transactionnelle
Journalisation et alertes
Activités complexes (scope, link…)
41
![Page 41: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/41.jpg)
Des questions? 42
![Page 42: Presentation bpel](https://reader033.fdocument.pub/reader033/viewer/2022052508/559c589a1a28ab02588b46a3/html5/thumbnails/42.jpg)
Ressources 43
http://searchsoa.techtarget.com/definition/BPEL
https://www.oasis-open.org
http://www.eclipse.org/ganymede/
http://ode.apache.org/
Oracle. BPEL and Oracle BPEL Process Manager FAQ.