翻译前言:我在理解复琐事件处理(CEP)方面一直有这样的困惑--为何这种计算模式是有效的,可以分析获得有用的结果?为何它会快?我始终尚未找到我指望的答案。不像map-reduce模型,google的论文很是清楚的描述了它的场景;或者disruptor框架,原做者清晰地解释了它为何会快。在试图理解CEP的过程当中,我准备翻译一些我认为有启发性的文章,但愿也对你们有用。这篇文章的原文《An Overview of Complex Event Processing》很是长,我将把它分红几篇来翻译。html
刘斌华原创翻译,转载请注明出处 http://www.cnblogs.com/Binhua-Liu/p/5325346.html数据库
在咱们周围的世界,每小时每分钟每一秒,人的大脑会受到或顺序发生的,或同时发生的,无穷无尽的事情的轰炸,这些事件当即看来是也许是彻底没有意义的,甚至有些古怪的,但随着愈来愈多的事情发生,咱们能够开始了解他们的之间相关性和重要性。 服务器
例如,咱们听到远处的欢呼声,咱们看到气球在空中飞舞,音乐开始播放,警车和盛装着的拖着木偶的卡车的出现,坐在车上挥舞着人们,紧随其后的救护车,和今天的日期是7月4日。单独来看,这些事件可能意味着任何事情,可是在一块儿呢?这极可能是一次独立日狂欢巡游! 架构
咱们的大脑能够很容易地在一眨眼的功夫肯定这一事实 --- 虽然不是过于简单。用计算方式来定义,咱们能够描述一个“巡游事件模式”,以下所示: 框架
一辆(或多辆)警车+后面的/后面的/毗邻的+一辆(或多辆)狂欢卡车+后面的/后面的/毗邻的+一个(或多个)挥动的人++后面的/后面的/毗邻的+一辆(或多辆)应急车辆+在哪里能够听到音乐+今天的日期是7月4日大数据
你的大脑并不局限这样的工做模式:发送信息,等待,直到有一个回应,而后进行一系列固定步骤的操做,以完成某项工做。正如这个例子中,它可以把正在发生的一系列事件,和相关的外部因素好比今天的日期,都关联起来,并理解当前发生的是“巡游事件模式”。 网站
因此,当你了解更多关于复琐事件处理(Complex Event Processing)-- 咱们专一于的这种技术 -- 你将知道它如何利用从不一样地方获取的,连续的,流动的,永无止境的信息,来当即地理解正在发生的事情,以及在很不久的未来要发生的事情。这又常常被称为实时态势感知 (Real-Time Situation Awareness)。 google
现在在计算机世界的问题是数据的增殖。信息从许多不一样的系统,以巨大的数量,在不一样的时间,以不一样的速度抵达,其中一些信息对某些系统,人或进程如今就很重要,而另一些能够先存储供之后再恢复和决策。为何咱们如今会面临数据增殖的问题呢? 翻译
这里涉及许多问题,但这里仅列出少数几个主要的:设计
计算能力的成本和复杂环境传感器设备的成本已经变得不那么昂贵
联网能力的增长,而且变得更加智能
不少不一样的功能计算模块(财务系统,生产系统,销售系统,等等)被分解,重写,从而知足来越多的业务需求。
新的计算机解决方案要求超越企业自己而扩散到合做伙伴和客户,这样就把愈来愈多的数据来源和其余输入带入到系统中。
像面向服务的架构(SOA)这样的计算技术架构变得愈来愈成功,带来了更加复杂的可重用的生态系统。
大数据(Big Data)爆炸,这个词如今普遍用于描述那些大批量的,高速的,各类各样的非结构化的,来源于社交网站、手机和许多其余源头的信息。
企业经营上对IT团队不断增加的指望 -- 要求他们对市场的状况进行更有效地、实时地响应
咱们进步和这些复杂的系统致使往计算机应用系统中“倾倒”的信息愈来愈庞大,咱们已经达到一个“临界点”-- 传统的点至点式的,或者请求- 应答式的解决方案变得失效,难以维护和不可扩展。
一个公司的经营可能被瞬间发生的事件所影响,这些事件不只来之于内部的,能够理解的,“温馨”的小世界里,而多是来自于外部的事件,如“物联网”-- 实时传感器装置能够测量和报告不少的状况,包括“温度忽然升高致使的食物储存设施的突发的危险”或“由全球定位系统位置跟踪的海运集装箱从被传感器检测到被未经受权地开箱”。
对一家公司经营的直接影响也可能来自于日益强大的社交媒体对全球商业环境带来的改变,例如Twitter,即时通信应用等。数以百万计的人在同一时间能够同时对某个新产品给予差评,强调某个迫切须要修改的产品设计。这势必会影响利润,甚至显著影响企业的价值。所以,如今的公司不可避免地受到正面或负面事件的影响而疲于奔命。
在过去,可能追溯到15年前,商业应用不得屈就于那些当时可用的计算技术所采用的那些固定的方法,结构和接口(好比关系数据库),信息必须先被静态的插入和保存,只有在此以后用户才能够再分析和响应。传统的JEE(Java Enterprise Edition)应用服务器中广泛的实现 -- 期待客户端应用程序发送的一个初始的请求,而后大多数状况下大量的代码逻辑只是用于从头至尾地处理这个请求,而后才能返回给客户端响应。这些技术正在并将继续提供那些更可能是基于批处理的,实时性较差的解决方案。而新的,更低时延的,更快的,基于内存的中间件产品现已上市。
基于事件驱动架构(Event-Driven)的系统本质上是更敏捷的,更好地被“武装”起来来处理这些类型的状况 -- 处理那些横跨整个业务基础设施和众多业务部门“孤岛”(如财务,生产和销售等部门),须要被当即解释和处理的事件。这些类型的系统,一旦当它们探测到外部和商业环境的改变,就能联系上下文并执行策略。而不是预约义一些天天晚上执行的任务,甚至是那些每次都要有人手动运行的任务来处理。
做为与大数据相关的,在将来数年将显著增加的问题 -- 即在信息的采集、管理并可以在可接受的时间范围进行处理方面,事件驱动技术(特别是复琐事件处理),能够为更高级的“智能”和决策提供快速的,更接近“事件发生时间点”的,原始的数据流。
所以,事件驱动技术的好处是在应对数据增殖方面,把传统的数据处理方法,改成把信息描述为实时的事件(能够是在任何地方发生的事情),提供了聪明地分解事件、路由事件、过滤事件、关联事件的能力,所以在大多数状况下,分散的事件能够进化为全面的,稳固的,容易理解的商业事件,使企业能相对更好地观察,控制和适应瞬息万变的状况。
待续。。。