Je suis partial, je suis l'un des auteurs de ruote .
variante 1) machine d'état attachée à une ressource (document, commande, facture, livre, meuble).
variante 2) machine à états attachée à une ressource virtuelle nommée une tâche
variante 3) moteur de workflow interprétant les définitions de workflow
Maintenant, votre question est étiquetée "BPM", nous pouvons être étendue à "Gestion des processus d'affaires". Comment ce genre de gestion se produit-il dans chacune des variantes?
Dans la variante 1, le processus métier (ou workflow) est dispersé dans l'application. La machine à états attachée à la ressource applique certains aspects du flux de travail, mais uniquement ceux liés à la ressource. Il peut y avoir d'autres ressources avec leur propre machine d'état suivant le même processus métier.
Dans la variante 2, le workflow peut être concentré autour de la ressource de tâche et représenté par la machine à états autour de cette ressource.
Dans la variante 3, le workflow est exécuté en interprétant une ressource appelée définition de workflow (ou définition de processus métier).
Que se passe-t-il lorsque le processus métier change? Vaut-il la peine d'avoir un moteur de workflow où les processus métier sont des ressources gérables?
La plupart des bibliothèques de machines d'état ont 1 ensemble d'états + transitions. Les moteurs de workflow sont, pour la plupart, des interpréteurs de définition de workflow et ils permettent à plusieurs workflows différents de s'exécuter ensemble.
Quel sera le coût de la modification du flux de travail?
Les variantes ne sont pas mutuellement exclusives. J'ai vu de nombreux exemples où un moteur de flux de travail modifie l'état de plusieurs ressources dont certaines sont gardées par des machines à états.
J'utilise également beaucoup la variante 3 + 2, pour les tâches humaines: le moteur de flux de travail, à certains moments lors de l'exécution d'une instance de processus, confie une tâche (élément de travail) à un participant humain (la tâche de ressource est créée et placée dans l'état `` prêt '') .
Vous pouvez aller très loin avec la variante 2 seule (la variante du gestionnaire de tâches).
Nous pourrions également mentionner la variante 0), où il n'y a pas de machine à états, pas de moteur de workflow, et le ou les processus métier sont dispersés et / ou codés 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 que vous ne prenez pas le temps d'essayer et d'expérimenter, vous n'irez pas très loin et n'acquérirez jamais le flair pour quand utiliser tel ou tel outil.