JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用_第1頁(yè)
JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用_第2頁(yè)
JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用_第3頁(yè)
JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用_第4頁(yè)
JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯JMX和JMS技術(shù)在RFID中間件設(shè)計(jì)的應(yīng)用-設(shè)計(jì)應(yīng)用

RFID是一種非接觸式的自動(dòng)識(shí)別技術(shù),它通過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無(wú)須人工干預(yù)。作為條形碼的無(wú)線版本,RFID技術(shù)具有條形碼所不具備的防水、防磁、耐高溫、讀取距離大、標(biāo)簽上數(shù)據(jù)可以加密、存儲(chǔ)數(shù)據(jù)容量更大、存儲(chǔ)信息更改自如等特點(diǎn),其應(yīng)用將給零售、物流等產(chǎn)業(yè)帶來(lái)革命性變化。

RFID技術(shù)具有很多突出的優(yōu)點(diǎn):實(shí)現(xiàn)了無(wú)源和免接觸操作,應(yīng)用便利,無(wú)機(jī)械磨損,壽命長(zhǎng),機(jī)具無(wú)直接對(duì)終用戶開(kāi)放的物理接口,能更好地保證機(jī)具的安全性;數(shù)據(jù)安全方面除標(biāo)簽的密碼保護(hù)外,數(shù)據(jù)部分可用一些算法實(shí)現(xiàn)安全管理,如DES、RSA、DSA、MD5等,讀寫(xiě)機(jī)具與卡之間也可相互,實(shí)現(xiàn)安全通信和存儲(chǔ);總體成本一直處于下降之中,越來(lái)越接近接觸式IC卡的成本,甚至更低,為其大量應(yīng)用奠定了基礎(chǔ)。

面向服務(wù)的體系結(jié)構(gòu)(Service-OrientedArchitecture,SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。它將幫助企業(yè)系統(tǒng)架構(gòu)者以更迅速、更可靠、更具重用性架構(gòu)整個(gè)業(yè)務(wù)系統(tǒng)。較之以往,以SOA架構(gòu)的系統(tǒng)能夠更加從容地面對(duì)業(yè)務(wù)的急劇變化。

基于上述分析,本文提出了一種基于SOA的RFID中間件方案。該方案可把各個(gè)應(yīng)用RFID技術(shù)的功能抽象成服務(wù),應(yīng)用基于J2EE構(gòu)建方法,綜合應(yīng)用JMX、JMS、Struts等技術(shù)。企業(yè)應(yīng)用系統(tǒng)通過(guò)請(qǐng)求服務(wù)的方式來(lái)獲取RFID中間件提供的服務(wù)。用XML進(jìn)行數(shù)據(jù)傳輸,并提供WebService接口。

1技術(shù)基礎(chǔ)

1.1RFID中間件

RFID中間件是一種面向消息的中間件(Message-OrientedMiddleware,MOM),信息(Information)是以消息(Message)的形式,從一個(gè)程序傳送到另一個(gè)或多個(gè)程序。信息可以以異步(Asynchronous)的方式傳送,所以傳送者不必等待回應(yīng)。面向消息的中間件包含的功能不僅是傳遞(Passing)信息,還必須包括解譯數(shù)據(jù)、安全性、數(shù)據(jù)廣播、錯(cuò)誤恢復(fù)、定位網(wǎng)絡(luò)資源、找出符合成本的路徑、消息與要求的優(yōu)先次序以及延伸的除錯(cuò)工具等服務(wù)。

RFID中間件扮演RFID標(biāo)簽和應(yīng)用程序之間的中介角色,從應(yīng)用程序端使用中間件所提供一組通用的應(yīng)用程序接口(API),即能連到RFID讀寫(xiě)器,讀取RFID標(biāo)簽數(shù)據(jù)。這樣一來(lái),即使存儲(chǔ)RFID標(biāo)簽情報(bào)的數(shù)據(jù)庫(kù)軟件或后端應(yīng)用程序增加或改由其他軟件取代,或者讀寫(xiě)RFID讀寫(xiě)器種類增加等情況發(fā)生時(shí),應(yīng)用端不需修改也能處理,省去多對(duì)多連接的維護(hù)復(fù)雜性問(wèn)題。

目前提供RFID中間件平臺(tái)的廠商主要有IBM、Oracle、Microsoft、SAP、Sun公司。對(duì)于這些廠商,RFID中間件只是其現(xiàn)有軟件的擴(kuò)展,其RFID產(chǎn)品可以迅速方便地與各自現(xiàn)有的軟件產(chǎn)品線集成在一起。但缺點(diǎn)是其產(chǎn)品對(duì)該廠商其他軟件產(chǎn)品的依賴性比較大。

1.2面向服務(wù)的體系結(jié)構(gòu)SOA

面向服務(wù)的體系結(jié)構(gòu)是一種技術(shù)架構(gòu)風(fēng)格,它代表了一種開(kāi)放的、敏捷的、可擴(kuò)展的、可組合的架構(gòu)[2],定義了服務(wù)提供者和消費(fèi)者之間的松散耦合關(guān)系。其業(yè)務(wù)敏捷的特點(diǎn),幫助企業(yè)把業(yè)務(wù)變得更加靈活,能夠適時(shí)、快速地響應(yīng)變化。SOA的概念就是服務(wù)[3],其基本結(jié)構(gòu)如圖1所示。其中包含服務(wù)的3個(gè)基本角色:服務(wù)提供者、服務(wù)請(qǐng)求者和服務(wù)注冊(cè)。在這些角色之間使用了3種操作:服務(wù)發(fā)布、服務(wù)發(fā)現(xiàn)和服務(wù)綁定。作為SOA的一種實(shí)現(xiàn)技術(shù),WebServices提供了基于XML的標(biāo)準(zhǔn)接口,具有完好的封裝性、松散的耦合性、協(xié)議規(guī)范的標(biāo)準(zhǔn)性以及高度的可集成性等特點(diǎn),能夠良好地滿足SOA應(yīng)用模式的需求。

1.3JMX和JMS

JMX(JavaManagementExtensions,即Java管理擴(kuò)展)是一個(gè)為應(yīng)用程序、設(shè)備、系統(tǒng)等植入管理功能的框架。JMX可以跨越一系列異構(gòu)操作系統(tǒng)平臺(tái)、系統(tǒng)體系結(jié)構(gòu)和網(wǎng)絡(luò)傳輸協(xié)議,靈活的開(kāi)發(fā)無(wú)縫集成的系統(tǒng)、網(wǎng)絡(luò)和服務(wù)管理應(yīng)用。在JMX規(guī)范中,管理組件是一個(gè)能代表管理資源的Java對(duì)象,遵從一定的設(shè)計(jì)模式,實(shí)現(xiàn)該規(guī)范定義的特定的接口。該定義保證了所有的管理組件以一種標(biāo)準(zhǔn)的方式來(lái)表示被管理資源。管理接口就是被管理資源暴露出的一些信息,通過(guò)對(duì)這些信息的修改能夠控制被管理資源。管理接口包括:能被接觸的屬性值、能夠執(zhí)行的操作、能發(fā)出的通知事件等[4].

JMS(JavaMessagingService)是Java平臺(tái)上有關(guān)面向消息中間件的技術(shù)規(guī)范,它便于消息系統(tǒng)中的Java應(yīng)用程序進(jìn)行消息交換,并且通過(guò)提供標(biāo)準(zhǔn)的產(chǎn)生、發(fā)送、接收消息的接口簡(jiǎn)化企業(yè)應(yīng)用的開(kāi)發(fā),翻譯為Java消息服務(wù)。在JMS框架中運(yùn)轉(zhuǎn)的方法如下:

(1)得到1個(gè)JNDI初始化上下文(Context)。

(2)根據(jù)上下文以查找1個(gè)連接工廠。

(3)從連接工廠得到1個(gè)連接(Connect)。

(4)通過(guò)連接以建立1個(gè)會(huì)話(Session)。

(5)查找目的地(Topic/Queue)。

(6)根據(jù)會(huì)話以及目的地以建立消息制造者(TopicPub

lisher/QueueSender)和消費(fèi)者(TopicSubscrib-er/QueueReceiver)。

2基于SOA的RFID中間件架構(gòu)

利用SOA松耦合、面向業(yè)務(wù)的特點(diǎn),結(jié)合RFID中間件實(shí)現(xiàn)的應(yīng)用系統(tǒng)集成的方案可提供豐富的接口,能夠幫助實(shí)現(xiàn)對(duì)RFID設(shè)備的管理以及對(duì)數(shù)據(jù)的處理,簡(jiǎn)化了對(duì)底層設(shè)備應(yīng)用的支持,避免了對(duì)底層設(shè)備的低級(jí)別接口的處理。利用WebService技術(shù)實(shí)現(xiàn)RFID中間件與企業(yè)系統(tǒng)的集成,完成兩者的松耦合集成。

基于SOA的RFID中間件架構(gòu),其基礎(chǔ)架構(gòu)層分為設(shè)備管理層、事件處理層和服務(wù)接口層,并通過(guò)WebService技術(shù)包裝了每1層相應(yīng)的功能,且進(jìn)行了具體實(shí)現(xiàn)。本文重點(diǎn)介紹該RFID中間件架構(gòu)中的基礎(chǔ)架構(gòu)的3個(gè)功能層[5].這3個(gè)層次有著明確的功能劃分和層間的交互接口。RFID中間件架構(gòu)如圖2所示。

中間件設(shè)計(jì)包括RFID設(shè)備管理組件和事件過(guò)程管理組件。RFID設(shè)備管理組件是分布式的代理,負(fù)責(zé)第1級(jí)的事件過(guò)濾;設(shè)備管理包括設(shè)備詢問(wèn)器,對(duì)每1個(gè)閱讀器和傳感器設(shè)備,代理必須互相作用。過(guò)程管理組件是通過(guò)RFID事件下的過(guò)濾,把事件放置到交易環(huán)境中,然后發(fā)布應(yīng)用層事件ALE.

2.1設(shè)備管理層

設(shè)備管理層位于架構(gòu)的層,直接與閱讀器交互,實(shí)現(xiàn)的主要功能包括:

(1)采集射頻卡上的數(shù)據(jù)。

(2)對(duì)于來(lái)自不同類型的閱讀器的數(shù)據(jù)進(jìn)行適配處理,得到統(tǒng)一的、格式化的數(shù)據(jù),并進(jìn)行數(shù)據(jù)校驗(yàn)。

(3)將校驗(yàn)無(wú)誤的數(shù)據(jù)按照用戶定義的協(xié)議進(jìn)行封包,并將消息包發(fā)送到事件處理層的消息系統(tǒng)。

依據(jù)其實(shí)現(xiàn)的功能,分別針對(duì)射頻卡閱讀器模塊、閱讀器接口、數(shù)據(jù)校驗(yàn)和數(shù)據(jù)打包4個(gè)方面進(jìn)行研究和開(kāi)發(fā)。閱讀器模塊是根據(jù)硬件供應(yīng)商提供的規(guī)范進(jìn)行編碼實(shí)現(xiàn)的;閱讀器接口主要解決將來(lái)自協(xié)議格式的數(shù)據(jù)轉(zhuǎn)化為系統(tǒng)所需要的EPC碼;數(shù)據(jù)校驗(yàn)采用CRC校驗(yàn);數(shù)據(jù)打包先依據(jù)獲取的卡片編碼中"數(shù)據(jù)分類"內(nèi)容,判斷出該標(biāo)簽數(shù)據(jù)屬于哪種類型,然后按照這種數(shù)據(jù)類型將標(biāo)簽數(shù)據(jù)封裝成相應(yīng)的消息包。

由于每個(gè)ALE閱讀器事件流可能來(lái)自多個(gè)物理設(shè)備配置表,因此設(shè)備管理器為每個(gè)設(shè)備表創(chuàng)建1個(gè)詢問(wèn)器,并通知詢問(wèn)器哪種傳感器被綁定到指定的閱讀器上。詢問(wèn)器發(fā)送傳感器事件流到設(shè)備管理器,設(shè)備管理器將1個(gè)或多個(gè)傳感器事件流構(gòu)造成閱讀器事件。設(shè)備管理器把初步處理的閱讀器事件發(fā)送到ALE服務(wù)器。

詢問(wèn)器代理:1個(gè)設(shè)備管理器的配置由它管理的設(shè)備和它要咨詢的詢問(wèn)器組成,然后與它所對(duì)應(yīng)的設(shè)備管理器交互。每個(gè)設(shè)備概要表由物理設(shè)備屬性和詢問(wèn)器配置組成。物理設(shè)備屬性是被命名過(guò)的傳感器。

事件信息空間:事件信息空間類似于公共的容錯(cuò)事件信息經(jīng)紀(jì)人。它支持異步接收來(lái)自設(shè)備管理器的事件、ALE事件以及其他來(lái)自事件過(guò)程管理的配置需求。事件信息空間同時(shí)提供一個(gè)存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制,確保重要的事件在中斷的網(wǎng)絡(luò)或其他組件失效的情況下不丟失[5].

在系統(tǒng)中,將每個(gè)閱讀器模塊的遠(yuǎn)程方法調(diào)用封裝為1個(gè)管理組件(MBean)作為JMX服務(wù)器的實(shí)例注冊(cè)到JMX服務(wù)器中。通過(guò)JMX框架對(duì)閱讀器進(jìn)行監(jiān)控和管理,使RFID中間件系統(tǒng)能提供管理、監(jiān)控閱讀器的功能。本部分描述為閱讀器管理組件添加時(shí)間服務(wù),以達(dá)到定時(shí)控制閱讀器的目的。

2.2事件處理層

在RFID系統(tǒng)中,一方面是各種應(yīng)用程序以不同的方式頻繁地從RFID系統(tǒng)中取得數(shù)據(jù);另一方面卻是有限的網(wǎng)絡(luò)帶寬,其存在的矛盾,使其有必要設(shè)計(jì)1套消息傳遞系統(tǒng),使設(shè)備管理層產(chǎn)生的事件能夠傳遞到消息系統(tǒng)中,由事件管理過(guò)程進(jìn)行處理,然后把數(shù)據(jù)傳遞到相關(guān)的應(yīng)用系統(tǒng)。在這種模式下,閱讀器不必關(guān)心哪個(gè)應(yīng)用系統(tǒng)需要什么數(shù)據(jù)。同時(shí),應(yīng)用程序也不需要維護(hù)與各個(gè)閱讀器之間的網(wǎng)絡(luò)通道,僅需要將需求發(fā)送到消息系統(tǒng)中即可。由此,設(shè)計(jì)出的消息系統(tǒng)應(yīng)具有如下功能:(1)數(shù)據(jù)緩存功能;(2)基于內(nèi)容的路由功能;(3)數(shù)據(jù)分類存儲(chǔ)功能[6].

下面將描述創(chuàng)建一個(gè)MBean來(lái)實(shí)現(xiàn)一個(gè)數(shù)據(jù)處理節(jié)點(diǎn)。消息組件可以按照MBean來(lái)部署。消息處理組件執(zhí)行功能:從源隊(duì)列中獲取消息,對(duì)消息執(zhí)行處理,然后將結(jié)果消息放置到目標(biāo)隊(duì)列。消息處理UML圖如圖3所示。

JBossMQ是通過(guò)xml文件jbossmq-destinations-service.xml進(jìn)行配置的。以下是獲得JBOSSJNDI初始化上下文(Context)的代碼:

Hashtableprops=newHashtable();

props.put(Context.INITIALCONTEXTFACTORY,"erfaces.NamingContextFactory");

props.put(Context.PROVIDERURL,ip+":1099");

props.put("java.naming.rmi.security.manager","yes");

props.put(Context.URLPKGPREFIXES,"org.jboss.naming");

Contextcontext=newInitialContext(props);

來(lái)自消息系統(tǒng)的消息以臨時(shí)XML文件的形式和磁盤(pán)文件方式保存,供數(shù)據(jù)接口使用。消息系統(tǒng)完成消息緩存、分類整合、路由轉(zhuǎn)發(fā)、臨時(shí)存放等操作[4].

事件過(guò)程管理EPM(EventProcessManagment)由ALE服務(wù)、配置管理、復(fù)雜事件過(guò)程以及交易規(guī)則執(zhí)行組成,對(duì)EVP的訪問(wèn)能通過(guò)HTTP、JMS以及網(wǎng)絡(luò)服務(wù)接口實(shí)現(xiàn)。

EPM登記/訂閱其感興趣的事件,當(dāng)在信息空間中有事件發(fā)生時(shí),即會(huì)通知EPM,一旦接收到這些事件,隨后會(huì)應(yīng)用復(fù)雜事件處理(過(guò)濾器),結(jié)合交易規(guī)則對(duì)這些事件進(jìn)行處理。另一種情況下是:外部的客戶端(如EPC-IS)已經(jīng)注冊(cè)接收ALE,這些過(guò)濾后的事件會(huì)被發(fā)送到ALE客戶端指定的位置。

2.3服務(wù)接口層

來(lái)自事件處理層的數(shù)據(jù)終是分類的XML文件。同一類型的數(shù)據(jù)以XML文件的形式保存,并提供給相應(yīng)的1個(gè)或多個(gè)應(yīng)用程序使用。而服務(wù)接口層主要是對(duì)這些數(shù)據(jù)進(jìn)行過(guò)濾、入庫(kù)操作,并提供訪問(wèn)相應(yīng)數(shù)據(jù)庫(kù)的服務(wù)接口。具體操作如下:

(1)將存放在磁盤(pán)上的XML文件進(jìn)行批量入庫(kù)操作,當(dāng)XML數(shù)據(jù)量達(dá)到一定數(shù)量時(shí),啟動(dòng)數(shù)據(jù)入庫(kù)功能模塊,將XML數(shù)據(jù)移植到各種數(shù)據(jù)庫(kù)中。

(2)在數(shù)據(jù)移植前將重復(fù)的數(shù)據(jù)過(guò)濾掉。

(3)為企業(yè)內(nèi)部和企業(yè)外部訪問(wèn)數(shù)據(jù)庫(kù)提供WebServices接口。

其中,數(shù)據(jù)過(guò)濾過(guò)程是在處理臨時(shí)存放的XML文件的過(guò)程中完成的。方法是:將同一個(gè)卡號(hào)的多條記錄按照讀入的時(shí)間戳進(jìn)行比較,若相鄰記錄的時(shí)間戳差值小于用戶定義的閾值,則認(rèn)為重復(fù)讀取發(fā)生,剔出后1條記錄。依次類推,剔出掉所有冗余數(shù)據(jù)。利用WebServices技術(shù)將對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)以服務(wù)的形式發(fā)布,供企業(yè)內(nèi)部應(yīng)用程序和企業(yè)合作伙伴調(diào)用[2].以數(shù)據(jù)過(guò)濾為例,其代碼如下:

for(inti=1;irowcount;i++)

{span=EndTime.Subtract(StartTime);

spantiIDe=sPan.Seconds;//相鄰記錄的時(shí)間戳之差

if(spantime=0.002)

{subtime[i]=i;}

//若相鄰時(shí)間戳差值小于2ms,

//標(biāo)記第2條記錄為冗余數(shù)據(jù)

elsesubtime[i]=0;}

for(intj=1;jrowcount;j++)//刪除冗余記錄

{if(subtime[j].ToString()!="0")

{ds.Tables[0].Rows[j].Delete();j=j-1;

rowcount=rowcount11;}

}

以下是服務(wù)接口層向應(yīng)用系統(tǒng)發(fā)送SOAP響應(yīng),返回處理結(jié)果的部分代碼[7].

reportxmlns=""

processprocInsID="503"givenID="231"givenName="

ShipOut"

eventeventType="report_tag_event"

headerProductQuantityMatchSuccess

/header

statussuccess/status

tagList

tagID="00110011"detectTime="2022-11-01T13:13:

00.110+08:00"/

/tagList

3RFID中間件的實(shí)現(xiàn)及測(cè)試

RIFD中間件系統(tǒng)開(kāi)發(fā)工具采用Eclipse3.2,應(yīng)用服務(wù)器軟件采用JBOSS4.0,Web容器為T(mén)omcat5.5.此外,服務(wù)器端采用了基于Struts的MVC多層次結(jié)構(gòu)框架,數(shù)據(jù)服務(wù)層則采用MySQL5.0數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論