SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objetAmir Souissi
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 
La mise en œuvre d’un ERP
La mise en œuvre d’un ERPLa mise en œuvre d’un ERP
La mise en œuvre d’un ERPAyoub Minen
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsAddi Ait-Mlouk
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFEHedi Riahi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRHRiadh K.
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServicesLilia Sfaxi
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Mehdi Hamime
 
Bpm business process management
Bpm  business process managementBpm  business process management
Bpm business process managementMouna Dhaouadi
 
Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)Jibril Touzi
 
100527 Gestion électronique des documents
100527 Gestion électronique des documents100527 Gestion électronique des documents
100527 Gestion électronique des documentsCOMPETITIC
 

Was ist angesagt? (20)

Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Middleware
MiddlewareMiddleware
Middleware
 
La mise en œuvre d’un ERP
La mise en œuvre d’un ERPLa mise en œuvre d’un ERP
La mise en œuvre d’un ERP
 
Procédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windowsProcédure de configuration et préparation de l’environnement sous windows
Procédure de configuration et préparation de l’environnement sous windows
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
BPM & Workflow
BPM & WorkflowBPM & Workflow
BPM & Workflow
 
Presentation d'un logiciel de GRH
Presentation d'un logiciel de GRHPresentation d'un logiciel de GRH
Presentation d'un logiciel de GRH
 
eServices-Chp3: Composition de Services
eServices-Chp3: Composition de ServiceseServices-Chp3: Composition de Services
eServices-Chp3: Composition de Services
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école
 
Présentation Projet de fin d'études
Présentation Projet de fin d'étudesPrésentation Projet de fin d'études
Présentation Projet de fin d'études
 
Bpm business process management
Bpm  business process managementBpm  business process management
Bpm business process management
 
Introduction au langage SQL
Introduction au langage SQLIntroduction au langage SQL
Introduction au langage SQL
 
Cours uml
Cours umlCours uml
Cours uml
 
Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)Présentation Gestion Electronique de Documents (Alfresco)
Présentation Gestion Electronique de Documents (Alfresco)
 
100527 Gestion électronique des documents
100527 Gestion électronique des documents100527 Gestion électronique des documents
100527 Gestion électronique des documents
 

Ähnlich wie Presentation bpel

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
 

Ähnlich wie Presentation bpel (20)

OpenESB et BPEL
OpenESB et BPELOpenESB et BPEL
OpenESB et BPEL
 
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
 
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
 
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 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
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 

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.