企业服务总线(Enterprise service bus). 以往企业已经实现了很多服务, 构成了面向服务的架构,也就是我们常说的SOA. 服务的参与双方都必须建立1对1 的联系,让我们回顾一下SOA架构有哪些基本的要求:
- SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;
- 服务间保持松散耦合,基于开放的标准, 服务的接口描述与具体实现无关;
- 灵活的架构 -服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;
在SOA中,我们还需要这样一个中间层,能够帮助实现在SOA架构中不同服务之间的智能化管理。这是我们就需要企业服务总线(Enterprise service bus).
在N层结构的ESB:
企业服务总线(Enterprise service bus)通讯层:
ESB的主要功能是:
1.对各个服务之间消息监控与路由
2.解决各个服务组件之间通信
3.控制服务版本与部署
4.满足服务像事件处理,数据转换与映射,消息与事件查询与排序,安全或异常处理,协议转环,保证服务通讯的质量.
又有下表:
定位清晰 |
ESB有助于从服务消费者服务提供者之间解耦。ESB提供了一个集中的平台使任何应用程序进行相互通信,使消息发送者到信息接收者解耦。 |
协议转换 |
ESB应该能够无缝地集成不同传输协议应用程序如HTTP,JMS,FTP,文件批处理和SMTP,TCP。 |
消息转换 |
ESB提供将消息从一种格式转换为其他基于开放的标准,如XSLT和XPath。 |
消息路由 |
ESB一个重要的功能是决定传入消息的最终目的地,通常这归类为消息路由。 |
消息增强 |
ESB提供基于传入消息附加丢失数据的消息增强机制. |
安全 |
身份验证,授权与加密功能,为确保传入的消息安全, 防止有人恶意使用的ESB,以满足服务提供者信息安全。 |
监控与管理 |
监控和管理环境可配置高性能和可靠的特性,并且还可以监视的运行时消息流. |
主要优点:
增加灵活性,更容易适应需求变化
由点扩展到整个企业的部署解决方案(分布式总线)
更多的配置,而不是集成代码
没有集中的规则引擎,没有集中的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
希望对您软件架构有帮助.