简介: 本文描述了 WebSphere ESB V7 中的新增特性及其相关的工具 WebSphere Integration Developer,其中包括传输协议绑定、中介原语和策略控制。
通过管理流动在不同服务之间的请求和响应,IBM® WebSphere® 企业服务总线(以下简称为 WebSphere ESB)可实现不同系统的集成。中介模块(mediation module)在 WebSphere Integration Developer 中创建,它封装要在 WebSphere ESB 运行时内部署的服务交互逻辑。在中介模块内,根据定义消息流逻辑的一个或多个中介原语,可以将消息增强、转换、记录和传送到不同的服务提供者。消息本身以一种称为服务消息对象(Service Message Object,SMO)的逻辑结构表示。要获得更多关于 WebSphere ESB 体系结构的信息,请参阅位于本文底部的 参考资料。
本文将不会对 WebSphere ESB V7 的每一个新特性和功能进行逐一介绍,也不会深入描述这些特性。本文将会介绍 WebSphere ESB V7 的一些新特性,包括增强的传输绑定、中介原语、中介模式和策略控制。要从本文中获益,您应当具有一定的 WebSphere ESB 经验以及关于其特性和功能的基本技术知识。要获得有关 WebSphere ESB V6.2 新特性的汇总,请参阅 WebSphere ESB V6.2 的新特性。
在 WebSphere ESB 中,您可以通过导入调用现有服务,而使用导出将中介模块公开给外部应用程序。导入和导出可以与传输特定的协议绑定相关联,在 V7 以前的版本中,支持绑定包括 Web 服务、WebSphere MQ、Java™ Message Service (JMS)、WebSphere MQ JMS、HTTP 或服务组件体系结构(Service Component Architecture,SCA)。
在 V7 中,增强的 EJB 绑定为 EJB 导出以及已受支持的 EJB 导入提供支持。在您选择导出并生成绑定时,您将看到选项的完整列表,其中包括 EJB 绑定:

新的选项包括 EJB 绑定应该选择 EJB 2.1 还是 EJB 3.0 兼容的能力。此外,您可以决定是否公开 EJB 作为本地 EJB、远程 EJB 或二者兼有。一个向导将指导您完成整个过程,如下图所示:

JMS 和 WebSphere MQ 的消息绑定已有多项改进:
在 WebSphere ESB 中,中介的核心处理发生在中介流组件内,且被分成每个操作的中介流。这些流包含一些绑在一起的预建中介原语,用于完成所需处理。本部分描述的是 WebSphere ESB V7 中增强的预建中介原语。
V7 已经引人了 Flow Order 原语,以使确定性分支能够在中介流内启动逻辑。在 V7 以前,如果您想为中介流设置分支,这些分支的执行顺序是非确定性的。通过为每个分支创建独立终端并单线连接到每一个分支,Flow Order 原语允许您定制分支逻辑。如下图所示:

WebSphere ESB V6.2 引入了服务网关功能,且作为部分连续驱动为服务网关模式提供一流的支持,在服务网关中,已添加的新原语专用于路由模式。此原语专注于 Web 服务端点解决方案且有三种不同的操作模式:
图 4. Gateway Endpoint Lookup 原语
默认情况下,原语在 URL 模式下配置且无需额外配置。然而通常应该指定代理组,如下所述。如果需要 XPath 模式,除代理组配置以外还必须包含 XPath 表达式。最后,如果需要动作,与 WebSphere Service Registry and Repository(以下简称 WSRR)的通信是先决条件,因此如果默认值是不能接受的,则必须指定 WSRR 实例名称。
一般情况下,在动态或静态服务网关内使用基于动作的路由,URL 和 XPath 模式仅在代理网关模式下使用,如下所述。无论所使用的查找方法是什么,ServiceMessageObject 内的目标、备用地址和端点查找上下文都会被填充到查找结果中。
Message Validator 原语允许您针对架构信息验证整个或部分服务消息对象。除了对接口架构的验证以外,如果任何断言已经通过原语(如 SetMessageType 原语)产生,那么也要对这些断言进行验证。在图 5 的示例中,消息在转化之前经验证。如果验证失败,则该流将无法阻止任何下游失败。
在引入中介策略之前,中介流仅能通过使用提升的属性控制。从中介流提升的任何属性都在管理控制台上可见且可供变更,以便变更流配置。任何对于这些提升的属性的变更都会影响所有引用属性的流,在已部署的应用程序内变更是永久的,直到该值在管理控制台上被再次改变。在 WebSphere ESB V6.2 中,任何可提升的属性都可通过中介策略进行动态更新,但任何通过策略控制影响的变更仅有当前流调用的生存期。
可将提升的属性看作是任何中介流内的变化点,使用中介策略定义在这些变化点上使用的值。中介策略使用 WS-Policy 格式,且在提升的属性上有一个简单的映射,即 WS-Policy 中使用的概念与那些通过 WebSphere ESB 定义的概念之间的映射。该功能支持创建随正在处理的消息内容而变化的单一中介流。
在 WebSphere ESB V6.2 中,中介策略文档只附属于 WSRR 中的 SCA 模块表示形式。WebSphere ESB V7 的新增特性能够扩展这种附加中介策略文档的支持到目标服务,支持基于转发请求服务对中介流进行定制。Policy Resolution 原语现在有三种操作模式:
这些选项如下:
要获得更多关于目标服务和模块模式的中介策略支持解决方法,请参阅位于本文底部的 参考资料。
在 WSRR V7 中,Governance Enablement Profile 为服务级别协议(Service Level Agreements)提供新的功能,这可以在客户端、中介和服务(在 WebSphere ESB 术语中)之间启用协议的创建。该协议表达式如下所示:

在 WebSphere ESB 中,在客户端、中介和供应商之间有三种模式。以下红色部分强调的是通过 SLA 原语发送到 WSRR 的数据:



SLA 中介原语允许您定义 SLA 检查表达式,该表达式必须包括一个端点,可以选择性包含一个上下文和/或消费者 ID。最终设置是注册表名称,用以识别哪个 WSRR 应该用于评估 SLA 检查。

在中介流开发期间,发布一个跟踪消息到文件会很有用 — 标准 WebSphere ESB SystemOut.log 文件或另行指定的文件。为了启用这个功能,新的 Trace 中介原语已经被添加到 WebSphere ESB V7 中。该原语有大量属性,如下图所示:

这个新原语的实现增强和简化了现有跟踪机制,且预计不会在更适合现有 MessageLogger 或 EventEmitter 原语的生产系统中使用,这些都是值得的。
统一描述、发现和集成(Universal Description Discovery and Integration,UDDI)是在网络内发布和发现服务描述的标准。下面将要解释 WSDL 与 UDDI 概念之间的映射,以便澄清 WebSphere ESB V7 提供的集成。有关 UDDI 的更多信息,请参阅位于本文底部的 参考资料。
UDDI 原语为与 UDDI 存储库(如 WebSphere Application Server UDDI)的集成提供一流的支持。细节部分描述对 UDDI 注册表名称及其相关查询信息的配置。如果查找成功,则有关 SMO 的头和上下文部分会被更新,这类似于 Endpoint Lookup 原语。这里有三种可能的匹配策略:
在 V7 中,Fail 原语已经增强,除以前可用的静态字段之外,现在还支持动态消息生成。现在您可以使用以下的替代值来指定错误消息:
这些设置如下所示:

在 WebSphere ESB V7 以前,只有两个内置机制与 WSRR 通信,它们是 Endpoint Lookup 和 Policy Resolution 原语。WebSphere ESB V7 中引入了新的查询 API,它允许您在自定义中介内创建定制查询并将其提交给 WSRR,同时利用内置缓存机制。要获得一个与 WSRR 交互的完整 API 指南,请参阅 WebSphere ESB 信息中心。
以前,Endpoint Lookup 原语支持 Web 服务端点和 SCA 导出。现在,WebSphere ESB V7 添加了对以下协议的支持:
在原语中的新支持让您可以查询单一协议、所有协议或 Web 服务和 SCA 端点的现有行为,如下图所示:
业务空间是一个基于 Web 的接口,允许您控制和管理安装在系统上的应用程序。主要用户是那些想管理已安装应用程序的 IT 和解决方案管理员。它被引入到 WebSphere ESB V6.2 中并让您可以查看已部署的 SCA 模块。在 V7 中,已经扩展的功能包括管理中介策略和代理网关。
WebSphere ESB V6.2 支持服务网关的创建, 在创建大量可能的网关模式时提供了巨大的灵活性。这种灵活性对增加解决方案的开发时间有副作用。WebSphere ESB V7 引入一种被称为代理网关的新模式,以提供一种更快的开箱即用体验。代理网关允许您创建带有内置路由的 WebService 服务网关,以及可用于客户端生成的已解析 WSDL。这里是一个新代理网关的概念图:

一些已经被识别的服务提供者将通过网关公开,他们被逻辑地分成代理组,该代理组是一个服务集合。在代理网关开发期间,可建立链接到一个或多个代理组中。对于代理组内的每一个服务,相应的虚拟服务可在代理网关上公开,这样就可以将服务请求从虚拟服务自动路由到现实服务,在中介流组件内完成任何网关逻辑。
一旦在 WebSphere Integration Developer 中开发出代理网关并在运行时安装了该网关,IT/解决方案管理员就可以登录业务空间并查看代理网关、代理组和虚拟服务之间的关系。图 16 显示代理网关小部件,其初步加载显示了代理组和相关的代理网关:

在代理组 pencil 上单击转换小部件,以显示与代理组关联的虚拟服务,如下图所示:

在业务空间内支持中介策略之后,就无需通过 WSRR 控制台创建和删除中介策略。业务空间有三个相关的小部件:
在使用 WSRR 控制台时,这些新的小部件提供专用接口,此专用接口可删除许多以前需要的通用 WS-Policy 步骤。接口用户在定义中介策略时不需要对 WS-Policy 规范有太多了解。



本部分描述 WebSphere ESB V7 上增强管理和监控特性的新功能。
BusinessSpace 内的服务监控小部件为 SCA 模块调用和公开的服务度量响应时间和请求吞吐量。您可选择一些操作来监控公开给请求方(导出)并将其使用掉(导入)的服务,您可以选择为响应时间和吞吐量定义阈值,从而为 SCA 模块提供强大的开箱即用监控功能。这里提供了一个输出示例:

此外,对于负载的多 SCA 模块解决方案,这种功能会帮助您确定哪部分解决方案将消耗大部分时间。
管理解决方案的一个不可或缺的部分就是跟踪整个系统的健康状况,以及模块中管理项目的健康状况,如队列、消息引擎、数据源、服务器和集群。模块和系统健康小部件提供单一接口来快速检查解决方案的状态,以便验证以下信息:

跨组件跟踪允许您通过 SCA 模块和组件跟踪消息。它添加了通过 WebSphere Integration Developer 中的查看器解析的标准输出跟踪语句。WebSphere ESB V7 中的这个新增特性能够通过单个原语跟踪消息的进度而不是简单地停留在中介组件级别。下面是一个示例:

在 WebSphere ESB V7 以前,事件排序仅限于 WebSphere Process Server 运行时,但是在 V7 中,事件排序包括在 WebSphere ESB V7 运行时中。事件排序能使 WebSphere ESB 组件按交付顺序处理经过异步调用的事件。在整个方案中都保持事件顺序。对于一些实现,您可以要求目标组件按源应用程序发送事件的相同顺序处理事件;不按顺序处理这些事件会导致错误或异常。在这些情况下,您可以对异步导出和 SCA 组件启用事件排序来实现这些功能。

原文链接:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1005_jackson/1005_jackson.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14789789/viewspace-672136/ ,如需转载,请注明出处,否则将追究法律责任。