复杂事件处理和规则引擎的关系

来源:互联网 发布:零基础编程入门书籍 编辑:程序博客网 时间:2024/04/28 04:23

复杂事件处理技术模拟的是人从现实世界中获取信息进行判断推理的思维过程。这些信息包括事物实体的状态信息,实体之间的作用和动作信息,这里统称为事件。我们获取这些事件,过滤掉不需要的事件,抽象低层次的事件到高层次的事件,组合局部的事件成整体的事件,然后对这些事件进行匹配,判断以及推理。用来实现判断,查找原因,决策和预测的功能。复杂事件处理技术适用来实现实时的监控决策系统。对事件的处理有几种实现技术:自动机,Petri 网,匹配树网络,有向图等等。

规则引擎算是匹配树网络的一个技术实现产品。规则引擎定义实体对象和业务规则(条件+动作),当产生新的对象或者已有对象发生变化时,对所有规则进行匹配,符合条件的规则按优先级排列顺序执行规则里定义的动作。如果动作改变了现有的对象集合,则重复匹配的过程,否则按顺序执行规则。规则引擎可以用来做现实世界多个实体的行为模拟,也可以用来做现实世界的复杂事件处理。事件的过滤,判断,推理等各种操作都可以使用规则语言来实现。所以说规则引擎是复杂事件处理的一种重要实现技术,但不是唯一的技术。

我们在做监控,分析和决策系统时,除了对现实世界的信息进行分析处理(即复杂事件处理),还可能需要对现实世界的一部分对象的行为进行模拟,基于规则引擎的复杂事件处理产品就是一个好的工具。不同的复杂事件处理产品可能使用不同的技术实现,比如TIBCOBusinessEvents 里包含标准的Rete算法规则引擎,同时也提供状态机模型用来描述实体对象的状态变化。以前的文章中提过,我推荐使用状态机来描述实体对象的行为规则,使用规则语言来描述事件处理的规则。