导读:本文阐述了RFID中间件系统,研究了RFID中间件关键技术之数据处理,分析了RFID数据特点,归纳总结了RFID数据处理的关键技术:RFID数据清洗和RFID复杂事件检测技术,同时结合各大厂商的中间件系统,总结了RFID中间件数据处理的现状,讨论了一些迫待需要解决的问题,并对今后研究的重点进行了展望,创新性的提出了将高效模式匹配算法Rete引入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 系统在数据流查询器的基础上,继承了连续事件查询器,利用规则检数据流上的复合事件,考虑了高效的增量维护算法。
{$PAGE$}
PQS系统采用非确定性有限自动机、隐型马尔可夫过程HMM等方法对动态过程建模,以事件流为输入参数通过对模型求解,从而发现产生这些事件的过程,实现过程查询和检测。
RCEDA处理方法在snoop的基础上提出了针对RFID原子事件和复合事件的形式化描述方法,并且集成了snoop的采用事件图来描述复合事件的方法。RCEDA方法提出了三种检测模式:pull、push和mix,在事件检测中时间限制被作为第一类对象,并引入伪事件,很好地解决了非自发事件的检测。
Esper是一个开源的复杂事件处理引擎,使用类SQL语言处理事件,提供了丰富的事件描述语言EPL,支持复合事件的进一步复合,并且能够实现与数据库中历史数据的集成,使用有穷自动机进行复合事件检测,采用了滑动窗口机制,然后针对窗口的规则检测来处理输入事件流。
TPN方法使用事件Petri网对RFID复合事件进行描述和检测。该方法针对RFID复合事件特点,在传统Petri网基础上定义了时间Petri网。它定义了复合事件的四种状态:初始状态、执行状态、提交状态和夭折状态。
这些系统中SASE和Cayuga是针对事件检测最有代表性的系统。但是SASE只能检测由基本事件构建的复合事件,还不能对由复合事件进一步组成的高级复合事件进行检测,同时没有根据RFID系统需求考虑Repetition等语义,消耗模式也仅仅考虑了exclusive,而且假设事件流的时间戳满足自然数全序关系,由于网络延时等,这在现实中是不可能的。Cayuga自动机解决了SASE系统所不具备的一些功能,如简单的复合操作和时序限制,但是由于自动机加入大量的内部命名机制,不便于用户理解,而且只支持简单的数值限制。与SASE系统相比,不支持重要的Negation操作,消耗模式也仅仅考虑简单的delete模式,即先前参与复合事件匹配的基本事件不再参与后面的匹配。另外,由于在Cayuga系统中没有修正乱序,可能会导致参与匹配的有效乱序事件被删除,这样部分复合事件就不会被正确检测。
由此可以看出,复杂事件检测技术迫切需要解决的关键问题是复合事件进一步组成高级复合事件的检测,非自发事件的检测,中间检测结果的共享,处理过程中的消耗模式及时间戮乱序问题。
针对这些问题,有人提出了通过建立共享池和复合事件分类表来提高检测效率的检测方法,但是该方法没有把事件检测和中间结果共享机制统一起来,每产生一个事件实例都要去查询事件分类表和共享池,增加了系统开销。
4、RFID数据处理现状及研究方向
随着RFID的应用,各大厂商开发了自己的RFID中间件平台,如SUN EPC Network,SAP Auto-ID架构,Oracle Sensor Edge Server,IBM WebSphere RFID Premises Server,Sybase RFID解决方案和UCLA WinRFID中间件。通过研究各RFID中间件巨头企业数据处理方法来了解RFID中间件系统数据处理现状。
IBM的RFID中间件架构中,与数据处理相关的组件只有FilterAgent,所实现的过滤器有五类:Duplicates,DecayingDuplicates,CaseTags,EpcFilter,Interest,功能只有冗余过滤和位过滤,没有任何针对漏读、脏读、复杂事件处理的功能。
SUN公司的RFID中间件完全端到端的解决方案,强化了SUN的核心基础技术,可以过滤、集合与处理大量来自RFID网络边缘的数据。与数据处理相关的模块是Execution Agent中的Filter组件,SUN公司最早提出了smooth、delat、bandpass等简单过滤规则,用来过滤冗余数据、平滑漏读数据,bandpass能生成简单的逻辑事件。但是仍然需要通过定制组件的方式来增加过滤功能,检测新的复杂事件,没有一个完整数据清理解决方案,和灵活的复杂事件检测引擎。
Oracle/BEA的RFID中间件架构基于BEA的WebLgoic Enterprise Server,BEA的事件服务架构中的事件引擎是目前各大公司中功能最强大的事件引擎,采用了esper流事件处理引擎,使用EPL语言,对实时数据进行监控,生成具有逻辑意义的复杂事件。但该引擎是基于关系代数的模式构建,对时序顺序的检测非常的弱,然而RFID事件检测中往往需要大量的时序检测。此外,还存在没有针对RFID数据中所存在的问题提供相应的清洗策略。
UCLA实验室开发的一套RFID中间件WinRFID Edge-Server,使用Data Filtration进行数据过滤,使用了规则引擎对过滤数据进行检测,通过规则验证,则通过逻辑控制出发相应动作,但是规则引擎不适合RFID数据,它并没有针对数据流的相关优化处理,同时RFID数据中存在大量的重复事件,还有时序检验,规则引擎不能很好的处理。
分析可知,SUN的中间件功能单薄,过滤规则简单,缺少复杂事件的定义和处理能力,而Microsoft、IBM、Oracle、Sybase等厂商提供的RFID中间件的设计大多基于自己目前的核心产品或技术,有太大的依赖性和较小的扩展性。上述巨头企业RFID中间件平台更着重关注底层数据过滤和搜集,在一定意义上,这些平台是ALE[42]标准的一种具体实现,这些RFID中间件平台针对RFID数据中存在的多读、漏读、脏读和时序问题,没有提出一个完整的解决方案,也没有针对RFID的复杂事件检测机制。
为了适应RFID的飞速发展,快速、实时地从海量RFID数据中提取出感兴趣的信息,复杂事件处理将成为RFID数据流处理研究的热点。因此,研究现有复杂事件处理系统,站在巨人肩膀上,认识现有系统的不足。
研究证明复杂事件检测中,90%的时间用于模式匹配,因此,如何进行高效的匹配是研究的重点。RETE算法[43]是一种高效的模式匹配算法,被广泛应用于规则引擎中,根据Rete特点,研究提出将其应用到RFID中间件系统,以解决复合事件的检测问题。
5、总结
RFID数据处理是RFID中间件的重要研究内容,涉及到数据库技术、人工智能技术和实时技术等。本文主要介绍了RFID中间件系统,并从RFID中间件数据特点出发,研究了数据处理的关键技术:数据清洗和复杂事件检测技术,指出了目前研究的一些不足和限制,及一些相应的解决方法,介绍了各大厂商对RFID数据处理的解决方案。
在后续研究中,将研究、改进高效模式匹配算法Rete,将研究时间窗口机制以适应RFID应用中的时间限制,同时根据事件的生命周期,设计高效的空间回收机制。