La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Pernici Barbara Politecnico di Milano Master Universitario di II livello in Tecnologia dell'Informazione.

Presentazioni simili


Presentazione sul tema: "Pernici Barbara Politecnico di Milano Master Universitario di II livello in Tecnologia dell'Informazione."— Transcript della presentazione:

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

71

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

75

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

77

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

96

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

111

112

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


Scaricare ppt "Pernici Barbara Politecnico di Milano Master Universitario di II livello in Tecnologia dell'Informazione."

Presentazioni simili


Annunci Google