摘要:射頻識別(Radio Frequency Identification,RFID)技術的快速發展,使RFID中間件已經成為業界關注的焦點。初步探討了RFID中間件中事件規則管理的內容,并提出一種靈活的RFID事件規則管理框架,全面介紹了RFID事件編碼、模式過濾、目標事件識別以及業務規則定義四個環節的內容,重點闡述了一種基于XML語言的業務規則定義方法及其執行引擎的底層實現,從而為構建更加具有個性化和擴展能力的RFID應用奠定了基礎。
關鍵詞:射頻識別; 中間件; 規則管理; 過濾器
中圖法分類號:TP311文獻標識碼:A
文章編號:1001-3695(2007)01-0086-04
射頻識別(Radio Frequercy Identification,RFID)技術是從20世紀80 年代走向成熟的一項自動識別技術,近年來發展十分迅速[1]。與此同時,由于硬件技術的成熟和生產成本的降低,RFID市場正在逐步向軟件及應用集成服務傾斜,而中間件無疑是這兩個市場共同的寵兒。目前,RFID中間件市場得到了國際軟件巨頭的廣泛關注和認可。IBM、微軟、甲骨文、OATSystems、SAP以及SUN等多家公司均相繼推出了RFID中間件產品。本文將以自主研發的RFID智能中間件產品Smarti系統為背景,詳細介紹系統中采用的一種靈活的RFID事件規則管理框架及其構建方法,較為全面地覆蓋了RFID事件編碼、模式過濾、目標事件識別以及規則執行等方面的內容。
1RFID事件規則管理系統框架
RFID中間件[2~4]位于前端讀寫器硬件與后端應用系統軟件(如ERP,CRM,WMS)之間的媒介層,它是一套包括驅動程序管理、資料過濾與匯集、事件管理、安全管理、服務管理以及網絡管理在內的完整功能體系。中間件通過對RFID設備的精確控制,可以實現數據的實時采集與分析,并通過已經定義的應用邏輯與后臺應用系統無縫整合,從而大大簡化了RFID應用系統集成與部署的實施環節。目前,RFID中間件得到了各大軟件廠商的廣泛關注,RFID系統的權威研究機構Auto_ID中心也提出了類似中間件的Savant概念[5,6],但就像中間件的概念一樣,RFID中間件的概念范疇一直也沒有一個明確的界定。
盡管業界對RFID中間件的認識并不統一,但事件管理卻被一致公認為是RFID中間件的核心功能之一。未經處理的RFID原始事件僅僅能夠反映電子標簽在讀寫器識讀區域存在的事實,雖然它也能夠提供許多與識讀過程有關的細節信息,如標簽編碼、讀寫器標志、讀取時刻以及讀取次數等,但是這些內容與后臺業務系統中定義的事件層次仍然存在著很大的差距,無法表達一個完整的業務含義。因此,在大多數RFID中間件系統中,基于RFID事件的業務規則管理是必備的功能,同時也是銜接前端RFID設備與后端應用的重要組成部分。通過業務規則管理,后臺應用系統可以有針對性地選擇有真實業務含義的抽象事件來進行分類處理,用戶也可以對RFID事件的篩選條件和處理服務進行自由選擇與配置,從而快速實現現有應用系統中與RFID技術及管理方法的有效整合。
在本文所介紹的RFID中間件Smarti系統中,事件規則管理由RFID事件編碼、事件模式過濾、目標事件過濾以及業務規則過濾等多個環節構成,其過程如圖1所示。在整個RFID事件管理過程中,首先是對RFID事件的狀態跳變進行時序編碼,從而簡化了原始的RFID事件序列(這里可以將事件狀態簡單地理解為出現或消失);其次是對事件序列進行模式識別,形象地說,RFID事件的模式是一個事件序列的固定組合方式,如一個出現—消失的過程可以被看成是一種通過模式;再次是對目標事件進行識別,即針對符合特定編碼范圍的標簽事件進行篩選;最后是在此基礎上進行業務邏輯的判定。通過這些工序,一個既符合特定時序模式又屬于特定編碼范圍,還滿足附加業務條件的高級業務事件就被唯一地確定下來,并轉換為后臺應用系統的一種有效輸入,觸發相應業務功能的執行。
2事件編碼及模式過濾
大多數RFID讀寫器設備是將一段時間內讀取到的標簽數據存放在內存中,然后通過各種方式將這些數據準實時地傳送給后臺中間件或應用系統中處理。一般來說,RFID事件的描述方式有兩種:①以固定的周期間隔將標簽的存在狀態向高層應用匯報;②將事件的變化過程向管理層匯報。其中,方法②非常類似于電路設計中Manchester編碼的思想[7],通過描述標簽存在狀態的變化從而大大減少事件隊列的信息冗余。例如,如果用“1”和“0”來分別表示標簽被讀取的狀態,在沒有編碼的情況下,以10次/s的讀取頻率讀取一個持續為1s的標簽出現過程,其事件序列可能是“001111111111000”,由此可以發現信息的冗余程度非常高,而且序列的規模與讀寫頻率有關,讀寫頻率越高,序列越大;但是如果采用編碼方式,情況則大為不同,上述事件序列中的01跳變用“0”來表示,10跳變用“1”來表示,則整個序列可以用“01”序列表示,再加上跳變的時刻信息,則完全可以與前一種表示方式等效。
經過Manchester編碼后的RFID事件,其序列模式體現得更加明顯。Smarti系統采用一種非常靈活的方式來完成RFID事件序列模式的描述和定義。通常情況下,一個完整的RFID事件序列模式主要由兩個方面的內容組成:①0/1編碼的組合排列次序;②同種次序下0/1編碼的時刻信息。一旦這些信息得以確定,就可以構造出一個完整的過濾器了。Smarti系統中關于人工入庫過濾器的定義腳本如下:
在上述人工入庫過濾器的腳本定義中,初始狀態0和最終狀態的系統穩定時延是無法改變的,用戶可以根據人工入庫的時間特點,設置01跳變事件之間的間隔在4s~8s,但如果是傳送帶入庫,則跳變間隔應在0.5s~1s之間。采用XML腳本語言來描述各種不同的RFID事件過濾器是Smarti系統的一個主要創新。這種更加靈活的過濾器定義方法,使得RFID中間件能夠滿足各種應用場景的需要。同時,由于腳本語言比代碼更加容易撰寫和部署,可以使中間件更好地起到銜接RFID設備與后臺應用的作用。
3目標事件定義及過濾
在完成RFID事件的模式識別之后,系統將對目標事件進行進一步的分析和提取。所謂目標事件,是指RFID事件中讀取的電子標簽信息符合預先定義的范圍,并由此可以觸發特定的業務規則邏輯或業務活動的執行。例如,系統可以被要求對凡是可口可樂公司生產的355ml罐裝可口可樂產品進行分析,當符合該內容要求的電子標簽被讀取時,系統會自動進入目標事件的處理過程。
由于RFID應用領域統一采用的是EPC編碼[8],因此,可以通過EPC編碼來實現對目標事件的篩選與過濾。EPC編碼通常由一個版本號和三個數據段組成,它們依次是廠商標識符、產品類別以及單品序列號。在設定目標事件時,可通過設定這三個數據段的目標值來對RFID事件進行內容篩選。例如,假設可口可樂公司生產的355ml罐裝可口可樂產品的96位EPC編碼為21.0000932.001FDC.000000000。如果將可口可樂公司所有產品作為目標事件源,則通過廠商標識符0000932來進行匹配;如果將具體355ml罐裝可口可樂產品作為目標事件源,則可以通過廠商標識符和產品類別0000932.001 FDC一起來進行匹配,甚至可以對單品進行一一匹配。為了能夠更加靈活地定義目標過濾器,Smarti系統也提出了一套EPC編碼過濾腳本定義,如下所示:
在這個例子中,
4規則定義及規則引擎的實現
RFID事件規則管理的最后一個環節是業務規則的定義與執行,它也是整個RFID中間件中最重要的核心環節。業務規則管理的信息源是經過模式分析和內容過濾的RFID高級業務事件。這些事件不僅本身蘊涵了大量的數據信息(標簽編碼、讀寫器編碼以及傳感器信息等),還與其標志物品的物理屬性(物品的功能、成分、生產時間以及有效期等)有著廣泛的關聯。中間件可以利用這些有效信息,在讀取標簽的第一時間對信息進行分析和決策(貨單清點、商品防偽以及質量保證等),從而具備更強的業務處理能力。
業務規則管理具有很強的個性化色彩。不同企業,甚至是不同部門對業務規則的定義都可能存在很大的差別,因此業務規則管理必須為用戶提供簡單、易用的個性化定制功能。其定義的主要內容包括以下幾個方面:(1)事件信息。與標簽識別過程有關的信息集合體,如標簽編碼、讀寫器標志、傳感器數據等。
(2)EPCIS信息。規則執行引擎通過標簽的EPC編碼從網絡EPCIS[9]服務器上獲得EPC服務信息。這些服務一般由產品制造商提供,主要是發布與產品有關的一些基本信息,如產品功能、原料成分、產地、出廠時間等。
(3)變量定義。EPCIS信息和人工定義信息的內容都要進行變量定義,既要保證使用數據的合法性,又要對數據類型進行嚴格管理,方便規則的比較和判定。
(4)條件定義和服務關聯。定義各種信息變量需要滿足的約束條件及其相應的處理方法,它們是規則引擎執行的重要依據,條件定義中允許管理員定義復雜的邏輯表達式,根據事件所攜帶的有效信息來調用相關的高層業務服務。
上述業務規則的內容在Smarti系統中同樣采用XML語義腳本的方式加以定義。業務規則腳本所定義的內容需要后臺規則執行引擎來進行實例化。在規則實例化過程中,數據變量、條件判定結果以及調用服務被分別存儲,每一個規則實例均獨享一個存儲空間,這樣可以有效地消除并發條件下實例間的相互干擾。此外,由于規則變量的填充是一個動態過程,因此,執行過程中很可能發生運行時異常,如出現數據類型不一致或數據無法讀取的情況,所以規則執行引擎必須支持異常情況下規則實例的恢復和重試。在條件判斷方面,從復合嵌套的腳本定義中構建規則實例的邏輯分支也需要精密的設計:在Smarti系統中,每一個Conditions復合條件由多個Condition條件組合而成,復合條件又可以通過類型屬性來描述條件之間的復合關系(與/或),在單個條件語句的解析上,條件運算符還要遵循變量類型的重載要求。與條件復合的實現機理不同,條件的嵌套關系主要通過If,Else元素的嵌套來實現,原則上,每一個If,Else元素均包含一個對應的服務,當條件滿足時,即調用該服務。完整的業務規則實例類圖結構如圖3所示。
5業務規則的應用范例
本節將以一個檢查商品實效性業務規則腳本為例,具體闡述業務規則腳本語言的組成及使用方法。在這個范例中,RFID中間件規則執行引擎將依據所讀取的電子標簽編碼去獲取產品制造商發布的產品屬性信息,其中最為重要的是產品的生產日期和保質期。規則引擎將結合產品的生產日期、保質期以及電子標簽的讀取時間來判斷本產品是否在保質期內。如果在保質期內,即順利接收該產品;如果過期,則調用產品的拒收服務。拒收服務的實現形式可能有很多種,如生成拒收貨物清單,向采購人員發問題清單以及向生產廠家發退貨清單等。其實現代碼如下所示:
事件信息Event是規則引擎的默認對象,它不需要在腳本中加以聲明就可以直接使用。Event.DiscoverTime即代表本次RFID事件的讀取時間。除了DiscoverTime屬性以外,Event對象還包括標簽編碼、讀寫器標志、讀寫器IP地址以及天線標志等內容,它們都可以在規則判定時作為默認變量使用。EPCIS內容中定義的兩個屬性produceTime和validityTime分別代表產品的制造時間和保質期,它們可以通過event.EPC編碼從產品制造商的EPCIS服務器去獲得。由于缺乏統一的標準,每家企業提供的EPCIS服務的內容和形式上都有很大的差別,所以只有這種屬性定義的方式,才能夠最大程度地解決業務規則腳本的描述能力和兼容性問題。在條件定義和服務關聯方面,腳本語言支持多種條件的復合與嵌套,并通過Method元素實現條件與服務的綁定。為了實現邏輯的判定,腳本語言要求所有參與條件判斷的變量均屬于相同的類型,從而方便運算符的重載(相同運算符的計算功能根據不同的變量類型而發生變化),如在進行produceTime+validityTime運算時,由于這兩個變量都是日期類型DateTime,所以加法運算符被重載,由數值計算轉換為日期的疊加。此外,在服務綁定時,所有被調用的服務均不用在腳本中聲明入口參數,因為系統會缺省將完整的事件信息Event作為上下文參數傳遞給業務服務,再由這些服務去完成RFID事件信息的提取和處理功能。
6結論
本文通過自主研發的RFID中間件產品Smarti系統,詳細介紹了一種靈活的RFID事件規則管理框架及其構建方法。該方法將整個事件規則管理過程合理地劃分為RFID事件編碼、模式過濾、目標事件識別以及規則執行四個階段,并在每個階段均采用了一種靈活的基于XML語言的腳本定義方式,實現了RFID事件過濾功能的自由定義與擴展。最后,結合一個檢查商品實效性的業務規則腳本范例,對業務規則的定義方法及其實現進行了全面細致的剖析,具有一定的借鑒與指導意義。
參考文獻:
[1]陳新河. 無線射頻識別(RFID)技術發展綜述[J]. 信息技術與標準化, 2005,(7):2024.
[2]王忠敏, 張成海,等. EPC與物聯網[M]. 北京:中國標準出版社, 20-04.
[3]王忠敏, 張成海,等. EPC技術基礎教程[M]. 北京:中國標準出版社, 20-04.
[4]蕭榮興, 蘇偉仁, 許育嘉. RFID 技術運作的神經中樞——RFID Middleware[EB/OL]. http://www.ec.org.tw/Htmlupload/614.pdf,20-0409.
[5]AutoID Center. AutoID Savant Specification 1.0[EB/OL].http://www.autoidcenter.org/publishedresearch/MITAUTOIDTM003.pdf,200309.
[6]A Goyal. SavantTM Guide[EB/OL]. http://www.radioactivehq.org/docs/EPC/EPC_Savant/mitautoidtr015.pdf,200301.
[7]李東明, 趙梓森,等. 數字通信系統[M]. 北京: 人民郵電出版社, 1986.
[8]Brock D L. The Electronic Product Code:A Naming Scheme for Phy ̄sical Objects[EB/OL].http://www.autoidcenter.org/publishedresearch/MITAUTOIDWH002.pdf,200101.
[9]Mark H. EPC Information ServiceData Model and Queries[EB/OL]. http://www.mlab.ch/autoid/SwissReWorkshop/papers/EPCinformationService.pdf,200310.
作者簡介:
許煒(1977),湖北武漢人,博士研究生,主要研究方向為RFID與物聯網、物流技術等;程文青,副教授,主要研究方向為RFID技術、計算機網絡;劉威,博士,主要研究方向為中間件、RFID技術。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文