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 で、相違があれば、長い方を採用します。