博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入解读ESB与SOA的关系
阅读量:6834 次
发布时间:2019-06-26

本文共 1293 字,大约阅读时间需要 4 分钟。

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

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

我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同。因此应该从不同的角度来认识。

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

原因是这两个词包含的内涵太丰富了,无法用一两句话说清楚,并且,这个词在不同的地方含义也有所不同。

SOA—-面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。
ESB—-企业服务总线,像一根“聪明”的管道,用来连接各个“愚笨”的节点。为了集成不同系统,不同协议的服务,ESB做了消息的转换解释与路由等工作,让不同的服务互联互通。

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

二、ESB究竟是什么

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

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

对此,我个人的观点更偏向前者,ESB是一种模式,ESB的实现方式也很多,可以称之为ESB产品。当然在不同场合ESB的含义也不同,需要鉴别。

三、为什么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可以访问所集成系统的所有已注册服务。

四、ESB的特点

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

面向服务的架构 - 分布式的应用由可重用的服务组成
面向消息的架构 - 应用之间通过ESB发送和接受消息
事件驱动的架构 - 应用之间异步地产生和接收消息
ESB就是在SOA架构中实现服务间智能化集成与管理的中介。
(本段话引用:IT专家网 )


学习一个新事物,认识是最重要的,只有不断的去学习去认识,才能把握其特点、功能、属性等等,并在认识的基础上加以合理利用。任何鱼目混珠的认识只能导致偏离原则和标准。

转载于:https://www.cnblogs.com/lanzhi/p/6468328.html

你可能感兴趣的文章
[.Net 多线程处理系列专题七——对多线程的补充
查看>>
shell code one
查看>>
While 나가는 법
查看>>
c语言操作符的优先级
查看>>
Codeforces Round #420 (Div. 2) A-E
查看>>
9.4-9.19 h5日记总结
查看>>
SimpleAdapter
查看>>
一 python并发编程之多进程
查看>>
less文件编译成微信小程序wxss文件
查看>>
viewport 学习
查看>>
jackson详解
查看>>
Python-JS事件与面向对象操作
查看>>
Linux启动过程总结
查看>>
新建android工程的时候eclipse没有生成MainActivity和layout布局
查看>>
Halcon算子翻译——dev_get_system
查看>>
div模拟textarea文本域轻松实现高度自适应
查看>>
解决-2008 R2 SP1安装Thinkpad System Update 4无法更新 提示"收集用户信息时出错"
查看>>
详细对比IB开发与纯手码开发的优劣。
查看>>
Codeforces Round #331 (Div. 2)
查看>>
梦断代码阅读笔记二。
查看>>