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
图 1 给出了 IBM Integration Designer 中的 Business Integration 透视图中显示的 TemperatureTranslate 中介模块项目。在本例中,将在单个项目中提供 Export、Mediation Flow、Interface 和 Transformation 数据映射。下一节将介绍转换过程,随后将会分析 WebSphere ESB 和 IBM Integration Bus 中的资源之间的相似性和差异。
IBM Integration Bus V9 转换工具接受构建时资源,这些资源最初是为了部署到 WebSphere ESB 运行时服务器而创建的。目前提供的所有 WebSphere ESB 版本(6.2 和所有更高版本)都受到该转换工具的支持。
图 2. IBM Integration Designer 导出对话框
图 3. IBM Integration Designer 导出项目选择
Target file
。使用名称 PI_WESB_TemperatureTranslate.zip
。这个项目交换 zip 文件已附加到本文末尾,所以如果无法访问 IBM Integration Designer 工具,而且想要使用 IBM Integration Bus 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 信息中心 获取相关解释和解决办法。
PI_WESB_TemperatureTranslate.zip
,选择 TemperatureTranslate 中介模块并单击 Finish 。在默认情况下,已经选择了选项 Launch WebSphere ESB conversion after import 。如果未选中此选项,那么您可以在以后右键单击 WebSphere ESB Projects
类别中的一个项目并选择菜单选项 Convert to Integration Bus resources 来启动转换工具。 ConversionSession01
)。转换过程中做出的选择与转换结果记录一起存储在此文件中。为了本文的目的和简便起见,我们保留使用了一个名为 WESB_Conversions
的项目的默认选择。提供这些详细信息后,单击 Finish 。 TemperatureTranslate
的中介模块。每个 WebSphere ESB 来源项目都会创建一个相应的 Integration Bus 目标项目。默认情况下,目标项目的名称应该与 WebSphere ESB 项目相同,但具有前缀 IBM Integration Bus_
。如果您希望更改它,那么可以单击该表格中的名称来完成此更改。保留默认设置并单击编辑器右下角的 Next 链接。 图 4. IBM Integration Bus V9 Integration Toolkit 转换工具第 1 步
图 5. IBM Integration Bus V9 Integration Toolkit 转换工具第 2 步(TemperatureTranslate 转换备注)
图 6. IBM Integration Bus V9 Integration Toolkit 转换工具第 2 步(XML Maps 转换备注)
图 7. IBM Integration Bus V9 Integration Toolkit 转换工具第 3 步
图 8. IBM Integration Bus V9 Integration Toolkit 转换工具第 4 步
图 9. IBM Integration Bus V9 Integration Toolkit 转换工具第 5 步
图 10 中的组装图描绘了 Export 组件 ( Export1
) 与 Mediation Flow 组件 ( TemperatureTranslate
) 之间的关系:
图 10. WebSphere ESB TemperatureTranslate 组装图
WebSphere ESB 使用导出来定义 Web 服务请求者如何访问 SCA(服务组件架构)模块。在我们的示例中, Export1
绑定了一个 SOAP/HTTP Web 服务。对于熟悉 WebSphere Message Broker 的集成开发人员,Assembly Diagram 可能会引起混淆,因为在 WebSphere Message Broker Toolkit 中没有直接对应的视图。具体地讲,您可能注意到 WebSphere ESB 组装图与 WebSphere Message Broker 中的消息流图并 不 等效。组装图的用途是表达 SCA 组件之间的服务构成关系。各个方框之间的连线表示哪些组件访问其他哪些组件。这些连线没有表明消息传输方向,也未表明消息会流经这些连线。 TemperatureTranslate
组装图有一条从 Export1
到 TemperatureTranslate
的连线,表明 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 集成服务的结构包括:
考虑到此背景,在转换工具从 WebSphere ESB 资源创建 IBM Integration Bus 资源时,它会将 WebSphere ESB Export 的概念映射到 IBM Integration Bus Integration Service 中的主要消息流的 SOAPInput 节点。在 IBM Integration Designer 中,导出组件 TemperatureTranslate
连接到中介流组件本身,如图 11 所示:
图 11. WebSphere ESB 中的 TemperatureTranslate 中介流组件概述
中介流组件的概述显示了 TemperatureTranslate
Web 服务的接口。该接口名为 TemperatureTranslateType
(这是 WSDL 中的 portType 的名称),它显示了 FahrenheitToCelsius
和 CelsiusToFahrenheit
两个操作。打开运行转换工具后在 IBM Integration Bus Toolkit 中创建的 Integration Service 时,可以在其 Service 选项卡上看到等效的信息(如图 12 所示):
图 12. IBM Integration Bus Integration Service,Service 选项卡视图
在 IBM Integration Designer 中,可以导航单击相关超链接,导航到表示一个特定操作的中介流(如图 11 所示)。同样地,在 IBM Integration Toolkit 中,可以单击相关超链接而导航到表示某个特定操作的子流(如图 12 所示)。
图 13. WebSphere ESB TemperatureTranslate 中介流,FahrenheitToCelsius 操作
图 14. IBM Integration Bus TemperatureTranslate FahrenheitToCelsius 操作子流
如图 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 |