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

Slides:



Advertisements
Similar presentations
高级服务器设计和实现 1 —— 基础与进阶 余锋
Advertisements

淡江大學 管理科學學系 經營管理全英語碩士學位學程甄試招生
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
走进物联网世界.
UI(用户界面)集训班 Illustrator 高级班.
常用逻辑用语复习课 李娟.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
第四次大作业 登陆学校图书馆网站的电子数据库
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
SVN的基本概念 柳峰
面向对象建模技术 软件工程系 林 琳.
Chinese Virtual Observatory
R in Enterprise Environment 企业环境中的R
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
What have we learned?.
逆向工程-汇编语言
PaPaPa项目架构 By:Listen 我在这.
CPU结构和功能.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
顺序表的删除.
2019/4/16 关注NE官方微信,获取更多服务.
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
提供机构:XXXXXXXXX 机构级别:X级X等(无级别可不填写)
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
信号量(Semaphore).
解决“最后1公里”问题.
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
数据报分片.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
郑 昀 应用开发事业部 神州泰岳 SIP多方会话消息 之实例讲解 郑 昀 应用开发事业部 神州泰岳
临界区问题的硬件指令解决方案 (Synchronization Hardware)
基于规则抽取的时间表达式识别 -英文Ⅲ 高冠吉.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
_01自己实现简单的消息处理框架模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 如何调试驱动程序? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
Presentation transcript:

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

2 摘要 RFID 中间件是 RFID 系统中的重要部分。 一个好的 RFID 中间件能从大量的原始数据中抽 取出高级的业务信息。目前,很多研究员从不 同角度研究这个课题。规则匹配是最普遍的研 究点,这篇文章首先总结相关的成果,然后介 绍一种快速有效的时间逻辑扩展的 RETE 算法, 接着说明在 RFID 应用中如何使用这种算法,并 提出一种设计方案。

3 1 、介绍 目前,很多研究者关注从大量原始事件中 抽取高级事件的课题。原因之一是利用语义信 息, RFID 能够在最少人工介入的情况下自动化 业务流程,另一个原因是,有时业务逻辑经常 要变,这样的业务逻辑很实现起来很麻烦,而 且会带来很大的成本。针对这些问题,很多人 已经提出有弹性的解决方案,然而,我们发现 需要一个规则引擎去有效地管理大量的 RFID 事 件。

4 2 、相关成果 目前已经有很多这方面的成果。在 2005 年, EPCglobal 提出了 ALE ( Application Level Event )规范, 这个规范说明了 RFID 中间件的框架。 ALE 代表高级事 件,多个阅读器可以看做一个逻辑阅读器,通过客户 端可以设置接收哪些阅读信息。然而, ALE 处理的事件 的级别相对我们的要求还是比较低,后来有人提出了基 于复杂事件处理的 RFID 中间件,这个中间件是基于 ALE 的,并融入的 CEP 技术。通过 CEP 可以把原始事件转化成 有意义的业务信息,其中最重要的组件是处理器管理 器,它由多个处理器组成,每个事件处理器处理一种事 件流,这些事件流通过 ECSpec 来定义。

5 2 、相关成果 事件处理器通过事件处理语言( EPL )来实现 指令。 EPL 的结构是事件 - 条件 - 动作( ECA ),即当一个 事件发生并满足了某个条件,那么就会触发同样的动 作。同时为了提高中间件性能,还需要缓存策略 (Cache strategy) 以及主动数据库 (active database) 。 文献【 3 】提出了上下文相关的事件框架,一个上 下文相关事件是一个有意义的高级事件,这个事件包含 更多可用的内容。这个框架的核心是上下文事件助理 ( CEA ),类似文献【 2 】,它利用 CEL 去描述上下 文相关事件的过程。 文献【 4 】提出一个基于知识的动态逻辑处理方法。 这个利用生成的很多代理去处理知识管理。

6 2 、相关成果 最重要的代理是知识搜索代理、逻辑操作代理、实时业 务处理触发系统( RBPTS )。 RBPTS 抽取语义信息并使 后台应用程序自动化。规则引擎是 RBPTS 的重要部分。 我们发现以上 RFID 高级事件管理的相关研究中,主要 关注的问题是使用规则引擎去做规则匹配。由于 RFID 事 件信息很多,所以规则引擎必须是很有效率的。一般来 说,这种规则匹配问题可以用一种生产系统来解决。一 个生产系统包括 3 个组件:工作内存,保存送入的事件, 生产内存,保存预定义的规则,推导引擎,做相关的模 式匹配。当一个规则满足,就会执行一个动作。由如图 1. 由于可能有多个满足的动作,我们还需要一个处理冲突 的代理。生产系统框架:

7 2 、相关成果

8 3.RETE 和 扩展 RETE 3.1 RETE 算法 第二代 RFID 阅读器标准规定了一个阅读器必须每秒处 理 1800 个事件。在一些应用中,短时间内会有成千上万 的原始 RFID 事件,而且逻辑复杂,而 RETE 算法可以处理 这些事件的匹配问题。 RETE 算法是一种快速的模式匹配方法,在 EPCglobal 第二代标准中首次提出来。这个算法以空间换时间,模 式经常包括多个测试条件。 RETE 算法首先把这些规 则分解成多个简单的条件测试,然后这些简单的测试被 编译进网络中。当一个事件发生,给定一个标识去反映 工作内存的变化。这些标志沿着 RETE 网络的节

9 3.RETE 和 扩展 RETE 点运动。 “1-put” 节点测试标志是否满足某个条件,然而 “2-inputs” 节点测试这些标志在不同模式下的可变连贯 性。一些节点可以给多个模式共享。这些满足模式的标 志被存储起来,如果一个标志到达 “terminal node” ,就代 表一个规则被满足。 3.2 事件逻辑扩展 RETE 算法 文献【 7 】提出了一种事件逻辑扩展算法,在工作内存 中的元素可以分为两类:事件和事实。事件带有时间 截,它们会过期,而事实不会。

10 3.RETE 和 扩展 RETE 当一个事件产生,会带上当前时间信息,有两个时间判 断符: BEFORE 和 AFTER ,通过它们我们可以在规则中 增加事件逻辑。在很多 RFID 应用中,有时间约束。客户 们可能想要用事件逻辑去产生规则,比如,在某个环境 中,我们要求 A 的货物要 36 小时内到达配方中心 B ,如果 这些货物即时到达,要自动发 给客户。如果用原来 的 RETE 算法,可能还要做一些工作,而且当逻辑变得 复杂的时候,这些工作是很难完成的。然而,有了扩展 的 RETE 算法,程序员可以方便地写一些规则去处理这些 事件逻辑。

11 4 、 RFID 中间件规则引擎 4.1 RFID 应用系统中的事件 事件需要在它们发生之前就定义好,这样规则引擎才 能识别什么事件发生了。在事件注册器中( ER )定义事 件, ER 存储所有定义好的事件,但当事件发生了,它只 发送事件的 ID 给工作内存, ER 还可在工作内存中检测和 撤销事件。基于 ALE 的 RFID 中间件, ALE ECReport 可以 当作一个事件,文献【 1 】描述了 ECReport 的 xml 结构, 它用可扩展方式去描述一个事件。用户通过定义 ECReportSpec 和 ECSpec 来规定他们的 ECReport 。用户还 能用类似 xml 格式定义更复杂的事件。当事件送到工作内 存,它会一直被检测,直到被撤销。

12 4 、 RFID 中间件规则引擎 4.2 规则引擎 我利用开源的规则引擎, Drools 是基于 Charles Forgy’s RETE 算法,是一个符合 JSR94 规范的免费软件。它是用 JAVA 写的,能在 JAVA 和.NET 平台运行。( JAVA , Groovy , Python )语言可以嵌入到规则描述文件中。 Drools 支持多种编程语言,然而,这些规则逻辑只能限制 在程序的逻辑操作。而且, Drools 使用脚本模块去执行解 析好的程序代码。因此,它很难增加新的判断依据。 为了实现事件逻辑扩展 RETE ,一个事件规则条件必 须被转化为多个普通规则,下面是一个例子,它用类似 java 的 OPS5 语言编写

13 4 、 RFID 中间件规则引擎 这个规则意思是当激活的设备初始化一个警报之后 5 个时 隙,发生了一个规则匹配,那么会触发一个新的规则匹 配警报。这个规则可以拆分为下面的事件规则(限于 篇幅,我们用自然语言描述)

14 4 、 RFID 中间件规则引擎 4.2 规则引擎 实际上,这是我们处理时间判定 “after” 的方法,我们可以 用类似的方式处理 “Before” 。

15 5. 结论 研究员们从不同角度研究从大量原始信息抽取有意义 信息的方法,我们发现规则匹配是最普遍的课题。由于 RFID 事件量很大,而且在 RFID 业务处理中经常有时间逻 辑,我介绍了一种扩展 RETE 算法,这种算法提高了规则 引擎的性能。我提出了一个实现该算法的方法,而且给 出了一种 RFID 中间件设计。