没有合适的资源?快使用搜索试试~ 我知道了~
首页复杂事件处理(Complex Event Processing)的思考和分析
复杂事件处理(Complex Event Processing)的思考和分析

复杂事件处理(Complex Event Processing)技术的分析,案例介绍。
资源详情
资源评论
资源推荐

复杂事件处理
前言
工作的需要开始学习和使用复杂事件处理技术和产品,比较感兴趣。原因一觉得企业应用
技术发展到现在数据的传输交互,数据存储,数据转换,数据展现这几部分已经比较成熟,
或者趋近成熟,数据处理和分析部分方兴未艾,呵呵比较有前途。好比企业的数据总线已
经准备就位,现在需要的是总线上的做数据处理和分析的数据内容服务。原因二事件处理
引擎使用非过程语言的声明型规则语言和状态机模型来描述事件处理规则,自己对非过程
的处理描述很感兴趣,试想当触发事件产生开始引发一系列的动作时,作为规则的定义者
并不知道这次会触发多少动作,最终会终止在何处,结果是什么。有些挖未知宝藏的感觉。
前期学习了一些资料,也试用的 TIBCO 的复杂事件处理工具 Business Events. 列出以下
的目录,希望通过持续的学习,能写完这些内容。
目录
1. 基本概念:事件,事件关系和事件处理的简单抽象理解
2. 复杂事件处理的功能和应用场景
3. 事件的定义和分类
4. 事件的关联关系
5. 基于关系的事件处理
6. 事件处理的实现:规则引擎
7. TIBCO Business Event
8. 案例
到目前还有些问题没解决,希望写完这些内容后都能搞明白。
问题
1. 事件驱动架构(Event Driven Architecture)的含义究竟是什么
2.事件处理和规则引擎的关系
3.规则语言和状态机模型的联系和区别
目录
1. 基本概念
2. 复杂事件处理的功能和应用场景
3. 事件的定义和分类
4. 事件的关联关系
5. 基于关系的事件处理
6. 事件处理的实现:规则引擎
7. TIBCO Business Event
8. 案例
目标
事件驱动架构(Event Driven Architecture)的含义究竟是什么
事件处理和规则引擎的关系
规则语言和状态机模型的联系和区别
Petri 网, RETE 算法,RAPIDE 语言

1. 基本概念:事件,事件关系和事件处理的简单抽象理解
基于自己目前对事件处理的理解,对信息系统的认识,来定义事件和事件关系,来概括在
信息系统中有哪些事件处理的模式。
1.1 事件
从字面上理解事件可以认为是发生的一件事情,包括事物状态和事物之间的某些动作。在
信息系统中,事件可以是一些事物对象的状态属性,也可以是事物之间动作的记录。
对于动作的完整描述可以用状态机模型描述,即对初始状态的事物做某些动作,事物由初
始状态迁移到动作后的新状态。在事物动作过程中,可以构造三个事件信息,事物初始状
态事件,作用于事物的动作的事件,事物结果状态事件。
事物动作的状态机模型示意图
事物状态属性彼此之间会有一些依赖约束关系,可以从一些状态属性值推导出另一些状态
属性的值。这些状态之间的约束可以使用无动作的状态机模型描述,即当状态 1 成立,状
态 2 必成立。
事物状态之间的约束关系示意图
事件的关系
事件的关系主要有四种。
1.2.1 时间顺序关系
动作事件和动作事件之间,动作事件和状态变化事件之间,都存在时间顺序。
1.2.2 聚合关系
动作事件和动作事件之间,状态事件和状态事件之间都存在聚合关系。即个体的聚合形成
整体集合。
1.2.3 层次关系
动作事件和动作事件之间,状态事件和状态事件之间都存在层次关系,即父类事件和子类
事件的层次关系,从父类到子类是具体化,从子类到父类是泛化。
1.2.4 依赖关系
事物的状态属性之间彼此的依赖关系和约束关系。
1.2.4 因果关系
对于完整的动作过程,结果状态为果,初始状态和动作都可以视为原因。类比哲学上论述

事物如何发展也是有两个因素的,一是内部本质,二是外部作用。
事件的处理
在应用系统里,事件处理实现的功能有几类模式。
推断
主要利用事物状态之间的约束关系,从一部分状态属性值可以推断出另一部分的状态属性
值。例如当三角形 1 个角为 90 度,另一个角为 45 度,则推断出第三个角为 45 度。
查因
当出现结果状态,并且知道初始状态,可以查明某个动作是原因,同样当出现结果状态,
并且知道之前发生了什么动作,可以查明初始状态是原因。当然反向的推断要求原因对结
果来说必须是必要条件。
决策
想得到某个结果状态,知道初始状态,决定采用什么动作。
预测
知道初始状态,以及将要做的动作,预测结果状态。
以上可以看到状态机描述了事物在各种动作下的变化规则,基于这些规则和不同的目的,
来决定要做什么模式的事件处理。
2. 复杂事件处理的功能和应用场景
有了上篇对复杂事件处理的简单抽象,这一篇里来说复杂事件处理的功能和应用场景。
在企业应用中使用复杂事件处理,首先要确定事件包含哪些内容,或者什么内容适合封装
为事件并交给事件处理引擎去处理。之前有文章提到企业应用系统中数据流可以分为业务
数 据 流 和 监 测 控 制 流 , ( 见 http://blog.csdn.net/zlushangnwpu/archive/
2008/09/30/2999571.aspx)事件更适合包含用于监控的内容,复杂事件处理的功能更适合做
企业应用系统的监测和决策控制。一般来说,数据流中的业务数据是企业应用需要做处理
的数据,这些处理包括获取更新,传输转换,存储,计算,展现等等。业务数据代表现实
世界中的事物及其状态,对这些数据的处理代表对这些事物的处理。 通常这些处理都是用
过程式语言描述的,由企业应用开发者在设计时编排确定。而事件包括事物状态和事物之
间的某些动作,即数据流中的数据和流程中对这些数据做了哪些操作,通过事件可以及时
了解事物的状态和对事物的所做的操作。
获取这些事件后,可以按上篇中提到的事件处理模式来处理事件:
(1) 对事物的状态进行推断或者判断,得到一些结论。这属于监测的范畴。
(2) 当出现一些结果时,反向推断出导致这些结果的原因。反向推断要求原因对结果来
说必须是必要条件。这也属于监测的范畴。
(3) 基于当前事物的状态,根据需要的结果,决定采取接下来采用什么动作。这属于决
策范畴。
(4) 根据当前事物的状态和对事物的动作,预测事物将来的状态。这个有点模糊,我把
它依然归为监测范畴。
事件处理得到的结论,原因,动作决策,预测状态,又会反作用于处理数据的流程,控制
流程的分支选择。事件处理和普通数据处理的关系见下图,参见文章
http://blog.csdn.net/zlushangnwpu/archive/2008/10/21/3118446.aspx。
剩余10页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论24