• 1. Enterprise Service Bus 技术交流
  • 2. 目录SOA与ESB 什么是SOA SOA与ESB的关系 ESB的概念 什么是ESB ESB功能模型 ESB最简功能定义 ESB常用技术与规范 ESB实现 Apache Synapse 其它开源ESB实现
  • 3. SOA 与 ESB
  • 4. 软件开发的演变历程面向机器语言(Monolithic)的开发模式 面向过程(Procedure)的开发模式 面向对象(Object)的开发模式 面向组件(Component)的开发模式 面向服务(SOA)的模式
  • 5. 什么是SOAService Oriented Architecture 一种以服务为基础的架构 服务边界清晰 服务自治,低耦合 服务通过Schema和Contract发布,而不是Class和Type
  • 6. SOA将业务应用拆分为动态的和可重用的服务 传统应用程序组件化的应用程序组合的应用程序因需求重新组合的应用程序3211、将应用分解为模块和可重用的函数以及服务;2、组合服务和模块以符合业务需求;3、重用现有的服务和模块以满足变化的业务需求;
  • 7. 服务之间如何交互?(1)Legacy Business ServicesLegacy Applications and DataNew Business ServicesOn Demand PROCESS ServicesOn Demand INFORMATION ServicesON Demand PEOPLE ServicesPartner (B2B) Business ServicesConnectivity MediumControl ServicesComponent Services
  • 8. 服务之间如何交互?(2)Legacy Business ServicesLegacy Applications and DataNew Business ServicesOn Demand PROCESS ServicesOn Demand INFORMATION ServicesON Demand PEOPLE ServicesPartner (B2B) Business ServicesEnterprise Service BusControl ServicesComponent Services
  • 9. 什么是 ESB?
  • 10. ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。Enterprise Service BusESB全称为Enterprise Service Bus,即企业服务总线。一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。
  • 11. ESB要解决的问题
  • 12. 整合
  • 13. ESB功能模型
  • 14. ESB功能模型定义通信服务交互集成服务质量安全性服务级别消息处理管理及自治建模基础架构智能
  • 15. 1、通信路由 寻址 通信技术、协议和标准(例如 JMS、HTTP 和 HTTPS) 发布/订阅 响应/请求 Fire-and-Forget,事件 同步和异步消息传递
  • 16. 2、服务交互服务接口定义(例如,Web 服务描述语言(Web Services Description Language,WSDL)) 支持替代服务实现 通信和集成所需的服务消息传递模型(例如 SOAP 或企业应用程序集成 (EAI) 中间件模型) 服务目录和发现
  • 17. 3、集成数据库 服务聚合 遗留系统和应用程序适配器 EAI 中间件的连接性 服务映射 协议转换 应用程序服务器环境(如 J2EE 和 .NET) 服务调用的语言接口(如 Java /C/C++/C#)
  • 18. 4、服务质量 事务(原子事务、补偿、Web 服务事务(WS-Transaction)) 各种确定的传递范例(例如 Web 服务可靠消息传递(WS-ReliableMessaging)或对 EAI 中间件的支持)
  • 19. 5、安全性 身份验证 授权 不可抵赖性 机密性 安全标准(例如 Kerberos 和 Web 服务安全性(WS-Security))
  • 20. 6、服务级别 性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法
  • 21. 7、消息处理 编码的逻辑 基于内容的逻辑 消息和数据转换 有效性 中介 :提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。 对象标识映射 数据压缩
  • 22. 8、管理和自治服务预置和注册 记录、测量和监控 服务发现 系统管理和管理工具的集成 自监控和自管理
  • 23. 9、建模 对象建模 通用业务对象建模 数据格式库 B2B 集成的公共与私有模型 开发和部署工具
  • 24. 10、基础架构智能 业务规则 (EIP) 策略驱动的行为,特别是对于服务级别、服务功能的安全和质量(例如 Web 服务策略(WS-Policy))
  • 25. 最简单ESB功能构成
  • 26. 支持SOA的最低功能的ESB实现原则 ESB 是一种逻辑体系结构组件,它提供与 SOA 的原则保持一致的集成基础架构。 SOA 原则需要使用与实现无关的的接口、强调位置透明性和可互操作性的通信协议、相对粗粒度和封装可重用功能的服务定义。 ESB 可以作为分布式的异构基础架构进行实现。 ESB 提供了管理服务基础架构的方法和在分布式异构环境中进行操作的功能。
  • 27. 最低的ESB功能通信 提供位置透明性的路由和寻址服务 控制服务寻址和命名的管理功能 至少一种形式的消息传递范型(例如,请求/响应、发布/订阅等等) 支持至少一种可以广泛使用的传输协议 集成 支持服务提供的多种集成方式,比如 Java 2 连接器、Web 服务、异步通信、适配器等等 服务交互 一个开放且与实现无关的服务消息传递与接口模型,它应该将应用程序代码从路由服务和传输协议中分离出来,并允许替代服务的实现。
  • 28. ESB常用技术与规范XML/SOAP Web Service(技术与相关规范) JMS/Servlet/EJB JBI /SCA JBI SUN公司解决SOA的方案 SCA BEA、IBM、Oracle等知名中间件厂商联合制定的一套符合SOA思想的规范 EIP Routing Rules Mediation Rules
  • 29. ESB应用ESB在不同领域具有非常广泛的用途 电信领域:电信行业OSS的应用整合 电力领域:电力行业EMS的数据整合 金融领域:银企间业务处理平台的流程整合 电子政务:支持电子政务应用软件业务基础平台 其它领域
  • 30. 一个轻量级的ESB实现 --Apache Synapse
  • 31. Apache Synapse特性1、基于Apache Axis2,最新1.2版本 2、支持服务注册以及寻址管理 3、支持WS-Addressing/WS-Security/WS-RM等规范 4、支持HTTP(S)/JMS/POP3/SMTP/IMAP/FIX等协议以及转换 5、消息处理:消息接收、转发、中介、路由、错误处理 6、服务质量 7、支持Load Balance和Failover,以及服务缓存 8、支持脚本中介,无需修改应用代码,通过JS等脚本来控制消息 9、JMX,支持自治监控
  • 32. 消息仲裁框架 Apache Synapse 实现了通用的中介框架。可以指定一个对消息进行操作(基于它所到达的端点、或基于某种筛选)的中介序列。Synapse 的目标是支持一组有价值的、即时可用的中介。
  • 33. Synapse中介1、记录日志到 log4j 2、修改 Header,包括 WS-Addressing Header。 实现基于内容的路由功能。 3、运行脚本,包括 JavaScript、Groovy、Ruby 和 Bean Scripting Framework (BSF) 所支持的其他脚本。E4X 支持允许 JavaScript 直接操纵 XML 消息,而不需要使用像 DOM 这样的 API。在 Ruby 中也存在类似的支持。 4、启用和终止 WS-Security 与 WS-ReliableMessaging。 可在 SOAP 版本和 XML/HTTP 之间进行切换。 5、协议转换,JMS/HTTP(S) 6、XML 模式验证。 7、发现消息中的错误或者丢弃它们。 8、用户自定义中介
  • 34. Synapse配置架构
  • 35. Synapse代理模型
  • 36. 例一、Web Service代理示例
    场景说明:可以将不同应用上的Web Service发布到一台Synapse主机上
  • 37. 例二、CBR示例
    场景说明:基于内容的消息路由。匹配SOAP消息中的“To”属性值,将符合条件的请求转发到指定的端点处理。
  • 38. 例三、负载均衡
    60
    60
    60
    。。。
    场景说明:以round-robin的方式在三个服务端点之间实现负载均衡。
  • 39. 例四、Fail Over
    60
    60
    60
    。。。
    场景说明:在三个服务端点之间实现失效备援 。
  • 40. 例五、jms/http协议转换
    场景说明:用jms客户端API跨协议访问远程Web Service。
  • 41. 例六、可靠消息交互
    场景说明:通过WS-RM在synapse与服务提供者之间实现可靠消息交互。
  • 42. 例七、自定义中介
    场景说明:通过Synapse API自定义中介(实现org.apache.synapse.Mediator 接口)来实现对传输消息的访问和控制。
  • 43. 其它开源ESB产品或项目
  • 44. JBOSS SOA Platform
  • 45. Servicemix ESB
  • 46. Mule ESB
  • 47. FUSE ESB
  • 48. WSO2 ESB
  • 49. ESB 的方案设计原则1、ESB 涉及 IT 应用环境分析,定义 ESB 与相关应用的接口模式; 2、ESB 架构概要设计,并定义架构原则; 3、ESB 相关产品选择,包括与外围系统的适配器选择和 ESB 产品选择; 4、ESB 组件模型设计,分解 ESB 的相关模块,满足 SOA 的分离关注点等架构原则; 5、ESB 运作模型设计,满足平台的非功能性需求; 6、ESB 平台的服务流设计,涉及路由、转换和映射等; 7、ESB 的同步、异步或者发布/订阅模式设计; 8、ESB 平台的接入渠道和数据接口设计,包括 XML/JMS、SOAP/HTTP、EDI/MQ 等; 9、ESB 相关的适配器设计,包括技术适配器或者自开发的适配器; 10、ESB 平台的容错和重试机制设计,包括日志等的统一管理等;
  • 50. ESB技术总结服务的MetaData管理 传输服务 中介 多种服务集成方式 服务和事件管理支持 服务集成、交互、安全、质量、等级 通信 服务管理与自治 ESB 中最常提到的两个功能是消息转换和消息路由
  • 51. AQ&Thanks!