Aplicatii Web bazate pe semantica, agenti si servicii

49
Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea http://turing.cs.pub.ro/webs_07

description

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 - PowerPoint PPT Presentation

Transcript of Aplicatii Web bazate pe semantica, agenti si servicii

Page 1: 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

Page 2: Aplicatii Web bazate pe semantica, agenti si servicii

Orchestrarea serviciilor Web

Standarde pentru servicii – pozitionare

Modelarea procesului de business UML BPML

Orchestrarea procesului de business WSBPEL ebXML

Orientare pe procese

Page 3: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 4: Aplicatii Web bazate pe semantica, agenti si servicii

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)

Page 5: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 6: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 7: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 8: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 9: Aplicatii Web bazate pe semantica, agenti si servicii

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)

Page 10: Aplicatii Web bazate pe semantica, agenti si servicii

(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

Page 11: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 12: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 13: Aplicatii Web bazate pe semantica, agenti si servicii

Exemplu

Sub-process activityIntermediate events

Message event

Timer event

Page 14: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 15: Aplicatii Web bazate pe semantica, agenti si servicii

(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

Page 16: Aplicatii Web bazate pe semantica, agenti si servicii

Exemplu

Sequence flow

Exclusive gateway(date)

Page 17: Aplicatii Web bazate pe semantica, agenti si servicii

(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

Page 18: Aplicatii Web bazate pe semantica, agenti si servicii

ExempluPool

Pool

Page 19: Aplicatii Web bazate pe semantica, agenti si servicii

(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

Page 20: Aplicatii Web bazate pe semantica, agenti si servicii

Exemplu

Lanes

Group

Data object

Annotation

Page 21: Aplicatii Web bazate pe semantica, agenti si servicii

BPDBPD - rezumat

Elemente din BPDiagram

Page 22: Aplicatii Web bazate pe semantica, agenti si servicii

BPMN - orchestrare

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

Parallel gateway

Exclusive gateway (data)

Page 23: Aplicatii Web bazate pe semantica, agenti si servicii

BPMN - coreografie

Coreografia – procese care se petrec in mai multe organizatii si interactiunea intre ele

Procesele fiecarei organizatii sunt continute in Pools diferite

Page 24: Aplicatii Web bazate pe semantica, agenti si servicii

BP la nivel general

Modelarea - ierarhic, la diferite niveluri de detaliere

Page 25: Aplicatii Web bazate pe semantica, agenti si servicii

BP detaliat

Page 26: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 27: Aplicatii Web bazate pe semantica, agenti si servicii

BPMN - Expense reimbursment process

Page 28: Aplicatii Web bazate pe semantica, agenti si servicii

Meta-modelul UML al BPMN

Page 29: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 30: Aplicatii Web bazate pe semantica, agenti si servicii

TIBCO Business Suite

Page 31: Aplicatii Web bazate pe semantica, agenti si servicii

TIBCO Business Suite

Page 32: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 33: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 34: Aplicatii Web bazate pe semantica, agenti si servicii

Proces BPEL = WS compus cu o descriere WSDL

Web Service

portType

portType

portType

<receive>

<receive>

<reply>

<reply>

BPEL4WSProcess

Page 35: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 36: Aplicatii Web bazate pe semantica, agenti si servicii

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>

Page 37: Aplicatii Web bazate pe semantica, agenti si servicii

Activitati BPEL

<sequence>

<flow>

<pick>

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

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

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

Page 38: Aplicatii Web bazate pe semantica, agenti si servicii

Fluxul de control BPEL

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

While

Wait

Page 39: Aplicatii Web bazate pe semantica, agenti si servicii

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>

Page 40: Aplicatii Web bazate pe semantica, agenti si servicii

<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

Page 41: Aplicatii Web bazate pe semantica, agenti si servicii

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>

Page 42: Aplicatii Web bazate pe semantica, agenti si servicii

Tratarea erorilor in BPEL

<faultHandlers> <catchAll> … </catchAll></faultHandlers>…<switch><case condition=

"bpws:getVariableProperty(stockResult,level) > 100">

<throw faultName="OutOfStock"/></case>

Page 43: Aplicatii Web bazate pe semantica, agenti si servicii

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>

Page 44: Aplicatii Web bazate pe semantica, agenti si servicii

Meta-modelul (complet) UML al BPEL

Page 45: Aplicatii Web bazate pe semantica, agenti si servicii

Mapare BPMN la BPEL

Page 46: Aplicatii Web bazate pe semantica, agenti si servicii

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 …

Page 47: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 48: Aplicatii Web bazate pe semantica, agenti si servicii

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

Page 49: Aplicatii Web bazate pe semantica, agenti si servicii

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