2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

复杂事件处理过去是否适合 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:472968
用户头像

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

关注

评论

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

膜拜!Github访问量破百万,阿里内部首次公布的Java10W字面经有多强?

Java 程序员 架构 面试

CompusBulider (模模搭)学习笔记7:3D场景中第一人称行走

ThingJS数字孪生引擎

3D可视化 数字孪生

淘宝网能抗住“千亿级”并发量的奥秘是什么?

Java架构师迁哥

测试开发网络篇-网络协议简介

禅道项目管理

软件测试 自动化测试 测试开发

Flume的负载均衡load balancer

大数据技术指南

flume 5月日更

HIVE跑个insert into select xxx 为什么CPU飙高

InfoQ_Springup

hadoop

采用DevOps的7个主要障碍,你一定不知道!

禅道项目管理

DevOps

BitMap 转置算法:不一样的 Count 求解方式

GrowingIO技术专栏

BitMap

UCloud一站式智能大数据平台USDP免费版正式发布!

UCloud技术

hadoop CDH

GitHub标星235k!这份阿里P9纯手写的Java并发核心手册堪称无敌了

Java架构之路

Java 程序员 架构 面试 编程语言

官方出手,一针见血!Spring Boot官方手册来袭:从入门到实战

Java架构之路

Java 程序员 架构 面试 编程语言

架构实战营模块3课后作业-基于“自研集群+MySQL存储”的消息队列架构设计方案

吴建中

架构实战营

看完了京东年薪150万的大佬扔给我的“阿里内部Java 成长笔记”,差距不止一点点

Java 程序员 架构 面试 计算机

阿里分布式大神亲码“redis核心技术笔记”,没有废话,全是干货!

Java架构追梦

Java redis 阿里巴巴 架构 架构分布式

iOS 面试策略之系统框架-并发编程

iOSer

ios 并发编程 系统框架

致我的青春我的感情故事

Changing Lin

520单身福利

分库分表 springboot+dubbo+mybatisPlus+shardingSphere

try catch

dubbo 分库分表 springboot ShardingSphere MyBatisPlus

SparkStreaming知识点总结

五分钟学大数据

大数据 5月日更

普通代码块 静态代码块 构造代码块......傻傻分不清

麦洛

Java

3、深潜KafkaProducer核心架构

杨四正

kafka 消息队列 kafka架构 kafka源码分析

高可用 Keycloak,K8s

Zhang

MySQL k8s keycloak

包容的回答者

王辉

个人成长 沟通 团队文化 批判性思维 正念

基于 Qt Quick Plugin 快速构建桌面端跨平台组件

网易云信

音视频 qt

520 表白,因一个分号被拒

悟空聊架构

520单身福利

520 单身福利|获奖名单公布~

InfoQ写作社区官方

520单身福利 热门活动

Why WebRTC|前世今生

RTE开发者社区

WebRTC RTC

阿里内部百亿级高并发系统(全彩版小册开源):基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇;带你从基础到实战

Java 程序员 架构 高并发

测试开发专题-开篇

禅道项目管理

软件测试 自动化测试 测试开发

基础设施设施即代码(IaC)平台 Pulumi | 混合云管理利器

郭旭东

基础设施即代码 IaC

Serverless:这真的是未来吗?(二)

Serverless Devs

Serverless 运维 云原生 后端 无服务器

聊聊那些小而美的开源搜索引擎

代码先生

搜索引擎 elasticsearch meilisearch

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