Sunteți pe pagina 1din 49

Aplicatii Web bazate pe semantica, agenti si servicii

http://turing.cs.pub.ro/webs_07

Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea

Orchestrarea serviciilor Web


Standarde pentru servicii pozitionare Modelarea procesului de business


UML BPML WSBPEL ebXML


Orientare pe procese

Orchestrarea procesului de business


Standarde pentru servicii Web


UDDI ebXML Registries ebXML CPA OWL-S Service Model BPEL4WS WS-AtomicTransaction and WSXLANG BusinessActivity WS-Reliable WS-Coordination Messaging WS-Security WS-Policy SOAP XML, DTD, and XML Schema HTTP, FTP, SMTP, SIP, etc. WSCL WSDL BPML BTP ebXML BPSS Discovery Contracts and agreements Process and workflow orchestrations QoS: Transactions QoS: Choreography QoS: Conversations

OWL-S Service WSCL Profile OWL-S Service Grounding OWL RDF PSL

WSCI

ebXML QoS: Service CPP descriptions and bindings ebXML messaging Messaging Encoding Transport

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)

UML

Utilizarea UML pentru BM Constructii grafice care pot fi utilizate in modelarea BP pentru descrierea:

Structuri de control utilizate


activitatilor precedentei temporale fluxului de control

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

UML
Receive PO
Fork

Reprezentarea unui proces de vanzare

Update Customer Profile Get Items from Inventory


Branch

Compute Subtotal

Compute Export Tax


[ship within US] [ship outside US]

Compute Shipping Cost

Merge

Compute International Shipping

Compute Total

Ship Order

Join

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

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

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)

(1) Flow Objects

Events = ceva ce se intampla in timpul unui BP Activity = atomice sau nonTask atomice (compuse)

start

intermediate

end

Sub-Process
+

Task activitate atomica Sub-Process dezvoltare ierarhica Se pot executa o data sau pot avea bucle interne divergenta sau convergenta unor fluxuri de activitati element de decizie

Looped task

Gateway =

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 Error arunca o eroare Compensation indica necesitatea unei compensari pentru o tranzactie (apel compensare) Terminate termina toate activitatile din proces fara alte compensari sau evenimente

start

Intermediate la fel +

intermediate

End la fel cu Intermediate +

end

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

Exemplu
Message event

Sub-process activity

Intermediate events

Timer event

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

Complex gateways =

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

(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

Exemplu
Exclusive gateway (date) Sequence flow

(3) Swimlanes

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

Nume

Exemplu
Pool

Pool

(4) Artifacts

Data objects = arata datele necesare producerii unei activitati

Nume[Stare]

Sunt conectate la activitati prin asociatii

Group = utilizat pentru documentare sau analiza

Nu afecteaza fluxul de activitati


Adnotare cu text

Annotation = text suplimentar

Exemplu
Data object Lanes

Group

Annotation

BPD - rezumat
Elemente din BPDiagram

BPMN - orchestrare

Orchestrarea procese interne intr-o aceeasi organizatie Procesele sunt continute intr-un singur Pool

Exclusive gateway (data) Parallel gateway

BPMN - coreografie

Coreografia procese care se petrec in mai multe organizatii si interactiunea intre ele Procesele fiecarei organizatii sunt continute in Pools diferite

BP la nivel general

Modelarea - ierarhic, la diferite niveluri de detaliere

BP detaliat

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

BPMN - Expense reimbursment process

Meta-modelul UML al BPMN

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

TIBCO Business Suite

TIBCO Business Suite

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:

CorrelationSet -name -property

CompensationHandler

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

Process -name

Activity

Container -messageType -name

Partner -myRole -serviceLinkType -name

FaultHandler -faultContainer -faultName

Reply

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

CorrelationSet -name -property

CompensationHandler

Process -name

Activity

Container -messageType -name

Partner -myRole -serviceLinkType -name

FaultHandler -faultContainer -faultName

Reply

Proces BPEL = WS compus cu o descriere WSDL


Web Service
<receive> portType BPEL4WS Process <receive> portType

<reply> portType <reply>

Structura BPEL
Partner / Role Definitions Process State <process> <partners> </partners> <variables> </variables> Exception Handling <correlationSets> </correlationSets> <faultHandler> <faultHandler> Transaction management

Instance Matching

<compensationHandler> </compensationHandler>
<eventHandler> </eventHandler> Events (activities)* </process> Process Flow

activities = <receive>, <reply>, <invoke>, <assign>, <throw>, <terminate>, <wait>, <empty>, <sequence>, <switch>, <while>, <pick>, <flow>, <scope>, <compensation>

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>

Serial: <send>, <receive>, <invoke>, <>

<flow>

Paralel <send>, <receive>, <invoke>, <>

<pick>

Asteapta pentru unul sau mai multe <receive> sau o alarma

Fluxul de control BPEL

<switch> <case /> <otherwise /> </switch>

While

Wait

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>

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

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>

Tratarea erorilor in BPEL


<faultHandlers> <catchAll> </catchAll> </faultHandlers> <switch> <case condition= "bpws:getVariableProperty(stockResult,level) > 100"> <throw faultName="OutOfStock"/> </case>

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>

Meta-modelul (complet) UML al BPEL

Mapare BPMN la BPEL

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

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

Vocabularul ebXML

Unified Modeling Methodology (UMM)

UML specializat pentru Business Processes


Descrie un profil de business, adica ce BP suporta, rolurile din proces, mesajele schimbate, mecanismul de transport pentru mesaje (e.g., HTTPS) O intersectie a doua CPP Contract tehnic intre doi sau mai multi parteneri

Collaboration Protocol Profile (CPP)

Collaborative Partner Agreement (CPA)


Proiectarea unui sistem ebXML


Business Organization A Business Organization B

Business Process and Information Model (UMM or PSL)

Business Process and Information Model (UMM or PSL)

Request ebXML Specs ebXML Process Specification Document Receive ebXML Info
n tio ra o le b lla ofi Co l Pr ish co bl oto u P Pr

ebXML Repository Business Process Business Scenarios

Request ebXML Specs Receive ebXML Info Pu bl i Pr sh C ot oc olla ol bo Pr ra of tio ile n ebXML Process Specification Document

Implement ebXML CPA and CPP Specifications

Business Profiles

Implement ebXML CPA and CPP Specifications

CPA Information

ebXML Business Service Interface Configuration

ebXML Business Service Interface Configuration

S-ar putea să vă placă și