web-dev-qa-db-ja.com

ワークフローエンジンを使用する必要がありますか?

PHPアプリケーションにいくつかの新機能を追加する必要があります。これは、注文のステップに従うことです。プロセスはいくつかの注文を作成し、注文は確認に行き、承認された場合はプロバイダー、後でプロバイダーが注文を配信できることを確認し、プロバイダーにリクエストが送信されます。

すべてのステップが完了したら通知を送信して登録する必要があります。また、いくつかのステップには推定時間があり、その時間が経過した場合は、通知を送信してすべての人に遅延を知らせる必要があります。

プロセスが開始すると、事前定義された一連のステップがありますが、途中でユーザーは新しいサブステップを作成し、将来のステップを削除またはスキップできるはずです。

ワークフローエンジンを使用する必要がありますか?どちらを提案しますか(無料オープンソースのみ)?

2
Fernando

プロセス、タスクの割り当て、エスカレーション、通知に従うなど、ワークフローエンジンが通常提供するいくつかの要件の概要を説明しました。この観点からは、実際のワークフローエンジンを使用することは非常に理にかなっています。 実際にがあなたの場合にそれを使用することが有益であると証明するかどうか私に質問させる2つの領域があります:

  • ワークフローエンジンは、学習するために多大な時間を費やす可能性があります。また、アプリケーションが実行される環境も複雑になる傾向があります。 If要件が「1回限り」であり、将来、同様のワークフロー関連機能を実装する可能性が低い場合は、1つを使用して再検討することをお勧めします。例えば。 1つの画面で添付ファイルをアップロードすることだけが目的の場合は、本格的なドキュメント管理システムを使用しません。ここでも同様のことが当てはまります。通常は「自分でロールする」ことはお勧めしませんが、この場合、私はそれほど躊躇しません。私は過去にあなたの正確な要件に直面し、自分で書くことを選びました(非常識な締め切りのため、質問しないでください)。これは大きな成功でした。
  • ユーザーがプロセスを変更することに関するあなたの要件、私はいくつかの問題があります。第一に、それは時間の経過とともに大きくなる、希望に満ちた要件の一種です。 「ああ、忘れました。ユーザーは追加のステップを実行するユーザーを指定する必要があります。そうですね、それは社外の誰かでもかまいません。そうですね、対象の5つのうち少なくとも2つを指定できる必要があります。また、ワークフローは複雑な野獣である可能性があり、実際のserがワークフローを壊さずに変更することを許可し、迅速かつ直感的な方法で行うことは通常困難です。 ユーザーへ。それを超えると、多くのワークフローエンジンはプロセスの動的な変更を簡単に許可しないため、「ユーザー定義のステップがなくなるまでこの一般的なステップを繰り返す」などの固定ロジックに制限される場合があります。私の経験はオープンソースエンジンの外にありますが、これは私が長年取り組んできた3つまたは4つの独自仕様のエンジンに実装するのが難しい要件でした。

要約すると、ユーザーの変更可能性を除いて、要件はワークフローエンジンにかなり適しています。私の提案:必要なすべてを提供するエンジンがあるかどうかを調べ(おそらく誰か他の人が詳細を提案できる)、それを使っていくつかのR&Dを行います。そうすれば、オプションを比較検討するのに適した位置になります。

編集:申し訳ありませんが、その投稿を行ったときに私の接続がダウンし、切り捨てられたようです。私は今それを回復しました。

3
Daniel B