新闻中心

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虚拟读写器的设计和实现。


评论


相关推荐

技术专区

关闭