RFID中间件关键技术研究
文/北京交通大学电子信息工程学院 李星 付文秀
本文阐述了RFID(Radio Frequency Identification,射频识别)中间件系统,研究了RFID中间件关键技术之数据处理,分析了RFID数据特点,归纳总结了RFID数据处理的关键技术:RFID数据清洗和RFID复杂事件检测技术,同时结合各大厂商的中间件系统,总结了RFID中间件数据处理的现状,讨论了一些迫待需要解决的问题,并对今后研究的重点进行了展望,创新性的提出了将高效模式匹配算法Rete引入RFID复杂事件处理中。
1、引言
RFID射频识别技术作为一种快速、实时、准确采集与处理信息的高新无线自动识别技术,通过使用RFID读写器和RFID标签,它能识别和认证远距离的人和物。RFID技术与互联网、通讯等技术相结合,可实现全球范围内物品跟踪与信息共享,被广泛用于生产、管理、生活、国防等各个领域,被列为“21世纪10大技术之一”。
RFID技术能否成功最重要的是如何满足企业现有应用系统与RFID设备的连接,而RFID中间件是应用部署运作的中枢,它介于前端读写器硬件模块与后端数据库和应用软件之间,已成为RFID系统应用的关键之一。
2、RFID中间件系统概述
RFID系统包括四个部分:标签、读写器、中间件和应用程序。RFID中间件是应用的神经中枢,它是一种消息导向的软件中间件,信息是以消息的形式从一个程序模块传递到另一个或多个程序模块。消息可以异步的方式传送,所以传送者不必等待回应。它实现RFID硬件设备与应用系统之间数据传输、过滤、数据格式转换,将RFID读写器读取的各种数据信息,经过中间件提取、解密、过滤、格式转换、导入企业的管理信息系统。中间件技术降低了应用开发的难度,使应用系统开发者不需要直接面对底层硬件架构,只需要了解它提供的接口。
RFID中间件在原有的企业应用中间件发展的基础之上,结合自身应用特性进一步扩展并深化了中间件在企业中的应用。其主要特征如下:
(1)独立性——RFID中间件独立并介于RFID读写器与企业后端应用程序之间,不依赖于某个RFID系统和应用系统,能够与多个不同RFID读写器以及多个后端应用程序连接,以减轻架构与维护的复杂性。
(2)数据流——RFID中间件最重要的组成部分,它的主要任务在于将不同实体对象格式转换为信息环境下的统一格式的虚拟对象,因此数据处理是RFID最重要的功能及实现难点。RFID中间件具有数据采集、过滤、整合与传递等特性,以便将正确的对象信息传到企业后端的应用系统。
(3)处理流——RFID中间件是一个消息导向中间件,提供顺序的消息流,具有数据流设计与管理的能力。
3、RFID中间件关键技术研究
RFID中间件在物联网中处于读写器和企业应用程序之间,是网络的神经系统。在研究RFID中间件时有很多问题需要解决,这里主要研究其关键技术之一:数据处理。
在早期RFID的应用开发中,读写器将读取的数据直接传递给应用程序,应用程序解释这些原始数据,处理形成业务逻辑数据,这导致RFID处理部分非常复杂,对于企业来说,必须重新改写应用系统,应用成本高,同时软件的可重用性和可适应性非常差。随着RFID的应用,RFID数据量随之庞大,为了RFID的普及应用,必须对上层应用屏蔽底层硬件,将数据处理和复杂事件检测到集中到RFID中间件,并提供统一的通用的数据清洗和复杂事件检测模型,从而为企业提供统一的应用接口,减小企业接入的困难及成本。
在RFID应用中会产生大量数据,与普通数据相比,RFID数据具有如下特点:
(1)时态、动态和关联性。读写器在现场获得标签数据,并同时记录数据产生的时刻。一个RFID数据不是独立存在的,而是相互关联的,由时态和动态性衍生出关联性。时态关联表达了事件之间的时序关系,空间关联表达了事件发展的轨迹,时空关联共同表达了与对象有关的事件的变化过程。
(2)丰富的隐含语义。标签数据携带有与上下文状态和背景知识有关的信息,这些信息是隐含的,且与上层应用逻辑之间存在密切的关系。利用这些相关信息可进一步导出衍生信息。
(3)不准确性、冗余性和异构性。由于射频干扰等,现有的RFID读写器还存在误差问题,如漏读、多读和脏读等。另一方面针对不同种类的读写器,对于同一标签,读出的数据也可能不一样,这取决于各个读写器之间的协议差异性。同时,对于同一阅读器,也可以识别出多种不同性质的数据。
(4)流特性。RFID数据是以流的形式快速、自动地产生的,需要积累起来以支持跟踪和监控应用,这就要求中间件能实时处理大量的数据。由于RFID数据的不准确性,所以在使用数据前会对数据进行预处理,即RFID数据清洗。由于RFID数据的隐含语义和关联性,须有事件处理引擎来处理事件间的关联关系,将没有具体意义的简单原子事件形成富含逻辑意义的复合事件。因此数据处理的关键技术是RFID数据清洗和RFID事件检测技术。
3.1 RFID数据清洗技术
RFID利用无线射频技术传输数据,由于读写器异常或者标签之间的相互干扰,有时采集的数据不完整或是错误,即脏读,还会出现多读和漏读等现象,因此需要进行预处理,将脏读、多读和漏读等降到最低,尽可能接近真实数据,提高数据的准确度。
(1)最早在EPCGlobal的Reader Protocol协议中涉及了Smooth算法,当初的目的是为了用含有逻辑意义的事件代替大量的标签事件流,但实际上起到了平滑事件流、清洗漏读数据错误的功能。它的窗口大小固定不变。
(2)一种基于SQL查询模型的ESP(Extensible receptor Stream Processing)机制,它清洗来自不同接收器的原始物理数据,利用接受数据的时态性和空间性产生一种更准确地反映物理世界的改进流。 ESP机制设计成管道结构,利用描述性连续查询处理工具。该算法分为5个步骤,分别是Point-Smooth-Merge-Arbitrate –Virtualize,通过描述性连续查询可以对这些步骤进行编程。每个步骤有不同的清洗任务,采取不同的清洗技术。针对不同的应用,该机制十分灵活,可以根据需要采用不同的步骤。这5个步骤清洗层次逐渐升高,由对单个接收器数据的清洗,扩展到对多个接收器的处理;由对来自同种类型接收器数据的清洗,扩展到来自不同种类接收器的处理。ESP采用定长滑动窗口机制,根据RFID数据具有时间和空间相关性对数据进行清洗,但没有涉及如何设置。主要解决了漏读和多读(即噪声数据)。
(3)美国加州大学Berkeley分校提出了一种统计平滑处理算法SMURF,它将RFID数据流当作统计学中的随机事件,通过概论统计方法对漏读的数据进行填补。通过采用二项式分布模型和 -estimator模型,SMURF不断适应平滑窗口的大小。但该模型只解决了单个阅读器的数据处理问题,并且在标签快速移动时,不能很好的决定窗口大小。有一种新的改进算法,该算法在动态决定滑动窗口大小时考虑诸如读写器读写范围,读写频率,标签移动速率等因素,解决了标签快速移动时窗口大小问题。
(4)基于机器学习的数据清洗算法。提出一个RFID数据流成本意识清洗框架,包含RFID数据集和一系列带有清洗开销的清洗方法,提出一个适应性调整时间开销和准确性的总体优化算法,它能在高准确性、低消耗条件下清洗大规模数据集。文中提出了决策树和贝叶斯方法,根据不同数据特征进行最优化清洗策略选择,以达到总体开销最小化。只解决了漏读问题。
(5)综合性清洗策略,研究了两种过滤类型:去噪和去除重复数据,与基线实现相比,这两种算法更有效,同时存储历史数据需要更少的缓存空间。此外,通过预先设定一个最大延迟时间,并将接收到的数据进行缓存排序,解决了时间戮乱序问题。该算法针对性地解决了漏读、多读和重复数据清洗问题,但处理数据延迟大,效率不高,同时只考虑了单个阅读器的情况。
上述清洗算法本质上都是根据自身历史数据的特点进行平滑, 主要关注于单个读写器,忽视在现实应用中数以千计的读写器和数百万标签的巨大开销,没有考虑到监控对象之间的关系和时空的闭合性。
(6)基于虚拟空间粒度的算法。将拥有相同运动轨迹的标签作为一个虚拟单元,在一个虚拟空间粒度中的不同标签信息相似。有文献中提出空间相关性,利用在RFID实际应用中普遍的邻近读写器,以加强对大量RFID数据集的自适应清洗,为了减小开销,扩展了SMURF的多标签清洗结构。该算法针对邻近读写器数目为2到3个的情况。
(7)一种基于阅读处理状态的清洗方法,该算法利用了相关检测节点提供的有用信息帮助数据清洗,当检测到一个新的标签,将根据每个标签的阅读状态实施数据清洗。算法解决了漏读和多读,准确性高、开销小。
(8)一种全面的基于监控对象动态聚簇的高效清洗模型。它充分利用了监控对象之间的关系和时空的闭合性。通过定义关联度和动态聚簇对各个RFID监控物体所在的小组进行动态的分析,并在此基础上定义了一套关联度维护和数据清洗的模型和算法,该数据清洗模型可以获得较好的效率和准确性。但该算法主要解决漏读和多读问题,没有涉及冗余数据处理,同时对于时间戮乱序问题也没有涉及。
3.2 RFID事件检测技术
RFID数据处理的主要目的是按照给定的规则和模式,检测出指定的事件。目前主要有以数据为中心和以事件为中心的方法。
以数据为中心的系统采用传统的数据库技术,对RFID数据进行建模,保存在数据库中,在数据库基础上,利用数据库特性,如触发器和存储过程等,实现事件处理[18]。它是最早使用的方法,代表性的系统是Simens公司的RFID中间件系统。Simens的RFID中间件系统提出了面向时态的实体关系(ER)模型(DRER),不仅能描述RFID数据的特征,还能表达业务逻辑,并支持基于分片的存储,具有可伸缩性。基于规则框架提供自动的RFID数据过滤、转换和检测,生成高层次的语义数据,在数据库基础上,利用规则进行检测,获得应用系统关心的具有高层次语义的数据。但由于性能限制,其只适合于进行历史数据的查询,或者在线监控低速事件,不适合高速、海量和实时的数据查询处理。
以事件为中心的系统是基于数据源而不是数据库对事件建模,对事件直接进行检测和处理,以获得高的效率和实时性。以事件为中心的方法核心是复杂事件处理,复杂事件处理(Complex Event Processing, CEP)是一种可以从任何分布式的基于消息的系统中提取和分析信息的技术,适合于RFID应用的高层业务信息处理。常用的复杂事件检测方法:基于Petri网、基于树、基于图和基于自动机的检测方法。
RFID复杂事件处理已有不少研究,典型的系统有美国加州大学伯克利分校的原形系统SASE[21][22]、Cornell大学开发的Cayuga系统、Texas大学Arlington分校开发的EStream系统, Dartmouth学校开发的PQS系统,RCEDA, EsperTech公司的Esper以及TPN。
SASE系统提供扩展的事件查询语言、事件查询处理器和操作优化策略等,实现了 RFID 设备的数据采集和清洗、基本事件生成、复合事件处理、事件归档以及对事件的查询。SASE定义的事件操作符包括时序关系、数值限制、时序限制、Negation和滑动窗口等操作。查询处理由6种算符的子集组成,分别是序列扫描、序列构造、选择、窗口、非操作和转换,它们由下至上构成了一个查询计划。同时考虑了大量的优化,提出了对操作符下推、基于属性分组等相关的查询优化策略。
Cayuga 系统提出了扩展的查询语言,通过了自定义的自动模型和内部命名方法来高效的检测复合事件,并讨论了相关的系统实现的技术节。
EStream 系统在数据流查询器的基础上,继承了连续事件查询器,利用规则检数据流上的复合事件,考虑了高效的增量维护算法。