平田です。
9/13、14に開催されたJBoss Developer Workshopに参加してきました。
9/13のテーマはjBPM5です。仕事ではjBPM3.2を使っていますが、jBPM5の実体はDrools Flowということで全然別物になっています(悲しい…)。
ちなみにこのワークショップは無料でありながらノベルティのUSBメモリが配られ、お茶と温かいコーヒー、お菓子、更にお昼に弁当(美味しい)が用意されていました。レッドハット社主催とは言え、まだ商用版に組み込まれていないコミュニティ成果物のワークショップなのに、このホスピタリティ。更に海外から開発者を呼んだ上に通訳つけてます。この気合、逆に怖い。
jBPM5のワークショップは、四つのトピックからなります。
- jBPM5 概要
- 開発ガイド
- 演習
- jBPM, more than “just” BPM
jBPM5 概要
BPMのお話と、jBPM5の特徴に関するお話でした。
- BPMN 2.0対応
- jBPM3.2ではjPDLという形式でプロセス(いわゆるフローチャート)を記述しましたが、BPMN 2.0という標準規格で記述します。
- BPMN 2.0は、表記(見た目)まで定義している点がUMLっぽいと思いました。
- ルール・イベントとの統合
- そもそもがDroolsの成果物を引き継いだ形なので、ルールエンジンとの統合は言わずもがな。イベントについてはよく分かりません。3.2でもフックはたくさんありました。
- ワークフローエンジン + オプショナルなコンポーネント・ツール群という構成
- 永続化やプロセス定義のリポジトリなどが、エンジンと切り離されています。
- 永続化は、3.2まではHibernateでしたが、JPAベースになっています。
- 管理コンソールが、REST API + GWTになっていて美しいと思いました。JBoss AS7の管理コンソールも確か同じアーキテクチャですよね。
- ドメイン特化プロセス
- BPMN 2.0ベースのフローチャートに、特定用途向けのノードを追加する仕組みです。マニュアルを見ると分かりますが、アイコンを自由に設定できます。
- jPDLにしろ生BPMN 2.0にしろ業務寄りの人には難しいので、別途フローチャートを用意してコミュニケーションを取っていたのですが、それが改善されるかも?
- ヒューマンタスクサービス
- 3.2まではプロセスの進捗状態と一緒くたに永続化されていたタスクが、jBPM5では分離されています。
- WS-HumanTaskという標準規格を実装したサービスだそうで。
- jBPM5のロードマップ
- シミュレーションをサポートする予定だそうです。シミュレーションって何でしょうね。
- BPMN 2.0のエディタが新しくなるとか。Eclipse.orgに寄贈したとかなんとか。
- ドメイン特化プロセスの汎用的なもの(オープンスタンダードなプロトコルや、メジャーなサービス – Googleなんたら、Twitter)を用意して、すぐ使えるようにしたいとか。
開発ガイド
概要からブレイクダウンしてBPMN 2.0のプロセス定義と実装よりのお話でした。
- BPMN 2.0 構成要素
- ノード + 遷移の有向グラフで、ノードのサブタイプが定義される構成はjPDLと同じです。遷移はTransitionではなくSequenceFlowと言うらしい。
- jPDLのデシジョン、及びフォーク・ジョインに相当するものは、BPMN 2.0ではGateway。
- Java API
- KnowledgeBaseの操作など、基本的にDroolsです。このへんは勉強し直しですね。
- SwitchYard
- SwitchYardは、JBoss内の次期ESB基盤です(9/14のワークショップのテーマ)。現行のJBoss ESBでは、jBPM 3.xベースのサービスオーケストレーションが可能ですが、SwitchYardではjBPM5を使ってサービスオーケストレーションを実現するとのこと。
- jBPM Installer
- jBPM5の開発、実行に必要なEclipseからAPサーバまでJava VM以外全てダウンロード・セットアップするAntスクリプトです。数百MBダウンロードするので時間がかかりますが、とりあえず動かすには良いんじゃないでしょうか。
- アプリ統合
- 何かのシステムでjBPM5を使う場合、ライブラリとして同梱する「組み込み」形式と、REST・SOAP・EJBなどでラップした「サービス」形式があります。
- 管理コンソールはREST API + GWTという構成なので、REST API経由でアクセスすればJavaでなくとも良くなりますね。ただしトランザクションはぶった切れますが。
演習
予め必要なソフトウェアをダウンロード済みのjBPM Installerが配布され、それを使ってjBPM5のサンプルを作成しました。
これがワークショップのメインかと思いきや、本当にさわりの部分だけでした。ちなみに演習の内容は次の通りです。
- jBPM5管理コンソール、Guvnorをセットアップし、サンプルを動作させる。
- ドメイン特化プロセスを作成する。
- Freemarkerでフォームを作成する。
- ルールを使う。
jBPM, more than “just” BPM
jBPMのビジョンに関するプレゼンテーションです。ワークショップの締めですね。
- 従来のBPMシステムではプロセスが複雑になりがちであったが、プロセスとルール、イベントの合わせ技でプロセスをシンプルにする。
- JBoss AS7が超速い件。
- クラウドの話(レッドハット社のOpenShift)。
- Android上で動く(!)jBPM
冒頭でも書きましたがレッドハット社の気合により至れり尽くせりで、参加して良かったです。
BPM製品なので、実際にjBPM5が組み込まれたサンプルシステム(Seam BookingやDVD Storeのような)でプロセスを簡単に変更できまっせ、みたいなデモがあると良かったかも?