[ITA] Linguaggi di orchestrazione e coreografia

75
Marco Brambilla Politecnico di Milano Febbraio 2004 Linguaggi di orchestrazione e coreografia http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi http://www.slideshare.net/mbramb il

description

WSBPEL (noto anche come BPEL o BPEL4WS), WSCI, BPMN, BPML, e altri

Transcript of [ITA] Linguaggi di orchestrazione e coreografia

Page 1: [ITA] Linguaggi di orchestrazione e coreografia

Marco BrambillaPolitecnico di MilanoFebbraio 2004

Linguaggi di orchestrazione e coreografia

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil

Page 2: [ITA] Linguaggi di orchestrazione e coreografia

Sommario

Obiettivo della lezionePrerequisiti e collegamentiIntroduzione: cos'è l'orchestrationRequisitiLinguaggi di orchestrazioneConfronto del potere espressivo Tools & runtime References

Page 3: [ITA] Linguaggi di orchestrazione e coreografia

Obiettivi della lezioneIntrodurre i concetti di orchestrazione/ coreografiaDescrivere lo stato dell’arte e i linguaggi esistentiPresentare in dettaglio alcuni linguaggiConfrontare il potere espressivo di questi

Page 4: [ITA] Linguaggi di orchestrazione e coreografia

Prerequisiti e collegamenti

073162-Tecnologie Informatiche per il Web, 3 anno della Laurea in Ing. Inf. di Como Introduzione delle architetture web e cenni

al design pattern MVC Tecnologie per la costruzione dinamica di

pagine: Java servlet, Java Server Pages, librerie di tag

Conoscenze di base sui Web services

Page 5: [ITA] Linguaggi di orchestrazione e coreografia

Orchestrazione e coreografia - premessa

Campo in fase di forte evoluzioneNon c’è consenso universale sui concetti e sulle definizioniAnche i termini orchestrazione e coreografia sono opinabiliMolte proposte parallele di linguaggi

Page 6: [ITA] Linguaggi di orchestrazione e coreografia

Orchestrazione

Descrive come i servizi interagiscono tra loro a livello di messaggi scambiati. Descrive business logic e ordine di esecuzione delle interazioniIl risultato consiste nella specifica di un processo di business “long-running” di alto livello che descrive una applicazione eseguibile da un proprietarioLe interazioni possono coinvolgere più applicazioni/ server/ organizzazioniIl processo è implementa sempre il punto di vista di UNO dei partner e il flusso è sempre controllato da essoIl processo risultante può essere a sua volta esposto come servizio

Page 7: [ITA] Linguaggi di orchestrazione e coreografia

Coreografia

Tiene traccia della sequenza di messaggi che può coinvolgere più applicazioni/ organizzazioni attraverso una visione globale del processoPunta a fornire una rappresentazione più collaborativa delle interazioni: ogni attore descrive la sua parteTutti gli attori si trovano allo stesso livello (non c’è un proprietario del processo)Tipicamente, descrive processi più di alto livello rispetto ad orchestrazione

Page 8: [ITA] Linguaggi di orchestrazione e coreografia

Altre interpretazioni

In altre interpretazioni coreografia e orchestrazione spesso sono viste come sinonimi (=rappresentazione globale ad alto livello di un processo multi-attore)

Si introduce il concetto di Composizione (Composition) come definizione di servizi a partire da servizi elementari

Page 9: [ITA] Linguaggi di orchestrazione e coreografia

Requisiti per la coreografia (1)Potere espressivo dei linguaggi

Flexibility: ottenibile attraverso separazione totale tra logica di processo e servizi invocati (es. Attraverso orchestration engines). Flusso di esecuzione e componenti base (Web services) sono ortogonaliBasic and structured activities: disponibilità di attività di base (chiamate a Web services, componenti elementari) e attività strutturate (gestiscono il flusso di processo, descrivendo quali attività verranno eseguite e in quale ordine) Recursive composition: possibilità di definire un processo composto e di esporlo a sua volta come un servizio. In questo modo potrà essere aggregato in processi di più alto livello

Page 10: [ITA] Linguaggi di orchestrazione e coreografia

Requisiti per la coreografia (2)Correlazione e consistenza delle

interazioniPersistence: mantenimento dello stato attraverso le varie chiamate di WS (critico nei casi asincroni) Correlation: Deve essere possibile correlare richieste e risposte (critico nei casi asincroni)Exception handling and transactions: in processi “long-running” serve gestire eccezioni e integrità transazionale, con particolarità rispetto alle usuali transazioni (es. Impossibile il lock di risorse per lunghe attività)

Page 11: [ITA] Linguaggi di orchestrazione e coreografia

Interazioni asincrone: correlation vs. composition

L’asincronismo è fondamentale per: Affidabilità: l’applicazione deve funzionare

correttamente anche a fronte di ritardi non prevedibili

Scalabilità: applicazioni asincrone possono supportare maggior carico di lavoro (possono distribuirlo liberamente nel tempo)

3 livelli di definizione di interazioni: Correlation: associazione tra messaggio di

richiesta e messaggio di risposta Composition/Orchestration: composizione

di più richieste Choreography: descrizione globale del

processo

Page 12: [ITA] Linguaggi di orchestrazione e coreografia

LinguaggiMolte proposte:

XLang (Microsoft BizTalk language) WSFL (Web Services Flow Language) WSCL (Web Services Conversation Language) BTP (Business Transaction Protocol) ebXML (Electronic Business using XML) WSCI (Web Services Choreography Interface) BPEL4WS (Business Process Exec. Lang. for WS) BPML + BPMN (Business Process Management

Language + Notation)

In genere coprono sia Choreography che OrchestrationTutte basate su formato XMLNon c’è uno standardBPEL sembra destinato a diventare standard de-facto

Page 13: [ITA] Linguaggi di orchestrazione e coreografia

XLang (S. Thatte, Microsoft, 2001)

Nato per descrivere interazioni tra Web services in MS BizTalk Server Pesantemente basato su WSDLEstende WSDL con alcune primitive per descrivere (nel documento WSDL stesso) il comportamento reciproco dei WSConsente di specificare sequenze, condizioni e esecuzioni parallele di WSGestisce eccezioni nell’esecuzioneIncluso e reso obsoleto da BPEL4WSSpecifica: http://www.gotdotnet.com/team/ xml_wsspecs/xlang-c/default.htm

Page 14: [ITA] Linguaggi di orchestrazione e coreografia

XLang (esempio)Estratto da un documento WSDL “esteso” (notare i riferimenti a WSDL operation e port)

<switch> <branch> <case> inventory:InStock </case> <sequence> <xlang:action operation="AskLastTradePrice"

port="pGetRequest" activation="true"/> <xlang:action operation="SendLastTradePrice"

port="pSendResponse"/> </sequence>

</branch> <branch> <case> inventory:OutOfStock </case>

... </branch></switch>

Page 15: [ITA] Linguaggi di orchestrazione e coreografia

WSFL (F. Leymann, IBM, 2001)

Fornisce due livelli di specifica (assimilabili a orchestrazione e coreografia): FLOW MODEL (orchestrazione): descrive un business

process in termini di interazioni tra WS, specificando i possibili usage patterns coerenti:

le possibili combinazioni corrette dei WS gli obiettivi che queste consentono di ottenere

GLOBAL MODEL (coreografia): descrive gli interaction pattern di un insieme di web services, ovvero una visione globale delle possibili interazioni tra molti partner

Incluso e reso obsoleto da BPEL4WS

Specifiche: http://www-306.ibm.com/software/solutions/webservices/

pdf/WSFL.pdf

Page 16: [ITA] Linguaggi di orchestrazione e coreografia

WSCL (HP, 2002)

Fornisce semplici concetti per descrivere conversazioni tra servizi: 5 tipi di interazioni: Send, Receive,

SendReceive, ReceiveSend, Empty (per descrivere inizio e fine di conversazioni)

Transizioni: per descrivere l’ordine delle interazioni

Le interazioni sono associate ai document types che vengono scambiati

W3C Note pubblicata in Marzo 2002Specifica: http://www.w3.org/TR/wscl10/ Proposta ormai obsoleta

Page 17: [ITA] Linguaggi di orchestrazione e coreografia

WSCL (struttura della specifica)<Conversation name="ConvName" version="1.01" [...]

initialInteraction="Start" finalInteraction="End">

<ConversationInteractions> <Interaction interactionType="SendReceive"

id="Payment"><OutboundXMLDocument id="Invoice"

hrefSchema="http://foo.org/InvoiceRS.xsd“/>

<InboundXMLDocument id="Payment" hrefSchema="http://foo.org/Payment.xsd“/> </Interaction>

... Elenco di tutte le interazioni </ConversationInteractions>

<ConversationTransitions> ... Elenco di tutte le transizioni </ConversationTransitions> </Conversation>

Page 18: [ITA] Linguaggi di orchestrazione e coreografia

ebXML (OASIS)

Proposto da OASIS (Organization for the Advancement of Structured Information Standards), che coinvolge anche BEA, Bowstreet, HP, Interwoven e Sun

descrive un’infrastruttura complessa per la comunicazione tra applicazioni di e-commerce

comprende aspetti architetturali, implementativi e di specifica(BPSS - Business Process Specification Schema ), tra cui concetti legati alle conversazioni tra Web services

Page 19: [ITA] Linguaggi di orchestrazione e coreografia

BTP (OASIS, 2002)

Copre transazioni “long-running” basate su Web services

Più orientato alla transazionalità

Estende il noto protocollo di commit a 2 fasi al mondo WS: appositi messaggi: prepare(d), commit(ted),

cancel(led) Atom: assimilabili alle “vecchie” transazioni,

applicate ai WS Cohesion: possono comporre atoms, ma sono

più flessibili: ad esempio, consentono parziali fallimenti di alcuni partecipanti

Page 20: [ITA] Linguaggi di orchestrazione e coreografia

WSCI (Sun, SAP, BEA, Intalio, 2002)

Descrive il comportamento interattivo tra WS osservabile dall’esternoSupporta: Correlazione di messaggi Regole di sequenza Gestione eccezioni Transazioni Collaborazione dinamica

W3C Note pubblicata in Agosto 2002Si pronuncia “whiskey” ;-)

Page 21: [ITA] Linguaggi di orchestrazione e coreografia

Documenti WSCI

WSCI Non definisce business processes eseguibili (al contrario di BPEL4WS)Consente di specificare dipendenze temporali e logiche tra i messaggi scambiatiOgni documento WSCI descrive la partecipazione di un singolo partner nell’interazioneNon c’è una visione globale dell’interazione

WS1

WS3

WS2

WSCI3

WSCI2

WSCI1

Page 22: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – visione d’insieme (1)

Un documento WSCI è composto da processes, activities (complesse) e actions (elementari) + altri elementi minoriLe actions referenziano operations dichiarate nel WSDL

Page 23: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – visione d’insieme (2)

Pila di standard

Si può aggiungere un ulteriore livello per la coreografia (ad es. usando BPML)

Coreografia usa molti WSCI

Documenti WSCI referenziano i WSDL

Page 24: [ITA] Linguaggi di orchestrazione e coreografia

WSCI e WSDL

WSDL descrive le operazioni dei WS

WSCI descrive le possibili interazioni tra le operazioni WSDL

WSCI è quindi uno strato al di sopra di WSDL

Descrive orchestrazione coreografia elementare con il concetto di

GlobalModel

In genere la specifica WSCI è inclusa nel documento WSDL

Page 25: [ITA] Linguaggi di orchestrazione e coreografia

Elementi WSCI – attività base

<ACTION>: operazione atomica di scambio messaggi. Corrisponde a una operation WSDL. Al suo interno si possono specificare: <CORRELATE>: specifica che si fa uso di un

elemento di correlazione, dichiarato in un comando <Correlation>

<CALL>: chiamata di un processoEsempio:

<action name = "ReceiveConfirmation“ role = "TravelAgent“ operation = "TAtoTraveler/bookTickets"> <correlate correlation="tns:bookingCorr"/> <call process = "tns:BookSeats" /> </action>

Page 26: [ITA] Linguaggi di orchestrazione e coreografia

Elementi WSCI – attività strutturate

ACTIVITY: E’ il mattone principale di WSCI

Semantica: tipica attività di WF

Non è un elemento XML, può essere: Atomica: è una semplice <ACTION> Complessa: composta da una serie di

actions secondo una specifica “coreografia”, specificata con gli element: all (esecuzione non sequenziale), sequence, choice, for-each, switch (con condizioni anche basate su eventi)

“Speciale”: empty, fault (genera un errore), join

Page 27: [ITA] Linguaggi di orchestrazione e coreografia

Elementi WSCI – processo

Porzione di documento WSCI etichettato con un nome. Contiene Activities e ActionsObiettivo: riuso di sottoparti del documentoUn processo viene eseguito in seguito a: <call process=“nome”>: Chiamata esplicita

sincrona in una action (che resta in attesa) <spawn process=“nome”>: Chiamata esplicita

asincrona in una action (esecuzione in un nuovo thread)

Ricezione di un messaggio di richiestaNel processo dichiaro il tipo di attivazione con l’attributo instantiation = (“message” | “other”)

Page 28: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – altri elementi

<INTERFACE>: raggruppa tutti i process che coinvolgono un

WS rispetto a un certo scenario Se un WS partecipa in più scenari, possiederà

più interfacce

<CORRELATION> Dichiara un elemento di correlazione, ovvero

un ID usato per correlare messaggi L’ID così dichiarato viene poi usato

dall’operatore <Correlate> all’interno delle <Action>

Page 29: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – struttura di documento<wsdl:definitions name = "">

<!-- WSDL complex types , message definitions , operations and port types -->

<correlation name = “bookingCorr" property = “B_ID“/> <interface name = "TravelAgent">

<process name = “…” instantiation = "message">

<sequence>

<action> … </action> <activity> … </activity> <action> … </action>

… </sequence>

</process>

<process name = “…" instantiation = "other"> …

</process> </interface></wsdl:definitions>

Dichiarazione dei correlatori, usati poi all’interno delle action

Specifica WSDL del WS

“Coreografia” per il gruppo di action/activity

Page 30: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – Context

Ambiente in cui una serie di activities/actions vengono eseguiteConsente di definire variabili (property), correlatori, eccezioni, e proprietà transazionali per le attività in quel contesto

Page 31: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – Exception

Eccezioni supportate: Fault Timeout Ricezione di un particolare messaggio

Associate a insiemi di activity da eseguire nel caso si verifichi l’eccezioneStruttura:<exception>

content:((onMessage | onTimeout | onFault){+})

</exception>

Page 32: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – Exception

Eccezioni supportate: Fault Timeout Ricezione di un particolare messaggio

Associate a insiemi di activity da eseguire nel caso si verifichi l’eccezioneStruttura:<exception>

content:((onMessage | onTimeout | onFault){+})

</exception>

Page 33: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – altri elementi

<PROPERTY>: referenziano un “valore” all’interno di una

interfaccia. Corrispondono alle variabili dei linguaggi di

programmazione

<TRANSACTION>: Specifica proprietà transazionali di un

insieme di activities Consente di dichiarare attività compensative Possono essere atomiche o open-nested (cioè

costituite a loro volta da transactions)

Page 34: [ITA] Linguaggi di orchestrazione e coreografia

WSCI – Global Model

Affronta il problema della coreografia in modo molto elementare

Consente di dichiarare un insieme di Interfacce di vari WS Interazioni tra operazioni dichiarate nelle

interfacce<model name = "AirlineTicketing"> <interface ref = "air:Airline" /> <interface ref = "tra:Traveler" /> <interface ref = "ta:TravelAgent" />

<connect operations = "TravelerToTA/PlaceItinerary TAtoTraveler/ReceiveTrip" />

<!-- other connect elements --></model>

Page 35: [ITA] Linguaggi di orchestrazione e coreografia

BPEL4WS (IBM, Microsoft, BEA, 2002)

Risultato di fusione tra XLang e WSFLAttualmente alla versione 1.1 (Luglio 2003)Uno strato al di sopra di WSDL, in 3 sensi: Ogni processo BPEL può essere esposto come

servizio in WSDL (che descrive entry ed exit point del processo stesso)

Sfrutta data types definiti in WSDL per descrivere il passaggio di informazioni

Può referenziare servizi esterni specificati in WSDL

Page 36: [ITA] Linguaggi di orchestrazione e coreografia

BPEL4WS: orchestrazione e coreografia

Consente di specificare orchestrazione Concetto di EXECUTABLE PROCESS Partecipanti in una business interaction

Consente di specificare coreografia Concetto di BUSINESS PROTOCOL Descrive un abstract process, cioè la

parte visibile dall’esterno (messaggi scambiati) tra i partner

Trascura i dettagli di flusso di processo

Page 37: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Struttura di documento<process attributi> <!-- specifica partners -->

<!-- specifica variabili e correlaz. --> <faultHandlers>

<catch faultName=“…“ …>activity</catch> <catchAll>activity</catchAll>

</faultHandlers><eventHandlers>

<onMessage partnerLink=“…" portType=“…” operation=“…">

<correlations> <correlation set="ncname" initiate="yes|no“/> … <correlations> activity </onMessage> <onAlarm for="duration" until="deadline"?> activity </onAlarm>

</eventHandlers>activity

</process>

Page 38: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Basic Activities

<receive>: Ricezione di un messaggio di WS<reply>: Risposta a un messaggio di WS<invoke>: Chiamata di un servizio<assign>: Assegnamento di valore a variabile<throw>:Generazione di un fault (errore)<wait>: Attesa (intervallo o deadline)<empty>: No-op (es., utile per la sincronizzazione di thread concorrenti)<terminate>: Termina il processo (solo per executable processes)

Page 39: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Structured Activity

Possono essere innestate a piacere:

<sequence>: sequenza di attività

<switch>: selezione esclusiva di un ramo

<while>: ciclo su espressione boolean

<pick>: attende un evento ed esegue le activity specificate (onAlarm | onMessage)

<flow>: specifica attività concorrenti

<scope>: dichiara una attività innestata, con la stessa struttura di process

<compensate>: attività di compensazione

Page 40: [ITA] Linguaggi di orchestrazione e coreografia

BPEL- Partner: PartnerLinkType

Specifica le relazioni tra i servizi partecipanti alla conversazioneOgni servizio è un Port Type WSDL Esempio:

<partnerLinkType name="BuyerSellerLink">

<role name="Buyer">

<portType name="buy:BuyerPortType"/>

</role>

<role name="Seller">

<portType name="sell:SellerPortType"/>

</role>

</partnerLinkType>

Page 41: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Partner: Link

I ruoli in gioco sono chiamati “partner link”Diversi partner links possono avere lo stesso “partner link type”Dichiarazione di un partner link:

<partnerLinks> <partnerLink name=“UPS"

partnerLinkType=“transport"/>

... elenco di partner links </partnerLinks>

Page 42: [ITA] Linguaggi di orchestrazione e coreografia

BPEL - Partner

Specifica i ruoli dei partner partecipanti Ogni partner può assumere più ruoli (cioè più partner links)Esempio:

<partner name=“Amazon"> <partnerLink name="Seller"/> <partnerLink name="Shipper"/></partner>

Page 43: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Endpoint reference

E’ possibile stabilire il binding portType-port dei WS attraverso Endpoint references

Per ogni istanza di processo BPEL, a ogni partner role viene associato un endpoint In modo statico, all’inizio del processo In modo dinamico, nel corso dell’esecuzione

BPEL si basa sullo standard WS-Addressing per il binding di WS WS-Addressing è parte integrante di BPEL Non trattato in questo corso

Page 44: [ITA] Linguaggi di orchestrazione e coreografia

BPEL - Variabili

Identificatori di variabili, univoci in uno scopeConsentono di specificare nome e tipoTipo può essere: MessageType: un tipo di messaggio WSDL Type: XML Schema simple type Element: riferimento a un elemento XML

SchemaMantengono le informazioni di stato del processoModificabili con la activity:

<assign> <copy> from to </copy></assign>

(copia di valori di espressioni compatibili)

Page 45: [ITA] Linguaggi di orchestrazione e coreografia

BPEL - Correlation<CorrelationSet>: insieme di proprietà usate per correlazione (in uno scope)Usati all’interno di invoke, receive, reply

<correlationSets> <correlationSet name="OrderID"

properties="cor:customerID cor:orderNumber"/> </correlationSets>

<receive partnerLink="Buyer" operation="AsyncPurchase” ...> <correlations> <correlation set="OrderID" initiate="yes"/> </correlations> </receive> <invoke partnerLink="Buyer" operation="AsyncPurchaseResp” ...> <correlations> <correlation set="OrderID" initiate="no" pattern="out"> </correlations> </invoke>

Page 46: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Fault handler

Dichiarazione di attività risolutive di errori verificatisi in uno scopeTipico scopo è disfare il lavoro parziale/errato di uno scopeComplesse regole di matching su nome e variabili associate al faultcatchAll è l’handler di default

<faultHandlers><catch faultName=“…“ faultVariable=“…“>

activity</catch>

<catchAll>activity</catchAll></faultHandlers>

Page 47: [ITA] Linguaggi di orchestrazione e coreografia

BPEL – Event handler

Gestisce eventi onMessage: Ricezione di messaggi

(specificabili in dettaglio) onAlarm: evento di timeout. Il

conteggio del tempo parte dall’inizio del rispettivo scope<eventHandlers>

<onMessage partnerLink=“…" … operation=“…"> activity </onMessage> <onAlarm (for="duration" | until="deadline“)> activity </onAlarm>

</eventHandlers>

Page 48: [ITA] Linguaggi di orchestrazione e coreografia

BPML+BPMN+BPQL (BPMI, 2004)

Business Process Modeling LanguageProposto da BPMI (Business Process Management Initiative), consorzio industriale di oltre 70 partner, tra cui IBM, BEA, Versata, Vignette, SAP, IntalioComprende anche una notazione visuale (BPMN) e linguaggio di interrogazione (BPQL)Più orientato alla descrizione di workflow in generale (non strettamente WS choreography)Sito: www.bpmi.org

Page 49: [ITA] Linguaggi di orchestrazione e coreografia

BPML (BPMI, 2002)

Linguaggio per la descrizione di processi di business eseguibiliSintassi simile a WSCIStessi elementi basePuò essere usato insieme a WSCI: BPML per coreografia ad alto livello WSCI per orchestrazione

Vediamo alcuni dettagli della notazione visuale (BPMN)

Page 50: [ITA] Linguaggi di orchestrazione e coreografia

BPMN (BPMI, 2004)

Consiste in elenco di simboli e regole per combinarliPer ogni simbolo fornisce i possibili attributi che possono essere specificatiLa specifica include il mapping verso BPEL4WS

Page 51: [ITA] Linguaggi di orchestrazione e coreografia

BPMN – tipi di processo

Consente di specificare 3 tipi di processi:Private (internal) business processes interni all’organizzazione flusso di attività (processo di business

eseguibile)Abstract (public) processes: interazione tra un internal BP e un altro attore Mostra solo il processo di un attore Mostra solo le attività interessanti per la

comunicazione con l’esternoCollaboration (global) Processes Interazioni tra due o più processi di business Consiste in due o più Abstract processes che

interagiscono

Page 52: [ITA] Linguaggi di orchestrazione e coreografia

BPMN – esempi di tipi di processo

Private (internal) business processesCorrisponde a orchestrazione

Page 53: [ITA] Linguaggi di orchestrazione e coreografia

BPMN – esempi di tipi di processo

Abstract (public) processes

Page 54: [ITA] Linguaggi di orchestrazione e coreografia

BPMN – esempi di tipi di processo

Collaboration (global) ProcessesCorrisponde a coreografia

Page 55: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN – Activity, Subprocess, Pool e Lane

Pool: rappresenta un partecipante

Lane: partizione di una pool, per scopi vari

Name Activity: unità di lavoro

NameSubprocess: attività che può essere a sua voltascomposta in un sottoprocesso

Page 56: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN - Eventi

Start(avvio di un processo)

End(conclusione di processo)

Intermediate (evento nelcorso del processo)

Eventi: caratterizzati per flow e type dimensions

FLOW DIMENSION:

TYPE DIMENSION:

Page 57: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN - Flussi

Control/ sequence flow:sequenza di esecuzione

Message flow

Conditional control/sequence flow:seguito se la condizione specificataall’inizio del flow è verificata

Association: associazione oflusso di data-objects

Default flow: in presenza di piùscelte, flusso scelto di default

Dove necessario, è possibile associare condizioni

Page 58: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN - Gateway

Gateway: punto di fusione, separazione e/o decisione tra diversi flussi

Page 59: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN - Looping

Loop Activity Loop: implementa cicliwhile e until su singola activity

Loop Activity Multiple Instance Loop:cicli for-each su singola activity

Looping è consentito in 3 modi:

A2

A3

condCycle: ciclo esplicitocon uso di gateway

Page 60: [ITA] Linguaggi di orchestrazione e coreografia

Simboli BPMN - altri

Group:gruppo di activity (senza semantica)

Transaction

Data object:dati trasferiti tramite association

Page 61: [ITA] Linguaggi di orchestrazione e coreografia

BPMN – Esempi di composizione

A1Activity withevent catching

A2

A1Process Break A2

A1Complex fork

A2

A3

*

Cond2

Cond3

Nota: non impone alcun controllo o restrizione sulla correttezza del flusso (es. fork e join che si compensino correttamente) INCONSISTENZE!

Page 62: [ITA] Linguaggi di orchestrazione e coreografia

BPMN - Esempio: richiesta di prestito

SV

CE

mpl

Mgr

Cu

st

Loan request

Final approvalPreliminaryvalidation

Financial check

Job Check

++

Application

Application

Application

JobCheckS JobCheckE

JobCheck Req[type Send]

ApplicationApplication

GetJobCheck[type Receive]

Application

Page 63: [ITA] Linguaggi di orchestrazione e coreografia

?Come confrontare il potere

espressivo?

Confronto del potere espressivo

Formalismi molto diversiPrimitive differenti

Attraverso pattern di workflowCatalogo di patternVerifico quali sono coperti dalle varie proposte

Page 64: [ITA] Linguaggi di orchestrazione e coreografia

Categorizzazione patterns

Proposta di 21 pattern che coprono tutte le composizioni interessanti: Basic control patterns

Sequence, parallel split, merge, XOR split Adv. branching and synchronization patterns

Multiple choice, Discriminator, N-out-of-M join Structural patterns

Cycles, Termination Multiple instances patterns State based patterns

Deferred Choice, interleaved Cancellation patterns

http://tmitwww.tm.tue.nl/research /patterns/patterns.htm

Page 65: [ITA] Linguaggi di orchestrazione e coreografia

Tabella di confronto tra standardpattern standard

  XPDL UML BPEL XLANG WSFL BPML WSCI

Sequence + + + + + + +

Parallel Split + + + + + + +

Synchronization + + + + + + +

Exclusive Choice + + + + + + +

Simple Merge + + + + + + +

Multi Choice + - + - + - -

Synchronizing Merge + - + - + - -

Multi Merge - - - - - +/- +/-

Discriminator - - - - - - -

Arbitrary Cycles + - - - - - -

Implicit Termination + - + - + + +

MI without Synchronization + - + + + + +

MI with a Priori Design Time Knowledge + + + + + + +

MI with a Priori Runtime Knowledge - + - - - - -

MI without a Priori Runtime Knowledge - - - - - - -

Deferred Choice - + + + - + +

Interleaved Parallel Routing - - +/- - - - -

Milestone - - - - - - -

Cancel Activity - + + + + + +

Cancel Case - + + + + + +

Page 66: [ITA] Linguaggi di orchestrazione e coreografia

Tools

Molti tool presenti sul mercato con funzionalità molto diverse:BEA Weblogic WorkshopCollaxa BPEL Designer e Server IBM BPWS4JSUN WSCI editorIntalio N3Pumkin

Tools orientati alla specifica e gestione di WFMS vanno oltre gli scopi della lezione

Page 67: [ITA] Linguaggi di orchestrazione e coreografia

Collaxa BPEL designer & server

Editor per la specifica BPEL 1.1 (anche per piattaforma Eclipse)Server per l’esecuzione di processi BPEL (anche integrato con BEA WebLogic application server e BEA Workshop)Consente debugging e monitoring di processi BPEL attraverso interfaccia Webhttp://www.collaxa.com/

Page 68: [ITA] Linguaggi di orchestrazione e coreografia

SunONE WSCI editor

Tool molto elementare per la specifica di diagrammi WSCIParte da un WSDL file fornito in input e consente di specificare semplici coreografiehttp://wwws.sun.com/software/xml/ developers/wsci/download/

Page 69: [ITA] Linguaggi di orchestrazione e coreografia

Popkin System Architect

Consente specifica visuale di schemi BPMNGenera schemi UMLGestisce altri formalismi di specifica workflowwww.popkin.com Esempio BPMN disegnato con Popkin:

Page 70: [ITA] Linguaggi di orchestrazione e coreografia

IBM BPWS4J (ver. 2.1, Apr. 2004)

2 componenti principali:

Piattaforma runtime per l’esecuzione di processi BPEL Apache TomCat o IBM WebSphere appl.

server Apache Axis per le chiamate dei WS Semplice interfaccia Web per il

deploy/management di processi BPEL

Editor per BPEL (per Eclipse)

http://alphaworks.ibm.com/tech/bpws4j

Page 71: [ITA] Linguaggi di orchestrazione e coreografia

Intalio N3

Tool per la specifica e gestione di WFMSComposto da Designer Server

Page 72: [ITA] Linguaggi di orchestrazione e coreografia

Intalio N3

Tool per la specifica e gestione di WFMSComposto da Designer Server Altri componenti

Consente specifiche BPMN-like

Page 73: [ITA] Linguaggi di orchestrazione e coreografia

Bea WebLogic Workshop

Tool per lo sviluppo di Applicazioni web MVC Applicazioni basate su Web servicesConsente solo orchestrazione per mezzo di connessione tra le interfacceNon implementa standard di coreografiaPiù interessante per la specifica di Web services che per orchestrazione

Page 74: [ITA] Linguaggi di orchestrazione e coreografia

Fonti

“Web services orchestration. A review of emerging technologies, tools, and standards”, Chris Peltz, HP Co., 2003, http://devresource.hp.com/drc/technical_white_papers/WSOrch/WSOrchestration.pdf

Web services journal http://www.sys-con.com/webservices

Page 75: [ITA] Linguaggi di orchestrazione e coreografia

Grazie per l’attenzione

Potete contattarmi attraverso la mia home page e seguire i miei aggiornamenti su twitter

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil