[ita] linguaggi di orchestrazione e coreografia

Post on 24-Jan-2015

1.077 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Sommario

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

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

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

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

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

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

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

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

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à)

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

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

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

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>

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

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

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>

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

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

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” ;-)

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

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

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

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

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>

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

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”)

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>

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

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

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>

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>

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)

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>

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

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

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>

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)

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

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>

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>

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>

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

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)

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>

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>

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>

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

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)

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

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

BPMN – esempi di tipi di processo

Private (internal) business processesCorrisponde a orchestrazione

BPMN – esempi di tipi di processo

Abstract (public) processes

BPMN – esempi di tipi di processo

Collaboration (global) ProcessesCorrisponde a 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

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:

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

Simboli BPMN - Gateway

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

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

Simboli BPMN - altri

Group:gruppo di activity (senza semantica)

Transaction

Data object:dati trasferiti tramite association

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!

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

?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

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

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 - + + + + + +

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

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/

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/

Popkin System Architect

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

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

Intalio N3

Tool per la specifica e gestione di WFMSComposto da Designer Server

Intalio N3

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

Consente specifiche BPMN-like

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

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

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

top related