BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Red HatのjBPMに新しいAPI、新しいツール、BPMN 2.0のサポートが導入される

Red HatのjBPMに新しいAPI、新しいツール、BPMN 2.0のサポートが導入される

原文(投稿日:2011/03/02)へのリンク

Red HatのJBoss部門は最近、APIの完全な刷新し、BPMN 2.0仕様、開発者向けEclipseツール、ビジネスユーザ向けWebツールを加えたビジネスプロセスマネジメントシステムjBPM 5.0の最新リリースを発表した。InfoQではjBPMプロジェクトリードであるKris Verlaenen氏にインタビューし、このリリースについてさらなる詳細を聞いた。

InfoQ: アーキテクトや開発者が独自の状態マシンを構築するよりもjBPMのような製品を選ぶ方がよいのはどんなときだと考えますか?

BPMを始めようとするときにはシンプルな状態マシンしか必要ではないプロジェクトは、既存のワークフローエンジンを(再)利用するより独自の実装を構築することを考えるかもしれません(というのも、ワークフローエンジンは自分たちが必要としているものよりずっと複雑だと信じているからです)。しかしながら、プロプライエタリなソリューションを開発し、サポートし、メンテナンスする労力やコストはたいてい極端に過小評価されています。それに一般には、シンプルな状態マシンとして始まったものであっても時間とともに多くの機能を要求するようになります(永続性、プロセスリポジトリ、グラフィカルなデザインツールなどを考えるとよいでしょう)。それらの機能をその組織内で開発するのはずっと困難です。

一方、jBPMはモジュールの組み合わせでできています。コアエンジン自体は軽量であり、どんなアプリケーションにも組み込むことができます。もし要求が時とともに膨らんだら、アーキテクチャに簡単により多くのコンポーネントを追加して、jBPMのポテンシャルを完全に活用し始めることができます。jBPM5はApache Software License(ASL)を採用しているので、(プロプライエタリなソフトウェアの一部としても)利用、配布、変更することが認められていますし、可能な限り標準を利用して統合や相互運用を容易にすることができます。

InfoQ: Drools FlowとjBPM5の関連はどんなものでしょうか? 2つのプロジェクトを統合したのでしょうか?

jBPM5はthe jBPMプロジェクトとDrools Flowを統合したものです。Drools Flowは数年前に柔軟で適応型のビジネスプロセスをビジネスルールと複雑なイベント処理を統合したもののプロトタイプをつくるために始まりました。そのような機能は可能であるだけでなく、長い目で見れば実際のユースケースの複雑さを管理するために大きな価値をもたらし得ることがわかりました。この知見が数年間のjBPMで積み上げられた多くの経験と結合し、結果としてjBPM5になりました。しかし、jBPMのビジョンは変化しておらず、拡張されています。Drools Flowはそのままの形ではもう存続しません。Droolsの最新版はすでにjBPM5においてそのプロセス要求のために利用されています。

InfoQ: マーケットにすでに存在する他の製品に対するjBPM5のアドバンテージは何でしょうか?

jBPM5は間違いなくもっとも強力かつ先進的なオープンソースBPMN2エンジンの1つです。コアエンジンは軽量かつ拡張可能であり、アプリケーションの一部として統合することも、サービスとしてデプロイすることも可能です。jBPMは(グラフィカルな編集、テスト、デバッグのための非常に強力なEclipseプラグインで)開発者と(Webベースの管理監視用ツールで)ビジネスユーザを両方ターゲットとしています。ビジネスプロセスにとって理解しやすいハイレベルかつドメイン特有の概念を使うことをすることと、実装の詳細を隠蔽するか、さらにはプロセスそのものと実装の詳細を切り分けることで開発者とビジネスユーザがともに同じ言語を共有します。

また、jBPM5は単なる独立したプロセスエンジンであるだけでなく、独自環境、独自サービスと統合したずっと大きなソリューションの一部でもあるのです。現実の問題の複雑さを扱うために、動的な適応を可能にし、プロセスの柔軟性をサポートしています。エンドユーザはビジネスロジックをビジネスルールと複雑なイベント処理によるビジネスプロセスの組み合わせとして定義することができます。jBPM5は統合と相互運用を促進するために可能な限り標準を利用しています。BPMN2だけでなく、ヒューマンタスクに対してはWS-HT、永続性やトランザクションに対してはJPAやJTAなどもです。

InfoQ: このリリースの主要な新機能は何でしょうか?

jBPM 5.0の主要機能がビジネスプロセスをモデリングし実行する最新のBPMN 2.0仕様のサポートであることは間違いありません。Eclipseベースの開発者向けツールやWebベースのビジネスユーザ向けツールも含んでいます。また、jBPM 5.0は新しいプロセスリポジトリを導入して、ドメイン特有のプロセスのサポートを(パレットで独自ノードタイプをプラグインすることで)改善し、コアエンジンがより柔軟で適応的で動的であるために大きな変更を行いました。そして最後に、ビジネスアクティビティモデリング(Business Activity Monitoring、BAM)機能、シミュレーション、グリッド、OSGiサポートも導入されています。

InfoQ: このバージョン5でAPIを変更するという決定を促した要因は何ですか? 新APIのメリットは何でしょうか?

初期のjBPMのバージョンは何がエンドユーザが使うべきもので何が実装ととらえられるものかの明確な区別がありませんでした。プログラマがエンジンと通信するのにとるべき方法を示し、実装の詳細を隠す明瞭で安定したインターフェースを持つことは重要なことです。また、jBPM5は私たちがknowledge APIと呼ぶものを利用しています。私たちはそのAPIをビジネスプロセス、ビジネスルール、複雑なイベント処理を管理するために、そしてそのどれかの技術を既に知っている場合に学習曲線がずっと小さくなるように調整しました。そして、このことによりAPIを共有することができるだけでなくたくさんの機能やツールも共有することができます。それは、Webベースの管理コンソール、デバッグ、永続性、ナレッジリポジトリなどです。

InfoQ: 既存の機能 - 例えば、Springのサポート - はまだ含まれていますか?

はい、私たちは間違いなく前進しています。2つのプロジェクトを統合するときに、何かを失うことがないことを確かめることはどんなときも困難ですが、私たちは全ての主要な機能を含めることができたと信じています。そして、jBPM 5.0がリリースされた今でさえも、私たちが持っているものをよりよくしようと努力し続けています。例を挙げると、jBPM5の文書を改善、拡張して、SpringやOSGiサポートなどのいくつかの(欠損している)部分を含むようにしようと努力しています。

InfoQ: ワークフローはたくさんの異なるマークアップ/定義言語が存在していることによってむしろ分断されているように見えます。jBPM5はBPMN2をサポートするのに加えて、独自のプロプライエタリなjPDLからBPMN2への移行もサポートしています。BPMNを使うことのjPDLを使うことに対する利点は何でしょうか?

jBPM5はプロセス定義言語としてはBPMN2にフォーカスしています。BPMN2.0仕様に貢献しているメンバとして、私たちは標準を利用することは(例えば、プロプライエタリなjPDLフォーマットを利用することとは違って)長い目で見た場合には利点をもたらすと考えます。BPMN2はビジネスプロセスの視覚的表現を標準化し、同時に基本となるXML表現も標準化して、モデリングツール(例えば私たちのWebベース、Eclipseベースのデザイナ)との相互運用性を大きく改善しています。BPMN2標準は堅固であり、拡張可能で、その結果(本当に必要なときのみしか利用しないようにしていますが)必要なときには新しい要素や属性を導入できるのです。jBPM5ではすでに、例えばjPDLでできていた以上のことをより高いレベルでBPMN2を使ってモデリングすることが可能です。結果としてjPBM5はjPDLからBPMN2への移行方法は開発されていますが、jPDLの直接実行をもはやサポートしていません。 

InfoQ: ワークフロー記述に他にどんな言語が利用できるのですか? 例えばBPELはサポートされていますか?

コアエンジンそのものはプロセスを表すのにJava POJOモデルを使うため、記述形式を気にすることはありません(Javaでプロセスをつくるのに流れるようなAPI(fluent API)を利用することさえ可能です)。しかしながら私たちはXMLを利用するプロセス定義言語としてはBPMN2にフォーカスしています。一般的なプロセスエンジン(PVMとしても知られているもの)は他の形式をサポートするように拡張できるでしょう。ただ、現時点では別の言語のサポートを追加する具体的なプランはまったく持っていませんが。BPMN2.0へのマッピングがすでにある他の言語、例えばXPDLなどや、将来的にはBPMN 2.0(のサブセット)ですらおそらく移植されるでしょう。しかし、jBPM5 APIでは異なるタイプのビジネスプロセスに対する独自の実装をプラグインすることができます。プロトタイプでは、内部的にBPELプロセスの実行をネイティブにBPEL実行をサポートするJBoss RiftSawプロジェクトに委譲する形ではありますが、例としてBPMN 2とBPELのプロセスの両方を同じAPI(とツール)で実行し管理することが示されています。

InfoQ: jBPMをどこから学び始めるのがもっともよいでしょうか?

もしハンズオン体験を得たいのであれば、開始するのにもっともよいのはおそらくjbpm-installer(リンク先はダウンロードファイル)です。ここから全ての必要なコンポーネントをダウンロード、インストールして、シンプルな例を使って異なるツールを学ぶことができます。また、同様にjBPM5ドキュメントの異なる章に目を通すことや、最新のブログを読むこと、録画されたウェビナーの1つを見ることから始めることもできるでしょう。jBPMホームページはおそらく、世にあるすべての異なる情報やコミュニケーションチャネルのリンクを見つけるためのよい場所です。 

InfoQ: プロジェクトの将来の計画はどうなっていますか?

私たちは3ヶ月ごとのリリーススケジュールを利用しています。すなわち、jBPM 5.1は5月初旬をターゲットとしているということです。jBPM 5.1としては、(最新の技術を利用してBPMN 2の用語を完全にサポートする)新しいEclipseベースのBPMN 2エディタ、Webサービスサポートの改善、(既存のシステムやサービスをつなぐための)ドメイン特有のノードやコネクタのリポジトリ、ビジネスアクティビティモニタリング(Business Activity Monitoring、BAM)分野での拡張を計画しています。 そして、もちろん、ドキュメントの改善、ちょっとしたコードの改善、そして、完全に新しい機能といった、どんな種類のコミュニティ貢献も歓迎しています。 

この記事に星をつける

おすすめ度
スタイル

BT