<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > RFID 中間件基準性能測試平臺研究與設計

RFID 中間件基準性能測試平臺研究與設計

作者: 時(shí)間:2011-04-05 來(lái)源:網(wǎng)絡(luò ) 收藏
1引言

  是自動(dòng)識別技術(shù)中的一種,它利用射頻方式進(jìn)行非接觸雙向通信以達到識別的目的。技術(shù)由于其獨有的優(yōu)點(diǎn),吸引力與日俱增。出于對市場(chǎng)前景的預期和簡(jiǎn)化系統建設、維護工作的需求,一些大的軟件公司(如IBM,BEA,Microsoft等)相繼推出了各自的RFID產(chǎn)品。

  RFID扮演的是RFID讀寫(xiě)器和應用程序之間的中介角色,從應用程序端使用提供的一組共通的ApplicationInterface(應用接口程序,API),即能連到RFID解讀器,讀取RFID標簽資料。如此一來(lái),即使儲存RFID標簽情報的資料庫軟件或后端應用程序增加或改由其他軟件取代,或者RFID解讀器種類(lèi)增加等情況發(fā)生,應用端不需要修改也能處理,省去多對多連結復雜維護的麻煩。

  出于對RFID中間件的重視,為企業(yè)在實(shí)施RFID系統時(shí)選擇RFID中間件產(chǎn)品提供參考,有必要對RFID中間件的性能進(jìn)行測試。性能測試包括中間件處理下層讀寫(xiě)器數據和支持上層應用程序調用的能力?,F有的性能測試工具(如LoadRunner,JMeter,BenchmarkFactory等)存在著(zhù)測試對象單一、測試結果不易比較等問(wèn)題,并不能滿(mǎn)足測試的需要,這就需要一套針對RFID中間件的測試方法和測試平臺。

2參數選取及其測試方法

  對于RFID中間件的使用者而言,關(guān)心的無(wú)外乎以下幾個(gè)方面:支持的讀寫(xiě)器;提供的應用程序接口;并發(fā)處理的讀寫(xiě)器數量、應用程序客戶(hù)端數量;吞吐量;響應時(shí)間。對于一定的應用環(huán)境,前兩個(gè)是能不能使用的問(wèn)題,而后四個(gè)是使用效果的問(wèn)題,也就是本文所論述的問(wèn)題。下文分別就這四個(gè)參數作了解釋,并給出了測試方法。

  并發(fā)處理的讀寫(xiě)器數量(NoR,NumberofReaders):在一定的系統開(kāi)銷(xiāo)和應用程序客戶(hù)端響應時(shí)間限制下,RFID中間件能夠同時(shí)處理的讀寫(xiě)器數量。這里的讀寫(xiě)器是指與RFID中間件相連接,且同時(shí)向RFID中間件以一定的頻率發(fā)送標簽數據的讀寫(xiě)器。在測試過(guò)程中,監控系統資源占用(cpu和內存使用率)和應用程序客戶(hù)端響應時(shí)間,逐步增加發(fā)送數據的讀寫(xiě)器數量,當系統資源占用和響應時(shí)間達到限制值時(shí),就得到了NoR。

  并發(fā)處理的應用程序客戶(hù)端數量(NoC,NumberofClients):在一定的系統開(kāi)銷(xiāo)和應用程序客戶(hù)端平均響應時(shí)間限制下,RFID中間件能夠同時(shí)處理發(fā)送操作請求的客戶(hù)端數量。測試方法與NoR類(lèi)似,通過(guò)監控系統資源占用和應用程序客戶(hù)端平均響應時(shí)間,逐步增加發(fā)送操作請求客戶(hù)端數量,當系統資源占用和平均響應時(shí)間達到限制值時(shí),就得到了NoC。吞吐量(Throughput):在一定的系統開(kāi)銷(xiāo)和客戶(hù)端響應時(shí)間要求下,RFID中間件能夠處理的讀寫(xiě)器端發(fā)送標簽數據的頻率。類(lèi)似的,通過(guò)監控系統資源占用和應用程序客戶(hù)端響應時(shí)間,逐步增加讀寫(xiě)器發(fā)送數據的頻率,當系統資源占用和平均響應時(shí)間達到限制值時(shí),就得到了Throughput。

  響應時(shí)間(RT,ResponseTime):應用程序客戶(hù)端發(fā)送事件請求到RFID中間件完成操作的時(shí)間間隔。測試方法相對簡(jiǎn)單,只需要通過(guò)應用程序客戶(hù)端發(fā)送需要測試的操作請求,記錄其響應時(shí)間即可。

3RFID中間件基準性能測試平臺

  對RFID中間件的測試涉及到兩方面的測試數據來(lái)源:讀寫(xiě)器端的標簽數據和應用程序客戶(hù)端的操作請求。使用實(shí)際的讀寫(xiě)器和應用程序進(jìn)行測試面臨兩方面的問(wèn)題:1)測試工作需要大量的讀寫(xiě)器設備,這需要大量的資金;2)搭建這么多設備所組成的測試環(huán)境,工作量將極其巨大、復雜。一個(gè)切實(shí)有效的解決辦法就是通過(guò)軟件對讀寫(xiě)器和應用程序進(jìn)行仿真,由虛擬讀寫(xiě)器(VirtualReader)和虛擬客戶(hù)端(VirtualClient)向RFID中間件發(fā)送測試數據。

  3.1總體框架

  基于虛擬讀寫(xiě)器和虛擬客戶(hù)端的RFID中間件基準性能測試平臺分為以下四個(gè)模塊:

  1)虛擬讀寫(xiě)器:對讀寫(xiě)器進(jìn)行仿真,生成標簽數據,與RFID中間件進(jìn)行通信。

  2)虛擬客戶(hù)端:生成對RFID中間件的操作請求,并記錄響應時(shí)間。

  3)測試控制臺:根據測試模式控制虛擬讀寫(xiě)器和虛擬客戶(hù)端的運行,監視系統資源占用情況,記錄測試數據。

  4)報告生成器:由測試數據生成圖形化測試報告。

  為了降低測試平臺的運行對測試結果的影響,系統采用分布式架構,即虛擬讀寫(xiě)器、虛擬客戶(hù)端以及RFID中間件分別運行在局域網(wǎng)的不同計算機上。虛擬讀寫(xiě)器、虛擬客戶(hù)端與測試控制臺之間的通信通過(guò)WebService實(shí)現。系統整體軟件框架如圖1。

  3.2虛擬讀寫(xiě)器

  虛擬讀寫(xiě)器是為了降低測試成本,簡(jiǎn)化測試工作而開(kāi)發(fā)的,是整個(gè)測試平臺的基礎。虛擬讀寫(xiě)器接受RFID中間件的輪詢(xún),解析RFID中間件事件,并生成標簽數據,發(fā)送給RFID中間件,實(shí)現對讀寫(xiě)器的仿真。主要包括以下幾個(gè)功能模塊:參數設置模塊:提供給測試控制臺進(jìn)行虛擬讀寫(xiě)器的參數設置的接口,包括讀寫(xiě)器數量、端口、發(fā)送數據頻率、持續時(shí)間、標簽數據格式以及啟動(dòng)、關(guān)閉虛擬讀寫(xiě)器等。該模塊接口設計如下:

publicinterfaceiReaderEmulatorControl
{
......
publicvoidon();
//打開(kāi)虛擬讀寫(xiě)器
publicvoidoff();
//關(guān)閉虛擬讀寫(xiě)器
publicbooleansetReaderNumber(intreaderNumber);//設置
模擬的讀寫(xiě)器數量
publicbooleansetReaderType(ReaderTypetagType);
//設置模擬的讀寫(xiě)器類(lèi)型
publicbooleansetTagType(TagTypetagType);
//設置模擬的標簽類(lèi)型
publicbooleansetPortRange(intminPort,intmaxPort);
//設置虛擬讀寫(xiě)器端口號區間
publicbooleansetTransTime(intmSec);
//設置模擬時(shí)間
.......
}
  數據發(fā)生模塊:根據測試控制臺設定的相關(guān)參數,產(chǎn)生符合標準(EPCglobal,ISO15693等)的標簽數據。

  驅動(dòng)模塊:解析與RFID中間件的通信協(xié)議,將數據發(fā)生模塊的數據封裝后傳遞給數據傳輸模塊。該模塊是實(shí)現虛擬讀寫(xiě)器與RFID中間件通訊的關(guān)鍵,以ThingMagicMercury4為例,使用正則表達式對RFID中間件的事件進(jìn)行解析,設計正則表達式部分如下:
......
PatternfirstCheck=Pattern.compile("([A-Z]+)([a-zA-Z_]+)(.
*)");//初始匹配
PatternselectPatten=Pattern.compile("SELECT.*?\(?antenna_
id*=*([0-9]+)(+OR+antenna_id*=
*([0-9]+))?(+OR+antenna_id*=*([0-9]+))?(+OR+antenna_
id*=*([0-9]+))?\)?.*time_?out*=*([0-9]+).*");//匹配
SELECT方法
PatternupdatePatten=Pattern.compile("UPDATE.*SET(.
*?)*=*(0x)?([0-9A-Fa-f]+).*?
(time_?out*=*([0-9]+))?WHERE.*antenna_id*=*([0-9]
+).*");//匹配update方法
Patternantenna_idPatten=Pattern.compile(".*antenna_id*=
*([0-9]+).*");//匹配天線(xiàn)id
PatternidPatten=Pattern.compile(".*WHERE.*id*=*0x
([0-9A-Fa-f]+).*");//匹配id
PatternblockNOPatten=Pattern.compile(".*block_number
*=*([0-9]+).*");//匹配標簽塊號
PatternblockCountPatten=Pattern.compile(".*block_count
*=*([0-9]+).*");//匹配標簽塊數
......

  數據傳輸模塊:完成與RFID中間件的通訊。

  3.3虛擬客戶(hù)端

  虛擬客戶(hù)端與虛擬讀寫(xiě)器類(lèi)似,除了完成接收測試控制臺參數并向RFID中間件發(fā)送操作請求的功能外,還需要接收RFID中間件返回數據并記錄響應時(shí)間??梢苑殖梢韵?個(gè)功能模塊:

  參數設置模塊:提供給測試控制臺進(jìn)行虛擬客戶(hù)端的參數設置,包括連接的RFID中間件IP地址、端口、測試的Web服務(wù)及并發(fā)請求數量等。

  事件發(fā)生模塊:該模塊根據EPCglobal的ALE(ApplicationLevelEvent)標準提供對RFID中間件的WebService調用接口,由測試控制臺根據測試計劃進(jìn)行選擇。

  監控模塊:監控測試過(guò)程中調用RFID中間件WebService的響應時(shí)間,并將結果記錄到相應的XML文檔。

  數據傳輸模塊:調用RFID中間件的Web服務(wù),接受RFID中間件返回的數據。

  3.4測試控制臺

  測試控制臺是整個(gè)RFID中間件基準性能測試平臺的指揮中心。測試控制臺根據用戶(hù)設定的測試需求,設定自動(dòng)測試步驟,控制虛擬讀寫(xiě)器和虛擬客戶(hù)端的運行,記錄系統資源占用情況,并將所有測試數據匯總,保存為XML文檔。測試控制臺從功能上分為以下幾個(gè)模塊:

  用戶(hù)界面:提供用戶(hù)操作界面。

  監控模塊:監控每一個(gè)測試步驟中系統資源占用情況,包括CPU、內存。

  測試模式設置:為了最大限度的實(shí)現測試自動(dòng)化,該模塊提供預先定義的測試模式。在測試中,用戶(hù)只需要指定所要測試的RFID中間件(IP地址、端口等)以及所要測試的參數(NoR,NoC,Throughput,RT)。

  數據傳輸模塊:將測試每一步的參數發(fā)送給虛擬讀寫(xiě)器和虛擬客戶(hù)端。

  3.5報告生成器

  測試的最終目的是將測試結果供人參考,所以一個(gè)直觀(guān)、易讀的測試報告是必要的。報告生成器模塊根據測試控制臺生成的記錄測試數據的XML文件數據,生成圖形化的測試報告。

4測試流程

  使用RFID中間件基準性能測試平臺對某一種RFID中間進(jìn)行基準性能測試的流程大體上可以分為5個(gè)層次,如圖2所示。

  1)配置測試參數:在測試工作開(kāi)始前需要在控制臺配置所要測試的RFID中間件相關(guān)信息(IP,端口,Web服務(wù)等),還需要在被測的RFID中間件中配置相關(guān)讀寫(xiě)器信息(在測試中就是虛擬讀寫(xiě)器,包括虛擬讀寫(xiě)器服務(wù)器的IP、端口)。

  2)監控運行被測RFID中間件:配置完測試參數后運行RFID中間件,并對運行過(guò)程中的信息進(jìn)行監控。

  3)測試主體模塊:記錄測試過(guò)程中每一步的數據。以測試NoR為例,每一步需要記錄的數據有測試讀寫(xiě)器數量、發(fā)送數據頻率、數據格式、CPU占用率、內存使用率、應用程序客戶(hù)端調用的Web服務(wù)、響應時(shí)間。

  4)生成記錄測試數據的XML文件:將測試數據整理后以XML形式存到指定路徑下。

  5)生成圖形化測試報告:這是一個(gè)相對比較獨立的步驟,用戶(hù)可以根據需要選擇選擇需要生成報告的測試數據文件。

5結束語(yǔ)

  RFID中間件是RFID系統中非常重要的一部分。RFID中間件接收并處理讀寫(xiě)器發(fā)送的數據,并為上層應用程序客戶(hù)端提供服務(wù),大大簡(jiǎn)化了RFID系統實(shí)施的復雜性。本文針對RFID中間件的特點(diǎn),提出了表征RFID中間件基準性能的參數及其自動(dòng)化測試方法,并給出了測試平臺的設計。該測試平臺對于企業(yè)選擇合適的RFID中間件、推廣RFID技術(shù)的應用具有一定的實(shí)際價(jià)值。

  本文作者創(chuàng )新點(diǎn):針對RFID中間件的特性,提出了衡量其基準性能的參數及其測試方法,并針對測試需求,給出了RFID虛擬讀寫(xiě)器的設計和實(shí)現。


關(guān)鍵詞: RFID 中間件 基準性能

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>