comprendere workflow foundation in windows e in 2007 microsoft office system paolo pialorsi...

35
Comprendere Workflow Comprendere Workflow Foundation Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi Paolo Pialorsi [email protected] [email protected] DevLeap DevLeap http:// http:// www.devleap.com/ www.devleap.com/ Roberto Brunetti Roberto Brunetti [email protected] [email protected] DevLeap DevLeap http:// http:// www.devleap.com/ www.devleap.com/

Upload: milana-di-stefano

Post on 01-May-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Comprendere Workflow Comprendere Workflow FoundationFoundation

In Windows e in 2007 Microsoft Office system

Paolo PialorsiPaolo [email protected]@devleap.it

DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/

Roberto BrunettiRoberto [email protected]@devleap.it

DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/

Page 2: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

AgendaAgendaPerché workflow, perché WFArchitettura di WF

Runtime EngineActivityBase Activity LibraryHosting EnginePersistence e State Management

Tipologie di workflowSequential WorkflowState Machine

Workflow DesignerQ&A

Page 3: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

WinFx (pardon .NET 3.0)WinFx (pardon .NET 3.0)Piattaforma per lo sviluppo di applicazioni di prossima generazione

Windows Communication Foundation

Windows Workflow Foundation

Windows Presentation Foundation

Windows CardSpace (InfoCard)

Page 4: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

.NET 3.0 ad oggi è in Beta.NET 3.0 ad oggi è in BetaQuello che vediamo potrebbe cambiare da qui al rilascio

Nelle slide e demo ci riferiamo a:

Beta2 CTP May 2006 – GoLive!

Page 5: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Workflow in generaleWorkflow in generale

Page 6: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Perché Workflow?Perché Workflow?Per descrivere in modo “umano” i processi di business

Per sganciare i processi dalla loro particolare implementazione

Per dare procedure e regole operative

Perché ognuno faccia il suo lavoroProgrammatori: codice (attività)Esperti di dominio: design dei flussiUtenti: operatività

Page 7: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

System WorkflowSystem WorkflowProcessi di business tra sistemi/macchineUnattended e tipicamente brevi nel tempo come durata del singolo flow

Regole certe, ma modificabili nel tempo, anche da figure “non dev”

Esempi:Gestione notifiche via emailInvio fax notturniEcc.

Page 8: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Human WorkflowHuman WorkflowRichiedono l’interazione con l’utente/operatore

Di solito sono Long RunningSe richiedono transazioni saranno Long Running

Quindi eventuale Compensation

State Management: devono essere Stateful

Coinvolgono diversi ambiti applicativi:Task, Office, Email, ecc.

Esempi:Processi di approvazione documentale (firma singola, firma multipla)Order processing

Page 9: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Perché WF?Perché WF?Framework di gestione dei Workflow a 360°

Design, hosting, monitoring, extension

Pervasivo in tutte le tecnologie MicrosoftWindowsOfficeSharepointBizTalkVisual Studio 2005 (ISV custom apps)Ecc.

Set di funzionalità di base

Programmabile e estendibile con codice .NET

Page 10: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Windows Workflow Windows Workflow FoundationFoundation

Page 11: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Windows Workflow Windows Workflow FoundationFoundation

Per WF un Workflow è:insieme di Activity

eseguite in un Workflow

disegnato con un Visual Designer

ospitato da un’applicazione di Hosting

che esegue il Runtime Engine

appoggiandosi ai Runtime Services

Host Process

WindowsWorkflow Foundation

Runtime Engine

A Workflow

An Activity

Runtime Services

Base Activity Library

Custom Activity Library

Visual Designer

Page 12: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Un semplice WorkflowUn semplice Workflow

Page 13: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

C#

WorkflowWorkflow

public sealed partial class MyWorkflow: SequentialWorkflowActivity{ public MyWorkflow()

{InitializeComponent();

}

private void customCodeActivity_ExecuteCode(object sender, EventArgs e) { Console.WriteLine("Hello World!"); }}

XOML<SequentialWorkflowActivity x:Class="WorkflowConsoleApplication1.MyWorkflow" x:Name="MyWorkflow" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">

<CodeActivity x:Name="customCodeActivity" ExecuteCode="customCodeActivity_ExecuteCode" /></SequentialWorkflowActivity>

Page 14: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

WorkflowWorkflowUn workflow è una classe .NETDeriva da classi base della Runtime Library (System.Workflow.Activities)

SequentialWorkflowActivityStateMachineWorkflowActivity

Può essere definito come:Flow (graficamente)Codice .NETCodice XOML => Compilato con WFC.EXE

Stesso schema di XAML

Page 15: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Un workflow in praticaUn workflow in pratica

Page 16: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

ActivityActivityUnità di esecuzioneSono anch’esse classi .NET

Derivate da System.Workflow.ComponentModel.Activity

Ne esistono N già definite da WFPossiamo definire le nostre Activity custom

2007 Microsoft Office system ne prevede diverse custom

Possono essereBasic Activity: singoli step di un workflowComposite Activity: gruppi di activity (sequence)

Page 17: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Base Activity LibraryBase Activity LibraryCodeDelayIfElseInvokeWebServiceInvokeWorkflowSequenceParallelReplicatorWhileCallExternalMethodecc.

Page 18: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Base ActivityBase Activity

Page 19: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Activity DevelopmentActivity DevelopmentDue possibilità

Usare il designer per comporre ActivityAggregandone altre

Derivare e personalizzare Activity di baseImplementare una classe ex-novo

Derivando da: System.Workflow.ComponentModel.Activity

Possiamo creare class library di Activity

Office Sharepoint Server 20072007 Microsoft Office system

Page 20: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

I Workflow sono ActivityI Workflow sono ActivitySequentialWorkflowActivity

StateMachineWorkflowActivity

Page 21: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Visual DesignersVisual Designers

SharePoint Designer (Web Designer)SharePoint Designer (Web Designer)

ActivityActivityRiutilizzare OOB/deployedRiutilizzare OOB/deployed

FormFormAuto-generated FormAuto-generated Form-ASPX-ASPX

DeploymentDeployment I Workflow vivono sul serverI Workflow vivono sul serverRuntime compilationRuntime compilation

Development ModelDevelopment ModelWizard-based workflow designerWizard-based workflow designer

Visual Studio (Pro-Dev)Visual Studio (Pro-Dev)

ActivityActivityRiutilizzare OOB/deployedRiutilizzare OOB/deployedCreazione di nuove ActivityCreazione di nuove Activity

FormForm Designed FormDesigned Form-InfoPath-InfoPath-ASPX-ASPX

DeploymentDeploymentGenerazione di packageGenerazione di packageConsole Administrator installabileConsole Administrator installabile

DevelopmentDevelopment ModelModelVisual workflow designerVisual workflow designer

Page 22: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Tipi di WorkflowTipi di Workflow

Page 23: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Sequential WorkflowSequential WorkflowSequenze di eventi noti

Temporalmente consequenziali

Il processo guida il flusso

Tipicamente non richiedono “human interaction”

Sono i workflow più semplici

A1

A3A2

A4

Page 24: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Sequential WorkflowSequential Workflow

Page 25: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

State Machine WorkflowState Machine WorkflowGuidati da eventi

InterniEsterni

La sequenza di eventi non è nota a prioriI percorsi di esecuzione sono variabiliPuò assumere un solo stato per voltaPuò saltare “dinamicamente” nel flussoOgni evento scatena una sequenza assimilabile ad un sequential workflow

S1S2

S3

S4

Page 26: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Quando usarliQuando usarliQuando i processi di business sono

Molto variabiliMolto complessiDifficilmente schematizzabili in sequenze

Se le “human interaction” sono frequenti

Quando dobbiamo gestire eventi esterni

Comunicazioni dall’utenteComunicazioni da applicazioni esterne

Page 27: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

State Machine State Machine WorkflowWorkflow

Page 28: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Workflow HostingWorkflow Hosting

Page 29: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Workflow HostingWorkflow HostingUn workflow deve essere ospitato da un processo

Windows ApplicationASP.NET ApplicationSharePointOfficeServizi Windows

L’host si appoggia a WorkflowRuntimeIl workflow “parla” con l’host tramite eventi e interfacce

Page 30: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

WorkflowRuntimeWorkflowRuntime

C#using(WorkflowRuntime workflowRuntime = new WorkflowRuntime()){ AutoResetEvent waitHandle = new AutoResetEvent(false); workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) {waitHandle.Set();}; workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e) { Console.WriteLine(e.Exception.Message); waitHandle.Set(); };

WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(WorkflowConsoleApplication1.MyWorkflow)); instance.Start();

waitHandle.WaitOne();}

Page 31: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Ma non c’era già BizTalk?!Ma non c’era già BizTalk?!Sì ma BizTalk è più orientato ai “Business Processes”

BizTalk è orientato alla gestione dei messaggi/fileMolto XML/Service Oriented

BizTalk prevede connettori versoERP vari (JDE, PeopleSoft, SAP, ecc.)Database serversMSMQEcc.

La prossima versione di BizTalk dovrebbe utilizzare WF per la parte di design

Page 32: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Ma non c’era già SSIS?!Ma non c’era già SSIS?!Si ma SSIS è più orientato al trasferimento di Dati

Da una sorgente a una destinazioneCon eventuale trasformazione

Gira “fuori” dal contesto di una applicazione .NET

WF gira “dentro” applicazione

SSIS richiede SQL ServerWF gestisce i workflow (punto)

Page 33: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Ulteriori Ulteriori approfondimenti…approfondimenti…

http://www.microsoft.com/italy/msdn/http://msdn.microsoft.com/office/future/http://www.netfx3.com/http://wf.netfx3.com/

http://www.devleap.it/

Corso DevLeap su .NET 3.0 (WinFx)Personalizzato

Page 34: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

Grazie!Grazie!Domande?

Compilate il form di valutazione…

Page 35: Comprendere Workflow Foundation In Windows e in 2007 Microsoft Office system Paolo Pialorsi paolo@devleap.itDevLeap Roberto Brunetti

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.