Basi di Dati e Sistemi Informativi su Web



Documenti analoghi
WorkFlow Management Systems

REGISTRATION GUIDE TO RESHELL SOFTWARE

YAWL Workflow Management System

Modello Workflow - WIDE

Introduzione Kerberos. Orazio Battaglia

Workflow nella pubblica amministrazione: BPR e simulazione dei workflow inter-organizzativi

A A Design Tool to Develop Agent-Based Workflow Management Systems

Estendere Lean e Operational Excellence a tutta la Supply Chain

Studio basato su reti di Petri della semantica formale di modelli per applicazioni Web

Sommario. Esempio di Modellazione mediante DASM: Grid OGSA. Grid secondo OGSA. Definizione Grid per OGSA. Stati di un Job e Requisiti DASM

Ingegneria del Software

API e socket per lo sviluppo di applicazioni Web Based

Guida all installazione del prodotto 4600 in configurazione plip

Composizione e Coreografia di Web Services

Copyright 2012 Binary System srl Piacenza ITALIA Via Coppalati, 6 P.IVA info@binarysystem.eu

GRUPPO TELECOM ITALIA. Finsiel. Massimo Rabuffo Div. Pubblica Amministrazione Centrale

N 1 alla versione bilingue (italiano-inglese) NORMA UNI EN ISO 9001 (novembre 2008) Sistemi di gestione per la qualità - Requisiti.

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Introduzione ai Web Services Alberto Polzonetti

TNCguide OEM Informativa sull introduzione di documentazione aggiuntiva nella TNCguide

IP TV and Internet TV

Sicurezza e Gestione delle Reti (di telecomunicazioni)

WorkFLow (Gestione del flusso pratiche)

MODELLAZIONE DEI PROCESSI AZIENDALI. workflow 1

Business Process Modeling and Notation e WebML

WELCOME. Go to the link of the official University of Palermo web site Click on the box on the right side Login unico

Università di Pisa Polo Sistemi Logistici Economia e Legislazione dei Sistemi Logistici. Informatica per la Logistica. Lezioni

Metodologie di progettazione

L'infrastruttura tecnologica Oracle Workflow alla base del progetto di Valutazione di Impatto Ambientale

Corso di Amministrazione di Sistema Parte I ITIL 1

Analisi dei Requisiti, Progettazione Preliminare ed Esecutiva di Grandi Sistemi Ingegneristici: Casi di Studio

Ingegneria del Software Testing. Corso di Ingegneria del Software Anno Accademico 2012/2013

WELCOME UNIPA REGISTRATION:

ISAC. Company Profile

GESTIONE IMMOBILIARE REAL ESTATE

We take care of your buildings

SOLUZIONI INFORMATICHE PER L INDUSTRIA

PMBOK Guide 3 rd Edition 2004

CONFIGURATION MANUAL

Corso di Linguaggi di Programmazione

UNIVERSITÀ DEGLI STUDI DI TORINO. Instructions to apply for exams ONLINE Version 01 updated on 17/11/2014

Ruolo delle associazioni di impresa nella informazione corretta sui pericoli da sostanze e miscele

SISTEMI OPERATIVI. Sincronizzazione in Java (Semafori e barriere) Patrizia Scandurra (MODULO DI INFORMATICA II) LABORATORIO

Padova Smart City. Internet of Things. Alberto Corò

YAWL. Yet Another Workflow Language & Co.

Business Process Management

Pubblicazioni COBIT 5

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

Posta elettronica per gli studenti for the students

IP multimedia services in the NGN

[Larman] Applicare UML e i pattern, Capitolo 28, Diagrammi di attività di UML e modellazione

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla

ACQUISTI PORTALE. Purchasing Portal

Concetti di base di ingegneria del software

Pag. 1 WIDE (I) josh: la piattaforma software per il KM. josh - Modello logico WIDE (II) josh - Modello fisico. Modello dei processi (I)

Debtags. Dare un senso a pacchetti. 16 settembre slides Enrico Zini enrico@debian.org

Corsi di Laurea Magistrale/ Master Degree Programs

Ciclo di vita dimensionale

La Sua banca dovrá registrare il mandato di addebito nei propri sistemi prima di poter iniziare o attivare qualsiasi transazione

Collaudo e qualità del software Quali test eseguire

User Guide Guglielmo SmartClient

Business Intelligence. a new. one technology. All in & One. world. one product. Performance. one vision. Management

1. Introduzione agli ERP e a SAP

CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo) Approfondimenti Tecnici. Francesco Zanitti Tecnoteca S.r.

Infrastrutture critiche e cloud: una convergenza possibile

ESPERIENZE DI ESECUZIONE DI GAP ANALYSIS E RELATIVI PIANI DI ADEGUAMENTO ALLA ISO Automotive Software Workshop. Ernesto Viale 1 Dicembre 2011

Optisolver 2001 Workflow di Oracle Optisolver 2001 Optisolver 2001

CODI/21 PIANOFORTE II // CODI/21 PIANO II

Attuatore a relè Manuale di istruzioni

La qualità vista dal monitor

F ondazione Diritti Genetici. Biotecnologie tra scienza e società

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

KON 3. Knowledge ON ONcology through ONtology

Customer Centric/Inquiry/E-bill. Tanya Enzminger

Regione Campania Assessorato al Lavoro e alla Formazione. Ammortizzatori sociali in deroga

Data Alignment and (Geo)Referencing (sometimes Registration process)

Test e collaudo del software Continuous Integration and Testing

A Solar Energy Storage Pilot Power Plant

Infrastruttura di produzione INFN-GRID

Learning session: costruiamo insieme un modello per una campagna di marketing

I I SISTEMI INFORMATIVI INTEGRATI. Baan IV IV - Enterprise e Orgware NOTE

E-Business Consulting S.r.l.

Modellazione di processi

Dispensa di database Access

Constant Propagation. A More Complex Semilattice A Nondistributive Framework

UNIVERSITÀ DEGLI STUDI DI TORINO

U Corso di italiano, Lezione Quindici

STATO IMPLEMENTAZIONE ONVIF SU TELECAMERE MUNDUS SECURUS

Portale Materiali Grafiche Tamburini. Grafiche Tamburini Materials Portal

CAMBIO DATI PERSONALI - Italy

Ciclo di Vita Evolutivo

Quality gate. Sono eventi programmati regolarmente e condotti seguendo una procedura standard

C. & G. Agency Srl Via Novara, snc Tuscania VT Tel. 0761/ Fax. 0761/ Website: info@cegagency.

WE FOR YOU. Gestione Documentale integrata con ERP

CATEGORIZZAZIONE PREVENTIVA di tutte le tipologie di richieste e dei dati necessari alla loro gestione Change Mgmt

Introduzione alle applicazioni di rete

CENTRALE UNICA DI SOCCORSO

Act: : un caso di gestione della conoscenza di processo. Tiziano Bertagna Responsabile SOX Office, RAS Group

Database support Prerequisites Architecture Driver features Setup Stored procedures Where to use. Contents

CORSO MOC80308: Procurement in Microsoft Dynamics AX CEGEKA Education corsi di formazione professionale

Transcript:

Basi di Dati e Sistemi Informativi su Web Corso di Laurea Specialistica in Ingegneria Informatica Massimo Ruffolo E-mail: ruffolo@icar.cnr.it Web: http://www.icar.cnr.it/ruffolo Istituto di CAlcolo e Reti ad alte prestazioni del Consiglio Nazionale delle Ricerche (ICAR-CNR) Exeura s.r.l. Spin-off dell Università della Calabria 1 I workflow Processi e Workgroup La definizione I benefici Lo standard WfMC L approccio 2

Workflow e Workgroup Business Process Modeling Processes are important: Business Process Reengineering (BPR) Continuous Process Improvement (CPI) Business Process Management Workflow Management (WFM) Logistics Management (LM) There are many modeling techniques and tools DFD, ISAC, SADT, PN, HLPN, PA, FC, UML, IDEF... Simulation tools, design tools, CASE tools, WFMS,... 3 Workflow e Workgroup Business Process Reengineering (BPR) (Business Process Redesign) Hammer and Champy: "Reengineering the corporation" (1993) Keywords: fundamental radical dramatic process The "organize before automate"-principle is replaced by "process thinking". 4

Continuous Process Improvement (CPI) Instead of of seeking a radical breakthrough, optimizing the process by continuous, incremental improvements. Part of the Total Quality Management (TQM) approach ("doing it right the first time", "eliminate waste",...) Workflow e Workgroup impact high BPR chaos change CPI stagnation CPI BPR low CPI low high time frequency BPR and CPI are both process centric and can be supported by a WFMS. CPI BPR 5 Workflow e Workgroup Traditional groupware (e.g., Lotus Notes) is flexible but not process aware. Traditional workflow management systems are process aware but also rather restrictive. A marriage between groupware and workflow management is not a solution. Trade-off between flexibility and support. Trade-off between flexibility and performance. Interesting approaches: case handling ad-hoc workflow inheritance of behavior instance-based languages (e.g., XRL) 6

Workflow e Workgroup explicitly structured implicitly structured ad-hoc structured case handling production workflow ad-hoc workflow unstructured groupware data-driven process-driven 7 Workflow e Workgroup high flexibility support performance design effort low groupware ad-hoc workflow case handling production workflow 8

Workflow e Workgroup human oriented system oriented groupware workflow transaction processing P2P = Person To Person A2P = Application To Person A2A = Application To Application 9 Workflow e Workgroup process awareness (WFM) (tasks, routing, roles,...) management instrument (WFM) (measurements, control,...) allocating work to resources (WFM) (scheduling, priorities,...) documents (GW) (imaging, sharing, transport) collaboration (GW) (interaction, cooperation,...) systems integration (WFM,GW) (integrating applications, legacy software,...) distribution (WFM,GW) (network, transparency, robustness) 10

I workflow Definizione "L'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro per ricevere qualche tipo di azione, seguendo un determinato insieme di regole." [WfMC] No Revisione del supervisore Respingi richiesta Si Notifica accettazione No Accettazione richieste Valutazione requisiti Valutazione fondi Accettare richiesta? Si Aggiornare fondi 11 I workflow La Workflow Management Coalition Associazione internazionale No-profit Fondata nell Agosto 1993 Sviluppo e promozione di standard http://aiai.ed.ac.uk/wfmc Workflow Glossary Workflow Reference Model Standard per l interfacce di sistemi 12

Tipi di workflow Workflow collaborativo * gestisce processi meno rigidi e prevede una relazione tra gli utenti più vicina a quella della collaborazione tra gruppi di lavoro, di fatto sono un evoluzione di prodotti di groupware integrati con motori di workflow Workflow strutturato * gestisce attività strutturalmente ben definite e ripetibili, che possono essere specificate attraverso una serie di regole: Workflow amministrativo: gestisce il flusso di moduli in formato elettronico (form), integrandolo con sistemi di messaggistica o e-mail. Workflow di produzione: gestisce i flussi di lavoro fortemente strutturati, definiti da regole e dipendenze ben formalizzate. Workflow ad hoc * viene realizzato utilizzando sistemi più leggeri che lasciano all utente il compito di eseguire di sua iniziativa passi significativi della procedura ogni volta sia richiesta una modifica dinamica al processo in esecuzione. 13 I benefici dei workflow Automazione del processo Riduzione dei tempi, degli errori, miglioramento della qualità del servizio offerto Miglioramento nell organizzazione, scheduling, controllo e monitoraggio dei processi Esecuzione Supporto alla comunicazione, all analisi e comprensionedeifenomenilegatial ciclo di vita dei processi Possibile esecuzione manuale e/o automatica Monitoraggio del processo Misura delle performance Supporto manageriale e decisionale Analisi del processo Process/workflow mining 14

L approccio dei workflow Separare processi risorse e applicazioni Focalizzare la logica dei processi Definire le risorse da assegnare al processo processo Attori Workflow applicazioni Il workflow Stabilisce chi deve fare cosa e come Controlla l esecuzione 15 Cosa e Come: Il control flow Specifica le attività che sono richieste, l ordine di esecuzione, le condizioni per la transizione da un attività ad un altra (pattern) Usualmente è modellato mediante un grafo orientato che definisce le relazioni di precedenza tra le varie attività (modelli graph-oriented), oppure come un insieme di attività e di regole per il passaggio da un attività all altra e per lo scheduling delle stesse (object oriented) Alcune attività possono essere a loro volta processi più complessi A2 A2 A1 A4 A5 A3 16

Chi: il worklist management Chi deve eseguire una data attività? L assegnamento Work Items Attore è definito rispetto ai ruoli (in base alle compentenze, alla disponibilità e all esperienza) Funzioni addizionali: - monitoraggio delle deadline e degli alerting - bilanciamento del carico di lavoro 17 La rappresentazione dei workflow I tre livelli di modellazione (Meto-modello, schema, istanza) Gli elementi significativi e il metamodello di processo Esempi di linguaggi: XPDL e BPML 18

I tre livelli di workflow Package Process Data Field 1. Il metamodello Partecipant Application Sales ordering process 2. Lo schema 3. Le istanze 19 Metamodello 20

21 Il formalismo grafico Gli elementi significativi Processi Attività Sottoprocessi Sincronizzazione di Istanze di attività Transizioni Activity Set Parametri Applicazioni Campi Dato Partecipanti Vincoli di transizione Vincoli globali Condizioni Eventi Eccezioni 22

XML Process Definition Language (XPDL) * E il linguaggio definito dalla Workflow Management Coalition (WfMC) * Ha una struttura a grafo basata su processi e attività (nodi) e transizioni (archi) * Il routing è regolato dalle specifiche sulle transizioni * I processi non possono essere innestati, ma ci sono attività di chiamata di sottoprocessi Business Process Modeling Language (BPML) I linguaggi standard * E il linguaggio definito dalla Business Process Management Initiative * Ha una struttura a blocchi analoga a un linguaggio di programmazione basata solo su attività e processi * Il routing è regolato da specifiche attività che possono gestire anche la ciclicità * Gestisce esplicitamente schedulazione e istanze 23 Un esempio in XPDL Le attività A1: Transform Data A2: Check Data A3: Check Order Type A4: Check Credit Subprocess A5: Check Vendor Account A6: Raise Alarm A7: Compose Rejection Message A8: Enter Order A9: Compose Acceptance Message A10: Fill Order Subprocess A11: E-Mail Confirmation A12: Cataloge Order E1: <Completed> E2: <Exception> E3: <Valid Data> E4: <Invalid Data> E5: <PO> Le etichette E6: <Credit> E7: <Accept> E8: <Bad Credit> E9: <Accept> E10: <Over Limit> 24

Un esempio in XPDL <Application Id="checkData"> <FormalParameters> <FormalParameter Id="orderInfo" Index="1" Mode="IN"> <DataType> <DeclaredType Id="Order"/> </DataType> </FormalParameter> <FormalParameter Id="statusOut" Index="2" Mode="OUT"> <DataType> <DeclaredType Le attività Id="OrderStatus"/> </DataType> </FormalParameter> A1: Transform Data A7: Compose Rejection Message </FormalParameters> A2: Check Data A8: Enter Order </Application> A3: Check Order Type A9: Compose Acceptance Message A4: Check Credit Subprocess A10: Fill Order Subprocess A5: Check Vendor Account A11: E-Mail Confirmation A6: Raise Alarm A12: Cataloge Order <Activity Id="1" Name="Check Data"> <Implementation> <Tool Id="checkData" Type="APPLICATION"> <ActualParameters> <ActualParameter>orderInfo</ActualParameter> <ActualParameter>status</ActualParameter> </ActualParameters> </Tool> </Implementation> <TransitionRestrictions> <TransitionRestriction> <Split Type="XOR"> <TransitionRefs> <TransitionRef Id="22"/> <TransitionRef Id="23"/> </TransitionRefs> </Split> </TransitionRestriction> </TransitionRestrictions> <ExtendedAttributes> <ExtendedAttribute Name="Coordinates"> <xyz:coordinates xpos="183" ypos="389"/> </ExtendedAttribute> </ExtendedAttributes> </Activity> E1: <Completed> E2: <Exception> E3: <Valid Data> E4: <Invalid Data> E5: <PO> Le etichette E6: <Credit> E7: <Accept> E8: <Bad Credit> E9: <Accept> E10: <Over Limit> 25 Un esempio in XPDL <Transition Id="22" From="1" To="12"> <Condition>status == "Valid Data"</Condition> </Transition> Le attività Le etichette A1: Transform Data A2: Check Data A3: Check Order Type A4: Check Credit Subprocess A5: Check Vendor Account A6: Raise Alarm A7: Compose Rejection Message A8: Enter Order A9: Compose Acceptance Message A10: Fill Order Subprocess A11: E-Mail Confirmation A12: Cataloge Order E1: <Completed> E2: <Exception> E3: <Valid Data> E4: <Invalid Data> E5: <PO> E6: <Credit> E7: <Accept> E8: <Bad Credit> E9: <Accept> E10: <Over Limit> 26

Un esempio in XPDL <Activity Id="10" Name="Check Credit Subprocess"> <Implementation> <SubFlow Id="3" Execution="SYNCHR"> <ActualParameters/> </SubFlow> </Implementation> <TransitionRestrictions> <TransitionRestriction> <Split Type="XOR"> <TransitionRefs> <TransitionRef Id="26"/> <TransitionRef Id="31"/> </TransitionRefs> </Split> </TransitionRestriction> </TransitionRestrictions> <ExtendedAttributes> <ExtendedAttribute Name="Coordinates"> <xyz:coordinates xpos="381" ypos="535"/> </ExtendedAttribute> </ExtendedAttributes> </Activity> Le attività Le etichette A1: Transform Data A2: Check Data A3: Check Order Type A4: Check Credit Subprocess A5: Check Vendor Account A6: Raise Alarm A7: Compose Rejection Message A8: Enter Order A9: Compose Acceptance Message A10: Fill Order Subprocess A11: E-Mail Confirmation A12: Cataloge Order E1: <Completed> E2: <Exception> E3: <Valid Data> E4: <Invalid Data> E5: <PO> E6: <Credit> E7: <Accept> E8: <Bad Credit> E9: <Accept> E10: <Over Limit> 27 Un esempio in XPDL <Activity Id="33"> <Route/> <TransitionRestrictions> <TransitionRestriction> <Join Type="AND"/> </TransitionRestriction> </TransitionRestrictions> <ExtendedAttributes> <ExtendedAttribute Name="Coordinates"> <xyz:coordinates xpos="725" ypos="391"/> </ExtendedAttribute> </ExtendedAttributes> </Activity> Le attività Le etichette A1: Transform Data A2: Check Data A3: Check Order Type A4: Check Credit Subprocess A5: Check Vendor Account A6: Raise Alarm A7: Compose Rejection Message A8: Enter Order A9: Compose Acceptance Message A10: Fill Order Subprocess A11: E-Mail Confirmation A12: Cataloge Order E1: <Completed> E2: <Exception> E3: <Valid Data> E4: <Invalid Data> E5: <PO> E6: <Credit> E7: <Accept> E8: <Bad Credit> E9: <Accept> E10: <Over Limit> 28

Un esempio in XPDL A4: Check Credit Subprocess Le attività A11: Set Credit Info A12: Get Credit Authorization A13: Set Order Status A10: Fill Order Le attività A14: Ship Order A15: Billing A16: Create Invoice A17: Get Credit Info A18: Charge Credit Card A19: Create Receipt A20: Raise Alarm A21: Cancel Order A22: Email Receipt or Invoice Le etichette E11: <PO> E12: <Credit> E13: <Notify Exception> E14: <Timeout Exception> 29 A4: Check Credit Subprocess Un esempio in XPDL Le attività <WorkflowProcess Id="3" Name="CreditCheck" AccessLevel="PRIVATE"> <ProcessHeader/> <FormalParameters> <FormalParameter Id="accountNumber" Index="1" A11: Set Credit Info A12: Get Credit Authorization A13: Set Order Status Mode="IN"> <DataType> <BasicType Type="INTEGER"/> </DataType> A10: Fill Order </FormalParameter> </FormalParameters> Le attività <DataFields> <DataField Id="creditStatus" A14: Ship IsArray="FALSE"> Order <DataType> A15: Billing </DataType> A16: Create Invoice <Length>0</Length> A17: Get Credit Info A18: Charge Credit Card A19: Create Receipt A20: Raise Alarm A21: Cancel Order A22: Email Receipt or Invoice <WorkflowProcess Id="2" Name="FillOrder" AccessLevel="PRIVATE"> <ProcessHeader/> <FormalParameters> <Participants> <Participant Id="Shipper"> <ParticipantType Type="ROLE"/> <Description>Order shipper</description> </Participant> </Participants> </WorkflowProcess> </DataField> </DataFields> <Participants/> <Applications> </Applications> <Activities> </Activities> <Transitions> </Transitions> </WorkflowProcess> Le etichette E11: <PO> E12: <Credit> E13: <Notify Exception> E14: <Timeout Exception> 30

Un esempio in BPML <action name= receiveorder porttype= orderservice operation= order > <input element= tns:details property= tns:orderdetails /> <input element= tns:timetocomplete property= tns:timelimit /> <output element= tns:orderid > <source property= tns:orderid /> </output> <assign property= tns:orderid xpath= func:newidentifier('tns:orderid') /> </action> <assign name= statusstarted property= status > <value>started</value> </assign> <call process= tns:chargecustomer > <output parameter= tns:details > <source property= tns:details /> </output> </call> <call process= tns:shipproduct > <output parameter= tns:details > <source property= tns:details /> </output> </call> <assign name= statuscomplete property= status > <value>complete</value> </assign> <action name= notifycomplete porttype= orderservice operation= notifycompletion > <output element= tns:orderid > <source property= tns:orderid /> </output> </action> 31 Un esempio in BPML <exception name= cancelrequest > <event activity= receivecancelrequest /> <action name= receivecancelrequest porttype= orderservice operation= cancelrequest correlate= tns:orderid > <input element= tns:orderid property= tns:orderid /> </action> <assign name= statuscanceled property= status > <value>canceled</value> </assign> <compensate process= tns:activitya tns:activityb /> </exception> 32

Un esempio in BPML <faults> <case code= tns:timeout > <assign property= status > <value>timeout</value> </assign> <compensate process= tns:activitya tns:activityb /> </case> <default> <assign name= statusaborted property= status > <value>aborted</value> </assign> <action name= notifyerror porttype= orderservice operation= notifyerror > <output element= tns:orderid > <source property= tns:orderid /> </output> <output element= tns:reason > <source property= inst:fault /> </output> </action> <compensate process= tns:activitya tns:activityb /> </default> </faults> 33 Un esempio in BPML <compensation name= cancelrequest > <event activity= receivecancelrequest /> <action name= receivecancelrequest porttype= orderservice operation= cancelrequest correlate= tns:orderid > <input element= tns:orderid property= tns:orderid / </action> <call process= tns:receivereturn > <output parameter= tns:details > <source property= tns:details /> </output> </call> <compensate process= tns:chargecustomer /> <assign name= statusreturned property= status > <value>returned</value> </assign> </compensation> 34

I sistemi di gestione dei workflow Le architetture I criteri di valutazione L analisi dei prodotti open source 35 Workflow Management Systems Definizione Sistemi capaci di definire, creare e gestire l esecuzione di workflow attraverso l uso di software, coinvolgendo uno o più motori di workflow, e capaci di interpretare definizioni di processo, interagire con i partecipanti del workflow e invocare l uso di applicazioni e strumenti dell information technology." [WfMc] Gestione degli aspetti dinamici 36

Workflow Management System A Workflow Management System (abbreviated WFMS) is a technology in which workflow processes are defined, performed, managed, and monitored through the execution of software whose order of events is driven by a process definition. 37 WfMS: : l architettura l concettuale Sistemi di Gestione dei Workflow (WFMS) 38

WfMS: : l architettura l fisica CLIENT APPLICATIONS DEFINITION TOOLS RUNTIME APPLICATIONS ADMIN. & MONITORING TOOLS Interface 1 Interface 2 Interface 5 API External Database Interface 6 Workflow enactment service Persistency Layer Multiserver synchro Interface 4 Other Server(s) Invoked applications Interface 3 Workflow Engine(s) SERVER 39 40

Workflow Technology There are for types of workflow systems: Production Workflow Administrative Workflow Collaborative Workflow Ad-hoc Workflow 41 Production Workflow Goals: - Executing large number of repetitious tasks - Optimization of production Non-stop manner Typical application - insurance claims processing Man is required only to manage exceptions (work items that fall outside pre-determined process tolerances) 42

Administrative Workflow Well defined procedures related to day-to-day operations: -Purchase orders - Travel requests -Etc Requirements: - Less performance, more stability - Less productivity, more flexibility Handles one or two orders of magnitude less instances/hour than the Production Workflow Systems 43 Collaborative Workflow Focus: The teams working together towards common goals The teams can vary from small project-oriented groups to widely dispersed people with interests in common Typical application: Budget preparation and negotiation 44

Ad-Hoc Workflow Applications where the procedures are not defined in advance and are specific to each case instance, for example: On-the-fly definition of the steps and deadlines that are needed to handle a customer query Quickly and easily creating and reforming process definitions Goal: Maximum of flexibility in areas where throughput and security are not major concerns 45 Workflow Application Segments Trade Press Classification High Value Business processes Repetitive process Production Loan Origination Insurance claims Accounting Collaborative Unique processes Tech doc creation Product brand mgmt. Software development Low value processes Transaction workflow Process management Administrative Ad Hoc Expense reports FYI Routing Purchase approvals Budgeting Review and Approve E - Forms Groupware Source: BIS Strategic Decisions 46

WfMS: : l architettura l fisica Il motore di workflow * Interpreta la definizione del processo * Controlla le istanze del processo * Naviga tra le attività del processo (parallelismo, sequenzialità, cicli, condizioni, dati, deadlines) * Chiama applicazioni esterne * Controlla, amministra e verifica gli obiettivi Le client application * Interagiscono con un worklist handler per la gestione delle risorse Le invoked application * Abilitano il motore di workflow a intraprendere una particolare attività, in genere priva di interfaccia utente 47 WfMS: : criteri di analisi Requisiti funzionali * Multipiattaforma * Multidatabase * Supporto tecnologia web * Tool di modellazione * Strumenti di sviluppo applicazioni * Disponibilità API * Disponibilità interfacce presentazione * Supporto protocolli comunicazione * Supporto agli standard * Scalabilità * Sicurezza * Gestibilità * Robustezza * Diffusione e documentazione Soluzioni implementative * Sistemi basati su database relazionali * Sistemi basati su messaggistica o e-mail 48

Workflow Patterns A process requires the activation of multiple tasks. Refers to the relationship among the tasks of a process. The workflow description languages and the mechanisms to control the enactment of a case must have provisions to support these temporal relationships. In the last decade more than 200 workflow management systems have become available. Despite the efforts of the Workflow Management Coalition (WfMC) a good standard for workflow design is missing. Available systems are really different with respect of basic workflow functionality. Selection processes typically do not address these differences. Thus far more than 30 patterns have been collected. Moreover, the patterns give insight into the basic constructs in operational processes and are a means to characterize processes and to train designes. 49 Categories of patterns Basic Control Flow Patterns Advanced Branching and Synchronization Patterns Structural Patterns Patterns involving Multiple Instances State-based Patterns Cancellation Patterns 50

Basic Control Flow Patterns Pattern 1 (Sequence) Pattern 2 (Parallel Split) Pattern 3 (Synchronization) Pattern 4 (Exclusive Choice) Pattern 5 (Simple Merge) 51 Pattern 1 (Sequence) Description An activity in a workflow process is enabled after the completion of another activity in the same process. Synonyms Sequential routing, serial routing. A B 52

Pattern 2 (Parallel Split) Description A point in the workflow process where a single thread of control splits into multiple threads of control which can be executed in parallel, thus allowing activities to be executed simultaneously or in any order. Synonyms AND-split, parallel routing, fork. B A AND C 53 Pattern 3 (Synchronization) Description A point in the workflow process where multiple parallel subprocesses/activities converge into one single thread of control, thus synchronizing multiple threads. It is an assumption of this pattern that each incoming branch of a synchronizer is executed only once. Synonyms AND-join, rendezvous, synchronizer. B AND D C 54

Pattern 4 (Exclusive Choice) Description A point in the workflow process where, based on a decision or workflow control data, one of several branches is chosen. Synonyms XOR-split, conditional routing, switch, decision. B A XOR C 55 Pattern 5 (Simple Merge) Description A point in the workflow process where two or more alternative branches come together without synchronization. It is an assumption of this pattern that none of the alternative branches is ever executed in parallel. Synonyms XOR-join, asynchronous join, merge. B XOR D C 56

Advanced Branching and Synchronization Patterns Pattern 6 (Multi-choice) Pattern 7 (Synchronizing Merge) Pattern 8 (Multi-merge) Pattern 9 (Discriminator) 57 Pattern 6 (Multi-choice) Description A point in the workflow process where, based on a decision or workflow control data, a number of branches are chosen. Synonyms Conditional routing, selection, OR-split. A x<5 y>7 B C 58

A A B AND XOR XOR y<=7 x>=5 y>7 C x<5 & y>7 B AND C XOR x>=5 & y<=7 x>=5 & y>7 C x<5 & y<=7 B 59 Pattern 7 (Synchronizing Merge) Description A point in the workflow process where multiple paths converge into one single thread. If more than one path is taken, synchronization of the active threads needs to take place. If only one path is taken, the alternative branches should reconverge without synchronization. It is an assumption of this pattern that a branch that has already been activated, cannot be activated again while the merge is still waiting for other branches to complete. Synonyms Synchronizing join. B A OR??? D C 60

Pattern 8 (Multi-merge) Description A point in a workflow process where two or more branches reconverge without synchronization. If more than one branch gets activated, possibly concurrently, the activity following the merge is started for every activation of every incoming branch. B A AND??? D C 61 A A AND AND B C B C Merge D D E D E E 62

Pattern 9 (Discriminator) Description The discriminator is a point in a workflow process that waits for one of the incoming branches to complete before activating the subsequent activity. From that moment on it waits for all remaining branches to complete and ignores them. Once all incoming branches have been triggered, it resets itself so that it can be triggered again (which is important otherwise it could not really be used in the context of a loop). review1 review2 XOR XOR AND Disc. accept reject 63 Structural Patterns Pattern 10 (Arbitrary Cycles) Pattern 11 (Implicit Termination) 64

Pattern 10 (Arbitrary Cycles) Description A point in a workflow process where one or more activities can be done repeatedly. Synonyms Loop, iteration, cycle. 65 Pattern 11 (Implicit Termination) Description A given subprocess should be terminated when there is nothing else to be done. In other words, there are no active activities in the workflow and no other activity can be made active (and at the same time the workflow is not in deadlock). 66

Patterns involving Multiple Instances Pattern 12 (Multiple Instances Without Synchronization) Pattern 13 (Multiple Instances With a Priori Design Time Knowledge) Pattern 14 (Multiple Instances With a Priori Runtime Knowledge) Pattern 15 (Multiple Instances Without a Priori Runtime Knowledge) 67 Pattern 12 (Multiple Instances Without Synchronization) Description Within the context of a single case (i.e., workflow instance) multiple instances of an activity can be created, i.e., there is a facility to spawn off new threads of control. Each of these threads of control is independent of other threads. Moreover, there is no need to synchronize these threads. Synonyms Multi threading without synchronization, Spawn off facility Merge AND C More instances needed B XOR E Task C: Determine if more instances of B are needed No more instances needed 68

Pattern 13 (Multiple Instances With a Priori Design Time Knowledge) Description For one process instance an activity is enabled multiple times. The number of instances of a given activity for a given process instance is known at design time. Once all instances are completed some other activity needs to be started. 69 Pattern 14 (Multiple Instances With a Priori Runtime Knowledge) Description For one case an activity is enabled multiple times. The number of instances of a given activity for a given case varies and may depend on characteristics of the case or availability of resources, but is known at some stage during runtime, before the instances of that activity have to be created. Once all instances are completed some other activity needs to be started. 70

Pattern 15 (Multiple Instances Without a Priori Runtime Knowledge) Description For one case an activity is enabled multiple times. The number of instances of a given activity for a given case is not known during design time, nor is it known at any stage during runtime, before the instances of that activity have to be created. Once all instances are completed some other activity needs to be started. The difference with Pattern 14 is that even while some of the instances are being executed or already completed, new ones can be created. 71 State-based Patterns Pattern 16 (Deferred Choice) Pattern 17 (Interleaved Parallel Routing) Pattern 18 (Milestone) 72

Pattern 16 (Deferred Choice) Description A point in the workflow process where one of several branches is chosen. In contrast to the XOR-split, the choice is not made explicitly (e.g. based on data or a decision) but several alternatives are offered to the environment. However, in contrast to the AND-split, only one of the alternatives is executed. This means that once the environment activates one of the branches the other alternative branches are withdrawn. It is important to note that the choice is delayed until the processing in one of the alternative branches is actually started, i.e. the moment of choice is as late as possible. Synonyms External choice, implicit choice, deferred XOR-split. 73 implicit XOR split Workflow A B c5 A c2 D c7 c1 C c6 explicit XOR split Workflow B CB c3 B c5 A c2 D c7 c1 CC c4 C c6 74

Workflow A A Workflow B A AND E B cancel cancel C XOR Merge B C D Merge D 75 Pattern 17 (Interleaved Parallel Routing) Description A set of activities is executed in an arbitrary order: Each activity in the set is executed, the order is decided at run-time, and no two activities are executed at the same moment (i.e. no two activities are active for the same workflow instance at the same time). Synonyms Unordered sequence. c2 A c5 AND-split AND-join c3 B c5 c6 c8 c1 c4 C c7 mutex mutual exclusion place 76

Pattern 18 (Milestone) Description The enabling of an activity depends on the case being in a specified state, i.e. the activity is only enabled if a certain milestone has been reached which did not expire yet. Synonyms Test arc, deadline, state condition, withdraw message. milestone... B m C...... A... 77 send questionnaire process questionnaire milestone c2 c4 time out c5 archive c3 c11 c1 register process complaint c6 c7 c8 evaluate processing needed c9 NOK check processing OK c10 skip 78

Cancellation Patterns Pattern 19 (Cancel Activity) Pattern 20 (Cancel Case) 79 Pattern 19 (Cancel Activity) Description An enabled activity is disabled, i.e. a thread waiting for the execution of an activity is removed. Synonyms Withdraw activity. 80

Pattern 20 (Cancel Case) Description A case, i.e. workflow instance, is removed completely (i.e., even if parts of the process are instantiated multiple times, all descendants are removed). 81 Other patterns Transactional patterns Groups of tasks commits/aborts Dependencies other than Complete-Release Case-handling patterns Data dependencies Redo/skip roles Inter-workflow patterns Resource allocation patterns Etc. 82