2年間の開発を経て、Bonita 4.0(Nova Bonitaとも呼ばれる)のリリースがBonitaプロジェクトチームから発表された(リンク)。Bonita 4.0はPVM(Process Virtual Machine)技術をベースにしており、またJEE・JSEの両方で動かすことのできる軽量BPM(Business Proocess Management:ビジネスプロセス管理)製品として利用できる。Nova BonitaではBPMにおける開発環境および実行環境でグラフィカルなインターフェースを利用でき、それは3つのモジュールから成り立っている。
- Nova Bonitaランタイム:Nova Bonitaのプロセスエンジン。プロセスを設定・実行したり、BPMサービスを提供する豊富なAPIによって監視をおこなうことができる。
- Nova Bonitaコンソール:BPMの開発から実行・監視までのフェーズにわたってユーザーエクスペリエンスを向上させるWeb 2.0的なGUI。
- Nova Bonitaデザイナ:BPM開発環境においてプロセスをグラフィカルに定義したり、既存システムと連携するためのBPMコネクタを定義することができる。
ファイナルリリースのリリースノート(リンク)にはこうある。
このバージョン4.0では4.0RC3より、ランタイムにおいてのいくつかのマイナーな変更・修正(xpdlファイルの共通化、複数のインスタンス化の洗練、ログレベルの整合、反復やサブプロセスのリファクタリング、パッケージレベル・プロセスレベル両方でのバージョン管理、などなど)、そしてデザイナおよびコンソールでは大きな改善および機能追加が加えられました。
InfoQはBull社のBPMマネージャであるMiguel Valdes氏に話を聞く機会を得た。そして今回の最新リリースとBPM市場に対するBonitaの考えについて尋ねた。
InfoQ:JBoss jBPMのTom Baeyens氏によると、Process Virutal Machine(参考記事・英語)は内蔵されたワークフローが必要なアプリケーションにとっては理想的なものということですが、あなたもBonitaユーザーにとってPVM が理想的であるというようにお考えですか?
まったくその通りで、2年前に(リンク) BonitaをProcess Virtual Machine上で作ろうと決めたのもそのためです。Bonita 4.0になって、どんな既存アプリケーションにもBonitaを組み込むことも、従来型のBPMサーバとしてBonitaをリモート配置することも可能になりました。
それに関して言いますと、Bonita 4.0がEclipseプラグインとなってBPMプロセスやそのためのJavaコネクタを簡単に開発することができます。このプラグインはディベロッパの Eclipse環境に簡単に追加することができ、BPMアプリケーションの開発をスピードアップさせます。またBonita 4.0にはWeb 2.0的で強力なBPMコンソールもあってユーザーエクスペリエンスを向上させます。つまりBonitaはディベロッパや技術アーキテクトだけをターゲットとしているのではないのです。
InfoQ: Workflow Patterns Initiative(リンク)(という団体が挙げている)いろいろな面についてどれだけbonita 4.0がサポートできるか評価したことはありますか?
まだBonita 4.0がどれだけのワークフローパターンをカバーできるかの再評価はしていませんが、今回のバージョンではその点に関しての改善がおこなわれています。 Bonita 4.0は一から作り直されたものですが、バージョン3のメインのコンセプトや機能は4.0にも備わっています。それに加え、新しい機能やパターン(例えば複数のインスタンス作成)のサポートが追加されています。
InfoQ: 「Patterns-based Evaluation of Open Source BPM Systems:オープンソースBPMシステムのパターンベースの評価方法」(InfoQで以前取り上げた(参考記事・英語))(http://www.infoq.com/jp/news/2008/08/oswf )の筆者はオープンソースのワークフローは一般的に言ってエンドユーザよりディベロッパに適したものだと述べています。あなたのお考えはどうでしょう?Bonita 4.0の新しいデザイナとコンソールはビジネスアナリストにとってもっと取っつきやすいものになるとお考えでしょうか。
Gartner 社のレポートBPM Magic Quadrantの最新版で指摘しているように、優れたBPMの開発においては異なるユーザとそれがために様々なユーザ用の設定が取り込まれているものです。その中にはビジネスアナリストも含まれます。Bonita 4.0の裏側にある新しいテクノロジには、異なる特徴をもつユーザのコラボレーションを向上させるという考え方があります。Bonita 4.0がリリースするにあたって最初にターゲットとしているのはディベロッパや技術アーキテクトですが、アナリスト用のツールも今後のリリースで登場する予定です。
私たちが次に行おうとしているのは(非技術者も技術者も含んだ)エンドユーザ向けのBPM Studioの開発です。これはシンプルな(Visio/PowerPoint風の)BPMエディタのようなもので、ユーザ間の「共用」が可能な特別な画面を備えています。これらの画面は「ユーザプロファイルごと」(アナリスト用、アーキテクト用、ディベロッパ用)に特化したものでなく、「機能ごと」(モデリング用や実行用)をベースにしています。基本的にメイン画面(モデリング)はシンプルな1つの「ボックス」と、それに説明を加えたりドキュメント作成をおこなうための「矢印」でできています。
InfoQ: Bonita 4.0での新しいプロセスおよびパッケージのバージョン管理機能について教えてもらえますか。
4.0 では、ユーザはかなり柔軟なプロセスのバージョン管理ができるようになっています。同一のプロセスについて、2つあるいはそれ以上のバージョンをデプロイして利用することが可能です。新しいバージョンのものがデプロイされると、すぐに新しいインスタンスが起動する一方、古いバージョンを使っている現行のインスタンスは実行を停止します。
将来のリリースでは、実行中のインスタンスが古いバージョンから新しいバージョンへ自動的に移行するようにします。この機能追加はProcess Virtual Machineレベルで行われ、またそれを適用するには管理者の承認を必要とします。自動移行は全てのユーザのケースをカバーすることはできませんが、少なくとも70%のユーザ(これは異なるバージョンの動作や移行について考慮する必要のあるユーザのほとんどにあたります)にとって役立つだろうと確信しています。
プロセスレベルのバージョン管理に加え、Bonita 4.0ではレポジトリ/パッケージレベルでのバージョン管理もサポートしています。レポジトリあるいはパッケージは一つあるいは複数のプロセス定義を含むので、それらにも異なるバージョンが存在することになるのです。
InfoQ. Bonitaは積極的にXPDL(XML Process Definition Language:Workflow Management Coalitionが策定したビジネスプロセス記述言語)のサポートを続けていますね。XPDLはどのような状況にあるのでしょうか。またXPDLに対する市場の需要は大きいとお考えなのでしょうか。
良い質問ですね。XPDLはBonitaが初期からサポートしてきた標準仕様です。XPDLはこの数年でプロセス間通信やイベントのサポートといった機能をカバーするように進化してきましたし、特に BPMN(Business Process Modeling Notation:現在Object Management Groupが管理しているビジネスプロセスを図式的に表すための表記法)の表記法をマッピングするための言語となったことは大きな進展です。商用BPMベンダの上位10社のうち7社がXPDLをサポートしていることは注目に値します。
私自身は何がBPM標準かを決めるための議論に加わるつもりはありません。それがユーザの気にすることであると思わないからです。ユーザが求めるのは機能、パフォーマンス、実行性、安定性などです。しかしベンダの中にはそのことを忘れてしまうとこもあります。もちろんベンダにとっては標準は重要ですし、それに準拠すべきでもありますが、それは差別化要因にはなりません。
これは私たちがProcess Virtual Machineテクノロジを作ることを決めた理由のひとつです。他の重要な機能の中にあってPVMは複数の標準仕様をサポートするのに必要な機能です。 Bonita 4.0によってXPDLのサポートがすでに行われていますし、Orchestra 4.0(Bonitaチームによって開発されています)ではBPEL 2.0の拡張機能がまもなくリリースされ、JBossでは現在JPDLのサポートも行おうとしているところです。
PVMはこのように言語に縛られないテクノロジで、これはすごいことだと思いますし、特に将来新しい標準仕様が出てきた時には効果を発揮すると思います。
InfoQ: 商用製品のベンダであるIntalio社が最近アップした内容によると、BPELが「標準仕様の争いに勝った」(リンク)ということですが、これについてどう思われますか?
あれは「感情論」的な記事のひとつにすぎません。私が思うに、いろいろなプロセス言語があるのは、それぞれの言語がそれぞれ特定の要求をターゲットにしているせいではないでしょうか。つまり、BPELはウェブサービスとの調和のために作られたものであって、ビジネスマンと技術者とのコラボレーションを考慮したものでなく、BPMについてビジネスマンたちと技術者たちが取り組んでいる時にはBPELが一番の方法だとは思えないのです。
他のベンダ同様、IntalioもBPMNとBPELのセットをBPMの「全てをカバーするソリューション」としてプッシュしています。そのシステムでは多くの時間と費用を複雑な変換のために使っていますが、それが全てのユースケースを100%を満たすことはありません(Intalio BPMNデザイナを使って体系化されてない図式を定義してみて、ちょっとBPELファイルを作ってみる程度です)。
BPELがコラボレーション向きでないのは、BPELやBPEL4People拡張を使ったBPMNで人間のやり取りを表すと複雑になることからも明らかです。エンドユーザにとって、プロセスで起きるユーザ相互作用ステップ(タスクともいいます)を複数の技術的なステップへ分割して定義することが分かりやすいことだと思えますか?
Intalioエディタを使った時に起きるのはこういうことです。あるプロセスのひとつの機能的なステップ(タスク)を4つのステップへ分け、2つは「実行可能プール」(BPELコードを生成するステップ)、残り2つは「非実行可能プール」として定義するのです。これがユーザフレンドリな方法だと思いますか?どうにかしてほしいですよ!
InfoQ:SOAにおけるBPMの役割は何だとお考えですか?
その点ではBPELが意味をもってきます。SOAベースのアーキテクチャでは、スタンドアローンなBPELエンジンを用いたBPELプロセスあるいは ESB(Enterprise Service Bus:ミドルウェアの連携基盤)システムのコンテキストによってサービスを適切に組み合わせることができます。Orchestra 4.0で最初に目指しているのがこのことです。
BPMにはSOAの一つのキー以上の働きがあります。アプリケーションのコードをただ書くよりもBPMを使う方がずっと便利になるようなアプリケーションはまだたくさんあります。Bonita 4.0が主にターゲットとするのはそのようなアプリケーションです。
InfoQ: 将来Bonitaにルールエンジンを組み込むプランはありますか。
はい。Bonita 4.0にはすでにルールエンジンがあります。ロール/グループ間のマッピング(Bonita Mapper)やユーザやISコネクタ(Hook)はルールエンジンを使ってお互いにやり取りができます。次のバージョンではルールエンジンを組み込むことでこの機能を標準で使えるようにします。
ルールをサポートすることは遷移条件でも役立ちます。Bonita 4.0は今のところ遷移条件やそれを編集するグラフィカルエディタでスクリプト言語を使っていますが、ルールもサポートするよう計画しています。
Bonita 4.0はLGPLライセンスで公開されていて、ここ(リンク)からダウンロードできる。