pernici barbara politecnico di milano [email protected] master universitario di ii livello...
TRANSCRIPT
Pernici BarbaraPernici BarbaraPolitecnico di Milano
[email protected]://www.elet.polimi.it
Master Universitario di II livello in Tecnologia dell'InformazioneMaster Universitario di II livello in Tecnologia dell'Informazione
13-14 novembre 200313-14 novembre 2003
ICT ICT CCenter of enter of EExcellence xcellence FFor or RResearch, esearch, IInnovation, nnovation, EEducation, and life-long ducation, and life-long LLearningearning
Politecnico di MilanoPolitecnico di Milano
Tecnologie per e-serviceTecnologie per e-service
Composizione di e-service Composizione di e-service
Workflow Management SystemsWorkflow Management Systems
SommarioSommario
Workflow management systems: concetti generali
Processi e web-service BPEL Altri approcci WorkFlow Coalition
SOASOA
SOA ReminderSOA Reminder
TransportMedium
FindBind
Publish
ServiceRequestor
ServiceDirectory
ServiceProvider
...in relazione ai Web ...in relazione ai Web ServicesServices
ServiceRequestor
ServiceRequestor
WSDLUDDI
SOAP
WebServices
SOA In ActionSOA In Action
UDDI,WSDL,SOAP,...
PerformDelivery
Check CreditRating
ProduceInvoice
Processi, web service e Processi, web service e workflowworkflow
Processo ottenuto come invocazione di più servizi web -> orchestrazione di web service
BPEL4WS Esecuzione di attività collegate da parte
di più agenti -> workflow WorkFlow Coalition reference architecture
Work Flow Management: IntroduzioneWork Flow Management: Introduzione
La caratteristica principale della tecnologia dei WF è l’automazione di processi che coinvolgono una combinazione di attività umane e automatiche, in particolare con il coivolgimento di applicazioni e strumenti IT
Cosa è un Workflow?Cosa è un Workflow?
L’automazione di un business process, in tutto o in parte, in cui documenti, informazioni o compiti sono passati da un partecipante a un altro per svolgere attività, secondo un insieme di regole procedurali
Molte singole istanze di processo possono essere operative durante l’enactment di un processo, ciascuna associata a un insieme di dati rilevanti per quella particolare istanza di processo (o “caso” o workflow “case”)
WorkflowWorkflowConcetti generaliConcetti generali
Definizione dei processiDefinizione dei processi
rete di attività
criteri per iniziare e terminare il processo
informazioni sulle singole attività
partecipanti, documenti e dati collegati
applicazioni sw da utilizzare
Partecipante di un WorkflowPartecipante di un Workflow
in grado di eseguire il compitoin grado di eseguire il compito
risorsa umanarisorsa umana
una personauna persona
un gruppo che condivide un insieme un gruppo che condivide un insieme
di compiti da svolgeredi compiti da svolgere
applicazione softwareapplicazione software
hardware specificohardware specifico
Process Definition
Rappresentazione di un processo in una forma che consente la manipolazione automatica
Per modellazione Per enactment
La definizione di un processo consiste in una rete di attività e loro relazioni, criteri per indicare l’inizio e la fine di un processo, e informazioni riguardo le singole attività, quali I partecipanti, le applicazioni IT associate, I dati, …
ProcessoProcesso
Activity A
Activity B
Activity C
Activity D
Activity E
Activity F
Activity G
Activity H
Gestione ordineGestione ordine
Compila BdO
Approvazione Stampa report
Contabilita’ approva
impiegatoimpiegato responsabileresponsabile
direttoredirettore
Contabilita’Contabilita’
ExcelExcel
WordWord
Direttore controlla
fine
Controllo disponibilita’
Evoluzione dei workflowEvoluzione dei workflow
gestione di documenti posta elettronica groupware software per la gestione dei progetti BPR e strumenti per la progettazione
strutturata separazione delle funzionalità di gestione
di WF orchestrazione di web-service
elaborazione di immagini
istanze di processo (o casi)
ciascuna con i propri dati e i propri partecipanti
Workflow Management SystemWorkflow Management System
Partecipante di un WorkflowPartecipante di un Workflow
esegue il lavoro associato a una
particolare istanza di attività
lista dei lavori (worklist): compiti
assegnati a partecipante
risorsa
Esempio di schermata (client)Esempio di schermata (client)
Process Instance Process Instance Worklist Worklist
Process Definition A Process Definition A
Activity B Activity B
Activity D Activity D Activity A Activity A
Activity C Activity C
Process DefinitionProcess Definition
1st Process Instance 1st Process Instance
Work Item1 Work Item1
Work Item2 Work Item2 2nd Process Instance 2nd Process Instance
Process Definition Process Definition Process Instance Process Instance Worklist Worklist
Process Definition AProcess Definition A
Work List 1Work List 1
Activity B Activity B
Activity D Activity D Activity A Activity A
Activity C Activity C
1st Process Instance 1st Process Instance
2nd Process Instance 2nd Process Instance
Work Item1 Work Item1
Work Item2 Work Item2
Work List 1Work List 1
Work List 2Work List 2
Process Definition AProcess Definition A
Activity B Activity B
Activity D Activity D Activity A Activity A
Activity C Activity C
3rd Process Instance 3rd Process Instance Work Item3 Work Item3
Process Definition Process Definition Process Instance Process Instance Worklist Worklist
1st Process Instance 1st Process Instance
2nd Process Instance 2nd Process Instance
Work Item2 Work Item2 Process Definition AProcess Definition A
Work List 1Work List 1
Work List 2Work List 2
Activity B Activity B
Activity D Activity D Activity AActivity A
Activity C Activity C
3rd Process Instance 3rd Process Instance Work Item3 Work Item3
Work Item4 Work Item4
Work Item5 Work Item5
Process Definition Process Definition Process Instance Process Instance Worklist Worklist
A eseguitaA eseguita
Processi e Web serviceProcessi e Web service
BPEL4WSBPEL4WS
Business Process Execution Language for Web Services
Obiettivo: Specifica un modello di comportamento dei
servizi web durante un processo di business Si pone ad un livello più alto dei linguaggi visti
fino ad adesso in ambito WS Grammatica basata su XML
Descrive la logica di funzionamento del processo Interpretato da un orchestration engine che
coordina il processo
WF e web-serviceWF e web-service
Orchestrazione di servizi: Invocazione di web-service secondo una
sequenza predefinita Schema di processo Esecuzione automatica del processo Il processo è anch’esso un web-service
BPEL e gli altriBPEL e gli altri
BPEL e gli altriBPEL e gli altri
Un documento BPEL è legato a WSDL in tre modi:
I processi BPEL vengono esposti come servizi Web tramite WSDL, con cui vengono descritti i punti iniziali e finali del processo;
I tipi di dati WSDL vengono utilizzati all’interno di un processo per descrivere le informazioni passate tra le richieste;
Con WSDL è possibile fare riferimento a servizi esterni.
WS-Transaction Standard per la descrizione delle transazioni a
lungo termine
Vista di un web service Vista di un web service implementato come processo implementato come processo
BPELBPEL
portType
<receive>
<reply>
Web
service
<receive>
BPEL process
c
c
Definizione processo: Definizione processo: Documenti BPELDocumenti BPEL
Descrizione delle attività Due tipologie di attività
Semplici Strutturate, contengono altre attività e ordine di
esecuzione Inizio e termine del processo
Receive: il processo è in attesa di ricevere un messaggio
Reply: il processo risponde al messaggio ricevuto Receive + Reply formano request-response
Nota: receive e reply possono essere anche essere utilizzate per interazioni intermedie
Documenti BPELDocumenti BPEL
Attivita’ semplici di base Receive Reply Invoke, consente l’invocazione di una operazione su un
WS Assign, consente di modificare il valore di una variabile
Costruttori Sequence, costruisce una sequenza di azioni Switch, consente di scegliere fra azioni diverse While, consente di far ciclare le azioni (loop) Flow, consente l’esecuzione di più attività in parallelo Pick, blocca un’attività fino all’arrivo di un messaggio
Link, collegamenti tra attivita’
Documento BPELDocumento BPEL
Container (variable) Tipi di dati usati nel processo Specifica WSDL
Partners Partecipanti al processo Ogni partner è caratterizzato da un service link
type Role
funzionalità svolta da un partner all’interno del processo
Un partner può avere più ruoli
EsempioEsempio
Vista internaVista interna
Definizione dei messaggiDefinizione dei messaggi
Listing 1: Loan Definitions WSDL (loandefinitions.wsdl)
<definitions targetNamespace="http://tempuri.org/services/loandefinitions"
xmlns:tns="http://tempuri.org/services/loandefinitions"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="creditInformationMessage">
<part name="firstName" type="xsd:string"/>
<part name="name" type="xsd:string"/>
<part name="amount" type="xsd:integer"/>
</message>
<message name="loanRequestErrorMessage">
<part name="errorCode" type="xsd:integer"/>
</message>
</definitions>
Servizio LoanApproverServizio LoanApprover
Listing 2: Loan Approver WSDL (loanapprover.wsdl)<definitions
targetNamespace="http://tempuri.org/services/loanapprover"…/>
<import …/><message name="approvalMessage">
<part name="accept" type="xsd:string"/></message><portType name="loanApprovalPT">
<operation name="approve"><input message="loandef:creditInformationMessage"/>
<output message="tns:approvalMessage"/><fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/>
</operation></portType><binding ...> ... </binding><service name="LoanApprover">....</service></definitions>
Il processo Loan Approval Il processo Loan Approval come web servicecome web service
Listing 3: Loan Approval WSDL(loan-approval.wsdl)
<definitions targetNamespace="http://loans.org/wsdl/loan-approval"xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:slnk="http://schemas.xmlsoap.org/ws/2002/06/service-link/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:lns="http://loans.org/wsdl/loan-approval"xmlns:apns="http://tempuri.org/services/loanapprover"><import namespace="http://tempuri.org/services/loanapprover"location="http://localhost:8080/bpwssamples/loanapproval/loanapprover.wsdl"/><import namespace="http://tempuri.org/services/loandefinitions"location="http://localhost:8080/bpwssamples/loanapproval/loandefinitions.wsdl"/><slnk:serviceLinkType name="loanApprovalLinkType"><slnk:role name="approver"> <portType name="apns:loanApprovalPT"/></slnk:role></slnk:serviceLinkType><service name="loanapprovalServiceBP"/>
</definitions>
Utilizzato per entrambi i servizi
Definizione di max due ruoli per port type
Processo Processo loanApprovalProcessloanApprovalProcess
Definizione processo (1)Definizione processo (1)
<process name="loanApprovalProcess"targetNamespace="http://acme.com/simpleloanprocessing"xmlns="http://schemas.xmlsoap.org/ws/2002/07/business-process/"xmlns:lns="http://loans.org/wsdl/loan-approval"xmlns:loandef="http://tempuri.org/services/loandefinitions"xmlns:apns="http://tempuri.org/services/loanapprover">
<partners><partner name="customer"
serviceLinkType="lns:loanApprovalLinkType"myRole="approver"/>
<partner name="approver"serviceLinkType="lns:loanApprovalLinkType"partnerRole="approver"/>
</partners>
<containers><container name="request"
messageType="loandef:CreditInformationMessage"/><container name="approvalInfo" messageType="apns:approvalMessage"/></containers>
Definizione processo (2)Definizione processo (2)
<sequence><receive name="receive1" partner="customer"
portType="apns:loanApprovalPT"operation="approve" container="request"createInstance="yes">
</receive>
<invoke name="invokeapprover"partner="approver"portType="apns:loanApprovalPT"operation="approve"inputContainer="request"outputContainer="approvalInfo">
</invoke>
<reply name="reply" partner="customer" portType="apns:loanApprovalPT"
operation="approve" container="approvalInfo"></reply>
</sequence></process>
Processi con percorsi non Processi con percorsi non sequenzialisequenziali
Loan AssessorLoan Assessor
Listing 1. Loan assessor's WSDL snippet (loanassessor.wsdl)<definitionstargetNamespace="http://tempuri.org/services/loanassessor"…<message name="riskAssessmentMessage">
<part name="risk" type="xsd:string"/></message><portType name="riskAssessmentPT">
<operation name="check"><input
message="loandef:creditInformationMessage"/><output message="tns:riskAssessmentMessage"/><fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/></operation>
</portType><binding ...> ... </binding><service name="LoanAssessor">....</service></definitions>
Nuove definizioniNuove definizioni
<slnk:serviceLinkType name="riskAssessmentLinkType">
<slnk:role name="assessor"><portType name="asns:riskAssessmentPT"/></slnk:role>
</slnk:serviceLinkType>
<partner name="assessor"serviceLinkType="lns:riskAssessmentLinkType"partnerRole="assessor"/>
<containername="riskAssessment"messageType="asns:riskAssessmentMessage"/>
Definizione flusso (1)Definizione flusso (1)
<flow><links><link name="receive-to-assess"/><link name="receive-to-approval"/><link name="approval-to-reply"/><link name="assess-to-setMessage"/><link name="setMessage-to-reply"/><link name="assess-to-approval"/></links>
<receive name="receive1" partner="customer“ portType="apns:loanApprovalPT"operation="approve" container="request"createInstance="yes">
<source linkName="receive-to-assess"transitionCondition= "bpws:getContainerData('request', 'amount')<10000"/><source linkName="receive-to-approval"transitionCondition= "bpws:getContainerData('request', 'amount')>=10000"/></receive>
Definizione flusso (2)Definizione flusso (2)
<invoke name="invokeAssessor" partner="assessor"portType="asns:riskAssessmentPT"operation="check" inputContainer="request"outputContainer="riskAssessment"><target linkName="receive-to-assess"/>
<source linkName="assess-to-setMessage"
transitionCondition="bpws:getContainerData('riskAssessment', 'risk')='low'"/>
<source linkName="assess-to-approval"transitionCondition="bpws:getContainerData('riskAssessment',
'risk')!='low'"/></invoke>
Definizione flusso (3)Definizione flusso (3)
<assign name="assign"><target linkName="assess-to-
setMessage"/><source linkName="setMessage-to-
reply"/><copy><from expression="'yes'"/><to container="approvalInfo"
part="accept"/></copy>
</assign>
<invoke name="invokeapprover"partner="approver" portType="apns:loanApprovalPT“
operation="approve"inputContainer="request“
outputContainer="approvalInfo"><target linkName="receive-to-approval"/><target linkName="assess-to-approval"/><source linkName="approval-to-reply" />
</invoke>
<reply name="reply" partner="customer"portType="apns:loanApprovalPT“ operation="approve" container="approvalInfo"><target linkName="setMessage-to-reply"/><target linkName="approval-to-reply"/>
</reply></flow></process>
EsecuzioneEsecuzione
Creazione ProcessoCreazione Processo
Creazione su receive createInstance=“Yes”
Correlation set Non vi e’ un istanceID per l’istanza di processo I correlation set definiscono le “chiavi” del
processo Es: firstName, name nel processo indicato
Altre richieste che arrivano al processo con lo stesso Nome e Cognome vengono correlate all’istanza gia’ attiva del processo
Utili per long-running business processes
Uso correlation setUso correlation set
Secondo receive:
Acceptance-receive
Se stesso nome e cognome -> stessa istanza di processo
Altre attività di baseAltre attività di base
I Faults possono essere gestiti in BPEL4WS con una <throw> activity.
L’attività <terminate> può essere utilizzata per abbandonare immediatamente l’esecuzione in una istanza di processo che la esegue
L’attività <wait> permette di aspettare un intervallo di tempo o una deadline
L’attivtà <empty> non fa nulla. Può essere utilizzata per catturare e gestire un fault.
Documento BPELDocumento BPEL
Gestione eventi (fault handlers) Attività da eseguire in base ad errori
Due tipi di eventi Fault
Lanciare eccezioni durante l’invocazione di un servizio
Es. servizio acquisto dadi, dadi finiti Compensation
Azioni per annullare o invertire il servizio che ha causato il fault
La reazione alle eccezioni dipende dallo stato del processo
Tutte le azioni all’interno del tag scope devono essere tutte concluse o eliminate (transazioni)
FaultsFaults
Uso scope e faultsUso scope e faults
CommentiCommenti
Punti di forza di bpel4ws Gestione delle transazioni
WS-transaction Gestione delle eccezioni
Meccanismo di throw and catch tipico dei linguaggi di programmazione
Il linguaggio BPEL è indipendente dalla logica funzionale che c’è sotto
Aumento della flessibilità Esiste un motore BPEL4WS
CommentiCommenti
È fortemente centralizzato Definizione dei processi a priori In alcuni contesti (esempio mobili) difficile
implementazione
Altri approcciAltri approcci
ebXML: Electronic business XML E’ una iniziativa portata avanti dal consorzio OASIS, costituito da diverse imprese di IT e da UN/CEFAT
automatizzare le procedure di business inter e intra organizzazione
Prendere a riferimento un processo di business all’interno del quale vengono specificati tutti gli aspetti della cooperazione
Altri approcci (2)Altri approcci (2)
Semantic Web e DAML-S ontologia dei servizi
sviluppata nell’ambito del programma DARPA rendere possibile ad utenti ed agenti software il
discovery, l’invocazione, la composizione e il monitoring di risorse Web che offrono particolari servizi e che hanno particolari proprietà
strutturazione di ontologie di DAML+OIL forniscono il framework
Obiettivi Discovery automatico dei servizi Invocazione automatica dei servizi
– Un agente software dovrebbe essere in grado di capire in maniera automatica quali input sono necessari per l’esecuzione di un servizio
WF e WFMSWF e WFMS
Tipi di processiTipi di processi
Georgakopoulos et al [Geo95] (classificazione in base alla struttura)
scarsamente strutturati (sequenza attivita’) altamente strutturati caratterizzati da strutture
complesse, con cicli, task eseguiti in parallelo e sincronizzazioni fra attività.
ulteriore classificazione in Geo95 human-oriented system-oriented
Tipi di processiTipi di processi
processi ad hoc senza una struttura fissa e ben definita,
caratterizzati da alta variabilità. Es. riorganizzazione di un’azienda il sistema deve consentire la cooperazione tra
persone che contribuiscono alla sua esecuzione, al fine di definire (dinamicamente) la struttura del processo man mano che questo procede.
Tipi di processiTipi di processi
Collaborativi il sistema supporta l’interazione tra piu’ persone definizione del contesto
es: redazione di un testo
Tipi di processiTipi di processi
processi amministrativi processi prevedibili e ripetibili è possibile definire uno schema attività in genere eseguite da agenti umani
(sono processi human-oriented), e comportano tipicamente l’inserimento di dati o la scrittura di documenti.
Es. La prenotazione di un viaggio, la valutazione di una richiesta di pensione
Data la loro ripetitività, i processi amministrativi si prestano bene ad essere automatizzati
Tipi di processiTipi di processi
processi produttivi system-oriented altamente strutturati guidano aspetti operativi di un’azienda elevato numero di transazioni che accedono a vari
sistemi informativi. Es. La costruzione di un aereo e l’aggiornamento di
un data warehouse sono esempi di processi produttivi.
prevedibili e ripetibili, possono essere automatizzati. cooperazione con sistemi informativi esterni che
tipicamente sono eterogenei, autonomi e distribuiti. Scalabilita’ robustezza, disponibilita’
Workflow ClassificationWorkflow Classification
Business Value
Rep
etiti
on
high
low
low high
Ad HocReview/approval
FYI routing
Production
Claims handlingLoan handling
Accounting
AdministrativeTravel expense reports
Purchase approvals
Technical documentation creation
Brand Mgmt
Collaborative
(C) Leymann 2001
Ader 2001Ader 2001
Workflow ClassificationWorkflow Classification
Ader 2001
definire processi
creare, gestire l’esecuzione di workflow
uno o più motori di workflow (workflow engine)
interagire con i partecipanti
chiamare applicazioni e strumenti software esterni
Workflow Management SystemWorkflow Management System
Sistema software per:
Workflow Management Coalition WfMCWorkflow Management Coalition WfMC
fondata nell’agosto 1993fondata nell’agosto 1993
organizazione internazionaleorganizazione internazionale
venditori di tecnologia WFMS, utenti e analisti
terminologia standard
standard di interconnessione tra WFMS e con
applicazioni esterne
favorire l’uso dei WFMS
obiettiviobiettivi
Il lavoro della CoalitionIl lavoro della Coalition
Reference Model Glossary Process Definition Tools Interface (1) Workflow Client Application Interface (2) Invoked Application Interface (3) Workflow Interoperability Interface (4) Administration & Monitoring Tools Interface (5)
La sfidaLa sfidaGestione dei flussi di lavoroGestione dei flussi di lavoro
In processi complessi, la pianificazione e la gestione delle diverse attività diventa sempre più difficile
Controllare I flussi di lavoro può richiedere tanto tempo quanto l’esecuzione del lavoro stesso
La soluzioneWorkflow La soluzioneWorkflow management softwaremanagement software
Wokflow management software: gestisce attivamente il coodinamento di attività tra persone in processi di business generici
Workflow Management Workflow Management SystemSystem
A system that defines, creates and manages the execution of workflows through the use of software, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications
WFMS: aree funzionaliWFMS: aree funzionali
Build-time functions, riguardano la definizione, e la modellazione dei processi di workflow e delle attività che li costituiscono
Run-time control functions riguardano la getione dei processi di workflow in un ambiente operativo e la seqanzializzazione delle attività gestite come parte del processo
Run-time interactions with human users and IT application tools per eseguire le attività
WFMSWFMS
ProcessDefinition
Build Time
Business Process Analysis,Modelling & Definition Tools
Run Time
Workflow Enactment Service
Process changes
Process Instanciation& Control
Applications& IT Tools
Interaction with Users & Application Tools
Process Design& Definition
WF modeling constructsWF modeling constructs
Activities Transitions Join / split (AND e OR)
Tipi di attivita’ Generica Nulla Ciclo (con condizioni iniziale e finale + corpo del
ciclo) subflow
Activity bodyActivity body
Role Duration (average, max) Description Tools, applications
Workflow ParticipantWorkflow Participant
A resource which performs the work represented by a workflow activity instance.
This work is normally manifested as one or more work items assigned to the workflow participant via the worklist
Process executionProcess execution
Evolution of instance of process (case) Evolution of activities in process
Transizioni di stato per istanze di processiTransizioni di stato per istanze di processiTransizioni di stato per istanze di processiTransizioni di stato per istanze di processi
SuspendedSuspended
ActiveActive
TerminatedTerminated
RunningRunningInitiatedInitiatedInitiateInitiate
CompleteComplete
StartStart
RestartRestart
RestartRestart
Terminate/ Terminate/ AbortAbort
Suspend / Suspend / resumeresume
(1 or more activity (1 or more activity instances) instances)
Transizioni di stato per attivitàTransizioni di stato per attivitàTransizioni di stato per attivitàTransizioni di stato per attività
SuspendedSuspended
ActiveActive CompleteCompleteInactiveInactiveStartStart
Suspend / ResumeSuspend / Resume
(has Work Item)(has Work Item)
WorklistWorklist
Worklist: a list of work items associated with a given workflow participant (or in some cases with a group of workflow participants who may share a common worklist).
The worklist forms part of the interface between a workflow engine and the worklist handler
Distribution & System InterfacesDistribution & System Interfaces
Individual activity
Applications
User Interface &
Local DesktopApplications
BusinessProcess
Databases
Process/Activity Mgt
Distribution Functionsteps
Product Implementation ModelProduct Implementation Model
User Interface
WorklistHandler
Generates
ProcessDefinition
References
WorkList
Manipulate
Interact via
Invokes
Invokes
Definition Tool
Application(s)
Mayreference
Interpreted by
External product/data
Software component
System control data
WorkflowApplicationData
WFMEngine(s)
Application(s)
maintain
use
update
mayrefer to
WorkflowEnactmentService
(Supervisor)
Administration& Control
Organisation/Role Model
Workflowcontroldata
WorkflowRelevant
Data
Data
The generic model has three types of The generic model has three types of component:component:
software components which provide support for various functions within the workflow system (shown in dark fill)
various types of system definition and control data (shown unfilled) which are used by one or more software components
applications and application databases (shown in light fill) which are not part of the workflow product, but which may be invoked by it as part of the total workflow system
DataData
Control data Status of activities (running, suspended,
terminated) Assignment of activities
Relevant data Needed to perform the work (e.g. loan amount,
used in conditions such as loan-amount> 1000) Application data
Alternative Implementation Alternative Implementation ScenariosScenarios
Amongst the main alternatives considered are: centralised or distributed workflow
enactment service worklist handler location(s) and
distribution mechanism
Standard workflow enactment service boundaryStandard workflow enactment service boundary
ProcessDefinition
WFMEngine
Workflowcontroldata
Invoked
Application(s)
Local orremote
(Supervisor)
WFMEngineWFM
EngineWFMEngine
WorkList
WorkList
A - Centralised Model B - Distributed Model
WorkList
Workflowcontroldata
Alternative client worklist handler Alternative client worklist handler implementationsimplementations
Shared FilestoreModel
Common API
Model
Procedure Call orMessage PassingModel
Electronic Mail
WorkflowEngine
Worklist
WorklistAccess
WorkflowClient Appn.
RPCetc
WorkflowEngine
Worklist
WorklistAccess
WorkflowClient Appn.
X.400,
WorkflowEngine
WorklistAccess
WorkflowClient Appn.
etc
WorkflowEngine
Worklist
WorklistAccess
WorkflowClient Appn.
Localcall
Worklist
Serverenvironment
environmentClient
Host basedModel
The Need for StandardisationThe Need for Standardisation
The basic rationale to achieve standardisation of important workflow functional interfaces is driven by two major considerations:
Ongoing support for business re-engineering & operational flexibility
Integration requirements resulting from product specialisation and market variety
Workflow Reference ModelWorkflow Reference Model
Process Definition Tools
Administration & Monitoring
Tools
Interface 1
Interface 4Interface 5
Workflow Enactment Service
Workflow API and Interchange formats
Other WorkflowEnactment Service(s)
WorkflowClient
Applications
Interface 3Interface 2
WorkflowEngine(s)
WorkflowEngine(s)
InvokedApplications
Workflow Enactment ServicesWorkflow Enactment Services
A software service that may consist of one or more workflow engines in order to create, manage and execute workflow instances. Applications may interface to this service via the workflow application programming interface (WAPI).
A workflow enactment service may operate within a single (homogeneous) workflow domain, or using the facilities provided within the WfMC interoperability interface enactment may occur across engines within several (heterogeneous) domains
Process Definition InterchangeProcess Definition Interchange
Workflow Enactment Service
WorkflowEngine(s)
Process AnalysisModelling & Definition
Tools
Process Definition
Process StructureActivities & NavigationRoles & ParticipantsTrigger ConditionsApplication invocationEtc...
Interchange Formats & APIs
XML Process Definition XML Process Definition LanguageLanguage
Workflow Process Definition Interface -- XML Process Definition Language. (XPDL) (May 22, 2001) Document Number WFMC-TC-1025Document Status – Draft 0.03a (Alpha Status)This forms part of the documentation relating to “Interface one” - supporting Process Definition Import and Export. This interface includes a common meta-model for describing the process definition and also a DTD for the interchange of process definitions.XPDL_010522.PDF (329kb)XPDL.DTD (7kb)The intended audience for this document is primarily vendor organizations who seek to implement the XML Process Definition Language (XPDL) of the Workflow Management Coalition (WfMC).
Interaction with external resources Interaction with external resources
The client application interface (2), through which a workflow engine interacts with a worklist handler
The invoked application interface (3), which enables the workflow engine to directly activate a specific tool to undertake a particular activity.
Client Application InterfaceClient Application Interface
User Interface
ClientApplication
Command Set
Connection/Disconnection
Process and Activity Control Functions
Process Status Functions
Worklist Manipulation Commands
Standardised APIs & Interchange
Workflow Enactment Service
WorkflowEngine(s)
ApplicationsInvoked
Invoked Application InterfaceInvoked Application Interface
Standardised APIs & Interchange
ApplicationAgent
Application Specific Interfaces
(Local or RemoteMany Variants)
Workflow Enactment Service
WorkflowEngine(s)
Workflow-enabled
ApplicationsInvoked
Applications
Workflow InteroperabilityWorkflow Interoperability
Un obiettivo della coalition e’ definire standard per consentire a sistemi di workflow realizzati da diversi produttori sw di scambiarsi elementi di lavoro
Sono stati identificati 4 diversi possibili modelli di interoperabilita’, con possibilita’ diverse
Modello a servizi concatenatiModello a servizi concatenati
Process A Process B
A1
A2 A3
A4
A5 B1
B2
B3
B4 B5
Questo modello consente il trasferimento di un singolo elemento di lavoro (istanza di processo o attivita’) tra due ambienti WFMS diversi, che operano indipendentemente dopo lo scambio, senza ulteriori sincronizzazioni
Modello a sottoprocessi annidatiModello a sottoprocessi annidati
Domain of Workflow Service A Domain of Workflow Service B
Process A Process B
A1
A2 A3
A4
A5 B1
B2
B3
B4 B5
Nel diagramma, il servizio di WF A ha un’attivita’ definita (A3) che e’ eseguita come un processo completo (B) sul sistema di WF B, con ritorno del controllo a A dopo l’esecuzione
Modello Peer-PeerModello Peer-Peer
Shared Domain of Workflow Services A & B
Process C
WorkflowEngine(s)
B
WorkflowEngine(s)
A
Enacted across
C1
C2 C3
C4
C5 C6
Questa alternativa richiede che entrambi i servizi di WF supportino una interfaccia API comune per la comunicazione e che siano in grado di interpretare una definizione di processo comune, che puo’ essere importata da un processo di definizione esterno o trasferita run time durante l’esecuzione
Modello parallelo sincronizzatoModello parallelo sincronizzato
Synchronisation point
Domain of Workflow Service A Domain of Workflow Service B
Process A
A1
A2 A3
A4
A5
Process B
B1
B2
B3
B4 B5
I due processi operano sostanzialmente indipendentemente, ma richiedono dei punti di sincronizzazione tra i due processi
Workflow interoperability interface Workflow interoperability interface
Interface 4
Workflow Enactment Service
Workflow API and Interchange formats
WorkflowEngine(s)
Activity or sub-process invocationProcess/Activity status/control
Application/workflow relevant data transfer
Workflow Enactment Service
Workflow API and Interchange formats
WorkflowEngine(s)
Synchpoint coordinationProcess definition read/write
Interoperabilita’Interoperabilita’
XML Messaging Wf-XML: interoperabilita’ tra WfMS - a livello di
istanze documento Workflow Standard Interoperability -
WF-XML Binding, WF Handbook 2001 azioni sui processi, scambio dati, messaggi di
controllo
Esempio Wf-XMLEsempio Wf-XML
Esempio Wf-XML (2)Esempio Wf-XML (2)
Systems Administration & Monitoring InterfaceSystems Administration & Monitoring Interface
ManagementApplication
User managementRole managementAudit management
Process supervisory functions, etc
Resource control
Typical Functional Areas
WAPIInterface 5
Workflow Enactment ServiceA
WorkflowEngine(s)
Workflow Enactment ServiceB
WorkflowEngine(s)
Control, Relevant and Applications Control, Relevant and Applications data data
Workflow Control Data: Internal data that is managed by the workflow management system and/or workflow engine
Workflow Relevant Data: Data that is used by a workflow management system to determine the state transition of a workflow process instance
Workflow Application Data: Data that is application specific and not accessible by the workflow management system
Control, Relevant and Applications Control, Relevant and Applications data data
Workflow Control Data: Internal data that is managed by the workflow management system and/or workflow engine
Workflow Relevant Data: Data that is used by a workflow management system to determine the state transition of a workflow process instance
Workflow Application Data: Data that is application specific and not accessible by the workflow management system
Types of Data in Workflow Types of Data in Workflow Management SystemsManagement Systems
ProcessDefinition
Build TimeBusiness Process Analysis,
Modelling & Definition Tools
Run Time
Workflow Enactment Service
Process changesProcess Instanciation& Control
Applications& IT Tools
Run Time
Interaction with Users & Application Tools
Process Design& Definition
Workflow Control Data
Workflow Relevant Data
Application Data
BibliografiaBibliografia
IEEE Computer, special issue on Web Services Computing: Advancing software interoperability, Oct. 2003
Gustavo Alonso, F. Casati, H. Kuno, V. Machiraju, Web Services, Springer, 2003
The Workflow Management Coalition home page: http://www.wfmc.org/
P. Grefen, B. Pernici, G. Sanchez (eds), Database Support for Workflow Management - The WIDE Project, Kluwer, 1999