BPEL

Post on 25-Feb-2016

66 views 0 download

description

BPEL. Dracea Alexandra Grupa:342C5. Ce este BPEL?. Business Process Execution Language , prescurtarea de la Web Services Business Process Execution Language (WS-BPEL), este un limbaj de programare bazat pe XML. - PowerPoint PPT Presentation

Transcript of BPEL

BPEL

Dracea AlexandraGrupa:342C5

Ce este BPEL?

• Business Process Execution Language , prescurtarea de la Web Services Business Process Execution Language (WS-BPEL), este un limbaj de programare bazat pe XML.

• Permite dezvoltatorilor sa-si descrie procesele de afaceri ca servicii web

• Standardizat de OASIS, in 2004, dupa eforturi colaborative ale firmelor IBM, Microsoft si alte companii pentru a crea acest limbaj.

Ce este BPEL?

• Derivat din WSFL( Web Services Flow Language - dezvoltat de

IBM ) si XLANG(Web Services Description Language (WSDL) aplicat pentru business – dezvoltat de Microsoft)

• BPEL se focalizeaza pe modelarea proceselor moderne de afaceri, adoptand serviciile web ca mecanism extern de comunicatie.

• Integrează facilităţile Web Services Description Language (WSDL) 1.1 pentru a descrie mesajele de intrare sau de ieşire.

BPEL• Interactiunile in cadrul serviciilor Web pot fi descrie de 2

tipuri de procese de afaceri:▫ Procese de afaceri excutabile , modeleaza comportamentul actual al

unui participant intr-o interactiune de afaceri.▫ Procese abstracte de afaceri, in care logica de decizie este definita,

dar informatii necesare pentru a alege un curs de actiune este ascuns altor procese partenere.

• BPEL este utilizat pentru a modela atat procese abstracte cat si procese executabile.

• Pentru programare la scara larga, BPEL descrie procese abstracte , adica o serie de comportamente observabile .

Exemplu

Limbajul BPEL• BPEL este un limbaj de orchestratie, nu de coregrafie.

• Limbaj de orchestratie specifica un process de executie ce implica schimb de mesaje cu

alte sisteme.

• Limbaj de coregrafie specifica un protocol de interactiune peer-to-peer.

• O coregrafie poate fi realizata prin scrierea unei orchestratii, folosind BPEL ,pentru fiecare peer. 

Structura unui process BPEL<process ...>

<partners> ... </partners><!-- Web services the process interacts with -->

<containers> ... </containers><!– Data used by the process -->

<correlationSets> ... </correlationSets><!– Used to support asynchronous interactions -->

<faultHandlers> ... </faultHandlers><!–Alternate execution path to deal with faulty conditions -->

<compensationHandlers> ... </compensationHandlers> <!–Code to execute when “undoing” an action --> (activities)*

<!– What the process actually does -->

</process>

Partners• Defineste serviciul Web si rolurile pe care procesul le indeplineste

<partner name=“...” serviceLinkType=“...” partnerRole=“...” myRole=“...”/> <!– A partner is accessed over a WS “channel”, defined by a service link type -->

<serviceLinkType name=“..."> <role name=“..."> <portType name=“..."/>* </role> <role name=“..."> <portType name=“...”/>* </role></serviceLinkType> <!– A SLT defines two roles and the portTypes that each role needs to

support -->

Variabile• Mesaje trimise si primite de un partener

▫ Pot persista de-a lungul mai multor interactiuni▫ Definite in WSDL

Activitati BPEL <invoke partner=“...” portType=“...” operation=“...” inputContainer=“...” outputContainer=“...”/>

<!-- process invokes an operation on a partner: -->

<receive partner=“...” portType=“...” operation=“...” container=“...” [createInstance=“...”]/> <!-- process receives invocation from a partner: --><reply partner=“...” portType=“...” operation=“...” container=“...”/> <!-- process send reply message in partner invocation: --><assign> <copy> <from container=“...”/> <to container=“...”/> </copy>+</assign> <!– Data assignment between containers: -->

Alte activitati<throw faultName=“..." faultContainer=“...“/>

<!-- process detects processing error and switches into fault processing mode -->

<terminate/> <!– pull the plug -->

<wait for=“...”? until=“...”?/> <!-- process execution stops for a specified amount of time--

>

<empty> <!– Do nothing; a convenience element -->

Limbajul BPEL • Features:

▫ Foloseste logica pentru a decide ce serviciu web va apela▫ Constructii de tip if-then-elseif-else, while, sequence pentru executia

comenzilor secvential▫ Constructii pentru executia paralela: flow

• BPEL ofera o activitate de tip “pick” astfel incat logici diferite pot fi executate in functie de mesajul primit.

• Foloseste “correlation sets”, pentru a trimite mesaje asincrone de tip “fire and forget” unui serviciu web, sa suspende firul de executie, apoi mult mai tarziu sa primeasca un raspuns, coreleaza raspunsul fluxului original( care a trimis mesajul ) si sa trezeasca fluxul pentru a continua executia de unde a ramas.

BPEL Handlers and Scopes• Scope reprezinta un set de activitati.

• Fiecare scope are asociat 2 tipuri de handlere:

▫ Fault handlers . Pot fi atasate mai multe pentru diferite tipuri de defectari.▫ Compensation handlers , unul singur per scope.

Cum functioneaza handlere-le• Compensation handler -> folosit pentru a anula munca

realizata de un scope complet.▫ Poate fi invocat doar de un fault handler sau de un compensation

handler al unui scope ce-l ingradeste.

• Fault scope defineste cai alternative de executie cand o defectare se produce in cadrul unui scope

• Scenariu:• S-a produs o defectare• Executia unui scope s-a terminat• Este localizat un fault hander apropiat• Executia principala este compensata prin anularea efectului asupra

procesului a task-urilor neterminate.

BPEL si BPMN

• BPEL este adeseori asociat cu BPMN(Business Process Management Notation), care se asemenea doreste modelarea proceselor de afaceri.

• Spre deosebire de BPEL, BPMN nu este executabil fiind mai mult creat pentru planificare si design.

• BPMN are o componenta visuala care face sa fie mai usor de inteles de persoanele care nu sunt familiari cu limabaje de programare.

• Multe firme si-au dezvoltat propria notatie vizuala pentru BPEL pentru a simplica limbajul.

 

BPEL si BPMN• BPEL si BPMN au crescut in popularitate impreuna in

ultimii ani pe masura ce fiecare cauta sa simplifice procesul de managment al afacerilor si incurajeaza colaborarea dintre dezvoltatori si oamenii de afaceri.

• Translatarea de la BPEL la BPMN si invers continua sa ramana o provocare.

• Este grea generearea de cod BPEL din diagrame BPMN , pastrarea modelului BPMN original si sincronizarea codului BPEL.

BPEL extensions

• BPEL4People ▫ Taskuri umane pot fi incluse in procese BPEL▫ Defineste un protocol bazat pe schimb de mesaje intre engine-

ul BPEL si componentele taskurilor.▫ Este vazut ca o metoda de a adauga noi capabilitati BPEL, si

astfel sa devina mai compatibil cu BPM.

• BPELJ▫ Combinare intre BPEL si limbajul Java▫ Permite sectiuni de cod Java, numit Java  snippets , in

definirea proceselor BPEL.

BPEL

Concluzii• Rolul BPEL în schimbul de date prin intermediul serviciilor

Web este de:▫ a defini toţi paşii într-o tranzacţie▫ A se asigura că sunt executaţi într-o ordine corectă

• BPEL este destinat să funcţioneze în “spaţiul public” dintre companii▫ Poate automatiza secvenţierea mesajelor, dar NU se ocupă de

executarea efectivă a tranzacţiilor