什么是ESB

Enterprise Service Bus,这个概念近年来和SOA一样吵的很火,各种公司都说的神乎其技,感觉很玄乎。

最近公司也要搞ESB,所以先弄清这个概念。

JavaEye上也有一篇文章讨论这个:http://www.iteye.com/topic/831144。

我比较赞同

ustcfrank:写道
我认为ESB或SOA,关键有4点:
1.reuse: 服务多了,就要避免重复,能重用的就重用
2.integration: 可重用服务之间会有依赖或者需要整合。才能完成更强大的功能。
3.route: 服务之间怎么整合,信息如何交换。route的过程会有过滤(filter)。
4.transform: 信息也需要转换成不同的格式。

总的来说,可以认为:ESB就是一个大的IOC(DI),spring的DI是object级别的,ESB的DI是service级别的.

另外补充几点更好的去理解ESB:

1. 什么情况下需要用到ESB的产品?

ESB产生的背景是应用的整合,公司内或者公司间多个异构系统的通信面临诸多困难:

传输(Transport) -  各个系统支持的接口各异:有文件的,HTTP,Soap WebService,TCP的文本的;

数据格式(Data Format)- 子系统传输的数据的格式各异,如:XML,JSON,文本等;

调用方式(Invocation Style)- 同步的,异步的,批量调用等;

生命周期(Lifecycles)- 不同的开发,维护周期;

ESB正是将这些不同屏蔽,让系统之间可以用自己的方式去消费服务和发布服务,无需关心服务是发布给谁使用,也无需关心服务提供者提供的服务的发布方式和来源。

因此,ESB比较适合:

a. 公司开发的子系统较多,或者有老的子系统,这些子系统需要相互通信,相互调用服务;

b. 多个公司之间有服务的相互调用,又没有一个强势的公司能确立用某种方式通信;

如果你的情况不是这样的,那需要慎重考虑是否需要使用ESB,因为ESB的产品都比较笨重,且性能一定不比两个系统直接通信好。

2. ESB和SOA是什么关系?

转一篇文章:http://lavasoft.blog.51cto.com/62575/165597/

并引用:

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

 他们的关注点不一样。

SOA关注的是服务的分治,服务的复用和组合;而ESB关注的是服务的协作;虽然实际实施中可能会有一些重合。

3. ESB是Web Service吗?

ESB提供了整合WebService接口的Transport,因此可以认为Web Service是ESB需要整合的一种服务,他们不是同一个层级的。

4. ESB是MQ吗?

和上一个问题一样,ESB是可以整合MQ的。

5. ESB核心

S:Service,服务,各个子系统提供的是服务,意味着提供的是一个长期稳定运行,可以以某种方式(WebService,REST,MQ,HTTP,FTP,File等)被外部系统访问。ESB也就是整合的这些服务。

B:Bus,总线,意味着需要调用服务的系统(也可能是整合入ESB,提供服务的系统)都是从这条总线获取数据,而且不必关心服务来自哪里,而不是各自私下通信。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值