BPEL Orchestration de Web Services



Documents pareils
Business Process Execution Language

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

La démarche SOA et l interopérabilité applicative

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Mineure Architectures Orientées Services SOA Exécution de processus. Mineure SOA. Exécution de processus

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Exécution de processus

Exécution de processus

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Urbanisme du Système d Information et EAI

Nouvelles technologies pour l intégration : les ESB

Business Process Modeling (BPM)

Configuration Interface for MEssage ROuting

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

FOSS Enterprise Integration Plattaform

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Messagerie asynchrone et Services Web

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Le moteur de workflow JBPM

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

IBM Business Process Manager

Conception, architecture et urbanisation des systèmes d information

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Les Architectures Orientées Services (SOA)

Workflow et Service Oriented Architecture (SOA)

Les nouvelles architectures des SI : Etat de l Art

Qu'est-ce que le BPM?

Volet Synchrone pour Client Lourd

Système d échange inter-administration avec Petals ESB

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

4. SERVICES WEB REST 46

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Fiche de l'awt Intégration des applications

Mise en œuvre des serveurs d application

Mettez les évolutions technologiques au service de vos objectifs métier

Introduction aux «Services Web»

Le 09 et 10 Décembre 09

LIVRE BLANC Comprendre et savoir utiliser un ESB dans une SOA

Sécurité. Objectifs Gestion de PKI Signature Cryptage Web Service Security

Pour une entreprise plus performante

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

Analyse des techniques et des standards pour l interopérabilité entre plateformes

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

JOnAS 5. Serveur d application d

Synthèse des concepts

Les processus métiers : concepts, modèles et systèmes

Jean-Philippe VIOLET Solutions Architect

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

On Feature Interaction among Web Services Michael Weiss et Babak Esfandiari

<Insert Picture Here> Maintenir le cap avec Oracle WebLogic Server

Déploiement de l infrastructure SOA. Retour d expérience Août 2013

WEBSPHERE & RATIONAL. Jacques Rage

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Jean-Marc Langé. Gestion de processus métier : la place du BPM dans une architecture d entreprise

Architecture Orientée Service, JSON et API REST

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Intégration de systèmes

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Composition semi-automatique de Services Web

Classification : public 1/59

1 JBoss Entreprise Middleware

Business Process Management 2010 : La Solution IBM Maximiser l agilité de l entreprise UNE ETUDE DE JEMM RESEARCH

12 décembre Mineure SOA Cours 6. Olivier BESNARD Consultant sénior Practice Architecture des Systèmes d Information

L ÉCHANGE DE DONNÉES TEMPS RÉEL

Business & High Technology

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion

Java pour le Web. Cours Java - F. Michel

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Introduction à la plateforme J2EE

Urbanisation des Systèmes d'information

Programmation Web Avancée Introduction aux services Web

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

PERFORMANCE ET DISPONIBILITÉ DES SI

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

La technologie BPM. Qu'est-ce que la technologie BPM? AVRIL 2006


Projet ESB - Retour d expérience

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS

Petit Déjeuner Pépinière du Logiciel Libre. 25 juin 2008

GPC Computer Science

Environnements de Développement

L'évolution de VISUAL MESSAGE CENTER Architecture et intégration

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Problématiques de recherche. Figure Research Agenda for service-oriented computing

30 ans d ingénierie, 23 ans de conseil en architecture de SI

Fusion : l interopérabilité chez Oracle

Exploitez la pleine puissance de l'architecture orientée services (SOA) en la combinant à la modélisation des processus d'affaires

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Systèmes d'informations historique et mutations

Transcription:

<BPEL> Orchestration de Web Services Grégory Le Bonniec gregory.lebonniec@zenika.com 26 novembre 2009 1

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

Sommaire SOA : rappels BPEL : orchestration de services BPEL : bonnes pratiques 3

SOA 4

SOA : pourquoi? 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 Objectif Réconcilier le monde métier et le monde technique 5

SOA : 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 6

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 7

SOA : évolution du SI 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 8

SOA 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 9

Web Services 10

Web Services : principes WSDL Décrit Web Services (JEE,.Net...) Relié à Permet la communication avec SOAP 11

SOAP 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 ;... 12

SOAP : format Enveloppe Entête Corps <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> 13

WSDL Décrit le Web Service types, messages ; operations ; protocole ; adresse Basé sur XML Normalisé par W3C WSDL = Contrat 14

WSDL : Format Définitions types messages opérations protocole adresse <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> 15

BPEL 16

BPEL Business Process Execution Language 17

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 18

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 19

BPEL, quelle utilité? Orchestrateur de Web Services Abstraction Un processus BPEL orchestre l'appel à d'autres WS Granularité inconnue du WS appelé 20

BPEL, ça ressemble à quoi? Processus BPEL WSDL Types Messages Opérations / PortTypes BPEL PartnerLinks Variables Activités 21

BPEL, ça ressemble à quoi? Processus BPEL Partenaires Variables globales Activités 22

Oracle BPEL JDeveloper BPEL Designer BPEL BPEL Process Manager Integrated BPM Services WSDL Binding Web services Workflow Decision Service Sensors Metadata Repository (Oracle Database) Java, JMS File, FTP Database Core BPEL Engine Process Console J2EE Application Server (Oracle AS, WebLogic, JBoss, WebSphere) MANAGE Apps 23

Oracle 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 24

Démonstration 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 25

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) 26

Activités BPEL de base (1/3) Nom Assign Scope Symbole Description Permet de manipuler les variables d un processus Initialisation de variable Copie de variable Manipulation XML (XPath) Découpe de manière logique un processus BPEL. Il permet : De déclarer des variables locales De récupérer des exceptions Exécute différents traitements en parallèle. Flow 27

Activités BPEL de base (2/3) Nom Symbole Description 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. Switch Effectue un traitement tant que la condition associée n est pas respectée. While 28

Activités BPEL de base (3/3) 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. Nom CatchAllSymbole Permet de récupérer l ensemble des exceptions non récupérées par des catchs simples. 29

Activités BPEL d'orchestration Nom Invoke Receive Reply Pick Symbole Description Appelle un web service partenaire (PartnerLink) Permet de recevoir un message d un web service partenaire Envoie un message (ou une exception) en sortie de processus. Permet de combiner plusieurs Receive et Timeout (Une seule branche peut être prise en compte). 30

Processus 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 31

Dé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 32

Base de déshydratation Déshydratation = Mémoire à long terme 33

Base 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 34

Déshydratation : quand? 35

Communications 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) 36

Comparaison technique : synchrone/asynchrone Synchrone 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> <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> 37

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

WS-Addressing - étape 1 <soap:envelope...> <soap:header> Processus Id Contexte <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 39

WS-Addressing - étape 2 Processus ProcessAppel Id 123 Contexte <ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel> ProcessAppel ProcessWait 40

WS-Addressing - étape 3 Processus ProcessAppel Id 123 Contexte <ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel> ProcessAppel ProcessWait 41

WS-Addressing - étape 4 <soap:envelope...> <soap:header> <wsa:relatesto>123</wsa:relatesto> Processus ProcessAppel Id 123 Contexte <ProcessAppel> <Receive_1> en cours </Receive_1> </ProcessAppel> <soap:header> <soap:body> </soap:body> </soap:envelope> ProcessAppel ProcessWait 42

Fonction 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 43

Corrélation «custom» Permet d associer un message à une instance de processus donnée Quelles utilisations? o Déblocage extérieur o WS-Addressing non géré par le processus appelé 44

Corrélation «custom» : déblocage initiate correlate 45

Corrélation «custom» étape 1 <soap:envelope...> <soap:body> <requete> <input>123456</input> </requete> </soap:body> </soap:envelope> 46

Corrélation «custom» étape 2 <soap:envelope...> <soap:body> <requete> <input>123456</input> </requete> </soap:body> </soap:envelope> Processus Id Correlation ProcessCorrelate 965 123456 47

Corrélation «custom» étape 3 Processus Id Correlation ProcessCorrelate 965 123456 Id 965 Contexte <ProcessCorrelate> <Receive_1> en cours </Receive_1> </ ProcessCorrelate> 48

Corrélation «custom» étape 4 <soap:envelope...> <soap:body> <requete_autre> <abc>123456</abc> </requete_autre> </soap:body> </soap:envelope> Processus Id Correlation ProcessCorrelate 965 123456 Id 965 Contexte <ProcessCorrelate> <Receive_1> en cours </Receive_1> </ ProcessCorrelate> 49

Corrélation «custom» étape 5 <soap:envelope...> <soap:body> <requete_autre> <abc>123456</abc> </requete_autre> </soap:body> </soap:envelope> Processus Id Correlation ProcessCorrelate 965 123456 Id 965 Contexte <ProcessCorrelate> <Receive_1> en cours </Receive_1> </ ProcessCorrelate> 50

BPEL : bonnes pratiques 51

BPEL : 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... 52

BPEL 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... 53

Oracle 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 54

Adaptateurs : 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 55

BPEL : 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 56

Performances 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 57

Oracle 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...) 58

Des questions? Grégory LE BONNIEC gregory.lebonniec@zenika.com 59