Presentation_BPEL_Jeudis_Objet.pdf

Embed Size (px)

Citation preview

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    1/59

    Zenika 2009 BPEL Orchestration de Web Services 1

    Orchestration de Web Services

    Grgory Le [email protected]

    26 novembre 2009

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    2/59

    Zenika 2009 BPEL Orchestration de Web Services 2

    Zenika Conseil / Dveloppement / Formation Localisation : Paris et Rennes

    Nos partenaires

    Mon exprience Consultant JEE/SOA depuis 8 ans Spring / GWT / Flex ... BPEL / WS / ESB / EIP...

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    3/59

    Zenika 2009 BPEL Orchestration de Web Services 3

    SommaireSommaire

    SOA : rappels

    BPEL : orchestration de services

    BPEL : bonnes pratiques

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    4/59

    Zenika 2009 BPEL Orchestration de Web Services 4

    SOASOA

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    5/59

    Zenika 2009 BPEL Orchestration de Web Services 5

    SOA : pourquoi ?SOA : pourquoi ?

    ObjectifRconcilier le monde mtier et le monde technique

    L'entreprise doit s'adapter continuellement L'entreprise est de plus en plus dpendante des

    technologies le SI peut devenir un frein C'est pas notre faute, c'est un problme informatique...

    Acteurs mtiers Acteurs techniques

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    6/59

    Zenika 2009 BPEL Orchestration de Web Services 6

    SOA : principesSOA : principes

    Simplicit Efficacit Communication mtier/technique

    Flexibilit et maintenabilit Prennit des systmes

    Rutilisabilit Rduction des anomalies Gain de productivit

    Indpendance vis vis des technologies S'appuyer sur les standards et les bonnes pratiques

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    7/59Zenika 2009 BPEL Orchestration de Web Services 7

    SOA : comment ?SOA : comment ?

    Dfinition

    dsigne un type d'architecture fournissant unensemble de services localisables, desapplications clientes ou d'autres servicesdistribus sur un rseau, via des interfacespublies

    Service = lment central de la dmarche SOA Fonctions Objet Service

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    8/59Zenika 2009 BPEL Orchestration de Web Services 8

    Service = Contrat Fonctionnalits mtier Performances ; Robustesse ...

    Intgration via des services Les systmes communiquent via des protocoles et des

    formats standards La vision service remplace la vision silo Intgration de l'existant via des services

    SOA : volution du SISOA : volution du SI

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    9/59Zenika 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

    rpondant aux critres SOA

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    10/59Zenika 2009 BPEL Orchestration de Web Services 10

    Web ServicesWeb Services

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    11/59Zenika 2009 BPEL Orchestration de Web Services 11

    Web Services : principesWeb Services : principes

    WSDL

    Web Services(JEE, .Net ...)

    SOAP

    Dcrit Reli

    Permet la communicationavec

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    12/59Zenika 2009 BPEL Orchestration de Web Services 12

    SOAPSOAP

    Couche message Bas sur XML Indpendant de la couche transport Normalis par W3C

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

    WS-Reliability ; ...

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    13/59Zenika 2009 BPEL Orchestration de Web Services 13

    132465789

    CREATION

    123

    SOAP : formatSOAP : format

    EnveloppeEntte

    Corps

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    14/59Zenika 2009 BPEL Orchestration de Web Services 14

    WSDLWSDL

    Dcrit le Web Service types, messages ; operations ; protocole ; adresse Bas sur XML

    Normalis par W3C

    WSDL = Contrat

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    15/59Zenika 2009 BPEL Orchestration de Web Services 15

    Dfinitionstypes

    messages

    protocole

    oprations

    adresse

    WSDL : FormatWSDL : Format

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    16/59Zenika 2009 BPEL Orchestration de Web Services 16

    BPELBPEL

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    17/59Zenika 2009 BPEL Orchestration de Web Services 17

    BPELBPEL

    Business Process Execution Language

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    18/59Zenika 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 Diffrentes implmentations (Oracle, Apache,)

    Langage Description de Business Processes Interactions avec des Web Services crit en XML

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    19/59Zenika 2009 BPEL Orchestration de Web Services 19

    BPEL, quelle utilit ?BPEL, quelle utilit ?

    Business Process Requte / Rponse Modle de donnesActivits et tches

    Sous-processus / Services

    Business process = Processus BPEL

    Processus BPEL = Web Service

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    20/59Zenika 2009 BPEL Orchestration de Web Services 20

    BPEL, quelle utilit ?BPEL, quelle utilit ?

    Orchestrateur de Web ServicesAbstraction Un processus BPEL orchestre l'appel d'autres WS Granularit inconnue du WS appel

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    21/59

    Zenika 2009 BPEL Orchestration de Web Services 21

    Processus BPEL WSDL Types Messages Oprations / PortTypes

    BPEL PartnerLinks

    VariablesActivits

    BPEL, a ressemble quoi ?BPEL, a ressemble quoi ?

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    22/59

    Zenika 2009 BPEL Orchestration de Web Services 22

    BPEL, a ressemble quoi ?BPEL, a ressemble quoi ?

    Processus BPEL

    Partenaires

    Variables globales

    Activits

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    23/59

    Zenika 2009 BPEL Orchestration de Web Services 23

    Oracle BPELOracle BPEL

    Process Console

    MANAGE

    J2EE Application Server

    (Oracle AS, WebLogic, JBoss, WebSphere)

    Core BPEL Engine

    BPEL

    JDeveloper

    BPEL Designer

    BPEL Process Manager

    Integrated BPM Services

    Workflow Decision

    ServiceSensors

    Metadata Repository

    (Oracle Database)

    WSDL Binding

    File, FTP

    Web services

    Java, JMS

    Database

    Apps

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    24/59

    Zenika 2009 BPEL Orchestration de Web Services 24

    Oracle BPEL : retour d'exprienceOracle BPEL : retour d'exprience

    Mise en uvre d'un projet d'orchestrationTlcom

    Oracle BPEL 10.1.3 (WS-BPEL 1.1)Avant-vente Architecture Dveloppement

    Chantier robustesse/performances Production Plusieurs centaines de milliers de requtes par jour Web Services, MQ/JMS

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    25/59

    Zenika 2009 BPEL Orchestration de Web Services 25

    Dmonstration n1 Orchestration de 2 processus BPEL Cration dun processus BPEL parent Dploiement Simulation sur Oracle BPEL PM 10.1.3.1

    DmonstrationDmonstration

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    26/59

    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 dun nombrerestreint de briques logicielles (activits BPEL) quipermettent :

    De communiquer avec des web services

    De manipuler des donnes XML De grer des exceptions De grer la compensation (ie. rollback)

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    27/59

    Zenika 2009 BPEL Orchestration de Web Services 27

    Activits BPEL de base (1/3)Activits BPEL de base (1/3)

    Nom Symbole Description

    Assign

    Permet de manipuler lesvariables dun processusInitialisation de variableCopie de variableManipulation XML (XPath)

    Scope

    Dcoupe de manire logique unprocessus BPEL. Il permet :De dclarer des variableslocalesDe rcuprer des exceptions

    Flow

    Excute diffrents traitements enparallle.

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    28/59

    Zenika 2009 BPEL Orchestration de Web Services 28

    Activits BPEL de base (2/3)Activits BPEL de base (2/3)

    Nom Symbole Description

    Switch

    Fournit n branches.Chacune de ces branches estassocie une expressionboolenne.La premire branche (degauche droite) dont la conditionest vraie est excute.Il est possible de fournir unebranche otherwise qui est lancesi aucune des autres branchesnest valide.

    While

    Effectue un traitement tant que lacondition associe nest pasrespecte.

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    29/59

    Zenika 2009 BPEL Orchestration de Web Services 29

    Symbole

    Activits BPEL de base (3/3)Activits BPEL de base (3/3)

    Nom

    Nom Symbole Description

    Throw

    Lance une exception interne. Lesexceptions peuvent ensuite trercupres dans un Catch dumme processus BPEL.

    Catch

    Rcupre au sein dun scope lesexceptions dun type donn etpermet dy associer un traitementspcifique.

    CatchAll

    Permet de rcuprer lensembledes exceptions non rcuprespar des catchs simples.

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    30/59

    Zenika 2009 BPEL Orchestration de Web Services 30

    Activits BPEL d'orchestrationActivits BPEL d'orchestration

    Nom Symbole Description

    InvokeAppelle un web service partenaire(PartnerLink)

    Receive Permet de recevoir un messagedun web service partenaire

    ReplyEnvoie un message (ou uneexception) en sortie deprocessus.

    Pick

    Permet de combiner plusieursReceive et Timeout (Une seulebranche peut tre prise encompte).

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    31/59

    Zenika 2009 BPEL Orchestration de Web Services 31

    Processus synchrone/asynchroneProcessus synchrone/asynchrone

    2 catgories principales de processus BPEL

    Processus synchrone attente active (appel bloquant) de la rponse

    traitements courts (quelques secondes) sortie = message ou exception

    Processus asynchrone pas dattente active (appel non bloquant) dune ventuelle rponse traitements longs sortie = message

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    32/59

    Zenika 2009 BPEL Orchestration de Web Services 32

    DmonstrationDmonstration

    Dmonstration n2 Cration de 2 processus BPEL

    Synchrone Asynchrone avec timer de 20 secondes

    Dploiement Simulation sur Oracle BPEL PM 10.1.3.1

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    33/59

    Zenika 2009 BPEL Orchestration de Web Services 33

    Base de dshydratationBase de dshydratation

    Dshydratation = Mmoire long terme

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    34/59

    Zenika 2009 BPEL Orchestration de Web Services 34

    Base de dshydratationBase de dshydratation

    Pourquoi dshydrater ? Ncessit technique (gestion mmoire) Robustesse du systme Cohrence et intgrit

    Quand dshydrater ? Selon implmentationActivits BPEL spcifiques (Receive, Wait)Action utilisateur

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    35/59

    Zenika 2009 BPEL Orchestration de Web Services 35

    Dshydratation : quand ?Dshydratation : quand ?

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    36/59

    Zenika 2009 BPEL Orchestration de Web Services 36

    Communications asynchronesCommunications asynchrones

    Problmatique : dbloquer une instance BPEL en attentede rponse

    Processus appelant : attente passive

    cest au processus appel de rveiller le processusappelant

    Rveil = envoi dun message (appel WS)

    C i t h iC i t h i

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    37/59

    Zenika 2009 BPEL Orchestration de Web Services 37

    Comparaison technique :Comparaison technique :synchrone/asynchronesynchrone/asynchrone

    ...

    ...

    ...

    Synchrone...

    ...

    ...

    Asynchrone

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    38/59

    Zenika 2009 BPEL Orchestration de Web Services 38

    WS-AddressingWS-Addressing

    Spcifications W3C : mcanismes permettant aux WS decommuniquer des informations dadressage

    donnes de routage de messages incluses au headerSOAP

    utilis par Oracle BPEL pour grer lescommunications asynchrones

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    39/59

    Zenika 2009 BPEL Orchestration de Web Services 39

    WS-Addressing - tapeWS-Addressing - tape 11

    123http://localhost:9700/process/callback

    ProcessAppel ProcessWait

    Processus Id Contexte

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    40/59

    Zenika 2009 BPEL Orchestration de Web Services 40

    WS-Addressing - tapeWS-Addressing - tape 22

    ProcessAppel ProcessWait

    Processus Id Contexte

    ProcessAppel 123

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    41/59

    Zenika 2009 BPEL Orchestration de Web Services 41

    WS-Addressing - tapeWS-Addressing - tape 33

    ProcessAppel ProcessWait

    Processus Id Contexte

    ProcessAppel 123

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    42/59

    Zenika 2009 BPEL Orchestration de Web Services 42

    WS-Addressing - tapeWS-Addressing - tape 44

    123

    ProcessAppel ProcessWait

    Processus Id Contexte

    ProcessAppel 123

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    43/59

    Zenika 2009 BPEL Orchestration de Web Services 43

    Fonction XPathFonction XPath

    XPath est une syntaxe (non XML) pour dsigner une portion dundocument XML (variable XML dans Oracle BPEL).

    XPath = langage dinterrogation

    Oracle BPEL propose un ensemble de fonctions de basepermettant de manipuler plus finement les expressions XPath

    nombre de fonctions XPath limit Oracle BPEL permet de construire des fonctions personnalises (

    base de classe Java)

    Fonction XPath = Pont BPEL/Java

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    44/59

    Zenika 2009 BPEL Orchestration de Web Services 44

    Corrlation custom Corrlation custom

    Permet dassocier un message une instance deprocessus donne

    Quelles utilisations ?

    o Dblocage extrieuro WS-Addressing non gr par le processus appel

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    45/59

    Zenika 2009 BPEL Orchestration de Web Services 45

    Corrlation custom : dblocageCorrlation custom : dblocage

    initiate

    correlate

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    46/59

    Zenika 2009 BPEL Orchestration de Web Services 46

    Corrlation custom tapeCorrlation custom tape 11

    123456

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    47/59

    Zenika 2009 BPEL Orchestration de Web Services 47

    Corrlation custom tapeCorrlation custom tape 22

    123456

    Processus Id Correlation

    ProcessCorrelate 965 123456

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    48/59

    Zenika 2009 BPEL Orchestration de Web Services 48

    Corrlation custom tapeCorrlation custom tape 33

    Processus Id Correlation

    ProcessCorrelate 965 123456

    Id Contexte

    965

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    49/59

    Zenika 2009 BPEL Orchestration de Web Services 49

    Corrlation custom tapeCorrlation custom tape 44

    123456

    Processus Id Correlation

    ProcessCorrelate 965 123456

    Id Contexte

    965

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    50/59

    Zenika 2009 BPEL Orchestration de Web Services 50

    Corrlation custom tapeCorrlation custom tape 55

    123456

    Processus Id Correlation

    ProcessCorrelate 965 123456

    Id Contexte

    965

    en cours

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    51/59

    Zenika 2009 BPEL Orchestration de Web Services 51

    BPEL : bonnes pratiquesBPEL : bonnes pratiques

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    52/59

    Zenika 2009 BPEL Orchestration de Web Services 52

    BPEL : une brique parmi dautresBPEL : une brique parmi dautres

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

    ESB Outil d'intgration

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

    EIP

    Les patterns de l'intgration ...

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    53/59

    Zenika 2009 BPEL Orchestration de Web Services 53

    BPEL et Systme d'informationBPEL et Systme d'information

    SI = Ensemble de systmes htrognes

    Les diteurs fournissent des adaptateurs

    Les adaptateurs Oracle BPEL Fichier JMS

    MQ ...

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    54/59

    Zenika 2009 BPEL Orchestration de Web Services 54

    Oracle BPEL : les adaptateursOracle BPEL : les adaptateurs

    Les adaptateurs Oracle s'appuient sur latechnologie JCA

    Interface Web Service intgration simplifie BPEL

    Adaptateurs non dfinis par les spcifications BPEL

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    55/59

    Zenika 2009 BPEL Orchestration de Web Services 55

    Adaptateurs : AlternativeAdaptateurs : Alternative

    BPEL est un langage ddi aux Web ServicesAdaptateur = Web Service MOM, BDD, Fichiers mise en uvre de WebServices

    Possibilit de mettre en place des Web Servicesasynchrones via le systme de customcorrelation

    http://java-soa.blogspot.com

    BPEL l b i

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    56/59

    Zenika 2009 BPEL Orchestration de Web Services 56

    BPEL : les bonnes pratiquesBPEL : les bonnes pratiques

    Utiliser BPEL comme intermdiaire entre lesystme appelant et les systmes appels

    Implmenter dans loutil la logique de routage etdchange avec les autres systmes

    Concevoir un processus comme une suite dchangesavec des services

    Sparer ce qui est du ressort du moteur BPEL dece qui ne lest pas

    Ne pas lutiliser comme un langage de programmation

    P f t b tP f t b t

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    57/59

    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 Coherencesur la base de dshydration Performances

    Failover

    O l BPEL j d'h iO l BPEL j d'h i

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    58/59

    Zenika 2009 BPEL Orchestration de Web Services 58

    Oracle BPEL aujourd'huiOracle BPEL aujourd'hui

    Dernire version : 11g R1

    Intgration la suite SOA Oracle 11g

    Architecture SCA Simplification des dploiements et de l'intgration aux autres

    briques SOA (ESB, BAM...) Gestion des Policy (scurit, robustesse...)

    D ti ?D ti ?

  • 7/22/2019 Presentation_BPEL_Jeudis_Objet.pdf

    59/59

    Grgory LE [email protected]

    Des questions ?Des questions ?