版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
精品文檔-下載后可編輯JMX和JMS技術在RFID中間件設計的應用-設計應用
RFID是一種非接觸式的自動識別技術,它通過射頻信號自動識別目標對象并獲取相關數(shù)據(jù),識別工作無須人工干預。作為條形碼的無線版本,RFID技術具有條形碼所不具備的防水、防磁、耐高溫、讀取距離大、標簽上數(shù)據(jù)可以加密、存儲數(shù)據(jù)容量更大、存儲信息更改自如等特點,其應用將給零售、物流等產業(yè)帶來革命性變化。
RFID技術具有很多突出的優(yōu)點:實現(xiàn)了無源和免接觸操作,應用便利,無機械磨損,壽命長,機具無直接對終用戶開放的物理接口,能更好地保證機具的安全性;數(shù)據(jù)安全方面除標簽的密碼保護外,數(shù)據(jù)部分可用一些算法實現(xiàn)安全管理,如DES、RSA、DSA、MD5等,讀寫機具與卡之間也可相互,實現(xiàn)安全通信和存儲;總體成本一直處于下降之中,越來越接近接觸式IC卡的成本,甚至更低,為其大量應用奠定了基礎。
面向服務的體系結構(Service-OrientedArchitecture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。它將幫助企業(yè)系統(tǒng)架構者以更迅速、更可靠、更具重用性架構整個業(yè)務系統(tǒng)。較之以往,以SOA架構的系統(tǒng)能夠更加從容地面對業(yè)務的急劇變化。
基于上述分析,本文提出了一種基于SOA的RFID中間件方案。該方案可把各個應用RFID技術的功能抽象成服務,應用基于J2EE構建方法,綜合應用JMX、JMS、Struts等技術。企業(yè)應用系統(tǒng)通過請求服務的方式來獲取RFID中間件提供的服務。用XML進行數(shù)據(jù)傳輸,并提供WebService接口。
1技術基礎
1.1RFID中間件
RFID中間件是一種面向消息的中間件(Message-OrientedMiddleware,MOM),信息(Information)是以消息(Message)的形式,從一個程序傳送到另一個或多個程序。信息可以以異步(Asynchronous)的方式傳送,所以傳送者不必等待回應。面向消息的中間件包含的功能不僅是傳遞(Passing)信息,還必須包括解譯數(shù)據(jù)、安全性、數(shù)據(jù)廣播、錯誤恢復、定位網(wǎng)絡資源、找出符合成本的路徑、消息與要求的優(yōu)先次序以及延伸的除錯工具等服務。
RFID中間件扮演RFID標簽和應用程序之間的中介角色,從應用程序端使用中間件所提供一組通用的應用程序接口(API),即能連到RFID讀寫器,讀取RFID標簽數(shù)據(jù)。這樣一來,即使存儲RFID標簽情報的數(shù)據(jù)庫軟件或后端應用程序增加或改由其他軟件取代,或者讀寫RFID讀寫器種類增加等情況發(fā)生時,應用端不需修改也能處理,省去多對多連接的維護復雜性問題。
目前提供RFID中間件平臺的廠商主要有IBM、Oracle、Microsoft、SAP、Sun公司。對于這些廠商,RFID中間件只是其現(xiàn)有軟件的擴展,其RFID產品可以迅速方便地與各自現(xiàn)有的軟件產品線集成在一起。但缺點是其產品對該廠商其他軟件產品的依賴性比較大。
1.2面向服務的體系結構SOA
面向服務的體系結構是一種技術架構風格,它代表了一種開放的、敏捷的、可擴展的、可組合的架構[2],定義了服務提供者和消費者之間的松散耦合關系。其業(yè)務敏捷的特點,幫助企業(yè)把業(yè)務變得更加靈活,能夠適時、快速地響應變化。SOA的概念就是服務[3],其基本結構如圖1所示。其中包含服務的3個基本角色:服務提供者、服務請求者和服務注冊。在這些角色之間使用了3種操作:服務發(fā)布、服務發(fā)現(xiàn)和服務綁定。作為SOA的一種實現(xiàn)技術,WebServices提供了基于XML的標準接口,具有完好的封裝性、松散的耦合性、協(xié)議規(guī)范的標準性以及高度的可集成性等特點,能夠良好地滿足SOA應用模式的需求。
1.3JMX和JMS
JMX(JavaManagementExtensions,即Java管理擴展)是一個為應用程序、設備、系統(tǒng)等植入管理功能的框架。JMX可以跨越一系列異構操作系統(tǒng)平臺、系統(tǒng)體系結構和網(wǎng)絡傳輸協(xié)議,靈活的開發(fā)無縫集成的系統(tǒng)、網(wǎng)絡和服務管理應用。在JMX規(guī)范中,管理組件是一個能代表管理資源的Java對象,遵從一定的設計模式,實現(xiàn)該規(guī)范定義的特定的接口。該定義保證了所有的管理組件以一種標準的方式來表示被管理資源。管理接口就是被管理資源暴露出的一些信息,通過對這些信息的修改能夠控制被管理資源。管理接口包括:能被接觸的屬性值、能夠執(zhí)行的操作、能發(fā)出的通知事件等[4].
JMS(JavaMessagingService)是Java平臺上有關面向消息中間件的技術規(guī)范,它便于消息系統(tǒng)中的Java應用程序進行消息交換,并且通過提供標準的產生、發(fā)送、接收消息的接口簡化企業(yè)應用的開發(fā),翻譯為Java消息服務。在JMS框架中運轉的方法如下:
(1)得到1個JNDI初始化上下文(Context)。
(2)根據(jù)上下文以查找1個連接工廠。
(3)從連接工廠得到1個連接(Connect)。
(4)通過連接以建立1個會話(Session)。
(5)查找目的地(Topic/Queue)。
(6)根據(jù)會話以及目的地以建立消息制造者(TopicPub
lisher/QueueSender)和消費者(TopicSubscrib-er/QueueReceiver)。
2基于SOA的RFID中間件架構
利用SOA松耦合、面向業(yè)務的特點,結合RFID中間件實現(xiàn)的應用系統(tǒng)集成的方案可提供豐富的接口,能夠幫助實現(xiàn)對RFID設備的管理以及對數(shù)據(jù)的處理,簡化了對底層設備應用的支持,避免了對底層設備的低級別接口的處理。利用WebService技術實現(xiàn)RFID中間件與企業(yè)系統(tǒng)的集成,完成兩者的松耦合集成。
基于SOA的RFID中間件架構,其基礎架構層分為設備管理層、事件處理層和服務接口層,并通過WebService技術包裝了每1層相應的功能,且進行了具體實現(xiàn)。本文重點介紹該RFID中間件架構中的基礎架構的3個功能層[5].這3個層次有著明確的功能劃分和層間的交互接口。RFID中間件架構如圖2所示。
中間件設計包括RFID設備管理組件和事件過程管理組件。RFID設備管理組件是分布式的代理,負責第1級的事件過濾;設備管理包括設備詢問器,對每1個閱讀器和傳感器設備,代理必須互相作用。過程管理組件是通過RFID事件下的過濾,把事件放置到交易環(huán)境中,然后發(fā)布應用層事件ALE.
2.1設備管理層
設備管理層位于架構的層,直接與閱讀器交互,實現(xiàn)的主要功能包括:
(1)采集射頻卡上的數(shù)據(jù)。
(2)對于來自不同類型的閱讀器的數(shù)據(jù)進行適配處理,得到統(tǒng)一的、格式化的數(shù)據(jù),并進行數(shù)據(jù)校驗。
(3)將校驗無誤的數(shù)據(jù)按照用戶定義的協(xié)議進行封包,并將消息包發(fā)送到事件處理層的消息系統(tǒng)。
依據(jù)其實現(xiàn)的功能,分別針對射頻卡閱讀器模塊、閱讀器接口、數(shù)據(jù)校驗和數(shù)據(jù)打包4個方面進行研究和開發(fā)。閱讀器模塊是根據(jù)硬件供應商提供的規(guī)范進行編碼實現(xiàn)的;閱讀器接口主要解決將來自協(xié)議格式的數(shù)據(jù)轉化為系統(tǒng)所需要的EPC碼;數(shù)據(jù)校驗采用CRC校驗;數(shù)據(jù)打包先依據(jù)獲取的卡片編碼中"數(shù)據(jù)分類"內容,判斷出該標簽數(shù)據(jù)屬于哪種類型,然后按照這種數(shù)據(jù)類型將標簽數(shù)據(jù)封裝成相應的消息包。
由于每個ALE閱讀器事件流可能來自多個物理設備配置表,因此設備管理器為每個設備表創(chuàng)建1個詢問器,并通知詢問器哪種傳感器被綁定到指定的閱讀器上。詢問器發(fā)送傳感器事件流到設備管理器,設備管理器將1個或多個傳感器事件流構造成閱讀器事件。設備管理器把初步處理的閱讀器事件發(fā)送到ALE服務器。
詢問器代理:1個設備管理器的配置由它管理的設備和它要咨詢的詢問器組成,然后與它所對應的設備管理器交互。每個設備概要表由物理設備屬性和詢問器配置組成。物理設備屬性是被命名過的傳感器。
事件信息空間:事件信息空間類似于公共的容錯事件信息經(jīng)紀人。它支持異步接收來自設備管理器的事件、ALE事件以及其他來自事件過程管理的配置需求。事件信息空間同時提供一個存儲轉發(fā)機制,確保重要的事件在中斷的網(wǎng)絡或其他組件失效的情況下不丟失[5].
在系統(tǒng)中,將每個閱讀器模塊的遠程方法調用封裝為1個管理組件(MBean)作為JMX服務器的實例注冊到JMX服務器中。通過JMX框架對閱讀器進行監(jiān)控和管理,使RFID中間件系統(tǒng)能提供管理、監(jiān)控閱讀器的功能。本部分描述為閱讀器管理組件添加時間服務,以達到定時控制閱讀器的目的。
2.2事件處理層
在RFID系統(tǒng)中,一方面是各種應用程序以不同的方式頻繁地從RFID系統(tǒng)中取得數(shù)據(jù);另一方面卻是有限的網(wǎng)絡帶寬,其存在的矛盾,使其有必要設計1套消息傳遞系統(tǒng),使設備管理層產生的事件能夠傳遞到消息系統(tǒng)中,由事件管理過程進行處理,然后把數(shù)據(jù)傳遞到相關的應用系統(tǒng)。在這種模式下,閱讀器不必關心哪個應用系統(tǒng)需要什么數(shù)據(jù)。同時,應用程序也不需要維護與各個閱讀器之間的網(wǎng)絡通道,僅需要將需求發(fā)送到消息系統(tǒng)中即可。由此,設計出的消息系統(tǒng)應具有如下功能:(1)數(shù)據(jù)緩存功能;(2)基于內容的路由功能;(3)數(shù)據(jù)分類存儲功能[6].
下面將描述創(chuàng)建一個MBean來實現(xiàn)一個數(shù)據(jù)處理節(jié)點。消息組件可以按照MBean來部署。消息處理組件執(zhí)行功能:從源隊列中獲取消息,對消息執(zhí)行處理,然后將結果消息放置到目標隊列。消息處理UML圖如圖3所示。
JBossMQ是通過xml文件jbossmq-destinations-service.xml進行配置的。以下是獲得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);
來自消息系統(tǒng)的消息以臨時XML文件的形式和磁盤文件方式保存,供數(shù)據(jù)接口使用。消息系統(tǒng)完成消息緩存、分類整合、路由轉發(fā)、臨時存放等操作[4].
事件過程管理EPM(EventProcessManagment)由ALE服務、配置管理、復雜事件過程以及交易規(guī)則執(zhí)行組成,對EVP的訪問能通過HTTP、JMS以及網(wǎng)絡服務接口實現(xiàn)。
EPM登記/訂閱其感興趣的事件,當在信息空間中有事件發(fā)生時,即會通知EPM,一旦接收到這些事件,隨后會應用復雜事件處理(過濾器),結合交易規(guī)則對這些事件進行處理。另一種情況下是:外部的客戶端(如EPC-IS)已經(jīng)注冊接收ALE,這些過濾后的事件會被發(fā)送到ALE客戶端指定的位置。
2.3服務接口層
來自事件處理層的數(shù)據(jù)終是分類的XML文件。同一類型的數(shù)據(jù)以XML文件的形式保存,并提供給相應的1個或多個應用程序使用。而服務接口層主要是對這些數(shù)據(jù)進行過濾、入庫操作,并提供訪問相應數(shù)據(jù)庫的服務接口。具體操作如下:
(1)將存放在磁盤上的XML文件進行批量入庫操作,當XML數(shù)據(jù)量達到一定數(shù)量時,啟動數(shù)據(jù)入庫功能模塊,將XML數(shù)據(jù)移植到各種數(shù)據(jù)庫中。
(2)在數(shù)據(jù)移植前將重復的數(shù)據(jù)過濾掉。
(3)為企業(yè)內部和企業(yè)外部訪問數(shù)據(jù)庫提供WebServices接口。
其中,數(shù)據(jù)過濾過程是在處理臨時存放的XML文件的過程中完成的。方法是:將同一個卡號的多條記錄按照讀入的時間戳進行比較,若相鄰記錄的時間戳差值小于用戶定義的閾值,則認為重復讀取發(fā)生,剔出后1條記錄。依次類推,剔出掉所有冗余數(shù)據(jù)。利用WebServices技術將對數(shù)據(jù)庫的訪問以服務的形式發(fā)布,供企業(yè)內部應用程序和企業(yè)合作伙伴調用[2].以數(shù)據(jù)過濾為例,其代碼如下:
for(inti=1;irowcount;i++)
{span=EndTime.Subtract(StartTime);
spantiIDe=sPan.Seconds;//相鄰記錄的時間戳之差
if(spantime=0.002)
{subtime[i]=i;}
//若相鄰時間戳差值小于2ms,
//標記第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;}
}
以下是服務接口層向應用系統(tǒng)發(fā)送SOAP響應,返回處理結果的部分代碼[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中間件的實現(xiàn)及測試
RIFD中間件系統(tǒng)開發(fā)工具采用Eclipse3.2,應用服務器軟件采用JBOSS4.0,Web容器為Tomcat5.5.此外,服務器端采用了基于Struts的MVC多層次結構框架,數(shù)據(jù)服務層則采用MySQL5.0數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職工借車合同范例
- 合肥租房合同范例
- 2024至2030年數(shù)碼一體速印機項目投資價值分析報告
- 2024至2030年開放基金銷售系統(tǒng)項目投資價值分析報告
- 投資勞務合同范例
- 醫(yī)院核酸檢測合同范例
- 2024年鎢鋼圓棒項目可行性研究報告
- 購置家具合同范例
- 個人封陽臺合同范例
- 二年級數(shù)學計算題專項練習
- 光伏電站安全管理及運行制度
- 第九屆全國青年數(shù)學教師優(yōu)秀課課件 四川-魏靜-課件-函數(shù)的極值與導數(shù)
- 中班數(shù)學《帽子有什么不同》課件
- 浙江省嘉興市2023-2024學年八年級上學期期末英語試題
- 水泵維護保養(yǎng)方案
- 庫存管理中的供應與需求平衡
- 空表機械加工工藝過程卡片-工序卡片-工序附圖
- 信息化作戰(zhàn)平臺
- 有機硅合成革行業(yè)報告
- 個人勞動防護用品的使用和維護安全培訓課件
- 城市營銷方案書
評論
0/150
提交評論