Aplicatii Web bazate pe semantica, agenti si servicii
description
Transcript of Aplicatii Web bazate pe semantica, agenti si servicii
Aplicatii Web bazate pe semantica, agenti si servicii
Universitatea Politehnica BucurestiAnul universitar 2007-2008, MasterAdina Magda Florea
http://turing.cs.pub.ro/webs_07
Orchestrarea serviciilor Web
Standarde pentru servicii – pozitionare
Modelarea procesului de business UML BPML
Orchestrarea procesului de business WSBPEL ebXML
Orientare pe procese
Standarde pentru servicii Web
BPEL4WSOWL-S Service
Model
ebXMLCPA
Process and workfloworchestrations
QoS: Servicedescriptions and bindings
Contracts andagreements
XLANG
WSCL
WSDLebXML
CPP
ebXMLBPSS
XML, DTD, and XML Schema
HTTP, FTP, SMTP, SIP, etc.
SOAPebXML
messaging
OWL
UDDIebXML
Registries
WSCLWSCI
WS-Coordination
WS-AtomicTransaction and WS-BusinessActivity
OWL-S ServiceGrounding
OWL-S ServiceProfile
BTP
BPML
Discovery
Messaging
Transport
QoS: Conversations
QoS: Choreography
QoS: Transactions
Encoding
WS-Policy
WS-Security
WS-ReliableMessaging
PSL
RDF
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: 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
UML
Receive PO
Get Items from InventoryUpdate Customer Profile
Compute Subtotal
Compute Shipping Cost
Compute Export Tax
Compute International Shipping
Compute Total
[ship within US] [ship outside US]
Ship Order
Fork
Join
Branch
Merge
Reprezentarea unuiproces de vanzare
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 DiagramBusiness Process Diagram
(BPDBPD) – 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 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
Task Sub-Process
Looped task
+
start endintermediate
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
end
intermediate
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
Sub-process activityIntermediate events
Message event
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
Sequence flow
Exclusive gateway(date)
(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
ExempluPool
Pool
(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]
Adnotarecu text
Exemplu
Lanes
Group
Data object
Annotation
BPDBPD - rezumat
Elemente din BPDiagram
BPMN - orchestrare
Orchestrarea – procese interne intr-o aceeasi organizatie Procesele sunt continute intr-un singur Pool
Parallel gateway
Exclusive gateway (data)
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
-name-property
CorrelationSetCompensationHandler
-name
Process Activity
-myRole-serviceLinkType-name
Partner
-messageType-name
Container
-faultContainer-faultName
FaultHandlerReply
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
BPEL
-name-property
CorrelationSetCompensationHandler
-name
Process Activity
-myRole-serviceLinkType-name
Partner
-messageType-name
Container
-faultContainer-faultName
FaultHandlerReply
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
Proces BPEL = WS compus cu o descriere WSDL
Web Service
portType
portType
portType
<receive>
<receive>
<reply>
<reply>
BPEL4WSProcess
Structura BPEL
<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
Process Flow
Process State
Partner / Role Definitions
Exception Handling
Events
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 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>
<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>
Corelarea mesajelor BPEL
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
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
Proiectarea unui sistem ebXML
BusinessOrganization A
ebXML ProcessSpecification
Document
ImplementebXML
CPA and CPPSpecifications
ebXML BusinessService Interface
Configuration
Publish C
ollaboratio
n
Protocol P
rofile
Request ebXMLSpecs
Receive ebXMLInfo
BusinessProcess
BusinessScenarios
BusinessProfiles
ebXML Repository
Business Processand Information
Model(UMM or PSL)
BusinessOrganization B
ebXML ProcessSpecification
Document
ImplementebXML
CPA and CPPSpecifications
ebXML BusinessService Interface
Configuration
Business Processand Information
Model(UMM or PSL)
Request ebXMLSpecs
Receive ebXMLInfo
Publish Collaboration
Protocol Profile
CPA Information