跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 WebSphere TX Design Studio、Integration Flow Designer 和 Launcher 开发和部署转换

Nidhi Nijhawan, 软件顾问, IBM
Nidhi Nijhawan 为 IBM India 的 WebSphere Lab Services 团队工作,并且是 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 的 EAI 顾问,她拥有 5 年行业经验。
Devipriya Selvarajan, 消息传递顾问, IBM
Devipriya Selvarajan 是 WebSphere Lab Services 团队的一名消息传递顾问。她致力于为业务合作伙伴提供 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 支持。

简介: 本文将向您展示如何使用 WebSphere Transformation Extender (WebSphere TX) Design Studio 创建类型树和映射,如何使用 WebSphere TX Integration Flow Designer 创建流程流和可执行的映射系统,以及如何使用 WebSphere TX Launcher 将映射部署为可执行系统。

发布日期: 2010 年 2 月 22 日
级别: 中级 其他语言版本: 英文
访问情况 : 1171 次浏览
评论: 


简介

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 映射的输入采用逗号分隔的格式。每个输入文件包含许多条 Order 记录,这些记录都包含以下字段: Catalog Number、Contact Address、Contact Name、CustomerID、OrderDate、OrderNumber、QtyOrdered、UnitPrice 和 WantDate。

  1. 打开 WebSphere TX Design Studio 并选择一个工作区。
  2. 在 Transformation Extender Development 透视图中,创建一个新的 Extender 项目。输入项目名 SupplyChain 并单击 Finish。
  3. 右键单击 SupplyChain 项目下的 TypeTrees 文件夹,然后选择 New => Type Tree

    图 1. 创建新类型树
    图 1

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

    图 2. 类型树设计器窗口
    图 2

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

    图 3. Catalog Number 属性
    图 3

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

    图 4. QtyOrdered 属性
    图 4

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

    图 5. Record 分组属性
    图 5

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

    图 6. 完成的类型树视图
    图 6

为 Order 映射开发输出类型树

如果没有完成上述过程,可以在本文结束部分 下载 Order.xsd 文件,并使用它创建输出类型树:

  1. 右键单击 Extender Project 的 TypeTrees 并选择 Import => XMLSchema
  2. 在 XML Schema Importer 窗口中选择 Order.xsd 并单击 Next
  3. 选择 Parent 项目并单击 Finish 生成类型树,它将被命名为 Order.mtt。

    图 7. XSD 生成的 Order 类型树
    图 7

开发 Order 映射

  1. 右键单击 Extender 项目中的 Map Files 文件夹并选择New => Map Source
  2. 将其命名为 SupplyChain。
  3. 在 Outline 视图中,右键单击 Map Source 并选择 New

    图 8. 创建新映射
    图 8

  4. 将映射命名为 Order。
  5. 右键单击输入卡并选择New。输入如下所示的值并单击 OK

    图 9. Order 类型树的输入卡属性
    图 9

  6. 右键单击输出卡并选择 New。输入如下所示的值并单击 OK

    图 10. Order 类型树的输出卡属性
    图 10

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

    图 11. 在 Order 映射中映射字段
    图 11

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

    图 12. 功能映射向导
    图 12

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

    图 13. 为 Order 映射中的字段添加规则
    图 13

  10. 保存映射。映射的大致框架应如下所示:

    图 14. 映射大纲视图
    图 14

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

    图 15. 映射执行成功
    图 15

  13. 在 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>
    

  14. 您需要创建另一个名为 Shipping 的映像。导入可下载的 artifacts.zip 文件中的 Shipping.xsd 文件。使用上述步骤从 .xsd 文件创建一个类型树。创建一个名为 Shipping 的映射。其输入卡将指向 Order 类型树,而输出卡将指向 Shipping 类型树。在 Get => Source => File Path 的输入卡中,输入 XMLOut.txt 作为文件名。对于输出卡,输入 ShippingXML.txt 作为文件名。主要映射将如下所示:

    图 16. 映射设计器中的 Shipping 映射
    图 16

  15. 使用 Functional Map Wizard 创建功能映射 F_OrdertoShipping,并填充如下所示的映射规则:

    图 17. Shipping 映射中引用的功能映射
    图 17

  16. 构建并运行 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 中:

  1. 打开 Integration Flow Designer GUI:选择 Start => WebSphere Transformation Extender V8.2 => Design Studio => Integration Flow Designer。选择 Create a new system definition file
  2. 在菜单中,选择 System => Add Component => Source Map

    图 18. 添加源映射
    图 18

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

    图 19. Integration Flow Designer 中的映射
    图 19

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

    图 20. Launcher 设置
    图 20

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

    图 21. Integration Flow Designer 中创建的系统
    图 21

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

    图 22. 编辑 Launcher 设置
    图 22

  8. 启用 Source Event 之后,您会看到一副用于观察事件的眼镜(glass)。
  9. 选择 LocalServer 作为 Server,并选择 Execution Mode 作为 Launcher。保存系统定义文件。

使用 WebSphere TX Launcher 部署映射系统

WebSphere TX with Launcher 提供了一个单独的事件服务器来托管 WebSphere TX 引擎。它包括命令行和脚本处理功能,并且将在被事件触发后激活转换(比如说文件创建、消息到达 WebSphere MQ 队列、数据库触发器、调度程序或者不同触发器的组合)。Launcher 将提供一个在线运行时环境,用于同步和控制复杂的数据转换,同时为转换维护和优化执行环境。本节将展示如何使用 WebSphere TX Launcher 部署在 Integration Flow Designer 中开发的可执行系统。

  1. 要部署映射,选择 System => Deploy => Definitions。将它命名为 SupplyChain:

    图 23. 编辑部署定义
    图 23

  2. 选择 Generate and Transfer Launcher Control File,并单击 Details

    图 24. 编辑部署定义
    图 24

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

    图 25. 成功部署的结果
    图 25

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

    图 26. IBM WebSphere TX Launcher 服务
    图 26

  9. 输入文件在输入文件位置中已经可用。重新启动 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 部署系统。


下载

描述名字大小下载方法
项目文件1artifacts.zip 2 KBHTTP
完整解决方案2solution.zip72 KBHTTP

关于下载方法的信息

注意:

  1. artifacts.zip 包含项目工件。
  2. solution.zip 包含所有解决方案工件:Extender 项目的项目交换文件、系统定义文件 (.msd) 以及 Launcher 文件 (.msl)。要运行应用程序,需将 Extender 项目导入到 WebSphere TX Design Studio。

参考资料

学习

获得产品和技术

讨论

作者简介

Nidhi Nijhawan 为 IBM India 的 WebSphere Lab Services 团队工作,并且是 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 的 EAI 顾问,她拥有 5 年行业经验。

Devipriya Selvarajan 是 WebSphere Lab Services 团队的一名消息传递顾问。她致力于为业务合作伙伴提供 WebSphere Transformation Extender、WebSphere Message Broker、WebSphere MQ 和 WebSphere DataPower SOA Appliances 支持。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=468963
ArticleTitle=使用 WebSphere TX Design Studio、Integration Flow Designer 和 Launcher 开发和部署转换
publish-date=02222010
author1-email=nidhinijhawan_cnnew1@in.ibm.com
author1-email-cc=
author2-email=dselvara_cnnew1@in.ibm.com
author2-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。