目前已有的CEP引擎根据事件处理语言可以分为两大类:面向流和面向规则的CEP引擎。面向流的CEP引擎有Microsoft Streamlnsight、Oracle CEP、IBM SPADE、Esper等。而面向规则的CEP引擎有IBM Amit、TIBCO BusinessEvents、JBoss Drools Fusion等。在此选取两个较主流的开源引擎Esper和Drools Fusion进行简单介绍。Esper是一个复杂事件处理(CEP)和事件流处理(ESP,Event Stream Processing)相结合的引擎,可以监控实时事件流,当事件发生时,满足特定模式,触发某些动作。这正好与数据库的操作顺序相反,一般数据库先存储数据后进行查询操作,而Esper存储查询条件,接收数据流的输入,匹配复杂事件模式。复杂事件处理已成为计算机发展的一个新趋势,目前已有数家企业专注复杂事件处理引擎的研究,投身到该市场中,常见的应用实例包括自动算法交易、业务活动监控、欺诈检测、模式检测、态势感知等。Drools Fusion是Drools业务逻辑继承平台的一部分,是支持CEP和ESP的事件处理引擎,在Drools专家系统规则引擎的基础上,增加了复杂事件处理模块,具有很多特征:支持事件处理,具有合适的语义来定义 可以对事件进行过滤、关联、聚集、组合 支持事件流的处理 为了处理事件之间的时间关系,支持时间约束模型 使用滑动窗口保存有意义的事件 使用统一的时钟,支持会话作用域 允许CEP用例的事件容量定义 支持主动或被动激活规则 Esper和Drools Fusion各有优势,Esper作为轻量级的复杂事件处理引擎,可以即插即用,处理性能也相当惊人。而Drools Fusion的优势在于使用Rete算法到更优化的ReteOO算法,和最新的PHREAK算法,通过节点共享、状态暂存等方式对规则进行优化,同时拥有较完善的规则管理工具,使得规则的定义、编辑、调试、部署更方便。针对海量的数据流,单一节点的复杂事件处理引擎往往不能满足高吞吐量、低延时的性能要求,因此,实现分布式复杂事件实时检测系统具有重要意义。
|