写点什么

复杂事件处理过去是否适合 SOA,现在是否适合云?

  • 2011-09-15
  • 本文字数:1576 字

    阅读完需:约 5 分钟

2002 年, David Luckham 引入"复杂事件处理(Complex Event Processing,简称 CEP)”一词。几年后,在关于 CEP 历史论文中,Luckham 指出:几十年来,尽管事件处理已经是分布式系统和模拟的核心,CEP 仍在演化,随着上下文不断变化,它没有停滞不前。实际上,CEP 最好的概括是:

复杂事件处理技术针对真实世界的事件数据,进行低延时的过滤、关联、聚合和计算。

这些年来,CEP 在 SOA 的上下文中被讨论,认为它天性符合 SOA,而且多次被成为"计算领域的新物理学”,或是像 2008 年 WebSphere CTO Jerry Cuomo 说到的"明日之星”:

我开始听到有人在 SOA 的上下文中谈论 CEP,而且我坚信它是 SOA 的明日之星,也就是事件处理。我不知道你们听到多少,但是毫无疑问,我们对它非常严肃。我看到事件处理的光谱。有多种类型的事件处理,从其字面意义上说,在这方面我们做得都还不错。

一直有一些公司在提供和研发 CEP 产品,或是开源项目,比如 Esper Drools Fusion Sybase 。同时,我们看到人们在谈论是事件驱动架构(Event Driven Architectures,EDA)事件流处理(Event Stream Processing,ESP),构建于事件和CEP 理念之上。像Gartner 和Oracle 甚至建议CEP 和SOA 的组合将会是下一代SOA 的发端,比如 SOA 2.0 ,不过在业界更大范围内,它发展得不太好。然而,正如 Eric Roch 最近指出的,CEP 这个词让其背后的理念很难得到认可:

CEP 这个词和其复杂性的理念被一些使用案例不断恶化,这些案例常常和技术相关。最常被提到的案例是交易算法。你去跟你的 CEO 说希望尝试 CEP,因为这是很棒的技术,华尔街也用它来做交易算法,这样的事情你能想象么?运气好,可能给你来一句:"咱们的业务里面用这个有啥用啊?”或者就是一个恼火、轻蔑的眼神。

Eric 同意 Luckham 最初的分析:就像面向消息的中间件或者规则引擎什么的,在 CEP 背后没有多少新鲜东西。即使如此,还是有太多复杂的词汇,难以服众:

但是,当你抛出一大堆热门词汇——复杂事件、事件通道、推论引擎、Rete 网络、转发组链、状态机、组元、交易算法,听起来确实需要一个博士才能把这件事玩儿起来。

幸运的是,过去十年中,相关实现已经有不少改进,而且工具现在成为了重要组件:

CEP 工具,特别是最成熟的那些,是模型驱动的,很容易使用。你不需要知道推论引擎的内部,就可以写出业务规则。实际上,它们比写一大堆嵌套的 if 语句要更为容易。

不过,过去几年里面,对 CEP 的讨论和各种宣传已经减少了。这可能是由于对 SOA 宣传的减少。也可能因为 CEP 没有实现最初的承诺。或者更可能的是:就是像 Luckham 指出的,多年来,事件已经成为软件系统的一部分,CEP 现在是 SOA 实现核心的自然构成,人们觉得理所当然。

不错,随着云的广泛应用,还有利用现有软件投资的推动力,我们看到有一些讨论,建议将SOA 迁入云中,当然也包括与SOA 相关的所有东西,比如CEP。然而,看起来这也许不会像 Colin Clark 去年指出的那么容易:

也许因为目前的 CEP 产品不太适合网格式部署。目前没有产品提供消息总线或是缓存,这是网格部署的必要部件。很多人觉得 "我不关心消息来自哪里,也不关心它们去向何方”, 对于这样的人来说,因为缺乏上述关键组件,相关产品很可能没有进入架构的机会。这样的人越来越多,这样的世界越来越大,这样的世界已经准备好进入云计算的世界。

正如另一篇文章提到的,也许 CEP 背后的某些本质假设,比如低延时,或是当前实现的"复杂性”,阻碍了在云中使用 CEP。又或者 CEP 将会成为云的关键,正像它过去 50 年成为分布式系统的关键那样?InfoQ 的读者们,你们的 SOA 应用里面用到 CEP 了吗?它是不是你们 SOA 基础设施的核心部分?你们是否考虑在云中使用它?如果是的话,现有的实现是否符合你们的需求?还是我们需要更具备云特性的 CEP?

查看英文原文: InfoQ: Did CEP deliver for SOA and can it for Cloud?

2011-09-15 01:473015
用户头像

发布了 479 篇内容, 共 183.2 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

CSS 自适应内容宽度的输入框

编程江湖

我相信:没有解不开的难题|ONES 人物

万事ONES

Android技术分享| 自定义View实现使用更方便的SeekBar

anyRTC开发者

android 音视频 移动开发 白板 SeekBar

java开发之Redis的使用规范

@零度

redis JAVA开发

前端开发之JQuery的综合应用

@零度

jquery 前端开发

使用php-amqplib实现RabbitMq

Owen Zhang

php RabbitMQ php-amqplib

为什么HashMap会产生死循环?

王磊

Scrum Master需要具备哪些能力和经验

华为云开发者联盟

Scrum 敏捷 团队 教练 Scrum Master

Serverless 背景下,一部分“前端工程师”会转变为“应用交付工程师”

杨成功

Serverless 架构 前端

知识库进化论 | 华创资本对话 ONES & 为知笔记创始人

万事ONES

软件设计——依赖倒置

苏州程序大白

架构师

ReactNative进阶(二十三):Javascript 严格模式详解

No Silver Bullet

React Native 1月月更

创业老兵李峻的新征程|ONES 人物

万事ONES

TDSQL PG版企业级分布式数据库技术创新实践

腾讯云数据库

tdsql 国产数据库

前端使用 zx 库在 Node 中编写 Shell 脚本

devpoint

node.js Shell 1月月更 zx.js

Jetpack—LiveData组件的缺陷以及应对策略

vivo互联网技术

android livedata JetPack 移动应用开发

我以订披萨为例,给女朋友详细讲了Java设计模式的3种工厂模式

华为云开发者联盟

Java 工厂模式 工厂方法模式 简单工厂模式 抽象工厂模式

线上流量对比应用实践

得物技术

架构 数据 流量 实践 流量回放

Hive SQL底层执行原理

五分钟学大数据

Hive SQL 1月月更

TDSQL | 将企业级分布式数据库做到极致

腾讯云数据库

tdsql 国产数据库

Chrome插件:摸鱼倒计时、每日摸鱼时间统计,奋斗逼、卷王必备,用于减少摸鱼时间和频率

OBKoro1

效率 开源 效率工具 chrome扩展 高效率

GIS :元宇宙未来发展的有力技术支撑

华为云开发者联盟

AI GIS 虚拟世界 数字孪生 云宇宙

ONES CTO 冯斌|如何低成本地做出高质量决策

万事ONES

TDSQL-C for PostgreSQL 主从架构详解

腾讯云数据库

tdsql 国产数据库

2021 OceanBase 开源半年度报告 | 不忘初心,感恩同行

OceanBase 数据库

开发者 报告 OceanBase 开源 OceanBase 社区版

龙蜥社区一周动态 | 1.10-1.14

OpenAnolis小助手

Linux 开源 社群

低代码实现探索(二十二)如何构建一个可以看的懂的系统

零道云-混合式低代码平台

1月月更|推荐学java——Spring之AOP

逆锋起笔

spring SSM框架 spring aop 依赖注入 面向切面编程

组件通信、硬件池化,这些创新技术你get了吗?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

架构实战训练营-模块7-作业

温安适

「架构实战营」

虎符研究院深入解读Web3.0未来趋势 盘点代表性项目

区块链前沿News

Web Hoo虎符 虎符研究院 虎符平台 3.0

复杂事件处理过去是否适合SOA,现在是否适合云?_SOA_Mark Little_InfoQ精选文章