An Overview of Complex Event Processing
An Overview of Complex Event Processing
复杂事件处理技术概览(一)
翻译前言:我在理解复杂事件处理(CEP)方面一直有这样的困惑--为什么这种计算模式是有效的,能够分析得到有用的结果?为什么它会快?我始终还没有找到我期望的答案。不像map-reduce模型,google的论文非常清楚的描述了它的场景;或者disruptor框架,原作者清晰地解释了它为什么会快。在试图理解CEP的过程中,我准备翻译一些我认为有启发性的文章,希望也对大家有用。这篇文章的原文《An Overview of Complex Event Processing》非常长,我将把它分成几篇来翻译。
刘斌华原创翻译,转载请注明出处 http://www.cnblogs.com/Binhua-Liu/p/5325346.html
什么是事件处理(Event Processing)?
在我们周围的世界,每小时每分钟每一秒,人的大脑会受到或顺序发生的,或同时发生的,无穷无尽的事情的轰炸,这些事件立即看来是也许是完全没有意义的,甚至有些古怪的,但随着越来越多的事情发生,我们可以开始了解他们的之间相关性和重要性。
例如,我们听到远处的欢呼声,我们看到气球在空中飞舞,音乐开始播放,警车和盛装着的拖着木偶的卡车的出现,坐在车上挥舞着人们,紧随其后的救护车,和今天的日期是7月4日。单独来看,这些事件可能意味着任何事情,但是在一起呢?这很可能是一次独立日狂欢巡游!
我们的大脑可以很容易地在一眨眼的功夫确定这一事实 --- 虽然不是过于简单。用计算方式来定义,我们可以描述一个“巡游事件模式”,如下所示:
一辆(或多辆)警车+后面的/后面的/毗邻的+一辆(或多辆)狂欢卡车+后面的/后面的/毗邻的+一个(或多个)挥动的人++后面的/后面的/毗邻的+一辆(或多辆)应急车辆+在哪里可以听到音乐+今天的日期是7月4日
你的大脑并不局限这样的工作模式:发送信息,等待,直到有一个回应,然后进行一系列固定步骤的操作,以完成某项工作。正如这个例子中,它能够把正在发生的一系列事件,和相关的外部因素比如今天的日期,都关联起来,并理解当前发生的是“巡游事件模式”。

所以,当你了解更多关于复杂事件处理(Complex Event Processing)-- 我们专注于的这种技术 -- 你将知道它如何利用从不同地方获取的,连续的,流动的,永无止境的信息,来立即地理解正在发生的事情,以及在很不久的将来要发生的事情。这又经常被称为实时态势感知 (Real-Time Situation Awareness)。
这与商业计算的关联
如今在计算机世界的问题是数据的增殖。信息从许多不同的系统,以巨大的数量,在不同的时间,以不同的速度抵达,其中一些信息对某些系统,人或进程现在就很重要,而另外一些可以先存储供以后再恢复和决策。为什么我们现在会面临数据增殖的问题呢?
这里涉及许多问题,但这里仅列出少数几个主要的:
计算能力的成本和复杂环境传感器设备的成本已经变得不那么昂贵
联网能力的增加,并且变得更加智能
很多不同的功能计算模块(财务系统,生产系统,销售系统,等等)被分解,重写,从而满足来越多的业务需求。
新的计算机解决方案要求超越企业本身而扩散到合作伙伴和客户,这样就把越来越多的数据来源和其他输入带入到系统中。
像面向服务的架构(SOA)这样的计算技术架构变得越来越成功,带来了更加复杂的可重用的生态系统。
大数据(Big Data)爆炸,这个词现在广泛用于描述那些大批量的,高速的,各种各样的非结构化的,来源于社交网站、手机和许多其他源头的信息。
企业经营上对IT团队不断增长的期望 -- 要求他们对市场的情况进行更有效地、实时地响应
我们进步和这些复杂的系统导致往计算机应用系统中“倾倒”的信息越来越庞大,我们已经达到一个“临界点”-- 传统的点至点式的,或者请求- 应答式的解决方案变得失效,难以维护和不可扩展。
一个公司的经营可能被瞬间发生的事件所影响,这些事件不仅来之于内部的,可以理解的,“舒适”的小世界里,而可能是来自于外部的事件,如“物联网”-- 实时传感器装置可以测量和报告很多的情况,包括“温度突然升高导致的食物储存设施的突发的危险”或“由全球定位系统位置跟踪的海运集装箱从被传感器检测到被未经授权地开箱”。
对一家公司经营的直接影响也可能来自于日益强大的社交媒体对全球商业环境带来的改变,例如Twitter,即时通讯应用等。数以百万计的人在同一时间可以同时对某个新产品给予差评,强调某个迫切需要修改的产品设计。这势必会影响利润,甚至显著影响企业的价值。因此,现在的公司不可避免地受到正面或负面事件的影响而疲于奔命。
在过去,可能追溯到15年前,商业应用不得屈就于那些当时可用的计算技术所采用的那些固定的方法,结构和接口(比如关系数据库),信息必须先被静态的插入和保存,只有在此之后用户才可以再分析和响应。传统的JEE(Java Enterprise Edition)应用服务器中普遍的实现 -- 期待客户端应用程序发送的一个初始的请求,然后大多数情况下大量的代码逻辑只是用于从头到尾地处理这个请求,然后才能返回给客户端响应。这些技术正在并将继续提供那些更多是基于批处理的,实时性较差的解决方案。而新的,更低时延的,更快的,基于内存的中间件产品现已上市。
基于事件驱动架构(Event-Driven)的系统本质上是更敏捷的,更好地被“武装”起来来处理这些类型的情况 -- 处理那些横跨整个业务基础设施和众多业务部门“孤岛”(如财务,生产和销售等部门),需要被立即解释和处理的事件。这些类型的系统,一旦当它们探测到外部和商业环境的改变,就能联系上下文并执行策略。而不是预定义一些每天晚上执行的任务,甚至是那些每次都要有人手动运行的任务来处理。
作为与大数据相关的,在未来数年将显著增长的问题 -- 即在信息的采集、管理并能够在可接受的时间范围进行处理方面,事件驱动技术(特别是复杂事件处理),可以为更高级的“智能”和决策提供快速的,更接近“事件发生时间点”的,原始的数据流。

因此,事件驱动技术的好处是在应对数据增殖方面,把传统的数据处理方法,改为把信息描述为实时的事件(可以是在任何地方发生的事情),提供了聪明地分解事件、路由事件、过滤事件、关联事件的能力,因此在大多数情况下,分散的事件可以进化为全面的,稳固的,容易理解的商业事件,使企业能相对更好地观察,控制和适应瞬息万变的情况。
An Overview of Complex Event Processing的更多相关文章
- An Overview of Complex Event Processing2
An Overview of Complex Event Processing 翻译前言:感觉作者有点夸夸其谈兼絮絮叨叨,但文章还是很有用的.原文<An Overview of Complex ...
- How to scale Complex Event Processing (CEP)/ Streaming SQL Systems?
转自:https://iwringer.wordpress.com/2012/05/18/how-to-scale-complex-event-processing-cep-systems/ What ...
- FlinkCEP - Complex event processing for Flink
https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/libs/cep.html 首先目的是匹配pattern sequenc ...
- Understanding Complex Event Processing (CEP)/ Streaming SQL Operators with WSO2 CEP (Siddhi)
转自:https://iwringer.wordpress.com/2013/08/07/understanding-complex-event-processing-cep-operators-wi ...
- Flafka: Apache Flume Meets Apache Kafka for Event Processing
The new integration between Flume and Kafka offers sub-second-latency event processing without the n ...
- OpenGL的GLUT事件处理(Event Processing)窗口管理(Window Management)函数[转]
GLUT事件处理(Event Processing)窗口管理(Window Management)函数 void glutMainLoop(void) 让glut程序进入事件循环.在一个glut程序中 ...
- An Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache Kafka, too!)
01 Mar 2018 Piotr Nowojski (@PiotrNowojski) & Mike Winters (@wints) This post is an adaptation o ...
- How Cigna Tuned Its Spark Streaming App for Real-time Processing with Apache Kafka
Explore the configuration changes that Cigna’s Big Data Analytics team has made to optimize the perf ...
- 13 Stream Processing Patterns for building Streaming and Realtime Applications
原文:https://iwringer.wordpress.com/2015/08/03/patterns-for-streaming-realtime-analytics/ Introduction ...
随机推荐
- 贴一个CMemDC 代码,这东西真不错噢,短小精悍,可谓极品
罗索客 发布于 2006-11-28 21:53 点击:3941次 来自: 原文: http://yuantao82.spaces.live.com/Blog/cns!8FC0A772D812A22 ...
- Find命令, find用法,
Find命令 用法示例:查找HOME目录下大于1M小于10M的文件$ find ~ -size +1M -size -10M 15个小时这一时刻修改的文件:find . -mmin 900 | xar ...
- LIS小结(O(∩_∩)O~哄哄)
~\(≧▽≦)/~啦啦啦,昨天说的是LCS,今天我们要学习的是LIS,什么是LIS呢? LIS: 最长有序子序列(递增/递减/非递增/非递减)这么说还是有些模糊,举个例子: 在一个无序的序列a1,a ...
- GitHub上最受欢迎的Android开源项目TOP20
以下这些开源项目都是从GitHub上筛选的,我强烈推荐android程序源代码有时间的时候自己在上面淘淘,或许能发现自己须要的开源程序. 了解开源项目有两个优点: 1.借鉴代码,一般来说.火爆的开源项 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-5 runInstaller oracle of no swap
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11186995 正确答案:A 我们先来看下面这张截图,这是我在安装Oracle 11.2.0 ...
- Apache Lucene
1.Lucene -全文搜索引擎 Apache Lucene 是一个基于Java的全文搜索引擎,利用它能够轻易的为Java软件添�全文搜索引擎的功能. Lucene最重要的工作是替文件的每个字索引, ...
- hdu 1028 母函数 一个数有几种相加方式
///hdu 1028 母函数 一个数有几种相加方式 #include<stdio.h> #include<string.h> #include<iostream> ...
- ThinkPHP框架模型连贯操作(八)
原文:ThinkPHP框架模型连贯操作(八) Thinkphp的连贯操作使用起来也是很灵活: *可能这里有的mysql函数没全部罗列出来,大家可以举一反三,形式雷同 一.常用连贯操作 1.where ...
- Windows8和MacOS10.9双系统安装及Mac经常使用软件安装--联想E49A
前提 本篇内容所描写叙述的内容仅仅适合联想E49A笔记本,经过本篇的内容之后,对于Mac OS 10.9的使用达到正常工作使用的标准,完美度已经比較好了. 结果例如以下:显卡.网卡(RTL8168). ...
- exit()和_exit()和return
exit()和return的差别: 依照ANSI C,在最初调用的main()中使用return和exit()的效果同样. 但要注意这里所说的是"最初调用".假设main()在一个 ...