IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  WebSphere  >

使用 WebSphere Partner Gateway V6.0 实现 B2B 的解决方案: 第 3 部分

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 高级

崔 俊涛 (cuijunt@cn.ibm.com), 软件工程师, IBM

2007 年 8 月 31 日

第 3 部分通过一个场景介绍如何通过WebSphere Partner Gateway和Data Interchange Services Client的合作来进行XML文档和EDI文档之间的转换。另外将介绍如何进行不同格式的XML之间的转换。

1.场景介绍

图1描述了某个零售行业的场景。在该场景中,商场的操作人员根据商场中商品的情况制作订单。对那些短缺商品按照一定的格式准备订单,并且发送到WebSphere Partner Gateway的目标(Target)。WebSphere Partner Gateway在目标接收订单,根据参与者连接(Participant Connection)对XML格式的订单进行相应的处理,把XML订单转化为EDI格式的订单,并且将转换后的EDI订单发送到合作伙伴(厂商)的入口(Gateway)处。合作伙伴根据接收的EDI订单进行相应的处理,比如发送缺货消息或者通知接收货物等。


图 1: XML->EDI订单场景
XML->EDI订单场景

图2在图1的基础上描述了将EDI订单转换为XML订单的场景。在该场景中,合作伙伴不能接收EDI格式的订单,WebSphere Partner Gateway将其转换为XML格式的订单发送给合作伙伴。WebSphere Partner Gateway可以进行XML文档之间的转换,但为了利用图1种的场景并且为了展示EDI到XML之间的转换,本文采用图2的场景。


图 2: XML->XML订单场景
XML->XML订单场景

2.XML->EDI

为了实现XML文档到EDI文档之间的转换,我们需要进行如下的操作:

  1. 定义订单的XML格式,确定使用的EDI标准
  2. 使用Data Interchange Services Client建立XML到EDI的映射,并将其上传到WebSphere Partner Gateway
  3. 在WebSphere Partner Gateway中验证映射
  4. 创建目标
  5. 创建参与者并为它们创建入口
  6. 创建XML的格式
  7. 使用XML样式表创建验证图(validation map)
  8. 创建自定义的动作
  9. 修改参与者的B2B能力
  10. 创建必需的通道
  11. 创建参与者连接

下面我们将分步介绍这些操作。

2.1 XML格式和EDI标准

在进行转换之前,需要确定XML订单的格式。本文使用如下的XML样式表作为XML订单的格式:


XML订单格式:
                
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="purchaseOrder" type="order" />
  <xsd:complexType name="order">
    <xsd:sequence>
      <xsd:element name="orderID" type="xsd:string"/>
      <xsd:element name="requester" type="xsd:string"/>
      <xsd:element name="supplier" type="xsd:string"/>
      <xsd:element name="shipmentAddress" type="xsd:string"/>
      <xsd:element name="productID" type="xsd:string"/>
      <xsd:element name="quantity" type="xsd:string"/>
      <xsd:element name="date" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>
      

EDI在业界存在着很多标准,比如EDI X12, EDIFACT等,本文采用EDI X12 X12V4R1版本的850 Purchase Order标准作为订单的EDI标准。

2.2 创建XML到EDI的映射

本节将介绍如何使用IBM Data Interchange Services Client创建XML到EDI的映射。

2.2.1 导入XML样式表文件

  1. 打开IBM Data Interchange Services Client,选择XML视图并且切换到模式文档定义标签。

    图 3: XML视图
    XML视图

  2. 从文件菜单中选择打开导入文件,然后选择2.1中的XML样式表导入。

    图 4: 导入文件
    导入文件

  3. 在导入XML模式对话框中填入如下信息,然后选择导入

    图 5: 导入XML模式文件
    导入XML模式文件

如果没有XML字典,可以在XML字典标签页中创建。

导入完成后,PURCHASEORDER文档定义将会出现在模式文档定义的标签中。

2.2.2 导入EDI标准

假定你已经获得了ANSI EDI X12的标准。

选择EDI视图,然后从文件菜单中选择打开导入文件,选择ANSI EDI X12标准导入。在导入过程中,选择850 Purchase Order导入。


图 6: 导入EDI X12标准
导入EDI X12标准

导入EDI X12标准

导入完成后,850 Purchase Order定义将会出现在EDI文档定义的标签中。接下来就可以利用XML样式表和EDI标准建立XML到EDI的映射了。

2.2.3 创建XML到EDI的映射

  1. 在Data Interchange Services中选择映射视图,然后选择新建数据转换映射
  2. 在创建数据转换映射-映射名称窗口中输入以下信息,单击下一步

    图 7: 创建数据转换映射 - 名称
    创建数据转换映射 - 名称

  3. 在创建数据转换映射-源或目标窗口中选择目标,然后单击下一步

    图 8: 创建数据转换映射 - 类型
    创建数据转换映射 - 类型

  4. 在创建数据转换映射-源语法类型窗口中选择XML,然后单击下一步

    图 9: 创建数据转换映射 - 源文档类型
    创建数据转换映射 - 源文档类型

  5. 在创建数据转换映射-源字典窗口中选择TEST,然后单击下一步

    图 10: 创建数据转换映射 - 源文档
    创建数据转换映射 - 源文档

  6. 在创建数据转换映射-源XML文档定义窗口中选择PURCHASEORDER,然后单击下一步

    图 11: 创建数据转换映射 - 源文档定义
    创建数据转换映射 - 源文档定义

  7. 在创建数据转换映射-目标语法类型窗口中选择EDI,然后单击下一步
  8. 在创建数据转换映射-目标字典窗口中选择X12V4R1,然后单击下一步
  9. 在创建数据转换映射-目标EDI文档定义窗口中选择850,然后单击下一步
  10. 在创建数据转换映射-确认窗口中单击完成按钮。映射文件创建完毕,Data Interchage Services会显示如下的界面:

    图 12: 映射信息
    映射信息

    其中左上角显示源文档的结构,右上角显示目标文档的结构,左下角显示映射的结果。 接下来要定义映射的细节。
  11. 展开左下角窗口的Table1, 单击右键,选择“在…中插入->命令->SetProperty”。

    图 13: 插入命令
    插入命令

  12. 在出现的映射命令编辑器中输入信息SetProperty ("IchgRcvrID", \purchaseOrder\supplier\supplier.data\\),然后选择确定

    图 14: 编辑命令
    编辑命令

    其中IchgRcvrID指定了在EDI文档中接收方的ID,而\purchaseOrder\supplier\supplier.data\\表示源XML文档中的puchaseOrder\supplier节点。
  13. 重复步骤12,插入命令SetProperty ("IchgSndrID", \purchaseOrder\requester\requester.data\\)。 其中IchgSndrID指定了在EDI文档中发送方的ID,而\purchaseOrder\requester\requester.data\\表示源XML文档中的puchaseOrder\requester节点。
  14. 在Table1\20 M BEG\1 M 353节点插入赋值语句:\Table 1\20 M BEG\1 M 353\\ = "00"。00表示发起的订单数据。另外01表示取消订单,02表示添加订单数据。详细信息请参阅EDI标准。
  15. 在Table1\20 M BEG\2 M 92节点插入赋值语句:\Table 1\20 M BEG\2 M 92\\ = "NE"。NE表示新订单(New Order)。
  16. 在Table1\20 M BEG\3 M 324节点插入命令:MapFrom (\purchaseOrder\orderID\orderID.data\\)。MapFrom表示将XML订单中orderID中的数据映射到EDI中的3 M 324节点,表示订单号。
  17. 由于映射的字段较多,本文不再一一描述。请参阅本文附带的映射文件。
  18. 保存映射文件并编译。选择映射视图,然后选择控制字符串标签,选择新建的映射XML_EDI_PO,从菜单中选择操作->导出到其他数据库,选择WPG使用的数据库,然后选择确定导入映射文件。(如果在数据库列表中没有WPG使用的数据库,需要将WPG数据库添加到系统的ODBC数据源中,然后通过菜单视图->数据库来为DIS添加WPG数据库。)

2.2.4 在WebSphere Partner Gateway中验证映射

  1. 打开WebSphere Partner Gateway的社区控制台,以hubadmin登陆。
  2. 选择Hub Admin->Hub Configuration->Maps->Transformation Maps,WebSphere Partner Gateway会显示转换映射的列表。

    图 15: 转换映射列表
    转换映射列表

  3. 选择XML_EDI_PO前面的放大镜图标查看,WebSphere Partner Gateway显示下面的信息,则说明映射成功导入。

    图 16: 映射信息
    映射信息

    从上图可以看出,源文档格式是None/TEST字典下的PURCHASEORDER样式,而目标文档则是N/A/X12V4R1标准下的850格式。N/A/X12V4R1/850格式的文档并不能直接在网络上传输,它只是EDI文档的消息体,还需要EDI信封来封装。下一节介绍EDI封装。

2.2.5 定义EDI封装格式

EDI文档是电子商务领域中电子文档交换的标准之一。它定义了在电子商务领域中经常使用的消息格式,比如询价、订单、配送等请求和确认消息。WebSphere Partner Gateway V6支持EDI X12和EDIFACT等标准。

在EDI消息传输过程中,消息体将会被进一步封装,以符合EDI标准。因此无论使用何种消息格式,我们都需要根据标准自定义这些消息的封装格式。下面介绍如何自定义EDI X12下的订单消息封装格式。

  1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Hub Admin->Hub Configuration->EDI->Envelope Profile,WPG会列出所有自定义的EDI消息封装格式。
  2. 选择右上角的Create自定义封装格式,输入名字,选择支持的EDI标准,我们选择X12

    图 17: 选择X12标准
    选择X12标准

  3. 按照下图输入信息。这些信息涉及到EDI X12标准中的订单消息规范,在此不详细描述。

    图 18: 一般属性
    一般属性



    图 19: Interchange属性
    Interchange属性



    图 20: 组属性
    组属性



    图 21: 事务属性
    事务属性

  4. 保存即完成了自定义EDI封装格式的配置。如果参与者连接中需要用到EDI文档,我们就可以在参与者连接的属性中为EDI文档指定这种封装格式,以便WPG能够对其进行封装并且传送。

2.3 创建目标

现在XML到EDI的映射已经创建完毕,我们需要配置WebSphere Partner Gateway来使用这个映射。首先创建目标,以便WPG能够接收源文档。在上述场景中,我们使用JMS目标。

创建JMS目标需要首先对WebSphere MQ进行配置,以使WebSphere MQ能够支持JMS消息。作者的上一篇文章中已经介绍了如何配置WebSphere MQ以及创建JMS目标,因此在这里只是简单的介绍如何创建JMS目标。

  1. 以hubadmin登陆WPG的社区控制台
  2. 选择Hub Admin->Hub Configuration->Targets, WPG将显示现有的目标列表。
  3. 选择Create Target
  4. 在Transport列表中选择JMS,按图所示输入名字、描述、JMS Provider URL, JMS Queue name, JMS Factory Name, JNDI Factory Name.

    图 22: 创建JMS目标
    创建JMS目标

    其中JMS Provider URL是保存JMS配置的目录(在JMSAdmin.config文件中的PROVIDER_URL定义)加上使用的JMS的上下文环境的名字。 JMS Queue Name和JMS Factory Name在定义JMS的上下文环境中指定,而JNDI Factory Name对应于JMSAdmin.config中的INITIAL_CONTEXT_FACTORY。如果没有相应的JMS Queue Name,则需要创建它。详细信息请参见 http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0610_cuijuntao2/index.html
  5. 保存,JMS目标的配置完成。

2.4 创建参与者和入口

  1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Profiles->Community Participant.

    图 23: 选择参与者
    选择参与者

  2. 选择右上角的Create,新建一个参与者,填入如下信息,然后保存。

    图 24: 新建参与者
    新建参与者

    在此场景中,需要两个参与者,商场和合作伙伴,因此重复步骤1,2。根据如下参数创建另一个参与者:

    参与者信息:
                            
    Company Login Name: companya
    Participant Display Name: Company A
    Participant Type: Community Participant
    BusinessID Type: Freeform
    Identifier: companya
    Gateway Type: Production
    IP: localhost.
                

    参与者创建完毕。

    在图1的场景中,需要将EDI文档发送到合作伙伴的入口处,因此我们需要为合作伙伴(companya)创建入口。

  3. 选择参与者companya,然后选择导航栏上的Gateway,点击Create新建一个入口。在此场景中,需要使用JMS入口,因此我们创建JMS入口。
  4. 在Transport中选择JMS,输入如下信息,保存。

    图 25: JMS入口设置
    JMS入口设置

    Address, JMS Factory Name, Queue Name和JMS JNDI Factory Name与建立JMS目标相同,唯一不同的是我们需要指定放入JMS消息队列中的消息格式,也就是JMS Message Class和JMS Message Type。

2.5 创建XML的格式

在通过WebSphere Partner Gateway发送XML文档时,WebSphere Partner Gateway需要知道XML文档的格式,因此我们需要在WPG中创建我们使用的XML文件的格式。

  1. 以hubadmin登陆WPG社区控制台。
  2. 选择Hub Admin->Hub Configuration->XML Formats,然后选择Create XML Format
  3. 输入以下信息:

    图 26: 创建XML格式
    创建XML格式

    其中TEST表示XML字典名,XML表示文件类型是XML格式。Identifier Type Root Tag为purchaseOrder表示WPG将根据XML文件的根标签来判断XML文件的格式。如果根标签是purchaseOrder,则符合此类型。Source BusinessID和TargetBusinessID分别表示发送方和接受方的ID。对于此类型的XML文件,Source BusinessID始终是companye,而Target Business ID根据XML文件的supplier变化。对于此类型的XML文件,源文档采用PURCHASEORDER格式。

    自定义XML格式创建完毕。

2.6 使用XML样式表创建验证图(validation map)

本节介绍如何创建验证图来验证上面自定义的XML文档格式。

  1. 以hubadmin登陆WPG社区控制台。
  2. 选择Hub Admin->Hub Configuration->Maps->Validation Maps,然后选择Create
  3. 选择2.1中指定的XML样式表,点击Save.

    图 27: 添加验证图
    添加验证图

  4. 选择Manage Validation Maps,WPG会显示已有的验证图列表。

    图 28: 验证图列表
    验证图列表

  5. 选择前面的放大镜图标,然后选择PURCHASEORDER文档流,点击保存

    图 29: 为验证图选择合适的文档流
    为验证图选择合适的文档流

    这表明purchaseOrder.xsd验证图将用来验证TEST字典下的PURCHASEORDER流。

    验证图创建完毕。

2.7 创建自定义的动作

XML文档转换到EDI文档需要经过下面的三个步骤:XML验证,XML转换和EDI验证。WebSphere Partner Gateway并没有内置这个动作,但它提供了每个单独的动作,我们需要将它们组装起来。

  1. 以hubadmin登陆WPG社区控制台。
  2. 选择Hub Admin->Hub Configuration->Actions,然后选择Create。选择下图所示的三个处理器,并且选中Enabled,然后保存。

    图 30: 创建自定义的动作
    创建自定义的动作

    创建完自定义的动作之后,WebSphere Parnter Gateway就能够根据指定的动作对XML消息进行验证,转换和对转换后的EDI进行验证了。

2.8 修改参与者的B2B能力

WebSphere Partner Gateway采用严格的限制来控制用户发送不必要的文档。如果不指定用户能够发送何种类型的文档,则用户在WPG中将会不能发送和接收任何类型的文档。因此我们需要为商场和合作伙伴指定相应的B2B能力,以告诉WPG允许商场工作人员和合作伙伴发送或接收相应类型的文档。

  1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Profiles->Community Participant.
  2. 点击Search按钮,在结果页面中选择Company E
  3. 选择B2B Capabilities
  4. 选择Package: None (Set Source),然后选择Protocol: Test (Set Source),再选择Document Flow: PURCHASEORDER (Set Source)。然后选择Package: N/A (Set Source),选择Protocol: X12V4R1 (Set Source),选择Document Flow: 850 (Set Source)。如下图所示。

    图 31: 修改Company E的B2B能力
    修改Company E的B2B能力


    修改Company E的B2B能力

    这样Company E就能发送None/Test字典下的PURCHASEORDER文档和N/A/X12V4R1下的850文档了。因为Company E需要对转换后的EDI文档进行封装,以便发送到Company A,因此需要允许Company E发送N/A/X12V4R1/850文档。

  5. 选择Account Admin->Profiles->Community Participant.
  6. 点击Search按钮,在结果页面中选择Company A
  7. 选择B2B Capabilities
  8. 首先选择Package: N/A (Set Target),选择Protocol: X12V4R1 (Set Target),选择Document Flow: 850 (Set Target),因为WPG首先把XML文档转换为N/A/X12V4R1/850,这可以从2.2.4节中的映射可以看出。然后选择Package: None (Set Target),选择Protocol: EDI-X12 (Set Target),再选择Document Flow: ISA (Set Target)。如下图所示。

    图 32: 修改Company A的B2B能力
    修改Company A的B2B能力


    修改Company A的B2B能力

    这样Company A就能接收EDI-X12字典下的ISA(标准)文档了。

2.9 创建必需的通道

通道表示在目标和入口之间的处理流程,包括文档的接收、解密、验证、封装和发送。修改参与者的B2B能力允许参与者能够发送或接收相应格式的文档,而创建通道则告诉WebSphere Partner Gateway允许文档流的存在。

  1. 在导航栏中选择Hub Admin->Hub Configuration->Document Flow Definition

    图 33: 选择Document Flow Definition
    选择Document Flow Definition

  2. Manage Document Flow Definitions页面中,选择Manage Interactions,在Manage Interactions页面中,选择Create Interaction。然后选择源文档为None/Test/PURCHASEORDER,目标文档为N/A/X12V4R1/850,Transformation map选择XML_EDI_PO,动作选择XML Validate, XML Translate and EDI Validate.

    图 34: 创建通道
    创建通道

  3. 点击Save保存。此通道完成PURCHASEORDER文档向X12V4R1 850格式的文档转换。但在消息接收端,需要以Package:None的方式接收,而在Package:None下面,只有EDI X12等标准传输格式。因此WPG需要将N/A/X12V4R1/850格式转换为None/EDI-X12/ISA格式,需要建立另外一个通道。
  4. 建立另外通道,如下图所示。Transformation map不需要选择,WPG只需用指定的EDI封装格式封装X12V4R1/850的消息就可以得到EDI-X12/ISA的消息。因此Action选择Pass Through,不进行任何处理。封装格式的指定在下面会有讲述。

    图 35: 创建另外的通道
    创建另外的通道

  5. 另外我们需要添加文档格式的属性以便于指定这些属性,比如验证文档等。在Manage Document Flow Definitions页面中,选择None/TEST,然后选择PURCHASEORDER文档前面的Edit attribute value
  6. 在接下来的窗口中,选择Add Attributes,然后选中Validation Map和Interchange Identifier

    图 36: 为文档流添加属性
    为文档流添加属性


    为文档流添加属性

    Validation Map表示为PURCHASEORDER文档格式指定验证的样式表,而Interchange Identifier表示发送方的Business ID.

  7. 重复步骤5,6,为N/A/X12V4R1/850添加属性Envelope Profile, Validation Map, Validation Level, Max Validation Error Level, Char set Validation Table, Alphanumeric validation table, Interchange Identifier。
  8. 重复步骤5,6,为None/EDI-X12/ISA添加属性Allow a TA1 request,Discard Envelope if any errors。

2.10 创建参与者连接

修改参与者的B2B能力允许参与者能够发送或接收相应格式的文档,创建自定义的动作告诉WebSphere Partner Gateway使用何种处理器对文档进行处理,但我们还需要告诉WebSphere Partner Gateway对文档进行什么样的处理,通道就是实现这种功能的配置。通道根据接收方和发送方来判断文档应该进行何种处理,以及处理时的参数、映射文件、动作等。

  1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Participant Connections,WPG会出现Manage Connections页面,选择发送方和接收方然后点击Search,WPG会显示发送方和接收方之间可以使用的连接。

    图 37: 参与者连接列表
    参与者连接列表

    连接只有在相应的通道被创建并且参与者的B2B能力被开启之后才会显示,因此确保需要的通道已经根据2.8中的方法创建,相应的B2B能力已经根据前面的方法开启。
  2. 参与者连接None/Test/PURCHASEORDER->N/A/X12V4R1/850以及N/A/X12V4R1/850->None/EDI-X12/ISA默认是关闭状态,点击Activate可以激活它。

    图 38: 激活参与者连接
    激活参与者连接

  3. 分别点击两个连接的Gateways设置参与者所用的入口。因为Geteway用来接收文档,因此只要设置接收方的Gateway就可以了。

    图 39: 使用的入口
    使用的入口

  4. 点击None/Test/PURCHASEORDER->N/A/X12V4R1/850源端的Attributes设置None/Test/PURCHASEORDER的属性。

    图 40: 连接属性
    连接属性

  5. 选择Document Flow: PURCHASEORDER(ALL),然后为Validation Map选择puchaseOrder.xsd验证图,在Interchange Identifier里输入companye,保存。

    图 41: 修改文档流的属性
    修改文档流的属性

  6. 点击None/Test/PURCHASEORDER->N/A/X12V4R1/850的目标端的Attributes设置N/A/X12V4R1/850的属性
  7. 选择Document Flow: 850(ALL),为Envelope Profile选择Profile_E,在Interchange Identifier里输入companya,其他留空,然后保存。

2.11 测试

至此,XML到EDI的转换配置已全部完成,可以进行测试了。我们建立的目标是JMS目标,因此测试时需要把XML消息放入对应的MQ队列中,然后再从参与者companya入口读取对应的EDI消息即可。另外WebSphere Partner Gateway的社区控制台提供了消息及事务查看器,可以直接在其控制台查看消息的发送和接收情况。

  1. 将如下的XML消息放入JMS队列inQ所对应的MQ队列。等待几秒钟,观察消息是否已被读走,如果消息已被读取,则说明JMS目标工作正常。

    XML消息:
                            
    <?xml version="1.0" encoding="utf-8"?>
    <purchaseOrder>
        <orderID>001</orderID>
        <requester>companye</requester>
        <supplier>companya</supplier>
        <shipmentAddress>333 Huai Hai Road</shipmentAddress>
        <productID>A001</productID>
        <quantity>5</quantity>   
        <date>20060815</date>
    </purchaseOrder>
              

  2. 以hubadmin登陆WPG的社区控制台。选择Viewers->Document Viewer,点击Search。WebSphere Partner Gateway将显示处理的文档事务列表。

    图 42: 转换事务列表
    转换事务列表

    可以看到WPG发生了两个转换,第一从TEST/PURCHASEORDER->X12V4R1/850,第二个从EDI-X12/ISA->EDI-X12/ISA。第二种转换其实发生在X12V4R1/850->EDI-X12/ISA之间,也就是EDI的封装过程。
  3. 选择TEST/PURCHASEORDER->X12V4R1/850前的放大镜图标,然后在Event Filter选择Debug,则可以看到文档的处理日志:

    图 43: 转换日志
    转换日志

    Channel lookup successful表示参与者连接和通道被成功找到,WebSphere Parnter Gateway会根据参与者连接的设置来对文档进行处理。Validation successful表示使用XML样式表验证XML文件成功。Current Map Name表示找到用于转换的转换映射,将用其对文档进行转换。EDI Transaction Queued for Enveloping表示已经转换成功,EDI等待被封装。EDI Transaction Enveloped表示EDI封装完毕。
  4. 选择TEST/PURCHASEORDER的文档图标,可以查看XML文档。

    图 44: 源XML文档
    源XML文档

  5. 选择X12V4R1/850的文档图标,可以查看转换后的EDI消息:

    图 45: 转换后的EDI消息
    转换后的EDI消息

    EDI消息还没有经过封装。在第二种转换EDI-X12/ISA->EDI-X12/ISA中,EDI消息将被封装为完整的EDI消息发送。
  6. 选择EDI-X12/ISA的文档图标,可以查看封装后的EDI消息:

    图 46: 封装后的EDI消息
    封装后的EDI消息

  7. 使用WebSphere MQ Explorer查看companya的入口JMS对应的MQ队列是否有消息出现。如果存在,则说明JMS入口工作正常。

至此我们已经完成了XML->EDI文档的转换和测试。在图2所示的场景中,我们需要将转换后的EDI文档在转换为XML文档。配置和转换过程与上面类似。不同的是,我们在第二个场景中使用了一个技巧,就是将XML->EDI的转换使用的入口(Gateway)作为EDI->XML转换使用的目标(Target),为WebSphere Partner Gateway提供了一个临时存储文件的地方。这样当XML->EDI转换完成后,WebSphere Partner Gateway可以通过此目标立即读取EDI数据,并且进行EDI->XML的转换。





回页首


3. 使用WebSphere Partner Gateway的建议

本章介绍在使用WebSphere Partner Gateway的一些建议,这些建议可以帮助减少问题的发生。

3.1 使用JMS目标或者入口

如果在入口或者目标的配置上有两种方式可以选择:文件系统和JMS,最好使用JMS方式的入口或者目标。因为JMS方式的入口或者目标更加安全可靠,性能方面更好,而且可以很方便的与WebSphere Process Server或者WebSphere Message Broker集成。

在图2的示例场景中,我们原来使用的是文件系统格式的临时入口和目标,但在系统运行中,我们发现这个临时入口和目标不太稳定,经常发生丢失消息的现象,并且速度也不尽如人意。后来,我们采取JMS方式的入口和目标,读取速度不仅明显加快,而且很好出现丢失消息的现象。

另外,通过JMS可以很方便的与其他系统,比如WebSphere Process Server或者WebSphere Message Broker集成,与WebSphere Message Broker集成的方法请参阅作者的文章 Integrating WebSphere Partner Gateway and WebSphere Message Broker using JMS and WebSphere MQ

3.2 关闭不必要的B2B能力

如果某个用户不需要某种B2B能力,则不需要为这个用户开启这种能力。这样可以避免用户的误操作或者有意的去做某种破坏性操作。如果和这种能力有关的通道已经存在,则用户就可以使用这个通道来进行未经授权的相应的文档转换和发送操作,这对于企业来说是危险的和不可预知的。





回页首


4. 总结

WebSphere Partner Gateway提供了强大的文档处理能力,使得它能够在不同的B2B环境中集成不同的应用程序。它能够处理不同格式、不同封装格式、不同传输方式的文档, 这使得它的应用领域非常广泛。本文介绍了如何利用WebSphere Partner Gateway来进行XML和EDI文档格式的相互转换。另外本文简单介绍了一些在实践过程中的心得和体会。






回页首


下载

描述名字大小下载方法
转换文件示例XML_EDI_PO.zip11.1KBHTTP
关于下载方法的信息


参考资料



关于作者

崔俊涛,IBM 上海全球实验室的软件工程师。在 SAL_FIT 部门工作,现正致力于自动化测试的开发和研究。他感兴趣的技术有 SOA, EAI。你可以通过邮件 cuijunt@cn.ibm.com 与他联系。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款