1 / 20

BPEL

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.

travis
Download Presentation

BPEL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BPEL Dracea Alexandra Grupa:342C5

  2. Ceeste BPEL? • Business Process Execution Language , prescurtarea de la Web Services Business Process Execution Language (WS-BPEL), este un limbaj de programarebazatpe XML. • Permitedezvoltatorilorsa-sidescrieprocesele de afaceri ca servicii web • Standardizat de OASIS, in 2004, dupaeforturicolaborative ale firmelor IBM, Microsoft sialtecompaniipentru a creaacestlimbaj.

  3. Ceeste BPEL? • Derivat din WSFL( Web Services Flow Language - dezvoltat de IBM ) si XLANG(Web Services Description Language (WSDL) aplicatpentru business – dezvoltat de Microsoft) • BPEL se focalizeazapemodelareaproceselormoderne de afaceri, adoptandserviciile web ca mecanism extern de comunicatie. • Integreazăfacilităţile Web Services Description Language (WSDL) 1.1 pentru a descriemesajele de intraresau de ieşire.

  4. BPEL • Interactiunile in cadrulserviciilor Web pot fidescrie de 2 tipuri de procese de afaceri: • Procese de afaceriexcutabile , modeleazacomportamentul actual al unui participant intr-o interactiune de afaceri. • Proceseabstracte de afaceri, in care logica de decizieestedefinita, darinformatiinecesarepentru a alege un curs de actiuneesteascunsaltorprocesepartenere. • BPEL esteutilizatpentru a modelaatatproceseabstracte cat siproceseexecutabile. • Pentru programare la scara larga, BPEL descrie procese abstracte , adica o serie de comportamente observabile .

  5. Exemplu

  6. Limbajul BPEL • BPEL este un limbaj de orchestratie, nu de coregrafie. • Limbaj de orchestratiespecifica un process de executieceimplicaschimb de mesaje cu altesisteme. • Limbaj de coregrafiespecifica un protocol de interactiune peer-to-peer. • O coregrafiepoatefirealizataprinscrierea uneiorchestratii, folosind BPEL ,pentrufiecare peer.

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

  8. Partners • Definesteserviciul Web sirolurilepe 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 -->

  9. Variabile • Mesajetrimisesiprimite de un partener • Pot persista de-a lungulmaimultorinteractiuni • Definite in WSDL

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

  11. Alteactivitati <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 -->

  12. Limbajul BPEL • Features: • Folosestelogicapentru a decide ceserviciu web vaapela • Constructii de tip if-then-elseif-else, while, sequence pentruexecutiacomenzilorsecvential • Constructiipentruexecutiaparalela: flow • BPEL ofera o activitate de tip “pick” astfelincatlogicidiferite pot fiexecutate in functie de mesajulprimit. • Foloseste “correlation sets”, pentru a trimitemesajeasincrone de tip “fire and forget” unuiserviciu web, sasuspendefirul de executie, apoimultmaitarziusaprimeasca un raspuns, coreleazaraspunsulfluxului original( care a trimismesajul ) sisatrezeascafluxulpentru a continua executia de unde a ramas.

  13. BPEL Handlers and Scopes • Scopereprezinta un set de activitati. • Fiecare scope are asociat 2 tipuri de handlere: • Fault handlers . Pot fiatasatemai multepentrudiferitetipuri de defectari. • Compensation handlers , unul singur per scope.

  14. Cum functioneazahandlere-le • Compensation handler -> folositpentru a anulamuncarealizata de un scope complet. • Poatefiinvocatdoar de un fault handler sau de un compensation handler al unui scope ce-l ingradeste. • Fault scope definestecai alternative de executiecand o defectare se produce in cadrulunui scope • Scenariu: • S-a produs o defectare • Executiaunui scope s-a terminat • Este localizat un fault hander apropiat • Executiaprincipalaestecompensataprinanulareaefectuluiasupraprocesului a task-urilorneterminate.

  15. BPEL si BPMN • BPEL esteadeseoriasociat cu BPMN(Business Process Management Notation), care se asemeneadorestemodelareaproceselor de afaceri. • Spredeosebire de BPEL, BPMN nu esteexecutabilfiindmaimultcreatpentruplanificaresi design. • BPMN are o componentavisuala care face sa fie maiusor de inteles de persoanele care nu suntfamiliari cu limabaje de programare. • Multefirmesi-au dezvoltatproprianotatievizualapentru BPEL pentru a simplicalimbajul.

  16. BPEL si BPMN • BPEL si BPMN au crescut in popularitateimpreuna in ultimiianipemasuracefiecarecautasasimplificeprocesul de managment al afacerilorsiincurajeazacolaborareadintredezvoltatorisioamenii de afaceri. • Translatarea de la BPEL la BPMN siinvers continua saramana o provocare. • Este greagenerearea de cod BPEL din diagrame BPMN , pastrareamodelului BPMN original sisincronizareacodului BPEL.

  17. BPEL extensions • BPEL4People • Taskuriumane pot fiincluse in procese BPEL • Defineste un protocol bazatpeschimb de mesajeintre engine-ul BPEL sicomponenteletaskurilor. • Este vazut ca o metoda de a adauganoicapabilitati BPEL, siastfelsadevinamaicompatibil cu BPM. • BPELJ • Combinareintre BPEL silimbajul Java • Permitesectiuni de cod Java, numitJava  snippets , in definireaproceselor BPEL.

  18. BPEL

  19. Concluzii • Rolul BPEL înschimbul de date prinintermediulserviciilor Web este de: • a definitoţipaşiiîntr-o tranzacţie • A se asiguracăsuntexecutaţiîntr-o ordinecorectă • BPEL estedestinatsăfuncţionezeîn “spaţiul public” dintrecompanii • Poateautomatizasecvenţiereamesajelor, dar NU se ocupă de executareaefectivă a tranzacţiilor

More Related