第 85 章 复杂的事件处理(CEP)
在 Red Hat Decision Manager 中,事件是应用程序域中大量状态更改的记录。根据域建模,状态更改可能由一个事件、多个原子事件或关联事件的层次结构表示。从复杂的事件处理(CEP)的角度来看,事件是某一时发生在特定时间点的事实或对象,而商业规则是如何响应该事实或对象的数据的定义。例如,在库存代理应用程序中,安全价格的变化、从销售者变为买方更改,或者帐户持有者的平衡的变化被视为事件,因为更改在给定时间处于应用程序域的状态发生。
红帽决策管理器中的决策引擎使用复杂事件处理(CEP)在事件集合内检测和处理多个事件,从而发现事件之间存在的关系,以及从事件及其关系中推断新数据的关系。
CEP 用例与业务规则用例共享多个要求和目标。
从业务角度来看,基于事件所触发的情况发生,商业规则定义通常根据事件触发的情况进行定义。在以下示例中,事件形成了业务规则的基础:
- 在算法交易应用程序中,如果安全性价格已超过公开价格,则规则将执行一个操作。价格增长由库存交易应用程序上的事件表示。
- 在监控应用程序中,如果服务器机房中的温度增加 X 程度,规则将执行操作。读取的传感器由事件表示。
从技术角度来说,商业规则评估和 CEP 有以下关键相似之处:
- 业务规则评估和 CEP 都需要与企业基础架构和应用程序的无缝集成。这在生命周期管理、审计和安全性方面尤其重要。
- 业务规则评估和 CEP 都有功能要求,如模式匹配和非功能性要求,如响应时间限制和查询规则说明。
CEP 情境有以下关键特征:
- 情景通常处理大量事件,但只会处理少量事件。
- 事件通常是不可变的,代表状态更改的记录。
- 针对事件运行的规则和查询,必须响应检测到的事件模式。
- 相关事件通常具有强大的时序关系。
- 单个事件没有优先级。CEP 系统优先排序相关事件的模式以及它们之间的关系。
- 事件通常需要组成并聚合。
鉴于这些常见的 CEP 方案特征,红帽决策管理器中的 CEP 系统支持以下功能和功能来优化事件处理:
- 具有正确语义的事件处理
- 事件检测、关联、聚合和组成
- 事件源处理
- 临时限制来模拟事件之间的时序关系
- 大量事件的滑动窗口
- 会话范围内的统一时钟
- CEP 用例所需的事件卷
- 被动规则
- 在决策引擎(pipeline)中事件输入的适配器
85.1. 复杂事件处理中的事件 复制链接链接已复制到粘贴板!
在 Red Hat Decision Manager 中,事件是应用程序域中大量状态更改的记录。根据域建模,状态更改可能由一个事件、多个原子事件或关联事件的层次结构表示。从复杂的事件处理(CEP)的角度来看,事件是某一时发生在特定时间点的事实或对象,而商业规则是如何响应该事实或对象的数据的定义。例如,在库存代理应用程序中,安全价格的变化、从销售者变为买方更改,或者帐户持有者的平衡的变化被视为事件,因为更改在给定时间处于应用程序域的状态发生。
事件有以下关键特征:
是不可变的: 事件是过去发生的、无法更改的改变记录。
注意决策引擎不会在代表事件的 Java 对象上实施不可变性。这个行为使事件数据增强成为可能。您的应用程序应该能够填充未填充的事件属性,这些属性供决策引擎用于增强事件与推断的数据。但是,您不应该更改已经填充的事件属性。
- 具有强时序限制: 涉及事件的规则通常需要指示在不同时间点上发生的多个事件。
- 具有受管生命周期:由于事件不可变且具有临时的限制,所以它们通常只与指定周期相关联。这意味着决策引擎可以自动管理事件的生命周期。
- 可以使用滑动窗口: 定义一个带有事件的滑块窗口或长度。滑动时间窗是可以处理事件的指定时间段。滑动长度窗口是可以处理的指定数量事件。