私は偏っています。私はruoteの作成者の 1 人です。
バリアント 1) リソース (ドキュメント、注文、請求書、本、家具) にアタッチされたステート マシン。
バリアント 2) タスクという名前の仮想リソースに接続されたステート マシン
バリアント 3) ワークフロー定義を解釈するワークフロー エンジン
これで、質問に「BPM」というタグが付けられ、「ビジネス プロセス管理」に拡張できるようになりました。この種の管理は、各バリアントでどのように行われますか?
バリエーション 1 では、ビジネス プロセス (またはワークフロー) がアプリケーション内に散らばっています。リソースに接続されたステート マシンは、ワークフローのいくつかの側面を強制しますが、リソースに関連する側面のみを強制します。同じビジネス プロセスに従って、独自のステート マシンを持つ他のリソースが存在する場合があります。
バリアント 2 では、ワークフローをタスク リソースに集中させ、そのリソースのステート マシンで表すことができます。
バリアント 3 では、ワークフローは、ワークフロー定義 (またはビジネス プロセス定義) と呼ばれるリソースを解釈することによって制定されます。
ビジネス プロセスが変更されるとどうなりますか? ビジネス プロセスが管理可能なリソースであるワークフロー エンジンを使用する価値はありますか?
ほとんどのステート マシン ライブラリには、1 つのセット ステート + トランジションがあります。ワークフロー エンジンは、そのほとんどがワークフロー定義インタープリターであり、複数の異なるワークフローを一緒に実行できます。
ワークフローの変更にかかる費用は?
バリアントは相互に排他的ではありません。ワークフロー エンジンが複数のリソースの状態を変更する例を数多く見てきましたが、その一部はステート マシンによって保護されています。
私はまた、バリアント 3 + 2 をヒューマン タスクによく使用します。ワークフロー エンジンは、プロセス インスタンスを実行しているいくつかの時点で、タスク (作業項目) を人間の参加者に渡します (リソース タスクが作成され、状態が「準備完了」になります)。 .
バリアント 2 (タスク マネージャーのバリアント) だけで長い道のりを歩むことができます。
また、バリアント 0) について言及することもできます。この場合、ステート マシンもワークフロー エンジンも存在せず、ビジネス プロセスがアプリケーションに散らばっていたり、ハードコーディングされていたりします。
多くの質問をすることができますが、答えを読む時間を取らず、試して実験する時間を取らないと、それほど遠くまで行くことはなく、いつ使用するかについての才能を獲得することは決してありません.これまたはそのツール。