IBM® WebSphere® Transformation Extender(此后称作 WebSphere TX)是一种强大的、面向事务的通用数据转换和验证解决方案,用于自动化在批处理和实时环境中将大量数据从源系统转换和路由到目标系统的过程。它可以处理任意格式的数据 —— XML、非 XML 或两者混合。本文将详述 TX Design Studio、Integration Flow Designer 和 Launcher,并且将向您展示如何实现一个供应链场景。
在该场景中,当接收到订单时,如果所请求的数量大于或等于 100,则 OrderStatus 将被设置为不可用,而如果数量小于 100,则 OrderStatus 将被设置为可用。此消息将被传递到配送部门,而配送部门将检查 OrderStatus。如果其值为 Available,则配送状态将更新为 Shipped,否则将设置为 Rejected。在以下小节中,您将了解如何借助以下途径实现这个解决方案:
- 使用 WebSphere Transformation Extender Design Studio 开发和测试映射
- 使用 WebSphere Transformation Extender Integration Flow Designer 开发映射系统
- 使用 WebSphere Transformation Extender Launcher 部署在 Integration Flow Designer 中开发的系统
使用 WebSphere TX Design Studio 开发类型树和映射
要实现上述场景,您需要开发两个映射 —— Order 和 Shipping。Order 映射接受平面文件作为输入,并将它们转换为 XML。Shipping 映射从 Order 映射接受 XML 输入,并将其转换为另一个包含 Shipping 信息的 XML 文件。首先,您需要开发这两个映射需要的类型树。
Order 映射的输入采用逗号分隔的格式。每个输入文件包含许多条 Order 记录,这些记录都包含以下字段: Catalog Number、Contact Address、Contact Name、CustomerID、OrderDate、OrderNumber、QtyOrdered、UnitPrice 和 WantDate。
- 打开 WebSphere TX Design Studio 并选择一个工作区。
- 在 Transformation Extender Development 透视图中,创建一个新的 Extender 项目。输入项目名 SupplyChain 并单击 Finish。
- 右键单击 SupplyChain 项目下的 TypeTrees 文件夹,然后选择 New => Type Tree:
图 1. 创建新类型树

- 选择 SupplyChain 作为父文件夹并将其命名为 TypeTree Order_CSV。
- 创建类型树之后,系统会提示您打开类型树。编辑器会打开一个空类型树,并且您会在页面底部看到 Extender Properties 视图,其中将显示特定数据类型的属性。选择 Root 并单击 Extender Properties View。
- 修改 Root 类型的属性。将类型名从 Root 更改为 Data 并按下 Enter:
图 2. 类型树设计器窗口

- 右键单击 Data 并选择 Add 添加其他数据类型。在弹出窗口中,单击 Yes 创建一个新的数据类型。
- 在 Extender Properties 视图中,将数据类型的名称更改为 Element 并按下 Enter。在该类别中,您将创建所有的数据项级数据类型。
- 同样,为 Groups 创建一个类别。
- 采用类似的方式开始在 Element 类别中添加字段。必须将 Element 类别中的 Class 类别更改为 Item。Catalog Number 元素将采用文本格式。属性的选择如下所示:
图 3. Catalog Number 属性

- 同样,创建其他文本字段:Contact Address、Contact Name、CustomerID 和 OrderNumber。在 Element 类别下添加 QtyOrdered 和 UnitPrice 字段。这些字段将使用 Number 格式,因此选择如下所示的属性:
图 4. QtyOrdered 属性

- 在 Element 类别下添加 OrderDate 和 WantDate 字段。这些字段采用 Date 格式,因此指定 Item 子类作为 Date && Time,并保留其他属性为默认值。
- 为 Order 记录和整个文件(其中包含多条 Order 记录)创建分组。在 Groups 类别下添加一个名称为 Record 的分组。选择 Group 作为 Class 属性。每条 Order 记录都由使用逗号分隔的字段组成,因此该分组被定义为 Explicit —— Delimited 并且分隔符的值为 ","。每条记录都使用换行字符作为结束:
图 5. Record 分组属性

- 在 Groups 类别下添加另外一个名为 File 的分组。
- 由于 Record 是显式定义的分组,因此 File 将是一个隐式分组。因此,将类更改为 Group 并保留其他属性为默认值。类型树定义现在已完成:
图 6. 完成的类型树视图

如果没有完成上述过程,可以在本文结束部分 下载 Order.xsd 文件,并使用它创建输出类型树:
- 右键单击 Extender Project 的 TypeTrees 并选择 Import => XMLSchema。
- 在 XML Schema Importer 窗口中选择 Order.xsd 并单击 Next。
- 选择 Parent 项目并单击 Finish 生成类型树,它将被命名为 Order.mtt。
图 7. XSD 生成的 Order 类型树

- 右键单击 Extender 项目中的 Map Files 文件夹并选择New => Map Source。
- 将其命名为 SupplyChain。
- 在 Outline 视图中,右键单击 Map Source 并选择 New:
图 8. 创建新映射

- 将映射命名为 Order。
- 右键单击输入卡并选择New。输入如下所示的值并单击 OK:
图 9. Order 类型树的输入卡属性

- 右键单击输出卡并选择 New。输入如下所示的值并单击 OK:
图 10. Order 类型树的输出卡属性

- 映射将在 Toolkit 中打开。在输出树中填充如下所示的值。在 Rule Editor 中输入各值并按下 Enter。值将被添加到 Output Card 字段中。对于条目 F_OrderCSVtoXML(Record:CSVinput),在 Rule Editor 中将功能映射的名称填写为 F_OrderCSVtoXML()。从输入卡将 Records 字段拖放到括号中,然后按下 Enter:
图 11. 在 Order 映射中映射字段

- F_OrderCSVtoXML 是一个功能映射,它类似于子例程,并且将用于逐一映射输入文件中的各记录。右键单击 F_OrderCSVtoXML 并选择 Functional Map Wizard。在向导中,单击 Create:
图 12. 功能映射向导

- 在功能映射中映射字段。将输入卡中的各字段拖放到输出卡中的各字段上。对于 OrderStatus 变量,可以通过一种简单的逻辑来检查所订购的数量是否小于 100。在 Rule Editor 中添加如下所示的规则,然后按下 Enter:
图 13. 为 Order 映射中的字段添加规则

- 保存映射。映射的大致框架应如下所示:
图 14. 映射大纲视图

- 右键单击 Order 映射并选择 Build。单击 Build Results 视图,查看是否出现了任何错误。
- 如果构建成功,则右键单击 Order 映射并选择 Run。如果运行成功,则会弹出以下窗口:
图 15. 映射执行成功

- 在 Extender 项目的 Misc 文件夹中,打开输出文件 XMLOut.txt。如果该文件包含如下所示的 XML 格式的记录,则表示映射已成功执行:
<Order> <OrderNumber>ABC123</OrderNumber> <CustomerID>CUST01</CustomerID> <ContactName>DeviPriya</ContactName> <ContactAddress>XYZ Street Bangalore</ContactAddress> <OrderDate>2009-07-07</OrderDate> <WantDate>2009-10-07</WantDate> <CatalogNumber>123</CatalogNumber> <QtyOrdered>50</QtyOrdered> <UnitPrice>10</UnitPrice> <OrderStatus>AVAILABLE</OrderStatus> </Order>
- 您需要创建另一个名为 Shipping 的映像。导入可下载的 artifacts.zip 文件中的 Shipping.xsd 文件。使用上述步骤从 .xsd 文件创建一个类型树。创建一个名为 Shipping 的映射。其输入卡将指向 Order 类型树,而输出卡将指向 Shipping 类型树。在 Get => Source => File Path 的输入卡中,输入 XMLOut.txt 作为文件名。对于输出卡,输入 ShippingXML.txt 作为文件名。主要映射将如下所示:
图 16. 映射设计器中的 Shipping 映射

- 使用 Functional Map Wizard 创建功能映射 F_OrdertoShipping,并填充如下所示的映射规则:
图 17. Shipping 映射中引用的功能映射

- 构建并运行 Shipping 映射。Order 映射 XMLOut.txt 的输出是 Shipping 映射的输入。由于 Order 映射已成功运行,因此 XMLOut.txt 将出现在工作区中。在运行 Shipping 映射时,XMLOut.txt 将成为映射的输入,并且所生成的输出将为 ShippingXML.txt。确认它类似于以下内容:
<Shipping> <OrderNumber>ABC123</OrderNumber> <CustomerID>CUST01</CustomerID> <ContactName>DeviPriya</ContactName> <ContactAddress>XYZ Street Bangalore</ContactAddress> <OrderDate>2009-07-07</OrderDate> <ShippingDate>2009-10-28</ShippingDate> <CatalogNumber>123</CatalogNumber> <QtyOrdered>50</QtyOrdered> <UnitPrice>10</UnitPrice> <ShippingStatus>SHIPPED</ShippingStatus> </Shipping>
使用 WebSphere TX Integration Flow Designer 开发一个映射系统
WebSphere TX Integration Flow Designer 将帮助您创建可视流程流,并通过它们创建由 Launcher 或 Command Server 处理的可执行系统。通过以图形化的方式将它们组织到系统的逻辑集合中,它可以帮助您轻松地管理相关映射的集合。Integration Flow Designer 中的图形系统表示将帮助可视化系统设计、假设场景和系统执行行为。在本节中,您将开发一个已经创建的映射的系统,然后将可执行系统部署到 WebSphere Transformation Extender Launcher 中:
- 打开 Integration Flow Designer GUI:选择 Start => WebSphere Transformation Extender V8.2 => Design Studio => Integration Flow Designer。选择 Create a new system definition file。
- 在菜单中,选择 System => Add Component => Source Map:
图 18. 添加源映射

- 浏览并选择工作区路径中的源映射名称。映射源中的映射将被列出。选择用于创建系统的两个映射。有时,Order 映射隐藏在 Shipping 映射的下方,因此您需要拖动 Shipping 映射才可以看到 Order 映射。
- 双击映射打开输入和输出卡:
图 19. Integration Flow Designer 中的映射

- 确认输入文件、输出文件和模式文件的位置。如果文件位置正确无误,那么您应该可以在映射之间看到连接。如果没有,则为文件指定绝对路径引用,方法是双击输入和输出文件:
图 20. Launcher 设置

- Order 映射的输出文件是 Shipping 映射的输入文件。纠正文件路径之后,您将在映射之间看到如下所示的连接。如果更改此设置中的任何参数,则它会覆盖映射设置。
图 21. Integration Flow Designer 中创建的系统

- 右键单击映射并选择 Edit Launcher。此时将打开图 22 所示的窗口。展开输入并将 Source Event 从 OFF 更改为 ON,通知 Launcher 在输入文件到达指定目录后运行映射。单击 OK。
图 22. 编辑 Launcher 设置

- 启用 Source Event 之后,您会看到一副用于观察事件的眼镜(glass)。
- 选择 LocalServer 作为 Server,并选择 Execution Mode 作为 Launcher。保存系统定义文件。
使用 WebSphere TX Launcher 部署映射系统
WebSphere TX with Launcher 提供了一个单独的事件服务器来托管 WebSphere TX 引擎。它包括命令行和脚本处理功能,并且将在被事件触发后激活转换(比如说文件创建、消息到达 WebSphere MQ 队列、数据库触发器、调度程序或者不同触发器的组合)。Launcher 将提供一个在线运行时环境,用于同步和控制复杂的数据转换,同时为转换维护和优化执行环境。本节将展示如何使用 WebSphere TX Launcher 部署在 Integration Flow Designer 中开发的可执行系统。
- 要部署映射,选择 System => Deploy => Definitions。将它命名为 SupplyChain:
图 23. 编辑部署定义

- 选择 Generate and Transfer Launcher Control File,并单击 Details:
图 24. 编辑部署定义

- 选择 WebSphere TX 安装目录 /Systems 并使用名称 SupplyChain.msl 保存部署脚本。您必须将 .msl 文件保存在 /Systems 中,以便于 Launcher 能够找到它。
- 关闭 Define Deploy Scripts 窗口。
- 要将定义部署到 Launcher 运行时,选择 System => Deploy => SupplyChain。
- 如果部署成功,那么您将看到消息 “The deploy operation has completed successfully”。
- 在弹出窗口中单击 Yes 查看结果,它应该如下所示:
图 25. 成功部署的结果

- 启动服务 IBM WTX Launcher。如果它已经启动,则停止并重新启动它。在部署新系统文件时,必须重新启动 Launcher。
图 26. IBM WebSphere TX Launcher 服务

- 输入文件在输入文件位置中已经可用。重新启动 Launcher 之后,在目录 C:\\Documents 和 Settings\\Administrator\\IBM\\wtx\\devworks\\SupplyChain\(或者您配置的用于写入输出的位置)中查找输出文件。如果 Launcher 已经运行映射并生成了输出文件,则应该会看到 XMLOut.txt 和 ShippingXML.txt。如果文件不在其中,则检查输入文件和模式文件是否在正确的位置,以及系统是否通过正确的绝对路径指向这些位置。
本文向您展示了如何:
- 使用 WebSphere TX Design Studio 开发和测试映射。
- 使用 WebSphere TX Integration Flow Designer 开发映射系统。
- 使用 WebSphere TX Launcher 部署系统。
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| 项目文件1 | artifacts.zip | 2 KB | HTTP |
| 完整解决方案2 | solution.zip | 72 KB | HTTP |
注意:
- artifacts.zip 包含项目工件。
- solution.zip 包含所有解决方案工件:Extender 项目的项目交换文件、系统定义文件 (.msd) 以及 Launcher 文件 (.msl)。要运行应用程序,需将 Extender 项目导入到 WebSphere TX Design Studio。
学习
- WebSphere Transformation Extender 信息中心
托管所有 WebSphere Transformation Extender 文档的 Web 门户,包括关于如何安装、配置和使用 WebSphere Transformation Extender 环境的概念、任务和参考信息。 - WebSphere Transformation Extender 产品页面
产品描述、产品新闻、培训信息和支持信息等。 - WebSphere Transformation Extender 需求
WebSphere Transformation Extender 的硬件和软件需求。 - WebSphere Transformation Extender 支持
关于支持问题及其解决方案的可搜索数据库,包括下载、补丁、问题跟踪等。 - IBM Tivoli Monitoring 信息中心
此 Web 门户包含关于如何部署、安装和配置基本 Tivoli Monitoring 产品中的公共服务组件和监控代理的信息。 - IBM Tivoli Composite Application Manager for SOA 信息中心
此 Web 门户提供关于 Tivoli Composite Application Manager for SOA 的信息。 - IBM Tivoli Composite Application Manager for SOA V6.1 用户指南
此 Web 门户提供关于如何安装、配置和使用 Tivoli Composite Application Manager for SOA, V6.1 来监控 AIX、z/OS、Linux、Solaris 和 Windows 上的 Web 服务的信息。 - developerWorks Java 专区
获取针对 Java 开发人员的大量技术文档、下载和资源。 - developerWorks WebSphere 应用程序连接性开发人员资源
帮助您构建 WebSphere 应用程序连接性和业务集成解决方案的 How-to 文章、下载、教程、培训、产品信息和其他资源。 - developerWorks WebSphere 业务流程管理开发人员资源
帮助您建模、装配、部署和管理业务流程的 WebSphere BPM how-to 文章、下载、教程、培训、产品信息和其他资源。 - developerWorks WebSphere SOA 和 Web 服务开发人员资源
帮助您设计和构建 WebSphere SOA 和 Web 服务解决方案的 how-to 文章、下载、教程、培训、产品信息和其他资源。 - developerWorks 技术讲座
IBM 专家组织的免费技术会议,可以加速您的学习进度,并帮助您克服软件项目中的大多数难题。会议包括时长 1 小时的网络广播,以及在世界各个城市举办的半天和全天的实时会议。 - IBM Press 出版的关于 WebSphere 的书籍
通过 Barnes & Noble 可以方便地订购它们。
获得产品和技术
- IBM Tivoli Composite Application Manager System Edition (ITCAM SE) for WebSphere DataPower 产品页面
产品信息、下载和支持 - 快速启动您的 Linux app Web 站点
获取关于 Linux 的最新免费试用下载以及 how-to 文章和技术支持。 - developerWorks WebSphere 开发人员资源
针对使用 WebSphere 产品的开发人员的技术信息和资源。developerWorks WebSphere 提供了产品下载、how-to 信息、支持资源以及一个包括 2000 多份技术文章、教程、最佳实践、IBM 红皮书和在线产品手册的技术库。 - 大多数热门的 WebSphere 试用下载
针对重要 WebSphere 产品的免费试用下载。 - IBM 软件产品的试用下载
针对所选 IBM® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品的免费试用下载。 - WebSphere 随需应变演示
下载、观看和学习哪些 WebSphere 产品和 WebSphere 相关技术可以为您的企业所用。
讨论
- WebSphere Transformation Extender 论坛
获取关于技术问题的解答并与其他 WebSphere Transformation Extender 开发人员共享专业知识。 - WebSphere 论坛
产品相关论坛,您可以获取关于技术问题的解答并与其他 WebSphere 用户共享专业知识。 - developerWorks 博客
加入与 developerWorks 用户和作者以及 IBM 编辑和开发人员的会话。 - developerWorks 播客
收听针对软件革新者的有趣访谈。 - WebSphere 相关活动
会议、内部预映、网络广播和世界各地与 WebSphere 开发人员相关的其他活动。