如何实施好 企业服务esb总线架构esb

如何构建企业级的ESB? - 知乎74被浏览6528分享邀请回答13添加评论分享收藏感谢收起2添加评论分享收藏感谢收起【图文】ESB企业服务总线解决方案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ESB企业服务总线解决方案
大小:2.58MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
ESB企业服务总线简介浅析.ppt 23页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:350 &&
你可能关注的文档:
··········
··········
ESB企业服务总线简介 背景 服务范围 学习计划
议题 背景:什么是ESB ESB概述 ESB是一种在松散耦合的服务和应用之间标准的集成方式。它可以作用于: 面向服务的架构 -分布式的应用由可重用的服务组成
面向消息的架构 - 应用之间通过ESB发送和接受消息
事件驱动的架构 - 应用之间异步地产生和接收消息 背景:什么是ESB 一个可能真实的应用场景 背景:什么是ESB 一个基于ESB的系统 背景:什么是ESB ESB的架构 背景:什么是ESB ESB功能 通信。 路由,寻址,通信技术、协议和标准(例如 MQ、HTTP 和 HTTPS),发布/订阅、响应/请求,Fire-and-Forget,事件,同步和异步消息传递 集成。 数据库、服务聚合、遗留系统和应用程序适配器、EAI 中间件的连接性、服务映射、协议转换、应用程序服务器环境(例如 J2EE 和 .NET)、服务调用的语言接口(例如 Java 和 C/C++/C#) 服务交互。 服务接口定义(例如,Web 服务描述语言(Web Services Description Language,WSDL)) 支持替代服务实现; 通信和集成所需的服务消息传递模型(例如 SOAP 或企业应用程序集成(EAI) 中间件模型) 服务目录和发现 背景:什么是ESB ESB功能 服务质量 事务(原子事务、补偿、Web 服务事务(WS-Transaction)) 各种确定的传递范例(例如 Web 服务可靠消息传递(WS-ReliableMessaging)或对 EAI 中间件的支持) 安全性 身份验证 授权 不可抵赖性 机密性 安全标准(例如 Kerberos和 Web 服务安全性(WS-Security)) 消息处理 编码的逻辑 基于内容的逻辑 消息和数据转换 有效性 中介 对象标识映射
背景:什么是ESB ESB功能 服务级别 性能、吞吐量、可用性、其他可以构成契约或协定的持久评、估方法 管理和自治 服务预置和注册 记录、测量和监控 发现 系统管理和管理工具的集成、自监控和自管理 建模 对象建模 通用业务对象建模 数据格式库 B2B 集成的公共与私有模型 开发和部署工具 基础架构智能 业务规则 策略驱动的行为,特别是对于服务级别、服务功能的安全和质量(例如 Web 服务策略(WS-Policy)) 模式识别
背景:什么是ESB 应用架构的变化 背景:整合方法 整合的闭环,包括: 建模 改造 集成 交互 管理 加速 背景:整合方法 建模 通过建模来设计、模拟商务流程并对商务流程的整合制定规划。 通过建模可以做到有针对地优化商务流程,使之更能灵活、迅捷地应对市场竞争; 整合要有效利用现有资源,最大程度地保护已有投资; 模型的构建可能要跨越不同领域,包括人力、不同合作者和不同的应用系统; 在模型中对商务流程的运行性能进行有针对地考察,提前发现商务流程中的可能存在的 问题和瓶颈;最大程度地提高商务流程的运作效能; 在建模期间,做出对投资回报的分析; 构造出关键评估指标以用于在实际生产运作中对商务流程的监测; 以模型控制和驱动业务整合的规划、生产、实施。 背景:整合方法 改造 通过改造现有IT 系统获得新的商业价值。 通过改造现有IT 系统为企业发现新的商业价值; 将原有关键业务系统进行改造,使之成为可复用、可共享的关键业务组建,从而更有效 地发挥其商业价值; 将传统应用系统和新技术应用系统集成为一个更为有效的业务承载平台,以发挥各种技 术体系的优势而规避其劣势; 在业务整合过程中要有效地依托企业现有的知识储备来提高企业生产率。 背景:整合方法 集成 将人力资源、业务流程、应用平台、支撑系统和数据资源集成为一个整体 将业务信息与具体的平台、软件架构和网络协议的有效分离,做到业务信息的技术无关性; 使用行业标准协议进行贸易伙伴之间的信息交互,如RosettaNet, AS2, XML,以及标准传输协议HTTP(S),FTP 和SMTP 等; 改造数据以适应业务分析和数据交换; 引入新的基于WEB 服务的复合应用以扩展和集成现有IT 资产 在原有模块组件和功能单元之上构建新的基于标准的、可复用的应用系统和服务; 在已构造的各种服务单元之上构造基于交互和流程的新应用; 使人力与系统共同参与的业务流程自动化; 做到多个参与者、多个平台、多个应用系统以及多个组织间的信息能够很容易地实时交换; 背景:整合方法 交互 为人力、数据、应用和流程的随时随地随设备的交互提供安全和单一接口的服务 要做到随时随地能够安全可靠、方便快捷、个性化地访问各种应用、流程和人力资源; 依照商务优先级进行网站门户的客户化改造,提高其灵活性; 要做到有效地管理和延伸超越组织机构边界的综合的协作能力; 背景:整合方
正在加载中,请稍后...企业服务总线实现模式
企业服务总线实现模式
作者:Victor Grund,Chuck Rexroad 来源:ibm
本文将介绍选择 ESB 的技术标准,说明
IBM 产品可以如何实现 ESB,然后将对一些常见的 ESB 实现模式进行总结。本文将讨论三个主要 IBM
ESB 产品(WebSphere Message Broker、WebSphere ESB 和 WebSphere
DataPower SOA Appliances)和支持或扩展 ESB 模式的产品(WebSphere
MQ、WebSphere Service Registry and Repository、WebSphere
Transformation Extender、WebSphere Adapters、WebSphere
Process Server、WebSphere Business Services Fabric 和
IBM Tivoli Composite Application Management for SOA)。本文还将详细介绍两个
ESB 实现案例研究。
面向服务的体系结构(Service Oriented Architecture,SOA)提供了灵活、可扩展且可组合的方法来重用及扩展现有应用程序和构造新应用程序。SOA
最为重要的特征是其灵活性,其中将业务流程和底层 IT 基础设施作为安全的标准化服务对待,可供重用和组装,以处理不断变化的业务需求。SOA
中的服务具有定义良好的接口,此接口由消息接收和发送的一组消息定义,而且接口的实现在部署之后将绑定到所记录的服务端口。
企业服务总线(Enterprise Service Bus,ESB)是一种体系结构模式,支持通信各方间的服务交互的虚拟化和管理。它充当
SOA 中服务提供者和请求者之间的连接服务的中间层。它是一个灵活的连接框架,可促进可靠而安全的系统集成,并同时减少应用程序接口的数量、大小和复杂度。
其中的服务不直接交互,而是通过服务连接框架 (ESB) 进行通信;此框架提供实现和扩展
SOA 核心定义的虚拟化和管理功能。ESB 模式提供以下方面的虚拟化:
位置和标识:ESB 标识消息并在交互服务之间路由这些消息。这些服务不需要知道通信中的其他方的位置或标识。例如,请求方不需要知道多个提供者中是否有提供者可以处理请求。您可以向正在工作的
ESB 添加其他服务提供者,从而允许将消息路由到这些提供者,而且不会对请求者造成干扰。
通信协议:ESB 允许消息在服务请求者和服务提供者之间来回传递的过程中跨不同的传输协议或交互样式中传递。例如,以
SOAP/HTTP 格式表示的请求可能送到仅接收 JMS 输入的提供者。
接口:服务的请求者和提供者不需要就单一接口达成一致。ESB
可以对请求者发出的消息进行转换和充实来得到提供者预期的格式,从而协调差异。
您可以使用各种中间件产品(硬件和软件)、编程模型和交互样式实现 ESB
模式。ESB:
标识消息并在应用程序和服务间路由这些消息
允许消息在服务请求者和服务提供者之间来回传递的过程中跨不同的传输协议传递
在请求者和服务之间转换消息格式
识别和区分不同源之间的业务事件
提供可靠而安全的通信
创建基于可插入组件的可扩展体系结构
提供智能路由和独立于位置的处理
通过元数据管理消息及其格式的描述和定义
集成所有类型的资产,以满足您企业的需求
很多 ESB 实现都利用了服务连接性标准,如 XML 和 Web 服务,此类标准封装了行业对
ESB 定义的统一认识。不过没有必要将 ESB 限制为仅使用这些标准。可以对 ESB 体系结构模式进行扩展,以支持现有
IT 投资,此类投资包括大型机资产、打包应用程序、传感器和设备以及文件和不基于任何公用标准的自定义协议。ESB
应该支持企业的所有连接性需求。
ESB 应该支持不同类型的服务交互:单向消息及请求/响应、异步调用及同步调用和发布/订阅模型以及复杂事件处理(在其中可能会观察或使用一系列事件来产生一个事件,将其作为系列事件中的关系的结果)。
建立 ESB 是组织中建立 SOA 的过程中一项十分关键的基础投资。组织可通过其实现以下目标:
简化:减少接口的数量、大小和复杂度。
减少风险和成本:提高 IT 对业务需求变更的响应能力。
促进重用:提高数据和业务逻辑的可用性,使应用程序更易于启用服务。
支持动态、实时、事件驱动的 SOA:替代了呆板、无响应能力或采用批处理方式更新的
SOA 和任何 IT 活动一样,都依赖于技术、人员和流程。ESB 采用过程中的一项关键的成功因素是,ESB
技术必须能够在治理框架内进行管理,以便为组织带来价值。
很多组织发现,SOA 卓越中心(SOA Center of Excellence,COE)价值很大,能促进
SOA 技术的采用。COE 必须涵盖整个组织内的团队,以分享经验、提供培训、提出流程改进建议和确保 SOA
环境的成熟度。COE 需要帮助 SOA 治理委员会处理 SOA 出现的问题,如版本控制、服务共享和安全性等。SOA
COE 是整个组织范围内的 IT 团队,负责指导 SOA 远景和战略所确定的战略共享 IT 解决方案的
IT 投资、涉及决策和实现。COE 可帮助处理一系列问题,如:
在组织内为 SOA 提供信息传播机制
在定义 SOA 治理和管理流程方面为 SOA 治理委员会提供支持
实现 SOA 治理和管理流程
充当思想领袖并进行远景规划:充当 SOA 治理和管理流程的思想带头人
提供专业 SOA 技能和资源
演示资产收集过程中的知识管理
进行整个 IT 团队内及与组织的其他部门的沟通
下面以图形方式说明了 COE 所充当的很多角色。
为了完全支持全面的 SOA 中所需的各种集成模式(如请求/响应、发布/订阅和事件等),ESB
应该最好能在一个基础设施中支持三个主要企业集成样式:
SOA,其中应用程序通过具有定义良好的显式接口的可重用服务进行通信。面向服务的交互将充分利用底层消息传递和事件通信模型。
消息驱动的体系结构,其中应用程序通过 ESB 发送消息,以调用其他应用程序。
事件驱动的体系结构,其中应用程序以彼此独立的方式生成和使用消息。
使用者可以采用不同的方式实现服务调用。从使用者的角度而言,差异在于:
同步:使用者使用单线程来调用服务;线程发送请求,会在服务运行时阻塞,等待响应。
异步:使用者使用两个线程来调用服务;一个线程发送请求,然后另一个线程侦听并接收响应。
发布/订阅:服务将消息发布到特定的主题。多个服务(订阅者)可以订阅此主题并接收发布的消息。
对于单个服务,ESB 可以提供这些调用模型的任意组合,让使用者选择首选调用模型。
交互样式可能影响 ESB 实现。IBM& WebSphere&
Message Broker 特别适合基本流范式为异步或伪异步方式的体系结构。
某些情况可能需要 ESB 在消息通过其中时维护状态。从最后适用的消息的上下文信息中选择特定的服务端点就是这方面的简单示例。而在更为复杂的示例中,可以通过检测涉及上下文敏感的消息和事件组合(语义上下文、时间上下文、空间-时间上下文)的复杂情况来扩展
ESB 范式。在应用到来自多个事件源的输入处理时,此功能极为强大:从不同上下文中的业务、应用程序或基础设施的角度而言均是如此。例如,此类场景可能涉及到服务水平协议
(Service Level Agreement) 警报和适用于安全、财务、银行和保险行业的遵从性检查。
硬件 ESB 实现通常并不支持有状态交互,这就使得有状态性成为了软件
ESB 实现的一个标准。WebSphere Message Broker 以独特的方式在产品中直接实现了复杂的消息处理,使其最适合需要此功能的用例。
端点是通过 ESB 交互的使用者和服务。
采用标准技术和协议(如 Web 服务)的端点在 ESB 技术选择方面提供了最大的灵活性。不过,将端点限制为存在大量遗留投资的标准的做法经常不实际或不经济高效。类似地,虽然可以使用专用
API 集成打包应用程序,但将这个集成工作委托给中介供应商完成的做法通常很有用。为了处理这些顾虑,出现了能极大简化集成的适配器。
适配器的使用会对 ESB 产品选择造成影响,因为适配器需要软件运行时(在硬件
ESB 实现上并不支持适配器),而且各种适配器的先决条件各不相同。
在一项新兴的 ESB 技术中采用了动态端点选择,其选择以服务器使用率和运行状况等基于代理的统计数据为基础。在某些
IBM ESB 产品通过与 IBM Tivoli Composite Application Manager
的集成提供了对此的现成支持。
ESB 产品具有不同的可伸缩性特征。通常,基于硬件的实现可以很好地扩展,而且具有很好的行业标准数据格式支持。不过,他们并不提供软件实现的通用性。WebSphere
Message Broker 性能优良,提供了丰富的 ESB 功能,而且可以使用自定义组件和适配器进行扩展。WebSphere
ESB 具有丰富的行业标准格式、Java 和 Web Services 标准支持,可以使用自定义组件和适配器进行扩展。
ESB 产品具有不同的操作特征,它们通过不同的机制和体系结构规模(例如,应用服务区集群和操作系统级别的集群)来实现可伸缩性和高可用性。必须对此加以考虑,而且所得到的解决方案体系结构必须在
RAS 考虑事项和现有预算、组织内的技能以及操作复杂性方面求得平衡。
ESB 产品在不采用自定义编程的情况下处理中介的能力方面存在差异。最值得注意的是,WebSphere
Message Broker 提供了对各种标准数据格式(如 ACORD、SWIFT 和 COBOL Copybook)的广泛支持。如果数据格式是
XML 和 Web Services,则最适合使用 Websphere DataPower& SOA
Appliances,此产品可提供非常高的性能。
很多产品都可以用于创建企业服务总线(Enterprise Service
Bus,ESB)。IBM 提供了创建 ESB 的多个选项。这就允许客户根据其具体的需求选择 ESB 技术。在很多大型组织中,由于地理位置、技术或其他原因,可能会使用多项
ESB 技术来创建混合 ESB。当两个大型部门各自以独立的方式开始 SOA 然后又发现需要彼此进行互操作时,可能采用混合
IBM 的三个主要 ESB 产品是 WebSphere Message
Broker、WebSphere ESB 和 WebSphere DataPower SOA Appliances。
WebSphere Message Broker 提供了很多客户用于创建其
ESB(或混合解决方案中的中央 ESB)的功能。WebSphere Message Broker 源自
WebSphere MQ 消息传递领域,特别适合 MQ 消息传递的环境。该产品提供 WSDL 和其他消息格式的接口定义,通过消息流提供中介功能,并支持各种通信格式,包括
WMQ 和 HTTP。WebSphere Message Broker 还基于发布/订阅交互和托管主题空间提供内容。
WebSphere Message Broker 支持各种服务交互端点的中介模式实现。它支持各种行业标准消息集(当然,只有其中一部分使用
XML 编码),支持添加对其他用户定义的消息格式的支持。以下典型客户需求非常适合使用 WebSphere
Message Broker 解决方案加以处理:
ACORD、SWIFT 或 COBOL Copybook 标准格式
采用 XML 格式的数据
符合 WS-* 标准
WebSphere MQ 消息传递
复杂事件处理
WebSphere Message Broker 提供了多个 ESB
连接选项和任意格式间的数据转换。通过这样,遗留应用程序和不符合标准的应用程序就可以连接到 ESB。
WebSphere ESB 是 ESB 的 J2EE 实例化成果。WebSphere
ESB 在 IBM WebSphere Application Server 内的 J2EE 容器中运行。该产品非常适合基于
J2EE 和 WS-* 标准的应用程序,特别是只需要与其他应用服务器通信的应用程序。另外,该产品可作为进入
SOA 世界的敲门砖,允许将基本 Web 服务作为进入更为可靠的 SOA 环境的垫脚石加以利用。
WebSphere ESB 提供基于标准的 Web Services
连接性、JMS 消息传递和面向服务的集成。用于端到端和发布/订阅消息传递的 JMS 应用程序和面向 JAX-RPC
服务的应用程序可以直接连接到 WebSphere ESB,或者可以通过各种传输协议(包括 WMQ、SOAP/HTTP
和 SOAP/JMS)将消息交付到 WebSphere ESB。WebSphere ESB 实现了 Web
服务网关,此网关可以在基于 SOAP/HTTP 和 SOAP/JMS 的应用程序之间进行中介。最后,它还提供了统一描述、发现和集成(Universal
Description, Discovery and Integration,UDDI)的实现。以下典型客户需求非常适合使用
WebSphere ESB 解决方案加以处理:
Web Services 接口
WebSphere DataPower SOA Appliance 是同时包含硬件和软件的产品,提供了大量的重要功能:XML
加速、安全措施执行和 ESB 功能。DataPower 具有多个重要特征:
经过优化的硬件、固件和嵌入式操作系统
确保配置锁定的高级保证措施
减少安全漏洞
加密密钥的硬件存储和锁定的审核日志
没有硬盘、CD ROM 或 USB 端口
篡改防护机箱,在机箱打开的情况下机器将变为不可用状态
降低操作复杂性,真正的 SOA 设备。通过 DataPower,能以最快的速度实现
SOA 入门,而且同时还能提供增强的安全环境。
以下典型客户需求非常适合使用 DataPower 解决方案加以处理:
XML 防火墙、解析和验证
基于内容的路由
协议桥接(HTTP、WebSphere MQ 客户机、FTP、ODBC
除了上面讨论的 ESB 技术外,以下补充产品还可以进一步加快或扩展 ESB
为多种不同平台提供可靠消息。很多公司都使用 WebSphere MQ
作为消息传递中枢。
提供了集成的服务元数据存储库来治理服务和管理服务生命周期。它可促进服务可见性、一致性,还将减少
SOA 中的服务冗余。
提供了通用转换功能,非常适合满足极为复杂的需求或快速变化的需求,如
是外接程序,可帮助为打包应用程序或其他遗留资产启用服务,以便参与到
SOA 中来。其中提供的适配器允许将各种遗留信息系统和技术包含到 ESB 中来。
提供流程工作流功能,并包括 WebSphere
ESB。有些情况需要对来自很多个系统的服务调用和响应进行协调,而此解决方案提供了在此情况下编排复杂
ESB 交互的功能。
是专门针对 SOA 环境的 Tivoli 监视产品。通过 IBM Tivoli Composite
Application Manager for SOA,可充分利用现有系统管理工具,提供了 SOA
环境的全面操作视图。
是用于进行组合业务服务的建模、组装、部署、管理和治理的端到端
SOA 平台。WebSphere Business Services Fabric 可帮助创建业务级别的服务,以供组装为扩展的跨企业业务流程和解决方案,而且可以基于服务请求的业务上下文对这些流程和解决方案进行动态个性化和交付。
WebSphere Service Registry and Repository
提供了基本 UDDI 服务目录所不提供的很多功能。事实上,很多组织发现,由于 UDDI 规范尚不完全明确,不同提供商实现该规范的方式也不一样。WebSphere
Service Registry and Repository 不仅提供了关于存在哪些服务的注册中心,而且还提供了工具来向
ESB 提供这些服务和允许开发人员搜索现有服务供使用。WebSphere Service Registry
and Repository 包括:
包含关于服务的信息(如服务接口、其操作及参数)的服务注册中心
具有可靠框架和适合各种服务使用方法特征的可扩展性的元数据存储库
WebSphere Service Registry and Repository
几乎可以和 SOA 生命周期的所有部分进行交互:
通过标准资产管理解决方案与服务开发生命周期交互
在进行服务的变更和发布管理流程的过程中跟踪服务生命周期阶段
提供对运行时工具的优化访问
通过操作系统管理实用工具共享关于服务和服务元数据的信息
WebSphere Service Registry and Repository
提供关于何时何人对哪个服务进行了何种操作的信息。此功能将在下面的案例研究中进行讨论。
下面部分将介绍核心 ESB 中介功能的通用语言。这些模式可以非常方便地帮助在上下文中说明
ESB,可以用于表述与最佳实践和所得到的经验教训相符的可重复中介模式。ESB 用例可以表示为这些核心模式的组装。
支持服务请求者使用各种交互协议或 API(如 SOAP/HTTP、JMS
和 MQ Integrator (MQI))来发送其消息。
将请求转换为目标服务提供者的格式。
可以在交互的请求者和/或提供者端或两者间的任何位置应用。
此模式的中介通常在格式和彼此关系有明确定义的情况下自动创建。
在不更改上下文信息的情况下更新消息的有效负载
转换子模式
消息有效负载从一个格式(模式)转换为另一个格式,从而将请求者的消息定义与提供者的消息定义匹配
包括“封装和取消封装”,即将采用一个网络格式的消息放入另一个网络传输所需的格式信封或对应的删除信封的过程。
充实子模式
通过添加来自外部数据源的信息(如中介的自定义参数或数据库查询)来更新消息有效负载
路由器 (Router)
更改消息的既定路由,在与中介关联的服务提供者之间进行选择
示例:从金牌客户到备用的高级 SLA 提供者间
查询 ESB 注册中心,以发现匹配请求者需求的一组服务提供者,选择其中一个,然后将消息路由到该提供者
路由模式的增强:
可能的服务提供者集不是在中介预先配置的
提供者匹配请求者的消息格式、所需的 QOS
或从中介到可能的提供者所支持的协议
示例:数据中心故障转移场景。在不更新每个中介的配置的情况下将数据中心上线,注册服务,将通信流量路由到对应服务
将消息分发到一组相关方,通常由订阅者的兴趣概要驱动。
用于在消息通过 ESB 的规程中观察消息,不过不会以任何方式更改这些消息。示例:
监视服务级别
提供用于进行问题确定的数据
记录业务级别事件(超过特定收益值的交易)
记录消息供审核
相关(复杂事件处理)
从消息或事件流派生复杂事件。包含模式标识规则和响应模式发现规则,例如,通过生成从触发事件流的内容派生的复杂事件。
可以对这些基本模式进行聚合,以得到更为复杂的模式。
规范适配器
所有各方使用的消息和业务对象集规范化为规范格式。规范适配器模式可以将端点的本机总线附加协议转换为标准协议,对有效负载进行规范化并在交付时进行反向转换。此模式是协议切换和转换模式聚合后得到的。
转换、记录、路由
这是一个常见的 ESB 聚合模式。转换传入消息(转换),对其进行记录(监视)并路由到相应的端点。
代理或网关模式
路由或协议切换模式的变体,其中将对服务端点进行映射,并可能提供安全功能(授权和访问控制)和日志记录或审核功能。
可能包含转换和监视中介,以提供加密和日志记录或审核。还可能会采用一对多关系对消息进行聚合和取消聚合。
示例:充当多个服务的单个接触点并隐藏“内部”服务的服务门户
这些模式从更为现实的角度说明了如何使用 ESB 来实现所需的丰富服务虚拟化。在很多大型组织或没有
SOA 合作伙伴的组织中,经常会需要多个 ESB。很多原因都会导致此需求的出现,包括:
可说明性/可审核性
以下模式供演示之用,绝不能视为全面的叙述。其中很多模式都可以彼此进行结合,具体取决于特定项目的需求。
全局 ESB 为所有服务请求者提供对一个注册中心的访问,每个服务对每个服务请求者都可见。此模式虽然可能适合小型系统测试环境,但可能不适合在生产环境中使用。这个适用性讨论所指的是没有其他
ESB 的全局 ESB,也就是说采用的是非混合方法。混合方法将在此部分稍后进行讨论。
在集中管理但地理位置分散的整个异类环境中,所有服务共享一个命名空间,而且每个服务提供者对每个服务请求者都可见。
供所有服务可能适用于整个组织的部门或小型企业使用。
对于全局 ESB 的情况,有两个主要 ESB 技术选项:WebSphere
Message Broker 和 WebSphere ESB。WebSphere ESB 是首选技术,其整个环境都基于
J2EE 和相关标准。存在与非 J2EE 系统的复杂转换和交互时,WebSphere Message Broker
可能更为适用。大型组织可能会发现同时运行这两个产品的做法更为合适,在此方法中按照下一个示例联合 ESB
中所讨论的方式根据消息类型和目的地对消息进行路由。
ESB 网关模式提供内部和外部域边界间的受控制的安全服务交互。
ESB 网关模式经常使用 DataPower 设备进行实例化,因为这样可以在提供所需的网关功能之外提供
XML 防火墙。DataPower 非常适合用于网络边界,因为它使用的是嵌入式操作系统和软件实现,因此能减少设置操作系统环境所固有的风险。
联合 ESB 提供了使用多个服务注册中心和管理域的功能,并同时将异类注册中心映射为服务联合集。联合
ESB 可促进采用多个 ESB 实现时的服务交互。联合 ESB 经常用于提供适用于整个企业的服务子集。
多个从 ESB 联合到一个主 ESB 中。
服务使用者和提供者连接到主 ESB 或从 ESB,以访问整个网络中的服务。
供希望将一系列具有适度自主控制的部门联合到一个监管部门之下的组织使用。
对于联合 ESB,“核心”ESB 可能为 WebSphere Message
Broker,而非核心 ESB 可以为 WebSphere ESB,或者对于小型远程办公室的情况,可以使用
DataPower 设备。在此模式中,每个站点都有自己的服务注册中心。在联合 ESB 模式中,最佳实践是在网络边界使用
DataPower 设备,以执行授权和身份验证以及在提交给内部系统前解析和验证 XML。通过这样,DataPower
设备可以加快事务处理速度和降低 ESB 服务器的 CPU 使用率。
代理 ESB 用于在以下情况下支持多个注册中心,即服务子集适用于整个组织,但其中不存在单个服务的多个实现。
对选择性地将请求者或提供者向其他 ESB 域中的合作伙伴公开的服务进行桥接
每个 ESB 管理自己的命名空间。
ESB 间的服务交互通过实现桥接服务的公用代理来加以促进。
如果各个部门开发和管理自己的服务,但共享其中的部分服务,或选择性地访问整个企业中提供的服务,则可使用此模式。
代理 ESB 模式与联合 ESB 模式非常相似,不过代理 ESB 充当执行点和服务路由器。
JBI 标准 (JSR 208) 的讨论中经常提到联合 ESB。到目前为止,IBM
已经放弃了 JBI 规范,因为此规范并没有在客户已经能实现的工作之上有足够的发展。很多技术和开放规范都提供了更为有竞争力的互操作性和更好的组件组合机制。IBM
首先关注的是支持最广泛的产品、应用程序和现有业务资产集成。
ABC Hotel 是一家全球性的酒店与休闲企业。该公司拥有多个品牌,提供豪华与高档全面服务的酒店。这包括超过
900 家全资、托管或特许经营酒店,房间总数超过 230,000 间。
ABC 开始了一个持续多年的大型 IT 项目,将其基于大型机的大型独立中央预订系统(Central
Reservations System,CRS)替换为作为分布式 J2EE 服务实现的系统。进行此项目的推动因素是要减少成本(替换大型机)和提高业务灵活性。该项目被普遍认为是将采用
SOA 的概念和理论的项目。服务要部署在两个分布在不同地方的数据中心中。将为各个服务部署多个实例,以促进系统吞吐能力和可用性。
值得注意的是,CRS 项目最初并没有考虑通用 ESB 框架。随着项目的逐渐成熟,服务集成的复杂性达到了不可接受的程度。这给架构师、开发人员和操作带来了极大的负担,成为了成功完成
CRS 项目的阻碍因素。因此作出了进行重构来包含 ESB 的决策。ABC 进行了相关评估,以选择合适的行动方案。
向 IBM 提出的 ESB 需求的摘要:
请求路由和工作负载管理:在基础设施内为各个服务部署多个副本,以提高可靠性、可服务性和可用性。ESB
应该将客户机请求路由到所请求服务相应的版本和实例。ESB 还应该进行一些工作负载管理的部署,将请求分发到相同的服务实例。这可以为简单的负载分布算法,但该公司对更为主动性的端点驱动的负载工作负载管理有着很强烈的兴趣。
注册中心集成:ABC 采用了基于 UDDI 的服务注册中心处理构建时服务目录。没有部署更为主动的运行时服务注册中心,但支持此类注册中心的需求得到了公司的认可。
中介:ABC 希望使用 ESB 来在客户机和服务之间进行中介。服务数据以
WSDL / XML 格式表示,因此不需要处理更为深奥的数据格式。消息验证(WS-I 和 XSD)以及对性能/转换加速的支持是主要的推动因素。
事务管理:ABC 具有某些特殊的用例,此类用户将需要对提交的服务请求进行补偿和回滚(组合服务中的分布式事务支持)。他们需要支持基于规则、流程驱动的原子事务。
服务编排和工作流:复杂工作流支持是服务交互的小子集的一项需求。最好在这些情况下有
BPEL 支持。最好还支持业务状态机、交互的计划和安排、事件相关和涉及人工交互的工作流。
能够促进与后端系统的集成:希望有直接与 Siebel
及其他后端系统集成的能力。
高性能/低延迟:ESB 应该对总体性能和延迟的负面影响最小。
监视、管理、维护:总的说来,在服务级别监视、收集标准和自定义标准、错误检查、根源分享、报告和历史分析方面存在各种广泛的需求。自动操作员警告和通知工具非常关键。
安全性:需要与 Tivoli Access Manager、LDAP
和其他第三方安全产品实现集成。凭据和密钥管理功能、基于标准的身份验证、访问控制、加密/解密、SSL
加速、Sarbanes-Oxley (SOX) 控制和 DMZ 部署的适合性都需要考虑。
SDLC:ABC 使用基于 Eclipse 的 Rational
Application Developer 和 Rational Software Architect。最好能使用适合其现有环境的
ESB 开发工具。
快速部署:ABC 在选择重构来包含 ESB 之前已经进行了大量的投资。部署的成本和速度是非常关键的考虑事项。
减少操作复杂性:减少风险和复杂性是推动 ABC 进行重构以获得基于
ESB 的体系结构的重要因素。ABC 非常希望得到了高效且复杂度低的解决方案。
调用后端服务的业务合作伙伴
ABC 定期与业务合作伙伴通信,以获得房间可用性和预订请求。需要使用
DMZ 部署模式实现后端服务调用的虚拟化。必须对客户进行身份验证和授权。另外,必须监视和记录所有活动。
将来可能会需要按客户机、请求类型或其他信息对通信流量进行划分。
调用后端服务的酒店属性
各个属性都具有本地属性管理系统(Property Management
System,PMS),而这些系统必须通过接口与 CRS 连接。一个场景是更新房间和清算可租房间总量的属性。CRS
必须注意可租房间总量的变化。属性使用 XML over MQ 通过接口与 CRS 连接,而 CRS 服务可能使用其他连接协议(如
SOAP/HTTP)部署。
类似地,可以对此模式进行扩展,添加按端点使用率统计数据进行路由的能力。
上面两个用例一起处理了所有 ESB 通信流量中的大部分流量。
复杂恢复错误场景
在此场景中,假定在从属性满足客户机请求时在组合服务交互中出现错误。从错误恢复非常重要,需要可能包括人工任务的工作流。核心
ESB 模式并不会更改,不过执行体系结构将包括额外的组件,以支持这个功能。
包含后端集成的复杂工作流
在此场景中,一个创建客户的请求进入了首选客户跟踪系统。业务用户希望将此信息中的各个部分输入到作为中介的一部分
Siebel 中。 ESB 充当现有服务的标准中介,而同时还包括对 ISV 后端系统的更新。这里适用传输-监视-路由
ESB 聚合模式,但执行体系结构将利用多个 IT 组件来处理服务请求。
IBM 建议采用混合 ESB 体系结构,其中既包括硬件 ESB 实现,也包括软件
ESB 实现。每个实现的 ESB 功能方面存在不同的优缺点。
经过优化,可提供很高的性能,而且处理延迟非常小
配置、部署和操作最简单
安全,篡改防护
从通用平台分流开销大的处理负载
应用程序承载支持、工作流支持和复杂中介
通过适配器进行应用程序集成
支持业务活动监视
IBM 希望广大客户都部署可充分利用这两个方法的优势的混合体系结构。在混合体系结构中增加了
SOA 服务注册中心和管理功能。
DataPower XI50(硬件 ESB)
WebSphere Process Server(包括 WebSphere
WebSphere Business Integration Adapter(与后端系统集成)
IBM Tivoli Composite Application
Management for SOA(服务监视和管理)
WebSphere Service Registry and Repository(服务注册中心)
以下系统上下文关系图说明了这些组件的交互。
DataPower XI50 在此体系结构中充当两个角色:服务网关(在
DMZ 中)和通用硬件 ESB(在受信任区域中)。需要软件 ESB 实现的任务(如使用 Siebel Adapter
或涉及人工交互的复杂错误恢复)分流到 WebSphere Process Server(其中包括核心组件
WebSphere ESB)。
DataPower 处理 ABC 的大部分 ESB 通信请求,可保证非常高的性能。WebSphere
Process Server 和 WebSphere ESB 对 DataPower 的功能进行补充,以支持在体系结构中实现最大的灵活性。
IBM Tivoli Composite Application Management
产品支持对 ESB 及与其交互的组件进行监视和管理。监视代理收集的信息可以支持复杂的 ESB 充实和路由模式,如动态服务选择(根据监视代理收集的承载服务器负载之类的信息选择目标服务)。
WebSphere Service Registry and Repository
支持服务的完整生命周期管理,在支持 ESB 中的动态服务选择方面扮演着重要的角色。正如上面所述,仅仅 UDDI
并不足以处理这些任务。
此体系结构旨在在性能和灵活性方面取得较好的平衡。
XYZ Insurance 是一家医疗保险提供商。该公司为数百万客户提供保险服务,必须与客户、提供商、第三方代理和其他实体进行交互。此示例是多个实际保险项目的组合。
XYZ 决定开始 SOA 项目,以实现其信息技术的现代化,并充分利用在使用
COBOL、Assembler 和 PL/I 编写的大型机 (z/OS) 应用程序方面的大量投资。这些系统适用
DB2 和 IMS 数据库,与最终用户的大量通信都是通过客户信息控制系统(Customer Information
Control System,CICS)进行的。IBM 的 WebSphere MQ 提供了应用程序内和应用程序间的消息传递中枢的大部分功能。其中有一个主数据中心,该数据中心连接到多个外围数据中心和第三方系统。
XYZ 决定使用面向服务的体系结构 (SOA) 来构建新呼叫中心环境(Call
Center Environment,CCE)和构建新的索赔处理应用程序(Claims Processing
Application,CPA)。还有很多其他应用程序和更改,但我们将重点关注这两个主要系统。
IBM 和 XYZ 用于定义体系结构的总体项目需求包括:
在无需重新编写代码的情况下利用遗留应用程序
利用大型机系统,并同时在为该应用程序所选的平台上创建新服务
支持多通信协议(SOAP/HTTM、WebSphere MQ 等)
安全地支持与外部组织的 SOA 交互
在包含分散在不同位置的多个数据中心的环境中操作
提供实时监视和根据所需的服务级别路由事务的能力
其 ESB 需求与 ABC 案例研究类似,不过需要更为复杂的中介。另外,由于很多法律法规的要求,其安全性和可审核性必须比
ABC 案例研究中更为可靠。
调用主数据中心服务的远程数据中心
远程数据中心之一频繁调用主数据中心,以支持呼叫中心环境 (CCE)。虽然这是在组织内进行,但这种情况下仍然使用了网关来确保满足应用程序安全性和审核要求。
在本例中,对主数据中心的单个服务调用可能会导致遗留应用程序内出现多次服务调用,从而需要服务编排和工作流组件将所得到的信息组装为单个服务响应。
服务交互的远程数据中心端如下所示:
服务交互的主数据中心端如下所示。请注意,为了清楚起见,并没有在关系图中给出网关和监视组件,不过它们当然是解决方案中至关重要的组件:
主数据中心调用远程数据中心服务
主数据中心将频繁调用远程数据中心之一,以确认最新的呼叫中心环境 (CCE)
活动。这就要求远程数据中心具有完整的 SOA 环境,并具有与主数据中心完全相同的安全性和审核功能。
服务交互的主数据中心端如下所示:
主数据中心调用第三方服务进行地址验证
在接受地址并将其存储在 XYZ 的数据中之前,主数据中心将调用第三方服务来验证地址是否有效。
外部代理对遗留应用程序服务进行服务调用
虽然外部第三方应用程序将没有必要知道所调用的服务是遗留应用程序,但此用例在体系结构的角度非常有意义。
服务交互的远程数据中心端如下所示:
服务交互的主数据中心端如下所示。请注意,为了清楚起见,并没有在关系图中给出网关和监视组件,不过它们当然是解决方案中至关重要的组件:
基于服务调用模式的欺诈检测
基于服务调用模式的欺诈检测是较为复杂的情况,不仅需要监视调用的数量,还要监视进行调用的实体以及调用的时间。在本例中,如果获知某个特定用户涉嫌对一个使用者或提供者进行异常的大量调用,将临时禁止用户的访问权限,并通知
XYZ 调查此异常行为。这个监视、记录、相关和安全系统集成存在着极大的挑战,不过可以使用现有 ESB 技术并结合其他
SOA 技术来加以处理。
IBM 和 XYZ 合作创建了包含硬件和软件 ESB 组件的混合 ESB
体系结构。在本例中,应用了所有三项 IBM 的 ESB 技术来提供所需的功能。对遗留集成、服务编排和基本工作流的需求推动了关于使用这组技术的体系结构决策。
以下系统上下文关系图说明了这些组件的交互。
和 ABC 示例中的情况一样,DataPower XI50 扮演着两个角色:DMZ
中的安全防火墙和受信任区域中的 ESB.WebSphere Process Server/ESB 用于对复杂服务交互进行编排,负责从数据结构获取数据并将其组合为更为复杂的业务服务响应。WebSphere
Message Broker 用于处理与遗留系统交互所需的复杂消息转换。此示例说明了在一个设计中使用所有三个
IBM ESB 解决方案的价值,其中的每个解决方案都得到了充分的利用,体现了各自最重要的功能。
IBM 认识到很多组织将具有与 XYZ 类似的复杂需求。这些需求将对多项技术的使用起到促进作用,从而提供最为恰当的功能,满足可用性、性能和安全性需求。
XYZ 使用的解决方案包括:
DataPower XI50(硬件 ESB、XML 安全网关)
WebSphere Process Server(包括 WebSphere
ESB 和复杂服务交互的流程编排)
WebSphere Message Broker(支持复杂消息转换和非标准消息传递的软件
本文提供了 ESB 使用的概念和实际示例。文中讨论了创建 ESB 的技术选项以及哪些产品最适合各个特定情况。和任何技术主题一样,使用本指南时应该结合有经验的专业人员的经验来设计最适合特定情况的解决方案。
本专题是关于企业服务总线 (Enterprise Service Bus, ESB) 及相关 WebSphere
产品的问题集锦。它汇集了这个领域中:新手们最困惑的问题、开发者们最常见的问题、行业用户们最关注的问题。解答深入浅出,通俗易懂,欢迎访问!
这篇文章对 ESB 模式进行了很好的介绍。
揭开 ESB 的神秘面纱,了解如何将该体系结构风格应用于基于 SOA 的应用程序实现。
ESB 不仅是架构师的专利,通过使用作为 SOA 基础的 ESB,也可以简化开发人员的工作。
这篇文章说明了治理机构的主要职责,并随后演示了如何有效地实现 SOA 治理。
可帮助加快基于 Web 的应用程序的开发流程的可重用资产。
选择最适合业务结构和治理方法的 ESB 拓扑将使商业利益最大化。本文通过此范例分析一些多重组合的 ESB
拓扑模式,并提供指导来帮助您进行这次重要选择。
这些技术资源可以帮助您使用 WebSphere ESB 作为一种灵活的连接基础设施,来集成应用程序和服务以支持
产品说明、产品新闻、培训信息和支持信息等等。
所有 WebSphere ESB 文档的基于 Eclipse 的统一 Web 门户,提供了有关安装、配置和使用
WebSphere ESB 的概念、任务和参考信息。
WebSphere ESB 产品手册。
有关新 WebSphere ESB 产品及其与其他 WebSphere 产品的关系的基本问题及回答。
可搜索数据库,涵盖了支持问题及其解决方案,以及下载、修补程序、问题跟踪等等。
描述最新的 WebSphere ESB 概念。
通过一个门户,可以访问所有的 WebSphere Message Broker V6 文档,包括关于安装、配置和使用
WebSphere Message Broker 的概念、任务和参考信息。
所有 WebSphere Process Server 文档的统一 Web 门户,提供了有关安装、配置和使用
WebSphere Process Server 的概念、任务和参考信息。
WebSphere Service Registry and Repository 在 SOA 生命周期中的一天。
Websphere DataPower SOA Appliances 的文档。
对于开发人员,可以访问 WebSphere Business Integration“How-to”文章、下载、教程、教育内容和产品信息等等。
为企业和技术用户提供方便的对所有 WebSphere Business Integration 产品的概述。
这是一个针对特定产品的论坛,在这个论坛中,您可以获得技术问题的解答,并与其他的 WebSphere
用户分享您的专业技术。
免费下载主要的 WebSphere 产品试用版。
免费下载精选的 IBM& DB2&、Lotus&、Rational&、Tivoli&
和 WebSphere& 产品的试用版。
通过 Barnes & Noble 进行方便的在线订购。
IBM 专家主持的免费技术会议,可以加快学习进程,帮助您在最困难的软件项目中取得成功。会议包括从一个小时的网络广播到世界各个城市举办的半天和整天的现场会议。
火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。

我要回帖

更多关于 esb总线架构 的文章

 

随机推荐