架構分為三個層次,由下層到上層依序為:
- 邏輯結構: RFID 事件源自讀寫機探測到的基本事件,而複雜的事件是由一些基本事件組成,或者,複雜事件也可以由另外一些複雜事件組成。
- 時間限制:在複雜事件結構中,可以加上時間限制的屬性。
- 事件偵測:應用前二層的產物,藉由複雜事件分析,向上回報究竟發生了哪些事件類型。
這篇文章對事件結構做了初步的正規描述,並使用 Petri Net 為處理工具。對第一層,邏輯結構方面,使用 Petri Net 延伸的模型 Composite Event Structure-layer Net 。對時間限制層面,使用 structured token and transition mark 處理。對事件偵測層面,使用 Petri Net 著色方法處理;但是本文尚未討論到 Petri Net 著色方法的細節。
邏輯結構
每一個基本事件,按照 EPCglobal 的說法,是讀寫機探測並回報在什麼時候「看見」了哪個 tag 。用大寫字母 A, B, ... 表示每一個基本事件的類型。於是,用到以下六項運算,可以處理許多基本事件之間的各種基本邏輯關係:
- 彙總: (A, n) 表示進來 n 個 A 事件。
- 分離: (A | B) 表示進來的事件是 A 或 B 。
- 結合: (A & B) 表示 A 和 B 二事件都進來。
- 否定: (~ A) 表示 A 事件沒有進來。
- 順序: (A; B, t) 表示依序有 A 和 B 二事件,而且二事件的間距在 t 時間區段之內。
- 內在: Within(A, t) 表示 A 事件在 t 時間區間之內進來。
事件的間距定義是,對事件 e 有一對參數 [Start e, End e] ,表示事件發生的時間和結束的時間。事件 e 自己發生的時間長度是 (Start e - End e) 。二事件 A, B 有 (A; B, t) 順序,代表:
(A & B) [0 < Start A - End B < t]即為 A, B 二事件除了同時發生之外,加上 A, B 的時間有些差距。
而事件 A 在 t 時間之內發生, Within(A, t) ,可以改寫成:
(A, 1)[Start A - End A > t](註:以上二式都是文章中的原文照列,不過看起來有一些矛盾的疑問。)
即為發生了一件 A 事件,並且此事件持續了有 t 時間區段那麼久。
所以,事件的順序關係是結合關係的特例,而內在關係是彙總關係的特例。
以上所指六項運算符號,扣除二項特例,可以有四種 Petri Net 圖型表達彙總、分離、結合、以及否定等關係。
時間限制
對一個事件 e ,將它對應事件類型的集合表示為 S e 。則加上時間限制的結構是一個三元詞組 (Start e, End e, S e) :例如,進來一個事件 (epc, r, t) ,則做出一個 token 為 (t, t, {(epc, r, t)}) 。
(註:此例中 (epc, r, t) 也有些疑問,在此也暫以原文照列。)
做成這樣的 token 是為了使 Petri Net 中 Guard 位置計算比較方便。
其他人的相關作品
Siemens RFID 中介軟體使用宣告式的語言,可撰寫規則,用到邏輯和時間限制的運算語法。事件偵測以圖論為基礎。
SAMOS 以 Colored Petri Net 做事件偵測的機制。
Esper 是一件開源軟體,處理複雜事件和事件串流的架構。用到類似 SQL 的語言表達複雜事件,並使用自動狀態機做事件偵測。
No comments:
Post a Comment