深刻解读ESB与SOA的关系

至今日,SOA的概念渐渐清晰了。架构

有关ESB的概念,已经吵了好多年了,仍是没有定论。异步

我我的认为,ESB原本就是抽象的概念,并且内涵丰富,在不一样的场合含义不一样。所以应该从不一样的角度来认识。分布式

1、SOA和ESB一直是没有明确概念的两个缩略词工具

缘由是这两个词包含的内涵太丰富了,没法用一两句话说清楚,而且,这个词在不一样的地方含义也有所不一样。中间件

SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种经过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。事件

ESB----企业服务总线,像一根“聪明”的管道,用来链接各个“愚笨”的节点。为了集成不一样系统,不一样协议的服务,ESB作了消息的转换解释与路由等工做,让不一样的服务互联互通。路由

目前ESB与SOA的确切概念依然没有。但能够明确的说SOA就是一种服务集成思想,它的不一样实现方式可能差异很大,目前SOA最多见的实现方式是SCA和JBI。产品

2、ESB到底是什么软件

这个问题在个大厂商之间,认识和观点也存在很大差别。技术

IBM、Oracle等认为ESB是链接服务的一种模式,但一些开源组织和其余厂商认为ESB是一种产品,而且提供了ESB链接解决方案的实现,这种实现能够认为是中间件,也能够认为是组件工具。

对此,我我的的观点更偏向前者,ESB是一种模式,ESB的实现方式也不少,能够称之为ESB产品。固然在不一样场合ESB的含义也不一样,须要鉴别。

3、为何ESB总和SOA黏在一块

一般,这两个名词总不分家,谈论的话题中“你中有我,我中有你”。

为何是这样的呢?

ESB是SOA吗?

二者之间究竟有什么微妙的关系呢?

带着疑问,继续往下看:

首先,ESB不是SOA。SOA的最多见的实现方式方式是SCA和JBI,而SCA的实现须要ESB,相反JBI则不须要ESB,能够参看本人对JBI和SCA分析解读的文章。

其次,由于IBM和Oracle(收购了BEA和SUN的牛X公司)都推崇SCA模式的SOA,所以SCA实际上已经成为SOA的事实标准,说道SOA,最早想到的就是SCA模式了。

最后,ESB是SCA架构实现不可缺乏的一部分,ESB产品脱离了具体的应用外,没有任何意义。ESB的做用在于实现服务间智能化集成与管理的中介。经过ESB能够访问所集成系统的全部已注册服务。

4、ESB的特色

ESB是一种在松散耦合的服务和应用之间标准的集成方式。它能够做用于:

面向服务的架构 - 分布式的应用由可重用的服务组成

面向消息的架构 - 应用之间经过ESB发送和接受消息

事件驱动的架构 - 应用之间异步地产生和接收消息

ESB就是在SOA架构中实现服务间智能化集成与管理的中介。

相关文章
相关标签/搜索