企业服务总线(Enterprise service bus). 以往企业已经实现了很多服务, 构成了面向服务的架构,也就是我们常说的SOA. 服务的参与双方都必须建立1对1 的联系,让我们回顾一下SOA架构有哪些基本的要求:

  1. SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;
  2. 服务间保持松散耦合,基于开放的标准, 服务的接口描述与具体实现无关;
  3. 灵活的架构 -服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;

在SOA中,我们还需要这样一个中间层,能够帮助实现在SOA架构中不同服务之间的智能化管理。这是我们就需要企业服务总线(Enterprise service bus).

在N层结构的ESB:
ESB_jee

企业服务总线(Enterprise service bus)通讯层:

ESB3

 

ESB的主要功能是:

1.对各个服务之间消息监控与路由

2.解决各个服务组件之间通信

3.控制服务版本与部署

4.满足服务像事件处理,数据转换与映射,消息与事件查询与排序,安全或异常处理,协议转环,保证服务通讯的质量.

又有下表:

定位清晰

ESB有助于从服务消费者服务提供者之间解耦。ESB提供了一个集中的平台使任何应用程序进行相互通信,使消息发送者到信息接收者解耦。

   

协议转换

ESB应该能够无缝地集成不同传输协议应用程序如HTTP,JMS,FTP,文件批处理和SMTP,TCP。

   

消息转换

ESB提供将消息从一种格式转换为其他基于开放的标准,如XSLT和XPath。

   

消息路由

ESB一个重要的功能是决定传入消息的最终目的地,通常这归类为消息路由。

   

消息增强

ESB提供基于传入消息附加丢失数据的消息增强机制.

   

安全

身份验证,授权与加密功能,为确保传入的消息安全, 防止有人恶意使用的ESB,以满足服务提供者信息安全。

   

监控与管理

监控和管理环境可配置高性能和可靠的特性,并且还可以监视的运行时消息流.


ESB纵向图示意图:

ESB_Component_Hive

主要优点:

增加灵活性,更容易适应需求变化
由点扩展到整个企业的部署解决方案(分布式总线)
更多的配置,而不是集成代码
没有集中的规则引擎,没有集中的broker
零停机时间;使企业成为“可重构”的解决方案 
 
主要缺点:


增加系统开销
通信速度较慢,特别是对那些已经兼容的服务

 

目前开源ESB产品与项目:

  • Apache ServiceMix

  • Apache Synapse

  • JBoss ESB

  • MassTransit

  • NetKernel

  • NServiceBus

  • Petals ESB

  • Spring Integration

  • Open ESB

  • WSO2 ESB

  • Mule

  • UltraESB

  • Talend ESB

  • Shuttle Service Bus


希望对您软件架构有帮助.


作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

posted on 2013-03-23 23:27  PetterLiu  阅读(11066)  评论(3编辑  收藏  举报