ServiceMix企业服务总线(ESB) [Type the author name] 5/29/2012
Contents
1. ESB消息传输的最低要求 .................................................................................................................. 5 2. JBI (Java Business Integration, Java业务集成)介绍 .................................................................... 5 2.1 2.2 2.2 2.3 2.4
基于WSDL的消息模型(WSDL-based Messaging Model) .................................................. 5 JBI架构的高层组件交互 ............................................................................................................ 7 规范化消息 ................................................................................................................................. 11 规范化消息路由 ......................................................................................................................... 12 JBI组件 ...................................................................................................................................... 12
服务引擎(Service Engines) ............................................................................................. 13 绑定组件(Binding Components) ..................................................................................... 13
2.4.1 2.4.2 2.5 2.6
规范化消息交换 ......................................................................................................................... 14 服务调用和消息交换模式 ......................................................................................................... 16
服务调用 ............................................................................................................................. 16 消息交换(Message Exchange) ....................................................................................... 18
2.6.1 2.6.2 2.7
四种标准MEP ........................................................................................................................... 21
In-Only消息交换模式(In-Only Message Exchange) .............................................. 22 健壮的In-Only消息交换模式(Robust In-Only Message Exchange) ................... 22 In-Out消息交换模式(In-Out Message Exchange) ................................................. 22 In Optional-Out消息交换模式(In Optional-Out Message Exchange) .................. 23
2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.9
传输通道..................................................................................................................................... 24 服务API(Service API) .............................................................................................................. 24
消息交换工厂API(Message Exchange Factory API) .................................................. 26 创建消息交换(Creating Message Exchanges) ............................................................. 26 发送消息交换(Sending Message Exchanges) ............................................................. 26 接收消息交换(Rreceiving Message Exchanges) ......................................................... 27 关闭传输通道(Closing Down a DeliveryChannel) ........................................................ 27 服务描述SPI(Service Description SPI) ......................................................................... 28 消息交换模式APIs(Message Exchange Pattern APIs) .............................................. 28
Page 2 of 67
2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
2.9.8 2.10 2.11 2.11.1 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6
消息交换(MessageExchange) ........................................................................................ 30 服务单元 ................................................................................................................................. 32 角色(Roles) ............................................................................................................................ 33 引擎开发者(Engine Developers) ........................................................................................ 33 绑定开发者(Binding Developers) ....................................................................................... 33 JBI系统提供者(JBI Environment Providers) ...................................................................... 33 J2EE?平台提供者(J2EE? Platform Providers) ..................................................................... 33 JBI应用开发者(JBI Application Developers) ...................................................................... 34 举例 ..................................................................................................................................... 34
3. 管理..................................................................................................................................................... 35 3.1 3.2 3.3
组件安装(Component Installation) ............................................................................................ 35 共享库安装(Shared-library Installation) ....................................................................... 36 部署(Deployment) ..................................................................................................................... 36
单元部署(Unit Deployment) .............................................................................................. 36 合成部署(Composite Deployment) .................................................................................... 36 合成服务元数据(Composite Service Metadata) ................................................................ 36 部署生命周期(Deployment Life Cycle) .............................................................................. 38 组件生命周期(Component Life Cycle) ............................................................................... 38 类的加载(Class Loading)..................................................................................................... 38 使用JMX(Use of Java Management Extensions) ............................................................... 39 使用Apahca Ant编写脚本(Use of the Apache Ant for Scripting) ..................................... 39
3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.4
包装(Packaging) ....................................................................................................................... 39
安装和部署描述符(Installation and Deployment Descriptors) ......................................... 39
3.4.1 3.5 3.6 3.7
安装包(Installation Packaging) ......................................................................................... 46 服务集合包(Service Assembly Packaging) ......................................................................... 47 服务单元包(Service Unit Packaging) ................................................................................. 49
4. ServiceMix 简介 ................................................................................................................................ 49 5. 在Windows中安装启动ServiceMix .............................................................................................. 61 6. 结论..................................................................................................................................................... 61 7. 笔记..................................................................................................................................................... 62
Page 3 of 67
Page 4 of 67
ESB是集中化的、逻辑上的,具有架构层次的组件,提供在分布式异构环境中高度可扩展性、容错、消息服务等服务框架的一种实现。下面将讨论开源项目ESB ServiceMix,及其与JBI Java业务集成规范的关系。
1. ESB消息传输的最低要求
作为消息传输系统,一个ESB的最少需求经常被简写为TRANS,定义了作为软件实体的ESB提供的功能:
---Transforms 转换消息格式,针对已注册的服务提供者的需求将消息从一种格式转换到另一种格式。
---Routes 路由消息,将消息传输到已注册的服务,并保证传输的服务质量、服务层的特性。
---Augments 扩展信息,在传输的内容中添加额外信息,比如关于消息请求者的元数据。在消息中添加新的通信协议内容以满足服务提供者的需求。 ---Notifies 通知消息监听者的特定消息请求
---Secures 安全传输,对于传输的消息增加消息认证、授权、不可否认性、机密性等机制。
2. JBI (Java Business Integration, Java业务集成)介绍
JBI规范及API描述了构建基于插件、基于服务设计的企业级ESB系统的平台。JBI以TRANS需求为基础,基于组件交互和规范化消息(normalized messages)而设计。
JBI是一种规范及API,提供了规范化消息服务、组件框架和管理模型,用以部署路由引擎、规则引擎、以及信息转换等集成服务。基于JBI规范的设计使用特定的基于标准的可插拔架构,此架构内包含一基于 JVM 运行时(runtime) 的称为规范化消息路由器 (normalized message router,NMR) 的组件。
2.1
基于WSDL的消息模型(WSDL-based Messaging Model)
Page 5 of 67