Drools 6 Documentation ナナメ読みその7

http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e10827

Integration、他との連携です。

IV. Drools Integration

9. Drools Commands

KieSession で使う各種メソッドに対応して、 org.kie.api.command.Command インターフェースを implements した各種クラスが用意されている。StatelessKieSession、RESTアクセス、JPAなど、様々な場合で利用されている。背後で CommandBasedStatefulKnowledgeSession などが動作し、各メソッドはこのコマンドクラスを介して実行されている(コマンドパターン)。これらのコマンドは marshalling/unmarshalling 可能で、以下の3つのフォーマットが選択できる。

9.1. API
9.1.1. XStream

XStream ってメジャーなんですかね? Droolsでは様々なところで使っています。決め打ちの方法でオブジェクトをXML化するので、JAXBみたいにアノテートが不要なのがメリットなのかな。

9.1.2. JSON
9.1.3. JAXB
9.2. Commands supported

以下、ビルトインの Command がリストされている。自分で GenericCommand を extends してもいい。

10. CDI

CDI、つまりアプリを作るときの Integration というわけですね。

10.1. Introduction
10.2. Annotations

まあ、期待通りに使えるはず。jBPMだともうちょっとややこしくなると思う。 参照) https://github.com/jsvitak/jbpm-6-examples/tree/master/rewards-basic

10.2.1. @KRealaseId
10.2.2. @KContainer
10.2.3. @KBase
10.2.4. @KSession for KieSession
10.2.5. @KSession for StatelessKieSession
10.3. API Example Comparison

11. Integration with Spring

たぶん、Drools レベルでは、やっかいなところは無いはず。

11.1. Important Changes for Drools 6.0
11.2. Integration with Drools Expert
11.2.1. KieModule
11.2.2. KieBase
11.2.3. IMPORTANT NOTE
11.2.4. KieSessions
11.2.5. Event Listeners
11.2.6. Loggers
11.2.7. Defining Batch Commands
11.2.8. Persistence
11.3. Integration with jBPM Human Task

結構面倒な匂いがする。そんなに Spring でやりたいですかねえ。問題が起こったときに API レベルで対応できないのが嫌なんですが。

しかしそもそも、これは jBPM のドキュメントのほうに書けばよかったのではないか。

11.3.1. How to configure Spring with jBPM Human task

jBPM 6.1.0 で大きな改善が入るので、気になる人はこのブログチェックしてください。
http://mswiderski.blogspot.jp/2014/01/jbpm-6-with-spring.html

12. Apache Camel Integration

12.1. Camel

あまり詳しく書いてないけど、XML見たまんま、ってことですね。

13. Drools Camel Server

ステートレスなルール実行サーバーとして動作可能な、WAR です。この WAR のインフラとして、上記 Camel integratoin が使われています。REST エンドポイントを叩きます。

13.1. Introduction
13.2. Deployment
13.3. Configuration
13.3.1. REST/Camel Services configuration

14. JMX monitoring with RHQ/JON

14.1. Introduction

メトリクスを MBean で提供できます。で、RHQ/JON で監視できます。でもなー、あんまり役立つデータは取れなかったと思うなー。

14.1.1. Enabling JMX monitoring in a Drools application
14.1.2. Installing and running the RHQ/JON plugin