【讨论】什么是ESB

我最近刚刚实施了一个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时经常用机场、证券来做样本的原因吧。

希望对大家有用。

猜你喜欢

转载自jinzhen1978.iteye.com/blog/908472
ESB
今日推荐