BPEL

20
BPEL Dracea Alexandra Grupa:342C5

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

Page 1: BPEL

BPEL

Dracea AlexandraGrupa:342C5

Page 2: BPEL

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.

Page 3: BPEL

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.

Page 4: BPEL

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 .

Page 5: BPEL

Exemplu

Page 6: BPEL

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. 

Page 7: BPEL

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>

Page 8: BPEL

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

Page 9: BPEL

Variabile• Mesaje trimise si primite de un partener

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

Page 10: BPEL

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

Page 11: BPEL

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

Page 12: BPEL

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.

Page 13: BPEL

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.

Page 14: BPEL

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.

Page 15: BPEL

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.

 

Page 16: BPEL

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.

Page 17: 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.

Page 18: BPEL

BPEL

Page 19: 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

Page 20: BPEL