[jbpm]jBPM5 User Guide ナナメ読み

Chapter 1. Overview

1.1. What is jBPM?

個人的に気になるfeatureとしては

  • JPA / JTA による永続化
  • WS-HumanTask

ですかね。
BPMN 2.0準拠については Chapter 6 を参照。

Chapter 2. Getting Started

2.4.2. Source code

各プロジェクトのgithub/svnへのリンクがある

Chapter 3. Installer

最初にjBPM5を触るときにおすすめだ!以下の日記をご覧ください。
http://d.hatena.ne.jp/tokobayashi/20120409

Chapter 4. Core Engine: API

  • bpmn定義ファイルから KnowledgeBase を作る
  • KnowledgeBase から KnowledgeSession を作り、 startProcess
  • EventListener で処理をはさんだり、ログ出力

というわけで、ご存知の方はお分かりの通り、インターフェースが Drools と統合されています。これを Knowledge API といいます。

Chapter 5. Core Engine: Basics

お、なんかいい感じにBPMN2のエレメントを解説してくれます。ksession.signalEvent()でシグナル飛ばせるとか、javaコードとの絡みがあるのがいいですね。

5.8.7. Multi-threading

プロセスはシングルスレッドで動きます。ゲートウェイでパラレル処理にしても。なので、asynchronous のタスク処理が必要になってきます。WorkItemHandlerの実装はおまかせ、、、なので、スレッド立てることもできるけれど、一般的にはJMSに落ち着くのかな。

Chapter 6. Core Engine: BPMN 2.0

jBPM5 は BPMN 2.0 の Process Modeling と Process Execution にフォーカスします。choreographies と collaboration は execution に関わらないので対象外、ということみたい。
jBPM5は全てのエレメントをカバーするわけではない。まあ、jBPM5のドキュメントに載ってる分がサポート対象です、ってことやね。

Chapter 7. Core Engine: Persistence and transactions

大抵のユースケースでは永続化とトランザクションは必要ですよね。デフォルトでは永続化無し。設定する際のデフォルト組み合わせはHibernate+H2+Bitronix。JBPMHelperってやつで簡単にできそう。でもJPAKnowledgeServiceのほうが本筋なのか。

7.1.4. Transactions

トランザクションの説明が少ないな。イレギュラーなケースとかはよく調べないとダメかも。ただビジネスプロセス的にはトランザクション境界を広くとるより、Compensationのほうが重要なのかも。

7.3. History Log

jbpm-bamというモジュールがある。ロギングはEventListenerを使ってどうとでもカスタマイズしてくれ、というスタンスか。

Chapter 8. Core Engine: Examples

次の勉強ポイントはここですな。

Chapter 9. Eclipse BPMN 2.0 Plugin

こっちもGood Lookingですのう。

Chapter 10. Designer

こちらが目玉、WebベースのBPMN2デザイナになります。
Figure 10.4. を見てくれ。Connection section から Morphing section へぬるぬるとクリックしてデザインしていく。

10.4. Support for Domain-specific service nodes

カスタムの Service Task も追加できます。

10.6. Generation of process and task forms

jBPM consoleで使うためのフォームも作成できます。

10.7. View processes as PDF and PNG

PDFやPNGでプロセスダイアグラムを出力したり

10.8. Viewing process BPMN2 source

BPMN2ソースで出力したり

10.10. Migrating existing jBPM 3.2 based processes to BPMN2

jBPM3のプロセス定義(jpdl)をBPMN2にコンバートしたり

10.11. Visual Process Validation

バリデーションしたり

10.14. Importing existing BPMN2 processes

外部から、つまり他のツールで生成されたBPMN2ソースをインポートしたり

と、盛りだくさんです。あとディクショナリ機能も追加中だったはず。

こちらのスクリーンキャストをご覧ください
http://vimeo.com/26126678
http://vimeo.com/30857949

Chapter 11. Console

プロセスを実行する場合に手っ取り早いのがこれを使うこと。デモとかには必須ですかね

11.4. REST interface

RESTも結構使えそう。

Chapter 12. Human Tasks

まあ直感的に想像できる通りの機能だろうけど、厳密に理解するには結構深く見ないとだめだろうなー。

12.2. Human task service

WS-HumanTaskの実装。Minaでアクセスする。HornetQも使えるらしい。

12.2.4. User and group assignment

User/Groupを既存のLDAPに紐付けるのは自前で実装しろ、ということかなあ。https://community.jboss.org/message/584477

12.3. Human task clients

HelloWorldのデモでやったように、Eclipseプラグイン、そしてjBPM Consoleがそれぞれ、Human task serviceにアクセスするクライアント例、というわけ。

Chapter 13. Domain-specific processes

カスタムのワークアイテム(service node)を作れます。Chapter 10. Designer のスクリーンキャストでもやってた。

Chapter 14. Testing and debugging

14.1. Unit testing

ユニットテスト用のスーパークラスの解説もある

14.2. Debugging

EclipseのViewが頑張ってる

Chapter 15. Process Repository

リポジトリはGuvnorで管理されます。jBPM ConsoleがGuvnor上のリポジトリのデータを使う場合のconventionがいろいろ書いてある。

Chapter 16. Business Activity Monitoring

Eclipse BIRT を使うといい感じらしい。CEPを使う例も載ってるが特殊なソリューションと思われる。

Chapter 17. Flexible Processes

うーん、ちょっとハイレベルな話。ビジネスプロセスをフレキシブルに扱うユースケース、だけど現実的にどこまでやれるのか?

Chapter 18. Integration with Maven, OSGi, Spring, etc.

pom.xmlとか載っていて親切。