通过ESB组合SOA和EDA(一)

日期: 2007-12-09 作者:Jean-Louis Maréchaux 来源:TechTarget中国

  现今的业务应用程序很少完全独立运行。它们需要彼此连接,以便创建集成解决方案,从而为组织带来价值。面向服务的体系结构(Service-Oriented Architecture,SOA)和事件驱动的体系结构(Event-Driven Architecture,EDA)是处理复杂集成挑战的两个不同范例。组织如何选择更好的方法来满足其需求呢?实际上他们并不必选择:企业服务总线(Enterprise Service Bus,ESB)允许同时实现 SOA 和 EDA 概念。

  引言

  为了适应市场变化,各个组织都倾向于将重点放在灵活性和响应能力上。IT 挑战实际上通常使用恰当的体系结构和技术来支持此业务远景。早期的活动是为了将独立应用程序拆分为可调用的子例程,但远程对象调用和消息传递处理的发展改变了这一点。

  而在最近,增加对组织中现有资产的重用(可反过来提高投资回报)和集成异类应用程序以形成一致业务解决方案开始变得非常关键了。而这促进了 SOA 和 EDA 的广泛采用。这两个不同的设计范例均以最大化独立于应用程序的服务(可提供 IT 适应能力和效率)的重用为目标。但构建和部署大型集成解决方案始终是一项比较困难的任务。而这正是 ESB 的用武之地,因为它简化了任务关键型应用程序的灵活而可靠的体系结构(SOA 和 EDA)的实现。

  面向服务的体系结构

  SOA 是一个体系结构概念,其中所有的功能或服务都使用描述语言加以定义,且各自的接口均可通过网络进行发现。此类接口采用独立方式定义,不受服务实现所在的硬件平台、操作系统和采用的编程语言的影响。

  SOA 的最重要优势之一是,它可以脱离软件开发中的孤立方式(在此方式中,每个部门构建自己的系统,而完全不考虑组织中的其他人已完成了哪些东西)。这种“竖井 (Silo)”方法将会导致低效且开销巨大的情况出现,可能会多次开发、部署和维护相同的功能。SOA 基于在整个组织范围内共享的服务组合,并提供了对现有资产的有效重用和集成,如图 1 中所示:

  图 1:“竖井”方法与 SOA 方法的对比

  SOA 基于方便的请求/应答机制,如图 2 中所示。服务使用者将通过网络调用服务提供者,且必须等待,直到提供者一端的操作完成。

  图 2:SOA 中的请求/应答机制

  表 1 对 SOA 解决方案的基本特征进行了总结:

   功能              描述
  松散耦合的交互        服务的调用独立于其技术和位置。
  一对一通信          一个特定服务一次由一个用户调用。通信是双向的。
  基于用户进行触发       控制流由客户机(服务使用者)发起。
  同步             应答将以同步方式发回给使用者。

  表 1:基本 SOA 特征

  事件驱动的体系结构

  在 2003 年,Gartner引入了一个新术语,用以描述基于事件的设计范例:事件驱动的体系结构 (EDA)。EDA 定义了一种用于进行设计和实现应用程序和系统的方法,其中的事件在各个分解的软件组件和服务间进行传递。EDA 并不会替代 SOA,而只是对 SOA 形成补充。虽然 SOA 通常更适合请求/响应交换环境,但 EDA 引入了一些长时间运行的异步进程功能。而且,EDA 节点可发布事件,且并不依赖于所发布的服务的可用性。它真正地实现了同其他节点的分离。EDA 有时也称为“事件驱动的 SOA”。

  EDA 使用消息传递来在两个或多个应用程序进程间进行通信。此类通信是由“事件”发起的。触发器通常与某种业务情况对应。该事件的所有订阅者将随后得到通知,从而激活,如图 3 中所示:

  图 3. 事件驱动的体系结构中的发布/订阅机制

  表 2 对 EDA 的基本特征进行了总结:

   功能                   描述
 
  分离的交互       事件发布者并不会意识到事件订阅者的存在。
  多对多通信       采用发布/订阅消息传递,一个特定事件可以影响多个订阅者。
  基于事件的触发器    控制流由接收者确定(基于发布的事件)。
  异步          通过事件消息传递支持异步操作。

  表 2:基本 EDA 特征

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 总线技术究竟该不该用?

    曾几何时企业服务总线(ESB)被视为企业IT的核心。今天,不仅ESB受到了比被废弃还要糟糕的攻击,若干开发趋势似乎对更简单的消息总线也发起了质疑。