Abstract:
Key words :
1 簡介
隨著電子商務和信息技術的發展以及無線射頻識別技術(Radio Frequency Identification,RFID" title="RFID">RFID)[1]應用的普及,越來越多的應用系統以事件流處理為核心,如企業資源計劃系統(EnterpriseResource Planning,ERP)供應鏈管理系統(Supply Chain Management,SCM)等。RFID 應用系統中,標簽卡通過特定的讀卡器,發生數據庫操作或其它如溫度,濕度狀態的改變等稱為事件。在應用過程中會產生原始事件流,特定的原始事件可以觸發更高一級的復雜事件" title="復雜事件">復雜事件。為了準確描述事件間的關系,充分挖掘事件流背后蘊含著真正的商業邏輯,需要一種規范的,專門的描述語言" title="描述語言">描述語言。復雜事件描述語言是對原始事件流中事件間邏輯關系的一種表達方式,對挖掘事件流背后的商業邏輯有重要的意義。
圖1:RFID 的信息系統體系結構
目前國內外學者對復雜事件處理機制的研究有很多[3][4],但對復雜事件描述語言的研究很少,而且成果并不多,目前復雜事件描述語言沒有統一的標準,文獻[5]提出的SASE 事件描述語言(SASE Event Language)是一個相對成熟的復雜事件描述語言,本文在其基礎上進行了優化,提出一種復雜事件描述語言CDL,并給出其形式化定義。同時結合供應鏈RFID 系統,詳細描述了CDL 的具體應用。
2 CDL 描述語言定義
2.1 CDL 描述語言句型定義
現有成熟的復雜事件描述語言并不多,SASE 事件描述語言(SASE Event Language)是一個相對成熟,開放的基于事件流的復雜事件描述語言,本文在其基礎上提出了CDL 描述語言(Complex-Event Description Language),它更接于近數學表達式,并且可以對事件流進行準確的描述,匹配,過濾與轉換,可以匹配原始事件流中基于時間和條件因素形成的各種復雜事件,并且定義匹配成功后將觸發的動作和事件,其語法結構如下所示:
其語義為:當事件表達式exp 在時間表達式t 規定的時間范圍里,滿足條件表達式q 描述的條件約束時,觸發動作表達式a 描述的內容。
2.2 事件表達式定義
事件表達式是復雜事件描述語言的重要組成部分,體現了業務邏輯的匹配,文獻[5]中定義了事件類型和事件實例的概念,在這個基礎上我們提出了一些相關的補充:
事件類型是一類事件的統稱,用大寫字母表示,如A;事件實例是一個具體的事件,用小寫字母表示,如a。一個事件實例屬于并且只屬于一個事件類型。
定義 1 事件表達式:利用事件類型,事件實例和各種連接符表達業務系統中發生的事件的表達式稱為事件表達式,形如(A a)的是最簡單的事件表達式。
定義 2 連接符&&(邏輯與):當&& 連接的兩個事件都發生時,表達式值為真。形式化定義如下所示:Exp1&& Exp2 ≡ Exp1 ∧ Exp2。例如(A a)&&(B b)表示事件類型為A 和B 的兩個事件實例a, b 均發生。
定義 3 連接符||(邏輯或):當|| 連接的兩個事件之一發生時,表達式值即為真。形式化定義如下所示:Exp1|| Exp2 ≡ Exp1 ∨ Exp2。例如(A a) || (B b)表示事件類型為A 和B 的兩個事件實例a, b 至少一個發生。
定義4 連接符!(否定):起到否定的作用,加在事件類型前表示該事件類型不發生。帶有!
連接符的事件稱為否定事件。形式化定義如下所示:!( Exp1) ≡ ? Exp1,例如!(A a) 表示事件類型為A 的事件實例a 不發生。
定義 5 運算符優先級:按從大到小依次為!,&&,||。
性質 1 如果Exp1 是事件表達式,則!( Exp1)也是事件表達式。
性質 2 如果Exp1, Exp2 都是事件表達式,則(Exp1&& Exp2)也是事件表達式。
性質 3 如果Exp1, Exp2 都是事件表達式,則(Exp1|| Exp2)也是事件表達式。
根據以上的定義和性質,存在邏輯關系的事件均可用事件表達式描述,而事件間除了邏輯關系,還有發生時間的先后次序,所以定義次序表達式。
定義 6 肯定ORDER 表達式,表示多個事件按順序發生,如:
有了事件表達式的形式化定義,我們來對條件表達式進行定義。
2.3 條件表達式定義
事件表達式中出現的每一個事件實例都是有屬性的,條件表達式對事件實例的屬性間關系加以測試,對事件表達式中的事件實例加以邏輯限制。
條件表達式可以用事件實例的屬性和常量進行比較,這種測試稱為常量測試;也可以用事件表達式中的事件實例的屬性作為變量互相比較,這種測試稱為變量參數測試;當兩種測試都出現時,稱為混合測試。下面三個條件表達式分別是常量測試,變量參數測試和混合測試的例子。
(1)WHERE a.id=”021903” ∨ a.type_id=”039”
(2)WHERE a.id=b.id ∧ c.weight < d.weight
(3)WHERE a.vendor=”021903” ∧ a.id=b.id
在WHERE 表達式中( ∧ )符號表示并且關系,( ∨ )符號表示或者關系。
2.4 時間表達式定義
時間表達式用于限定事件發生的時間范圍。
當表示一個時間點發生的事件,用關鍵字AT,后接一個參數表示某一時刻。當表示在一個時間段內發生的事件,用關鍵字WITHIN,后接一個表示時間段大小的參數。當表示一個時間段內發生的事件,用關鍵字BETWEEN,后面接開始時間和結束時間兩個參數。下面三個時間表達式分別是三種關鍵字的例子:
(1)AT 7:30am 表示事件在上午7:30 分發生。
(2)WITHIN 10hours 表示事件在連續的10 個小時內發生。
(3)BETWEEN (10:00am,8:00pm)表示事件在上午10:00 和下午8:00 之間發生。
2.5 動作表達式
當在原始事件流上,事件表達式,條件表達式,時間表達式的限定全部滿足時,觸發動作表達式規定的內容。動作表達式由業務系統定義,如例1 中的alert 表示報警,業務系統中的其它動作也可以定義相應的表達式。
3 CDL 描述語言舉例
CDL 描述語言可以應用在ERP 和SCM 的RFID 系統中,下面以供應鏈RFID 系統為例,介紹CDL 語言的具體應用。在供應鏈RFID 系統中,廠房和倉庫的入口門禁讀寫器,出口門禁讀寫器,貨架上安裝的讀寫器,以及一定數量的手持讀寫器構成了一個RFID 讀寫器網絡。RFID 標簽粘貼在托盤、包裝箱或元器件上,可以將信息傳遞給一定范圍內的讀卡器,使得配送,質檢,入庫,盤點,出庫實現了自動化管理。在供應鏈日常業務過程中,各個讀寫器產生的RFID 數據,系統狀態改變或者是用戶產生的輸入與輸出形成了原始事件。
下面舉例用CDL 描述語言來描述供應鏈RFID 系統的日常業務。
例 1:EVENT (SHELF-READING x) && (OVER-TEMPERATURE y)
WHERE x.id =’070301’ ∧ x.shelf_id=y.shelf_id
WITHIN 1 minute
TODO alert
SHELF-READING 表示貨架讀寫器讀取到的事件,OVER-TEMPERATURE 表示溫度傳感器發生的事件。例1 表示了在短時間內如果編號為070301 的產品所在貨架的溫度過高,則觸發報警事件。
例 2:EVENT ORDER (ENTRANCE-READING x, !(CHECK-READING y), EXIT-READING z)
WHERE x.id =y.id ∧ x.id = z.id
WITHIN 12hours
TODO report_to_manager
例2 中的ENTRANCE-READING 表示倉庫入口處的讀卡器產生的入庫事件,CHECK-READING 表示質檢事件, EXIT-READING 表示出庫事件,x,y,z 分別是三個事件實例。描述的意義是監測符合以下條件的產品:在12 個小時內完成入庫操作,但沒有經過質檢,就通過了倉庫出口。如檢測到結果說明有產品發生了漏檢,向管理員發送報告。
通過以上舉例說明CDL 語言可以準確的描述供應鏈RFID 系統的日常業務,以及在規定的時間內滿足條件時觸發的動作。CDL 也可以較好的描述其它RFID 系統的日常業務,在此不做舉例說明。
4 結論
本文改進并提出了一套基于RFID 的復雜事件描述語言CDL,它比其它描述語言更接近數學表達式,并且可以更準確的描述事件間的邏輯關系與時間關系。目前在國內,復雜事件描述語言沒有得到人們的深刻認識,也沒有得到廣泛應用,但隨著大規模通訊系統的發展,復雜事件描述語言很快會得到應用,并且會有更廣闊的應用空間。
此內容為AET網站原創,未經授權禁止轉載。