2011-02-04 5 views
2

現在、YAMLベースのDSLを使用して社内で開発したワークフローエンジンに基づいたアプリケーションがあります。私たちは、その一部をJavaに移行しようとしています。ワークフローエンジンBPMN、DroolsなどまたはESB?

私は、Intalio、JBPM、Drools Expert、Drools Flowなどの多くのJavaソリューションを発見しました。 ビジネスアナリストがグラフィカルエディタを使用してワークフローを作成し、ワークフローエンジンに提出するビジネス向けです。人間とのやりとりに焦点を当てた開発者ではなく、技術者以外の人たちの使いやすさを重視しているようです。

ワークフローのように見える傾向があります。

Discover-a-file  -\ 
         -> join -> process-file -> move-file -> register-file 
Discover-some-metadata -/ 

ステップが失敗した場合は、それをX回再試行する必要があります。また、システムを停止し、システムを再起動できるようにする必要があり、システムをどこからでも継続できるようにする必要があります(耐久性があります)。

私たちのワークフローの中には、達成する必要がある一連の目標によって定義することができます。そのため、Jessの後方のルールチェーンは興味深いとは言えますが、オープンソースではありません。

これは、Finite State Machineエンジンまたはエンタープライズサービスバスだけであり、すべてをJMSキューとして処理している可能性があります。

オープンソースのワークフローエンジンは、標準ベースでも開発者向けでもあります。特に、グラフィカルなワークフローデザイナーを使用したり、XMLのリラムを書いたりするのではなく、理想的にはJavaまたは言語に依存しない(外部サービスへのREST/SOAP呼び出しを行う)べきである。

おかげで、 トム

+0

http://java-source.net/open-source/workflow-engines - 私はこれらの経験がないので、私は答えとして投稿しません。 – TrueWill

答えて

2

ActivitiBonitaの両方が(BPMN2)ベースのオープンソースおよび標準装備されています。たとえば、blog postを参照してください。

Ruoteは標準ベースではありませんが、DSLアプローチに近いと思われ、JRubyのおかげでJVM上で動作します。

+0

リンクをありがとう、私はボニータとルートをチェックアウトします。私はすでにActivitiをダウンロードして試していましたが、開発者向けに設計されていると言われていますが、サービスタスクの作成方法やワークフローをWebサービスに接続する方法に関するドキュメントは見つかりませんでした。ヒューマンタスクワークフローに非常に適しているようでした。 – Tom

+0

+1のブログ投稿リンク – orangepips

1

jBPM 5(オープンソース、ASL、BPMN2)は、リリースされたばかりで、Drools FlowとjBPM 4のベストです。軽量ですが、Droolsルールエンジンと深く統合して意思決定を行うこともできます。

2

IntaloiオープンソースのBPMエンジンでは、BPMNサポートデザイナとBPELエンジンを提供しています。それはJavaで書かれています。

0

Camunda BPMはオープ​​ンソースのBPMN 2.0、DMN 1.1、およびCMMN 1.1に基づいた、開発者にやさしいオープンソースのワークフローエンジンです。

comfortable graphical workflow designerが付属していますが、fluent API to build workflows programmaticallyも同梱されています。 CamundaはJavaで書かれていますが、REST APIで他の言語からも呼び出すことができ、make REST/Soap calls to external servicesでも可能です。

0

Pythonベースのエンタープライズグレードのソリューションをお探しの方に。

Zengineは、Tornado、Rabbit AMQP、高度な権限、拡張可能な足場の機能などを備えたGPL3 BPMNワークフローベースのフレームワークです。

次の主要コンポーネントの上に構築されます。

  • SpiffWorkflow:BPMN 2.0をサポートする強力なワークフローエンジン。
  • Tornado:TornadoはPythonのWebフレームワークと非同期ネットワーキングライブラリです。
  • Pyoko:Riak KVストアのDjango esque ORM。 RabbitMQ:伝説のErlang langで書かれた超高速AMQPサーバー。
関連する問題