Date post: | 24-Jan-2015 |
Category: |
Technology |
Upload: | marco-brambilla |
View: | 1,077 times |
Download: | 5 times |
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