1. 程式人生 > >複雜事件處理(CEP)——事件模式,規則及約束

複雜事件處理(CEP)——事件模式,規則及約束

從大量執行中的事件裡找出感興趣的事件集合的能力是觀察和控制事件驅動系統的基礎。我們需要能夠描述我們感興趣事件的模式並能快速發現匹配這類模式的事件集合。

1.事件模式

事件模式是一個模板,用來匹配期望找出的特定事件的集合。它準確的描述了事件和事件之間的因果依賴,時間關係、資料引數和上下文。一些事件模式的例子如下:

a.客戶C上個月的所有訂單;

b.常客上個月所有的訂單

第一個模式匹配來自一個特定客戶C發生在一個月內的所有訂單事件。要確定一個訂單是否匹配該模式,必須檢查訂單,判斷客戶是不是C而且滿足時間約束。這是一個內容敏感模式。

第二個模式類似於第一個模式,只是不是檢查訂單中的資料判斷其客戶是否為C,而是需要檢查客戶的上下文——例如,通過查詢資料庫以確定一個客戶是不是常客。這是個上下文敏感模式,其上下文則是匹配操作發生時事件狀態的一部分。

2.事件模式規則

事件模式規則是當事件模式被匹配時指定執行某一動作的反應式規則。一個事件規則定義了一種因果關係,模式匹配時觸發的事件觸發規則執行動作產生的事件。

一個反應式規則由兩部分組成:

1)觸發器:一個事件模式。

2)動作:當觸發器被匹配時所產生的事件。

因果含義是指只要一個事件模式被一個事件偏序集所觸發,那麼被產生的事件就是由觸發該模式的事件集合所引起的。這個事件集合就是新事件的因果祖先。

3.事件約束

一個約束表示系統中被觀察到的事件的一個必須滿足的情況。約束不僅可以用來指定目標系統的行為,而且可以用來指定其使用者怎樣使用它。

本質上,一個約束檢查其模式的事件從不發生於系統中。它是一個看門狗。這些約束不強制行為發生或者保證行為不發生,它們只是簡單的檢查行為。