Enterprise Service Bus 技术交流ESB.ppt
,Enterprise Service Bus 技术交流,目录,SOA与ESB什么是SOASOA与ESB的关系ESB的概念什么是ESBESB功能模型ESB最简功能定义ESB常用技术与规范ESB实现Apache Synapse其它开源ESB实现,SOA 与 ESB,软件开发的演变历程,面向机器语言(Monolithic)的开发模式面向过程(Procedure)的开发模式面向对象(Object)的开发模式面向组件(Component)的开发模式面向服务(SOA)的模式,什么是SOA,Service Oriented Architecture 一种以服务为基础的架构服务边界清晰服务自治,低耦合 服务通过Schema和Contract发布,而不是Class和Type,SOA将业务应用拆分为动态的和可重用的服务,1、将应用分解为模块和可重用的函数以及服务;,2、组合服务和模块以符合业务需求;,3、重用现有的服务和模块以满足变化的业务需求;,服务之间如何交互?(1),Legacy Business Services,Legacy Applications and Data,NewBusinessServices,On DemandPROCESSServices,On DemandINFORMATIONServices,ON DemandPEOPLEServices,Partner(B2B)BusinessServices,Connectivity Medium,Control Services,Component Services,服务之间如何交互?(2),Legacy Business Services,Legacy Applications and Data,NewBusinessServices,On DemandPROCESSServices,On DemandINFORMATIONServices,ON DemandPEOPLEServices,Partner(B2B)BusinessServices,Enterprise Service Bus,Control Services,Component Services,什么是 ESB?,ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。,Enterprise Service Bus,ESB全称为Enterprise Service Bus,即企业服务总线。,一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。,ESB要解决的问题,整合,ESB功能模型,ESB功能模型定义,通信,服务交互,集成,服务质量,安全性,服务级别,消息处理,管理及自治,建模,基础架构智能,1、通信,路由寻址通信技术、协议和标准(例如 JMS、HTTP 和 HTTPS)发布/订阅响应/请求 Fire-and-Forget,事件同步和异步消息传递,2、服务交互,服务接口定义(例如,Web 服务描述语言(Web Services Description Language,WSDL)支持替代服务实现 通信和集成所需的服务消息传递模型(例如 SOAP 或企业应用程序集成(EAI)中间件模型)服务目录和发现,3、集成,数据库服务聚合 遗留系统和应用程序适配器 EAI 中间件的连接性 服务映射协议转换应用程序服务器环境(如 J2EE 和.NET)服务调用的语言接口(如 Java/C/C+/C#),4、服务质量,事务(原子事务、补偿、Web 服务事务(WS-Transaction)各种确定的传递范例(例如 Web 服务可靠消息传递(WS-ReliableMessaging)或对 EAI 中间件的支持),5、安全性,身份验证 授权不可抵赖性机密性 安全标准(例如 Kerberos 和 Web 服务安全性(WS-Security),6、服务级别,性能 吞吐量可用性 其他可以构成契约或协定的持久评估方法,7、消息处理,编码的逻辑基于内容的逻辑消息和数据转换有效性中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。对象标识映射数据压缩,8、管理和自治,服务预置和注册记录、测量和监控 服务发现 系统管理和管理工具的集成 自监控和自管理,9、建模,对象建模通用业务对象建模数据格式库B2B 集成的公共与私有模型开发和部署工具,10、基础架构智能,业务规则(EIP)策略驱动的行为,特别是对于服务级别、服务功能的安全和质量(例如 Web 服务策略(WS-Policy),最简单ESB功能构成,支持SOA的最低功能的ESB,实现原则ESB 是一种逻辑体系结构组件,它提供与 SOA 的原则保持一致的集成基础架构。SOA 原则需要使用与实现无关的的接口、强调位置透明性和可互操作性的通信协议、相对粗粒度和封装可重用功能的服务定义。ESB 可以作为分布式的异构基础架构进行实现。ESB 提供了管理服务基础架构的方法和在分布式异构环境中进行操作的功能。,最低的ESB功能,通信 提供位置透明性的路由和寻址服务 控制服务寻址和命名的管理功能 至少一种形式的消息传递范型(例如,请求/响应、发布/订阅等等)支持至少一种可以广泛使用的传输协议 集成支持服务提供的多种集成方式,比如 Java 2 连接器、Web 服务、异步通信、适配器等等服务交互 一个开放且与实现无关的服务消息传递与接口模型,它应该将应用程序代码从路由服务和传输协议中分离出来,并允许替代服务的实现。,ESB常用技术与规范,XML/SOAPWeb Service(技术与相关规范)JMS/Servlet/EJBJBI/SCAJBI SUN公司解决SOA的方案SCA BEA、IBM、Oracle等知名中间件厂商联合制定的一套符合SOA思想的规范 EIPRouting RulesMediation Rules,ESB应用,ESB在不同领域具有非常广泛的用途电信领域:电信行业OSS的应用整合电力领域:电力行业EMS的数据整合金融领域:银企间业务处理平台的流程整合电子政务:支持电子政务应用软件业务基础平台其它领域,一个轻量级的ESB实现-Apache Synapse,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,支持自治监控,消息仲裁框架,Apache Synapse 实现了通用的中介框架。可以指定一个对消息进行操作(基于它所到达的端点、或基于某种筛选)的中介序列。Synapse 的目标是支持一组有价值的、即时可用的中介。,Synapse中介,1、记录日志到 log4j2、修改 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、用户自定义中介,Synapse配置架构,Synapse代理模型,例一、Web Service代理示例,场景说明:可以将不同应用上的Web Service发布到一台Synapse主机上,例二、CBR示例,场景说明:基于内容的消息路由。匹配SOAP消息中的“To”属性值,将符合条件的请求转发到指定的端点处理。,例三、负载均衡,60 60 60。,场景说明:以round-robin的方式在三个服务端点之间实现负载均衡。,例四、Fail Over,60 60 60。,场景说明:在三个服务端点之间实现失效备援。,例五、jms/http协议转换,场景说明:用jms客户端API跨协议访问远程Web Service。,例六、可靠消息交互,场景说明:通过WS-RM在synapse与服务提供者之间实现可靠消息交互。,例七、自定义中介,场景说明:通过Synapse API自定义中介(实现org.apache.synapse.Mediator 接口)来实现对传输消息的访问和控制。,JBOSS SOA Platform,Servicemix ESB,Mule ESB,FUSE ESB,WSO2 ESB,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 平台的容错和重试机制设计,包括日志等的统一管理等;,ESB技术总结,服务的MetaData管理 传输服务 中介 多种服务集成方式 服务和事件管理支持 服务集成、交互、安全、质量、等级通信服务管理与自治,ESB 中最常提到的两个功能是消息转换和消息路由,A,