0 引 言
RFID(radio frequency identification)技術即無線射頻識別技術,具有通訊速率高、抗干擾能力強、保密性好、遠距離和高速移動物體識別等技術優勢[1]。在實際應用中,RFID標簽附著在待識別物體上,當標簽進入閱讀器的讀取范圍,閱讀器能無接觸地識別和讀取標簽中的信息,并將信息發送給上層應用軟件,從而達到自動識別和收集相關信息的功能。RFID作為一種快速、實時、準確的非接觸式信息采集與處理技術,是物聯網系統的關鍵技術之一,被廣泛應用于生產管理與控制、物流與供應鏈管理、交通管理和控制、醫療管理等領域[24]。
在RFID系統開發中,大多將RFID標簽數據直接發送給應用程序,由應用程序對數據進行處理,只有少部分企業引入了RFID中間件,不過仍存在很多問題。第一,現有RFID設備的種類繁多,生產廠家不同,所使用的標準也不同。當RFID系統中的硬件設備、上層應用或數據庫發生改變時,RFID系統的其他部分就必須重新進行部署或開發,不利于RFID系統的升級和維護。第二,RFID應用從閱讀器獲取的海量原始標簽信息含有大量的冗余,并存在一定的錯讀和漏讀現象,事件信息量低,不符合上層應用對業務的需求,如不經過過濾,容易造成網絡傳輸負擔,所以在數據上傳上層客戶應用之前要對RFID原始數據進行過濾、分析、匯聚等操作。第三,現有RFID中間件主要針對企業專屬構建,有的主要負責屏蔽硬件,有的主要負責數據處理,移植能力和可擴展能力不夠。為了解決以上問題,本文通過對RFID系統中間件的分析研究,采用Java管理擴展框架(java management extensions,JMX)和Web service技術,設計了一種可擴展度高、適應性強的分布式RFID中間件。
1 RFID中間件架構設計
RFID中間件是一種消息中間件,介于前端硬件設備和后端數據庫與應用軟件之間,是應用支撐軟件的一個重要組成部分[5]。本文提出的基于JMX框架的分布式RFID中間件,主要由硬件管理模塊、事件數據處理模塊、應用服務模塊和管理控制模塊四部分組成,其中硬件管理模塊和事件數據處理模塊屬于中間件的邊緣代理。
RFID中間件系統,由硬件管理模塊完成原始RFID數據的采集,匹配不同協議的閱讀器驅動,將標簽數據轉換成統一的格式并進行緩存。然后由事件數據處理模塊根據上層客戶端制定的規則進行匹配處理,形成滿足上層需求的事件信息。并由應用服務模塊提供與上層交互的應用程序接口,實現數據交互和信息發布。其中,由管理控制模塊完成對RFID閱讀器和整個中間件的配置管理與監控,實現硬件管理模塊、事件數據處理模塊和應用服務模塊的協調控制。中間件在RFID系統中的位置和結構如圖1所示。
中間件在RFID系統中的位置和結構圖JMX可以跨越操作系統、網絡傳輸協議和系統體系架構,靈活地為系統、設備和應用程序提供管理功能[6]。RFID中間件系統中的各功能模塊在JMX框架下都體現為MBean,根據需求由server在agent中進行注冊管理。JMX agent利用各種適配器(adapter)和連接器(connector)對MBean進行管理,JMX agent可以帶有任意多個適配器和連接器,并且容易進行部署和撤銷,因此可以使用多種不同的方式訪問agent,有效地提高中間件的可擴展能力。
在RFID中間件系統中,硬件管理模塊與閱讀器之間根據閱讀器協議進行通信,硬件管理模塊和事件數據處理模塊內部和相互間的數據傳輸采用JMX的notification機制實現,應用服務模塊、管理控制模塊和邊緣代理之間使用JMX的連接器進行連接,應用服務模塊與上層客戶端則通過Web service接口使用Http和JMS等傳遞XML數據?;贘MX的RFID中間件系統組成如圖2所示。
2 系統各模塊設計
2.1 硬件管理模塊
本文設計的硬件管理模塊主要包括閱讀器代理和數據緩沖隊列,以保證原始數據的正確采集和緩存。
RFID硬件設備的種類繁多,使用的通信協議也各有不同(包括TCP/IP、串口、USB等),閱讀器代理起到底層協議適配作用,可根據不同的RFID閱讀器接口協議,完成閱讀器設備的驅動,建立網絡連接,并將閱讀器傳來的標簽數據轉換成統一的編碼形式。中間件通過閱讀器代理完成其與閱讀器之間的數據交換,并實現對RFID閱讀器的狀態監控和管理,有效地屏蔽了RFID底層設備之間的差異,實現應用層與設備層的透明傳輸。在JMX架構下,可方便地對閱讀器代理MBean進行添加和刪除,如有需要也可以添加傳感器代理以適應客戶需求。
閱讀器代理接收的原始標簽數據量十分巨大,事件數據處理模塊的過濾器處理相對復雜,所以事件數據處理模塊可能無法及時處理閱讀器傳來的標簽數據。為了保證數據的實時處理需求,防止數據的溢出,為閱讀器代理分配一個緩沖隊列,將數據存入緩沖隊列進行緩存。
2.2 事件數據處理模塊
事件數據處理模塊介于硬件管理模塊和應用服務模塊之間,是中間件的核心模塊。它主要是根據客戶定制的規則,對原始數據進行處理,將數據轉換為上層客戶端感興趣的事件信息。事件數據處理模塊包括數據校驗單元、過濾器、規則接口和消息管理模塊。事件數據處理模塊結構如圖3所示。 數據校驗單元負責對緩沖隊列中的原始標簽數據進行有效性驗證,丟棄有錯誤的標簽數據,完成數據的初步過濾。規則接口則實現規則的新建、啟動、暫停、刪除與查看已有規則等操作,完成對事件規則的管理。消息管理模塊主要負責事件生成的管理,將有關數據存入數據庫并將生成的事件上傳給應用服務模塊。
圖3 事件數據處理模塊結構圖
事件數據處理模塊最主要的部分是過濾器。根據業務的需求,我們可以靈活地設置過濾器,通過不同過濾器的組合,滿足上層應用的需求。本文設計的過濾器主要有以下4種:
1)冗余過濾器。標簽數據冗余可分為時間重復和空間重復。時間重復即當RFID標簽在閱讀器讀取范圍內停留較長時間,閱讀器便會反復讀取并上報該標簽數據??臻g重復即標簽出現在多個閱讀器的重疊讀取區域,多個閱讀器同時上報該標簽數據。
冗余過濾器首先將地理位置相鄰的多個閱讀器模擬為一個邏輯閱讀器,并將邏輯閱讀器范圍內的所有閱讀器數據映射到該邏輯閱讀器。然后定義過濾器時間間隔T,當檢測到有該邏輯閱讀器的標簽數據到來,查詢標簽記錄是否已存在該標簽。如存在且在時間間隔T之內,則認為是重復數據并進行過濾;如果存在且已超過時間間隔T,則認為是新標簽并進行輸出;如不存在該標簽,則記錄該標簽并輸出。
2)平滑過濾器。平滑過濾器主要是過濾那些誤讀的標簽數據。通過定義時間閥值T和計數閥值N,只有在時間T內被讀到N次的標簽才算有效標簽。平滑過濾可分為區分閱讀器和不區分閱讀器,區分閱讀器需要每個閱讀器達到規定要求,不區分閱讀器只需要多個閱讀器讀到的次數并滿足要求即可。
3)模式過濾器。可選過濾模式包括閱讀器ID、閱讀器類型、標簽ID、生產廠家等,客戶選擇過濾模式,規定需要選擇的標簽或閱讀器,每當讀取到標簽數據,將該標簽與過濾模式相匹配,選擇出符合客戶需求的標簽信息。
4)事件過濾器。將標簽事件分為新出現 (new event)、離開 (left event)、當前存在(current event)和告警(alarm event)4種。new event表示這次出現而上次未出現的標簽,left event表示上次出現而在一定時間內沒有再次出現的標簽,current event包括新出現的標簽和上次出現且這次也出現的標簽,alarm event即該區域不該出現的標簽。
2.3 應用服務模塊
本文設計的RFID中間件中,上層應用可通過Web service接口完成與中間件的信息交互,也可以通過查詢服務實現數據庫歷史數據的查詢。
為了實現上層應用對中間件跨平臺、跨語言的訪問和控制,應用服務模塊向外提供Web service接口。Web service是一個應用組件,通過網絡協議和規定的標準數據格式(Http,XML,Soap)為應用程序提供數據和服務。應用程序發送請求到Web service接口,RFID中間件解析該請求,并根據ECSpec中定義的數據采集、過濾和匯聚規則,進行閱讀器數據處理,將處理后的數據生成報告(report)發送回應用程序。不同協議、系統、語言和平臺的應用程序只要實現該Web service接口的調用,就可以通過RFID中間件對RFID設備進行訪問和控制。
查詢服務則是提供接口給某些應用程序直接查詢標簽歷史數據。
2.4 管理控制模塊
管理控制模塊體現為系統管理界面,包括RFID閱讀器和中間件的配置管理與監控。通過系統管理界面可對閱讀器ID、名稱、型號、生產廠商等進行配置,對硬件管理模塊中閱讀器代理、事件數據處理模塊中過濾器等處理模塊進行實時監控,并對各模塊的連接關系進行配置和管理。當閱讀器或者中間件某個模塊出現異常時,中間件管理控制模塊要及時產生報警,并完成相應的處理操作,減少錯誤數據。
3 結束語
根據RFID系統特點和RFID中間件功能需求,本文提出基于JMX的分布式RFID中間件架構,并從RFID中間件系統整體架構、各功能模塊的軟件設計和實現等方面介紹了其構建方法。該分布式RFID中間件實現了數據采集和應用的分離,通過閱讀器代理方式,有效地屏蔽底層RFID硬件設備信息,并向外提供Web service接口,封裝RFID中間件向外邏輯,實現屏蔽上層應用的功能。動態靈活的JMX架構,模塊化的設計,閱讀器代理、過濾器等功能模塊可根據需求進行添加和裁剪,使RFID中間件擁有高度的伸縮性,方便系統集成和擴充。
責任編輯:ct
評論
查看更多