eca rule-based rfid data management

23
1 ECA Rule-based RFID Data Management 基基 ECA 基基基 RFID 基基基基

Upload: avi

Post on 27-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

ECA Rule-based RFID Data Management. 基于 ECA 规则的 RFID 数据管理. 摘要. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ECA Rule-based RFID Data Management

1

ECA Rule-based RFID Data Management

基于 ECA 规则的 RFID

数据管理

Page 2: ECA Rule-based RFID Data Management

2

摘要 RFID 阅读器网络每天都在产生冗余的事件数据,这些数据为经过处理,没有任何业务意义。如何设计适当的数据处理机制以派生出逻辑结论和业务状态成为有挑战性的议题,本文介绍了和 RFID 数据管理有关的议题,并介绍一种使用 ECA 规则处理复杂决策逻辑和处理数据的方法。我们的方法中, RFID 中间件的应激功能通过规则库来说明和管理,不是嵌入在程序中,这样 RFID 数据处理过程是有效率和有弹性的,是 RFID 中间件的模块化,提升了RFID 中间件的可维护性和可扩展性。

Page 3: ECA Rule-based RFID Data Management

3

Ⅰ. 介绍 在 RFID 数据处理中,我们面临几个挑战:( 1 )数据聚合( 2 )状态转变( 3 )业务处理。所以我们提出 ECA 规则引擎来处理这些问题。规则引擎有多个优点:首先,规则引擎能在成千上万的事件中快速稳定地做成决策,第二,基于规则的定义是很有弹性的,易于修改和维护。第三,规则适合于用机器来处理和分析。最后,规则可以在单个规则中管理,也可以在分布于 Web 上的多个规则库中管理。

Page 4: ECA Rule-based RFID Data Management

4

Ⅱ. 相关工作 ALE 规约是应用级接口,可以让用户从不同的数据源获得过滤和整理好的数据,建立处理方法和用报告形式请求过滤事件。 我们的工作着重介绍在 RFID 中间件中怎样用 ECA 规则去处理事件,以使 RFID 数据管理更有弹性和有效。

Page 5: ECA Rule-based RFID Data Management

5

Ⅲ. 数据处理中的 ECA 规则A. ECA 规则ECA 模型开始是使用在主动数据库系统中,为了支持整合规则到 DBMS 中的反应性行为。在 ECA 模型中,有以下的事件 -- 条件 -- 动作模式定义:WHEN E

IF C

DO A ;意思是当某个事件 E 发生时,会对条件 C 进行判别,如果判别通过执行动作 A 。

Page 6: ECA Rule-based RFID Data Management

6

Ⅲ. 数据处理中的 ECA 规则B. 基于 ECA 规则的 RFID 数据管理 事件来源于 RFID 部署环境和事件的输出,动作的最后输出被送到上层系统做进一步处理。如图 1所示:

Page 7: ECA Rule-based RFID Data Management

7

Ⅲ. 数据处理中的 ECA 规则输入接口:管理员利用输入接口增加基于知识和经验的规则,业务逻辑的知识和经验被描述和增加到规则库中。规则库:规则库包含管理员定义的所有规则。规则管理器:规则管理器管理规则库中的规则,并根据事件类型的触发规则。条件检测器:当发现触发事件,条件检测器检查条件是否满足。动作管理器:动作管理器管理动作集中的动作,而且调度动作的运行。

Page 8: ECA Rule-based RFID Data Management

8

Ⅲ. 数据处理中的 ECA 规则动作集:动作集包含规则中的事件,这些动作包括业务处理初始化、另一种事件的产生、给企业应用程序的通知、 EPCIS 的数据存储、从 EPC 网络查询信息等等。事件管理器: 管理事件队列中的事件以及把它们传给规则管理器。事件队列:接收和缓冲 RFID 事件流。事件构造器: 从 RFID 数据流中抽取出原始的标签事件。RFID 部署环境:它是事件的源头。 RFID 阅读器可以安装在码头和卡车上。我们用“逻辑阅读器”来描述有同一逻辑目标的一个或者多个物理阅读器。

Page 9: ECA Rule-based RFID Data Management

9

Ⅳ. 设计和实现图 2给出了我们的 RFID 中间件的事件处理流程。RFID 事件处理:事件处理分为三层:( 1 )原始事件处理层( 2 )中间事件处理层( 3 )业务事件处理层。上面两层有规则库和事件集。( 1 )原始事件处理层 这是 RFID 处理的开始步骤,在这一层,能得到阅读器编号,标签出现和消失事件和标签数据编码。 标签在某个时间段被阅读器多次读取,而且被多个阅读器读取,产生了多余的数据,这一阶段也过滤这些重复的数据。

Page 10: ECA Rule-based RFID Data Management

10

Ⅳ. 设计和实现

Page 11: ECA Rule-based RFID Data Management

11

Ⅳ. 设计和实现 不同公司的 RFID 产品的频率、编码、存储规则和数据内容都可能不同,这里还对 RFID 数据进行解析。这一层不包括语义数据处理。( 2 )中间事件处理层这一层对数据进行过滤和聚合。 不同的企业应用程序关注不同的 RFID 数据集,有时他前面需要某类物品的数量。为了动态适应经常变化的需求,中间事件处理层利用规则去过滤和聚合逻辑,比如通过过滤数据得到某个兴趣数据、贴在货盘或者货物上的标签数据、某类产品的数目等。

Page 12: ECA Rule-based RFID Data Management

12

Ⅳ. 设计和实现除了这些,为了兼容 ALE 规约,系统可以通过解析定义数据处理策略的文件来生成处理规则。数据处理后被送到上层应用以及存储在 EPCIS 中。( 3 )业务事件处理层 这一层处理与业务逻辑相关的事件,如改变物品状态、核实集装箱货物、检查标错的原理或者识别伪造品。 业务事件处理层的处理范围很广,比如在集装箱货品核实应用中,它可以用来检查每种货物的数量,然而可以不需要货品的序列号。通过用户接口,每个贸易伙伴可以根据他们的业务逻辑和需求做配置。

Page 13: ECA Rule-based RFID Data Management

13

Ⅳ. 设计和实现这些配置被转换成规则的形式并存储在规则库中,用户可以从规则集中选择他们感兴趣的业务服务,即选择对应的规则集。比如,当一个顾客从货架上拿走一个商品,即一个标签从智能货架消失,系统可以立即产生一个动作,比如通知仓库员该商品低库存。 在这一层也能得到上下层数据服务,通过 EPC网络可以发现和标签有关的信息。 管理和配置模块:通过这个模块,管理员可以管理和配置规则,可以向规则库增加过滤规则、聚合规则、和业务处理规则等。

Page 14: ECA Rule-based RFID Data Management

14

Ⅳ. 设计和实现B.实现要点我们的 RFID 系统用 Java编写。我们选择 Drools 去实现规则引擎。 Drools 是用 Java实现的基于 Rete算法的规则引擎, Rete只是一个决策算法,其效率和执行的规则数目五个。 Drools 用 java编写,但能够在 .Net 和 Java平台运行,而且预先插入组件。一个规则有如下一个粗糙的结构:Rule“name” ATTRIBUTES When LHS Then RHS End

Page 15: ECA Rule-based RFID Data Management

15

Ⅳ. 设计和实现很简单,很多标号都不需要,甚至“ name” 的双引号都是可选的, ATTRIBUTES暗示规则应该怎样执行。 LHS 是规则的条件部分,遵循某种语法, RHS 是执行的 java语义代码(也可是 groovy 和 C# )。在 LHS 中任何变量约束都是允许的。下面是事件处理模块的实现细节。( 1 )原始事件处理层 这是基本处理步骤。因为 RFID 产品的多样性, RFID数据的种类也很多。在这些情况下,从原始 RFID 数据流中根据要求抽取出原始 RFID 事件。下面是一个原始标签事件规定的例子Class RawTagEvent{physicalReaderID;tagID;timestamp;}

Page 16: ECA Rule-based RFID Data Management

16

Ⅳ. 设计和实现 阅读器的部署信息存储在数据库中,建立物理阅读器和逻辑阅读器的关系,然后在内存中建立一个映射。映射过程之后,我们能得到 RFID 逻辑阅读器 ID ,这些数据存储在散列表中,键值是逻辑阅读器 ID 和识别的标签 ID 。 通过比较散列表中的逻辑 RFID 阅读器 ID 和标签 ID ,中间件剔除重复的数据。当新的阅读数据插入散列表,就可以识别出某个标签的出现。系统间隔地去检测散列表,如果某个标签在一段时间内没出现,那就代表该标签消失。接着通过解码,可以到得到公司前缀检索和相关的内容。这样便产生原始事件。

Page 17: ECA Rule-based RFID Data Management

17

Ⅳ. 设计和实现 下面原始标签事件规定的例子Class PrimitiveTagEvent{ logicalReaderID; physicalReaderID; tagID; idType; status; timestamp; filter; company; reference; serialNum;}

Page 18: ECA Rule-based RFID Data Management

18

Ⅳ. 设计和实现( 2 )中间事件处理层 管理员可以使用用户接口设置过滤器的约束条件,如公司名,逻辑阅读器 ID等。比如,可设置“ filter”字段为货盘标签、货箱标签、包装袋标签、货品标签等。不同的数据过滤和不同的数据聚合规则可以根据配置生成。这些规则存储在规则库中。Rule“TagFilter”When Event:PrimitiveTagEvent(logicalReaderID==”L1”, idType==”SGTIN-96”, filter==”011”, company==“0001289”) then ……//further process End

Page 19: ECA Rule-based RFID Data Management

19

Ⅳ. 设计和实现 当一个满足括符中的条件原始事件到达时,事件管理器触发业务处理。原始事件是用户定义的数据类型。规则“ TagFilter” 开始标签过滤,当条件用“,”分开,如果任一个条件不满足,那么标签事件重新跟踪,然后离开规则的执行。

Page 20: ECA Rule-based RFID Data Management

20

Ⅳ. 设计和实现( 3 )业务事件处理层下面是该层的一个规则:Rule “Smart shelf shortage Report”when SSReportEvent(map:map) //smart shelf report ethen Hget shaver's set and report the shortage Set set= (Set)map.get("000128"); if(set! =null && set.size(O<10) ShortageReport.report( item, set); Hget shampoo's set and report the shortage set= (Set)map.get("000130");if(set!=null && set.size(<20) ShortageReport.report( item, set);end

Page 21: ECA Rule-based RFID Data Management

21

Ⅳ. 设计和实现 总之,每一层从数据库获取规则文件的 url ,当触发事件发生, Drools 引擎触发对应的规则,判别条件之后,执行动作。输出也可以触发事件,以触发其他规则。

Page 22: ECA Rule-based RFID Data Management

22

Ⅳ. 设计和实现 总之,每一层从数据库获取规则文件的 url ,当触发事件发生, Drools 引擎触发对应的规则,判别条件之后,执行动作。输出也可以触发事件,以触发其他规则。

Page 23: ECA Rule-based RFID Data Management

23

Ⅴ.总结 在数据过滤、聚合、平滑、分组和业务逻辑执行中使用 ECA 规则的方法可以把大量的 RFID 数据转换成有价值的信息。当我们使用 Drools ,我们只需要写规则并把规则放到系统中。我们不需要去编译这些规则,这有规则引擎自动完成。我们增加新规则不需要重启系统,这些规则能被动态加载。这是非常有用和有弹性的 RFID 事件处理过程,而且我们能使用专业领域语言( DSL ),这样能够扩展规则语言到你的问题域中。如果你的规则需要用到专业术语,你可以自己定义 DSL 。总之,这是一个处理 RFID 数据的好方法,有很好的处理效率,提高了 RFID 中间件的可维护性和可扩展性。