bpel - imt atlantiqueweb.imt-atlantique.fr/.../presentation_bpel_jeudis_objet.pdf · 2009. 12....
TRANSCRIPT
-
Zenika © 2009 BPEL – Orchestration de Web Services 1
Orchestration de Web Services
Grégory Le [email protected]
26 novembre 2009
-
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...
-
Zenika © 2009 BPEL – Orchestration de Web Services 3
SommaireSommaire
• SOA : rappels
• BPEL : orchestration de services
• BPEL : bonnes pratiques
-
Zenika © 2009 BPEL – Orchestration de Web Services 4
SOASOA
-
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
-
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
-
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
-
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
-
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
-
Zenika © 2009 BPEL – Orchestration de Web Services 10
Web ServicesWeb Services
-
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
-
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 ; ...
-
Zenika © 2009 BPEL – Orchestration de Web Services 13
132465789 CREATION 123
SOAP : formatSOAP : format
Enveloppe
Entête
Corps
-
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
-
Zenika © 2009 BPEL – Orchestration de Web Services 15
Définitions
types
messages
protocole
opérations
adresse
WSDL : FormatWSDL : Format
-
Zenika © 2009 BPEL – Orchestration de Web Services 16
BPELBPEL
-
Zenika © 2009 BPEL – Orchestration de Web Services 17
BPELBPEL
• Business Process Execution Language
-
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
-
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
-
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é
-
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 ?
-
Zenika © 2009 BPEL – Orchestration de Web Services 22
BPEL, ça ressemble à quoi ?BPEL, ça ressemble à quoi ?
Processus BPEL
Partenaires
Variables globales
Activités
-
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
-
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
-
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
-
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)
-
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.
-
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.
-
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.
-
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).
-
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
-
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
-
Zenika © 2009 BPEL – Orchestration de Web Services 33
Base de déshydratationBase de déshydratation
• Déshydratation = Mémoire à long terme
-
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
-
Zenika © 2009 BPEL – Orchestration de Web Services 35
Déshydratation : quand ?Déshydratation : quand ?
-
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)
-
Zenika © 2009 BPEL – Orchestration de Web Services 37
Comparaison technique : Comparaison technique : synchrone/asynchronesynchrone/asynchrone
... ... ...
Synchrone
... ... ...
Asynchrone
-
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
-
Zenika © 2009 BPEL – Orchestration de Web Services 39
WS-Addressing - étape WS-Addressing - étape 11
123 http://localhost:9700/process/callback …
ProcessAppel ProcessWait
Processus Id Contexte
-
Zenika © 2009 BPEL – Orchestration de Web Services 40
WS-Addressing - étape WS-Addressing - étape 22
ProcessAppel ProcessWait
Processus Id Contexte
ProcessAppel 123
… en cours
-
Zenika © 2009 BPEL – Orchestration de Web Services 41
WS-Addressing - étape WS-Addressing - étape 33
ProcessAppel ProcessWait
Processus Id Contexte
ProcessAppel 123
… en cours
-
Zenika © 2009 BPEL – Orchestration de Web Services 42
WS-Addressing - étape WS-Addressing - étape 44
123 …
ProcessAppel ProcessWait
Processus Id Contexte
ProcessAppel 123
… en cours
-
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
-
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é
-
Zenika © 2009 BPEL – Orchestration de Web Services 45
Corrélation « custom » : déblocageCorrélation « custom » : déblocage
initiate
correlate
-
Zenika © 2009 BPEL – Orchestration de Web Services 46
Corrélation « custom » – étape Corrélation « custom » – étape 11
… 123456 …
-
Zenika © 2009 BPEL – Orchestration de Web Services 47
Corrélation « custom » – étape Corrélation « custom » – étape 22
… 123456 …
Processus Id Correlation
ProcessCorrelate 965 123456
-
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
… en cours
-
Zenika © 2009 BPEL – Orchestration de Web Services 49
Corrélation « custom » – étape Corrélation « custom » – étape 44
… 123456 …
Processus Id Correlation
ProcessCorrelate 965 123456
Id Contexte
965
… en cours
-
Zenika © 2009 BPEL – Orchestration de Web Services 50
Corrélation « custom » – étape Corrélation « custom » – étape 55
… 123456 …
Processus Id Correlation
ProcessCorrelate 965 123456
Id Contexte
965
… en cours
-
Zenika © 2009 BPEL – Orchestration de Web Services 51
BPEL : bonnes pratiquesBPEL : bonnes pratiques
-
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
• ...
-
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• ...
-
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
-
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
-
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
-
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 ↑
-
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...)
-
Zenika © 2009 BPEL – Orchestration de Web Services 59
Grégory LE [email protected]
Des questions ?Des questions ?
Diapo 1Diapo 2Diapo 3Diapo 4Diapo 5Diapo 6Diapo 7Diapo 8Diapo 9Diapo 10Diapo 11Diapo 12Diapo 13Diapo 14Diapo 15Diapo 16Diapo 17Diapo 18Diapo 19Diapo 20Diapo 21Diapo 22Diapo 23Diapo 24Diapo 25Diapo 26Diapo 27Diapo 28Diapo 29Diapo 30Diapo 31Diapo 32Diapo 33Diapo 34Diapo 35Diapo 36Diapo 37Diapo 38Diapo 39Diapo 40Diapo 41Diapo 42Diapo 43Diapo 44Diapo 45Diapo 46Diapo 47Diapo 48Diapo 49Diapo 50Diapo 51Diapo 52Diapo 53Diapo 54Diapo 55Diapo 56Diapo 57Diapo 58Diapo 59