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