IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Workflow Foundation .NET Discussion :

Windows Workflow Foundation


Sujet :

Windows Workflow Foundation .NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut Windows Workflow Foundation
    Suite à la présentation de la Windows Workflow Foundation, lors des rencontres du Dot User Group (où nous étions assez peu, je suis surpris de ne pas voir plus de monde à un événement gratuit et intéressant), je me pose des questions sur la Windows Workflow Foundation. Et comme convenu lors de la rencontre, je pose ces questions sur ce forum.


    Nous avons vu une présentation d’un workflow séquentiel. J’en suis resté un peu perplexe, car j’ai eu l’impression de me retrouver face à une programmation plus procédurale qu’objet. Il m’a semblé que le workflow est un objet composé d’un ensemble d’étapes (de code, spécifiquement descendant de la classe Activity pour l’essentiel), qui traitent des données, un document, par exemple.

    Par exemple, on fait un test, si le résultat est vrai on passe à l’activité 1 sinon à l’activité 2, et ces activités font progresser le document dans le workflow. Dans les objets de classe Activity, on peut effectivement faire appel à es objets extérieurs, mais comme le faisait remarquer un participant, un peu comme on ferait appel à des fonctions d’une DLL. Là aussi, cela ne m’a pas semblé être très philosophie objet. J’ai vraiment l’impression que l’on a d’un côté du code (le workflow, ses tests et ses activités) et d’un autre les données (le document qui suit le workflow, par exemple).

    Il s’avère que mon projet actuel traite de gestions de documents, dans un cadre clients serveur. On numérise divers types de documents, et les fichiers numérisés vont servir à divers traitement automatiques (comme de l’OCR ou des vérifications) et à divers traitement manuels (de la saisie et des contrôles). Il s’agit bien de workflow. Enfin, de plusieurs workflows, l’application peut aussi bien traiter la saisie des chèques pour une banque que des formulaires complexes avec pièces jointes pour la même banque ou un autre client.

    Le modèle objet est… résolument objet. Les entités métiers coopèrent avec les entités de configuration client pour savoir quel workflow elles ont à suivre, et à chaque étape, en utilisant par exemple des Design Patterns comme State ou Strategy, les objets métiers de type document ou collection de document savent ce qu’ils ont à faire (à quelle étape de leur propre workflow ils en sont) et avec qui le faire (avec quel type de client).

    Je ne vais pas détailler plus le système, mais on peut faire l’analogie avec un système multi-agents, où chaque document ou collection de documents coopère avec d’autres objets métiers pour savoir quoi faire, selon son état.

    Je ne sais pas si je suis clair, mais j’essaie de faire passer le point suivant : dans la présentation que j’ai vue, la responsabilité des traitements était dans les objets activity, et dans l’objet workflow lui-même, le cadre général qui donne le chemin des diverses activités. Les documents (le data du workflow) avaient un rôle passif. Dans le modèle objet de mon application, les documents ne sont pas de simple data. Ils contiennent le code qui leur permet d’agir avec un client automatique ou manuel, ce sont de véritables objets métiers (même s’ils changent ce code à la volée, selon leurs états et leurs paramétrages).

    Dans ce modèle, il n’y a pas vraiment d’objet workflow qui soit instancié et qui agisse sur les documents. Ce sont les documents qui contiennent les règles métiers, et qui les exécutent dans le cadre de d’applications clientes.

    Du coup, j’ai l’impression, quand je regarde la Windows Workflow Foundation, qu’elle n’est pas adaptée à ce que je suis en train de faire.

    Mais j’ai peut être tort. D’abord, on a juste effleuré la surface. Ensuite, Dot Net est un magnifique framework, totalement objet et qui témoigne d’une grande maîtrise de l’orienté objet. Je me dis donc que je dois louper quelque chose quelque part.

    Des commentaires ?


    Richard

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Bonjour,

    Il y a une chose qui me surprend dans ce que vous dîtes:

    Citation Envoyé par Promeneur
    Ce sont les documents qui contiennent les règles métiers, et qui les exécutent dans le cadre de d’applications clientes.
    Pour vous, vos objets métier contiennent vos règles métier ce qui, selon moi (mais ce n'est que mon avis) n'est pas logique.

    Un objet métier doit rester un simple objet.... métier
    Si votre objet est un livre par exemple, cet objet n'a pas à savoir qu'il peut-être lu, acheté, vendu, loué, prété, etc... C'est à votre application (ie votre couche metier) de savoir cela et pas à vos objets métier, qui seront simplement "balladés" au sein de votre code.


    Maintenant, il est tout à fait possible que votre architecture conviennent à votre projet et que cela ne résolve en rien votre problème mais je tenais à souligner ce point qui sera, peut-être, important pour la suite...


    A+



    Tom

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par Thomas Lebrun
    Un objet métier doit rester un simple objet.... métier
    Si votre objet est un livre par exemple, cet objet n'a pas à savoir qu'il peut-être lu, acheté, vendu, loué, prété, etc... C'est à votre application (ie votre couche metier) de savoir cela et pas à vos objets métier, qui seront simplement "balladés" au sein de votre code.
    Je pense que c'est une vue correcte, et qui convient à la majorité des cas.

    En ce qui concerne mon application, le choix est ressemble plus à une architecture multi agents, où chaque objet a un but et sait comment l'accomplir, en coopérant avec les autres. Cela n'empêche pas le système d'être aussi souple qu'une application traditionnelle, dans le sens où les objets métiers se servent d'autres objets pour savoir quoi faire (les objets de configuration) et savoir comment le faire (grâce aux objets qui, d'une certaine manière, correspondent à ce que vous désignez comme "couche métier").

    En fait, mon modèle n’est pas si éloigné de ce vous préconisez. On peut dire que mes objets métiers ne sont que des objets métiers. Au départ, ils n'ont aucune règle. C'est grâce aux objets configurateurs qu'ils acquièrent un état, un workflow, et qu'ils se servent d'objets de la couche métier. Le point important est qu’ils encapsulent leur comportement (comportement défini dans les objets de la couche métier), et que les applications clientes demandent à ces objets métier d’exécuter leur comportement par défaut, correspondant à l’état dans lequel ils se trouvent. Ils pourraient être des livres. Et un objet configurateur pourrait créer un workflow de prêts dans une bibliothèque, à charge pour le développeur de créer les objets de la couche métier dont les objets « livres » auront besoin pour pouvoir exécuter les actions de l’application métier.

    Mais les mêmes objets métiers peuvent changer de comportement, grâce à un autre configurateur, et se servir d’objets d’une couche métier autre, pour une application n’ayant rien à voir avec une bibliothèque, par exemple.

    L’idée est d’avoir une application distribuée dans lesquels les objets métiers puissent en quelque sorte se balader, à la recherche de clients coopératifs, qui se content de fournir un environnement dans lequel ces objets métiers peuvent vivre. Il ya une vague analogie avec des virus .


    Quelque chose que je ne vois pas comment faire avec la WWF .



    edit :

    Peut être sera-ce plus clair si l’on dit que l’application que je développe est plus un framework qu’une application finale. C’est un framework capable d’accueillir n’importe quel type de document pour n’importe quel type de workflow. A ce titre, il ne comporte pas vraiment de couche métier, il se contente de mettre en place une architecture distribuée dans laquelle diverses couches métiers pourront être développées.

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    Comme je l'ai dit, le problème vient peut être du fait que nous avons abordé les workflow séquentiels et non pas les diagrammes à état.

    En effet avec diagramme à état votre objet va passer d'un état à un autre en fonction des conditions du moment. Cela se rapproche déjà plus de votre model.
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Peut-être, en effet. Mais j'aimerais en savoir plus

    edit : je tiens à préciser que la présentation du WWF que l'on nous a faite était très intéressante, et que sans aucun doute les workflows séquentiels sont tout à fait adaptés à bon nombre de traitements.

  6. #6
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Une question : votre modèle fait-il la distinction entre le document physique et le processus de validation de ce document ?

    A la lecture de vos précisions, j'ai l'impression que les données propre au document (comme sa taille, son auteur, le chemin où on le trouve sur le serveur) se retrouvent mélangées avec les données relative au processus dont ce document est l'objet dans votre entreprise.

    C'est une approche possible, mais je préconiserait de décorreller ces deux aspects. En terme architectural, avec un couplage aussi fort, vous perdez en souplesse.
    Exemple : si demain votre processus de validation change complètement, c'est tout votre modèle objet qui est à revoir, et ça peut être très laborieux.

    Si néanmoins vous persistez dans cette approche, je vous suggèrerais de vous pencher sur la programmation orientée aspect, qui permet d'enrichir des objets existants avec des informations supplémentaires liées à un contexte (en l'occurence les informations concernant la validation du document). Non, malheureusement je ne connais pas d'outils pour ça, je ne connais que la théorie.

    Pour en revenir à WF, je vois cet outil comme une surcouche de la programmation traditionnelle. De la même façon que maintenant on sépare les accès à la base de donnée dans une couche basse (de façon à rendre la persistance totalement indépendante et transparent), on va créer un Workflow pour cacher l'implémentation réelle du programme et ne voir que ses grandes étapes.
    On peut parler de "méta-programme".

    On peut justifier cette approche procédurale par le fait qu'un être humain comprend intuitivement cette approche, alors que l'approche objet nécessite un apprentissage. Or les workflow sont là pour permettre au managers (qui sont très mauvais techniques comme chacun sait) de comprendre un programme dans ses grandes lignes.

    Maintenant personnellement, je n'accroche pas à WF. Tout ça me semble trop compliqué, et la démo de l'autre jour m'a bien montré le côté contre-intuitif de la chose (dsl ditch). Je pense qu'il faut vraiment penser aux managers et faire un truc encore plus simple.
    De plus, pourquoi générer du code alors qu'on pourrait utiliser un méta langage ? Le framework sait parfaitement optimiser ce genre de techno.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    En ce qui concerne le modèle objet de mon framework, le couplage est très faible. Les objets « physiques », quand il se baladent sur le réseau dans le cadre du traitement distribué, acquièrent à la volée les workflow et comportement nécessaires à ces workflows. C’est dans ce sens que c’est un framework, il faut programmer ces workflows et comportements pour chaque couple document / client. Dons, de fait, les processus de vaklidation changent sans cesse.

    Mais mon modèle objet n’est pas le sujet pricnipal de ce fil, je ne m’en suis ervi que pour illustrer une différence d’approche avec ce que j’ai compris des WWF.

    Quant à voir le workflow comme un meta langage, pourquoi pas, mais quelle en sont les implications ?

  8. #8
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    A mon sens, le workflow est plus proche du mode de travail telle qu'il se pratique au seins d'une entreprise. Il définit précisément un chemin que va suivre dans ton cas un document mais les traitements reste bien défini à l'extérieur du workflow, soit dans des services (web ou non) pour une approche SOA, soit dans les méthodes de ta classe si tu reste dans une approche strictement objet.

    Donc dans ton cas, le workflow serait quelque chose comme (ici très simple 3 étapes sans condition)

    1. Attendre un événement entrée d'un document: un objet de type "Mondocument" est créé
    2. Faire appel à l'OCR
    3. Faire un traitement en appelant une méthode de ta classe "MonDocument"


    C'est évidement très simplifié. :oops

    Tu reste donc bien en orienté objet ou en SOA tout en utilisant le workflow.
    Bien sur cela pourrait être tout aussi éfficace de manière traditionnel. Le workflow prend vraiment tout son sens pour les long run ou s'il y a plusieurs acteurs.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Hmm peut-être. Mais pour l'instant je n'ai rien vu qui illustre cette conception. Il faut peut-être attendre la sortie d'un bon bouquin sur le WWF.

  10. #10
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Citation Envoyé par Promeneur
    Il faut peut-être attendre la sortie d'un bon bouquin sur le WWF.
    l

    Il en existe déjà pas mal mais en anglais.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par jab
    l

    Il en existe déjà pas mal mais en anglais.
    En as-tu à conseiller ?

  12. #12
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Un spécialiste m'a consillé celui-ci Essential Windows Workflow Foundation

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Points : 149
    Points
    149
    Par défaut
    Merci

  14. #14
    Membre habitué Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Points : 130
    Points
    130
    Par défaut
    Bonjour
    je suis débutante en workflow et je ne sais pas où commencer pour concevoir une application workflow,avec quels outils,etc....
    pouvez vous m'éclairer
    merci

  15. #15
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Nous n'avons pas (à ma connaissance) d'articles sur le Workflow sur Developpez.com mais tu as ce site qui est très bien: http://www.workflow-foundation.com/

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Je confirme l'avis donné plus haut :

    Essential Windows Workflow Foundation est un très bon bouquin qui explique en détail comment fonctionne le WF.

    Pour ce qui est d'avoir des exemples sur comment créer des workflows, des Custom Activity, etc... Je conseille Programming Windows Workflow Foundation (Packt Publishing)

Discussions similaires

  1. composants windows workflow foundation
    Par pross dans le forum Windows Workflow Foundation
    Réponses: 2
    Dernier message: 09/03/2009, 14h52
  2. Nos ressources sur Windows Workflow Foundation
    Par Jérôme Lambert dans le forum Windows Workflow Foundation
    Réponses: 0
    Dernier message: 11/03/2008, 19h50
  3. .net 3.0 visualStudio2005 et Windows Workflow Foundation
    Par sarah38 dans le forum Windows Workflow Foundation
    Réponses: 9
    Dernier message: 18/06/2007, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo