博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IBM WebSphere Enterprise Service Bus V6.1 的新功能
阅读量:2496 次
发布时间:2019-05-11

本文共 7103 字,大约阅读时间需要 23 分钟。

了解 IBM® WebSphere® Enterprise Service Bus V6.1 及其相关的工具 IBM WebSphere Integration Developer 中推出的最新功能。本文将介绍传输协议绑定、数据绑定和管理与中介支持。要跟上本文所述内容的学习,您应该具备 WebSphere Enterprise Service Bus 之前版本的功能和函数的基本知识。

通过使用 WebSphere Enterprise Service Bus,可以部署中介模块来集成异类系统。WebSphere Integration Developer 用于创建中介模块。中介模块通过使用服务消息对象(Service Message Object,SMO)提供对消息的有效负载和传输 Header 的访问,SMO 是消息数据在通过中介流时的逻辑表示形式。在中介模块中,可以对消息进行日志记录、充实、传输或路由,从而通过总线集成服务。(有关 WebSphere Enterprise Service Bus 基本概念的更多信息,请访问本文最后的。)

在接下来的几个部分中,我们将介绍 WebSphere Enterprise Service Bus V6.1 中的新功能和函数,首先将介绍增强功能和安装与配置向导。然后我们将讨论新的绑定函数,最后将讨论新的中介原语支持。注意:本文并不讨论所增加的每项功能,也不会在每个部分进行深入的阐述。本文将重点讨论重要的特性,并突出介绍每个新功能的作用。

WebSphere Enterprise Service Bus 以 IBM WebSphere Application Server Network Deployment 为基础构建,因此可以利用该应用服务器的工作负载平衡和高可用性功能。WebSphere Enterprise Service Bus 的此版本引入了一系列向导来为系统管理员提供帮助,并提供了用于配置不同的消息传递引擎和集群服务器拓扑的改进支持。以下图片显示了概要管理工具中可用的一些配置选项。

图 1 显示了概要创建向导中的一些选项。您可以选择适合您需求的配置选项,这其中既包括典型配置,也包括更为高级的选项。高级选项提供对各种设置细粒度的控制,如端口值、管理控制台的安装以及数据库配置。

选择不同的 WebSphere Enterprise Service Bus 概要配置

图 2 显示了一些高级选项,如允许指定不同的消息传递引擎、公用事件基础设施和集群配置。

消息传递和服务器集群配置选项

您还可以在安装和配置向导内指定安全设置和数据库配置。增强管理支持的优势在于其易用体验,您可以在更短的时间内设置通常使用的集群化配置并运行。

此部分将描述新添加的数据绑定和新 HTTP 传输协议绑定。

在 WebSphere Enterprise Service Bus 中,导入 (import) 定义到现有服务的连接,而导出 (export) 定义新构造的服务如何向外部应用程序公开。导入和导出都与特定的传输协议绑定相关,如 Web services、IBM WebSphere MQ、Java™ Message Service (JMS)、WebSphere MQ for Java Message Service 或服务组件体系结构(Service Component Architecture,SCA)。

某些协议绑定类型(如 WebSphere MQ、JMS 和 WebSphere MQ for Java Message Service)还支持配置函数选择器和数据绑定。函数选择器 指定中介模块接口中要调用的特定操作。数据绑定 将传输的本机消息转换为组件所希望接收的服务数据对象(Service Data Object,SDO)或进行反向转换。在 WebSphere Enterprise Service Bus 中,数据表示为 SMO,这是一种特殊化的 SDO,可提供用于访问数据的通用方法,而不会受到所使用的传输协议的影响。

在本文中,绑定 描述与导出或导入关联的协议绑定,而数据绑定 描述可以在导入和导出绑定中指定的数据绑定,用于在本机数据和数据对象之间进行转换。例如,JMS 绑定 是与导出关联的传输协议,而 JMS Object 数据绑定 将对象消息转换为关联的数据对象。

在 V6.1 中,为了对当前的导入和导出绑定传输协议列表进行补充,引入了 HTTP 绑定,提供了对原始 HTTP Header 和 SMO 内的内容的访问。

图 3 中的图片显示了工具内的 HTTP 导出和导入图标。

HTTP 导出和导入绑定

您可以使用预先定义的或自定义的函数选择器和数据绑定配置 HTTP 绑定。此绑定提供了以下两个预定义的函数选择器:

  • HTTP Header 函数选择器:使用 TargetFunctionName 消息 Header 来指定要调用的接口操作
  • HTTP URL 函数选择器:使用 URL 地址确定要调用的接口操作(例如,http://myHost/myService/getQuote 将对目标服务调用 getQuote 操作)

如果希望使用消息的其他部分的信息来确定调用的操作,则可以创建自定义函数选择器。

虽然可以编写自己的数据绑定,不过 HTTP 绑定提供了三个预定义数据绑定实现:

  • HTTP 字节数据绑定:用于接收字节
  • HTTP XML 数据绑定:用于接收 XML(表示服务接口中定义的数据对象)
  • HTTP SOAP 数据绑定:用于接收主体转换为服务接口中定义的数据对象表示形式的 SOAP 消息

还可以选择第四个数据绑定,即 IBM WebSphere Transformation Extender 数据绑定,我们将在部分对此进行讨论。

下面的代码示例显示了发送到 HTTP 绑定的 XML 消息如何在使用 XML 数据绑定时采用 SMO 的形式表示。在清单 2 中,已知的 HTTP Header 包含在 SMO 的 HTTPHeader 元素中,并在属性元素中包含额外的传输 Header,如 Cookie 等。

12345
E3E1664D-0116-4000-E000-12600914F31C610RequestCookieABCDE12345 http://localhost:9080/CustomerWeb/Export1/getCustomerDetails 1.1POSTHostlocalhost:908012345

图 4 显示了如何在工具内选择新的用于导出和导入的通用 JMS 提供者绑定。此绑定类型与第三方 JMS 1.1 提供者(已经在 WebSphere 中进行了配置)集成,而且其工作方式与当前的 JMS 协议绑定非常相似。关键的区别在于,您应该使用现有 JMS 绑定与 WebSphere Application Server 中提供的缺省消息传递提供者交互,而对于支持可选应用服务器工具(Application Server Facility,ASF)的其他 JMS 1.1 提供者,您应该使用新的通用 JMS 绑定。

选择通用 JMS 绑定 

对于某些消息传递导入和导出传输协议绑定,您可以为其配置自定义数据绑定和预定义数据绑定。IBM 增加了 WebSphere Enterprise Service Bus V6.1 中预定义数据绑定的数量,提供了更多现成功能供使用。此外,您现在可以创建数据绑定配置,而且可以跨多个不同的导出和导入绑定实例共享这些配置。

预定义数据绑定集合中添加的一个重要绑定是新的 WebSphere Transformation Extender 数据绑定,此数据绑定允许将 WebSphere Enterprise Service Bus 和 WebSphere Transformation Extender V8.2 集成(请参见图 5)。WebSphere Transformation Extender 是一项强大的传输和验证引擎(有关此产品的更多信息,请参见)。

选择 WebSphere Transformation Extender 数据绑定

WebSphere Transformation Extender 数据绑定将传输逻辑委托给 WebSphere Transformation Extender。数据绑定使用恰当的映射名称进行配置,运行时将调用此名称来在本机数据和数据对象格式之间进行转换。

WebSphere Enterprise Service Bus V6.1 引入了几个新中介原语,并对当前集合进行了增强。

要使用自定义中介,请将图 6 中所示的图标添加到中介流。

自定义中介原语

已经对自定义中介原语支持进行了增强,以提供在中介流中编写自定义代码的更多灵活性。在 WebSphere Enterprise Service Bus 之前的版本中,自定义原语上只允许一个输入和输出末端,而目前这个限制已经放松,允许多个末端。图 7 显示了包含两个输入末端和三个输出末端的自定义中介。这样可以允许复杂的路由条件,支持在其中根据中介原语中包含的逻辑指定触发哪个输出末端。

具有多个输入和输出末端的增强自定义中介

工具仍然允许选择图形代码片段或 Java 编辑器,但目前在二者中都能够根据中介原语内的逻辑触发不同的输出末端或引发异常来触发 fail 末端。您还可以在中介原语上定义用户属性,从而允许系统管理员在运行时修改各个值。

要使用 XSLT 中介,请将图 8 中所示的图标添加到中介流中。

XSLT 中介原语

XSLT 映射编辑器已经进行了更新,提供了很多可用性增强功能,其中尤其值得一提的是经过改进的自定义脚本编写支持。此编辑器与之前版本一样会显示输入和目标消息映射。但现在还允许用户定义自映射,以供跨多种不同的原语以及图 9 中所示的编辑器内的其他自定义逻辑进行重用。

新的 XSLT 编辑器

对于复杂的转换,如果能够在部署之前测试映射输出,将会非常有用。在 V6.1 中,此工具现在作为 XSLT 中介原语的一部分提供。如果在生成 XSLT 映射时选中了 Create a sample xml input file for testing the XML Map 复选框,则将会创建示例 XML 输入文件。这将创建一个输入 XML 文件,可以在工具业务集成透视图内的物理资源视图中找到此文件。

为 XSLT 测试创建示例 XML 文件

在 XSLT 映射编辑器内,还可以选择 associate XML files 图标来关联新输入的 XML 文件。选择 generate XSL script 图标时,将基于实际的资源业务集成透视图中的输出 XML 文件的映射定义对所定义的输入 XML 文件进行转换。

要使用 Business Object Map 中介,请将图 11 中所示的图标添加到中介流。

Business Object Map 原语

Business Object Map 原语在中介流中提供了一个额外的映射工具。选择使用 XSLT 原语还是 Business Object Map 原语取决于所需的功能。如果您熟悉 XSLT 而且希望使用现有 XSLT 功能,则可能要选择 XSLT 原语。不过,如果您熟悉 WebSphere Process Server 内的 Business Object Map 技术,或者已经定义了业务对象关系,则可能要使用 Business Object Map 原语。

图 12 显示了使用 Business Object Map 编辑器的映射。您可以执行多个函数,如添加自定义代码或调用关系映射。Relationship mapping 是 Business Object Map 原语的一个强大的功能,用于关联不同上下文中的数据。例如,某个特定服务可能将客户 ID 生成为整数值,但目标服务期望 ID 为组合使用字符和整数的格式。您可以创建定义这两个逻辑字段间关系的关系映射,然后从映射编辑器对此进行调用。

Business Object Map 编辑器

要使用 Set Message Type 中介,请将图 13 中所示的图标添加到中介流中。

Set Message Type 原语

此原语提供对 XML 模式 anyanySimpleTypeanyType 定义的增强支持。对于包含此类元素的消息定义,此原语支持在工具内指定具体的运行时类型或元素。以下场景演示了 Set Message Type 原语的用法。名为 Car 的业务对象在其消息定义中包含 xsd:anyType,但在运行时,此元素可能包含业务对象类型 FordCar 或类型 HondaCar。所有三个业务对象如图 14 中所示。

示例业务对象

图 15 显示了使用 Message Filter 原语基于 Car id 元素路由消息的中介流。如果 id 元素以 x 开始,则 Car 消息包含 FordCar 类型;否则其中就包含 HondaCar 类型。中介中名为 SetFordType 的 Set Message Type 原语将 Car 业务对象内的 details xsd:anyTypeFordCar 业务对象关联。

包含 Set Message Type 原语的中介流

位于 Set Message Type 原语下游的后续中介原语使用这个具体的信息来向用户显示扩展信息,以指定恰当的 XPath 表达式。请注意,图 16 中所示的 XSLT 映射编辑器中 details 元素现在包含 FordCar 类型的方式。

下游 XSLT 原语使用 Set Message Type 信息

要使用 Service Invoke 中介,请将图 17 中所示的图标添加到中介流。

Service Invoke 原语

在 WebSphere Enterprise Service Bus 之前的版本中,用户从中介模块内调用服务的方法有两种:通过将流连接到调出节点,或提供自定义代码。新的 Service Invoke 中介原语支持用户从中介流中的任意位置调用服务。

除了输出和失败输出末端外,此原语还有在采用延迟响应的异步调用未能在指定的时间内返回消息时传播原始消息的超时末端。工具中还会为每个目标服务接口上指定的错误消息生成进一步的输出末端。这样您就可以处理可能从目标服务返回的所有定义响应(输出和错误)。对于标注(callout)节点,可以将 Service Invoke 配置为重试目标服务调用,或使用在 SMO Header 或原语属性中指定的端点地址 URL 执行动态调用。

您可以在请求或响应中介流中放置任意数量的 Service Invoke 原语。此功能与新的 Fan Out 和 Fan In 中介原语结合使用时功能非常强大。

要使用 Fan Out 和 Fan In 中介,请将图 18 所示的图标添加到中介流。

Fan Out 和 Fan In 中介原语

新的 Fan Out 原语允许用户在中介流内触发一个或多个消息,与 Fan In 原语结合使用时,可以定义范围,以便定义来自多个源的数据的聚合。

您可以配置 Fan Out 中介原语,以仅触发其输出末端一次,或对使用指定 XPath 表达式获取的每个元素都触发一次。通过这样可以为重复元素创建不同的消息。例如,通过使用清单 3 中的 XML 表示形式,可以配置 Fan Out 原语为从 XPath 表达式 /body/myMessage/values 返回的每个元素触发其输出末端。

ABC

此原语在运行时将触发输出末端三次。第一次,消息包含 Fanout 上下文中的值 A 以及原始消息。第二次其中包含 FanOut 上下文中的 B。第三次其中包含值 C。FanOut 是 SMO 中用于存储此类值的专用区域。

您还可以将 Fan Out 原语与 Fan In 原语结合,以执行消息的聚合。另外 SMO 中还有一个新的上下文区域,名为 Shared Context,专门用于 Fan Out 和 Fan In 原语。您可以使用用户定义的业务对象定义对这个 Shared Context 区域进行配置。此上下文区域在以下场景中非常重要,此场景是组合使用 Fan Out、Fan In 和 Service Invoke 原语的特定聚合场景。

场景:某个订单应用程序中介模块需要首先使用额外信息对订单文档进行充实,然后再将其发送到订单处理服务。图 19 显示了一个中介模块,此模块对两个服务进行调出操作,以获取目标服务所需的其他客户和部件信息。

使用 Fan Out、Fan In 和 Service Invoke 原语的聚合场景

Fan Out 中介在此实例中配置为仅触发其输出末端一次。输出末端连接到三个流路径:两个包含用于创建目标服务的请求消息 XSLT、调用目标服务的 Service Invoke 和将目标服务响应消息映射到共享上下文中的另一个 XSLT。第三个代码路径仅包含一个 XSLT 原语,即 SaveOrderDoc,用于将传入订单消息放入 Shared Context 中供以后检索。Fan In 原语配置为在接收到其输入末端上的所有三条消息时触发输出末端。Fan In 原语收到所有消息后,XSLT 将使用 Shared Context 信息中的数据来对订单文档进行充实,以补充最终订单处理服务所需的其他客户和部件信息。您还可以将 Fan In 原语配置为在指定时间内未收到所有三条消息时触发其 incomplete 末端。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-421355/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14789789/viewspace-421355/

你可能感兴趣的文章