Pernici Barbara Politecnico di Milano Master Universitario di II livello in Tecnologia dell'Informazione novembre 2003 ICT Center of Excellence For Research, Innovation, Education, and life-long Learning Politecnico di Milano Tecnologie per e-service Composizione di e-service Workflow Management Systems
Sommario Workflow management systems: concetti generali Processi e web-service BPEL Altri approcci WorkFlow Coalition
SOA
SOA Reminder Transport Medium Find Bind Publish Service Requestor Service Directory Service Provider
...in relazione ai Web Services Service Requestor Service Requestor WSDL UDDI SOAP
Web Services SOA In Action UDDI, WSDL, SOAP,... Perform Delivery Check Credit Rating Produce Invoice
Processi, web service e workflow 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: Introduzione La caratteristica principale della tecnologia dei WF è lautomazione di processi che coinvolgono una combinazione di attività umane e automatiche, in particolare con il coivolgimento di applicazioni e strumenti IT
Cosa è un Workflow? Lautomazione 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 lenactment di un processo, ciascuna associata a un insieme di dati rilevanti per quella particolare istanza di processo (o caso o workflow case)
Workflow Concetti generali
Definizione 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 Workflow in grado di eseguire il compito risorsa umana una persona un gruppo che condivide un insieme di compiti da svolgere applicazione software hardware 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 linizio e la fine di un processo, e informazioni riguardo le singole attività, quali I partecipanti, le applicazioni IT associate, I dati, …
Processo
Gestione ordine Compila BdO Approvazione Stampa report Contabilita approva impiegatoresponsabile direttore direttore Contabilita Excel Word Direttore controlla fine Controllo disponibilita
Evoluzione 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 System
Partecipante 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)
Process Instance Worklist Process Definition A Activity B Activity D Activity A Activity C Process Definition
1st Process Instance Work Item1 Work Item2 2nd Process Instance Process Definition Process Instance Worklist Process Definition A Work List 1 Activity B Activity D Activity A Activity C
1st Process Instance 2nd Process Instance Work Item1 Work Item2 Work List 1 Work List 2 Process Definition A Activity B Activity D Activity A Activity C 3rd Process Instance Work Item3 Process Definition Process Instance Worklist
1st Process Instance 2nd Process Instance Work Item2 Process Definition A Work List 1 Work List 2 Activity B Activity D Activity A Activity C 3rd Process Instance Work Item3 Work Item4 Work Item5 Process Definition Process Instance Worklist A eseguita
Processi e Web service
BPEL4WS 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-service Orchestrazione di servizi: Invocazione di web-service secondo una sequenza predefinita Schema di processo Esecuzione automatica del processo Il processo è anchesso un web-service
BPEL 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 implementato come processo BPEL portType Web service BPEL process c c
Definizione processo: Documenti 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 BPEL Attivita semplici di base Receive Reply Invoke, consente linvocazione 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 lesecuzione di più attività in parallelo Pick, blocca unattività fino allarrivo di un messaggio Link, collegamenti tra attivita
Documento 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 allinterno del processo Un partner può avere più ruoli
Esempio
Vista interna
Definizione dei messaggi Listing 1: Loan Definitions WSDL (loandefinitions.wsdl) <definitions targetNamespace=" xmlns:tns=" xmlns:xsd=" xmlns="
Servizio LoanApprover Listing 2: Loan Approver WSDL (loanapprover.wsdl) <fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/>
Il processo Loan Approval come web service Listing 3: Loan Approval WSDL(loan-approval.wsdl) <definitions targetNamespace=" xmlns=" xmlns:slnk=" xmlns:xsd=" xmlns:lns=" xmlns:apns=" <import namespace=" location=" loanapproval/loanapprover.wsdl"/> <import namespace=" location=" loanapproval/loandefinitions.wsdl"/> Utilizzato per entrambi i servizi Definizione di max due ruoli per port type
Processo loanApprovalProcess
Definizione processo (1) <process name="loanApprovalProcess" targetNamespace=" xmlns=" xmlns:lns=" xmlns:loandef=" xmlns:apns=" <partner name="customer" serviceLinkType="lns:loanApprovalLinkType" myRole="approver"/> <partner name="approver" serviceLinkType="lns:loanApprovalLinkType" partnerRole="approver"/>
Definizione processo (2) <receive name="receive1" partner="customer" portType="apns:loanApprovalPT" operation="approve" container="request" createInstance="yes"> <invoke name="invokeapprover" partner="approver" portType="apns:loanApprovalPT" operation="approve" inputContainer="request" outputContainer="approvalInfo"> <reply name="reply" partner="customer" portType="apns:loanApprovalPT" operation="approve" container="approvalInfo">
Processi con percorsi non sequenziali
Loan Assessor Listing 1. Loan assessor's WSDL snippet (loanassessor.wsdl) <definitions targetNamespace=" … <fault name="loanProcessFault" message= "loandef:loanRequestErrorMessage"/>
Nuove definizioni <partner name="assessor" serviceLinkType="lns:riskAssessmentLinkType" partnerRole="assessor"/> <container name="riskAssessment" messageType="asns:riskAssessmentMessage"/>
Definizione flusso (1) <receive name="receive1" partner="customer portType="apns:loanApprovalPT" operation="approve" container="request" createInstance="yes"> <source linkName="receive-to-assess" transitionCondition= "bpws:getContainerData('request', 'amount') <source linkName="receive-to-approval" transitionCondition= "bpws:getContainerData('request', 'amount')>=10000"/>
Definizione flusso (2) <invoke name="invokeAssessor" partner="assessor" portType="asns:riskAssessmentPT" operation="check" inputContainer="request" outputContainer="riskAssessment"> <source linkName="assess-to-setMessage" transitionCondition="bpws:getContainerData('riskAssessme nt', 'risk')='low'"/> <source linkName="assess-to-approval" transitionCondition= "bpws:getContainerData('riskAssessment', 'risk')!='low'"/>
Definizione flusso (3) <invoke name="invokeapprover" partner="approver" portType="apns:loanApprovalPT operation="approve" inputContainer="request outputContainer="approvalInfo"> <reply name="reply" partner="customer" portType="apns:loanApprovalPT operation="approve" container="approvalInfo">
Esecuzione
Creazione Processo Creazione su receive createInstance=Yes Correlation set Non vi e un istanceID per listanza 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 allistanza gia attiva del processo Utili per long-running business processes
Uso correlation set Secondo receive: Acceptance- receive Se stesso nome e cognome -> stessa istanza di processo
Altre attività di base I Faults possono essere gestiti in BPEL4WS con una activity. Lattività può essere utilizzata per abbandonare immediatamente lesecuzione in una istanza di processo che la esegue Lattività permette di aspettare un intervallo di tempo o una deadline Lattivtà non fa nulla. Può essere utilizzata per catturare e gestire un fault.
Documento BPEL Gestione eventi (fault handlers) Attività da eseguire in base ad errori Due tipi di eventi Fault Lanciare eccezioni durante linvocazione 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 allinterno del tag scope devono essere tutte concluse o eliminate (transazioni)
Faults
Uso scope e faults
Commenti 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
Commenti È fortemente centralizzato Definizione dei processi a priori In alcuni contesti (esempio mobili) difficile implementazione
Altri 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 allinterno del quale vengono specificati tutti gli aspetti della cooperazione
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 WFMS
Tipi 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 processi processi ad hoc senza una struttura fissa e ben definita, caratterizzati da alta variabilità. Es. riorganizzazione di unazienda 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 processi Collaborativi il sistema supporta linterazione tra piu persone definizione del contesto es: redazione di un testo
Tipi 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 linserimento 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 processi processi produttivi system-oriented altamente strutturati guidano aspetti operativi di unazienda elevato numero di transazioni che accedono a vari sistemi informativi. Es. La costruzione di un aereo e laggiornamento 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 Classification (C) Leymann 2001
Ader 2001 Workflow Classification Ader 2001
definire processi creare, gestire lesecuzione di workflow uno o più motori di workflow (workflow engine) interagire con i partecipanti chiamare applicazioni e strumenti software esterni Workflow Management System Sistema software per:
Workflow Management Coalition WfMC fondata nellagosto 1993 organizazione internazionale venditori di tecnologia WFMS, utenti e analisti terminologia standard standard di interconnessione tra WFMS e con applicazioni esterne favorire luso dei WFMS obiettivi
Il 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 sfida Gestione 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 lesecuzione del lavoro stesso
La soluzioneWorkflow management software Wokflow management software: gestisce attivamente il coodinamento di attività tra persone in processi di business generici
Workflow Management System 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 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à
WFMS
WF 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 body Role Duration (average, max) Description Tools, applications
Workflow 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 execution Evolution of instance of process (case) Evolution of activities in process
Transizioni di stato per istanze di processi Suspended Active Terminated RunningInitiated Initiate Complete Start Restart Restart Terminate/ Abort Suspend / resume (1 or more activity instances)
Transizioni di stato per attività Suspended ActiveCompleteInactive Start Suspend / Resume (has Work Item)
Worklist 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 Interfaces
Product Implementation Model
The generic model has three types of 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
Data 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 Scenarios Amongst the main alternatives considered are: centralised or distributed workflow enactment service worklist handler location(s) and distribution mechanism
Standard workflow enactment service boundary
Alternative client worklist handler implementations
The 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 Model
Workflow 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 Interchange
XML Process Definition Language Workflow Process Definition Interface -- XML Process Definition Language. (XPDL) (May 22, 2001) Document Number WFMC-TC-1025 Document 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_ 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). XPDL_ PDF XPDL.DTD
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 Interface
Invoked Application Interface
Workflow 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 concatenati 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 annidati Nel diagramma, il servizio di WF A ha unattivita definita (A3) che e eseguita come un processo completo (B) sul sistema di WF B, con ritorno del controllo a A dopo lesecuzione
Modello Peer-Peer 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 lesecuzione
Modello parallelo sincronizzato I due processi operano sostanzialmente indipendentemente, ma richiedono dei punti di sincronizzazione tra i due processi
Workflow interoperability interface
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-XML
Esempio Wf-XML (2)
Systems Administration & Monitoring Interface
Control, Relevant and Applications 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 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 Management Systems
Bibliografia IEEE Computer, special issue on Web Services Computing: Advancing software interoperability, Oct Gustavo Alonso, F. Casati, H. Kuno, V. Machiraju, Web Services, Springer, 2003 The Workflow Management Coalition home page: P. Grefen, B. Pernici, G. Sanchez (eds), Database Support for Workflow Management - The WIDE Project, Kluwer, 1999