本部《无线射频识别技术与应用》大作业.docx
《本部《无线射频识别技术与应用》大作业.docx》由会员分享,可在线阅读,更多相关《本部《无线射频识别技术与应用》大作业.docx(15页珍藏版)》请在冰豆网上搜索。
![本部《无线射频识别技术与应用》大作业.docx](https://file1.bdocx.com/fileroot1/2023-6/27/a929057b-b793-47b3-92ae-2a49dbafc916/a929057b-b793-47b3-92ae-2a49dbafc9161.gif)
本部《无线射频识别技术与应用》大作业
《无线射频识别技术与应用》大作业
题目RFID复杂事件处理技术
学生姓名周宏豪
学号20121375025
学院计算机与软件学院
专业12物联网工程1班
指导教师张小瑞
二O一五年五月四日
RFID复杂事件处理技术
周宏豪
南京信息工程大学计算机与软件学院,南京210044
摘要:
随着RFID技术的发展,RFID应用正无所不在。
通过对RFID数据的深入处理和分析,可以发现更复杂的复合事件和隐含知识,从而有效地支持事件监控、事件预警等先进应用。
由于RFID的特殊性,依靠现有的主动数据库技术和数据流管理技术难以实现高效的RFID事件检测和处理。
分析了RFID数据的特点,归纳和总结了RFID复杂事件处理的最新技术,讨论了一些新问题,主要有RFID数据清洗方法、以数据为中心的检测技术、以事件为中心的检测技术,以及复杂事件处理系统等,并对今后的研究重点进行展望。
关键词:
RFID技术;数据清洗;复杂事件处理;数据流技术
1引言
无线射频识别(RadioFrequencyIdentification,RFID)技术是一种自动识别和数据获取技术。
RFID的基本工作原理是,首先由阅读器向RFID标签发送能量,标签向阅读器返回数据,阅读器解码并向主机返回数据。
这种标签也称为无源的被动式标签。
高级的RFID标签是有源的主动式标签,其感应距离可以更远(超出10m),也可以是可读写的,能够将有关数据写回标签。
RFID标签具有低成本、寿命长、不怕污染和适应恶劣环境等特点,有望在将来替代目前流行的条码。
国际标准委员会制定的电子产品代码EPC,为每个产品定义全球唯一的ID,使每个标签对象携带有唯一的识别码。
一个通用的RFID应用系统的组成。
RFID技术的早期应用是为了识别物品、计算数据。
例如,在物流配送系统中,当物品带上标签后,可以从一大批物品中快速地追踪和定位目标,并统计数量;在门禁安检系统中,可以快速、准确地识别和统计出入人数。
实际上,RFID支持事件监控等更高级的应用,这些动态的RFID数据的产生代表着某种基本事件的发生,通过模式匹配、异常发现、关联分析等智能推理手段,可以检测和发现更复杂的事件,即复合事件。
例如,在物流配送系统中,可以实时监控物品丢失、配送阻塞等事件;在门禁安检系统中,可以发现异常活动和潜在的不安全因素等;甚至在智能医院中,用于跟踪医生、病人、医疗设备和药品。
因此,实际应用中迫切需要开发支持这些复杂RFID应用的事件处理技术。
2RFID数据清洗技术
在RFID系统中,由于射频干扰和标签读取结构等诸多原因,数据读取的可信度较低,这严重影响了RFID技术在各领域中的用途(比如精确的存货跟踪,严格的病人监护等),因此,系统中必须增加对RFID数据的预处理环节,使阅读器读取来的数据,无论从时间序列还是从数值上,尽可能地接近真实数据。
2.1数据清洗的内容
RFID数据读取的低可信度主要与其采用的无线射频信号相关,它们极易受环境影响,而且相互干扰,尤其当标签和阅读器数量多时,信号干扰加强,但这属于电磁波的物理特性,很难改变,只能从其他方面加以考虑。
RFID源数据的不准确性,主要归结为下面3点:
(1)漏读:
当一个标签在一个阅读器阅读范围之内时,该阅读器没有读到该标签。
这种情况可能发生在同一时间段内,某个阅读器同时读多个标签时,某些标签被遗漏。
经调查表明,通常情况下,阅读器只能读到在它感应范围内60%~70%的标签数据,即至少有30%的标签数据读取时被遗漏。
在RFID应用中,数据漏读现象比较严重,应重点解决。
这种错误也称为拒真(falsenegative)。
(2)多读:
指当一个标签在一个阅读器阅读范围之外时,该阅读器仍然读到了该标签。
这种情况主要因为多个阅读器同时存在时的电磁波的干扰,随机性很大。
这种错误也称为纳伪(falsepositive)。
(3)脏数据:
指一个标签在一个阅读器阅读范围之内时,该阅读器感应到该标签存在,但读出的EPC值不正确。
上面总结的3点主要是从数据的准确性方面考虑的,除此之外,还有两个方面需要考虑,即时序性和精简性。
RFID应用对数据的时序性要求很高,而数据在传输过程中,乱序现象比较严重,数据应该按时间戳大小有序输出;而精简性是指消除数据冗余,避免造成存储空间浪费和出现二异性。
目前,对RFID应用中数据清洗技术的研究已经取得了一定的进展,对上面提出的问题也有了不同的解决方法,但解决问题的类型主要分为两类,即主要只针对漏读现象的解决办法和针对各类问题的适应性解决办法,下面分别介绍。
2.2数据漏读的清洗策略
目前,针对数据漏读现象,已经有了许多解决方法,如建立概率模型、建立SQL查询模型以及利用机器学习方法建模等,下面依次介绍。
大部分的RFID中间件系统采用了“平滑过滤器”策略,即设定一个固定窗口大小用以填补漏读数据,但由于窗口大小固定不变,致使窗口过小会产生拒真数据,窗口过大会产生纳伪数据,由此可见,大小固定的窗口不能根据数据的特点精确地添补数据,美国加州大学Berkeley分校则提出了一种改进方法,即基于概率模型SMURF的适应性数据清洗方法。
该方法主要考虑到了两个因素,完整性和标签动态变化性。
完整性是指确保在阅读器阅读范围之内的所有标签都能被读到,平滑窗口应该足够大以保证完整性。
但是设置一个大的滑动窗口,有可能探测不出窗口内标签移动,即当标签已经离开阅读器的阅读范围之内时,它仍被错误地探测到,这样会产生大量的纳伪数据,不能保证标签动态变化性。
由此可见,窗口大小的调整十分关键,既要保证完整性又要保证标签动态变化性。
确保完整性的因素主要是阅读器的阅读速率,它主要受阅读器、标签的类型和周围物理环境影响。
而确保标签动态变化性的因素主要是标签的移动特性,它主要跟应用类型有关,如放在固定货架和传送带上的两个标签会表现出截然不同的移动特性。
SMURF模型是在一种新的转换思路基础之上建立起来的,将RFID数据流看作统计学中的随机事件,即读出一个标签看作是发生一个随机事件,标签的读出频率看作是事件发生的概率,在平滑窗口内的探测值看作是多次重复随机事件的结果。
在此基础上提出了两个概率模型:
二项分布和π-estimator。
伯努利二项分布模型用来解决单个阅读器探测单个标签的情况。
在平滑窗口内读到标签的次数N满足伯努利二项分布B(wi,pavgi),wi是在平滑窗口内阅读器探测周期epoch的次数(窗口大小),即重复试验的次数,pavgi是在平滑窗口内标签的平均读出频率,即事件发生概率。
当置信度为δ时,保证完整性的充分条件是:
wi≥ln(1/δ)pavgi,当前窗口小于wi时,适当扩大窗口大小;而探测到标签动态变化时的条件是:
||Si|-wipavgi|>2·wipavgi(1-pavg"i),其中,|Si|表示在平滑窗口内,探测到某标签的次数,此时适当减小窗口大小。
由此根据标签当前信息,适应性地调整窗口大小,可以保证较准确的填充数据。
π-estimator模型用来解决单个阅读器探测多个标签聚合的情况,以准确地探测某个时间段内标签的个数。
在平滑窗口内,存在的标签个数之和为N!
W=i∈SW$1πi,其中πi=1-(1-pavgi)w,表示在窗口内标签i的读出概率,pavgi是平均标签的平均读出频率。
保证完整性的充分条件与二项分布模型的相同。
探测到标签动态变化条件是:
|NW-NW′|>2(Var[NW"]+Var[NW′]"),其中NW和NW′分别表示在当前窗口W=(t-w,t]和当前二分之一窗口W′=(t-w2,t]内,存在标签的个数之和。
针对这两个条件的相应具体操作与解决单个标签的情况类似。
与静态窗口填补算法相比,适应性调整窗口大小的填补算法有着明显的优势。
但此概率模型只解决了单个阅读器探测的问题,没有考虑空间布置多个阅读器探测的情况。
基于SQL查询模型的方法主要提出了一种ESP机制,可以用来清洗来自不同接收器的数据,并且针对各类型错误数据的各自特点进行清洗,RFID错误数据主要是漏读数据。
该机制是一个描述性的查询处理工具,设计成管道结构,便于处理数据和建模,其中每一步带有典型描述性查询。
该管道结构由5部分连接组成,分别是Point,Smooth,Merge,Arbitrate和Virtualize。
它们是ESP机制清洗数据的5大步骤,每个步骤有各自的清洗任务。
针对不同的应用,采取的具体清洗技术也不同,不一定实现每个步骤。
下面进行具体介绍。
Point:
该步骤主要对来自同一个传感器的源数据流中的单个数据进行清洗,去掉异常数据,如RFID中错误的标签数据、噪声数据,然后将满足过滤条件的数据输出。
Smooth:
该步骤主要根据数据之间的时间相关性对漏读数据进行填补或探测噪声数据。
该方法定义了时间粒度概念,它是处理数据的时间单位,如在数据流上定义与之相等的时间窗口(窗口大小由用户需求决定),然后在窗口上进行各种聚合操作,并输出结果。
Point和Smooth步骤均可以下推到有处理能力的接收器节点上执行。
Merge:
该步骤主要根据数据的空间相关性对数据进行清洗。
该方法定义了空间粒度概念,它是处理数据的空间单位,每次将接收到的来自于多个接收器的数据按事先定义好的空间粒度进行分组,然后逐个处理并输出。
Arbitrate:
多个接收器接收的数据可能会产生冲突,例如,同一数据被位于不同区域的两个接收器同时读到时,该步骤负责判断应该属于哪个接收器。
Virtualize:
某些应用可能会用到来自不同类型接收器的数据或者已存储的数据。
该步骤通过对各种数据的Join操作,提供所要求的数据。
连接属性可以是时间戳、ID或者其他相同属性等。
这5个步骤的数据清洗层次逐渐升高,由对单个接收器数据的清洗,扩展到对多个接收器的处理;由对来自同种类型接收器数据的清洗,扩展到来自不同种类型接收器的处理,解决数据清洗的范围很广。
另外,该模型处理问题十分灵活,针对不同的应用,可采用不同的步骤。
该模型主要根据数据具有的时间相关性和空间相关性对数据进行清洗,考虑范围比较宽广,但时间粒度和空间粒度如何设置,一旦设置可否适应地改变,如何改变等问题仍在研究中。
上述两种清洗策略的主要衡量标准是准确性,即清洗后的数据中,准确数据所占比例。
但是当某个RFID应用布置规模极大时,如涉及到数千个阅读器、数万个标签,这时衡量标准就不能只考虑数据的准确性了,还要考虑到算法的时间开销问题。
因而,文献提出了以机器学习为背景的清洗算法。
它提出了一个清洗框架,包含大规模的RFID数据集和一系列数据清洗策略,并分析了各个策略对应的清洗开销,提了一个适应性调整时间开销和准确性的总体优化算法。
该算法所考虑的开销主要包括三个部分:
一是机器学习中,每个元组的训练开销;二是存储开销和运行开销;三是分类错误时所需的开销。
清洗方法是指以标签实例(〈EPC,t〉,〈f1,f2,⋯,fk〉)作为输入的一个方法分类器M。
fi是指用来描述标签的各个属性或所处物理环境的特征。
共有4种特征:
(1)标签特征,描述标签属性,如通信协议、销售商、价格、历史探测数据等等;
(2)阅读器特征,描述阅读器属性,包括天线数量、协议、价格等等;(3)位置特征,描述该观测值被读出时标签所处位置,如货架、传送带等等;(4)标签所附物体特征,如该物体组成(金属或水质)、物理方位或是否为一容器。
这些特征都可以用来作为方法分类的标准,但最终的标准选取需要从训练集数据中学习获得。
具体的清洗方法主要为静态平滑窗口填补方法和动态平滑窗口填补方法,还可以是用户自定义的方法。
清洗规则可以具体指明分类条件,根据这些条件,每个元组实例会找到适合它的清洗方法,从而达到总开销最小的清洗策略。
一种简单的模型清洗的方法是使用决策树,根据具体应用中得到的标签实例生成对应的决策树,给出了一个决策树的实例。
在此基础上,对需要清洗的元组实例进行最优策略选择即可。
元组实例一般需要在的基础上转换而来。
文中提到了决策树方法和贝叶斯方法,根据不同数据特征进行最优清洗策略选择,以达到总体开销最小化。
由于RFID技术采用无线信号传输数据,数据准确性受环境影响很大,该方法抓住了这个关键点,将布署RFID的环境特征,标签所附物品特征等作为分类标准。
但是训练集如何选取才能覆盖应用中的所有数据特征还有待研究。
另外,该技术只解决了漏读现象,如何解决多读、冗余、时间戳乱序等问题;特征值的选取,是否与漏读基本相同等问题也需要进一步研究。
总之,上面这三种技术都针对数据漏读现象在建立模型的基础上提出了清洗策略,研究的已经比较深入,但对于解决其他清洗问题,如去除冗余数据、去除多读数据等,这些模型还有待进一步扩展。
2.3综合性清洗策略
由于RFID数据需要清洗的方面有许多,该节介绍能够进行综合性清洗的两种解决方案。
第一种是网络RFID中阅读器的最优化调度策略。
RFID数据采集可靠性低的一个主要原因是多个阅读器同时感应数据时造成信号干扰。
如果根据阅读器空间位置,每一次调度那些互不干扰或干扰较小的阅读器同时感应数据,则会大大减少无线信号的干扰,这样采集数据的质量必然会提高,从预防的角度达到了数据清洗的效果。
第二种是清洗范围非常广的算法,该算法针对不同的数据清洗类型提出了相应的清洗方案。
针对漏读现象,该算法提出通过设置高的阅读器读频率来解决;针对多读现象,该算法提出预先设定一窗口大小,统计在该段时间内各个标签被读到的次数,如果某个标签的统计次数小于阈值,则认为相关数据是多读数据;对于重复数据,将相隔时间太短的相同或相似数据消重,只留下一个数据即可;解决时间戳乱序问题,主要是将接收到的数据进行缓存排序,预先设定一个最大延迟时间,在此时间之后到达的数据给予删除。
该算法针对性地解决了多种数据清洗问题,但处理数据的延迟较大,导致效率不高,而且只考虑了单个阅读器探测标签的情况,还有许多地方需要改进。
在RFID数据清洗过程中,清洗方法的深度和广度之间存在着制约。
针对数据漏读现象提出的各种清洗技术都有各自的模型,对问题的研究已经非常深入,但在此模型基础上,如何解决其他类型的数据清洗问题还有待进一步研究。
3RFID事件检测技术
RFID事件处理的主要目的是进行事件检测,即按照给定的规则和模式,检测出指定的事件。
下面介绍:
以数据为中心的方法和以事件为中心的方法。
3.1以数据为中心的方法
以数据为中心的方法是RFID处理系统中最早采用的方法。
采用传统的数据库技术,对RFID数据进行建模,并将数据保存在数据库中,在DBMS基础上支持事件检测,代表性的系统有Simens公司的RFID中间件系统。
类似的系统还有美国加州大学伯克利分校开发的HiFi系统,在数据流系统TelegraphCQ之上增加了事件检测器,具有连续进行事件检测的功能。
Simens的RFID中间件系统提出了面向时态的ER模型(DRER),不仅能描述RFID数据的特征,还能够表达业务逻辑,并支持基于分片的存储,具有可伸缩性。
基于规则的框架提供自动的RFID数据过滤、转换和聚合,生成高层次的语义数据。
在数据库基础之上,利用规则可进行复合事件检测。
DRER模型是该系统的核心思想,DRER模型是在时态上扩展的ER模型。
在普通ER模型中,所有的实体和联系都是静态或暂时的。
但在RFID系统中,实体是静态的,但是所有的联系都是动态的。
DRER的实体包括应用中贴有标签的所有对象、阅读器、位置和事务,而实体间的联系包含对象与对象间的包含关系、对象与阅读器的读写关系、对象与位置的所处关系等,这些关系表都存储在磁盘上,当有用户注册查询时,与传统数据库处理数据的方式相同,将磁盘上的数据调入内存进行逐个查找。
这种方式能够方便地实现应用所遇到的各种查询,如查询某个商品经过的所有历史位置,检查丢失某个商品的时间,某个商品位置改变的时间,在近1小时内卖出的商品信息等。
为了便于表示,这些应用被分为对RFID物品的跟踪和物品的监测。
其中,跟踪包括查询物体状态的改变过程和丢失物体;监测包括时间片查询,时间联合查询,时间聚合和包含检测等。
RFID以数据为中心方法的简单性在于它一般是对ER模型的简单扩展,仅仅增添动态的联系,与特定的时间相关的属性相关,这样能够具体体现事件和状态的历史,获取数据模型的基本业务逻辑,可以有效地支持跟踪和检测等复杂的查询。
此外,在RDBMS上容易实现DRER模型,能够提供对大量历史数据的查询,而且查询结果准确。
但是,RFID的应用一般要求从高速、海量的在线事件中及时发现异常事件并进行主动报警。
以数据为中心的系统由于性能限制,只适合于进行历史数据的Ad-hoc查询或在线监控低速的事件,不适合于针对高速的、海量的事件进行连续查询。
3.2以事件为中心的方法
以事件为中心的方法是一种新型的RFID事件处理技术,基于数据源而不是基于数据库对事件进行建模,对事件直接进行处理,以获得高的效率,处理更复杂的事件。
Publish/Subscribe系统技术和数据流系统技术都与这种技术有着一定的相关性。
主动数据库当中事件的建模和复合事件处理的方法,Publish/Subscribe系统中对查询数量和流速的高效支持以及数据流系统中的查询语言接口和查询优化方法,都为以事件为中心的RFID事件处理技术提供了重要的借鉴。
但由于主动数据库的处理技术没有考虑流的特性和复杂的语义,因而不能直接适用。
另一方面,RFID主要考虑同一事件流上不同事件之间的相关性和限制,不同于Publish/Subscribe系统中的简单事件过滤处理中的基于关系代数的处理,因此需要重新设计能够在内存中完成的高效、实时和增量的事件处理机制。
以事件为中心方法的核心问题是复杂事件处理(CEP,ComplexEventProcessing),即如何高效地将多个基本事件复合成为有着更加复杂语义的复合事件,包括考虑各种事件之间的限制,甚至在一些应用中需要继续检测复合事件以生成更高层次的复合事件。
一些主动数据库的相关工作讨论了进行复合事件检测的基本模型,其中包括:
基于有限自动机的模型,基于Petri网的模型,基于匹配树的模型和基于有向图的模型。
这些模型也是CEP问题的基本模型,下面分析这些基本模型。
(1)自动机模型。
由于简单的复合事件的表达式与正则表达式有着相似的形式,因此可以使用自动机模型来实现事件表达式。
ODE是最早提出使用自动机模型进行复合事件检测的系统。
每当一个参与复合事件发生的基本事件到达,自动机就会从一个状态跃迁到下一个状态,当自动机进入可接受的状态,则说明发生了复合事件。
但简单的自动机模型在匹配过基本事件后无法重新访问该事件,如果需要考虑各个基本事件之间的时间和数值联系,还需要引入额外的数据结构来保存这些信息,就构成了扩展的自动机模型。
此外,也可以在自动机跃迁谓词中加入更复杂的基于时间或者数值的条件限制,来设计专门的自动机模型。
(2)Petri网模型。
使用Petri网表示和检测一个复合事件。
Petri网的输入位置结点为基本事件,输出位置结点为复合事件。
通过输入Token,计算跃迁守护函数,如果成立,则引发跃迁并标记位置结点,当序列中的最后一个位置结点被标记后,则说明复合事件发生。
复合事件的增量检测是通过Petri网中标记的位置来描述的。
主动数据库系统SAMOS和监控系统HiFi就采用了这种模型。
(3)匹配树模型。
基于匹配树的技术通过匹配树的结构来实现复合事件的过滤器。
基本事件为匹配树的叶节点,各个层次的复合事件为匹配树的中间节点,如果到达根节点并且相应的事件被成功地过滤出来,就认为检测到了一个复合事件。
READY和Yeast系统使用了这种技术。
(4)有向图模型。
与匹配树的方法十分相似,有向图模型采用有向的无环图(DAG)来表示复合事件。
节点为对事件描述,边为事件合成的规则。
节点通过对相关事件的引用进行标记,除了用边表示事件合成规则,节点也带有相应的规则,对应某节点的事件发生,节点的规则也会触发。
Sentinel系统和EVE系统采用的就是这种模型。
从上面的分析可以看出,基于自动机和Petri网模型的复合事件检测仅仅匹配按照顺序到达的基本事件,而基于树或者图的过滤又没有考虑到匹配基本事件的顺序或者时序距离,例如复合事件中的第一个事件没有发生,第二个事件可能也会被过滤,造成了不必要的开销,在实际应用中都具有一定的局限性。
而且这些对于复合事件的检测方法都将基本事件的过滤和复合事件的检测作为不同的步骤来处理,没有考虑到在复合事件检测的同时过滤那些有价值的基本事件。
在CompAS系统中对基本事件和复合事件的集成处理。
通过在检测复合事件的同时有选择地过滤基本事件,降低了复合事件检测的响应延迟。
需要说明的是,简单地使用这些模型并不能有效地解决复杂的RFID应用,如何处理事件流、如何处理复杂语义、如何处理时态性、如何提高在线处理效率,还有很多问题有待于研究。
作者认为下面几个方面是RFID事件流中复杂事件处理区别于传统复合事件检测的重要特点:
1)语义复杂,数据量大,原始数据不准确,需要在内存中高效的增量维护算法。
2)复合事件的时序限制、数值限制等约束大量存在,传统的ECA规则不支持。
3)“非自发”的复合事件存在,例如Negation和Repetition,某个事件的发生并不知道复合事件是否发生。
4)由于Reader位置分散,在集中处理端,基本事件之间的时间戳乱序大量存在。
5)针对同样的RFID事件流可能同时注册大量不同的查询和分析。
6)先前参与匹配的基本事件是否继续参与后面复合事件的检测要视应用而定,也就是说不同的应用可能需要考虑不同的消耗模式。
4RFID事件处理原型系统
针对传感数据源的CEP系统的研究和开发工作正在兴起,有些成果可以适用于RFID事件处理的应用场景。
典型系统有美国加州大学伯克利分校开发的原型系统SASE[28]、Cornell大学开发的Cayuga系统、Texas大学Arlington分校开发的EStream系统,以及Dartmouth学院开发的PQS系统。
SASE系统提供扩展的事件语言、事件查询处理器和操作优化策略等,实现了RFID设备的数据采集和清洗、基本事件生成、复合事件处理、事件归档,以及对事件的查询。
Cayuga系统提出了扩展的查询语言,通过自定义的自动机模型和内部命名方法来高效地检测复合事件,并讨论了相关的系统实现的技术细节。
EStream系统在数据流查询器的基础上,集成了连续事件查询器,利用规则检测数据流上的复合事件,考虑了高效的增量维护算法。
PQS系统采用非确定性有限自动机、隐型马尔科夫过程HMM等方法对动态过程建模,以事件流为输入参数,通过对模型求解,发现产生这些事件的过程,实现过程查询和检测。
这些系统可以解决RFID时间检测的新特点,其中SASE和Cayuga是针对RFID事件检测最有代表性的系统,下面重点介绍SASE和Cayuga的主要技术。
SASE是最早提出的针对RFID数据以事件为中心进行处理的系统,提出了一种基于查询计划的方法,将时序关系、数值限制、时序限制、Negation等操作分别作为操作符进行处理。
查询处理是由6种算符的子集组成:
序列扫描、序列构造、选择、窗口、非操作和转换,这些运算符由下至上构成了一个查询计划。
同时也考虑了大量的优化操作,提出了对操作符下推、基于属性分组等相关的查询优化策略。
但是,针对RFID新的特点,没有考虑到Repetition等语义,