RFID 中間件基準(zhǔn)性能測(cè)試平臺(tái)研究與設(shè)計(jì)
1引言
RFID是自動(dòng)識(shí)別技術(shù)中的一種,它利用射頻方式進(jìn)行非接觸雙向通信以達(dá)到識(shí)別的目的。RFID技術(shù)由于其獨(dú)有的優(yōu)點(diǎn),吸引力與日俱增。出于對(duì)市場(chǎng)前景的預(yù)期和簡(jiǎn)化RFID系統(tǒng)建設(shè)、維護(hù)工作的需求,一些大的軟件公司(如IBM,BEA,Microsoft等)相繼推出了各自的RFID中間件產(chǎn)品。
RFID中間件扮演的是RFID讀寫(xiě)器和應(yīng)用程序之間的中介角色,從應(yīng)用程序端使用中間件提供的一組共通的ApplicationInterface(應(yīng)用接口程序,API),即能連到RFID解讀器,讀取RFID標(biāo)簽資料。如此一來(lái),即使儲(chǔ)存RFID標(biāo)簽情報(bào)的資料庫(kù)軟件或后端應(yīng)用程序增加或改由其他軟件取代,或者RFID解讀器種類增加等情況發(fā)生,應(yīng)用端不需要修改也能處理,省去多對(duì)多連結(jié)復(fù)雜維護(hù)的麻煩。
出于對(duì)RFID中間件的重視,為企業(yè)在實(shí)施RFID系統(tǒng)時(shí)選擇RFID中間件產(chǎn)品提供參考,有必要對(duì)RFID中間件的性能進(jìn)行測(cè)試。性能測(cè)試包括中間件處理下層讀寫(xiě)器數(shù)據(jù)和支持上層應(yīng)用程序調(diào)用的能力。現(xiàn)有的性能測(cè)試工具(如LoadRunner,JMeter,BenchmarkFactory等)存在著測(cè)試對(duì)象單一、測(cè)試結(jié)果不易比較等問(wèn)題,并不能滿足測(cè)試的需要,這就需要一套針對(duì)RFID中間件基準(zhǔn)性能的測(cè)試方法和測(cè)試平臺(tái)。
2參數(shù)選取及其測(cè)試方法
對(duì)于RFID中間件的使用者而言,關(guān)心的無(wú)外乎以下幾個(gè)方面:支持的讀寫(xiě)器;提供的應(yīng)用程序接口;并發(fā)處理的讀寫(xiě)器數(shù)量、應(yīng)用程序客戶端數(shù)量;吞吐量;響應(yīng)時(shí)間。對(duì)于一定的應(yīng)用環(huán)境,前兩個(gè)是能不能使用的問(wèn)題,而后四個(gè)是使用效果的問(wèn)題,也就是本文所論述的基準(zhǔn)性能問(wèn)題。下文分別就這四個(gè)基準(zhǔn)性能參數(shù)作了解釋,并給出了測(cè)試方法。
并發(fā)處理的讀寫(xiě)器數(shù)量(NoR,NumberofReaders):在一定的系統(tǒng)開(kāi)銷和應(yīng)用程序客戶端響應(yīng)時(shí)間限制下,RFID中間件能夠同時(shí)處理的讀寫(xiě)器數(shù)量。這里的讀寫(xiě)器是指與RFID中間件相連接,且同時(shí)向RFID中間件以一定的頻率發(fā)送標(biāo)簽數(shù)據(jù)的讀寫(xiě)器。在測(cè)試過(guò)程中,監(jiān)控系統(tǒng)資源占用(cpu和內(nèi)存使用率)和應(yīng)用程序客戶端響應(yīng)時(shí)間,逐步增加發(fā)送數(shù)據(jù)的讀寫(xiě)器數(shù)量,當(dāng)系統(tǒng)資源占用和響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了NoR。
并發(fā)處理的應(yīng)用程序客戶端數(shù)量(NoC,NumberofClients):在一定的系統(tǒng)開(kāi)銷和應(yīng)用程序客戶端平均響應(yīng)時(shí)間限制下,RFID中間件能夠同時(shí)處理發(fā)送操作請(qǐng)求的客戶端數(shù)量。測(cè)試方法與NoR類似,通過(guò)監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端平均響應(yīng)時(shí)間,逐步增加發(fā)送操作請(qǐng)求客戶端數(shù)量,當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了NoC。吞吐量(Throughput):在一定的系統(tǒng)開(kāi)銷和客戶端響應(yīng)時(shí)間要求下,RFID中間件能夠處理的讀寫(xiě)器端發(fā)送標(biāo)簽數(shù)據(jù)的頻率。類似的,通過(guò)監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端響應(yīng)時(shí)間,逐步增加讀寫(xiě)器發(fā)送數(shù)據(jù)的頻率,當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了Throughput。
響應(yīng)時(shí)間(RT,ResponseTime):應(yīng)用程序客戶端發(fā)送事件請(qǐng)求到RFID中間件完成操作的時(shí)間間隔。測(cè)試方法相對(duì)簡(jiǎn)單,只需要通過(guò)應(yīng)用程序客戶端發(fā)送需要測(cè)試的操作請(qǐng)求,記錄其響應(yīng)時(shí)間即可。
3RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)
對(duì)RFID中間件的測(cè)試涉及到兩方面的測(cè)試數(shù)據(jù)來(lái)源:讀寫(xiě)器端的標(biāo)簽數(shù)據(jù)和應(yīng)用程序客戶端的操作請(qǐng)求。使用實(shí)際的讀寫(xiě)器和應(yīng)用程序進(jìn)行測(cè)試面臨兩方面的問(wèn)題:1)測(cè)試工作需要大量的讀寫(xiě)器設(shè)備,這需要大量的資金;2)搭建這么多設(shè)備所組成的測(cè)試環(huán)境,工作量將極其巨大、復(fù)雜。一個(gè)切實(shí)有效的解決辦法就是通過(guò)軟件對(duì)讀寫(xiě)器和應(yīng)用程序進(jìn)行仿真,由虛擬讀寫(xiě)器(VirtualReader)和虛擬客戶端(VirtualClient)向RFID中間件發(fā)送測(cè)試數(shù)據(jù)。
3.1總體框架
基于虛擬讀寫(xiě)器和虛擬客戶端的RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)分為以下四個(gè)模塊:
1)虛擬讀寫(xiě)器:對(duì)讀寫(xiě)器進(jìn)行仿真,生成標(biāo)簽數(shù)據(jù),與RFID中間件進(jìn)行通信。
2)虛擬客戶端:生成對(duì)RFID中間件的操作請(qǐng)求,并記錄響應(yīng)時(shí)間。
3)測(cè)試控制臺(tái):根據(jù)測(cè)試模式控制虛擬讀寫(xiě)器和虛擬客戶端的運(yùn)行,監(jiān)視系統(tǒng)資源占用情況,記錄測(cè)試數(shù)據(jù)。
4)報(bào)告生成器:由測(cè)試數(shù)據(jù)生成圖形化測(cè)試報(bào)告。
為了降低測(cè)試平臺(tái)的運(yùn)行對(duì)測(cè)試結(jié)果的影響,系統(tǒng)采用分布式架構(gòu),即虛擬讀寫(xiě)器、虛擬客戶端以及RFID中間件分別運(yùn)行在局域網(wǎng)的不同計(jì)算機(jī)上。虛擬讀寫(xiě)器、虛擬客戶端與測(cè)試控制臺(tái)之間的通信通過(guò)WebService實(shí)現(xiàn)。系統(tǒng)整體軟件框架如圖1。
3.2虛擬讀寫(xiě)器
虛擬讀寫(xiě)器是為了降低測(cè)試成本,簡(jiǎn)化測(cè)試工作而開(kāi)發(fā)的,是整個(gè)測(cè)試平臺(tái)的基礎(chǔ)。虛擬讀寫(xiě)器接受RFID中間件的輪詢,解析RFID中間件事件,并生成標(biāo)簽數(shù)據(jù),發(fā)送給RFID中間件,實(shí)現(xiàn)對(duì)讀寫(xiě)器的仿真。主要包括以下幾個(gè)功能模塊:參數(shù)設(shè)置模塊:提供給測(cè)試控制臺(tái)進(jìn)行虛擬讀寫(xiě)器的參數(shù)設(shè)置的接口,包括讀寫(xiě)器數(shù)量、端口、發(fā)送數(shù)據(jù)頻率、持續(xù)時(shí)間、標(biāo)簽數(shù)據(jù)格式以及啟動(dòng)、關(guān)閉虛擬讀寫(xiě)器等。該模塊接口設(shè)計(jì)如下:
publicinterfaceiReaderEmulatorControl
{
......
publicvoidon();
//打開(kāi)虛擬讀寫(xiě)器
publicvoidoff();
//關(guān)閉虛擬讀寫(xiě)器
publicbooleansetReaderNumber(intreaderNumber);//設(shè)置
模擬的讀寫(xiě)器數(shù)量
publicbooleansetReaderType(ReaderTypetagType);
//設(shè)置模擬的讀寫(xiě)器類型
publicbooleansetTagType(TagTypetagType);
//設(shè)置模擬的標(biāo)簽類型
publicbooleansetPortRange(intminPort,intmaxPort);
//設(shè)置虛擬讀寫(xiě)器端口號(hào)區(qū)間
publicbooleansetTransTime(intmSec);
//設(shè)置模擬時(shí)間
.......
}
數(shù)據(jù)發(fā)生模塊:根據(jù)測(cè)試控制臺(tái)設(shè)定的相關(guān)參數(shù),產(chǎn)生符合標(biāo)準(zhǔn)(EPCglobal,ISO15693等)的標(biāo)簽數(shù)據(jù)。
驅(qū)動(dòng)模塊:解析與RFID中間件的通信協(xié)議,將數(shù)據(jù)發(fā)生模塊的數(shù)據(jù)封裝后傳遞給數(shù)據(jù)傳輸模塊。該模塊是實(shí)現(xiàn)虛擬讀寫(xiě)器與RFID中間件通訊的關(guān)鍵,以ThingMagicMercury4為例,使用正則表達(dá)式對(duì)RFID中間件的事件進(jìn)行解析,設(shè)計(jì)正則表達(dá)式部分如下:
......
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]+).*");//匹配天線id
PatternidPatten=Pattern.compile(".*WHERE.*id*=*0x
([0-9A-Fa-f]+).*");//匹配id
PatternblockNOPatten=Pattern.compile(".*block_number
*=*([0-9]+).*");//匹配標(biāo)簽塊號(hào)
PatternblockCountPatten=Pattern.compile(".*block_count
*=*([0-9]+).*");//匹配標(biāo)簽塊數(shù)
......
數(shù)據(jù)傳輸模塊:完成與RFID中間件的通訊。
3.3虛擬客戶端
虛擬客戶端與虛擬讀寫(xiě)器類似,除了完成接收測(cè)試控制臺(tái)參數(shù)并向RFID中間件發(fā)送操作請(qǐng)求的功能外,還需要接收RFID中間件返回?cái)?shù)據(jù)并記錄響應(yīng)時(shí)間。可以分成以下4個(gè)功能模塊:
參數(shù)設(shè)置模塊:提供給測(cè)試控制臺(tái)進(jìn)行虛擬客戶端的參數(shù)設(shè)置,包括連接的RFID中間件IP地址、端口、測(cè)試的Web服務(wù)及并發(fā)請(qǐng)求數(shù)量等。
事件發(fā)生模塊:該模塊根據(jù)EPCglobal的ALE(ApplicationLevelEvent)標(biāo)準(zhǔn)提供對(duì)RFID中間件的WebService調(diào)用接口,由測(cè)試控制臺(tái)根據(jù)測(cè)試計(jì)劃進(jìn)行選擇。
監(jiān)控模塊:監(jiān)控測(cè)試過(guò)程中調(diào)用RFID中間件WebService的響應(yīng)時(shí)間,并將結(jié)果記錄到相應(yīng)的XML文檔。
數(shù)據(jù)傳輸模塊:調(diào)用RFID中間件的Web服務(wù),接受RFID中間件返回的數(shù)據(jù)。
3.4測(cè)試控制臺(tái)
測(cè)試控制臺(tái)是整個(gè)RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)的指揮中心。測(cè)試控制臺(tái)根據(jù)用戶設(shè)定的測(cè)試需求,設(shè)定自動(dòng)測(cè)試步驟,控制虛擬讀寫(xiě)器和虛擬客戶端的運(yùn)行,記錄系統(tǒng)資源占用情況,并將所有測(cè)試數(shù)據(jù)匯總,保存為XML文檔。測(cè)試控制臺(tái)從功能上分為以下幾個(gè)模塊:
用戶界面:提供用戶操作界面。
監(jiān)控模塊:監(jiān)控每一個(gè)測(cè)試步驟中系統(tǒng)資源占用情況,包括CPU、內(nèi)存。
測(cè)試模式設(shè)置:為了最大限度的實(shí)現(xiàn)測(cè)試自動(dòng)化,該模塊提供預(yù)先定義的測(cè)試模式。在測(cè)試中,用戶只需要指定所要測(cè)試的RFID中間件(IP地址、端口等)以及所要測(cè)試的參數(shù)(NoR,NoC,Throughput,RT)。
數(shù)據(jù)傳輸模塊:將測(cè)試每一步的參數(shù)發(fā)送給虛擬讀寫(xiě)器和虛擬客戶端。
3.5報(bào)告生成器
測(cè)試的最終目的是將測(cè)試結(jié)果供人參考,所以一個(gè)直觀、易讀的測(cè)試報(bào)告是必要的。報(bào)告生成器模塊根據(jù)測(cè)試控制臺(tái)生成的記錄測(cè)試數(shù)據(jù)的XML文件數(shù)據(jù),生成圖形化的測(cè)試報(bào)告。
4測(cè)試流程
使用RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)對(duì)某一種RFID中間進(jìn)行基準(zhǔn)性能測(cè)試的流程大體上可以分為5個(gè)層次,如圖2所示。
1)配置測(cè)試參數(shù):在測(cè)試工作開(kāi)始前需要在控制臺(tái)配置所要測(cè)試的RFID中間件相關(guān)信息(IP,端口,Web服務(wù)等),還需要在被測(cè)的RFID中間件中配置相關(guān)讀寫(xiě)器信息(在測(cè)試中就是虛擬讀寫(xiě)器,包括虛擬讀寫(xiě)器服務(wù)器的IP、端口)。
2)監(jiān)控運(yùn)行被測(cè)RFID中間件:配置完測(cè)試參數(shù)后運(yùn)行RFID中間件,并對(duì)運(yùn)行過(guò)程中的信息進(jìn)行監(jiān)控。
3)測(cè)試主體模塊:記錄測(cè)試過(guò)程中每一步的數(shù)據(jù)。以測(cè)試NoR為例,每一步需要記錄的數(shù)據(jù)有測(cè)試讀寫(xiě)器數(shù)量、發(fā)送數(shù)據(jù)頻率、數(shù)據(jù)格式、CPU占用率、內(nèi)存使用率、應(yīng)用程序客戶端調(diào)用的Web服務(wù)、響應(yīng)時(shí)間。
4)生成記錄測(cè)試數(shù)據(jù)的XML文件:將測(cè)試數(shù)據(jù)整理后以XML形式存到指定路徑下。
5)生成圖形化測(cè)試報(bào)告:這是一個(gè)相對(duì)比較獨(dú)立的步驟,用戶可以根據(jù)需要選擇選擇需要生成報(bào)告的測(cè)試數(shù)據(jù)文件。
5結(jié)束語(yǔ)
RFID中間件是RFID系統(tǒng)中非常重要的一部分。RFID中間件接收并處理讀寫(xiě)器發(fā)送的數(shù)據(jù),并為上層應(yīng)用程序客戶端提供服務(wù),大大簡(jiǎn)化了RFID系統(tǒng)實(shí)施的復(fù)雜性。本文針對(duì)RFID中間件的特點(diǎn),提出了表征RFID中間件基準(zhǔn)性能的參數(shù)及其自動(dòng)化測(cè)試方法,并給出了測(cè)試平臺(tái)的設(shè)計(jì)。該測(cè)試平臺(tái)對(duì)于企業(yè)選擇合適的RFID中間件、推廣RFID技術(shù)的應(yīng)用具有一定的實(shí)際價(jià)值。
本文作者創(chuàng)新點(diǎn):針對(duì)RFID中間件的特性,提出了衡量其基準(zhǔn)性能的參數(shù)及其測(cè)試方法,并針對(duì)測(cè)試需求,給出了RFID虛擬讀寫(xiě)器的設(shè)計(jì)和實(shí)現(xiàn)。
RFID是自動(dòng)識(shí)別技術(shù)中的一種,它利用射頻方式進(jìn)行非接觸雙向通信以達(dá)到識(shí)別的目的。RFID技術(shù)由于其獨(dú)有的優(yōu)點(diǎn),吸引力與日俱增。出于對(duì)市場(chǎng)前景的預(yù)期和簡(jiǎn)化RFID系統(tǒng)建設(shè)、維護(hù)工作的需求,一些大的軟件公司(如IBM,BEA,Microsoft等)相繼推出了各自的RFID中間件產(chǎn)品。
RFID中間件扮演的是RFID讀寫(xiě)器和應(yīng)用程序之間的中介角色,從應(yīng)用程序端使用中間件提供的一組共通的ApplicationInterface(應(yīng)用接口程序,API),即能連到RFID解讀器,讀取RFID標(biāo)簽資料。如此一來(lái),即使儲(chǔ)存RFID標(biāo)簽情報(bào)的資料庫(kù)軟件或后端應(yīng)用程序增加或改由其他軟件取代,或者RFID解讀器種類增加等情況發(fā)生,應(yīng)用端不需要修改也能處理,省去多對(duì)多連結(jié)復(fù)雜維護(hù)的麻煩。
出于對(duì)RFID中間件的重視,為企業(yè)在實(shí)施RFID系統(tǒng)時(shí)選擇RFID中間件產(chǎn)品提供參考,有必要對(duì)RFID中間件的性能進(jìn)行測(cè)試。性能測(cè)試包括中間件處理下層讀寫(xiě)器數(shù)據(jù)和支持上層應(yīng)用程序調(diào)用的能力。現(xiàn)有的性能測(cè)試工具(如LoadRunner,JMeter,BenchmarkFactory等)存在著測(cè)試對(duì)象單一、測(cè)試結(jié)果不易比較等問(wèn)題,并不能滿足測(cè)試的需要,這就需要一套針對(duì)RFID中間件基準(zhǔn)性能的測(cè)試方法和測(cè)試平臺(tái)。
2參數(shù)選取及其測(cè)試方法
對(duì)于RFID中間件的使用者而言,關(guān)心的無(wú)外乎以下幾個(gè)方面:支持的讀寫(xiě)器;提供的應(yīng)用程序接口;并發(fā)處理的讀寫(xiě)器數(shù)量、應(yīng)用程序客戶端數(shù)量;吞吐量;響應(yīng)時(shí)間。對(duì)于一定的應(yīng)用環(huán)境,前兩個(gè)是能不能使用的問(wèn)題,而后四個(gè)是使用效果的問(wèn)題,也就是本文所論述的基準(zhǔn)性能問(wèn)題。下文分別就這四個(gè)基準(zhǔn)性能參數(shù)作了解釋,并給出了測(cè)試方法。
并發(fā)處理的讀寫(xiě)器數(shù)量(NoR,NumberofReaders):在一定的系統(tǒng)開(kāi)銷和應(yīng)用程序客戶端響應(yīng)時(shí)間限制下,RFID中間件能夠同時(shí)處理的讀寫(xiě)器數(shù)量。這里的讀寫(xiě)器是指與RFID中間件相連接,且同時(shí)向RFID中間件以一定的頻率發(fā)送標(biāo)簽數(shù)據(jù)的讀寫(xiě)器。在測(cè)試過(guò)程中,監(jiān)控系統(tǒng)資源占用(cpu和內(nèi)存使用率)和應(yīng)用程序客戶端響應(yīng)時(shí)間,逐步增加發(fā)送數(shù)據(jù)的讀寫(xiě)器數(shù)量,當(dāng)系統(tǒng)資源占用和響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了NoR。
并發(fā)處理的應(yīng)用程序客戶端數(shù)量(NoC,NumberofClients):在一定的系統(tǒng)開(kāi)銷和應(yīng)用程序客戶端平均響應(yīng)時(shí)間限制下,RFID中間件能夠同時(shí)處理發(fā)送操作請(qǐng)求的客戶端數(shù)量。測(cè)試方法與NoR類似,通過(guò)監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端平均響應(yīng)時(shí)間,逐步增加發(fā)送操作請(qǐng)求客戶端數(shù)量,當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了NoC。吞吐量(Throughput):在一定的系統(tǒng)開(kāi)銷和客戶端響應(yīng)時(shí)間要求下,RFID中間件能夠處理的讀寫(xiě)器端發(fā)送標(biāo)簽數(shù)據(jù)的頻率。類似的,通過(guò)監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端響應(yīng)時(shí)間,逐步增加讀寫(xiě)器發(fā)送數(shù)據(jù)的頻率,當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí),就得到了Throughput。
響應(yīng)時(shí)間(RT,ResponseTime):應(yīng)用程序客戶端發(fā)送事件請(qǐng)求到RFID中間件完成操作的時(shí)間間隔。測(cè)試方法相對(duì)簡(jiǎn)單,只需要通過(guò)應(yīng)用程序客戶端發(fā)送需要測(cè)試的操作請(qǐng)求,記錄其響應(yīng)時(shí)間即可。
3RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)
對(duì)RFID中間件的測(cè)試涉及到兩方面的測(cè)試數(shù)據(jù)來(lái)源:讀寫(xiě)器端的標(biāo)簽數(shù)據(jù)和應(yīng)用程序客戶端的操作請(qǐng)求。使用實(shí)際的讀寫(xiě)器和應(yīng)用程序進(jìn)行測(cè)試面臨兩方面的問(wèn)題:1)測(cè)試工作需要大量的讀寫(xiě)器設(shè)備,這需要大量的資金;2)搭建這么多設(shè)備所組成的測(cè)試環(huán)境,工作量將極其巨大、復(fù)雜。一個(gè)切實(shí)有效的解決辦法就是通過(guò)軟件對(duì)讀寫(xiě)器和應(yīng)用程序進(jìn)行仿真,由虛擬讀寫(xiě)器(VirtualReader)和虛擬客戶端(VirtualClient)向RFID中間件發(fā)送測(cè)試數(shù)據(jù)。
3.1總體框架
基于虛擬讀寫(xiě)器和虛擬客戶端的RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)分為以下四個(gè)模塊:
1)虛擬讀寫(xiě)器:對(duì)讀寫(xiě)器進(jìn)行仿真,生成標(biāo)簽數(shù)據(jù),與RFID中間件進(jìn)行通信。
2)虛擬客戶端:生成對(duì)RFID中間件的操作請(qǐng)求,并記錄響應(yīng)時(shí)間。
3)測(cè)試控制臺(tái):根據(jù)測(cè)試模式控制虛擬讀寫(xiě)器和虛擬客戶端的運(yùn)行,監(jiān)視系統(tǒng)資源占用情況,記錄測(cè)試數(shù)據(jù)。
4)報(bào)告生成器:由測(cè)試數(shù)據(jù)生成圖形化測(cè)試報(bào)告。
為了降低測(cè)試平臺(tái)的運(yùn)行對(duì)測(cè)試結(jié)果的影響,系統(tǒng)采用分布式架構(gòu),即虛擬讀寫(xiě)器、虛擬客戶端以及RFID中間件分別運(yùn)行在局域網(wǎng)的不同計(jì)算機(jī)上。虛擬讀寫(xiě)器、虛擬客戶端與測(cè)試控制臺(tái)之間的通信通過(guò)WebService實(shí)現(xiàn)。系統(tǒng)整體軟件框架如圖1。
3.2虛擬讀寫(xiě)器
虛擬讀寫(xiě)器是為了降低測(cè)試成本,簡(jiǎn)化測(cè)試工作而開(kāi)發(fā)的,是整個(gè)測(cè)試平臺(tái)的基礎(chǔ)。虛擬讀寫(xiě)器接受RFID中間件的輪詢,解析RFID中間件事件,并生成標(biāo)簽數(shù)據(jù),發(fā)送給RFID中間件,實(shí)現(xiàn)對(duì)讀寫(xiě)器的仿真。主要包括以下幾個(gè)功能模塊:參數(shù)設(shè)置模塊:提供給測(cè)試控制臺(tái)進(jìn)行虛擬讀寫(xiě)器的參數(shù)設(shè)置的接口,包括讀寫(xiě)器數(shù)量、端口、發(fā)送數(shù)據(jù)頻率、持續(xù)時(shí)間、標(biāo)簽數(shù)據(jù)格式以及啟動(dòng)、關(guān)閉虛擬讀寫(xiě)器等。該模塊接口設(shè)計(jì)如下:
publicinterfaceiReaderEmulatorControl
{
......
publicvoidon();
//打開(kāi)虛擬讀寫(xiě)器
publicvoidoff();
//關(guān)閉虛擬讀寫(xiě)器
publicbooleansetReaderNumber(intreaderNumber);//設(shè)置
模擬的讀寫(xiě)器數(shù)量
publicbooleansetReaderType(ReaderTypetagType);
//設(shè)置模擬的讀寫(xiě)器類型
publicbooleansetTagType(TagTypetagType);
//設(shè)置模擬的標(biāo)簽類型
publicbooleansetPortRange(intminPort,intmaxPort);
//設(shè)置虛擬讀寫(xiě)器端口號(hào)區(qū)間
publicbooleansetTransTime(intmSec);
//設(shè)置模擬時(shí)間
.......
}
數(shù)據(jù)發(fā)生模塊:根據(jù)測(cè)試控制臺(tái)設(shè)定的相關(guān)參數(shù),產(chǎn)生符合標(biāo)準(zhǔn)(EPCglobal,ISO15693等)的標(biāo)簽數(shù)據(jù)。
驅(qū)動(dòng)模塊:解析與RFID中間件的通信協(xié)議,將數(shù)據(jù)發(fā)生模塊的數(shù)據(jù)封裝后傳遞給數(shù)據(jù)傳輸模塊。該模塊是實(shí)現(xiàn)虛擬讀寫(xiě)器與RFID中間件通訊的關(guān)鍵,以ThingMagicMercury4為例,使用正則表達(dá)式對(duì)RFID中間件的事件進(jìn)行解析,設(shè)計(jì)正則表達(dá)式部分如下:
......
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]+).*");//匹配天線id
PatternidPatten=Pattern.compile(".*WHERE.*id*=*0x
([0-9A-Fa-f]+).*");//匹配id
PatternblockNOPatten=Pattern.compile(".*block_number
*=*([0-9]+).*");//匹配標(biāo)簽塊號(hào)
PatternblockCountPatten=Pattern.compile(".*block_count
*=*([0-9]+).*");//匹配標(biāo)簽塊數(shù)
......
數(shù)據(jù)傳輸模塊:完成與RFID中間件的通訊。
3.3虛擬客戶端
虛擬客戶端與虛擬讀寫(xiě)器類似,除了完成接收測(cè)試控制臺(tái)參數(shù)并向RFID中間件發(fā)送操作請(qǐng)求的功能外,還需要接收RFID中間件返回?cái)?shù)據(jù)并記錄響應(yīng)時(shí)間。可以分成以下4個(gè)功能模塊:
參數(shù)設(shè)置模塊:提供給測(cè)試控制臺(tái)進(jìn)行虛擬客戶端的參數(shù)設(shè)置,包括連接的RFID中間件IP地址、端口、測(cè)試的Web服務(wù)及并發(fā)請(qǐng)求數(shù)量等。
事件發(fā)生模塊:該模塊根據(jù)EPCglobal的ALE(ApplicationLevelEvent)標(biāo)準(zhǔn)提供對(duì)RFID中間件的WebService調(diào)用接口,由測(cè)試控制臺(tái)根據(jù)測(cè)試計(jì)劃進(jìn)行選擇。
監(jiān)控模塊:監(jiān)控測(cè)試過(guò)程中調(diào)用RFID中間件WebService的響應(yīng)時(shí)間,并將結(jié)果記錄到相應(yīng)的XML文檔。
數(shù)據(jù)傳輸模塊:調(diào)用RFID中間件的Web服務(wù),接受RFID中間件返回的數(shù)據(jù)。
3.4測(cè)試控制臺(tái)
測(cè)試控制臺(tái)是整個(gè)RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)的指揮中心。測(cè)試控制臺(tái)根據(jù)用戶設(shè)定的測(cè)試需求,設(shè)定自動(dòng)測(cè)試步驟,控制虛擬讀寫(xiě)器和虛擬客戶端的運(yùn)行,記錄系統(tǒng)資源占用情況,并將所有測(cè)試數(shù)據(jù)匯總,保存為XML文檔。測(cè)試控制臺(tái)從功能上分為以下幾個(gè)模塊:
用戶界面:提供用戶操作界面。
監(jiān)控模塊:監(jiān)控每一個(gè)測(cè)試步驟中系統(tǒng)資源占用情況,包括CPU、內(nèi)存。
測(cè)試模式設(shè)置:為了最大限度的實(shí)現(xiàn)測(cè)試自動(dòng)化,該模塊提供預(yù)先定義的測(cè)試模式。在測(cè)試中,用戶只需要指定所要測(cè)試的RFID中間件(IP地址、端口等)以及所要測(cè)試的參數(shù)(NoR,NoC,Throughput,RT)。
數(shù)據(jù)傳輸模塊:將測(cè)試每一步的參數(shù)發(fā)送給虛擬讀寫(xiě)器和虛擬客戶端。
3.5報(bào)告生成器
測(cè)試的最終目的是將測(cè)試結(jié)果供人參考,所以一個(gè)直觀、易讀的測(cè)試報(bào)告是必要的。報(bào)告生成器模塊根據(jù)測(cè)試控制臺(tái)生成的記錄測(cè)試數(shù)據(jù)的XML文件數(shù)據(jù),生成圖形化的測(cè)試報(bào)告。
4測(cè)試流程
使用RFID中間件基準(zhǔn)性能測(cè)試平臺(tái)對(duì)某一種RFID中間進(jìn)行基準(zhǔn)性能測(cè)試的流程大體上可以分為5個(gè)層次,如圖2所示。
1)配置測(cè)試參數(shù):在測(cè)試工作開(kāi)始前需要在控制臺(tái)配置所要測(cè)試的RFID中間件相關(guān)信息(IP,端口,Web服務(wù)等),還需要在被測(cè)的RFID中間件中配置相關(guān)讀寫(xiě)器信息(在測(cè)試中就是虛擬讀寫(xiě)器,包括虛擬讀寫(xiě)器服務(wù)器的IP、端口)。
2)監(jiān)控運(yùn)行被測(cè)RFID中間件:配置完測(cè)試參數(shù)后運(yùn)行RFID中間件,并對(duì)運(yùn)行過(guò)程中的信息進(jìn)行監(jiān)控。
3)測(cè)試主體模塊:記錄測(cè)試過(guò)程中每一步的數(shù)據(jù)。以測(cè)試NoR為例,每一步需要記錄的數(shù)據(jù)有測(cè)試讀寫(xiě)器數(shù)量、發(fā)送數(shù)據(jù)頻率、數(shù)據(jù)格式、CPU占用率、內(nèi)存使用率、應(yīng)用程序客戶端調(diào)用的Web服務(wù)、響應(yīng)時(shí)間。
4)生成記錄測(cè)試數(shù)據(jù)的XML文件:將測(cè)試數(shù)據(jù)整理后以XML形式存到指定路徑下。
5)生成圖形化測(cè)試報(bào)告:這是一個(gè)相對(duì)比較獨(dú)立的步驟,用戶可以根據(jù)需要選擇選擇需要生成報(bào)告的測(cè)試數(shù)據(jù)文件。
5結(jié)束語(yǔ)
RFID中間件是RFID系統(tǒng)中非常重要的一部分。RFID中間件接收并處理讀寫(xiě)器發(fā)送的數(shù)據(jù),并為上層應(yīng)用程序客戶端提供服務(wù),大大簡(jiǎn)化了RFID系統(tǒng)實(shí)施的復(fù)雜性。本文針對(duì)RFID中間件的特點(diǎn),提出了表征RFID中間件基準(zhǔn)性能的參數(shù)及其自動(dòng)化測(cè)試方法,并給出了測(cè)試平臺(tái)的設(shè)計(jì)。該測(cè)試平臺(tái)對(duì)于企業(yè)選擇合適的RFID中間件、推廣RFID技術(shù)的應(yīng)用具有一定的實(shí)際價(jià)值。
本文作者創(chuàng)新點(diǎn):針對(duì)RFID中間件的特性,提出了衡量其基準(zhǔn)性能的參數(shù)及其測(cè)試方法,并針對(duì)測(cè)試需求,給出了RFID虛擬讀寫(xiě)器的設(shè)計(jì)和實(shí)現(xiàn)。
評(píng)論