Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoNunzia Guarino Modificato 10 anni fa
1
Pernici Barbara Politecnico di Milano barbara.pernici@polimi.it http://www.elet.polimi.it Master Universitario di II livello in Tecnologia dell'Informazione 13-14 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
2
Sommario Workflow management systems: concetti generali Processi e web-service BPEL Altri approcci WorkFlow Coalition
3
SOA
4
SOA Reminder Transport Medium Find Bind Publish Service Requestor Service Directory Service Provider
5
...in relazione ai Web Services Service Requestor Service Requestor WSDL UDDI SOAP
6
Web Services SOA In Action UDDI, WSDL, SOAP,... Perform Delivery Check Credit Rating Produce Invoice
7
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
8
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
9
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)
10
Workflow Concetti generali
11
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
12
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
13
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, …
14
Processo
15
Gestione ordine Compila BdO Approvazione Stampa report Contabilita approva impiegatoresponsabile direttore direttore Contabilita Excel Word Direttore controlla fine Controllo disponibilita
16
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
17
istanze di processo (o casi) ciascuna con i propri dati e i propri partecipanti Workflow Management System
18
Partecipante di un Workflow esegue il lavoro associato a una particolare istanza di attività lista dei lavori (worklist): compiti assegnati a partecipante risorsa
19
Esempio di schermata (client)
20
Process Instance Worklist Process Definition A Activity B Activity D Activity A Activity C Process Definition
21
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
22
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
23
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
24
Processi e Web service
25
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
26
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
27
BPEL e gli altri
28
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
29
Vista di un web service implementato come processo BPEL portType Web service BPEL process c c
30
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
31
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
32
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
33
Esempio
34
Vista interna
35
Definizione 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/">
36
Servizio LoanApprover Listing 2: Loan Approver WSDL (loanapprover.wsdl) <fault name="loanProcessFault" message="loandef:loanRequestErrorMessage"/>.......
37
Il processo Loan Approval come 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"/> Utilizzato per entrambi i servizi Definizione di max due ruoli per port type
38
Processo loanApprovalProcess
39
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"> <partner name="customer" serviceLinkType="lns:loanApprovalLinkType" myRole="approver"/> <partner name="approver" serviceLinkType="lns:loanApprovalLinkType" partnerRole="approver"/>
40
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">
41
Processi con percorsi non sequenziali
42
Loan Assessor Listing 1. Loan assessor's WSDL snippet (loanassessor.wsdl) <definitions targetNamespace="http://tempuri.org/services/loanassessor" … <fault name="loanProcessFault" message= "loandef:loanRequestErrorMessage"/>.......
43
Nuove definizioni <partner name="assessor" serviceLinkType="lns:riskAssessmentLinkType" partnerRole="assessor"/> <container name="riskAssessment" messageType="asns:riskAssessmentMessage"/>
44
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"/>
45
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'"/>
46
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">
47
Esecuzione
48
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
49
Uso correlation set Secondo receive: Acceptance- receive Se stesso nome e cognome -> stessa istanza di processo
50
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.
51
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)
52
Faults
53
Uso scope e faults
54
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
55
Commenti È fortemente centralizzato Definizione dei processi a priori In alcuni contesti (esempio mobili) difficile implementazione
56
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
57
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
58
WF e WFMS
59
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
60
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.
61
Tipi di processi Collaborativi il sistema supporta linterazione tra piu persone definizione del contesto es: redazione di un testo
62
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
63
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
64
Workflow Classification (C) Leymann 2001
65
Ader 2001 Workflow Classification Ader 2001
66
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:
67
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
68
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)
69
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
70
La soluzioneWorkflow management software Wokflow management software: gestisce attivamente il coodinamento di attività tra persone in processi di business generici
72
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
73
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à
74
WFMS
76
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
78
Activity body Role Duration (average, max) Description Tools, applications
79
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
80
Process execution Evolution of instance of process (case) Evolution of activities in process
81
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)
82
Transizioni di stato per attività Suspended ActiveCompleteInactive Start Suspend / Resume (has Work Item)
83
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
84
Distribution & System Interfaces
85
Product Implementation Model
86
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
87
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
88
Alternative Implementation Scenarios Amongst the main alternatives considered are: centralised or distributed workflow enactment service worklist handler location(s) and distribution mechanism
89
Standard workflow enactment service boundary
90
Alternative client worklist handler implementations
91
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
92
Workflow Reference Model
93
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
94
Process Definition Interchange
95
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_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). XPDL_010522.PDF XPDL.DTD
97
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.
98
Client Application Interface
99
Invoked Application Interface
100
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
101
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
102
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
103
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
104
Modello parallelo sincronizzato I due processi operano sostanzialmente indipendentemente, ma richiedono dei punti di sincronizzazione tra i due processi
105
Workflow interoperability interface
106
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
107
Esempio Wf-XML
108
Esempio Wf-XML (2)
109
Systems Administration & Monitoring Interface
110
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
113
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
114
Types of Data in Workflow Management Systems
115
Bibliografia 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.