bpel...•oracle bpel propose un ensemble de fonctions de base permettant de manipuler plus finement...
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/52.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/53.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/55.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/58.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022040514/5e6b998aac7f0835106ba3d6/html5/thumbnails/59.jpg)
Zenika © 2009 BPEL – Orchestration de Web Services 59
Grégory LE [email protected]
Des questions ?Des questions ?