40

新しいワークフローエンジンを作成するか、既存のBPMエンジン(jBPM 5、Activiti 5)を使用する方がよいでしょうか。

私のアプリケーションはWebベースのアプリケーションであり、パフォーマンスが重要です。私の疑問は、jBPM / Activityを使用することが、単純なワークフローエンジンを作成する場合と比較してパフォーマンスのオーバーヘッドになるかどうかです。

自己実装を行うと、ワークフローの視覚化ができなくなります。パフォーマンスのためにそれは交換することができます。

4

11 に答える 11

36

すでにここに回答を投稿した人たち、またはその回答の一部に同意します :P ですが、ここで私が現在働いている会社で同様の課題があったため、経験に基づいて自由に意見を追加しました.

プロダクション関連のアプリケーションで jBPM ワークフロー エンジンを使用していたアプリケーションを移行する必要がありました。アプリケーションの維持には多くの課題があったため、より良いオプションが市場にあるかどうかを確認することにしました。すでに述べたリストにたどり着きました:

  • Activiti(プロトタイプで試す予定)
  • ボニータ(試作品で試す予定)
  • jBPM(過去の経験により失格)

jBPM を使用した最初の経験は最高ではなかったため、jBPM を使用しないことに決めました。これに加えて、リリースされたすべての新しいバージョンで下位互換性が失われました。

最後に、私たちが使用したソリューションは、アクティビティとプロセスを抽象化したアノテーションに基づいて、軽量のワークフロー エンジンを開発することでした。それは多かれ少なかれ、その仕事をしたステートマシンでした.

ワークフロー エンジンについて議論する際に言及する価値のあるもう 1 つのポイントは、それらがバッキング DB に依存しているという事実です。特にバージョン間の移行中のオーバーヘッドのビット。

したがって、ワークフロー エンジンを使用する資格があるのは、ワークフロー エンジンから本当に恩恵を受けるアプリケーションのみであり、アプリケーションのワークフローのほとんどがワークフロー自体を中心に回転している場合に限られます。

ステート マシンに関しては、ステート マシン Java フレームワークのかなり完全なコレクションを含むこの応答を見つけました。

お役に立てれば。

于 2013-02-12T09:42:54.237 に答える
20

これは実際には要件によって異なります。まず、ワークフロー エンジンが本当に必要かどうかを確認します (このソースまたは他のソース)。本当に必要でない限り、おそらく避けるべきです。

ワークフロー エンジンを提供するものが本当に必要な場合は、既に構築されているものを選びます。jbpm や activiti を使用する人は、ワークフロー エンジンの構築に関してあなたよりもはるかに多くの経験を積んでいるため、パフォーマンスを向上させるために既に調整されている可能性があります。

于 2013-01-23T12:36:27.663 に答える
2

問題は、ワークフロー エンジンを求めるときに本当に達成したいことです。

ワークフロー エンジンを使用して達成したい一般的な目標は、実行時にビジネス ロジックをより柔軟に変更できるようにすることです。モデリング部分は、ここで最も重要なものの 1 つです。BPMN 2.0 はこの分野の事実上の標準であり、説明されているすべてのエンジンがこの標準をサポートしています。

2 番目の目標は、 「いつ何が起こるべきか」という質問を記述する方法でビジネス プロセスを制御することです。この部分は、プロジェクト内で直面するビジネス要件に大きく関係しています。

一部のワークフロー エンジン ( ActivityJBPM ) は、プロセスを「コーディング」することで、この要件を満たすのに役立ちます。これは、コードのどの部分 (タスクやイベントなど) がさまざまな状況でワークフロー エンジンによって実行されるべきかを決定する方法で、'何が起こるべきか'パラダイムをモデル化することを意味します。この概念については多くの議論が行われています。そして、開発者は当然、これを自分で実装することさえできないのではないかと尋ねます。(実際、一見したように簡単ではありません)

他のいくつかのワークフロー エンジン ( Imixs-WorkflowBonita ) は、 「何が起こるべきか...」という要件に、よりユーザー中心の方法で答えるのに役立ちます。これは、人間中心のビジネス プロセス管理の領域であり、タスク指向のワークフロー エンジンによって人間のスキルと活動をサポートします。組織内のタスクとプロセスの分散に重点が置かれています。ワークフロー エンジンは、特定のユーザーまたはユーザー グループにタスクを配布し、長時間実行されるビジネス プロセスを保護、ログ、および監視するのに役立ちます。たぶん、これらは自分で実装したくないものです。

したがって、私のアドバイスは、ワークフローは非常に広い領域をカバーするため、別々に検討する必要があるものを混ぜ合わせないことです。

于 2016-08-29T22:05:09.503 に答える
1

はい、私の見解では、あなたがあなた自身を書くべきである理由はありません。ほとんどのオープンソースBPM/ワークフローフレームワークは非常に柔軟性があり、基本を学ぶ必要があります。jBPMを選択すると、単純なワークフローエンジン以上のものが得られるため、何を構築しようとしているかによって異なります。

乾杯

于 2013-01-25T16:08:21.320 に答える