Pernici Barbara Politecnico di Milano barbara.pernici@polimi.it Master Universitario di II livello...

Post on 01-May-2015

215 views 2 download

Tags:

transcript

Pernici BarbaraPernici BarbaraPolitecnico di Milano

barbara.pernici@polimi.ithttp://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