我的雲端生活網 - Life+

Thursday, July 2, 2009

RFID中介軟體如何處理複雜的事件?

Hu等人於 2008 年 Complex Event Processing in RFID Middleware: A Three Layer Perspective 文章裏提到:現在已經有一些中介軟體處理 RFID 事件的過濾和匯總等功能,例如有 BEA 、 Sun 、 Singularity 和 Logicalloy 等公司的產品;不過,作者們注意到 EPCglobal Network 的架構,在 Application Level Events 和 EPC Information Service 之間有一個叫做 EPC Capture Application 的層次。他們說,在 EPC Capture Application 層次, RFID 中介軟體應該運作一些複雜的功能,為了處理特定的商務流程而處理較複雜的 RFID 事件。

架構分為三個層次,由下層到上層依序為:
  1. 邏輯結構: RFID 事件源自讀寫機探測到的基本事件,而複雜的事件是由一些基本事件組成,或者,複雜事件也可以由另外一些複雜事件組成。
  2. 時間限制:在複雜事件結構中,可以加上時間限制的屬性。
  3. 事件偵測:應用前二層的產物,藉由複雜事件分析,向上回報究竟發生了哪些事件類型。

這篇文章對事件結構做了初步的正規描述,並使用 Petri Net 為處理工具。對第一層,邏輯結構方面,使用 Petri Net 延伸的模型 Composite Event Structure-layer Net 。對時間限制層面,使用 structured token and transition mark 處理。對事件偵測層面,使用 Petri Net 著色方法處理;但是本文尚未討論到 Petri Net 著色方法的細節。

邏輯結構

每一個基本事件,按照 EPCglobal 的說法,是讀寫機探測並回報在什麼時候「看見」了哪個 tag 。用大寫字母 A, B, ... 表示每一個基本事件的類型。於是,用到以下六項運算,可以處理許多基本事件之間的各種基本邏輯關係:
  1. 彙總: (A, n) 表示進來 n 個 A 事件。
  2. 分離: (A | B) 表示進來的事件是 A 或 B 。
  3. 結合: (A & B) 表示 A 和 B 二事件都進來。
  4. 否定: (~ A) 表示 A 事件沒有進來。
  5. 順序: (A; B, t) 表示依序有 A 和 B 二事件,而且二事件的間距在 t 時間區段之內。
  6. 內在: 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:

Blog Archive