ServiceMix企业服务总线(ESB)
ESB是集中化的、逻辑上的,具有架构层次的组件,提供在分布式异构环境中高度可扩展性、容错、消息服务等服务框架的一种实现。本文将讨论开源项目ESB ServiceMix,及其与JBI Java业务集成规范的关系。
ESB消息传输的最低要求
作为消息传输系统,一个ESB的最少需求经常被简写为TRANS,定义了作为软件实体的ESB提供的功能:
- ---Transforms 转换消息格式,针对已注册的服务提供者的需求将消息从一种格式转换到另一种格式。
- ---Routes 路由消息,将消息传输到已注册的服务,并保证传输的服务质量、服务层的特性。
- ---Augments扩展信息,在传输的内容中添加额外信息,比如关于消息请求者的元数据。在消息中添加新的通信协议内容以满足服务提供者的需求。
- ---Notifies通知消息监听者的特定消息请求
- ---Secures 安全传输,对于传输的消息增加消息认证、授权、不可否认性、机密性等机制。
JBI(Java Business Integration, Java业务集成)介绍
JBI规范及API描述了构建基于插件、基于服务设计的企业级ESB系统的平台。JBI以TRANS需求为基础,基于组件交互和规范化消息(normalized messages)而设计。
JBI是一种规范及API,提供了规范化消息服务、组件框架和管理模型,用以部署路由引擎、规则引擎、以及信息转换等集成服务。基于JBI规范的设计使用特定的基于标准的可插拔架构,此架构内包含一基于 JVM 运行时(runtime)的称为规范化消息路由器(normalized message router,NMR)的组件。
JBI架构的高层组件交互见图1

图1 JBI系统高层架构图
JBI的消息模型基于WSDL,可以很容易地映射到Web服务, HTTP, 电子邮件及JMS中。JBI可以集成旧系统、字节传输、面向文档的传输 (document-oriented transports)以及RPC(Remote Procedure Call, 远程过程调用)等。
图1中的绑定组件(binding components)同面向传输协议的关联方或关联组件通信。图1中的JBI 服务引擎组件(service engine components)提供基于内容的路由、服务整合、规则引擎、信息转换、可定制的信息增强等服务。
规范化消息
JBI系统使用“规范化”消息。消息内包含应用信息荷载、可选的附件、以及用于请求应答双方交互的元数据。消息的规范化过程是将环境相关的信息映射为中立于环境的、抽象的、标准的格式,以便在JBI中传输。所有由规范化消息路由NMR处理的消息都需规范化处理。
规范化消息由如下的三个主要部分构成:
- 1. 消息内容,亦即荷载,是符合WSDL消息格式的XML文档,不包含针对传输协议或者信息格式的编码。
- 2. 消息属性,或元数据,是消息携带的额外信息,可以包含安全信息、事务上下文信息、组件特定信息等。消息属性是消息上下文的第一部分。
- 3. 消息附件,是由消息荷载引用的,包含在一个可以解析处理附件内容的信息处理器内。附件可以是非XML信息。附件是消息上下文的第二部分。
- 本文关键词:

