E N D
Business Process Management Sisteme informatice ale companiilor - nivel ridicat de eterogenitate Business Process Management (BPM) • soluţii ce permit integrarea unor sisteme extrem de diverse • în plus: functii avansate pentru modelarea si automatizarea fluxurilor de business la nivelul companiei • accesul la surse de date variate si interoperabilitatea unui numar mare de aplicatii • procesele de afaceri vor putea fi modelate direct de catre analiştii financiari şi economici, fără suportul departamentelor IT
Business Process Execution Language Limbaj bazat pe XML Permite dezvoltatorilor să-şi descrie procesele de afaceri ca servicii web Derivat din WSFL (Web Services Flow Language) şi XLANG (Web Services Description Language (WSDL) aplicat pentru business) BPEL se focalizează pe modelarea proceselor moderne de afaceri, adoptând serviciile Web ca mecanism extern de comunicare Integrează facilităţile Web Services Description Language (WSDL) 1.1 pentru a descrie mesajele de intrare sau de ieşire
Business Process Execution Language Procesele de afaceri pot fi descrise în două moduri: • Procese executabile de afaceri – care modelează comportamentul actual al unui participant într-o interacţiune de afaceri • Protocoale de afaceri – care, utilizează descrieri de procese specificând comportamentul părţilor implicate în schimbul de mesaje, fără a descopri comportamentul lor intern. • Descrierile de procese în cadrul protocoalelor de afaceri sunt numite procese abstracte BPEL e utilizat pentru a modela atât procesele executabile, cât şi pe cele abstracte
BPEL Pentru programarea la scară largă, BPEL descrie procese abstracte>>> o serie de comportamente observabile: când trebuie aşteptate/trimise mesaje, când trebuie găsite compensaţii pentru tranzacţiile eşuate etc.
BPEL Domenii de utilizare Secvenţierea activităţilor din cadrul proceselor, în special interacţiunile dintre serviciile Web Corelarea mesajelor şi a instanţelor de procese Comportamentul de restabilire a datelor în caz de erori sau condiţii excepţionale Relaţii bilaterale bazate pe servicii Web între rolurile de proces
BPEL 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ă Ex: ce se întâmplă când un cumpărător trimite u ordin de achiziţie către un furnizor • Documentul BPEL este trimis împreună cu ordinul de achiziţie, specificând instrucţiuni pentru procedurile necesare: confirmarea ordinului, aprobarea creditului, chitanţa de plată, confirmarea distribuţiei produselor
BPEL 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 BPEL oferă o soluţie mult mai ieftină comparativ cu metoda mai puternică (dar şi mai dificilă) EDI – Electronic Data Interchange.
Orchestrarea serviciilor Web • Standarde pentru servicii – pozitionare • Modelarea procesului de business • BPML • UML • Orchestrarea procesului de business • WSBPEL • ebXML Orientare pe procese
BPMN • BPMN este o reprezentarea grafica pe baza de organigrame pentru definirea BP (Business Processes) • BPMN ofera un mecanism pentru generarea BP executabile (BPEL) din aceasta reprezentare grafica • BP modelat in BPMN poate fi direct dat unui motor BPEL pentru executie
Originile BPMN • BPMI (Business Process Management Institute) – acum parte a OMG a dezvoltat BPML (un limbaj bazat pe XML pentru executarea BP) • BPML a fost mai tarziu inlocuit de BPEL • BPMN • Mai 2004 - BPMN 1.0 • Februarie 2006 BPMN 1.0 adoptat ca standard OMG • la ora actuala exsita 39 de mari companii care au implementari ale BPMN
BPMN – elemente de baza • BPMN este format dintr-o multime de elemente grafice • Defineste Business Process Diagram (BPD) – flowchart pentru crearea modelelor grafice a operatiilor BP • 4 categorii de baza de elemente • Flow Objects • Connecting Objects • Swimlanes • Artifacts
BPD - rezumat Elemente din BPDiagram
BPMN - orchestrare • Orchestrarea – procese interne intr-o aceeasi organizatie • Procesele sunt continute intr-un singur Pool
BPMN - coreografie • Coreografia – procese care se petrec in mai multe organizatii si interactiunea intre ele • Procesele fiecarei organizatii sunt continute in Pools diferite
BPEL • Poate servi ca un limbaj de executie (procese executabile si ca un limbaj de descriere (procese abstracte) • Un document BPEL utilizeaza XML pentru a descrie urmatoarele aspecte ale BP:
Structura BPEL Partner / Role Definitions ProcessState • <process> • <partners> … </partners> • <variables> … </variables> • <correlationSets> … </correlationSets> • <faultHandler> … <faultHandler> • <compensationHandler> … </compensationHandler> • <eventHandler> … </eventHandler> • (activities)* • </process> • activities = <receive>, <reply>, <invoke>, <assign>, <throw>, <terminate>, <wait>, <empty>, <sequence>, <switch>, <while>, <pick>, <flow>, <scope>, <compensation> Instance Matching Transaction management ExceptionHandling Events ProcessFlow Sintaxa BPEL 1.1
Triggere de procese BPEL • Extrinsic / Incoming Messages <receive createInstance=“yes”> … </receive> • Intrinsic / Time-based <pick> <!-- set an alarm in 3 days and 10 hours --> <onAlarm for="'P3DT10H'"> <!-- handle timeout for order completion --> … </onAlarm> </pick>
Activitati BPEL • <sequence> • <flow> • <pick> Serial: <send>, <receive>, <invoke>, <…> Paralel <send>, <receive>, <invoke>, <…> Asteapta pentru unul sau mai multe <receive> sau o alarma
Fluxul de control BPEL • <switch> <case /> <otherwise /> </switch> • While • Wait
Date BPEL • Contextul prin <scope> • Atribuirea variabilelor utilizand XPath 1.0 <assign> <copy> <from variable="AutoLoanRequest" part="creditRating" query="/creditRating/text()"/> <to variable="InterstateCarLoanRequest" part="credit" query="/credit/text()"/> </copy> </assign>
Corelarea mesajelor BPEL <propertyAlias propertyName="orderNumber" messageType="POMessage" part="PO" query="/PO/Order"/> <correlationSets> <correlationSet name="PurchaseOrder" properties="orderNumber"/> </correlationSets> … <receive partnerLink="Buyer" portType="PurchasingPT" operation="AsyncPurchase" variable="PO"> <correlations> <correlation set="PurchaseOrder" initiate="yes"> </correlations> </receive>
Tranzactii BPEL • Support for transactional integrity • <compensationHandler> <invoke partnerLink="Seller" operation="SyncPurchase" …> … <compensationHandler> <invoke partnerLink="Seller" operation="CancelPurchase“ …/> </compensationHandler> </invoke> • Invoke via <compensate> <switch> <case …> <compensate/> </case> • Ongoing discussions in the OASIS TC about use of WS-Coordination
Tratarea erorilor in BPEL <faultHandlers> <catchAll> … </catchAll> </faultHandlers> … <switch> <case condition= "bpws:getVariableProperty(stockResult,level) > 100"> <throw faultName="OutOfStock"/> </case>
Produse BPEL • OpenStorm Service Orchestrator • Microsoft: BizTalk Server 2004, Visio • Collaxa • IBM WebSphere Process Choreographer • Oracle AS, JDeveloper • webMethods • Eclipse plug-in • Oracle: AS and JDeveloper • BEA WebLogic 8.1 • …