210 likes | 412 Views
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.
E N D
BPEL Dracea Alexandra Grupa:342C5
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.
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.
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 .
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.
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>
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 -->
Variabile • Mesajetrimisesiprimite de un partener • Pot persista de-a lungulmaimultorinteractiuni • 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: -->
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 -->
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.
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.
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.
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.
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.
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.
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