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