轻量级RFID中间件的设计与实现

2013-08-28 08:37刘建华陈欢欢
关键词:读写器中间件电子标签

刘建华,陈欢欢

(华北水利水电学院,河南郑州450045)

1 RFID中间件

1.1 RFID中间件的主要作用

RFID中间件是介于RFID读写器和后端应用程序之间的独立软件,是底层RFID设备与上层RFID应用软件之间的中介和联系纽带.它能够屏蔽底层RFID设备之间的差异,封装底层数据处理的复杂性,为上层应用程序提供简洁、一致的接口.基于此,即使底层RFID设备改变或种类增加,上层应用软件不需要修改也能应对这些变化,从而减轻了多对多连接的设计与维护的复杂性.RFID中间件的存在使得上层应用与底层设备相互独立,企业的各种应用都可以利用RFID技术,从而促进RFID技术更广泛、更丰富的应用[1].

1.2 RFID中间件技术发展阶段

RFID中间件技术的发展经历了3个阶段.

1)应用程序中间件(Application Middleware)发展阶段.该阶段RFID中间件所起的作用主要是屏蔽不同读写器设备差异,为上层应用程序获取RFID数据提供统一接口,一般没有对RFID数据清理的功能.

2)基础架构中间件(Infrastructure Middleware)发展阶段.该阶段是在上一阶段的基础上增加了数据平滑、过滤、事件发布等功能,通常还具备一定的平台管理和维护功能.

3)解决方案中间件(Solution Middleware)发展阶段.一些国际知名的大型软件公司,针对某些行业的应用共性,提出了一整套RFID技术解决方案,并实现为可配置的RFID中间件.目前,常见的大型RFID中间件有:EPC标准体系中的Savant中间件、SUN公司的RFID中间件、IBM公司的RFID中间件和微软的RFID中间件等.这些RFID中间件通常融合了该企业的多种技术,实现多种服务,功能较完备.但是其结构过于复杂,规模过于庞大,用户在部署、配置、维护时难度较高.

2 轻量级RFID中间件的主要功能

IBM、SUN、微软等公司开发的RFID中间件功能完善,安装配置复杂,适合于大型企业应用项目,对中小型项目而言,其提供的许多功能根本用不到.鉴于此,设计一个轻量级的RFID中间件,能提供屏蔽读写器设备差异、数据获取、数据平滑与清理、事件发布等基本或常用功能,可满足中小型项目的实际应用需求,具有重要的应用价值.

2.1 屏蔽读写器设备差异

不同公司开发的适用于不同场景的RFID读写设备,其工作频率、通信协议、参数设置等各不相同.为了屏蔽这些读写器设备的差异,RFID中间件必须提取这些读写器设备的共同特性及功能,创建一个抽象代理,向上层提供一个获取数据的统一接口.

2.2 获取数据

RFID中间件应具备从读写器设备获取RFID数据并向上层应用提供数据的基本功能.此处所指RFID数据包含时间、读写器标识、电子标签标识信息,可用一个三元组来表示(timeStamp,readerID,tagID),timeStamp表示时间戳,readerID表示读写器标识,tagID表示电子标签标识.

2.3 数据平滑与清理

电子标签与读写器之间通过无线电波传输数据,这种通信介质和方法具有不可靠性,容易造成某些数据的丢失.为了解决这个问题,需要对RFID数据进行平滑处理.平滑处理包括时间上的平滑和空间上的平滑.时间上的平滑主要指延长读写器对电子标签的读取时间.这个时间段通常包含多个读写周期,在每个读写周期读取到电子标签的可靠性不变的条件下,多次读取,可以提高读取到电子标签的概率.空间上的平滑是指用多个读写器对同一电子标签进行读取,以提高读取到电子标签的概率.依据应用的需求不同,可以只采用时间平滑或空间平滑,也可以两者都采用.

因为数据平滑的需要,引入了冗余数据,这就需要再对冗余数据进行清理.例如,某个读写器在一段时间内多次读取到了某个电子标签,形成了该标签标识的多条RFID数据记录,数据清理的结果将只保留此段时间内的一条RFID数据,把冗余数据都删除[2-3].

2.4 事件发布

RFID中间件要将清理后的数据提供给上层应用程序,或者将数据封装成基本事件通知给上层应用程序.通知上层应用程序的方法也有很多种,通常采用发布订阅机制,即上层应用程序向RFID中间件订阅其感兴趣的某些事件,当这些事件产生时,RFID中间件将这些事件信息发布给订阅过的应用程序.

3 主要功能设计

3.1 轻量级RFID中间件的体系结构设计

轻量级RFID中间件通过一个统一的接口从底层物理读写器获取数据,经过数据平滑与清理、事件封装与发布等过程,向上层应用程序提供RFID数据或相应事件通知.在整个处理过程中,RFID中间件将有用数据持久化存储到关系数据库中.其体系结构设计如图1所示.

图1 轻量级RFID中间件体系结构

3.2 屏蔽读写器差异与数据采集方案设计

为屏蔽不同读写器设备差异,可定义一个统一的读写接口,每一类物理读写器按照自己的通信协议具体实现这个接口.

数据获取可以有主动和被动两种模式.主动模式是指由RFID中间件发出读写指令,通过读写器驱动程序来启动读写器去读取电子标签中的数据或往电子标签中写入数据.被动模式是指读写器通电后一直处于工作状态,通过串口、以太网接口、无线网络接口等不断地往外发送数据,中间件被动地接收数据.后一种读写器工作原理简单,成本低廉,易于实现,在市面上也比较常见.本次设计的轻量级RFID中间件采用被动模式,即RFID中间件在某个端口监听读写器的数据传输连接,一旦监听到某个读写器的连接请求,就启动一个新线程并按照统一读写接口来获取RFID数据.数据采集过程如图2所示.

图2 数据采集示意图

3.3 数据平滑与清理方案设计

数据平滑模块接收到读写器发送过来的RFID数据后,把数据放在当前接收线程的缓冲区中.该缓冲区设计为映射表,键为标签标识(记为tagID),值为RFID数据记录三元组.每隔一段时间,对缓冲区中的数据做一次处理,这个时间段就是时间平滑窗口的尺寸.由于无线传输的不可靠性、射频信号碰撞等原因,在读写器的一个读写周期内(例如5 s),可能漏读了某些电子标签.有了缓冲区的设计,通过设置时间平滑窗口跨越多个读写周期,对电子标签多次读取,就能实现时间平滑的效果.由于映射表的键值不能重复,这也就保证了在一个时间平滑窗口内,对同一个电子标签数据只存储一次,冗余的时间平滑数据将被丢弃掉,实现对时间平滑产生的冗余数据的清理.时间平滑与清理过程如图3所示.

图3 时间平滑与清理示意图

空间平滑的结果可能是在一段时间内,同一区域中的多个读写器都读到了某个电子标签,而上层应用只需要对这个电子标签读取一次.这就需要对空间平滑产生的冗余数据进行清理.

为了识别出哪些是冗余数据,首先要对读写器进行分组,将同一检测区域内的多个逻辑读写器分为一组,这个组编号叫做每个读写器的逻辑读写器编号.RFID中间件对RFID数据流进行过滤,如果是同一组内的读写器读取同一个电子标签的数据,就只保留一份,把冗余数据扔掉.

RFID中间件在启动时会启动一个线程,专门负责空间平滑冗余数据清理的任务,每隔一段时间(这个时间段被称为空间平滑窗口的尺寸)从每个连接线程(连接读写器,用以读取RFID数据流的线程)所维护的时间平滑缓冲区中读取RFID数据,提取每一条RFID数据的readerID字段,通过查设备表(存放有读写器编号和读写器组编号的映射信息),将readerID更新成对应的读写器组编号,记为LRID,然后再检查清理线程所维护的缓冲区中是否存在和LRID、tagID都重名的数据.如果有,就将这条记录舍弃,如果没有,将这条记录放入缓冲区.然后,继续检查下一条数据,直到把同一组读写器各自维护的时间平滑缓冲区内的RFID数据读取完或时间上超出空间平滑时间窗口尺寸.至此,一次空间平滑冗余数据的清理任务完成[4-5].空间平滑与清理过程如图4所示.

图4 空间平滑与清理示意图

3.4 事件封装与发布的方案设计

经过平滑与清理后的RFID数据就可以提供给应用程序使用,通常为了减轻应用程序的负担,将与RFID相关的事件处理的共性部分提取出来,放在RFID中间件中来实现.设计的RFID中间件主要适用于仓库管理、文物库房管理等应用场景,所以,结合业务逻辑,预定义了出库事件、入库事件、未授权出入库事件、遗失事件、关联事件等.当这些事件发生时,需要将事件通知给应用程序,通常采用的做法是发布订阅机制,本系统也采用这种机制.具体设计方案为:预定义相应的事件类,用来封装事件数据,并定义相应事件处理接口和接收对象注册接口.当应用程序中的某个对象需要处理某类事件时,只需实现处理相应事件的接口,并把自己注册给RFID中间件的相应事件接收对象注册列表.当这个事件发生时,RFID中间件就可以遍历该事件的接收对象注册列表,调用每一个接收对象的相应事件处理接口方法,实现通知接收对象和事件处理的目的.

通过采用RMI、WebServices等技术,由远程对象来实现具体的事件处理,并将远程对象注册到RFID中间件的相应事件接收对象注册列表中,可以实现RFID中间件和上层应用软件的分布式部署.

4 系统实现

按软件工程的规范,用Java语言编程,实现了这个轻量级的RFID中间件.图5给出了系统主要功能用例图,图6给出了系统时序图,图7为系统部署图.该RFID中间件结构清晰、占用系统资源少、性能良好.

图7 系统部署图

[1]路康,张启峰.基于JMS的RFID中间件设计与实现[J].河南大学学报:自然科学版,2008,38(5):537-540.

[2]蒋邵岗,谭杰.RFID中间件数据处理与过滤方法的研究[J].计算机应用,2008,28(10):2613-2615.

[3]薛小平,张思东,王小平,等.RFID网络的数据清理技术[J].计算机工程,2008,34(7):92 -94.

[4] Farahnaz Vahdati,Reza Javidan,Ahmad Farrahi.A new method for data redundancy reductionin RFID middleware[J].International Symposium on Telecommunications,2010(5):175-180.

[5]狄菲,赵卫东,周志平,等.仓储管理中的RFID中间件设计[J].计算机应用,2008,28(S1):257 -259,262.

猜你喜欢
读写器中间件电子标签
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
适用于高衰减汽车玻璃的电子标签方案与应用
探寻“千万”的背后——写在金溢科技电子标签销量超1000万之际
中间件在高速公路领域的应用
基于视频抓拍读写器的高速公路防倒卡研究
ETC电子标签的自由流应用
基于固定条码与电子标签比对设备的设计
基于随机时隙的RFID读写器防冲突方法
一种支持智能环境构建的中间件