Presentation bpel

42
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

description

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. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.

Transcript of Presentation bpel

Page 1: Presentation bpel

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

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

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

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

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

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

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

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

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

BPEL, QUELLE UTILITÉ ?(EXEMPLE) 11

Email

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

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

BPEL par l’exemple : HelloWorld 13

Page 13: Presentation bpel

Génération des fichiers et initialisation

des outils BPEL 14

Page 14: Presentation bpel

BPEL par l’exemple : HelloWorld

Gestion

des fichiers

du projet

Editeur

Graphique Palette des

fonctionnalité

s BPEL

15

Page 15: Presentation bpel

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

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

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

BPEL par l’exemple : HelloWorld

19

Page 19: Presentation bpel

Si on veut retourner la chaine

« HelloWord»+input.

Quelle est la modification à

apporter ?

BPEL par l’exemple : HelloWorld 20

Page 20: Presentation bpel

BPEL par l’exemple : HelloWorld 21

Page 21: Presentation bpel

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

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

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

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

Activités BPEL de base (1/3) 26

Page 26: Presentation bpel

Activités BPEL de base (2/3) 27

Page 27: Presentation bpel

Activités BPEL 28

Page 28: Presentation bpel

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

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

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

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

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

Activité : Receive

Exemple : Mise en place de l’activité Receive

Des outils simplifient l’édition d’une activité Receive

34

Page 34: Presentation bpel

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

Activité : Reply Exemple : Mise en place de l’activité Reply

Des outils simplifient l’édition d’une activité Reply

36

Page 36: Presentation bpel

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

Activité : Assign

Exemple : Mise en place de l’activité Assign

Des outils simplifient l’édition d’une activité Assign

38

Page 38: Presentation bpel

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

Activité : Invoke

Des outils simplifient l’édition d’une activité Invoke

40

Page 40: Presentation bpel

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

Des questions? 42