转载

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

简介

IBM® Integration Bus 是 IBM 最新的战略性连接和集成产品。它整合了 WebSphere Message Broker 和 WebSphere ESB 的功能,它的新名称暗示它在功能和操作上进行了完善,以便支持 WebSphere ESB 用例,同时它还构建于其作为业界领先的通用连接中间件产品的公认地位之上。IBM Integration Bus V9 Integration Toolkit 提供了工具来加速转换为了部署到 WebSphere ESB 运行时而创建的资源(使用 WebSphere Integration Developer 工具包或 IBM Integration Designer 工具包),以便可以将它们用于 IBM Integration Bus。

本文将介绍如何转换资源,让一个 WebSphere ESB 中介可以使用这些资源,该中介实现了一个 Web 服务,在华氏度和摄氏度之间转换温度。我们提供了一个项目交换 (Project Interchange) 文件,其中包含相关的 WebSphere ESB 资源。

一般而言,更常见的场景是 WebSphere ESB 中介在 Web 服务使用者与 Web 服务提供者之间转换和路由数据,而不是转换 Web 服务提供者实现自身。但是,本文中的示例 WebSphere ESB 中介允许将精力集中在如何使用转换工具,以及 IBM Integration Bus 和 WebSphere ESB 在接口、子流、映射、输入和输出上的差异上。本场景中的 Web 服务提供了两种操作,二者都由一种请求-响应消息交换模式组成。 FahrenheitToCelsius 操作将温度从华氏度转换为摄氏度, CelsiusToFahrenheit 操作将温度从摄氏度转换为华氏度(为了简便起见,我们只使用了整数温度值)。

图 1. WebSphere ESB 中介模块 TemperatureTranslate

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

图 1 给出了 IBM Integration Designer 中的 Business Integration 透视图中显示的 TemperatureTranslate 中介模块项目。在本例中,将在单个项目中提供 Export、Mediation Flow、Interface 和 Transformation 数据映射。下一节将介绍转换过程,随后将会分析 WebSphere ESB 和 IBM Integration Bus 中的资源之间的相似性和差异。

IBM Integration Designer 导出流程

IBM Integration Bus V9 转换工具接受构建时资源,这些资源最初是为了部署到 WebSphere ESB 运行时服务器而创建的。目前提供的所有 WebSphere ESB 版本(6.2 和所有更高版本)都受到该转换工具的支持。

  1. 首先从 IBM Integration Designer(或 WebSphere Integration Developer,如果运行较老的 WebSphere ESB 开发工具)导出一个项目交换文件。选择 File => Export 调用导出向导,然后从 Business Integration 类别中选择 Integration modules and libraries ,如图 2 所示,最后单击 Next

    图 2. IBM Integration Designer 导出对话框

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  2. 在对话框的下一页上,选择单选按钮 Project interchange for sharing between workspaces ,然后选择 TemperatureTranslate 中介模块,单击 Next

    图 3. IBM Integration Designer 导出项目选择

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  3. 在对话框的最后一页,为项目交换文件提供一个 Target file 。使用名称 PI_WESB_TemperatureTranslate.zip 。这个项目交换 zip 文件已附加到本文末尾,所以如果无法访问 IBM Integration Designer 工具,而且想要使用 IBM Integration Bus Integration Toolkit 中的转换工具,那么可以先按照下一节中的导入说明进行操作。

IBM Integration Toolkit 转换流程

现在我们已经从 IBM Integration Designer 导出了一个有效的项目交换文件,我们可以将它的内容导入到 IBM Integration Bus V9 Integration Toolkit 中,使用它们为转换工具提供支持。

选择导入选项时一定要小心

不要选择 Standard 项目交换文件选项。WebSphere ESB 项目交换文件导入过程是为准备 WebSphere ESB 转换项目而专门设计的。导入选项后,它们会获得一种适合其项目性质的设置,从而允许它们在 Integration Development 透视图中的一个特定类别中显示熟悉的图标。采用这种方式导入选项还可以避免与意外启动 Workspace Migration 向导相关的不良副作用。如果意外遇到此情形,并看到 Workspace Migration 对话框,请查阅 IBM Integration Bus 信息中心 获取相关解释和解决办法。

  1. 首先导入 WESB 项目交换文件。选择 File => Import 调用 Import 向导,然后从 Other 类别选择 WebSphere ESB Project Interchange ,最后单击 Next
  2. 在对话框的下一页上,找到 PI_WESB_TemperatureTranslate.zip ,选择 TemperatureTranslate 中介模块并单击 Finish 。在默认情况下,已经选择了选项 Launch WebSphere ESB conversion after import 。如果未选中此选项,那么您可以在以后右键单击 WebSphere ESB Projects 类别中的一个项目并选择菜单选项 Convert to Integration Bus resources 来启动转换工具。
  3. 无论使用哪种方法启动 WebSphere ESB 转换工具,都会打开一个对话框,该对话框要求您指定一个项目和一个转换会话文件名(比如 ConversionSession01 )。转换过程中做出的选择与转换结果记录一起存储在此文件中。为了本文的目的和简便起见,我们保留使用了一个名为 WESB_Conversions 的项目的默认选择。提供这些详细信息后,单击 Finish
  4. 转换会话将创建完成并在其编辑器中打开,如图 4 中所示。该编辑器包含 5 个带编号的步骤,它们会引导用户完成转换过程。第一步要求用户指定在这个转换会话中应转换哪些 WebSphere ESB 来源项目。只要您愿意,您可以同时转换任意多个项目。通常,在同一个转换会话中,转换具有相同的参考 WebSphere ESB 项目的项目可能最简单。当前的转换场景包含一个 WebSphere ESB 来源项目 – 名为 TemperatureTranslate 的中介模块。每个 WebSphere ESB 来源项目都会创建一个相应的 Integration Bus 目标项目。默认情况下,目标项目的名称应该与 WebSphere ESB 项目相同,但具有前缀 IBM Integration Bus_ 。如果您希望更改它,那么可以单击该表格中的名称来完成此更改。保留默认设置并单击编辑器右下角的 Next 链接。

    图 4. IBM Integration Bus V9 Integration Toolkit 转换工具第 1 步

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  5. 转换工具的第 2 步(如图 5 所示)显示了选择用于转换的资源的摘要,以及解释在转换开始后将发生的事情的转换备注。您可以在编辑器左侧的树视图中选择不同的级别,右侧将会显示相关的备注。备注包含 IBM Integration Bus 信息中心中的文档的链接,这些文档更详细地解释了一些概念。图 6 显示了所选的分层结构的 XML Maps 级别。在这里,您会看到一个将转换的 XML 映射列表。该工具找到的从一个中介流的 XSL Transformation 原语实际引用的所有映射在默认情况下都已被选中,并且无法取消选中。保留默认设置并单击右下角的 Next

    图 5. IBM Integration Bus V9 Integration Toolkit 转换工具第 2 步(TemperatureTranslate 转换备注)

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

    图 6. IBM Integration Bus V9 Integration Toolkit 转换工具第 2 步(XML Maps 转换备注)

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  6. 转换工具的第 3 步(如图 7 中所示)提供了全局转换选项,这些选项描述了 IBM Integration Bus 将如何转换特定的中介原语,这一步还提供了具体的导入和导出绑定。这些选项之所以是全局性的选项,是因为它们将应用于在转换的所有中介流中遇到的所有原语实例。大多数原语都由一个内置的 Converter 类处理。这意味着,转换工具提供了处理这些原语的现成能力。一些原语还未由转换工具处理,而且在默认情况下,转换工具将在生成的目标 IBM Integration Bus 消息流中的相关位置引入一个子流。此方法使得转换工具能够保留中介流组件的连线,并将原语转换为 IBM Integration Bus Passthrough 消息流节点。顾名思义,此节点不会以任何方式处理该消息,仅使用这些信息进行备案。该节点传播到其 Out 终端的消息与在其 In 终端上收到的消息相同。

    图 7. IBM Integration Bus V9 Integration Toolkit 转换工具第 3 步

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  7. 转换工具的第 4 步(如图 8 中所示)提供了编辑器中之前的步骤中选择的选项摘要,还提供了一个 Start conversion 按钮。检查摘要并单击该按钮。根据转换的资源数量,转换可能会话费一两分钟的时间,有一个进度窗口显示了转换运行期间发生的事:

    图 8. IBM Integration Bus V9 Integration Toolkit 转换工具第 4 步

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分
  8. 转换工具的第 5 步(如图 9 中所示)是该过程的最后一步,显示了已转换的内容的摘要。如果需要执行后续手动操作,它们会在最后这个面板中列出。该摘要显示了最初的 WebSphere ESB 文件和它们在 IBM Integration Bus 中最接近的文件:

    图 9. IBM Integration Bus V9 Integration Toolkit 转换工具第 5 步

    转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

对比 WebSphere ESB 和 IBM Integration Bus 转换概念

图 10 中的组装图描绘了 Export 组件 ( Export1 ) 与 Mediation Flow 组件 ( TemperatureTranslate ) 之间的关系:

图 10. WebSphere ESB TemperatureTranslate 组装图

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

WebSphere ESB 使用导出来定义 Web 服务请求者如何访问 SCA(服务组件架构)模块。在我们的示例中, Export1 绑定了一个 SOAP/HTTP Web 服务。对于熟悉 WebSphere Message Broker 的集成开发人员,Assembly Diagram 可能会引起混淆,因为在 WebSphere Message Broker Toolkit 中没有直接对应的视图。具体地讲,您可能注意到 WebSphere ESB 组装图与 WebSphere Message Broker 中的消息流图并 等效。组装图的用途是表达 SCA 组件之间的服务构成关系。各个方框之间的连线表示哪些组件访问其他哪些组件。这些连线没有表明消息传输方向,也未表明消息会流经这些连线。 TemperatureTranslate 组装图有一条从 Export1TemperatureTranslate 的连线,表明 TemperatureTranslate 中介流组件向导出组件提供服务。请注意,一个导出组件仅能有一条通向它的连线。

IBM Integration Bus 和 WebSphere Message Broker 提供的与 WebSphere ESB Export 的角色最接近的东西就是消息流中的输入节点。IBM Integration Bus 转换工具从中介创建集成服务,而中介受拥有 SOAP/HTTP Web 服务绑定的导出组件驱动。IBM Integration Bus 集成服务是 IBM Integration Bus 应用程序的特殊化结果。IBM Integration Bus 应用程序是创建集成解决方案所需的相关资源(比如消息流、子流和消息模型)的可部署容器或分组。通常,一个 IBM Integration Bus 应用程序包含多个消息流,集成开发人员希望将它们作为单个单元来管理 – 换言之,一起部署、一起启动和一起停止。作为一种专业化的 IBM Integration Bus 应用程序,IBM Integration Bus 集成服务定义了一个接口(使用 WSDL 定义)和结构,而且它们充当着 Web 服务解决方案的容器。IBM Integration Bus 集成服务的结构包括:

  • 一个主要消息流,包含用于解析和写入输入和输出数据的 SOAPInput 和 SOAPReply 节点。
  • Integration Service 的 WSDL 为每个操作定义的一个子流。

考虑到此背景,在转换工具从 WebSphere ESB 资源创建 IBM Integration Bus 资源时,它会将 WebSphere ESB Export 的概念映射到 IBM Integration Bus Integration Service 中的主要消息流的 SOAPInput 节点。在 IBM Integration Designer 中,导出组件 TemperatureTranslate 连接到中介流组件本身,如图 11 所示:

图 11. WebSphere ESB 中的 TemperatureTranslate 中介流组件概述

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

中介流组件的概述显示了 TemperatureTranslate Web 服务的接口。该接口名为 TemperatureTranslateType (这是 WSDL 中的 portType 的名称),它显示了 FahrenheitToCelsiusCelsiusToFahrenheit 两个操作。打开运行转换工具后在 IBM Integration Bus Toolkit 中创建的 Integration Service 时,可以在其 Service 选项卡上看到等效的信息(如图 12 所示):

图 12. IBM Integration Bus Integration Service,Service 选项卡视图

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

在 IBM Integration Designer 中,可以导航单击相关超链接,导航到表示一个特定操作的中介流(如图 11 所示)。同样地,在 IBM Integration Toolkit 中,可以单击相关超链接而导航到表示某个特定操作的子流(如图 12 所示)。

图 13. WebSphere ESB TemperatureTranslate 中介流,FahrenheitToCelsius 操作

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

图 14. IBM Integration Bus TemperatureTranslate FahrenheitToCelsius 操作子流

转换 WebSphere ESB 资源以便在 IBM Integration Bus 中使用它们: 第 1 部分

如图 13 和图 14 所示,WebSphere ESB 和 IBM Integration Bus 采用的显示视图在概念上非常相似。请注意,在 IBM Integration Bus Toolkit 中,如果一个服务包含另一个服务的 callout 节点,那么该流的请求和响应部分都会显示在同一个选项卡上,而在 IBM Integration Designer 中,它们分开在不同的选项卡上。

结束语

IBM Integration Bus V9 是 IBM 新的战略性集成产品(与 WebSphere Message Broker 构建于相同架构之上)。Integration Bus Toolkit 率先提供了转换最初为支持 WebSphere Enterprise Service Bus 用例而创建的构建时资源的功能。本文演示了如何使用该工具转换一个简单的中介,还讨论了两种产品之间的一些架构差异。本系列的第二篇文章涉及基于 WebSphere Enterprise Service Bus StockQuote 示例的更复杂场景,其中显示了要转换的更多中介原语,还讨论了转换工具的扩展点。

回页首

下载

描述 名字 大小
代码示例 PI_WESB_TemperatureTranslate.zip 15 KB
正文到此结束
Loading...