SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
2

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
3

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.
4

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.
5

Problématique : Solution 1

Site web 1

Site web 2

Site web 3

SI compagnie
aérien

SI hôtel

SI agence de location
6

Problématique : Solution 2
1

SI compagnie
aérien

2
SI hôtel

3
Moteur d’orchestration

SI agence de location
7

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'effectuer
(Workflow).

d'entreprise : est la
une activité ou un

manière spécifiée
processus métiers

 Le processus représente le Quoi ?
 La procédure représente le Qui fait Quoi ? Où ?
Quand ? Comment ? Combien ? Et Pourquoi
8

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
BPEL, c'est quoi ?

9


Syntaxe basée sur le format XML



Standard OASIS en V2.0



Fondés sur des concepts proches



Échanges des messages, modification des messages





Activités, opérations, appels de services
Gestion des erreurs, événements

Outillés


Éditeurs graphiques



Moteur d’exécution
10

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
11

BPEL, QUELLE UTILITÉ ?(EXEMPLE)
App.Assistance

Amine

Processus BPEL pour assistance technique
Reception
Requête

Détails
Requête

Tâche utilisateur

Workflow humaine
Assigner la tâche
Khalid

Réception
Reponse
Vérifier résultat
Email

Notifier
le client
FIN

Ali
BPEL par l’exemple : HelloWorld

12


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
13

BPEL par l’exemple : HelloWorld
14

Génération des fichiers et initialisation
des outils BPEL
15

BPEL par l’exemple : HelloWorld

Gestion
des fichiers
du projet

Editeur
Graphique

Palette des
fonctionnalité
s BPEL
16

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
17

BPEL par l’exemple : HelloWorld

définion de
service,Binding
type et d’adresse
PortType pour
exécuter le
service
HelloWorld
18

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
19

BPEL par l’exemple : HelloWorld
20

BPEL par l’exemple : HelloWorld
Si on veut retourner la chaine
« HelloWord»+input.
Quelle est la modification à
apporter ?
21

BPEL par l’exemple : HelloWorld
22

BPEL par l’exemple : HelloWorld

Le processus BPEL est
décrit par un WSDL et est
accessible
par un client Service
Web
BPEL : partie statique

23


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
BPEL : partie dynamique

24



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
25

BPEL : partie dynamique

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
26

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

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

Activités BPEL
Partner Links

29


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
30

Partner Links

écifie le rôle du processus BPEL

spécifie le rôle du
partenaire

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
Variables

31







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
32

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

BPEL –Orchestration de Web Services

Messages décrits dans le fichier WSDL du Service Web
Activité : Receive

33






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
34

Activité : Receive
 Exemple : Mise en place de l’activité Receive

Des outils simplifient l’édition d’une activité Receive
Activité : Reply

35






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
36

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

Des outils simplifient l’édition d’une activité Reply
Activité :Assign

37











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>
38

Activité : Assign
 Exemple : Mise en place de l’activité Assign

Des outils simplifient l’édition d’une activité Assign
Activité :Invoke

39






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
40

Activité : Invoke

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

Conclusion
Processus BPEL en mode Synchrone et asynchrone
Gestion transactionnelle

Activités complexes (scope, link…)

Gestion des erreurs

Journalisation et alertes
42

Des questions?
43

Ressources
 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.

Contenu connexe

Tendances

Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuéesFranck SIMON
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, Université Hassan II Casablanca
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java Youness Boukouchi
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOALilia Sfaxi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)Klee Group
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes LogicielsGhazouani Mahdi
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 

Tendances (20)

Chp2 - SOA
Chp2 - SOAChp2 - SOA
Chp2 - SOA
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
eServices-Chp2: SOA
eServices-Chp2: SOAeServices-Chp2: SOA
eServices-Chp2: SOA
 
Remote method invocation
Remote method invocationRemote method invocation
Remote method invocation
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
OpenESB et BPEL
OpenESB et BPELOpenESB et BPEL
OpenESB et BPEL
 

Similaire à Presentation bpel

Business process execution language
Business process execution languageBusiness process execution language
Business process execution languageBilel Abed
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpelLilia Sfaxi
 
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbintro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web Nazih Heni
 
Rest ful architecture
Rest ful architectureRest ful architecture
Rest ful architecturezaghir
 
presentation de html partie par partie et detaillee.pptx
presentation de html partie par partie et detaillee.pptxpresentation de html partie par partie et detaillee.pptx
presentation de html partie par partie et detaillee.pptxBrahimKarimi
 
Green System University - Development JDEdwards (French Version) - Tome2
Green System University - Development JDEdwards (French Version) - Tome2Green System University - Development JDEdwards (French Version) - Tome2
Green System University - Development JDEdwards (French Version) - Tome2Minh-Tri Nguyen
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flexdavid deraedt
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3Abdessamad Hamouch
 
ait_mlouk_addi_presentation_pfe
ait_mlouk_addi_presentation_pfeait_mlouk_addi_presentation_pfe
ait_mlouk_addi_presentation_pfeAddi Ait-Mlouk
 

Similaire à Presentation bpel (20)

Business process execution language
Business process execution languageBusiness process execution language
Business process execution language
 
Axis2 clients fr
Axis2 clients frAxis2 clients fr
Axis2 clients fr
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbintro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
ModéLisation De Workflow En Uml
ModéLisation De Workflow En UmlModéLisation De Workflow En Uml
ModéLisation De Workflow En Uml
 
comment realiser un Service Web
comment realiser un Service Web comment realiser un Service Web
comment realiser un Service Web
 
Rest ful architecture
Rest ful architectureRest ful architecture
Rest ful architecture
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
presentation de html partie par partie et detaillee.pptx
presentation de html partie par partie et detaillee.pptxpresentation de html partie par partie et detaillee.pptx
presentation de html partie par partie et detaillee.pptx
 
Green System University - Development JDEdwards (French Version) - Tome2
Green System University - Development JDEdwards (French Version) - Tome2Green System University - Development JDEdwards (French Version) - Tome2
Green System University - Development JDEdwards (French Version) - Tome2
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
atam guide de developpement v1.3
atam guide de developpement v1.3atam guide de developpement v1.3
atam guide de developpement v1.3
 
ait_mlouk_addi_presentation_pfe
ait_mlouk_addi_presentation_pfeait_mlouk_addi_presentation_pfe
ait_mlouk_addi_presentation_pfe
 

Presentation bpel

  • 1. 2 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. 3 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. 4 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. 5 Problématique : Solution 1 Site web 1 Site web 2 Site web 3 SI compagnie aérien SI hôtel SI agence de location
  • 5. 6 Problématique : Solution 2 1 SI compagnie aérien 2 SI hôtel 3 Moteur d’orchestration SI agence de location
  • 6. 7 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'effectuer (Workflow). d'entreprise : est la une activité ou un manière spécifiée processus métiers  Le processus représente le Quoi ?  La procédure représente le Qui fait Quoi ? Où ? Quand ? Comment ? Combien ? Et Pourquoi
  • 7. 8 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. BPEL, c'est quoi ? 9  Syntaxe basée sur le format XML  Standard OASIS en V2.0  Fondés sur des concepts proches   Échanges des messages, modification des messages   Activités, opérations, appels de services Gestion des erreurs, événements Outillés  Éditeurs graphiques  Moteur d’exécution
  • 9. 10 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. 11 BPEL, QUELLE UTILITÉ ?(EXEMPLE) App.Assistance Amine Processus BPEL pour assistance technique Reception Requête Détails Requête Tâche utilisateur Workflow humaine Assigner la tâche Khalid Réception Reponse Vérifier résultat Email Notifier le client FIN Ali
  • 11. BPEL par l’exemple : HelloWorld 12  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. 13 BPEL par l’exemple : HelloWorld
  • 13. 14 Génération des fichiers et initialisation des outils BPEL
  • 14. 15 BPEL par l’exemple : HelloWorld Gestion des fichiers du projet Editeur Graphique Palette des fonctionnalité s BPEL
  • 15. 16 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. 17 BPEL par l’exemple : HelloWorld définion de service,Binding type et d’adresse PortType pour exécuter le service HelloWorld
  • 17. 18 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. 19 BPEL par l’exemple : HelloWorld
  • 19. 20 BPEL par l’exemple : HelloWorld Si on veut retourner la chaine « HelloWord»+input. Quelle est la modification à apporter ?
  • 20. 21 BPEL par l’exemple : HelloWorld
  • 21. 22 BPEL par l’exemple : HelloWorld Le processus BPEL est décrit par un WSDL et est accessible par un client Service Web
  • 22. BPEL : partie statique 23  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. BPEL : partie dynamique 24  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. 25 BPEL : partie dynamique 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
  • 25. 26 Activités BPEL de base (1/3)
  • 26. 27 Activités BPEL de base (2/3)
  • 28. Partner Links 29  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. 30 Partner Links écifie le rôle du processus BPEL spécifie le rôle du partenaire 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
  • 30. Variables 31    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. 32 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 BPEL –Orchestration de Web Services Messages décrits dans le fichier WSDL du Service Web
  • 32. Activité : Receive 33    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. 34 Activité : Receive  Exemple : Mise en place de l’activité Receive Des outils simplifient l’édition d’une activité Receive
  • 34. Activité : Reply 35    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. 36 Activité : Reply  Exemple : Mise en place de l’activité Reply Des outils simplifient l’édition d’une activité Reply
  • 36. Activité :Assign 37       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. 38 Activité : Assign  Exemple : Mise en place de l’activité Assign Des outils simplifient l’édition d’une activité Assign
  • 38. Activité :Invoke 39    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. 40 Activité : Invoke Des outils simplifient l’édition d’une activité Invoke
  • 40. 41 Conclusion Processus BPEL en mode Synchrone et asynchrone Gestion transactionnelle Activités complexes (scope, link…) Gestion des erreurs Journalisation et alertes
  • 42. 43 Ressources  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.