1 / 49

Aplicatii Web bazate pe semantica, agenti si servicii

http://turing.cs.pub.ro/webs_07. Aplicatii Web bazate pe semantica, agenti si servicii. Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea. Orchestrarea serviciilor Web. Standarde pentru servicii – pozitionare Modelarea procesului de business UML BPML

devona
Download Presentation

Aplicatii Web bazate pe semantica, agenti si servicii

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. http://turing.cs.pub.ro/webs_07 Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica BucurestiAnul universitar 2007-2008, MasterAdina Magda Florea

  2. Orchestrarea serviciilor Web • Standarde pentru servicii – pozitionare • Modelarea procesului de business • UML • BPML • Orchestrarea procesului de business • WSBPEL • ebXML Orientare pe procese

  3. Standarde pentru servicii Web

  4. Modelarea proceselor • Modelarea proceselor • Reprezentarea unei secvente ordonate de activitati de business si a continutului informational asociat • Un model de proces = diagrame de flux de activitati care contin suficiente detalii a.i procesul sa poata fi analizat, simulat si executat • BPMN = Business Process Modeling Notation • UML pt BM (Business Modeling)

  5. UML • Utilizarea UML pentru BM • Constructii grafice care pot fi utilizate in modelarea BP pentru descrierea: • activitatilor • precedentei temporale • fluxului de control • Structuri de control utilizate • Sequence: tranzitia de la o activitate la alta • Branch: un punct de decizie intre fluxuri alternative de control • Merge: doua sau mai multe fluxuri de control alternativ se contopesc • Fork: impartirea unui flux de control in doua sau mai multe fluxuri de control concurente independente • Join: sincronizarea a doua sau mai multe fluxuri de control cu executie concurenta intr-un unic flux de control

  6. UML Reprezentarea unui proces de vanzare

  7. BPMN • BPMN permite • modelarea proceselor • utilizarea unor metodologii diverse cat si scopuri diverse in modelare (de ex orchestrare si coreografie) • 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 dat unui motor BPEL pentru executie

  8. Originile BPMN • BPMI (Business Process Management Institute) – acum parte a OMG (Object Management Group) 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

  9. 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 (1) • Connecting Objects (2) • Swimlanes (3) • Artifacts (4)

  10. (1) Flow Objects • Events = ceva ce se intampla in timpul unui BP • Activity = atomice sau non-atomice (compuse) • Task – activitate atomica • Sub-Process – dezvoltare ierarhica • Se pot executa o data sau pot avea bucle interne • Gateway = • divergenta sau convergenta unor fluxuri de activitati • element de decizie start intermediate end Task Sub-Process + Looped task

  11. Event • Events = ceva ce se intampla in timpul unui BP • Start • untriggered • message (procesul incepe la receptionarea unui mesaj; se poate implementa ca un WS) • timer – procesul incepe la o data/ora specificata sau la un interval de timp (ciclic) • rule – procesul incepe odata cu executia unei reguli • link – un sub-proces al procesului curent incepe la terminarea unui alt sub-proces al procesului curent • Intermediate – la fel + • Error – arunca o eroare • Compensation – indica necesitatea unei compensari pentru o tranzactie (apel compensare) • End – la fel cu Intermediate + • Terminate – termina toate activitatile din proces fara alte compensari sau evenimente start intermediate end

  12. Activity • Tasks • User tasks– necesita interventie umana in aplic software (eg introduce date client) • Manual tasks – facute de o persoana fara software (eg cheama seful) • Service tasks – fara interventie umana (eg apel fct software, WS) • Send task – trimite mesaj catre sistem sau persoana • Receive task –asteapta un mesaj de la sistem sau persoana • Reference task – refera un task deja existent (impiedica duplicare taskuri) • Sub-processes • Embedded – continut integral in procesul parinte si executat in acesta; are acces la aceleasi Data Object ca procesul parinte • Independent – apel al unui proces separat care poate fi apelat si din alt proces; nu are acces la Data Objects a procesului parinte • Transactions – comportarea sub-procesului este aceea a unui protocol de tranzactie • Activity markers – pt bucle

  13. Exemplu Message event Sub-process activity Intermediate events Timer event

  14. Gateways • Utilizate pentru: branching, merging, forking, joining, conditional decisions • Exclusive gateways (XOR)= decizii – numai o cale posibila • Mecanisme de decizie: • date (eg expresii conditionale) • evenimente (eg receptia unui mesaj) • Inclusive gateways(OR)= • utilizate ca fork = mai multe iesiri posibile; • utilizate ca merge, sincronizeaza fluxuri de intrare dar nu asteapta • Complexgateways= • utilizate ca merge = expresia determina care flux de intrare este necesar pentru a continua • Parallel gateways(AND)= fork sau merge pt. mai multe cai paralele; folosita ca sincronizare (wait for) a cailor paralele de intrare

  15. (2) Connecting Objects • Sequence flow = ordinea activitatilor intr-un proces • Message flow = fluxul de mesaje intre 2 participanti diferiti la proces • Association = asociaza date, text sau alte artefacte cu flow objects • Asocierile sunt utilizate pentru a arata intrarile si iesirile activitatilor

  16. Exemplu Exclusive gateway (date) Sequence flow

  17. (3) Swimlanes Nume • Pool= reprezinta un participant la un process • Grupeaza activitati in B2B; 2 entitati/participanti • Lane = sub-partitie intr-un Pool • Folosesc la organizarea si clasificarea activitatilor Nume Nume Nume

  18. Exemplu Pool Pool

  19. (4) Artifacts • Data objects = arata datele necesare producerii unei activitati • Sunt conectate la activitati prin asociatii • Group = utilizat pentru documentare sau analiza • Nu afecteaza fluxul de activitati • Annotation = text suplimentar Nume[Stare] Adnotare cu text

  20. Exemplu Data object Lanes Group Annotation

  21. BPD - rezumat Elemente din BPDiagram

  22. BPMN - orchestrare • Orchestrarea – procese interne intr-o aceeasi organizatie • Procesele sunt continute intr-un singur Pool Exclusive gateway (data) Parallel gateway

  23. BPMN - coreografie • Coreografia – procese care se petrec in mai multe organizatii si interactiunea intre ele • Procesele fiecarei organizatii sunt continute in Pools diferite

  24. BP la nivel general • Modelarea - ierarhic, la diferite niveluri de detaliere

  25. BP detaliat

  26. Exemplu de modelare a unui proces • Expense reimbursment process = decontarea cheltuielilor unor angajati intr-o organizatie • Informatii despre proces • Dupa depunerea decontului de cheltuieli (Expense Report) se creaza un nou cont (bancar) daca angajatul nu are deja unul • Decontul este apoi trimis automat pentru aprobare • daca suma este sub $200 atunci aprobarea este automata • daca suma este egala sau mai mare cu $200 atunci necesita aprobarea supervizorului • In caz de respingere, angajatul primeste o notificare prin email • Daca a fost aprobat cu succes, suma este depusa in contul angajatului • Daca nu se intampla nici o actiune in 7 zile, angajatul primeste un email "approval in progress" • Daca cererea nu este rezolvata in 30 de zile, atunci procesul se opreste si angajatul primeste un email prin care este notificat de acest lucru (cancellation) si trebuie sa depuna din nou decontul

  27. BPMN - Expense reimbursment process

  28. Meta-modelul UML al BPMN

  29. Produse BPMN • TIBCO Business Suite – permite modelarea proceselor si "deployment" pe TIBCO iProcess Engine • BPMN iServer pt Microsoft Visio • SPARX Systems Enterprise Architect – UML 2.01 si BPMN • Intalio BPMS • WebSphere Business Modeler – vezi Demo

  30. TIBCO Business Suite

  31. TIBCO Business Suite

  32. 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: • partners: o lista de WS invocate ca parte a unui proces • containers: utilizate de procese, oferind definitii in termeni de tipuri de mesaje WSDL; sunt necesare pentru a stoca date cu stari si istoria procesului pe baza mesajelor schimbate intre componentele procesului • variables: variabilele utilizate care fac parte din proces • faultHandlers: routinele de tratare a exceptiilor

  33. BPEL • eventHandlers: routinele de tratare a evenimentelor externe (asincrone) • compensationHandler: compensarea ce trebuie executata daca o tranzactie esueaza • correlationSet: precedenta si corelarea intre invocarea WS care nu poate fi exprimata ca parte a procesului logic principal • main logic process: o serie de structuri de control imbricate care combina activitati primitive cu algoritmi mai complicati. Structurile de control includ: • sequence – executie seriala • while – bucla • switch – multiway branching • pick – selectia unei alternative pe baza unui eveniment extern • flow – executie paralela

  34. Proces BPEL = WS compus cu o descriere WSDL

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

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

  37. Activitati BPEL • <sequence> • <flow> • <pick> Serial: <send>, <receive>, <invoke>, <…> Paralel <send>, <receive>, <invoke>, <…> Asteapta pentru unul sau mai multe <receive> sau o alarma

  38. Fluxul de control BPEL • <switch> <case /> <otherwise /> </switch> • While • Wait

  39. Date BPEL • 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>

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

  41. Tranzactii BPEL • Suport pentru integritatea tranzactiilor • <compensationHandler> <invoke partnerLink="Seller" operation="SyncPurchase" …> … <compensationHandler> <invoke partnerLink="Seller" operation="CancelPurchase“ …/> </compensationHandler> </invoke> • Se apeleaza prin <compensate> <switch> <case …> <compensate/> </case>

  42. Tratarea erorilor in BPEL <faultHandlers> <catchAll> … </catchAll> </faultHandlers> … <switch> <case condition= "bpws:getVariableProperty(stockResult,level) > 100"> <throw faultName="OutOfStock"/> </case>

  43. Specificarea unui serviciu compus de “Stock quotation” <process name="simple" targetNamespace="urn:stockQuoter" xmlns:tns="urn:stockQuoter" xmlns:sqp="http://tempuri.org/services/stockquote" xmlns=&BPEL;/> <containers> <container name="request" messageType="tns:request"/> <container name="response" messageType="tns:response"/> <container name="invocationRequest" messageType="sqp:GetQInput"/> <container name="invocationResponse" messageType="sqp:GetQOutput"/> </containers> <partners> <partner name="caller" serviceLinkType="tns:StockQuoteSLT"/> <partner name="provider" serviceLinkType="tns:StockQuoteSLT"/> </partners> <sequence name="sequence"> <receive name="receive" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="request" createInstance="yes"/> <assign> <copy> <from container="request" part="symbol"/> <to container="invocationRequest" part="symbol"/> </copy> </assign> <invoke name="invoke" partner="provider" portType="sqp:StockQuotePT" operation="getQuote" inputContainer="invocationRequest" outputContainer="invocationResponse"/> <assign> <copy> <from container="invocationResponse" part="quote"/> <to container="response" part="quote"/> </copy> </assign> <reply name="reply" partner="caller" portType="tns:StockQuotePT" operation="wantQuote" container="response"/> </sequence> </process>

  44. Meta-modelul (complet) UML al BPEL

  45. Mapare BPMN la BPEL

  46. 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 • …

  47. Electronic Business Extensible Markup Language (ebXML) • Propus de UN-CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) si OASIS (Organization for the Advancement of Structured Information Standards) • Ofera specificatii pentru a defini BP standard, schimbul de mesaje de business si stabilirea contractelor • Motivatie: • Standard global pentru orice tip de companie • Gasirea automata a partenerilor de business

  48. Vocabularul ebXML • Unified Modeling Methodology (UMM) • UML specializat pentru Business Processes • Collaboration Protocol Profile (CPP) • Descrie un profil de business, adica ce BP suporta, rolurile din proces, mesajele schimbate, mecanismul de transport pentru mesaje (e.g., HTTPS) • Collaborative Partner Agreement (CPA) • O intersectie a doua CPP • Contract tehnic intre doi sau mai multi parteneri

  49. Proiectarea unui sistem ebXML

More Related