yangyong 2012-02-23
ESB概述
ESB与EAI
ESB全称为EnterpriseServiceBus,译为中文就是企业服务总线,ESB属于中间件的一个软件架构,为其他的复杂软件架构提供基础服务。
EAI全称为EnterpriseApplicationIntegration,译为中文就是企业应用集成,EAI是将基于各种不同平台、用不同方案建立的异构应用集成的一种方法和技术。
ESB将会是下一代的EAI,不但比EAI更好,而且不会与供应商绑定。因此,一个好的ESB实现也会提供EAI所提供的功能。传统的EAI功能包括:业务流程监控,集成开发环境,人力工作流程的用户界面,业务流程管理,连接器,事务管理,安全,应用容器,信息服务,元数据信息库,命名和目录服务,分布式计算体系结构等。
ESB与SOA
正如EAI系统,ESB也不是一个业务相关的系统,而是一个关乎基础架构的逻辑。每个人对ESB的构成有都有不同的定义,但都有一个共同的认识,那就是ESB是SOA基础架构的一部份。然而SOA并不是一个单纯技术或产品:SOA是一个设计的模式,包括很多的切面(结构、方法、组织等),并且是与实现技术无关的。但一旦涉及到具体的实现时,这就与具体实现技术有关了,这时就要涉及到ESB。
ESB作为SOA的基础架构的部份,我们可以灵活地从实现的抽象中进行选择,如JMS,SOAP等。我们在SOA定义的基础架构功能,就成ESB的要实现的功能。由于一些历史原因,一般ESB都带有一些SOA没有特性:
Java规范
运行时消息的调解器
消息转换
安全模型转换
一个松散耦合的架构并不需要一个调解器去路由消息,但对于ESB来说这是一个显性的架构,而且对于JBI规范来说也是必需的。ESB不应该去限制SOA模型,应该看成是SOA的具体实现。
ESB/SOA的抽象视图如下:
在核心部份,一个好的SOA应该有一个好的消息架构(messaginginfrastructure,MI),而JMS就是一个符合标准的一个消息架构,但也可能有其他的需求。因此,一个好的ESB应用支持多种的实现,包括:
流程编排,一般是通过WS-BPEL
协议转换
适配器
变更管理(热部署,版本控制,生命周期管理)
服务质量(会话,故障转移)
保护质量(信息加密,安全性)
管理
ACL(AccessControlList),访问控制列表是一个重要的和免费的安全协议,如WS-Security/WS-Trust,并且这是经常会被忽略的实现。而JBossESB将会支持ACL并作为安全功能的一部份。
像ACL这类的功能很多,可以在ESB中现有服务或某个层面通过插件方式来获得这些功能。我们可看到ESB的结构是构建、部署和管理事件驱动的SOA应用和系统。