94 votes

Cas d'utilisation du moteur de workflow

Je voudrais savoir à propos des problèmes spécifiques vous - le lecteur - ont résolu en utilisant des Moteurs de Workflow et de ce que les bibliothèques/cadres de vous servir si vous n'avez pas à rouler. J'aimerais aussi savoir quand un Moteur de Workflow n'était pas le meilleur choix et la façon dont vous avez choisi quelque chose de simple, comme un TaskList/Réserve de travail/Gestion des Tâches de l'application de type à l'aide de machines à états.

Questions:

  • Quels problèmes avez-vous utilisé des moteurs de workflow pour le résoudre?
  • Quelles librairies/frameworks avez-vous utilisé?
  • Quand est-ce un simple État de la Machine/de la Gestion des Tâches comme système suffira?
  • Bonus: Comment avez/avez-vous faire la distinction entre les Tâches de Gestion et Moteur de Workflow?

Je suis à la recherche d'expériences.

Certaines des ressources que j'ai vérifié:

63voto

bokmann Points 694

Je suis partial, puisque je suis l'auteur principal de StonePath.

J'ai développé des applications de flux de travail pour le Département d'État AMÉRICAIN, le Centre de Genève pour le Déminage Humanitaire, plusieurs fortune 500 clients, et, plus récemment, le Washington DC dans le Système Scolaire Public. Chaque fois que j'ai vu "un moteur de workflow' qui a essayé d'être le maître unique de référence pour les processus métier, j'ai vu une organisation qui lutte contre lui-même pour fonctionner autour de l'outil. Cela peut être dû au fait que ces solutions ont toujours été vendor/axée sur le produit, et puis à la fin avec une équipe tactique de "consultants en permanence l'alimentation de l'application... mais de ce fait, j'ai tendance à réagir négativement quand j'entends les avantages de processus basés sur des outils qui promettent de "centraliser les définitions de flux de travail en un seul endroit et de les rendre reproductibles'.

Cela dit, j'aime beaucoup Ruote - j'ai suivi ce projet depuis un certain temps et j'ai besoin de ce genre de solution, il sera l'outil suivant, je vais être prêt à essayer. StonePath a un objet très différent de ruote - où Ruote est utile de Ruby en général, StonePath est destiné à des Rails, le framework web écrit en Ruby. Où Ruote est sur le long terme des processus d'affaires et leurs définitions associées, StonePath est à propos de la gestion de l'État de flux de travail et des tâches. Franchement, je pense que la distinction de l'extérieur à la recherche peut-être subtile plusieurs fois les mêmes types de processus d'entreprise peut être représenté - l'état-et-tâche basée sur le modèle tend à la carte pour mon modèle mental.

Permettez-moi de décrire les faits saillants de base sur l'état de flux de travail. En bref, imaginez un flux de travail tournant autour de la transformation de quelque chose comme un prêt hypothécaire ou d'un renouvellement de passeport. Comme le document se déplace autour de l'office, il se déplace d'un état à état. Imaginez si vous êtes responsable pour le document, et que votre patron vous a demandé toutes les quelques heures pour une mise à jour de statut, et je voulais une réponse brève... tu ferais dire des choses comme "C'est dans l'entrée des données"... "Nous sommes vérifier les droits du demandeur maintenant"... "nous sommes en attente de l'examen de la qualité"... "Nous sommes fait"... et ainsi de suite. Ce sont les états dans un état de flux de travail. Nous passons de l'état à l'état, via des transitions comme "approuver", "appliquer", rebond", "refuser", et ainsi de suite. ceux-ci tendent à être des verbes d'action. Des choses comme cela sont modélisés tout le temps dans le logiciel en tant que machine d'état.

La prochaine partie de l'état/de la tâche de flux de travail est la création de tâches. Une Tâche est une unité de travail, généralement avec une date d'échéance et des instructions de manipulation, qui se connecte à un élément de travail (la demande de prêt ou de renouvellement de passeport, par exemple), à un des utilisateurs "dans la boîte". Les tâches peuvent se produire en parallèle les uns avec les autres ou sequentialy, et nous permet de créer des tâches automatiquement lorsque nous entrons dans les états, de créer des tâches manuellement que les gens réalisent le travail qui doit être fait, et exiger que les tâches d'achever, avant de nous déplacer vers un nouvel état. L'ensemble de ce type de comportement est en option, et une partie de la définition de flux de travail.

Le trou de lapin peut aller beaucoup plus profond que cela, et j'ai écrit un article à ce sujet dans le Numéro 4 de PragPub, la Pragmatique du Programmeur Magazine. Découvrez le reo lien ci-dessus pour une mise à jour du PDF de cet article.

Dans le travail avec les StonePath depuis quelques mois, j'ai constaté que l'état du modèle basé sur des cartes très bien reposante, les architectures web - en particulier, les tâches et les transitions de l'état correspondent parfaitement imbriquée en ressources. Attendons de voir les futures écrit de moi sur ce sujet.

31voto

jmettraux Points 1458

Je suis partial, je suis l'un des auteurs de ruote.

variante 1) état de la machine attachée à une ressource (document, commande, facture, un livre, un morceau de meubles).

variante 2) état de la machine attachée à une ressource virtuelle nommée une tâche

variante 3) moteur de flux de travail de l'interprétation définitions de flux de travail

Maintenant, votre question est taggés "BPM" nous pouvons être élargi en "gestion des Processus d'Affaires". Comment ce type de gestion se produire dans chaque variante ?

Dans la variante 1, le processus d'affaires (ou de travail) est dispersé dans l'application. La machine d'état associé à la ressource applique certains aspects du flux de travail, mais seulement ceux liés à la ressource. Il y a peut être d'autres ressources avec leur propre machine d'état en suivant le même processus d'affaires.

Dans la variante 2, le flux de travail peut être concentrée autour de la tâche de ressources et de représenté par l'état de la machine autour de cette ressource.

Dans la variante 3, le flux de travail est adopté par l'interprétation d'une ressource appelée une définition de flux de travail (ou des affaires de définition de processus).

Ce qui se passe lorsque le processus de gestion des changements ? Est-ce la peine d'avoir un moteur de flux de travail où les processus d'affaires sont gérables ressources ?

La plupart de la machine d'état des bibliothèques ont 1 set unis + transitions. Les moteurs de Workflow sont, pour la plupart d'entre eux, la définition de flux de travail des interprètes et ils permettent de multiples flux de travail pour courir ensemble.

Quel sera le coût de la modification de la méthode de travail ?

Les variantes ne sont pas mutuellement exclusives. J'ai vu de nombreux exemples où un moteur de workflow modifie l'état de plusieurs ressources, certains d'entre eux gardé par des machines à états.

J'utilise aussi la variante 3 + 2 beaucoup, pour les tâches humaines : le moteur de flux de travail, à certains points lors de l'exécution d'une instance de processus, les mains d'une tâche (workitem) à un homme participant (tâche de ressource est créé et placé dans l'état "prêt").

Vous pouvez aller un long chemin avec la variante 2 seul (le gestionnaire de tâches variante).

On pourrait aussi citer la variante 0), où il n'y a pas de machine à état, pas de moteur de workflow et des processus d'affaires(es) sont dispersés et/ou codé en dur dans l'application.

Vous pouvez poser de nombreuses questions, mais si vous ne prenez pas le temps de lire les réponses et ne prennent pas le temps d'essayer et d'expérimenter, vous n'irez pas très loin, et ne sera jamais acquérir aucun talent pour l'utilisation de ce ou de l'outil.

4voto

Ben Dempsey Points 231

Sur un précédent projet que je travaillais sur j'ai ajouté un peu de type de Flux de travail de règles à un ensemble de Formulaires du Gouvernement dans le Healhcare de l'industrie.

Les formulaires nécessaires à remplir par l'utilisateur final , et selon certaines réponses, d'autres Formes ont été planifiées à pourvoir à une date ultérieure. Il y avait aussi des événements externes qui permettrait d'annuler prévue Formes ou le calendrier de nouveaux.

Flux De L'Échantillon :

Patient Admis -> Planification De L'Évaluation Initiale De La Forme -> Calendrier De La Revue Trimestrielle De La Forme -> Patient Est Mort -> Annuler L'Examen -> Planification De La Décharge Formulaire D'Évaluation

Beaucoup d'autres règles ont été basés sur des choses comme l'âge du Patient, où ils étaient admis etc.

C'était un ASP.NET d'application, les règles ont été essentiellement une table dans la base de données. J'ai ajouté le script, de sorte qu'un script s'exécuter sur pour remplir le Formulaire afin de déterminer quoi faire ensuite. C'était une horrible conception, et aurait été parfait pour un bon moteur de Workflow.

1voto

Otávio Décio Points 44200

J'ai roulé mon propre moteur de workflow pour soutenir progressive de traitement de documents - catalogage, de l'envoi pour le traitement de l'image (nous travaillons avec la rédaction sw), si nécessaire, l'envoi pour validation, puis relâchez-la et enfin l'expédition vers le client. Dans notre cas, nous avons un camion de documents à traiter, donc parfois nous avons besoin pour exécuter chaque service séparément afin de contrôler la diffusion et l'utilisation des ressources. Simple dans son concept mais de haute performance et le traitement distribué nécessaires, et nous avons pu en trouvez pas en rayon des produits qui répondent à la loi pour nous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X