新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > RFID 中間件基準性能測試平臺研究與設計

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

        作者: 時間:2011-04-05 來源:網絡 收藏
        1引言

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

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

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

        2參數選取及其測試方法

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

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

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

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

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

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

          3.1總體框架

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

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

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

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

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

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

          3.2虛擬讀寫器

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

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

          驅動模塊:解析與RFID中間件的通信協議,將數據發生模塊的數據封裝后傳遞給數據傳輸模塊。該模塊是實現虛擬讀寫器與RFID中間件通訊的關鍵,以ThingMagicMercury4為例,使用正則表達式對RFID中間件的事件進行解析,設計正則表達式部分如下:
        ......
        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]+).*");//匹配標簽塊號
        PatternblockCountPatten=Pattern.compile(".*block_count
        *=*([0-9]+).*");//匹配標簽塊數
        ......

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

          3.3虛擬客戶端

          虛擬客戶端與虛擬讀寫器類似,除了完成接收測試控制臺參數并向RFID中間件發送操作請求的功能外,還需要接收RFID中間件返回數據并記錄響應時間。可以分成以下4個功能模塊:

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

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

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

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

          3.4測試控制臺

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

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

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

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

          數據傳輸模塊:將測試每一步的參數發送給虛擬讀寫器和虛擬客戶端。

          3.5報告生成器

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

        4測試流程

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

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

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

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

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

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

        5結束語

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

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双鸭山市| 成都市| 资阳市| 皮山县| 临洮县| 随州市| 宽城| 翁源县| 图木舒克市| 乐昌市| 乌鲁木齐市| 安吉县| 瑞金市| 翁源县| 龙陵县| 宁陕县| 泌阳县| 庆云县| 桂阳县| 四川省| 无为县| 鞍山市| 武山县| 化州市| 德清县| 华坪县| 五莲县| 巴楚县| 汉川市| 黄大仙区| 沂水县| 靖州| 和龙市| 扎囊县| 西城区| 河曲县| 霍林郭勒市| 沙雅县| 宝鸡市| 苗栗县| 周至县|