Drools 6 Documentation ナナメ読みその6

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

CEPについては昔にもエントリを書いています。
http://d.hatena.ne.jp/tokobayashi/20111109
http://tkobayas.wordpress.com/2013/06/15/drools-fusion-twitter4j-guvnor-demo/

8. Complex Event Processing

8.1. Complex Event Processing

Important: イベントとは、アプリケーションドメインにおける、ある時点の、状態変化の記録である。

8.2. Drools Fusion

CEPを受け持つ部分が Drools Fusion と呼ばれているけれど、実際はコア(Drools Expert)と厳密に分かれていないので(個別のjarがあるわけでもない)、あまり気にしなくていいです。

8.3. Event Semantics

イベントの重要な性質は、

  • 不変
  • 時間的な制約を持つ
  • ライフサイクルが管理されている
  • 有効期間を持つ
8.4. Event Processing Modes
8.4.1. Cloud Mode

こっちが通常のルールの使い方。なぜ Cloud と名づけたのか…

8.4.2. Stream Mode

こっちがCEP用のモード。Event はストリームで来ますから。
Negative Pattern (notなど) と時間制約の組み合わせの場合、評価タイミングはエンジンがよろしくやってくれる。

8.5. Session Clock
8.5.1. Available Clock Implementations

Pseudo Clock 便利

8.6. Sliding Windows
8.6.1. Sliding Time Windows
8.6.2. Sliding Length Windows
8.7. Streams Support
8.7.1. Declaring and Using Entry Points

CEPでは entry-point からイベントがきます

8.8. Memory Management for Events

イベントは沢山やってくる&ksessionは長期的に使うので、メモリ管理が重要です。エンジンは二つの方法を使って、不要なイベントを削除します

  • 明示的な、期限切れポリシー
  • 暗黙的な、ルールの解析
8.8.1. Explicit expiration offset

@expires 明示的なほうがメンテナンスしやすいですね

8.8.2. Inferred expiration offset

エンジンが賢く判断してくれます。explicit と implicit で、相違があれば、長い方を採用します。

8.9. Temporal Reasoning
8.9.1. Temporal Operators