in

DotNetSide

Dot Net South Italy Developers User Group

Latest post 17 Jan 2007 18:15 by Anonymous. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 16 Jan 2007 9:15

    • anx721
    • Top 50 Contributor
    • Joined on 12 Jan 2007
    • Posts 9
    • Points 125

    WWF è adatto per questo tipo di flusso?

    Salve,

    questo post ha lo scopo di chiarire se il Windows Workflow Foundation è adattto allo sviluppo di un'applicazione basata su un modello di workflow esposto qui di seguito. Il principale dubbio deriva dal fatto che tutti gli esempi che ho visto sono sempre fatti in termini di applicazioni standalone, a console o con interfaccia grafica, in cui le attività sembrano essere delle porzioni di codice (metodi) eseguite al momento opportuno in base agli eventi che arrivano e in base alla sequenza stabilita. Lo scenario che ho in mente io è invece web-oriented, con una o più applicazioni web che permettono di svolgere delle attività, che devono essere gestite secondo uno specifico workflow. Quello che mi riesce più difficile da capire è proprio come si cala il WWF in un contesto web, che peraltro dovrebbe essere il contesto naturale per questo tipo di applicazioni. Se in un'applicazione standalone  quando l'utente digita dei dati nella console viene eseguito un certo metodo associato a quell'evento, in un contesto web le cose sono diverse. Le azioni degli utenti arrivano come richieste http e l'attività da eseguire possono essere espletate tramite applicazioni web.

    Andando più nel dettaglio,la mia applicazione deve essere in grado di gestire delle richieste che vengono avanzate presso un'amministrazione, gestendo il flusso delle attività; quindi uno scenario comune è ad esempio questo:

    - un utente apre una richiesta

    - un operatore verifica alcuni requisiti formali, se la richiesta è a posto prosegue nel suo iter, altrimenti è rifiutata

    - un supervisore esamina la richiesta e nomina uno o più operatori incaricati che dovranno esaminare la richiesta 

    - la richiesta passa attraverso una serie di valutazioni, ad esempio una valutazione tecnica, una valutazione economica, una valutazione di fattibilità. Ciascuna fase di valutazione è eseguita da uno o più operatori addetti, ed alcune fasi di valutazione possono essere eseguite in parallelo

    - ad ogni fase un operatore può richiedere ulteriori informazioni all'utente che ha presentato la richiesta o all'operatore che ha operato prima di lui

    - alla fine in base alle valutazioni effettuate il supervisore accetta o meno la richiesta.

     

    Come si vede c'è una specifica fortemente orientata al flusso delle operazioni. Le attività singole sono più o meno sempre le stesse, ma il sistema deve essere in grado di gestire procedure e iter diversi a seconda del tipo delle richieste avanzate, quindi è utile poter rappresentare il flusso delle operazioni da seguire con file di configurazione per ogni tipo di procedura. Ciò che il motore di worklow dovrebbe essere in grado di fare nel mio caso é seguire l'avanzamento delle richieste e presentare ad un utente del sistema la lista delle operazioni sospese che può eseguire. Ad esempio, per un operatore che è stato assegnato ad una certa richiesta per la valutazione economica deve esserci nel menu delle attività pendenti questa voce. Quando l'operatore clicca su quella voce esegue l'attività corrispondente, magari utilizzando un'apposita applicazione web, e quando ha finito la sua valutazione l'applicazione comunica al motore che l'attività in questione è terminata. Da quel momento quell'attività scompare dalla lista delle attività in sospeso per l'operatore e magari compare presso uno o più operatori che dovranno eseguire la valutazione successiva. Questo modello di workflow si rifà a quello definito dalla Workflow Management  Coalition (http://www.wfmc.org/) e utilizzato da vari motori di workflow, tra cui OpenWFE (http://www.openwfe.org).

    Oltre al parere in merito all'utilizzo di WWF per questo scenario, vorrei sapere come il WWF si cala in un contesto web, in che modo sono rappresentate le attività in questo caso e come interagisce con le altre applicazioni.

     Grazie e ciao. 

     

     

    • Post Points: 20
  • 16 Jan 2007 11:36 In reply to

    Re: WWF è adatto per questo tipo di flusso?

    anx721:

    Salve,

    questo post ha lo scopo di chiarire se il Windows Workflow Foundation è adattto allo sviluppo di un'applicazione basata su un modello di workflow esposto qui di seguito. Il principale dubbio deriva dal fatto che tutti gli esempi che ho visto sono sempre fatti in termini di applicazioni standalone, a console o con interfaccia grafica, in cui le attività sembrano essere delle porzioni di codice (metodi) eseguite al momento opportuno in base agli eventi che arrivano e in base alla sequenza stabilita. Lo scenario che ho in mente io è invece web-oriented, con una o più applicazioni web che permettono di svolgere delle attività, che devono essere gestite secondo uno specifico workflow. Quello che mi riesce più difficile da capire è proprio come si cala il WWF in un contesto web, che peraltro dovrebbe essere il contesto naturale per questo tipo di applicazioni

    Ciao anx721 e benvenuto.
    Dunque....cerco di chiarire innanzitutto una cosa fondamentale prendendo spunto da questa tua frase: "cala il WWF in un contesto web, che peraltro dovrebbe essere il contesto naturale per questo tipo di applicazioni". Il contenso più naturale per Windows Workflow Foundation è la business logic che, by design, *dovrebbe* essere accessibile (leggasi "consumabile") da qualsiasi tipo di applicazione, sia essa Windows, WEB, WPF, Servizio web etc. Gli esempi che trovi generalmente in giro mostrano l'uso di un Workflow direttamente dall'applicazione per un motivi semplicissimo: sono esempi su Workflow e che devono descriverne l'uso e le caratteristiche. Se ci si concentrasse sull'eposizione di un Workflow in una logica di business, si entrerebbe in dettagli che poco hanno a che fare con Workflow stesso.

    anx721:

    Se in un'applicazione standalone  quando l'utente digita dei dati nella console viene eseguito un certo metodo associato a quell'evento, in un contesto web le cose sono diverse. Le azioni degli utenti arrivano come richieste http e l'attività da eseguire possono essere espletate tramite applicazioni web.

    Se guardi la cosa sotto un aspetto più architetturale, in qualsiasi tipo di applicazione le "azioni" di cui parli sono sostanzialmente delle richieste fatte da un oggetto ad un altro. L'http è solo un mezzo. 

    anx721:

    Andando più nel dettaglio,la mia applicazione deve essere in grado di gestire delle richieste che vengono avanzate presso un'amministrazione, gestendo il flusso delle attività; quindi uno scenario comune è ad esempio questo:

    - un utente apre una richiesta

    - un operatore verifica alcuni requisiti formali, se la richiesta è a posto prosegue nel suo iter, altrimenti è rifiutata

    - un supervisore esamina la richiesta e nomina uno o più operatori incaricati che dovranno esaminare la richiesta 

    - la richiesta passa attraverso una serie di valutazioni, ad esempio una valutazione tecnica, una valutazione economica, una valutazione di fattibilità. Ciascuna fase di valutazione è eseguita da uno o più operatori addetti, ed alcune fasi di valutazione possono essere eseguite in parallelo

    - ad ogni fase un operatore può richiedere ulteriori informazioni all'utente che ha presentato la richiesta o all'operatore che ha operato prima di lui

    - alla fine in base alle valutazioni effettuate il supervisore accetta o meno la richiesta.

    Workflow è perfetto Smile.

    anx721:

    Come si vede c'è una specifica fortemente orientata al flusso delle operazioni. Le attività singole sono più o meno sempre le stesse, ma il sistema deve essere in grado di gestire procedure e iter diversi a seconda del tipo delle richieste avanzate, quindi è utile poter rappresentare il flusso delle operazioni da seguire con file di configurazione per ogni tipo di procedura. Ciò che il motore di worklow dovrebbe essere in grado di fare nel mio caso é seguire l'avanzamento delle richieste e presentare ad un utente del sistema la lista delle operazioni sospese che può eseguire. Ad esempio, per un operatore che è stato assegnato ad una certa richiesta per la valutazione economica deve esserci nel menu delle attività pendenti questa voce. Quando l'operatore clicca su quella voce esegue l'attività corrispondente, magari utilizzando un'apposita applicazione web, e quando ha finito la sua valutazione l'applicazione comunica al motore che l'attività in questione è terminata. Da quel momento quell'attività scompare dalla lista delle attività in sospeso per l'operatore e magari compare presso uno o più operatori che dovranno eseguire la valutazione successiva. Questo modello di workflow si rifà a quello definito dalla Workflow Management  Coalition (http://www.wfmc.org/) e utilizzato da vari motori di workflow, tra cui OpenWFE (http://www.openwfe.org).

    Oltre al parere in merito all'utilizzo di WWF per questo scenario, vorrei sapere come il WWF si cala in un contesto web, in che modo sono rappresentate le attività in questo caso e come interagisce con le altre applicazioni.

     

    A questo proposito ti consiglio di dare uno sguardo a questi 2 esempi:

    • http://www.dotnetside.org/files/folders/workflow_communication/entry664.aspx è un esempio che ho mostrato nel primo workshop .netSide in cui ho mostrato come gestire un sistema di richieste di assistenza via Workflow. Nell'applicazione trovi 2 applicazioni (Windows) ed il workflow. Quello che fa questa applicazione è creare un ticket da una applicazione A (l'applicazione del call cententer per capirci) e gestire il ticket da una applicazione B (in tecnico) usando sempre lo stesso workflow.
    • http://www.dotnetside.org/files/folders/net_present__future_26_ottobre/category1152.aspx qui invece trovi l'applicazione realizzata da me e William per il workshop .netSide di Ottobre (la sessione era intitolata Real World Workflow). A differenza dell'esempio precedente, qui lavoriamo con 2 applicazioni web per la gestione di un e-commerce, esponendo il servizio di gestione degli ordini con WCF (Windows Communication Foundation).

    Mettendo insieme i 2 esempi, dovresti riuscire ad avere un quadro un po' più chiaro e, se hai atri dubbi, non esitare a chiedere Smile

    anx721:

     Grazie e ciao. 

    Ciao Smile

    • Post Points: 20
  • 16 Jan 2007 16:50 In reply to

    • Tiziana
    • Top 10 Contributor
      Female
    • Joined on 20 Mar 2006
    • Bari
    • Posts 588
    • Points 10,060

    Re: WWF è adatto per questo tipo di flusso?

    Ciao anx721,

    a conferma del fatto che uno scenario web-oriented sia assolutamente vicino a Windows Workflow Foundation, ti segnalo il rilascio del progetto Web Client Software Factory che ha l'obiettivo di  fornire delle guide sull'architettura di applicazioni web così da facilitare la creazione di Composite Web Clients utilizzando tecnologie Microsoft e soprattutto ASP.NET 2.0 e Windows Workflow Foundation. Credo che possa essere, in questo caso, un'ottimo approfondimento.

    Ciao

    Tiziana Loporchio
    Software Solutions Architect

    Microsoft Certified Trainer
    Microsoft Certified Professional Developer
    My Blog - .NetSide Team Member

    • Post Points: 20
  • 17 Jan 2007 17:56 In reply to

    • anx721
    • Top 50 Contributor
    • Joined on 12 Jan 2007
    • Posts 9
    • Points 125

    Re: WWF è adatto per questo tipo di flusso?

    grazie per le risposte. Mi chiedevo se online  è possibile reperire della documentazione su esempi di workflow in ambito web. Windows communication foundation è un elemento necessario in questo casoo se ne può fare a meno?
    • Post Points: 20
  • 17 Jan 2007 18:15 In reply to

    Re: WWF è adatto per questo tipo di flusso?

    anx721:
    grazie per le risposte.

    Prego Smile

    anx721:
    Mi chiedevo se online  è possibile reperire della documentazione su esempi di workflow in ambito web.

    Il punto di partenza è questo: http://wf.netfx3.com/.
    Nell'SDK (che ti trovi installato quando installi il .NET 3.0) trovi altri esempi molto interessanti a riguardo. 

    anx721:
    Windows communication foundation è un elemento necessario in questo casoo se ne può fare a meno?

    La risposta purtroppo è: dipende. A naso, potresti farne a meno anche se, superato lo scoglio iniziale, potrebbe semplificarti la vita nell'esporre il tuo WF.

    Ciao

    • Post Points: 5
Page 1 of 1 (5 items)
Powered by Community Server (Commercial Edition), by Telligent Systems