ESB  入门 2006 年 12 月 18 日 姚建东
分享内容 第一堂课  ESB 入门 第二堂课  ESB 进阶
目标 全面了解 ESB 了解应用整合 学习 ESB 产品 Mule 了解如何用 ESB 构建 SOA 应用 探讨 ESB 相关的一些模式、架构、软件工程相关的内容
议程 ------ 第一堂课 ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型  ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
1.1  支付宝第一代集成方案
1.2  支付宝第 1.5 代集成方案– 引入 ESB
1.3  支付宝第二代集成方案– 推广 ESB
1.3  支付宝第二代集成方案– 推广 ESB 1 、任务服务 2 、 CTU 服务 3 、论坛服务 4 、沟通服务 5 、快照服务 6 、监控服务 7 、通知服务 8 、其它
1.4  支付宝第 2.5 代集成方案– 研究、深入 提升可靠性,提升性能,提高可用性 POJO 与 ESB 的无缝接入,全面面向 SOA ,构建业务支持平台 提供更多的 SOA 模型 --- 批任务、受限资源;支持优先级、 Qos 、业务上下文(用于规则或逻辑路由,例如:付款由于其业务场景不同,而需要不同的服务支持);支持业务模板(微 BPEL 流程引擎);动态 Provider 支持 提供更多的业务逻辑组件、路由组件、格式化组件,支持 JOIN,SPLIT,AND,OR,PUB/SUB 等 易测试性,易部署,位置无关性 服务的监控、管理、统计 其它
议程 ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型  ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
2.1  应用整合的发展史 应用整合和分布式技术共同成长 基于方法调用 RFC CORBA , DCOM Web Service 基于文档的交换 TXT 文档等 XML 文档 应用中间件 MOM 、事务中间件 ESB
2.2  什么是 ESB 标准的、分布式的应用 ( 服务 ) 整合平台 是 SOA 架构的一种实现 为服务提供共享消息总线 基于 XML 文档的消息描述 支持松耦合性,位置透明性以及协议无关性 支持服务模型
2.2.1 SOA SOA  : Service-Oriented Architecture  是一种思想,一种方法学 是一种软件集成的架构 可重用的、跨平台的服务 Loosely coupled  [ 服务之间交互方式 ] 分布式
2.2.2 ESB 与 SOA ESB 采用 SOA 架构 ESB 是 SOA 思想的一种实现 支持在面向服务的体系结构  (SOA)  中虚拟化服务交互并对其进行管理   ………
2.2.3  ( 1 )什么是服务 服务具有标准的、经过正式定义的可由计算机处理的接口 – 服务是自描述的 服务应设计为可重用  命名服务时应以最大化易用性为目标  服务应具有精心选择的粒度 – 粗粒度
2.2.3  ( 2 )什么是服务 服务应是内聚而完整的  服务适应多种调用模式  服务具有无状态接口  服务应使用状态事务建模   服务具有可可管理性、可度量性
2.2.4  服务与模式、资源 模式 Façade Composite 资源 URL 系统资源 ESB Endpoint Java 流程等
2. 3 ESB 与 JBI JBI : Java(TM) Business Integration   一种 ESB 规范 (Java 领域 ) 定义了组件框架、组件描述、部署模型 定义了归一化消息模型 定义了客户端 API 接口 定义了管理模型 (JMX) ESB 是产品, JBI 是一个 Java 领域的 ESB 规范
2.3.1 JBI 的一种架构模型
议程 ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型  ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
3.1 SOA 架构 采用 SOA 架构 支持服务模型
3.2  通信功能 路由 寻址 通信技术、协议和标准(例如  JMS,MQ,HTTP  和  HTTPS ) 发布 / 订阅 响应 / 请求 Fire-and-Forget ,事件 同步和异步消息传递
3.3  集成功能 数据库 服务聚合 遗留系统和应用程序适配器 EAI  中间件的连接性 服务映射 协议转换 应用程序服务器环境(例如  J2EE  和  .NET ) 服务调用的语言接口(例如  Java  和  C/C++/C# )
3.4 服务交互   服务接口定义(例如, Web  服务描述语言( Web Services Description Language , WSDL )) 支持替代服务实现 通信和集成所需的服务消息传递模型(例如  SOAP  或企业应用程序集成  (EAI)  中间件模型) 服务目录和发现
3.5 服务质量   事务(原子事务、补偿、 Web  服务事务( WS-Transaction )) 各种确定的传递范例(例如  Web  服务可靠消息传递( WS-ReliableMessaging )或对  EAI  中间件的支持)
3.6 安全性   身份验证 授权 不可抵赖性 机密性 安全标准(例如  Kerberos  和  Web  服务安全性( WS-Security ))
3.7 服务级别   性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法
3.8 消息处理   编码的逻辑 基于内容的逻辑 消息和数据转换 有效性 中介 对象标识映射 数据压缩
3.9 管理和自治 服务预置和注册 记录、测量和监控 发现 系统管理和管理工具的集成 自监控和自管理
议程 ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型  ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
4.1  商业产品提供商 IBM  BEA  Sonic  Oracle  Cape Clear Fiorano Software  IONA  …
4.2  开源产品 Mule  Celtix (ObjectWeb/Iona ) Apache ServiceMix  Project Open ESB (Sun Microsystems Inc. ) JBoss ESB
4.2.1  Mule  架构
4.2.1 IONA Celtix  架构
4.2.3 ServiceMix  架构
4.2.4 Sun  Open ESB   架构
4.2.5  JBoss ESB   架构
议程 ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型  ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
5.1  为什么是 Mule 基于事件模型 模型简单,可全面地扩展 提供了强大的定制能力 组件丰富 [ 连接层、路由层 ] 与 Spring 的整合 最早出现的完整的 ESB 产品
5.1.1 Mule 应用架构
5.1.2 Mule 下载、安装 下载  http://mule.mulesource.org/wiki/display/MULE/Home 安装 独立部署 嵌入式
5.2.1 Mule  配置文件 顶层配置、与外部容器整合 连接配置 异常处理 组件定义 Endpoint 定义 路由与过滤 格式转换 管理 拦截器
5.2.1  (2)Mule  配置文件之对象图
5.2.2 (1)Mule  配置文件  Schema
5.2.2 (2)Mule  配置文件  Schema
5.2.2 (3)Mule  配置文件  Schema
5.2.2  (4) Mule  配置文件  Schema
5.2.3  配置文件实例 读懂  Mule  配置文件
5.2.4 Mule + Spring  嵌入模式 <mule-environment-properties embedded=&quot;true&quot; serverUrl=&quot;&quot; enableMessageEvents=&quot;false&quot;> <bean id=&quot;springMuleContainerContext&quot; class=&quot;com.alipay.common.esb.mule.MuleSpringContainerContextAdaptor&quot;  autowire=&quot;no&quot;/> <bean id=&quot;muleManager&quot; class=&quot;com.alipay.common.esb.mule.MuleSpringManager”>….</bean>
5.2.5  Configuring Properties   Standard Properties System Properties Container Properties  Map Properties List Properties   File Properties Text Properties  Factory Properties   Property Placeholders
5.2.6  Endpoint   scheme://[ host][:port ]/[endpoint name]/[ address]?[params ]      scheme://[endpoint name]/[ address]?[params ] scheme://[ address]?[params ] <endpoint name=&quot; ExceptionQueue &quot; address=&quot; jms://exception.queue &quot;/>
5.2.7  Transports AS400 DQ Provider   Ejb  Provider   Email Provider   File Provider Ftp Provider   Http Provider   Imap  Provider   Jdbc  Provider   Jms  Provider Multicast Provider WSDL Provider   Xmpp  Provider   Pop3 Provider   Quartz Provider   Rmi  Provider Servlet  Provider   Smtp  Provider   Soap Provider   Ssl  Provider   Stream Provider   Tcp  Provider Udp  Provider   Vfs  Provider   Vm  Provider
5.2.8  Message Routers
5.3 Endpoint 的背后
5.4  实例   现场实例分享。
5.5  实践  –集成方案分析 / 设计
谢谢!

Esb

  • 1.
    ESB 入门2006 年 12 月 18 日 姚建东
  • 2.
    分享内容 第一堂课 ESB 入门 第二堂课 ESB 进阶
  • 3.
    目标 全面了解 ESB了解应用整合 学习 ESB 产品 Mule 了解如何用 ESB 构建 SOA 应用 探讨 ESB 相关的一些模式、架构、软件工程相关的内容
  • 4.
    议程 ------ 第一堂课ESB 在支付宝的使用 ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型 ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
  • 5.
  • 6.
    1.2 支付宝第1.5 代集成方案– 引入 ESB
  • 7.
  • 8.
    1.3 支付宝第二代集成方案–推广 ESB 1 、任务服务 2 、 CTU 服务 3 、论坛服务 4 、沟通服务 5 、快照服务 6 、监控服务 7 、通知服务 8 、其它
  • 9.
    1.4 支付宝第2.5 代集成方案– 研究、深入 提升可靠性,提升性能,提高可用性 POJO 与 ESB 的无缝接入,全面面向 SOA ,构建业务支持平台 提供更多的 SOA 模型 --- 批任务、受限资源;支持优先级、 Qos 、业务上下文(用于规则或逻辑路由,例如:付款由于其业务场景不同,而需要不同的服务支持);支持业务模板(微 BPEL 流程引擎);动态 Provider 支持 提供更多的业务逻辑组件、路由组件、格式化组件,支持 JOIN,SPLIT,AND,OR,PUB/SUB 等 易测试性,易部署,位置无关性 服务的监控、管理、统计 其它
  • 10.
    议程 ESB 在支付宝的使用ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型 ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
  • 11.
    2.1 应用整合的发展史应用整合和分布式技术共同成长 基于方法调用 RFC CORBA , DCOM Web Service 基于文档的交换 TXT 文档等 XML 文档 应用中间件 MOM 、事务中间件 ESB
  • 12.
    2.2 什么是ESB 标准的、分布式的应用 ( 服务 ) 整合平台 是 SOA 架构的一种实现 为服务提供共享消息总线 基于 XML 文档的消息描述 支持松耦合性,位置透明性以及协议无关性 支持服务模型
  • 13.
    2.2.1 SOA SOA : Service-Oriented Architecture 是一种思想,一种方法学 是一种软件集成的架构 可重用的、跨平台的服务 Loosely coupled [ 服务之间交互方式 ] 分布式
  • 14.
    2.2.2 ESB 与SOA ESB 采用 SOA 架构 ESB 是 SOA 思想的一种实现 支持在面向服务的体系结构 (SOA) 中虚拟化服务交互并对其进行管理 ………
  • 15.
    2.2.3 (1 )什么是服务 服务具有标准的、经过正式定义的可由计算机处理的接口 – 服务是自描述的 服务应设计为可重用 命名服务时应以最大化易用性为目标 服务应具有精心选择的粒度 – 粗粒度
  • 16.
    2.2.3 (2 )什么是服务 服务应是内聚而完整的 服务适应多种调用模式 服务具有无状态接口 服务应使用状态事务建模 服务具有可可管理性、可度量性
  • 17.
    2.2.4 服务与模式、资源模式 Façade Composite 资源 URL 系统资源 ESB Endpoint Java 流程等
  • 18.
    2. 3 ESB与 JBI JBI : Java(TM) Business Integration 一种 ESB 规范 (Java 领域 ) 定义了组件框架、组件描述、部署模型 定义了归一化消息模型 定义了客户端 API 接口 定义了管理模型 (JMX) ESB 是产品, JBI 是一个 Java 领域的 ESB 规范
  • 19.
  • 20.
    议程 ESB 在支付宝的使用ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型 ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
  • 21.
    3.1 SOA 架构采用 SOA 架构 支持服务模型
  • 22.
    3.2 通信功能路由 寻址 通信技术、协议和标准(例如 JMS,MQ,HTTP 和 HTTPS ) 发布 / 订阅 响应 / 请求 Fire-and-Forget ,事件 同步和异步消息传递
  • 23.
    3.3 集成功能数据库 服务聚合 遗留系统和应用程序适配器 EAI 中间件的连接性 服务映射 协议转换 应用程序服务器环境(例如 J2EE 和 .NET ) 服务调用的语言接口(例如 Java 和 C/C++/C# )
  • 24.
    3.4 服务交互 服务接口定义(例如, Web 服务描述语言( Web Services Description Language , WSDL )) 支持替代服务实现 通信和集成所需的服务消息传递模型(例如 SOAP 或企业应用程序集成 (EAI) 中间件模型) 服务目录和发现
  • 25.
    3.5 服务质量 事务(原子事务、补偿、 Web 服务事务( WS-Transaction )) 各种确定的传递范例(例如 Web 服务可靠消息传递( WS-ReliableMessaging )或对 EAI 中间件的支持)
  • 26.
    3.6 安全性 身份验证 授权 不可抵赖性 机密性 安全标准(例如 Kerberos 和 Web 服务安全性( WS-Security ))
  • 27.
    3.7 服务级别 性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法
  • 28.
    3.8 消息处理 编码的逻辑 基于内容的逻辑 消息和数据转换 有效性 中介 对象标识映射 数据压缩
  • 29.
    3.9 管理和自治 服务预置和注册记录、测量和监控 发现 系统管理和管理工具的集成 自监控和自管理
  • 30.
    议程 ESB 在支付宝的使用ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型 ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
  • 31.
    4.1 商业产品提供商IBM BEA Sonic Oracle Cape Clear Fiorano Software IONA …
  • 32.
    4.2 开源产品Mule Celtix (ObjectWeb/Iona ) Apache ServiceMix Project Open ESB (Sun Microsystems Inc. ) JBoss ESB
  • 33.
    4.2.1 Mule 架构
  • 34.
  • 35.
  • 36.
    4.2.4 Sun Open ESB 架构
  • 37.
    4.2.5 JBossESB 架构
  • 38.
    议程 ESB 在支付宝的使用ESB 概念、与 SOA ,与 JBI 的关系 ESB 特性与功能模型 ESB 开源产品和商业产品、现场交流 ESB 产品 MULE 的入门
  • 39.
    5.1 为什么是Mule 基于事件模型 模型简单,可全面地扩展 提供了强大的定制能力 组件丰富 [ 连接层、路由层 ] 与 Spring 的整合 最早出现的完整的 ESB 产品
  • 40.
  • 41.
    5.1.2 Mule 下载、安装下载 http://mule.mulesource.org/wiki/display/MULE/Home 安装 独立部署 嵌入式
  • 42.
    5.2.1 Mule 配置文件 顶层配置、与外部容器整合 连接配置 异常处理 组件定义 Endpoint 定义 路由与过滤 格式转换 管理 拦截器
  • 43.
    5.2.1 (2)Mule 配置文件之对象图
  • 44.
    5.2.2 (1)Mule 配置文件 Schema
  • 45.
    5.2.2 (2)Mule 配置文件 Schema
  • 46.
    5.2.2 (3)Mule 配置文件 Schema
  • 47.
    5.2.2 (4)Mule 配置文件 Schema
  • 48.
    5.2.3 配置文件实例读懂 Mule 配置文件
  • 49.
    5.2.4 Mule +Spring 嵌入模式 <mule-environment-properties embedded=&quot;true&quot; serverUrl=&quot;&quot; enableMessageEvents=&quot;false&quot;> <bean id=&quot;springMuleContainerContext&quot; class=&quot;com.alipay.common.esb.mule.MuleSpringContainerContextAdaptor&quot; autowire=&quot;no&quot;/> <bean id=&quot;muleManager&quot; class=&quot;com.alipay.common.esb.mule.MuleSpringManager”>….</bean>
  • 50.
    5.2.5 ConfiguringProperties Standard Properties System Properties Container Properties Map Properties List Properties File Properties Text Properties Factory Properties Property Placeholders
  • 51.
    5.2.6 Endpoint scheme://[ host][:port ]/[endpoint name]/[ address]?[params ] scheme://[endpoint name]/[ address]?[params ] scheme://[ address]?[params ] <endpoint name=&quot; ExceptionQueue &quot; address=&quot; jms://exception.queue &quot;/>
  • 52.
    5.2.7 TransportsAS400 DQ Provider Ejb Provider Email Provider File Provider Ftp Provider Http Provider Imap Provider Jdbc Provider Jms Provider Multicast Provider WSDL Provider Xmpp Provider Pop3 Provider Quartz Provider Rmi Provider Servlet Provider Smtp Provider Soap Provider Ssl Provider Stream Provider Tcp Provider Udp Provider Vfs Provider Vm Provider
  • 53.
  • 54.
  • 55.
    5.4 实例 现场实例分享。
  • 56.
    5.5 实践 –集成方案分析 / 设计
  • 57.