物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

基于JMX的RFID中間件設(shè)計(jì)

作者:姜怡姝 黃俊 冷芋均
來源:RFID世界網(wǎng)
日期:2017-08-31 14:01:40
摘要:根據(jù)現(xiàn)有RFID設(shè)備存在的問題,以及RFID上層應(yīng)用的多樣性和數(shù)據(jù)的海量性,提出基于JMX的分布式RFID中間件架構(gòu)。該中間件架構(gòu)主要由硬件管理模塊、事件數(shù)據(jù)處理模塊、應(yīng)用服務(wù)模塊和管理控制模塊四部分組成。具體介紹各功能模塊的軟件設(shè)計(jì)和實(shí)現(xiàn)。結(jié)論:該分布式中間件實(shí)現(xiàn)了數(shù)據(jù)采集和應(yīng)用的分離,擁有高度的伸縮性,能方便系統(tǒng)的集成和擴(kuò)充。

  0 引 言

  RFID(radio frequency identification)技術(shù)即無線射頻識(shí)別技術(shù),具有通訊速率高、抗干擾能力強(qiáng)、保密性好、遠(yuǎn)距離和高速移動(dòng)物體識(shí)別等技術(shù)優(yōu)勢(shì)[1]。在實(shí)際應(yīng)用中,RFID標(biāo)簽附著在待識(shí)別物體上,當(dāng)標(biāo)簽進(jìn)入閱讀器的讀取范圍,閱讀器能無接觸地識(shí)別和讀取標(biāo)簽中的信息,并將信息發(fā)送給上層應(yīng)用軟件,從而達(dá)到自動(dòng)識(shí)別和收集相關(guān)信息的功能。RFID作為一種快速、實(shí)時(shí)、準(zhǔn)確的非接觸式信息采集與處理技術(shù),是物聯(lián)網(wǎng)系統(tǒng)的關(guān)鍵技術(shù)之一,被廣泛應(yīng)用于生產(chǎn)管理與控制、物流與供應(yīng)鏈管理、交通管理和控制、醫(yī)療管理等領(lǐng)域[24]。

  在RFID系統(tǒng)開發(fā)中,大多將RFID標(biāo)簽數(shù)據(jù)直接發(fā)送給應(yīng)用程序,由應(yīng)用程序?qū)?shù)據(jù)進(jìn)行處理,只有少部分企業(yè)引入了RFID中間件,不過仍存在很多問題。第一,現(xiàn)有RFID設(shè)備的種類繁多,生產(chǎn)廠家不同,所使用的標(biāo)準(zhǔn)也不同。當(dāng)RFID系統(tǒng)中的硬件設(shè)備、上層應(yīng)用或數(shù)據(jù)庫(kù)發(fā)生改變時(shí),RFID系統(tǒng)的其他部分就必須重新進(jìn)行部署或開發(fā),不利于RFID系統(tǒng)的升級(jí)和維護(hù)。第二,RFID應(yīng)用從閱讀器獲取的海量原始標(biāo)簽信息含有大量的冗余,并存在一定的錯(cuò)讀和漏讀現(xiàn)象,事件信息量低,不符合上層應(yīng)用對(duì)業(yè)務(wù)的需求,如不經(jīng)過過濾,容易造成網(wǎng)絡(luò)傳輸負(fù)擔(dān),所以在數(shù)據(jù)上傳上層客戶應(yīng)用之前要對(duì)RFID原始數(shù)據(jù)進(jìn)行過濾、分析、匯聚等操作。第三,現(xiàn)有RFID中間件主要針對(duì)企業(yè)專屬構(gòu)建,有的主要負(fù)責(zé)屏蔽硬件,有的主要負(fù)責(zé)數(shù)據(jù)處理,移植能力和可擴(kuò)展能力不夠。為了解決以上問題,本文通過對(duì)RFID系統(tǒng)中間件的分析研究,采用Java管理擴(kuò)展框架(java management extensions,JMX)和Web service技術(shù),設(shè)計(jì)了一種可擴(kuò)展度高、適應(yīng)性強(qiáng)的分布式RFID中間件。

  1 RFID中間件架構(gòu)設(shè)計(jì)

  RFID中間件是一種消息中間件,介于前端硬件設(shè)備和后端數(shù)據(jù)庫(kù)與應(yīng)用軟件之間,是應(yīng)用支撐軟件的一個(gè)重要組成部分[5]。本文提出的基于JMX框架的分布式RFID中間件,主要由硬件管理模塊、事件數(shù)據(jù)處理模塊、應(yīng)用服務(wù)模塊和管理控制模塊四部分組成,其中硬件管理模塊和事件數(shù)據(jù)處理模塊屬于中間件的邊緣代理。

  RFID中間件系統(tǒng),由硬件管理模塊完成原始RFID數(shù)據(jù)的采集,匹配不同協(xié)議的閱讀器驅(qū)動(dòng),將標(biāo)簽數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的格式并進(jìn)行緩存。然后由事件數(shù)據(jù)處理模塊根據(jù)上層客戶端制定的規(guī)則進(jìn)行匹配處理,形成滿足上層需求的事件信息。并由應(yīng)用服務(wù)模塊提供與上層交互的應(yīng)用程序接口,實(shí)現(xiàn)數(shù)據(jù)交互和信息發(fā)布。其中,由管理控制模塊完成對(duì)RFID閱讀器和整個(gè)中間件的配置管理與監(jiān)控,實(shí)現(xiàn)硬件管理模塊、事件數(shù)據(jù)處理模塊和應(yīng)用服務(wù)模塊的協(xié)調(diào)控制。中間件在RFID系統(tǒng)中的位置和結(jié)構(gòu)如圖1所示。

  中間件在RFID系統(tǒng)中的位置和結(jié)構(gòu)圖JMX可以跨越操作系統(tǒng)、網(wǎng)絡(luò)傳輸協(xié)議和系統(tǒng)體系架構(gòu),靈活地為系統(tǒng)、設(shè)備和應(yīng)用程序提供管理功能[6]。RFID中間件系統(tǒng)中的各功能模塊在JMX框架下都體現(xiàn)為MBean,根據(jù)需求由server在agent中進(jìn)行注冊(cè)管理。JMX agent利用各種適配器(adapter)和連接器(connector)對(duì)MBean進(jìn)行管理,JMX agent可以帶有任意多個(gè)適配器和連接器,并且容易進(jìn)行部署和撤銷,因此可以使用多種不同的方式訪問agent,有效地提高中間件的可擴(kuò)展能力。

基于JMX的RFID中間件設(shè)計(jì)

  在RFID中間件系統(tǒng)中,硬件管理模塊與閱讀器之間根據(jù)閱讀器協(xié)議進(jìn)行通信,硬件管理模塊和事件數(shù)據(jù)處理模塊內(nèi)部和相互間的數(shù)據(jù)傳輸采用JMX的notification機(jī)制實(shí)現(xiàn),應(yīng)用服務(wù)模塊、管理控制模塊和邊緣代理之間使用JMX的連接器進(jìn)行連接,應(yīng)用服務(wù)模塊與上層客戶端則通過Web service接口使用Http和JMS等傳遞XML數(shù)據(jù)。基于JMX的RFID中間件系統(tǒng)組成如圖2所示。

基于JMX的RFID中間件設(shè)計(jì)

  2 系統(tǒng)各模塊設(shè)計(jì)

  2.1 硬件管理模塊

  本文設(shè)計(jì)的硬件管理模塊主要包括閱讀器代理和數(shù)據(jù)緩沖隊(duì)列,以保證原始數(shù)據(jù)的正確采集和緩存。

  RFID硬件設(shè)備的種類繁多,使用的通信協(xié)議也各有不同(包括TCP/IP、串口、USB等),閱讀器代理起到底層協(xié)議適配作用,可根據(jù)不同的RFID閱讀器接口協(xié)議,完成閱讀器設(shè)備的驅(qū)動(dòng),建立網(wǎng)絡(luò)連接,并將閱讀器傳來的標(biāo)簽數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的編碼形式。中間件通過閱讀器代理完成其與閱讀器之間的數(shù)據(jù)交換,并實(shí)現(xiàn)對(duì)RFID閱讀器的狀態(tài)監(jiān)控和管理,有效地屏蔽了RFID底層設(shè)備之間的差異,實(shí)現(xiàn)應(yīng)用層與設(shè)備層的透明傳輸。在JMX架構(gòu)下,可方便地對(duì)閱讀器代理MBean進(jìn)行添加和刪除,如有需要也可以添加傳感器代理以適應(yīng)客戶需求。

  閱讀器代理接收的原始標(biāo)簽數(shù)據(jù)量十分巨大,事件數(shù)據(jù)處理模塊的過濾器處理相對(duì)復(fù)雜,所以事件數(shù)據(jù)處理模塊可能無法及時(shí)處理閱讀器傳來的標(biāo)簽數(shù)據(jù)。為了保證數(shù)據(jù)的實(shí)時(shí)處理需求,防止數(shù)據(jù)的溢出,為閱讀器代理分配一個(gè)緩沖隊(duì)列,將數(shù)據(jù)存入緩沖隊(duì)列進(jìn)行緩存。

  2.2 事件數(shù)據(jù)處理模塊

  事件數(shù)據(jù)處理模塊介于硬件管理模塊和應(yīng)用服務(wù)模塊之間,是中間件的核心模塊。它主要是根據(jù)客戶定制的規(guī)則,對(duì)原始數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)轉(zhuǎn)換為上層客戶端感興趣的事件信息。事件數(shù)據(jù)處理模塊包括數(shù)據(jù)校驗(yàn)單元、過濾器、規(guī)則接口和消息管理模塊。事件數(shù)據(jù)處理模塊結(jié)構(gòu)如圖3所示。   數(shù)據(jù)校驗(yàn)單元負(fù)責(zé)對(duì)緩沖隊(duì)列中的原始標(biāo)簽數(shù)據(jù)進(jìn)行有效性驗(yàn)證,丟棄有錯(cuò)誤的標(biāo)簽數(shù)據(jù),完成數(shù)據(jù)的初步過濾。規(guī)則接口則實(shí)現(xiàn)規(guī)則的新建、啟動(dòng)、暫停、刪除與查看已有規(guī)則等操作,完成對(duì)事件規(guī)則的管理。消息管理模塊主要負(fù)責(zé)事件生成的管理,將有關(guān)數(shù)據(jù)存入數(shù)據(jù)庫(kù)并將生成的事件上傳給應(yīng)用服務(wù)模塊。

基于JMX的RFID中間件設(shè)計(jì)

圖3 事件數(shù)據(jù)處理模塊結(jié)構(gòu)圖

  事件數(shù)據(jù)處理模塊最主要的部分是過濾器。根據(jù)業(yè)務(wù)的需求,我們可以靈活地設(shè)置過濾器,通過不同過濾器的組合,滿足上層應(yīng)用的需求。本文設(shè)計(jì)的過濾器主要有以下4種:

  1)冗余過濾器。標(biāo)簽數(shù)據(jù)冗余可分為時(shí)間重復(fù)和空間重復(fù)。時(shí)間重復(fù)即當(dāng)RFID標(biāo)簽在閱讀器讀取范圍內(nèi)停留較長(zhǎng)時(shí)間,閱讀器便會(huì)反復(fù)讀取并上報(bào)該標(biāo)簽數(shù)據(jù)。空間重復(fù)即標(biāo)簽出現(xiàn)在多個(gè)閱讀器的重疊讀取區(qū)域,多個(gè)閱讀器同時(shí)上報(bào)該標(biāo)簽數(shù)據(jù)。

  冗余過濾器首先將地理位置相鄰的多個(gè)閱讀器模擬為一個(gè)邏輯閱讀器,并將邏輯閱讀器范圍內(nèi)的所有閱讀器數(shù)據(jù)映射到該邏輯閱讀器。然后定義過濾器時(shí)間間隔T,當(dāng)檢測(cè)到有該邏輯閱讀器的標(biāo)簽數(shù)據(jù)到來,查詢標(biāo)簽記錄是否已存在該標(biāo)簽。如存在且在時(shí)間間隔T之內(nèi),則認(rèn)為是重復(fù)數(shù)據(jù)并進(jìn)行過濾;如果存在且已超過時(shí)間間隔T,則認(rèn)為是新標(biāo)簽并進(jìn)行輸出;如不存在該標(biāo)簽,則記錄該標(biāo)簽并輸出。

  2)平滑過濾器。平滑過濾器主要是過濾那些誤讀的標(biāo)簽數(shù)據(jù)。通過定義時(shí)間閥值T和計(jì)數(shù)閥值N,只有在時(shí)間T內(nèi)被讀到N次的標(biāo)簽才算有效標(biāo)簽。平滑過濾可分為區(qū)分閱讀器和不區(qū)分閱讀器,區(qū)分閱讀器需要每個(gè)閱讀器達(dá)到規(guī)定要求,不區(qū)分閱讀器只需要多個(gè)閱讀器讀到的次數(shù)并滿足要求即可。

  3)模式過濾器。可選過濾模式包括閱讀器ID、閱讀器類型、標(biāo)簽ID、生產(chǎn)廠家等,客戶選擇過濾模式,規(guī)定需要選擇的標(biāo)簽或閱讀器,每當(dāng)讀取到標(biāo)簽數(shù)據(jù),將該標(biāo)簽與過濾模式相匹配,選擇出符合客戶需求的標(biāo)簽信息。

  4)事件過濾器。將標(biāo)簽事件分為新出現(xiàn) (new event)、離開 (left event)、當(dāng)前存在(current event)和告警(alarm event)4種。new event表示這次出現(xiàn)而上次未出現(xiàn)的標(biāo)簽,left event表示上次出現(xiàn)而在一定時(shí)間內(nèi)沒有再次出現(xiàn)的標(biāo)簽,current event包括新出現(xiàn)的標(biāo)簽和上次出現(xiàn)且這次也出現(xiàn)的標(biāo)簽,alarm event即該區(qū)域不該出現(xiàn)的標(biāo)簽。

  2.3 應(yīng)用服務(wù)模塊

  本文設(shè)計(jì)的RFID中間件中,上層應(yīng)用可通過Web service接口完成與中間件的信息交互,也可以通過查詢服務(wù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)歷史數(shù)據(jù)的查詢。

  為了實(shí)現(xiàn)上層應(yīng)用對(duì)中間件跨平臺(tái)、跨語言的訪問和控制,應(yīng)用服務(wù)模塊向外提供Web service接口。Web service是一個(gè)應(yīng)用組件,通過網(wǎng)絡(luò)協(xié)議和規(guī)定的標(biāo)準(zhǔn)數(shù)據(jù)格式(Http,XML,Soap)為應(yīng)用程序提供數(shù)據(jù)和服務(wù)。應(yīng)用程序發(fā)送請(qǐng)求到Web service接口,RFID中間件解析該請(qǐng)求,并根據(jù)ECSpec中定義的數(shù)據(jù)采集、過濾和匯聚規(guī)則,進(jìn)行閱讀器數(shù)據(jù)處理,將處理后的數(shù)據(jù)生成報(bào)告(report)發(fā)送回應(yīng)用程序。不同協(xié)議、系統(tǒng)、語言和平臺(tái)的應(yīng)用程序只要實(shí)現(xiàn)該Web service接口的調(diào)用,就可以通過RFID中間件對(duì)RFID設(shè)備進(jìn)行訪問和控制。

  查詢服務(wù)則是提供接口給某些應(yīng)用程序直接查詢標(biāo)簽歷史數(shù)據(jù)。

  2.4 管理控制模塊

  管理控制模塊體現(xiàn)為系統(tǒng)管理界面,包括RFID閱讀器和中間件的配置管理與監(jiān)控。通過系統(tǒng)管理界面可對(duì)閱讀器ID、名稱、型號(hào)、生產(chǎn)廠商等進(jìn)行配置,對(duì)硬件管理模塊中閱讀器代理、事件數(shù)據(jù)處理模塊中過濾器等處理模塊進(jìn)行實(shí)時(shí)監(jiān)控,并對(duì)各模塊的連接關(guān)系進(jìn)行配置和管理。當(dāng)閱讀器或者中間件某個(gè)模塊出現(xiàn)異常時(shí),中間件管理控制模塊要及時(shí)產(chǎn)生報(bào)警,并完成相應(yīng)的處理操作,減少錯(cuò)誤數(shù)據(jù)。

  3 結(jié)束語

  根據(jù)RFID系統(tǒng)特點(diǎn)和RFID中間件功能需求,本文提出基于JMX的分布式RFID中間件架構(gòu),并從RFID中間件系統(tǒng)整體架構(gòu)、各功能模塊的軟件設(shè)計(jì)和實(shí)現(xiàn)等方面介紹了其構(gòu)建方法。該分布式RFID中間件實(shí)現(xiàn)了數(shù)據(jù)采集和應(yīng)用的分離,通過閱讀器代理方式,有效地屏蔽底層RFID硬件設(shè)備信息,并向外提供Web service接口,封裝RFID中間件向外邏輯,實(shí)現(xiàn)屏蔽上層應(yīng)用的功能。動(dòng)態(tài)靈活的JMX架構(gòu),模塊化的設(shè)計(jì),閱讀器代理、過濾器等功能模塊可根據(jù)需求進(jìn)行添加和裁剪,使RFID中間件擁有高度的伸縮性,方便系統(tǒng)集成和擴(kuò)充。參考文獻(xiàn):

  [1] 中華人民共和國(guó)科學(xué)技術(shù)部等十五部委.中國(guó)射頻識(shí)別(RFID)技術(shù)政策白皮書[R].北京:科技部,2006:15.

  [2] 張玉波.RFID中間件技術(shù)縱覽[J].中國(guó)自動(dòng)識(shí)別技術(shù),2008(1):7478.