锁定老帖子 主题:【讨论】什么是ESB
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-03
好像论坛这方面的资料比较少,期待哪位达人出点文章系统介绍下。。。
|
|
返回顶楼 | |
发表时间:2010-12-03
同一标准后,什么都可以当成esb
我们都是一SB |
|
返回顶楼 | |
发表时间:2010-12-03
用esb
要么历史遗留问题 要么要跟其它强势的企业,部门交流数据资源 不就是xml文档嘛 传来传去嘛 rest后,就是json传来传去 |
|
返回顶楼 | |
发表时间: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级别的. 请大家讨论。 |
|
返回顶楼 | |
发表时间:2010-12-03
目前在企业中用的比较多的是web service协议。esb只是代理的功能,可以尝试camel?
|
|
返回顶楼 | |
发表时间: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时经常用机场、证券来做样本的原因吧。 希望对大家有用。 |
|
返回顶楼 | |
发表时间: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和测试时间的关系,你怎么规划也没有变化快。 |
|
返回顶楼 | |
发表时间: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的关系了吧。 |
|
返回顶楼 | |
发表时间:2010-12-03
最后修改:2010-12-03
就说这么多了,听的懂人就当个参考,听不懂的人就当是个笑话,毕竟知道SOA,ESB这几个字母的人很多,但是真正用过的人却很少。
|
|
返回顶楼 | |
发表时间:2010-12-03
就是企业数据太复杂了,不同系统之间的数字模型太不一样
需要一个高效而安全的东西来翻译呗 一般我们不需要的 |
|
返回顶楼 | |