论坛首页 Java企业应用论坛

【讨论】什么是ESB

浏览 38231 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-12-03  
好像论坛这方面的资料比较少,期待哪位达人出点文章系统介绍下。。。
0 请登录后投票
   发表时间:2010-12-03  
同一标准后,什么都可以当成esb

我们都是一SB
0 请登录后投票
   发表时间:2010-12-03  
用esb
要么历史遗留问题
要么要跟其它强势的企业,部门交流数据资源

不就是xml文档嘛 传来传去嘛
rest后,就是json传来传去
0 请登录后投票
   发表时间:2010-12-03  
这个话题我也喜欢。

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

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

请大家讨论。
0 请登录后投票
   发表时间:2010-12-03  
目前在企业中用的比较多的是web service协议。esb只是代理的功能,可以尝试camel?
0 请登录后投票
   发表时间:2010-12-03   最后修改:2010-12-03
我最近刚刚实施了一个ESB项目,用的是IBM 的websphere message broker,IBM有3个ESB产品
分别是WEBSPHERE ESB,WEBSPHERE MESSAGE BROKER,DATA POWER
其中websphere esb只能用java来访问,也是最便宜的一个产品。data power是硬件实现的esb,主要采用XML的消息格式 性能最好,但是扩展性不是很好。
websphere message broker 基于websphere message queue,采用C/C++开发,性能高,支持所有平台,这个产品是IBM功能最强大的ESB产品。

其实所谓的ESB,大家看名字就知道是什么
E 企业: 安全、高扩展性、高维护性
S 服务: 服务发现、服务包装、服务调用
B 总线: 公共消息通信传输、路由、加工


通过这个esb的项目实施,通过了ibm的soa 软件架构师和websphere message broker 开发者的认证,对IBM的soa也有了一定的理解和实施经验,目前我负责的这个项目已经是ibm的esb成功案例,作为他们内部的参考样本。

很多人看到ESB就以为是web service,其实这样理解的人都是些门外汉,没有真正理解SOA的理念,SOA这是一种企业架构设计方法,和具体的技术并没有什么本质的联系,他需要对业务行为进行重新规划,就和设计模式一样,设计模式并不和具体的语言绑定。

下面我来介绍下websphere message broker(简称WMB)的esb实现方法,当然这里不是向大家推销这个产品,主要我只熟悉这个产品。

wmb可以对各种语言(包括c、c++、cobol、java、dot net等)、各种平台(unix、linux、window)开发的应用程序的数据消息进行转换和路由,实现的功能进行服务包装和调用,打个简单比方,你用cobol语言在一个大型主机上开发了一个程序提供一个特定的服务(比如用tcp socket来接受请求),现在企业新开发的业务模块需要使用这个功能,这时候wmb可以把cobol开发的程序封装成你想要的任何一种服务接口来给你调用,这个调用接口可以是webservice 的soap消息报、二进制消息报文、csv文本格式等等。

这样的设计方法就产生了一个基本的soa架构,所有的应用只和ESB进行交换,他们之间的数据交换都通过数据总线,哪一天如果业务流程发生改变,就可以通过wmb的内部消息流处理流程来重新组装服务,从而实现随需应变。

当然ESB只适合那些大型业务复杂的企业,最好是有很多开发商一起参与的企业,这也是IBM在培训ESB时经常用机场、证券来做样本的原因吧。

希望对大家有用。
0 请登录后投票
   发表时间:2010-12-03   最后修改:2010-12-03
jinzhen1978 写道
wmb可以对各种语言(包括c、c++、cobol、java、dot net等)、各种平台(unix、linux、window)开发的应用程序的数据消息进行转换和路由,实现的功能进行服务包装和调用,打个简单比方,你用cobol语言在一个大型主机上开发了一个程序提供一个特定的服务(比如用tcp socket来接受请求),现在企业新开发的业务模块需要使用这个功能,这时候wmb可以把cobol开发的程序封装成你想要的任何一种服务接口来给你调用,这个调用接口可以是webservice 的soap消息报、二进制消息报文、csv文本格式等等。



你说了半天,和webservice有区别吗?


最假大空的一句话莫过于“SOA这是一种企业架构设计方法,和具体的技术并没有什么本质的联系,他需要对业务行为进行重新规划,就和设计模式一样,设计模式并不和具体的语言绑定。 ”
------------------------------------------------------------------------------------------

我们知道每一个Service对应着一个商业逻辑,而商业逻辑的特点就是变来变去,数据可以做通盘考虑,但是服务的特点就是变幻莫测,今天A服务要求按供应商查询内存故障率,B服务是要求查询硬盘size和测试时间的关系,你怎么规划也没有变化快。
0 请登录后投票
   发表时间:2010-12-03   最后修改:2010-12-03
webservice和esb的区别哪就是
webservice只是esb可以访问的一种服务提供者(协议)

webservice的方式只是一种大家都熟悉的一个方法,
打个比方,现在需要实现一个服务,客户端发送一个人员编码,返回人员姓名
下面的几种设计方法都可以成为esb(websphere message broker)的服务提供者

A,开发一个webservice,提供调用参数人员编码,返回包含人员姓名soap消息包
B.开发一个socketserver ,接受一个char[20]的 数组,返回char[100]的数组
C.开发一个structs action,通过 someaction.do?usercode=? 的方法返回一个json格式的姓名{name:'edwin'}
D.使用消息队列中间件,发送xml格式的请求消息,再从指定队列读取返回值

现在明白webserice和esb的关系了吧。
0 请登录后投票
   发表时间:2010-12-03   最后修改:2010-12-03
就说这么多了,听的懂人就当个参考,听不懂的人就当是个笑话,毕竟知道SOA,ESB这几个字母的人很多,但是真正用过的人却很少。
0 请登录后投票
   发表时间:2010-12-03  
就是企业数据太复杂了,不同系统之间的数字模型太不一样
需要一个高效而安全的东西来翻译呗

一般我们不需要的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics