《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > RFID 中間件基準(zhǔn)性能測試平臺研究與設(shè)計(jì)
RFID 中間件基準(zhǔn)性能測試平臺研究與設(shè)計(jì)
RFID世界網(wǎng)
趙科俠 譚杰 季剛
摘要: RFID是自動(dòng)識別技術(shù)中的一種,它利用射頻方式進(jìn)行非接觸雙向通信以達(dá)到識別的目的,。RFID技術(shù)由...
Abstract:
Key words :

1 引言

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

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

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

2 參數(shù)選取及其測試方法

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

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

  并發(fā)處理的應(yīng)用程序客戶端數(shù)量(NoC, Number of Clients) : 在一定的系統(tǒng)開銷和應(yīng)用程序客戶端平均響應(yīng)時(shí)間限制下, RFID 中間件能夠同時(shí)處理發(fā)送操作請求的客戶端數(shù)量。測試方法與NoR 類似, 通過監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端平均響應(yīng)時(shí)間, 逐步增加發(fā)送操作請求客戶端數(shù)量, 當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí), 就得到了NoC,。吞吐量( Throughput) : 在一定的系統(tǒng)開銷和客戶端響應(yīng)時(shí)間要求下, RFID 中間件能夠處理的讀寫器端發(fā)送標(biāo)簽數(shù)據(jù)的頻率,。類似的, 通過監(jiān)控系統(tǒng)資源占用和應(yīng)用程序客戶端響應(yīng)時(shí)間, 逐步增加讀寫器發(fā)送數(shù)據(jù)的頻率, 當(dāng)系統(tǒng)資源占用和平均響應(yīng)時(shí)間達(dá)到限制值時(shí), 就得到了Throughput。

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

3 RFID 中間件基準(zhǔn)性能測試平臺

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

  3.1 總體框架

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

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

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

  3) 測試控制臺: 根據(jù)測試模式控制虛擬讀寫器和虛擬客戶端的運(yùn)行, 監(jiān)視系統(tǒng)資源占用情況, 記錄測試數(shù)據(jù),。

  4) 報(bào)告生成器: 由測試數(shù)據(jù)生成圖形化測試報(bào)告,。
 

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

  3.2 虛擬讀寫器

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

public interface iReaderEmulatorControl
{
......
public void on();
//打開虛擬讀寫器
public void off();
//關(guān)閉虛擬讀寫器
public boolean setReaderNumber(int readerNumber); //設(shè)置
模擬的讀寫器數(shù)量
public boolean setReaderType(ReaderType tagType);
//設(shè)置模擬的讀寫器類型
public boolean setTagType(TagType tagType);
//設(shè)置模擬的標(biāo)簽類型
public boolean setPortRange(int minPort, int maxPort);
//設(shè)置虛擬讀寫器端口號區(qū)間
public boolean setTransTime(int mSec);
//設(shè)置模擬時(shí)間
.......
}
  數(shù)據(jù)發(fā)生模塊: 根據(jù)測試控制臺設(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)虛擬讀寫器與RFID 中間件通訊的關(guān)鍵, 以ThingMagic Mercury4 為例,使用正則表達(dá)式對RFID 中間件的事件進(jìn)行解析, 設(shè)計(jì)正則表達(dá)式部分如下:
......
Pattern firstCheck = Pattern.compile ("([A- Z]+)([a- zA- Z_]+)(.
*)"); //初始匹配
Pattern selectPatten = 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 方法
Pattern updatePatten = Pattern.compile ("UPDATE .* SET (.
*?) *= *(0x)?([0- 9A- Fa- f]+).*?
(time_?out *= *([0- 9]+))? WHERE .*antenna_id *= *([0- 9]
+).*"); //匹配update 方法
Pattern antenna_idPatten = Pattern.compile(".* antenna_id *=
*([0- 9]+).*"); //匹配天線id
Pattern idPatten = Pattern.compile (".* WHERE.* id *= *0x
([0- 9A- Fa- f]+).*"); //匹配id
Pattern blockNOPatten = Pattern.compile (".* block_number
*= *([0- 9]+).*"); //匹配標(biāo)簽塊號
Pattern blockCountPatten = Pattern.compile (".* block_count
*= *([0- 9]+).*"); //匹配標(biāo)簽塊數(shù)
......

  數(shù)據(jù)傳輸模塊: 完成與RFID 中間件的通訊,。

  3.3 虛擬客戶端

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

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

  事件發(fā)生模塊: 該模塊根據(jù)EPCglobal 的ALE(Application Level Event) 標(biāo)準(zhǔn)提供對RFID 中間件的Web Service 調(diào)用接口, 由測試控制臺根據(jù)測試計(jì)劃進(jìn)行選擇,。

  監(jiān)控模塊: 監(jiān)控測試過程中調(diào)用RFID 中間件Web Service的響應(yīng)時(shí)間, 并將結(jié)果記錄到相應(yīng)的XML 文檔。

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

  3.4 測試控制臺

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

  用戶界面: 提供用戶操作界面,。

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

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

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

  3.5 報(bào)告生成器

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

4 測試流程

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

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

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

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

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

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

5 結(jié)束語

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

  本文作者創(chuàng)新點(diǎn): 針對RFID 中間件的特性, 提出了衡量其基準(zhǔn)性能的參數(shù)及其測試方法, 并針對測試需求, 給出了RFID虛擬讀寫器的設(shè)計(jì)和實(shí)現(xiàn),。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。