BPEL - IMT Atlantiqueweb.imt-atlantique.fr/.../Presentation_BPEL_Jeudis_Objet.pdf · 2009. 12....

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

Transcript of BPEL - IMT Atlantiqueweb.imt-atlantique.fr/.../Presentation_BPEL_Jeudis_Objet.pdf · 2009. 12....

  • 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