RFID 复杂事件处理引擎
2012-12-23陈琛
陈 琛
(武汉商业服务学院,湖北 武汉 430056)
射频识别(Radio Frequency Identification)技术是从20 世纪80 年代产生并发展起来的一项自动识别技术,近年来被广泛的应用在物流的各个领域。通过RFID 硬件,可以自动的获得RFID 标签信息,由于RFID 阅读器可以同时获取多个标签的信息,读取范围也较大,阅读器会产生大量的标签信息,这些标签信息本身并不具有业务含义,还包含大量的冗余内容,如果不加处理的全部提交给物流系统的应用软件将造成上层应用极重的负担。因此担负RFID 系统原始标签信息和系统应用之间中介的RFID 中间件,将原始的RFID 数据处理后再提交给上层应用成为了RFID 技术的一个重要研究内容。
本文详细介绍了一种RFID 中间件的算法模型,该中间件通过RFID 事件编码、清洗过滤、规则定义、目标事件识别,可以将RFID 原始的标签信息翻译成物流业务事件,并且可以通过二叉树灵活的定义和处理各类复杂事件。
一、RFID 复杂事件处理引擎框架
本文设计的RFID 复杂事件处理引擎位于RFID 读写设备和上层物流应用程序之间,承担着RFID 标签和现实应用之间的中介角色,将原始RFID 数据整理翻译后再提交给物流应用软件。其结构如图1 所示:
图1 复杂事件处理引擎结构、数据示意图
当RFID 阅读器主动或被动的获取到标签的信息时启动复杂事件处理引擎,原始的标签信息经过数据处理引擎的清洗、整理转换为基本物流事件。基本物流事件经过事件处理引擎被翻译为RFID 事件,最终将能表达业务含义的事件传递给上层应用。
二、数据处理引擎
RFID 数据由于阅读器的重复上报和环境、电磁波的影响可能存在冗余和一时读到一时读不到标签信息,类似信号中的“杂波”和“毛刺”现象。
以某台5 次/秒的频率进行主动扫描的RFID读写器为例,某张标签通过读写器的范围,耗时3秒,以曼彻斯特编码对其产生的RFID 信息进行编码,0 表示未读到标签信息,1 表示读到标签信息,则这次标签通过过程中可能产生的RFID 数据为...0[1]0[2]1[3]1[4]1[5]1[6]0[7]1[8]0[9]1[10]1[11]1[12]0[13]0[14]0[15]...如图2 所示:
图2 RFID 数据示意图
其中1[4]1[5]1[6]...1[10]1[11]为冗余,0[7]1[8]0[9]1[10]为杂波,真正有价值的数据是0[2]1[3]和1[12]0[13],即标签何时进入阅读器范围,何时离开阅读器范围。数据过滤器从能从原始RFID 数据序列中过滤出有价值的数据0[2]1[3]和1[12]0[13],并将其转换为RFID 基本事件,分别代表物体流动过程中的进入和离开某个区域。
(一)去重过滤器
RFID 原始数据的格式为
去重过滤器定义时间窗宽度dupWidth,在时间窗范围内的同一地点出现的标签数据说明为冗余信息,只更新时间标签最后出现的时间。
(二)杂波过滤器
去重过滤器之后将图2 所示的RFID 原始数据序列过滤为...0[1]0[2]1[3]0[7]1[8]0[9]1[10]1[12]0[13]0[14]0[15]...其中0[7]1[8]0[9]1[10]是由于环境因素或电磁干扰等产生的杂波,需要清洗整理。
杂波过滤器定义杂波过滤宽度noiseWidth,杂波宽度内的标签反复出现认为是杂波,将其过滤掉。
(三)基本事件产生器
经过去重过滤和杂波过滤之后,图2 中的序列只剩下0[2]1[3]和1[12]0[13],对应的数据为
对于物流的应用系统来说,关注的有价值的活动或者重要的变化记录,比如标签的状态变化,其中0[2]1[3]表明标签进入某个地点,1[12]0[13]表示离开。
根据变化的思想,定义两类基本物流事件,分别是进入事件和离开事件,也就是RFID 数据的01 序列和10 序列。同样采用曼彻斯特对基本事件进行编码,进入事件用0 表示,离开事件用1 表示,并用结构
三、事件处理引擎
经过数据处理引擎将RFID 原始数据翻译成基本事件,记录了标签的重要变化,但是在实际应用中,物流应用需要能够处理各种事件,甚至很多复杂事件,这些复杂事件都是由基本事件按照各种条件嵌套组合而成。本文设计的规则定义采用二叉树结构进行复杂事件定义。
(1)二叉树规则定义
本设计采用二叉树定义规则。每颗由父节点和左右两颗子树构成,父节点和子树都可以进行二叉树的嵌套定义。其中父节点为规则树的触发条件,左子树为后续条件,右子树为后续条件和触发条件之间的时间间隔。
进入和离开事件这两件基本事件是二叉树的各级叶子结点,以图2 所示的标签通过阅读器事件为例,其规则定义如下图3 所示,其中不同的时间间隔可以表示快速通过和慢速通过。
图3 不同通过事件规则树
(2)事件翻译器
根据规则定义器定义的事件,通过从叶子结点依次比对规则树判断是否发生该事件。以出库活动为例,假设某次出库共3 件商品(分别贴有3 张不同的标签A、B、C),如果在stayTime 内装车离开是正常出库,否则是耗时出库,则两种复杂事件的规则二叉树分别如图4 所示:
图4 复杂事件规则树
四、小结
本文设计了一种RFID 事件处理引擎,通过数据处理引擎和事件处理引擎实现了数据的清洗和处理,并将RFID 数据翻译成各种灵活的物流业务事件供上层应用使用。本设计定义了两种基本物流事件,并以这两种基本事件为基础,通过二叉树可以定义各种复杂的业务事件,使该设计不依赖和局限与RFID 设备和应用环境。
[1]蒋邵岗,谭杰.RFID 中间件数据处理与过滤方法的研究.计算机应用[J].2008(10).
[2]范文兵,曹晓光,陈燕.RFID 中间件标准化与实现方法.单片机与嵌入式系统[J]2008(1).
[3]张丰贵,程良伦.基于KDB 树的RFID 事件聚合过滤算法.计算机工程[J]2009(12).
[4]魏志军.基于规则匹配算法的RFID 事件处理算法的研究[D].硕士,哈尔滨工业大学,2009.
[5]阴晓佳.RFID 复杂事件处理技术研究[D].硕士,江苏大学,2010.