面向移動設(shè)備的可配置RFID中間件設(shè)計(jì)與實(shí)現(xiàn)

2013-10-31 18:03 來源:互聯(lián)網(wǎng) 作者:和靜

0 引言

射頻識別(Radio Frequency Identification, RFID)中間件是在物理RFID閱讀器和上層應(yīng)用軟件之間的一層軟件,RFID中間件屏蔽了各種不同的閱讀器傳輸標(biāo)準(zhǔn),使上層應(yīng)用軟件得到統(tǒng)一、不變的數(shù)據(jù)和控制接口;另外,它還能對原始數(shù)據(jù)進(jìn)行整合和過濾,產(chǎn)生用戶定制的數(shù)據(jù)報(bào)表。在大規(guī)模應(yīng)用RFID技術(shù)時,將產(chǎn)生海量數(shù)據(jù),應(yīng)用RFID中間件將使數(shù)據(jù)處理和傳輸變得相對簡單。中間件的承上啟下作用使RFID系統(tǒng)設(shè)計(jì)更為靈活,維護(hù)更為簡單,不論是后端應(yīng)用程序的變化,還是前端閱讀器變化,都不會影響另外一端,省去維護(hù)多對多連接的復(fù)雜性問題。

RFID中間件是RFID技術(shù)應(yīng)用領(lǐng)域和應(yīng)用規(guī)模發(fā)展的產(chǎn)物,當(dāng)今市場上已有一些產(chǎn)品,如:SUN、Microsoft和BEA的RFID中間件產(chǎn)品,然而,這些產(chǎn)品大都是運(yùn)行在PC機(jī)或服務(wù)器端,由于網(wǎng)絡(luò)帶寬有限,海量的數(shù)據(jù)要通過網(wǎng)絡(luò)傳輸,大量無效的數(shù)據(jù)都要集中在服務(wù)器端,服務(wù)器必須對海量的數(shù)據(jù)進(jìn)行篩選、過濾并按照確定的業(yè)務(wù)規(guī)則使數(shù)據(jù)轉(zhuǎn)化成用戶需要的、有意義的數(shù)據(jù),這種復(fù)雜的處理必會增加服務(wù)器的壓力,影響系統(tǒng)的性能。在發(fā)生網(wǎng)絡(luò)故障時,也容易造成數(shù)據(jù)的丟失等。

隨著技術(shù)的進(jìn)步,移動設(shè)備(如PDA等)的內(nèi)存存儲能力、CPU的處理能力不斷增強(qiáng),這也使得設(shè)計(jì)一種面向移動設(shè)備的RFID中間件成為可能。針對這種技術(shù)發(fā)展趨勢,本文提出了一種面向移動設(shè)備的可靈活部署的RFID中間件SeaMobileMiddleware(SMM)。SMM能有效利用移動設(shè)備的內(nèi)存、CPU等空閑資源,在數(shù)據(jù)發(fā)往服務(wù)器之前做一系列的預(yù)處理,優(yōu)化原始數(shù)據(jù),降低網(wǎng)絡(luò)和服務(wù)器壓力,并在網(wǎng)絡(luò)故障時自動存儲數(shù)據(jù),保證數(shù)據(jù)的一致性。

1 RFID中間件SMM系統(tǒng)架構(gòu)

系統(tǒng)架構(gòu)對系統(tǒng)整體性能有很大影響,針對移動設(shè)備特點(diǎn),給出了一種面向移動設(shè)備的可靈活配置RFID中間件SMM系統(tǒng)架構(gòu),如圖1所示。

SMM的系統(tǒng)整體架構(gòu)包括三大模塊,其中:最下層為Device模塊,負(fù)責(zé)把物理的真實(shí)設(shè)備抽象為系統(tǒng)的Device對象;中間層為Task Manager模塊,是SMM的核心模塊,負(fù)責(zé)處理用戶和上層應(yīng)用系統(tǒng)的一切命令,把標(biāo)準(zhǔn)的XML命令轉(zhuǎn)化系統(tǒng)的Task對象并執(zhí)行,以用來控制Device對象;最上層是用戶接口(User Interface,UI)模塊,是基于標(biāo)準(zhǔn)的Java swing開發(fā)的圖形界面,使用戶可以在本地方便地控制Device對象。同時,SMM也提供標(biāo)準(zhǔn)Web service接口,方便其他遠(yuǎn)程系統(tǒng)控制和管理移動設(shè)備。

通過為移動設(shè)備提供本地UI和遠(yuǎn)程管理接口,SMM可以使用戶自定義流程,通過過濾和篩選將原始標(biāo)簽數(shù)據(jù)轉(zhuǎn)化成用戶想要的有意義數(shù)據(jù)。Task Manger提供的基于XML的標(biāo)準(zhǔn)接口也為SMM提供了很好的擴(kuò)展性和兼容性。

1

1.1 Device模塊

由于目前的Tag、Reader等種類繁多,標(biāo)準(zhǔn)各不相同,RFID中間件的核心功能一個就是屏蔽閱讀器傳輸標(biāo)準(zhǔn)的差異,為上層提供統(tǒng)一的接口。SMM通過抽象,把不同種類RFID閱讀器、PDA等移動設(shè)備作為不同類型Device對象進(jìn)行處理,并為每種Device配置Rule、Dispatcher和Driver三種屬性。不同Tag發(fā)出的原始數(shù)據(jù)通過Driver適配變?yōu)榻y(tǒng)一的數(shù)據(jù)格式,通過Rule將統(tǒng)一的數(shù)據(jù)格式轉(zhuǎn)化成上層系統(tǒng)需要的數(shù)據(jù),然后通過Dispatcher把數(shù)據(jù)發(fā)送到所需的上層應(yīng)用程序中。

1)Driver:考慮到實(shí)際應(yīng)用中的Tag、Reader的多樣性,Driver對不同類型Reader數(shù)據(jù)進(jìn)行適配處理,對數(shù)據(jù)進(jìn)行統(tǒng)一和格式化。SMM架構(gòu)中內(nèi)置了缺省的Driver,負(fù)責(zé)處理當(dāng)前大部分流行的Reader.同時,針對特殊需求,用戶可以開發(fā)特定Driver完成特殊Reader及Tag的數(shù)據(jù)標(biāo)準(zhǔn)化。

2)Rule:Rule可以自定義特定業(yè)務(wù)邏輯和數(shù)據(jù)過濾規(guī)則,從而把數(shù)據(jù)轉(zhuǎn)化成上層應(yīng)用程序需要的有意義的數(shù)據(jù)。

比如:通過Rule配置提取同一個廠商生產(chǎn)的Tag的數(shù)據(jù)。

3)Dispatcher:Dispatcher定義數(shù)據(jù)分發(fā)路徑,為數(shù)據(jù)提供路由功能??梢宰远xDispatcher,從而把數(shù)據(jù)發(fā)送到用戶需要的上層應(yīng)用程序中。另外,系統(tǒng)提供了離線Dispatcher,用于設(shè)備離線時的數(shù)據(jù)處理。當(dāng)設(shè)備處于離線狀態(tài)時,系統(tǒng)會把數(shù)據(jù)保存在嵌入式移動數(shù)據(jù)庫"Olite"上,當(dāng)系統(tǒng)連線時,離線Dispatcher自動將保存在"Olite"數(shù)據(jù)庫的歷史事件發(fā)送到上層應(yīng)用程序中,從而實(shí)現(xiàn)數(shù)據(jù)自動同步。

基于抽象思想,Device模塊把各種不同RFID閱讀器等抽象成不同對象。通過配置Rule、Dispatcher和Drive屬性等管理真實(shí)設(shè)備,將來源不同的Tag數(shù)據(jù)格式化為統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù),并按用戶定義的規(guī)則過濾數(shù)據(jù),轉(zhuǎn)發(fā)到對應(yīng)的上層系統(tǒng)中。

1.2 Task Manager模塊

RFID中間件的另一核心功能是對外提供標(biāo)準(zhǔn)接口,便于上層應(yīng)用程序調(diào)用和二次開發(fā)[10].SMM中Task Manager模塊通過管理所有命令和任務(wù)執(zhí)行提供標(biāo)準(zhǔn)輸入輸出。

Task Manager模塊具有如下功能:1)接受各種XML命令,解析XML命令找到對應(yīng)的任務(wù)對象并執(zhí)行后把結(jié)果封裝成標(biāo)準(zhǔn)的XML返回給調(diào)用者;2)提供高效的任務(wù)隊(duì)列來處理各種各樣的XML命令;3)提供動態(tài)的日志隊(duì)列使用戶能夠?qū)崟r監(jiān)控設(shè)備的相關(guān)信息。

基于Task Manager模塊,SMM提供圖形界面和Web Service兩種類型的請求來控制和管理移動設(shè)備,以使用戶獲取所需的數(shù)據(jù)。如果是SMM內(nèi)部請求,則提供標(biāo)準(zhǔn)的Java API;如果是外部請求,則提供基于XML的標(biāo)準(zhǔn)Web接口。圖3給出了Task Manager的實(shí)現(xiàn)流程。在模塊中,上層應(yīng)用程序通過HTTP協(xié)議把標(biāo)準(zhǔn)XML命令發(fā)送到SMM,SMM通過內(nèi)嵌的輕型HTTP Server Jetty處理各種HTTP請求。Jetty接受到標(biāo)準(zhǔn)的XML請求后,把各種XML命令給Task Manager模塊,Task Manager解析XML格式的命令后,通過Java反射得到對應(yīng)的Task對象。如果Task對象是同步的,則調(diào)用Task執(zhí)行方法,返回相應(yīng)結(jié)果并轉(zhuǎn)化成標(biāo)準(zhǔn)XML給Jetty服務(wù)器;如果Task對象是異步的,則放到任務(wù)隊(duì)列里面去,返回為空。

2_副本

任務(wù)隊(duì)列通過線程按照先進(jìn)先出的方法來執(zhí)行任務(wù)。為展示Task執(zhí)行過程,本文給出設(shè)備啟動過程展現(xiàn)上層應(yīng)用程序控制設(shè)備的過程。

1 2 > 
移動設(shè)備 RFID中間件

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門