[转]ESB调研报告v0.1(附参考文献)

原文地址:http://www.niujin.info/zblog/?p=5

一、ESB是什么及ESB要实现的核心功能

对于ESB的概念,有人把ESB看作一种具体的产品,有人把ESB看作是一种架构风格或是标准[1][12]。对于ESB的实现,有人认为应该是中心话的(如broker或hub的方式),有人认为应该是去中心化的(smart endpoint的方式)。尽管有这些分歧,但大多数人对于ESB所必须实现的核心的功能意见一致[1]: Invocation——同步和异步的传输协议的支持、服务的定位和绑定 Routing——静态和动态路由、基于内容路由、基于策略路由、基于规则路由 Mediation——适配、协议转换、服务映射 Messaging—— 消息处理、转换、增强 Process choreography——负责业务逻辑的实现 Service orchestration——服务编排 Complex event processing——事件解释、事件关联、模式适配 Other quality of service——安全、可靠传输、事务 Management——监视、audit、日志、计量、管理、BAM

二、ESB被公认要体现的特性

主要有: 操作系统、语言无关,例如应该支持.Net和Java应用的互操作; XML作为通信的语言; WS标准; 用于集成遗留系统的适配器; 基于某种标准的AAA(authorize, authenticate and audit)模型; 其余特性见[1][12]。

三、ESB和MOM的异同

有人认为MOM是ESB的一部分,有人认为ESB本身不应当包含MOM。本文倾向于后一种观点。先看一段话:   “An ESB that forces you to use yet another MOM implementation will merely add to the complexity of the architecture that must be managed.” [5]  --- Christopher Warner & Olivier Moratin (SoftwareAG市场经理) 这篇评论 [5]还说,欲使用ESB(购买商业ESB或采用开源ESB)的企业应该起码有选择自己MOM的自由。其原因是假如使用ESB的前提是更换已有的MOM,那么架构复杂度增加带来的坏处将远大于ESB集成的好处。由此得出结论,ESB自身最好不包括MOM,这样才能达到最好的效果。

四、ESB产品

开源的代表产品有ServiceMix和Mule。据不完全的了解,Mule和SM的主要区别是它们的架构:SM的架构基于JBI规范,而Mule的架构未基于JBI规范,目前来看似乎Mule的选择较为正确,其轻量级、灵活性、易用性应该要比SM好。无论选择Mule还是SM,都是可以互通的,因为Mule有JBI适配器,而SM对Mule也是完全支持的。两者详细比较见[3][4]。 商业的产品有 IBM WebSphere ESBOracle Enterprise Service BusJBoss Enterprise SOA Platform等。

Mule

Mule的主要组成部分如下:  Transport 负责消息收发和消息转换。包括Connector(消息收发)和Transformer(消息转换)。 Service 包括各种业务逻辑及路由功能。其中Component为业务逻辑,Router实现基于内容的路由及消息的过滤。 其他细节见[6][10]

ServiceMix

ServiceMix的主要组成部分如下:  NMR(Normal Message Router,标准消息路由器) 负责消息的传递。JBI环境中,传递的是标准的消息(Normalized Message),外部消息进入JBI前,需通过BC转换为标准消息。  SE(Service Engine,服务引擎) 架构的基础功能,如消息转换、服务编排、消息路由等,还实现一些其他常用的功能如rules engines, BPEL engines, XSLT engines, scripting engines, EJB continers等。  BC(Binding Component,绑定组件) 负责与外部应用进行通信,其功能类似适配器。该功能具体为(1)利用协议(如HTTP/S, JMS, FTP, SMTP, XMPP, RMI, CORBA, 文件系统等等)与外部应用进行通信;(2)对消息进行标准化处理(正反向)。  DC(Delivery channel,传送通道) 负责连接JBI组件(BCs和SEs)到NMR,提供诸如消息队列等功能。 简要说明: NMR是核心; 系统提供了常用的BC和SE,且用户可以根据需要来扩充他们; ServiceMix使用ActiveMQ提供远程、集群、可靠性和分布式故障转移等; Servicemix4实现了对OSGI的支持。 其他细节详见[6][7][8][9]。

五、参考文献

[1]      Wikipedia: Enterprise_service_bus  http://en.wikipedia.org/wiki/Enterprise_service_bus 
[2]      Wikipedia: Message-oriented middleware  http://en.wikipedia.org/wiki/Message-oriented_middleware 
[3]      How does ServiceMix compare to Mule  http://servicemix.apache.org/how-does-servicemix-compare-to-mule.html 
[4]      Mule与Servicemix比较  http://www.360doc.com/content/11/0112/10/5469190_85934647.shtml 
[6]      “Architecture of Mule and ServiceMix” ---  architecture-mule-service-mix 
[7]      SOA开源技术——Apache Servicemix简介 http://www.pusuo.net/2010-07-10/111271133.html 
[8]      Wikipedia:ServiceMix http://en.wikipedia.org/wiki/Apache_ServiceMix 
[9]      灰狐:ServiceMix http://wiki.huihoo.com/wiki/Apache_ServiceMix 
[10]  Mule ESB 学习笔记  http://www.oecp.cn/hi/wlo_o/blog/2160
[11]  企业服务总线(ESB)提供完美的集成  http://www.csairk.com/ite/appsoft/200604091750591488.htm 
[12]  理解面向服务的体系结构中企业服务总线场景和解决方案,第 1 部分  http://www.ibm.com/developerworks/cn/webservices/ws-esbscen/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值