RFID中間件系統關鍵模塊的設計與實現
0 引言
射頻識別技術是一種利用射頻通信實現的非接觸式自動識別技術(以下通稱RFID技術)。RFID技術成功的關鍵除了標簽的價格、天線的設計、波段的標準化、設備的認證之外,最重要的是要有關鍵的應用軟件才能迅速推廣。而中間件可稱為RFID技術運作的中樞,因為它可以促進關鍵應用的問世。J2EE是一個標準中間件體系結構,旨在簡化和規范多層分布式企業應用系統的開發和部署。本文將介紹RFID中間件系統的設計和關鍵模塊的實現方法,根據系統可移植性、可擴展性、可維護性和易集成性的要求,以J2EE技術作為開發平臺,基于三層B/S模式,闡述了分布式RFID中間件中關鍵模塊的實現方法,采用面向對象的方法進行設計和開發。
1 RFID中間件系統概述
企業在實施RFID項目改造期間,發現最耗時、耗力、復雜度和難度最高的問題是如何保證RFID數據正確導入企業的管理系統,為此企業做大量的工作以保證RFID數據的正確性的。經企業和研究機構的多方研究、論證、實驗,最終找到了一個比較好的解決方法,即RFID中間件。
RFID中間件是實現RFID硬件設備與應用系統之間數據傳輸、過濾、數據格式轉換的一種中間程序,將RFID讀寫器讀取的各種數據信息,經過中間件提取、解密、過濾、格式轉換、導入企業的管理信息系統,并通過應用系統反應在程序界面上,供操作者瀏覽、選擇、修改、查詢。中間件技術也降低了應用開發的難度,使開發者不需要直接面對底層架構,而通過中間件進行調用。
RFID中間件是一種消息導向的軟件中間件,信息是以消息的形式從一個程序模塊傳遞到另一個或多個程序模塊。消息可以非同步的方式傳送,所以傳送者不必等待回應。RFID中間件在原有的企業應用中間件發展的基礎之上,結合自身應用特性進一步擴展并深化了企業應用中間件在企業中的應用。其主要特點是:
(1)獨立性,RFID中間件獨立并介于RFID讀寫器與后端應用程序之間,不依賴于某個RFID系統和應用系統,并且能夠與多個RFID讀寫器以及多個后端應用程序連接,以減輕架構與維護的復雜性。
(2)數據流,RFID中間件最重要的組成部分,它的主要任務在于將實體對象格式轉換為信息環境下的虛擬對象,因此數據處理是RFID最重要的功能。RFID中間件具有數據的采集、過濾、整合與傳遞等特性,以便將正確的對象信息傳到企業后端的應用系統。
(3)處理流,RFID中間件是一個消息中間件,功能是提供順序的消息流,具有數據流設計與管理的能力。在系統中需要維護數據的傳輸路徑,數據路由和數據分發規則。同時在數據傳輸中對數據的安全性進行管理,包括數據的一致性,保證接收方收到的數據和發送方一致。同時還要保證數據傳輸中的安全性。
2 系統總體設計
2.1 系統結構
(1)系統網絡結構如圖1所示。本文所設計的RFID中間件系統包括兩部分,系統管理服務器和數據采集端。數據采集端的計算機連接著讀寫器,系統管理服務器端對數據采集端的讀寫器進行控制,讀寫器采集到的原始RFID數據首先傳遞到數據采集端,經過初步的處理后,傳送到系統管理服務器進行進一步的處理。

(2)系統軟件結構。系統管理服務器端、數據采集端的功能模塊如圖2所示。

2.2 軟件基本組成模塊
RFID中間件在應用中的作用主要是RFID標簽數據處理、數據處理組件管理和RFID讀寫器的監控管理等功能。通過這幾個功能模塊完成了對系統所要處理的各種對象的管理,同時,這幾個分散的系統本身也需要管理。通過系統管理模塊可以將這幾個管理模塊統一起來,使得整個分布式RFID中間件系統渾然一體。
2.2.1 RFID中間件系統管理模塊
系統管理模塊采用Browser/Server模式的MvC框架,即表示層、控制層和模型層。表示層是用戶與系統的接口,是用戶工作的界面。對RFID中間件的管理、讀寫器的控制和監控、標簽數據查詢、數據處理模塊的管理等都是通過表示層發送請求。控制層主要負責請求的分發,接收用戶發送的所有請求,并按照特定的邏輯分發給其他模塊作進一步處理。模型層主要負責業務流程、狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。
2.2.2 讀寫器監控和管理模塊
讀寫器監控和管理模塊基于JMX管理框架,將讀寫器開發包用統一接口進行封裝,并將接口方法作為RMI遠程方法發布。對讀寫器的控制是在管理服務器中進行的,將對讀寫器的遠程方法調用封裝為一個MBean組件,注冊到服務器中的JMBeanServer中,這樣可以通過JMX管理框架來監控管理讀寫器。通過封裝,以編程的方式彌補了不同廠商讀寫器開發包不同的差異,將對讀寫器的控制封裝成接口統一的MBean組件。另外,JMX管理框架還提供時間服務、通知服務、監視服務和角色服務等服務。JMX管理框架如圖3所示。

2.2.3 數據消息處理模塊
數據消息處理模塊基于JMS消息服務體系,這種組件體系結構將支持任意數據處理過程。業務分析人員可以對數據處理過程進行建模。一個數據處理過程實際上就是一些步驟的聚集。這些步驟包括數據過濾、格式轉換、路由等。每一個類別將被抽象,并且建模成為一個JMX組件,如圖4所示的消息處理組件的流程。

3 系統關鍵模塊實現
本系統基于J2EE技術開發,其中組件管理基于JMX管理框架,包括:讀寫器組件、數據采集端組件、數據處理組件等;RFID數據消息的傳遞基于JMs消息服務體系。
本文的RIFD中間件系統開發工具采用Eclipse3.2,應用服務器軟件采用JBOSS4.0,其中JBOSS4.0自帶Web容器為Tomcat5.5。管另服務器端采用了基于Struts的MVC多層次結構框架,數據服務層則采用MySQL5.0數據庫。SFID中間件系統中的關鍵模塊是具有典型開發意義的讀寫器管理組件和數據處理組件,下面對讀寫器管理組件中時間服務的實現和數據處理組件的實現進行描述。
3.1 讀寫器模塊時間服務
JMx(Java Management Extensions,Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。在JMX規范中,管理組件是一個能代表管理資源的Java對象,遵從一定的設計模式,實現該規范定義的特定的接口。該定義保證了所有的管理組件以一種標準的方式來表示被管理資源。管理接口就是被管理資源暴露出的一些信息,通過對這些信息的修改就能控制被管理資源。管理接口包括:能被接觸的屬性值;能夠執行的操作;能發出的通知事件等。
在本系統中將每個讀寫器模塊的遠程方法調用封裝為一個管理組件(MBean)作為JMX服務器的實例注冊到JMX服務器中。通過JMX框架對讀寫器進行監控和管理,使RFID中間件系統能提供管理、監控讀寫器的功能。本部分描述為讀寫器管理組件添加時間服務,以達到定時控制讀寫器的目的。JMX時間服務在指定的日期和時間觸發消息;也可以在一個固定間隔重復觸發消息。時間服務由一個MBean實現并可以管理,能夠發送它指定的TimerNotification類的消息實例。javax.management.NotificationListener由想要接收通知的對象來實現,實現方法handleNotification。對于定期通知,則使用固定延遲執行方案,如在Timer中指定的那樣。為了使用固定速率執行方案,要使用addNotification方法。圖5為讀寫器時間服務的UML設計圖。

3.2 數據消息處理組件
JMS(Java Message Service)是訪問企業消息系統的標準API,定義了Java中訪問消息中間件的接口,但JMS只是接口,并沒有給予實現,實現JMS接口的消息中間件稱為JMS提供者(JMS Provider)。JBoss JMS的服務體系結構中,JMS Provider叫做JbossMQ。
在JMS框架中運轉的方法如下:
(1)得到一個J-NDI初始化上下文(Context)。
(2)根據上下文來查找一個連接工廠。
(3)從連接工廠得到一個連接(Connect)。
(4)通過連接來建立一個會話(Session)。
(5)查找目的地(Topic/Queue)。
(6)根據會話以及目的地來建立消息制造者(TopicPublisher/QueueSender)和消費者(TopicSubscrib.er/QueueReceiver)。
JBossMQ是通過xml文件 bossmq.destinations.service.xml進行配置的。以下是獲得JBOSS JNDI初始化上下文(Context)的代碼:
Hashtable props=new Hashtable();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER —URL,ip+":1099");
props.put("java.naming.rmi.security.manager","yes");
props.put(Context.URL—PKG—PREFIXES,"org.jboss.naming");
Context context=new InitialContext(props)
下面將描述創建一個MBean來實現一個數據處理節點。消息組件可以按照MBean來部署。消息處理組件執行功能:從源隊列中獲取消息,對消息執行處理,然后將結果消息放置到目標隊列。圖6顯示了這個組件的UML設計。

通過應用JMX體系結構,可以公開類方法,這樣他們可以在運行時被發現和部署。通過一個簡單的可處理接口,可以在JMS的MessageProcessor消息邏輯和OrderProcessor類的數據處理邏輯之間創建一個關注點分離。這就降低了JMS以及數據處理邏輯類之間的耦合度,并增加了消息代碼的可重用性。OrderProcessor類是數據處理邏輯,其中包括過濾、格式轉換、加解密、路由等。
4 結束語
RFID中間件是RFID系統中的重要組成。本文針對REID中間件的功能需求,從REID中間件、系統總體結構、軟件設計與實現等方面系統地闡述了一種基于J2EE的分布式RFID中間件的構建方法,實現了J2EE技術與RFID技術的結合;綜合應用JMX,JMS,Struts技術,設計并實現了RFID中間件系統中的關鍵模塊,具有一定的工程指導和借鑒作用。