CEP 是 EDA 或 SOA 的必要条件吗?

  • Dilip Krishnan
  • 黄璜

2008 年 11 月 23 日

话题:SOA架构

Jack Van Hoof 在一篇文章里比较了 CEP 和 EDA 以及它们如何关联到 SOA。他表示:

CEP (复杂事件处理) 在指定的时间帧里关联了多条消息。EDA 是从业务事件角度对信息系统建模的架构方式。EDA 与 SOA 的不同在于其关注的焦点。SOA 是以服务为模型的中心,而 EDA 则以业务事件为中心。 SOA 的方式将会带来同步通信风格的结果,而 EDA 方式是一种异步的通信风格。

他相信市场并未真正理解 EDA并解释到 CEP 为何从根本上与 EDA 不同;即 CEP 是工具而 EDA 是架构。

CEP 从定义上就不是关于业务事件的。CEP 是处理消息流的一种技术。这些消息并不要求要代表业务事件。一个业务事件意味着当发生某种情况(状态改变)你的业务能够按照预先计划的方案来应对它。一个业务事件可通过消息来表达,但并非所有消息都是业务事件的代表。CEP 是关于消息的,EDA 是关于业务事件的。CEP 能够被用来实现 EDA。你可能会说:EDA 是业务层次的 CEP。

作为回应,Progress Apama 的 Giles Nelson详尽阐述了SOA,EDA 和 CEP 三者的关系,并指出了几个关键点。Joe McKendrick 在为什么‘事件驱动架构‘不仅仅是复杂事件处理这篇文章里也表达了相同的观点。同样的还有Udi Dahan,他以一个优雅的order-to-cash 处理案例举例说明了这些概念在真实世界业务问题是如何相互作用的。他以下列评述总结了自己的立场。

CEP,虽作为一个富有挑战的工程领域,并在某种条件下管理着一个项目要成功所面对的必要的技术风险,而且当以 SOA/EDA 为背景时能真正发挥出其闪光之处,但就其本身而言,实不益被用于架构层次的最高级。

Jack 以强调 EDA 的重要性作为了其文章的总结。并表示“我认为 EDA 最终将完全地改变我们现在对业务应用的认识,包括 SOA”。

我们之前也曾从架构的角度对这一争论进行了关注。看起来 CEP,SOA 和 EDA 这三者之间的相互关系颇为混淆,这很大程度上是由于供应商的原因。如若对企业是如何采用这些技术的来一个直观的透视将会非常有趣。那么 CEP 在你的企业中扮演着什么角色呢?它们是如何被运用于 EDA 和 SOA 项目的呢?

查看英文原文:Is CEP a pre-requisite for EDA or SOA?
SOA架构