—RFID中间件的一个 规则匹配 关键问题 Rule Match-An Important Issue

Download Report

Transcript —RFID中间件的一个 规则匹配 关键问题 Rule Match-An Important Issue

规则匹配—RFID中间件的一个
关键问题
Rule Match-An Important Issue
In RFID Middleware
1
摘要
RFID中间件是RFID系统中的重要部分。
一个好的RFID中间件能从大量的原始数据中抽
取出高级的业务信息。目前,很多研究员从不
同角度研究这个课题。规则匹配是最普遍的研
究点,这篇文章首先总结相关的成果,然后介
绍一种快速有效的时间逻辑扩展的RETE算法,
接着说明在RFID应用中如何使用这种算法,并
提出一种设计方案。
2
1、介绍
目前,很多研究者关注从大量原始事件中
抽取高级事件的课题。原因之一是利用语义信
息,RFID能够在最少人工介入的情况下自动化
业务流程,另一个原因是,有时业务逻辑经常
要变,这样的业务逻辑很实现起来很麻烦,而
且会带来很大的成本。针对这些问题,很多人
已经提出有弹性的解决方案,然而,我们发现
需要一个规则引擎去有效地管理大量的RFID事
件。
3
2、相关成果
目前已经有很多这方面的成果。在2005年,
EPCglobal提出了ALE(Application Level Event)规范,
这个规范说明了RFID中间件的框架。ALE代表高级事
件,多个阅读器可以看做一个逻辑阅读器,通过客户
端可以设置接收哪些阅读信息。然而,ALE处理的事件
的级别相对我们的要求还是比较低,后来有人提出了基
于复杂事件处理的RFID中间件,这个中间件是基于ALE
的,并融入的CEP技术。通过CEP可以把原始事件转化成
有意义的业务信息,其中最重要的组件是处理器管理
器,它由多个处理器组成,每个事件处理器处理一种事
件流,这些事件流通过ECSpec来定义。
4
2、相关成果
事件处理器通过事件处理语言(EPL)来实现
指令。EPL的结构是事件-条件-动作(ECA),即当一个
事件发生并满足了某个条件,那么就会触发同样的动
作。同时为了提高中间件性能,还需要缓存策略(Cache
strategy)以及主动数据库(active database)。
文献【3】提出了上下文相关的事件框架,一个上
下文相关事件是一个有意义的高级事件,这个事件包含
更多可用的内容。这个框架的核心是上下文事件助理
(CEA),类似文献【2】,它利用CEL去描述上下
文相关事件的过程。
文献【4】提出一个基于知识的动态逻辑处理方法。
这个利用生成的很多代理去处理知识管理。
5
2、相关成果
最重要的代理是知识搜索代理、逻辑操作代理、实时业
务处理触发系统(RBPTS)。RBPTS抽取语义信息并使
后台应用程序自动化。规则引擎是RBPTS的重要部分。
我们发现以上RFID高级事件管理的相关研究中,主要
关注的问题是使用规则引擎去做规则匹配。由于RFID事
件信息很多,所以规则引擎必须是很有效率的。一般来
说,这种规则匹配问题可以用一种生产系统来解决。一
个生产系统包括3个组件:工作内存,保存送入的事件,
生产内存,保存预定义的规则,推导引擎,做相关的模
式匹配。当一个规则满足,就会执行一个动作。由如图1.
由于可能有多个满足的动作,我们还需要一个处理冲突
的代理。生产系统框架:
6
2、相关成果
7
3.RETE 和 扩展RETE
3.1 RETE算法
第二代RFID阅读器标准规定了一个阅读器必须每秒处
理1800个事件。在一些应用中,短时间内会有成千上万
的原始RFID事件,而且逻辑复杂,而RETE算法可以处理
这些事件的匹配问题。
RETE算法是一种快速的模式匹配方法,在EPCglobal
第二代标准中首次提出来。这个算法以空间换时间,模
式经常包括多个测试条件。RETE算法首先把这些规
则分解成多个简单的条件测试,然后这些简单的测试被
编译进网络中。当一个事件发生,给定一个标识去反映
工作内存的变化。这些标志沿着RETE网络的节
8
3.RETE 和 扩展RETE
点运动。“1-put”节点测试标志是否满足某个条件,然而
“2-inputs”节点测试这些标志在不同模式下的可变连贯
性。一些节点可以给多个模式共享。这些满足模式的标
志被存储起来,如果一个标志到达“terminal node”,就
代
表一个规则被满足。
3.2 事件逻辑扩展RETE算法
文献【7】提出了一种事件逻辑扩展算法,在工作内存
中的元素可以分为两类:事件和事实。事件带有时间
截,它们会过期,而事实不会。
9
3.RETE 和 扩展RETE
当一个事件产生,会带上当前时间信息,有两个时间判
断符:BEFORE和AFTER,通过它们我们可以在规则中
增加事件逻辑。在很多RFID应用中,有时间约束。客户
们可能想要用事件逻辑去产生规则,比如,在某个环境
中,我们要求A的货物要36小时内到达配方中心B,如果
这些货物即时到达,要自动发E-mail给客户。如果用原来
的RETE算法,可能还要做一些工作,而且当逻辑变得
复杂的时候,这些工作是很难完成的。然而,有了扩展
的RETE算法,程序员可以方便地写一些规则去处理这些
事件逻辑。
10
4、RFID中间件规则引擎
4.1 RFID应用系统中的事件
事件需要在它们发生之前就定义好,这样规则引擎才
能识别什么事件发生了。在事件注册器中(ER)定义事
件,ER存储所有定义好的事件,但当事件发生了,它只
发送事件的ID给工作内存,ER还可在工作内存中检测和
撤销事件。基于ALE的RFID中间件,ALE ECReport可以
当作一个事件,文献【1】描述了ECReport的xml结构,
它用可扩展方式去描述一个事件。用户通过定义
ECReportSpec和ECSpec来规定他们的ECReport。用户还
能用类似xml格式定义更复杂的事件。当事件送到工作内
存,它会一直被检测,直到被撤销。
11
4、RFID中间件规则引擎
4.2 规则引擎
我利用开源的规则引擎, Drools是基于Charles Forgy’s
RETE算法,是一个符合JSR94规范的免费软件。它是用
JAVA写的,能在JAVA和.NET平台运行。(JAVA,
Groovy,Python)语言可以嵌入到规则描述文件中。
Drools支持多种编程语言,然而,这些规则逻辑只能限制
在程序的逻辑操作。而且,Drools使用脚本模块去执行解
析好的程序代码。因此,它很难增加新的判断依据。
为了实现事件逻辑扩展RETE,一个事件规则条件必
须被转化为多个普通规则,下面是一个例子,它用类似
java的OPS5语言编写
12
4、RFID中间件规则引擎
这个规则意思是当激活的设备初始化一个警报之后5个时
隙,发生了一个规则匹配,那么会触发一个新的规则匹
配警报。这个规则可以拆分为下面的事件规则(限于
篇幅,我们用自然语言描述)
13
4、RFID中间件规则引擎
4.2 规则引擎
实际上,这是我们处理时间判定“after”的方法,我们可
以
用类似的方式处理“Before”。
14
5.结论
研究员们从不同角度研究从大量原始信息抽取有意义
信息的方法,我们发现规则匹配是最普遍的课题。由于
RFID事件量很大,而且在RFID业务处理中经常有时间逻
辑,我介绍了一种扩展RETE算法,这种算法提高了规则
引擎的性能。我提出了一个实现该算法的方法,而且给
出了一种RFID中间件设计。
15