Title: Aplicatii Web bazate pe semantica, agenti si servicii
1- Aplicatii Web bazate pe semantica, agenti si
servicii
http//turing.cs.pub.ro/webs_07
Universitatea Politehnica BucurestiAnul
universitar 2007-2008, MasterAdina Magda Florea
2Orchestrarea serviciilor Web
- Standarde pentru servicii pozitionare
- Modelarea procesului de business
- UML
- BPML
- Orchestrarea procesului de business
- WSBPEL
- ebXML
-
Orientare pe procese
3Standarde pentru servicii Web
4Modelarea 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)
5UML
- 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
6UML
Reprezentarea unui proces de vanzare
7BPMN
- 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
8Originile 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
9BPMN 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
end
intermediate
Task
Sub-Process
Looped task
11Event
- 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
12Activity
- 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
13Exemplu
Message event
Sub-process activity
Intermediate events
Timer event
14Gateways
- 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
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
16Exemplu
Exclusive gateway (date)
Sequence flow
17(3) Swimlanes
Nume
- Pool reprezinta un participant la un process
- Grupeaza activitati in B2B 2 entitati/participant
i - Lane sub-partitie intr-un Pool
- Folosesc la organizarea si clasificarea
activitatilor
Nume
Nume
Nume
18Exemplu
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
NumeStare
Adnotare cu text
20Exemplu
Data object
Lanes
Group
Annotation
21BPD - rezumat
Elemente din BPDiagram
22BPMN - orchestrare
- Orchestrarea procese interne intr-o aceeasi
organizatie - Procesele sunt continute intr-un singur Pool
Exclusive gateway (data)
Parallel gateway
23BPMN - coreografie
- Coreografia procese care se petrec in mai multe
organizatii si interactiunea intre ele - Procesele fiecarei organizatii sunt continute in
Pools diferite
24BP la nivel general
- Modelarea - ierarhic, la diferite niveluri de
detaliere
25BP detaliat
26Exemplu 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
27BPMN - Expense reimbursment process
28Meta-modelul UML al BPMN
29Produse 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
30TIBCO Business Suite
31TIBCO Business Suite
32BPEL
- 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
33BPEL
- 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
34Proces BPEL WS compus cu o descriere WSDL
35Structura BPEL
Partner / Role Definitions
Process State
ltprocessgt ltpartnersgt lt/partnersgt
ltvariablesgt lt/variablesgt ltcorrelationSetsgt
lt/correlationSetsgt ltfaultHandlergt
ltfaultHandlergt ltcompensationHandlergt
lt/compensationHandlergt lteventHandlergt
lt/eventHandlergt (activities) lt/processgt acti
vities ltreceivegt, ltreplygt, ltinvokegt, ltassigngt,
ltthrowgt, ltterminategt, ltwaitgt,
ltemptygt, ltsequencegt, ltswitchgt,
ltwhilegt, ltpickgt, ltflowgt, ltscopegt, ltcompensationgt
Instance Matching
Transaction management
Exception Handling
Events
Process Flow
36Triggere de procese BPEL
- Extrinsic / Incoming Messages
- ltreceive createInstanceyesgt
-
- lt/receivegt
- Intrinsic / Time-based
- ltpickgt
- lt!-- set an alarm in 3 days and 10 hours --gt
- ltonAlarm for"'P3DT10H'"gt
- lt!-- handle timeout for order completion --gt
-
- lt/onAlarmgt
- lt/pickgt
37Activitati BPEL
- ltsequencegt
- ltflowgt
- ltpickgt
Serial ltsendgt, ltreceivegt, ltinvokegt, ltgt
Paralel ltsendgt, ltreceivegt, ltinvokegt, ltgt
Asteapta pentru unul sau mai multe ltreceivegt sau
o alarma
38Fluxul de control BPEL
- ltswitchgt ltcase /gt ltotherwise /gt lt/switchgt
- While
- Wait
39Date BPEL
- Atribuirea variabilelor utilizand XPath 1.0
- ltassigngt
- ltcopygt
- ltfrom variable"AutoLoanRequest"
- part"creditRating"
query"/creditRating/text()"/gt - ltto variable"InterstateCarLoanRequest"
part"credit" query"/credit/text()"/gt
- lt/copygt
- lt/assigngt
40Corelarea mesajelor BPEL
- ltpropertyAlias propertyName"orderNumber"
- messageType"POMessage" part"PO"
- query"/PO/Order"/gt
- ltcorrelationSetsgt
- ltcorrelationSet name"PurchaseOrder"
- properties"orderNumber"/gt
- lt/correlationSetsgt
-
- ltreceive partnerLink"Buyer" portType"PurchasingP
T" - operation"AsyncPurchase"
- variable"PO"gt
- ltcorrelationsgt
- ltcorrelation set"PurchaseOrder"
initiate"yes"gt - lt/correlationsgt
- lt/receivegt
41Tranzactii BPEL
- Suport pentru integritatea tranzactiilor
- ltcompensationHandlergt
- ltinvoke partnerLink"Seller"
- operation"SyncPurchase"
- gt
-
- ltcompensationHandlergt
- ltinvoke partnerLink"Seller"
- operation"CancelPurchase /gt
- lt/compensationHandlergt
- lt/invokegt
- Se apeleaza prin ltcompensategt
- ltswitchgt
- ltcase gt
- ltcompensate/gt
- lt/casegt
42Tratarea erorilor in BPEL
- ltfaultHandlersgt
- ltcatchAllgt
-
- lt/catchAllgt
- lt/faultHandlersgt
-
- ltswitchgt
- ltcase condition "bpwsgetVariableProperty(stockRe
sult,level) gt 100"gt - ltthrow faultName"OutOfStock"/gt
- lt/casegt
43Specificarea unui serviciu compus de Stock
quotation
- ltprocess name"simple" targetNamespace"urnstockQ
uoter" xmlnstns"urnstockQuoter"
xmlnssqp"http//tempuri.org/services/stockquote"
xmlnsBPEL/gt - ltcontainersgt
- ltcontainer name"request" messageType"tnsreq
uest"/gt - ltcontainer name"response" messageType"tnsre
sponse"/gt - ltcontainer name"invocationRequest"
messageType"sqpGetQInput"/gt - ltcontainer name"invocationResponse"
messageType"sqpGetQOutput"/gt - lt/containersgt
- ltpartnersgt
- ltpartner name"caller" serviceLinkType"tnsSt
ockQuoteSLT"/gt - ltpartner name"provider" serviceLinkType"tns
StockQuoteSLT"/gt - lt/partnersgt
- ltsequence name"sequence"gt
- ltreceive name"receive" partner"caller"
portType"tnsStockQuotePT" - operation"wantQuote"
container"request" createInstance"yes"/gt - ltassigngt ltcopygt
- ltfrom container"request"
part"symbol"/gt - ltto container"invocationRequest"
part"symbol"/gt - lt/copygt lt/assigngt
44Meta-modelul (complet) UML al BPEL
45Mapare BPMN la BPEL
46Produse 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
-
47Electronic 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
-
48Vocabularul 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
49Proiectarea unui sistem ebXML