WEBS- Pragmatic Web - Artificial Intelligence

Download Report

Transcript WEBS- Pragmatic Web - Artificial Intelligence

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
Orchestrarea procesului de business


WSBPEL
ebXML
Orientare pe procese
Standarde pentru servicii Web
ebXML
Registries
UDDI
ebXML
CPA
OWL-S Service
Model
OWL-S
Service
WSCL
Profile
OWL-S Service
Grounding
OWL
RDF
PSL
BPEL4WS
BPML
WS-AtomicTransaction and WSXLANG
BusinessActivity
WS-Reliable
WS-Coordination
Messaging
WS-Security
WSCL
WS-Policy
WSDL
SOAP
BTP
WSCI
ebXML
BPSS
Discovery
Contracts and
agreements
Process and workflow
orchestrations
QoS: Transactions
QoS: Choreography
QoS: Conversations
ebXML
QoS: Service
CPP
descriptions and bindings
ebXML
messaging Messaging
XML, DTD, and XML Schema
Encoding
HTTP, FTP, SMTP, SIP, etc.
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:




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
Reprezentarea unui
proces de vanzare
Fork
Receive PO
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)




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
Sub-Process
+
Looped task
end
Event


Events = ceva ce se intampla in timpul unui BP
Start






start
Intermediate – la fel +



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)
intermediate
End – la fel cu Intermediate +

Terminate – termina toate activitatile din proces fara alte
compensari sau evenimente
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) =



Complex gateways =


utilizate ca fork = mai multe iesiri posibile;
utilizate ca merge, sincronizeaza fluxuri de
intrare dar nu asteapta
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


Sunt conectate la activitati prin
asociatii
Group = utilizat pentru
documentare sau analiza


Nume[Stare]
Nu afecteaza fluxul de activitati
Annotation = text
suplimentar
Adnotare
cu text
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:




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
CorrelationSet
-name
-property
CompensationHandler
Process
-name
Container
-messageType
-name
FaultHandler
-faultContainer
-faultName
Activity
Partner
-myRole
-serviceLinkType
-name
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
Container
-messageType
-name
FaultHandler
-faultContainer
-faultName
Activity
Partner
-myRole
-serviceLinkType
-name
Reply
Proces BPEL = WS compus cu o descriere WSDL
Web Service
<receive>
portType
portType
BPEL4WS
Process
<receive>
<reply>
portType
<reply>
Structura BPEL
Partner / Role
Definitions
Process
State
<process>
<partners> … </partners>
Instance
Matching
<variables> … </variables>
Exception
Handling
<correlationSets> … </correlationSets>
<faultHandler> … <faultHandler>
Transaction
management
<compensationHandler> … </compensationHandler>
<eventHandler> … </eventHandler>
Events
(activities)*
Process Flow
</process>
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>

<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>
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)


Collaboration Protocol Profile (CPP)


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)
Collaborative Partner Agreement (CPA)


O intersectie a doua CPP
Contract tehnic intre doi sau mai multi parteneri
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
Implement
ebXML
CPA and CPP
Specifications
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
Business
Profiles
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
CPA Information
ebXML Business
Service Interface
Configuration
ebXML Business
Service Interface
Configuration