Ich bin voreingenommen, ich bin einer der Autoren von Ruote .
Variante 1) Zustandsmaschine, die an eine Ressource angehängt ist (Dokument, Bestellung, Rechnung, Buch, Möbelstück).
Variante 2) Zustandsmaschine, die an eine virtuelle Ressource namens Task angeschlossen ist
Variante 3) Workflow-Engine zur Interpretation von Workflow-Definitionen
Jetzt ist Ihre Frage mit "BPM" gekennzeichnet. Wir können sie in "Geschäftsprozessmanagement" erweitern. Wie erfolgt diese Art der Verwaltung in jeder der Varianten?
In Variante 1 ist der Geschäftsprozess (oder Workflow) in der Anwendung verteilt. Die an die Ressource angehängte Zustandsmaschine erzwingt einige Aspekte des Workflows, jedoch nur diejenigen, die sich auf die Ressource beziehen. Möglicherweise gibt es andere Ressourcen mit einer eigenen Zustandsmaschine, die demselben Geschäftsprozess folgen.
In Variante 2 kann der Workflow auf die Aufgabenressource konzentriert und von der Zustandsmaschine um diese Ressource herum dargestellt werden.
In Variante 3 wird der Workflow durch Interpretieren einer Ressource ausgeführt, die als Workflow-Definition (oder Geschäftsprozessdefinition) bezeichnet wird.
Was passiert, wenn sich der Geschäftsprozess ändert? Lohnt es sich, eine Workflow-Engine zu haben, in der Geschäftsprozesse überschaubare Ressourcen sind?
Die meisten Zustandsmaschinenbibliotheken haben 1 eingestellte Zustände + Übergänge. Workflow-Engines sind in den meisten Fällen Workflow-Definitionsinterpreter und ermöglichen die gleichzeitige Ausführung mehrerer verschiedener Workflows.
Was kostet die Änderung des Workflows?
Die Varianten schließen sich nicht gegenseitig aus. Ich habe viele Beispiele gesehen, bei denen eine Workflow-Engine den Status mehrerer Ressourcen ändert, von denen einige von Statusmaschinen geschützt werden.
Ich verwende Variante 3 + 2 auch häufig für menschliche Aufgaben: Die Workflow-Engine übergibt an einigen Stellen beim Ausführen einer Prozessinstanz eine Aufgabe (Workitem) an einen menschlichen Teilnehmer (Ressourcenaufgabe wird erstellt und in den Status "Bereit" versetzt). .
Sie können allein mit Variante 2 (der Task-Manager-Variante) einen langen Weg gehen.
Wir könnten auch Variante 0) erwähnen, bei der es keine Zustandsmaschine, keine Workflow-Engine gibt und die Geschäftsprozesse in der Anwendung verstreut und / oder fest codiert sind.
Sie können viele Fragen stellen, aber wenn Sie sich nicht die Zeit nehmen, die Antworten zu lesen, und sich nicht die Zeit nehmen, sie auszuprobieren und zu experimentieren, werden Sie nicht sehr weit gehen und nie ein Gespür dafür bekommen, wann Sie sie verwenden sollen dieses oder jenes Werkzeug.