中国CEP(复杂事件处理)发展的春天
作者:Sybase 软件(中国)有限公司技术总监 卢东明
复杂事件处理 (Complex Event Progressing,CEP) 是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系,建立不同的事件关系序列库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。早在20世纪80年代,SQL的出现就解决了用结构化的方式查询数据的问题。90年代,Sybase率先提出触发器(trigger)的理念,把事件处理和数据层紧密联系起来,随着数据的某种特征触发下游的动作。但触发器技术的干扰性较强,能够处理的数据量和复杂度有限,且没有时间序列的概念。2000年左右有厂商开始在这个方向上做一些基于事件和数据流的处理机制,到现在已经逐渐形成了一个软件业中特殊的分支——CEP,也就是复杂事件处理。
CEP代表一个新的开发理念和架构,具有很多特征,例如分析计算是基于数据流而不是简单数据的方式进行的。它实现了对数据流的实时分析,而实时分析对整个企业级的用户来说影响深远,尽管短期内可能不明显。CEP可以基于特定规则在第一时间发现并捕获风险和商业机会,这就是CEP带给企业的冲击,即整个思维方式的变化导致业务形式也可能发生变化。虽然变化发生在后台,但IT结构也要随之变化,由滞后的分析改为第一时间的行动。
实时分析不是一项简单的数据管理技术,而是基于数据流的实时分析技术,有几个相关的技术点:一是必须能够对数据流而不是简单的数据进行处理;二是使用内存管理技术,CEP中所有的操作都不会落地,因为一旦落地就失去时效性;三是集成企业级的需求,比如说怎样用多台服务器并行或串行解决一系列复杂事件,怎样分流、合并、连接;四是高可用性, 在一台服务器发生危险的情况下,其它服务器如何接管。
CEP不是数据库技术层面的突破,而是整个方法论的突破。企业级系统通常可以分为应用层和分析层,从应用层到分析层比较容易,现在很多企业都实现了,或正在实现,但是分析往往是滞后的,例如统计报表,KPI指标,趋势分析等,从分析层再回到应用层这一环是脱节的,最终的决策与执行是由人根据KPI来判断的。CEP的理念是通过事先的分析和总结归纳,找出一些可执行的规则,再把这些规则定义在操作流程上,自动化或半自动化地实现从分析层反馈到应用层。这是一个企业IT架构的新颖形式,对企业的快速反应、风险控制、实时处理具有深远的意义。
Sybase一直专注于数据平台,所以Sybase提供的是面向企业级的、高端的开发和应用平台,这有别于其它厂商基于BPM(Business Process Management)或者MOM(Message Oriented Middleware)的层面。Sybase CEP在华尔街经受住了考验,已经得到广泛应用。我们很有兴趣也很有信心在CEP技术的引用工作上走在最前端,通过各种渠道以最快的速度把这个最新技术带到中国来。CEP虽然是一种很新的技术,但是它和数据库技术有很多相似之处,学习难度并不大。希望国内的开发人员在学习新技术时打开心扉,摆脱固有的束缚,转变观念,在CEP上面做更多的尝试,这样就能够在这个领域发挥智力优势,抢占先机。
CEP很好地迎合了中国的金融创新趋势,雏形已经慢慢形成,其它行业也有很多需求,可以说,中国CEP发展的春天已经到来。
转自: http://www.programmer.com.cn/2920/
另请参考:
http://www.infoq.com/cn/news/2009/08/complexEvents(重要参考)
ftp://ps.boulder.ibm.com/itsolutions/SOA/wave_complex_event_processing_cep_platforms.pdf
http://www.infoq.com/cn/news/2007/10/esper
http://www.dbopen.org/html/GUIFront/2537.html