Soy parcial, soy uno de los autores de ruote .
variante 1) máquina de estado adjunta a un recurso (documento, pedido, factura, libro, mueble).
variante 2) máquina de estado adjunta a un recurso virtual llamado tarea
variante 3) motor de flujo de trabajo que interpreta las definiciones de flujo de trabajo
Ahora que su pregunta tiene la etiqueta "BPM", podemos ampliarla a "Gestión de procesos de negocio". ¿Cómo ocurre ese tipo de gestión en cada una de las variantes?
En la variante 1, el proceso empresarial (o flujo de trabajo) está disperso en la aplicación. La máquina de estado adjunta al recurso aplica algunos de los aspectos del flujo de trabajo, pero solo los relacionados con el recurso. Puede haber otros recursos con su propia máquina de estado siguiendo el mismo proceso empresarial.
En la variante 2, el flujo de trabajo se puede concentrar en torno al recurso de la tarea y representarlo mediante la máquina de estado en torno a ese recurso.
En la variante 3, el flujo de trabajo se promulga interpretando un recurso llamado definición de flujo de trabajo (o definición de proceso empresarial).
¿Qué sucede cuando cambia el proceso empresarial? ¿Vale la pena tener un motor de flujo de trabajo donde los procesos comerciales sean recursos manejables?
La mayoría de las bibliotecas de máquinas de estado tienen 1 conjunto de estados + transiciones. Los motores de flujo de trabajo son, la mayoría de ellos, intérpretes de definiciones de flujo de trabajo y permiten que varios flujos de trabajo diferentes se ejecuten juntos.
¿Cuál será el costo de cambiar el flujo de trabajo?
Las variantes no se excluyen mutuamente. He visto muchos ejemplos en los que un motor de flujo de trabajo cambia el estado de varios recursos, algunos de ellos protegidos por máquinas de estado.
También utilizo mucho la variante 3 + 2, para tareas humanas: el motor de flujo de trabajo, en algunos puntos cuando se ejecuta una instancia de proceso, entrega una tarea (elemento de trabajo) a un participante humano (la tarea de recursos se crea y se coloca en estado 'listo') .
Puede recorrer un largo camino con la variante 2 solo (la variante del administrador de tareas).
También podríamos mencionar la variante 0), donde no hay máquina de estado, ni motor de flujo de trabajo, y los procesos de negocio están dispersos y / o codificados en la aplicación.
Puede hacer muchas preguntas, pero si no se toma el tiempo para leer las respuestas y no se toma el tiempo para probar y experimentar, no llegará muy lejos y nunca adquirirá el don de cuándo usar esta o aquella herramienta.