bpel...•oracle bpel propose un ensemble de fonctions de base permettant de manipuler plus finement...

59
Zenika © 2009 BPEL – Orchestration de Web Services 1 <BPEL> Orchestration de Web Services Grégory Le Bonniec [email protected] 26 novembre 2009

Upload: others

Post on 12-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 1

<BPEL>Orchestration de Web Services

Grégory Le [email protected]

26 novembre 2009

Page 2: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 2

•Zenika• Conseil / Développement / Formation• Localisation : Paris et Rennes• Nos partenaires

•Mon expérience• Consultant JEE/SOA depuis 8 ans• Spring / GWT / Flex ...• BPEL / WS / ESB / EIP...

Page 3: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 3

SommaireSommaire

• SOA : rappels

• BPEL : orchestration de services

• BPEL : bonnes pratiques

Page 4: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 4

SOASOA

Page 5: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 5

SOA : pourquoi ?SOA : pourquoi ?

ObjectifRéconcilier le monde métier et le monde technique

• L'entreprise doit s'adapter continuellement• L'entreprise est de plus en plus dépendante des

technologies → le SI peut devenir un frein« C'est pas notre faute, c'est un problème informatique... »

➔ Acteurs métiers Acteurs techniques

Page 6: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 6

SOA : principesSOA : principes

• Simplicité• Efficacité• Communication métier/technique

• Flexibilité et maintenabilité• Pérennité des systèmes

• Réutilisabilité• Réduction des anomalies• Gain de productivité

• Indépendance vis à vis des technologies• S'appuyer sur les standards et les bonnes pratiques

Page 7: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 7

SOA : comment ?SOA : comment ?

• Définition

« désigne un type d'architecture fournissant un ensemble de services localisables, à des applications clientes ou à d'autres services distribués sur un réseau, via des interfaces publiées »

• Service = élément central de la démarche SOA• Fonctions → Objet → Service

Page 8: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 8

• Service = Contrat• Fonctionnalités métier• Performances ; Robustesse• ...

• Intégration via des services• Les systèmes communiquent via des protocoles et des

formats standards• La vision « service » remplace la vision « silo »• Intégration de l'existant via des services

SOA : évolution du SISOA : évolution du SI

Page 9: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 9

SOA et Web ServicesSOA et Web Services

• Ne pas confondre Web Services et SOA• SOA = architecture• WS = technologie

• SOA n'est pas lié aux technologies• SOA compatible avec : WS, MOM, POX …• …les Web Services restent malgré tout une technologie

répondant aux critères SOA

Page 10: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 10

Web ServicesWeb Services

Page 11: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 11

Web Services : principesWeb Services : principes

WSDL

Web Services(JEE, .Net ...) SOAP

Décrit Relié à

Permet la communicationavec

Page 12: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 12

SOAPSOAP

• Couche message• Basé sur XML• Indépendant de la couche transport• Normalisé par W3C

• WS-* (WS-STAR)• Extensions de SOAP : WS-Addressing ; WS-Security ;

WS-Reliability ; ...

Page 13: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 13

<soapenv:Envelope...> <soapenv:Header> <add:MessageID>132465789</add:MessageID> </soapenv:Header> <soapenv:Body> <ns:Requete> <ns:ELEMENT> <ns:action>CREATION</ns:action> <ns:id>123</ns:id> </ns:ELEMENT> </ns:Requete> </soapenv:Body></soapenv:Envelope>

SOAP : formatSOAP : format

Enveloppe

Entête

Corps

Page 14: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 14

WSDLWSDL

• Décrit le Web Service• types, messages ; operations ; protocole ; adresse• Basé sur XML

• Normalisé par W3C

• WSDL = Contrat

Page 15: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 15

<definitions name="exemple" ...>

<types> <schema> <import namespace="http://zenika.com" schemaLocation="exemple.xsd"/> </schema> </types> <message name="exempleRequestMessage"> <part name="payload" element="tns:exempleProcessRequest"/> </message> <message name="exempleResponseMessage"> <part name="payload" element="tns:exempleProcessResponse"/> </message> <portType name="exemple"> <operation name="process"> <input message="tns:exempleRequestMessage"/> <output message="tns:exempleResponseMessage"/> </operation> </portType>

<binding name="exempleBinding" type="tns:exemple"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="process"> <soap:operation style="document" soapAction="process"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="exemple"> <port name="exemplePort" binding="tns:exempleBinding"> <soap:address location="http://localhost:8080/exemple/1.0"/> </port> </service>

</definitions>

Définitions

types

messages

protocole

opérations

adresse

WSDL : FormatWSDL : Format

Page 16: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 16

BPELBPEL

Page 17: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 17

BPELBPEL

• Business Process Execution Language

Page 18: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 18

BPEL, c'est quoi ?BPEL, c'est quoi ?

• Standard issu du consortium OASIS• WS-BPEL 1.1 → 2004• WS-BPEL 2.0 → 2007• Différentes implémentations (Oracle, Apache,…)

• Langage • Description de « Business Processes »• Interactions avec des Web Services• Écrit en XML

Page 19: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 19

BPEL, quelle utilité ?BPEL, quelle utilité ?

• Business Process• Requête / Réponse• Modèle de données• Activités et tâches• Sous-processus / Services

• Business process = Processus BPEL

• Processus BPEL = Web Service

Page 20: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 20

BPEL, quelle utilité ?BPEL, quelle utilité ?

• Orchestrateur de Web Services• Abstraction • Un processus BPEL orchestre l'appel à d'autres WS• Granularité inconnue du WS appelé

Page 21: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 21

• Processus BPEL• WSDL• Types• Messages• Opérations / PortTypes

• BPEL• PartnerLinks• Variables• Activités

BPEL, ça ressemble à quoi ?BPEL, ça ressemble à quoi ?

Page 22: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 22

BPEL, ça ressemble à quoi ?BPEL, ça ressemble à quoi ?

Processus BPEL

Partenaires

Variables globales

Activités

Page 23: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 23

Oracle BPELOracle BPEL

Process Console

MA

NA

GE

J2EE Application Server(Oracle AS, WebLogic, JBoss, WebSphere)

Core BPEL Engine

BPEL

JDeveloper

BPEL Designer

BPEL Process Manager

Integrated BPM Services

Workflow DecisionService

Sensors

Metadata Repository(Oracle Database)

WSDL Binding

File, FTP

Web services

Java, JMS

Database

Apps

Page 24: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 24

Oracle BPEL : retour d'expérienceOracle BPEL : retour d'expérience

• Mise en œuvre d'un projet d'orchestration Télécom

• Oracle BPEL 10.1.3 (WS-BPEL 1.1)• Avant-vente → Architecture → Développement →

« Chantier robustesse/performances » → Production• Plusieurs centaines de milliers de requêtes par jour • Web Services, MQ/JMS

Page 25: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 25

• Démonstration n°1• Orchestration de 2 processus BPEL• Création d’un processus BPEL parent• Déploiement• Simulation sur Oracle BPEL PM 10.1.3.1

DémonstrationDémonstration

Page 26: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 26

Qu'est-ce que BPEL sait faire ?Qu'est-ce que BPEL sait faire ?

• Le langage BPEL est composé d’un nombre restreint de briques logicielles (activités BPEL) qui permettent :

• De communiquer avec des web services• De manipuler des données XML• De gérer des exceptions• De gérer la compensation (ie. rollback)

Page 27: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 27

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

Nom Symbole Description

Assign

Permet de manipuler les variables d’un processus ➔Initialisation de variable➔Copie de variable➔Manipulation XML (XPath)

Scope

Découpe de manière logique un processus BPEL. Il permet :➔De déclarer des variables locales➔De récupérer des exceptions

Flow

Exécute différents traitements en parallèle.

Page 28: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 28

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

Nom Symbole Description

Switch

➔Fournit n branches.➔Chacune de ces branches est associée à une expression booléenne.➔La première branche (de gauche à droite) dont la condition est vraie est exécutée.➔Il est possible de fournir une branche otherwise qui est lancée si aucune des autres branches n’est valide.

While

Effectue un traitement tant que la condition associée n’est pas respectée.

Page 29: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 29

Symbole

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

Nom

Nom Symbole Description

Throw

Lance une exception interne. Les exceptions peuvent ensuite être récupérées dans un Catch du même processus BPEL.

Catch

Récupère au sein d’un scope les exceptions d’un type donné et permet d’y associer un traitement spécifique.

CatchAll

Permet de récupérer l’ensemble des exceptions non récupérées par des catchs simples.

Page 30: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 30

Activités BPEL d'orchestrationActivités BPEL d'orchestration

Nom Symbole Description

InvokeAppelle un web service partenaire (PartnerLink)

ReceivePermet de recevoir un message d’un web service partenaire

ReplyEnvoie un message (ou une exception) en sortie de processus.

Pick

Permet de combiner plusieurs Receive et Timeout (Une seule branche peut être prise en compte).

Page 31: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 31

Processus synchrone/asynchroneProcessus synchrone/asynchrone

2 catégories principales de processus BPEL

Processus synchrone attente active (appel bloquant) de la réponse traitements courts (quelques secondes) sortie = message ou exception

Processus asynchrone pas d’attente active (appel non bloquant) d’une éventuelle réponse traitements longs sortie = message

Page 32: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 32

DémonstrationDémonstration

• Démonstration n°2• Création de 2 processus BPEL

• Synchrone• Asynchrone avec timer de 20 secondes

• Déploiement• Simulation sur Oracle BPEL PM 10.1.3.1

Page 33: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 33

Base de déshydratationBase de déshydratation

• Déshydratation = Mémoire à long terme

Page 34: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 34

Base de déshydratationBase de déshydratation

• Pourquoi déshydrater ?• Nécessité technique (gestion mémoire)• Robustesse du système• Cohérence et intégrité

• Quand déshydrater ?• Selon implémentation• Activités BPEL spécifiques (Receive, Wait)• Action utilisateur

Page 35: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 35

Déshydratation : quand ?Déshydratation : quand ?

Page 36: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 36

Communications asynchronesCommunications asynchrones

• Problématique : débloquer une instance BPEL en attente de réponse

• Processus appelant : attente passive c’est au processus appelé de « réveiller » le processus

appelant

« Réveil » = envoi d’un message (appel WS)

Page 37: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 37

Comparaison technique : Comparaison technique : synchrone/asynchronesynchrone/asynchrone

<definitions name="ProcessSync" ...> ... <portType name="ProcessSync"> <operation name="process"> <input message="tns:IMessage"/> <output message="tns:OMessage"/> </operation> </portType> ... <service name="ProcessSync"> <port name="ProcessSyncPort" binding="tns:ProcessSyncBinding"> <soap:address location="http://localhost:8888/orabpel/default/ProcessSync/1.0"/> </port> </service> ...</definitions>

Synchrone<definitions name="ProcessWait" ...> ... <portType name="ProcessWait"> <operation name="initiate"> <input message="tns:IMessage"/> </operation> </portType> <portType name="ProcessWaitCallback"> <operation name="onResult"> <input message="tns:OMessage"/> </operation> </portType> ... <service name="ProcessWait"> <port name="ProcessWaitPort" binding="tns:ProcessWaitBinding"> <soap:address location="http://localhost:8888/orabpel/default/ProcessWait/1.0"/> </port> </service> <service name="ProcessWaitCallbackService"> <port name="ProcessWaitCallbackPort" binding="tns:ProcessWaitCallbackBinding"> <soap:address location="http://set.by.caller"/> </port> </service> ...</definitions>

Asynchrone

Page 38: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 38

WS-AddressingWS-Addressing

• Spécifications W3C : mécanismes permettant aux WS de communiquer des informations d’adressage

données de routage de messages incluses au header SOAP

utilisé par Oracle BPEL pour gérer les communications asynchrones

Page 39: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 39

WS-Addressing - étape WS-Addressing - étape 11<soap:Envelope ...> <soap:Header> <wsa:MessageID>123</wsa:MessageID> <wsa:ReplyTo> <wsa:Address> http://localhost:9700/process/callback </wsa:Address> </wsa:ReplyTo> <soap:Header> <soap:Body> … </soap:Body></soap:Envelope>

ProcessAppel ProcessWait

Processus Id Contexte

Page 40: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 40

WS-Addressing - étape WS-Addressing - étape 22

ProcessAppel ProcessWait

Processus Id Contexte

ProcessAppel 123

<ProcessAppel> … <Receive_1> en cours </Receive_1></ProcessAppel>

Page 41: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 41

WS-Addressing - étape WS-Addressing - étape 33

ProcessAppel ProcessWait

Processus Id Contexte

ProcessAppel 123

<ProcessAppel> … <Receive_1> en cours </Receive_1></ProcessAppel>

Page 42: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 42

WS-Addressing - étape WS-Addressing - étape 44

<soap:Envelope ...> <soap:Header> <wsa:RelatesTo>123</wsa:RelatesTo> <soap:Header> <soap:Body> … </soap:Body></soap:Envelope>

ProcessAppel ProcessWait

Processus Id Contexte

ProcessAppel 123

<ProcessAppel> … <Receive_1> en cours </Receive_1></ProcessAppel>

Page 43: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 43

Fonction XPathFonction XPath

• XPath est une syntaxe (non XML) pour désigner une portion d’un document XML (variable XML dans Oracle BPEL).

• XPath = langage d’interrogation• Oracle BPEL propose un ensemble de fonctions de base

permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité

• Oracle BPEL permet de construire des fonctions personnalisées (à base de classe Java)

Fonction XPath = Pont BPEL/Java

Page 44: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 44

Corrélation « custom »Corrélation « custom »

• Permet d’associer un message à une instance de processus donnée

• Quelles utilisations ?o Déblocage extérieuro WS-Addressing non géré par le processus appelé

Page 45: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 45

Corrélation « custom » : déblocageCorrélation « custom » : déblocage

initiate

correlate

Page 46: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 46

Corrélation « custom » – étape Corrélation « custom » – étape 11

<soap:Envelope ...> <soap:Body> <requete>

… <input>123456</input> … </requete> </soap:Body></soap:Envelope>

Page 47: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 47

Corrélation « custom » – étape Corrélation « custom » – étape 22

<soap:Envelope ...> <soap:Body> <requete>

… <input>123456</input> … </requete> </soap:Body></soap:Envelope>

Processus Id Correlation

ProcessCorrelate 965 123456

Page 48: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 48

Corrélation « custom » – étape Corrélation « custom » – étape 33

Processus Id Correlation

ProcessCorrelate 965 123456

Id Contexte

965

<ProcessCorrelate> … <Receive_1> en cours </Receive_1></ ProcessCorrelate>

Page 49: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 49

Corrélation « custom » – étape Corrélation « custom » – étape 44

<soap:Envelope ...> <soap:Body> <requete_autre> … <abc>123456</abc> … </requete_autre> </soap:Body></soap:Envelope>

Processus Id Correlation

ProcessCorrelate 965 123456

Id Contexte

965

<ProcessCorrelate> … <Receive_1> en cours </Receive_1></ ProcessCorrelate>

Page 50: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 50

Corrélation « custom » – étape Corrélation « custom » – étape 55

<soap:Envelope ...> <soap:Body> <requete_autre> … <abc>123456</abc> … </requete_autre> </soap:Body></soap:Envelope>

Processus Id Correlation

ProcessCorrelate 965 123456

Id Contexte

965

<ProcessCorrelate> … <Receive_1> en cours </Receive_1></ ProcessCorrelate>

Page 51: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 51

BPEL : bonnes pratiquesBPEL : bonnes pratiques

Page 52: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 52

BPEL : une brique parmi d’autresBPEL : une brique parmi d’autres

• Services→ SOA s'appuie avant tout sur la notion de service

• ESB→ Outil d'intégration

• BPEL→ pour orchestrer des services...il faut des services

• EIP• Les patterns de l'intégration

• ...

Page 53: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 53

BPEL et Système d'informationBPEL et Système d'information

• SI = Ensemble de systèmes hétérogènes

• Les éditeurs fournissent des adaptateurs

• Les adaptateurs Oracle BPEL • Fichier• JMS• MQ• ...

Page 54: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 54

Oracle BPEL : les adaptateursOracle BPEL : les adaptateurs

• Les adaptateurs Oracle s'appuient sur la technologie JCA

• Interface Web Service → intégration simplifiée à BPEL

Adaptateurs non définis par les spécifications BPEL

Page 55: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 55

Adaptateurs : AlternativeAdaptateurs : Alternative

• BPEL est un langage dédié aux Web Services• Adaptateur = Web Service• MOM, BDD, Fichiers → mise en œuvre de Web Services

• Possibilité de mettre en place des Web Services asynchrones via le système de « custom correlation »

http://java-soa.blogspot.com

Page 56: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 56

BPEL : les bonnes pratiquesBPEL : les bonnes pratiques

• Utiliser BPEL comme intermédiaire entre le système appelant et les systèmes appelés

• Implémenter dans l’outil la logique de routage et d’échange avec les autres systèmes

• Concevoir un processus comme une suite d’échanges avec des services

• Séparer ce qui est du ressort du moteur BPEL de ce qui ne l’est pas

• Ne pas l’utiliser comme un langage de programmation

Page 57: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 57

Performances et robustessePerformances et robustesse

• Importance du « sizing » serveur• Clustering• Importance du tuning JVM et BPEL• Possibilité de mettre en place Oracle Coherence sur la base de déshydration

• Performances ↑• Failover ↑

Page 58: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 58

Oracle BPEL aujourd'huiOracle BPEL aujourd'hui

• Dernière version : 11g R1

• Intégration à la suite SOA Oracle 11g

• Architecture SCA• Simplification des déploiements et de l'intégration aux autres

briques SOA (ESB, BAM...)• Gestion des « Policy » (sécurité, robustesse...)

Page 59: BPEL...•Oracle BPEL propose un ensemble de fonctions de base permettant de manipuler plus finement les expressions XPath nombre de fonctions XPath limité •Oracle BPEL permet de

Zenika © 2009 BPEL – Orchestration de Web Services 59

Grégory LE [email protected]

Des questions ?Des questions ?