面向定位追踪的RFID中间件设计
2019-01-20陈必泉
陈必泉
摘 要:RFID是一种非接触式自动识别技术,具有数据存储量大、读写速度快和抗干扰能力强等诸多优点,在定位追踪方面得到了广泛应用。RFID中间件作为连接读写器和应用系统的纽带实现了硬件设备与应用系统之间的数据传输、过滤、转换,降低了应用开发难度。该文提出一种分层的RFID中间件设计,将定位追踪的业务逻辑功能以内部模块的方式集成到中间件中,对外提供面向定位追踪服务的统一API接口,从而有效地降低了应用系统的内部耦合性,加快了开发速度。
关键词:RFID;中间件;定位追踪;API接口
中图分类号:TP391 文献标志码:A
0 前言
RFID是一种非接触式自动识别技术,可以快速读写、长期跟踪管理,在智能识别领域有着非常好的发展前景。RFID中间件实现RFID硬件设备与应用系统之间的数据传输、过滤、数据格式转换。RFID中间件技术的使用降低了应用开发的难度,使应用系统开发者不需要直接面对底层硬件,只需要了解它提供的接口。现有RFID中间件主要实现了对多种RFID读写器的驱动程序管理和设备监控,解决了RFID数据的采集、过滤和收集问题,但是需要应用系统承担RFID事件与业务数据的集成工作,这就造成了RFID应用系统的内部耦合较高,降低了系统架构的灵活性。
该文提出一种可以用于人员和物品定位追踪的RFID中间件(以下简称中间件)设计,将定位追踪的业务规则有效融入RFID事件过滤、识别、聚合等管理过程中,然后在具体的业务过程上下文中处理这些RFID事件,对外提供访问接口以方便实现中间件与应用系统数据交换与集成。
1 需求分析
对人员和物品进行区域定位追踪是RFID的典型应用之一,其基本过程如下。将监控范围划分为若干独立区域,在区域内安装RFID读写器作为定位基站,将需要定位追踪的对象与RFID标签进行绑定(通常是将一个全局唯一的ID号写入标签)。每个区域内部署的读写器都有自己唯一的地址码或标识,当标签进入定位基站读卡范围后,标签信息被读取并通过读写器传输到定位追踪系统。定位追踪系统接收到的信息包括读写器和标签信息,根据事先配置好的读写器和位置映射表,可以定位出标签所在的位置。
采用了中间件的RFID定位追踪系统一般包括4个部分。标签、读写器、中间件和应用系统。中间件作为系统的核心,需要有效解决RFID读写器适配、数据清洗与过滤、实时性和定位追踪业务流程的集成等关键技术问题。
2 中间件设计
中間件采用分层结构进行设计,包括硬件适配层、事件处理层、定位服务层和接口层。
2.1 硬件适配层
硬件适配层旨在对设备操作进行抽象,屏蔽具体的硬件细节,为上层提供统一的访问接口。该层定义了一个LogicalReader接口,接口包括设备读写和配置方法,并提供设备类型和实例、线程池等管理功能。在使用时需要针对具体型号的读写器开发设备适配模块(实现了LogicalReader接口),中间件启动后通过解析配置文件对设备适配模块进行动态加载。设备适配模块向中间件注册对应的设备类型。当激活一个设备时,中间件通过设备适配模块生成设备实例,并调用LogicalReader接口方法完成与设备的交互。
2.2 事件处理层
事件处理层接收从数据源(硬件适配层)中发来的原始标签读取信息,按照时间间隔等条件累计数据,将重复或不感兴趣的数据剔除过滤,将结果封装成事件报告向上层提交。
2.2.1 事件报告
一个定位事件表现为代表位置的读写器在某个时间点读取到代表被定位目标的标签,可以使用一个三元组来表示。例如Reader1在t1时刻读到tag1,可简记为(Reader1,t1,tag1)。由于在t1时刻,Reader1可以读到很多标签(例如tag1和tag2),所以事件处理器层会生成一组三元组(Reader1,t1,tag1),(Reader1,t1,tag2)}。读写器输出的标签数据量可能很大和不完整,需要进行收集、清洗和过滤。
2.2.2 过滤
事件通过过滤器进行处理。过滤器定义了事件过滤规则,对输入的事件进行识别、剔除。若干过滤器组成链表,可对链表进行插入和删除操作,链表上的过滤器将依次被调用进行事件过滤。过滤器包括了不同的过滤规则,对数据是否完整、是否重复读等约束性条件进行规则匹配,对满足条件的数据进行丢弃、合并操作。过滤后的结果生成事件报告写入消息队列。
2.2.3 消息队列
事件报告被写入消息队列,由上层模块进行进一步处理。事件处理层的请求数据发送给消息队列之后立即返回,再由消息队列的消费者从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度快于数据库(消息队列也比数据库有更好的伸缩性),因此响应速度得到大幅改善。因此消息队列具有很好的削峰作用的功能——即通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。
2.3 定位服务层
定位服务模块负责解析读写器事件,将其解析为业务层面的目标定位报告并写入数据库。该层的核心工作包括目标绑定、位置绑定、数据转换。
2.3.1 目标绑定
业务应用系统中需要定位追踪的资产或人员在中间件中被视为目标(Target),通过一个追踪ID(Target ID)进行表示。业务系统中将需要定位追踪的目标与Target ID进行一对一关联,并将Target ID与RFID标签(Tag)进行绑定,在中间件中通过此ID对目标访问位置信息。
2.3.2 位置绑定
业务应用系统中的定位区域在中间件中被视为位置(Position),通过一个追踪ID(Position ID)进行表示。业务系统中将区域与Position ID进行一对一关联,并将Position ID与读写器设备(Reader ID)进行绑定,从此设备返回的事件视为被定位追踪目标,能够在此区域内被定位到。
2.3.3 数据转换
读写器事件可以用一个三元组表示
2.3.4 数据处理过程
定位服务层维护了一张映射表,以消费者的身份从消息队列中取出事件报告。分析事件报告后生成定位追踪报告。为了提高对最新定位信息访问的速度,定位报告首先用于更新缓存中的信息,然后再写入数据库。
2.4 接口层
接口层为外部应用访问中间件提供统一API接口,内容涵盖设备管理、目标绑定、区域位置绑定、当前位置查询和历史数据查询。接口采用基于HTTP協议的RESTful风格,使用JSON作为协议报文格式。外部应用请求首先到达中间件的接口层,经过过滤后(参数检查、报文校验和错误处理),按照事先定义好的路由规则被分发到具体的服务模块中进行处理并返回结果。
3 结论
RFID中间件为企业开发应用系统提供了更有效的手段。该文提出的RFID定位追踪中间件采用了分层的架构设计,实现了定位追踪业务功能的整合,具有易于集成、并发性好、实时性强的特点,可以有效降低应用系统的内部耦合性,提高开发速度和系统性能。
参考文献
[1]杨玉丽.RFID技术在实验室资产管理中的应用[J].山东工业技术,2018(2):110-109.
[2]程静,贾银江,关静.RFID中间件在肉牛养殖溯源系统中的应用[J]. 农机化研究,2015(5):224-228.
[3]吴雯,李士宁,李志刚,等.基于SOA与资源即插即用的RFID中间件[J].计算机技术与发展,2014(9):45-49.
[4]张祎.基于复杂事件处理的轻量级RFID中间件设计[J].自动化与仪器仪表,2016(8):171-174.
[5]班贺,袁红兵.面向仓储管理的RFID中间件的设计与应用[J].机械制造与自动化,2016(3):121-124.