要使能在 WebSphere Data Interchange 和 WebSphere Partner Gateway 之间进行通信,您需执行下面的设置和配置任务:
设置环境的第一步是配置 WebSphere MQ 互通信。互通信意味着将消息从一个队列管理器发送到另一个队列管理器。第一步是为 WebSphere Data Interchange 系统和 WebSphere Partner Gateway 系统定义队列管理器(及相关对象)。如果您打算双向发送消息,那么请在两个系统上都设置源队列管理器和目标队列管理器。在源队列管理器上,定义发送方通道、远程队列定义以及传输队列。在目标队列管理器上,定义接收方通道和目标队列。
本部分向您说明了用来设置样本方案所需的队列管理器和相关对象的值。在本方案中,计算机 A 和计算机 B 都安装了 WebSphere MQ V5.3。所以第一步是在计算机 A 和计算机 B 上创建队列管理器,以分别供 WebSphere Data Interchange 和 WebSphere Partner Gateway Enterprise Edition 使用。
要使用 WebSphere MQ 将消息从一个队列管理器发送到另一个队列管理器,您需要定义以下对象:
在本样本方案中,计算机 A 和计算机 B 充当发送方和接收方。因此,您必须在每台计算机上定义一些对象。
表 73 列出了为将计算机 A 和计算机 B 设置为发送方和接收方所需创建的对象。
WebSphere MQ 对象 | 计算机 A | 计算机 B |
---|---|---|
队列管理器 |
WDI32_QM |
HUB_QM |
发送方通道 |
TO.HUB60 |
TO.WDI32 |
接收方通道 |
TO.WDI32 |
TO.HUB60 |
远程队列 |
EDI_OUT_A |
EDI_OUT_B |
传输队列 |
XMITQ_A |
XMITQ_B |
本地队列 |
EDI_IN_A |
EDI_IN_B |
本地队列 |
XML_IN_A |
XML_IN_B |
本地队列 |
XML_OUT_A |
XML_OUT_B |
图 30 显示了计算机 A 与计算机 B 之间消息流,从而指出了表 73 中列出的 WebSphere MQ 对象的角色。
根据您的 WebSphere MQ 平台,您可以使用一些不同的方法来定义这些目标。例如,您可以在 Windows 上使用 WebSphere MQ Explorer 来定义对象。
要使 WebSphere Data Interchange 从 WebSphere MQ 队列接收消息并将 EDI 消息写到队列,您必须在 WebSphere Data Interchange 客户机中配置概要文件。通过使用 WebSphere Data Interchange 客户机,您将创建以下概要文件,在接下来的几部分中描述了这些概要文件:
在此样本方案中,WebSphere Data Interchange 接收来自 WebSphere MQ 队列 XML_IN_A 的 XML 消息并将转换结果写入 WebSphere MQ 队列 EDI_OUT_A 中。这称为 XML 到 EDI 转换。WebSphere Business Integration 还在 WebSphere MQ 队列 EDI_IN_A 上接收来自 WebSphere Partner Gateway Enterprise Edition 的 EDI,并将转换结果写到 XML_OUT_A 队列中。
“MQSeries 队列概要文件”包含有关 WebSphere MQ 消息队列的信息。表 74 显示要为每个概要文件配置的属性。
MQ 属性 | 描述 |
---|---|
队列概要文件标识 |
用来命名概要文件的唯一标识(逻辑名) |
完整队列名 |
WebSphere MQ 队列的实际名称 |
队列管理器名 |
WebSphere MQ 队列管理器的实际名称 |
描述 |
用来标识概要文件用途的任何字符串 |
最大长度 |
WebSphere MQ 中配置的可达到的最长消息 |
破坏性读取 |
如果选择这项,那么这些读取操作会导致 WebSphere Data Interchange 在读取 WebSphere MQ 队列中的消息时除去该消息。 |
同步点控制 |
选中该属性时,队列消息的读和写都处于同步点控制之下。如果同步点控制有效的话,那么直到 WebSphere Data Interchange 发出同步点,才会对消息队列进行修改。 |
因为您正在处理 WebSphere MQ 队列,所以对于每一个队列都需要 WebSphere Data Interchange 中有一个“MQSeries 队列概要文件”。总共要创建四个 MQSeries 队列概要文件,与消息流中使用的每个 WebSphere MQ 队列一一对应。从 WebSphere Data Interchange 客户机的设置区域,您将:
表 75 列出了您创建的每个 MQSeries 队列概要文件中指定的实际参数。 对这里给出的队列使用从 XML 到 EDI 的转换。
队列属性 | XML_IN_A 的值 | EDI_OU_A 的值 |
---|---|---|
队列概要文件标识 | XML_IN_A | EDI_OU_A |
完整队列名 | XML_IN_A | EDI_OUT_A |
队列管理器名 | WDI32_QM | WDI32_QM |
破坏性读取 |
选中 |
选中 |
同步点控制 |
选中 |
选中 |
队列属性 | EDI_IN_A 的值 | XML_OU_A 的值 |
---|---|---|
队列概要文件标识 | EDI_IN_A | XML_OU_A |
完整队列名 | EDI_IN_A | XML_OUT_A |
队列管理器名 | WDI32_QM | WDI32_QM |
破坏性读取 |
选中 |
选中 |
同步点控制 |
选中 |
选中 |
网络概要文件为 WebSphere Data Interchange 定义了您与贸易伙伴进行通信所用网络的特征。对于本方案,您将创建并配置与早先创建的 WebSphere MQ 队列进行通讯的网络概要文件。
表 77 显示了要为网络概要文件配置的属性。
网络属性 | 描述 |
---|---|
网络标识 |
用来命名概要文件的唯一标识 |
通信例程 |
构建网络命令并调用网络程序来处理命令的程序名 |
网络程序 |
被通信例程调用以处理请求的程序 |
网络参数 |
网络程序需要的参数 |
对于该样本方案,您将创建并配置与早先创建的 WebSphere MQ 队列进行通讯的网络概要文件(请参阅 MQSeries(R)队列概要文件),如下所示:
此网络概要文件在从 XML 到 EDI 方案使用。表 78 列出了为 HUB_IN 所指定的实际参数。
网络属性 | HUB_IN 概要文件的值 |
---|---|
网络标识 | HUB_IN |
通信例程 | VANIMQ |
网络程序 | EDIMQSR |
网络参数 | SENDMQ=EDI_OU_A RECEIVEMQ=XML_IN_A |
该网络概要文件用于从 WebSphere Partner Gateway Enterprise Edition 接收的 EDI 的转换中。第二个网络概要文件是必需的,因为 WebSphere Partner Gateway Enterprise Edition 将消息放置在包括 RFH2 头的 WebSphere MQ 队列上。表 79 列出了 HUB_OUT 的属性。
网络属性 | HUB_OUT 概要文件的值 |
---|---|
网络标识 | HUB_OUT |
通信例程 | VANIMQ |
网络程序 | EDIRFH2 |
网络参数 | SENDMQ=XML_OU_A RECEIVEMQ=EDI_IN_A |
邮箱概要文件中包含了一些信息,WebSphere Data Interchange 需要用这些信息标识组织中接收要转换文档的个人和组。表 80 显示了要为每个邮箱概要文件配置的属性。
邮箱属性 | 描述 |
---|---|
邮箱标识 |
用来命名概要文件的唯一标识 |
网络标识 |
早先创建的网络概要文件的网络标识 |
您为每个 WebSphere MQ 队列创建邮箱概要文件,以标识组织中的个人与组,如下所示:
表 81 列出了每个“邮箱”概要文件的实际参数。
邮箱属性 | XML_IN_A 的值 | EDI_OU_A 的值 |
---|---|---|
邮箱标识 | XML_IN_A | EDI_OU_A |
网络标识 | HUB_IN | HUB_IN |
接收文件 | XML_IN_A | EDI_OU_A |
表 82 列出了每个邮箱的属性。
邮箱属性 | EDI_IN_A 的值 | XML_OU_A 的值 |
---|---|---|
邮箱标识 | EDI_IN_A | XML_OU_A |
网络标识 | HUB_OUT | HUB_OUT |
接收文件 | EDI_IN_A | XML_OU_A |
“服务概要文件”允许您输入实用程序命令并定义在执行该命令期间将用到的所有文件。
对于本样本方案,您将采取下列步骤:
PERFORM TRANSFORM WHERE INFILE(XML_IN_A) SYNTAX(X) OUTTYPE(MQ)OUTFILE(EDI_OU_A)
表 83 列出了公共文件属性。
公共文件属性 | 值 |
---|---|
跟踪文件 |
..\trk\xml_in.trk |
异常文件 |
..\xex\xml_in.xex |
工作文件 |
..\wrk\xml_in.wrk |
报告文件 |
..\rpt\xml_in.rpt |
查询文件 |
..\qry\xml_in.qry |
PERFORM TRANSFORM WHERE INFILE(XML_IN_A) SYNTAX(X) OUTTYPE(MQ) OUTFILE(XML_OU_A)
表 84 列出了公共文件属性。
公共文件属性 | 值 |
---|---|
跟踪文件 |
..\trk\edi_in.trk |
异常文件 |
..\xex\edi_in.xex |
工作文件 |
..\wrk\edi_in.wrk |
报告文件 |
..\rpt\edi_in.rpt |
查询文件 |
..\qry\edi_in.qry |
如前一部分所描述的那样,当创建了概要文件之后,可以导入转换数据所需的任何映射。然后编译转换映射并为每个映射设置规则。您使用 WebSphere Data Interchange 客户机来执行这些任务。请参阅 WebSphere Data Interchange 文档以获取信息。
在本章前面提到过的,WebSphere Partner Gateway Enterprise Edition 可以使用“Java 消息服务(JMS)”的 WebSphere MQ 实现与 WebSphere Data Interchange 进行集成。
本部分概括了在计算机 B 上创建 JMS 环境的有关步骤:
WebSphere MQ 的 Java 类和 WebSphere MQ 的 JMS 类是内置在 WebSphere MQ for Windows V5.3 中的。
使用 WebSphere MQ 内可用的 JMSAdmin 工具在 JNDI 中来创建 JMS 对象。要获取有关如何创建称为JMSAdmin.config的缺省配置文件,请参阅中心配置指南。
创建用于本教程的 JMS 对象:
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory PROVIDER_URL=file:/opt/mqm/java/JNDI
/opt/mqm/java/bin
在调用 JMSAdmin 工具之前,请确保您的 CLASSPATH 包含下列各项:
/opt/mqm/java/lib/jms.jar /opt/mqm/java/lib/com.ibm.mq.jar /opt/mqm/java/lib/com.ibm.mqjms.jar /opt/mqm/java/lib/jta.jar /opt/mqm/java/lib/connector.jar /opt/mqm/java/lib/jndi.jar /opt/mqm/java/lib/providerutil.jar /opt/mqm/java/lib/fscontext.jar
注:上面这些与 Linux(R)相关的项假定您正在使用的是基于文件的 JNDI。
要创建所需的 JMS 对象,请使用 JMSAdmin 工具。对于本样本方案,您将:
DEF CTX(WdiJms)
CHG CTX(WdiJms)
DEF QCF(HUB60_QM_QCF) TRAN(CLIENT) HOST(IP_COMPUTER_B) PORT(9999) CHAN(java.channel) QMANAGER(HUB60_QM)
DEF Q(EDI_IN_B) QMANAGER(HUB60_QM) QUEUE(EDI_IN_B)
DEF Q(EDI_OUT_B) QMANAGER(HUB60_QM) QUEUE(EDI_OUT_B)
END
WebSphere Partner Gateway 是不同社区参与者与内部过程之间的通信层。当设置 WebSphere Partner Gateway 以处理 EDI 文档时,您可以配置它以:
中心配置指南提供了有关如何配置 WebSphere Partner Gateway Enterprise Edition 和 Advanced Edition 的完整信息。本部分提供了一个配置本样本方案中所描述的 WebSphere Partner Gateway Enterprise Edition 的示例。它描述了下列步骤:
参与者概要文件将公司标识到系统。您可以在 WebSphere Partner Gateway Enterprise Edition 社区控制台中为 Partner One 和 Partner Two 创建参与者。
创建参与者概要文件以表示计算机 A 和计算机 B,它们是 Partner One 拥有的两个系统。
要创建该参与者概要文件,请采取以下步骤:
字段名 | 值 |
---|---|
公司登录名 |
partnerOne |
参与者显示名 |
Partner One |
参与者类型 |
社区管理者 |
状态 |
已启用 |
供应商类型 |
其它 |
Web 站点 |
http://IP_COMPUTER_A 其中,IP_COMPUTER_A 是计算机 A 的因特网协议(IP)地址 |
企业标识类型 |
自由格式 |
企业标识的标识符 |
123456789 |
IP 地址网关类型 |
生产 |
IP 地址 |
IP_COMPUTER_A 其中,IP_COMPUTER_A 是计算机 A 的因特网协议(IP)地址 |
注:要创建“企业标识类型”和“企业标识”标识,首先单击“企业标识”下面的新建按钮。企业标识必须是唯一的。类似地,要创建与 IP 地址相关的详细信息,请单击在“IP 地址”标题下的新建按钮。
WebSphere Partner Gateway Enterprise Edition 使用“企业标识”(在表 85 中定义的)来标识文档的发送方或接收方。当接收到 ANSI X12 EDI 事务时,读取交换发送方数据与接收方数据,以确定事务的源与目标。
接下来创建用以表示 Partner Two 的社区参与者。要创建该参与者,请采取以下步骤:
字段名 | 值 |
---|---|
公司登录名 |
partnerTwo |
参与者显示名 |
Partner Two |
参与者类型 |
社区参与者 |
状态 |
已启用 |
供应商类型 |
其它 |
Web 站点 |
http://IP_COMPUTER_C 其中,IP_COMPUTER_C 是计算机 C 的因特网协议(IP)地址 |
企业标识类型 |
自由格式 |
“企业标识”的标识 |
987654321 |
IP 地址网关类型 |
生产 |
IP 地址 |
IP_COMPUTER_C 其中,IP_COMPUTER_C 是计算机 C 的因特网协议(IP)地址 |
您可以通过社区控制台在 WebSphere Partner Gateway Enterprise Edition 中为每个参与者定义 B2B 能力。为参与者定义好 B2B 能力之后,您可以定义用于支持参与者之间特定业务协作类型的有效文档流定义。
要为 Partner One 设置 B2B 能力,请采取以下步骤:
通过单击角色不活动图标来激活 B2B 能力。 对于本样本,您只要配置实现方案所需的 B2B 能力。
要将 Partner One 的源封装方式和目标封装方式设置成“无”,您将:
要为 Partner Two 设置 B2B 能力,请采取以下步骤:
要将 Partner Two 的源封装方式和目标封装方式设置成“无”,请采取下列步骤:
接下来,为 Partner Two 更新 AS 定义,以确保发送到 Partner Two 的 AS2 的消息处置通知(MDN)返回到正确的地址,如下所示:
该地址用于接收 AS1 的 MDN。
http://IP_COMPUTER_B:PORT/bcgreceiver/submit
WebSphere Partner Gateway 中的网关定义了一个网络点,该点充当到另一个网络的入口。网关包含了告诉 WebSphere Partner Gateway 如何将文档传递到企业应用集成(EAI)层的信息。
Partner Two 使用 AS2 将 EDI 文档发送到 Partner One。Partner One 的网关用于将通过 AS2 接收到的 EDI 文档发送到 JMS 队列,最后将该文档发送到 WebSphere Data Interchange 以进行转换。
要为 Partner One 创建新的网关,请采取以下步骤:
字段名 | 值 |
---|---|
网关名 |
JMStoPartnerOne |
传输 |
JMS |
目标 URI |
file:///opt/mqm/java/JNDI/WdiJms |
JMS 工厂名 |
HUB60_QM_QCF |
JMS 消息类 |
TextMessage |
JMS 消息类型 |
TextMessage |
JMS 队列名 |
EDI_OUT_B |
JMS JNDI 工厂名 |
com.sun.jndi.fscontext.RefFSContextFactory |
使 JMStoPartnerOne 成为 Partner One 的缺省网关,如下所示:
Partner One 通过 JMS 队列将 EDI 文档发送到 WebSphere Partner Gateway Enterprise Edition。Partner Two 的网关用于通过 AS2 将接收到的 EDI 文档发送到 Partner Two。
要为 Partner Two 创建新的网关,请采取以下步骤:
网关名 |
AS2toPartnerTwo |
传输 |
HTTP/1.1 |
目标 URI |
http://IP_COMPUTER_C/input/AS2 |
用户名 |
partnerOne |
密码 |
partnerOne |
有关在 WebSphere Partner Gateway - Express 中设置这些属性的示例,请参阅配置 WebSphere Partner Gateway - Express。
注意 AS2toPartnerTwo 显示为“联机”,其状态为已启用。
使 AS2toPartnerTwo 成为 PartnerTwo 的缺省网关,采取以下步骤:
文档流定义是“元信息”的集合,它定义了参与者的文档处理能力。要使系统能处理业务文档,必须将两个或多个文档流定义链接在一起以创建交互。
要创建 Partner One 与 Partner Two 之间的交互,请执行以下步骤:
参与者连接是一种机制,它使系统能够处理文档,并使系统能在社区管理者及其各个参与者之间路由文档。连接包含了正确交换每个文档流所必需的信息。
要在 Partner One 和 Partner Two 之间创建参与者连接,请采取以下步骤:
文档流类型 | 源 | 目标 |
---|---|---|
包 |
无(不适用) |
AS(不适用) |
协议 |
EDI-X12(ALL) |
EDI-X12(ALL) |
文档流 |
ISA(全部) |
ISA(全部) |
要创建以 Partner Two 为源而以 Partner One 为目标的参与者连接,请采取以下步骤:
文档流类型 | 源 | 目标 |
---|---|---|
包 |
AS(不适用) |
无(不适用) |
协议 |
EDI-X12(ALL) |
EDI-X12(ALL) |
文档流 |
ISA(全部) |
ISA(全部) |
“目标列表”屏幕提供了位置信息,该位置信息使 WebSphere Partner Gateway 的文档管理器能够根据入站文档的传输类型从适当的系统位置访存文档。您可以根据传输类型创建单独的目标配置。文档管理器然后可以轮询多个 Web、FTP 以及 POP 邮件服务器的文档存储库位置(包括内部目录和 JMS 队列)以获取入站文档。
在文档管理器根据预定义的目标从该位置检索文档后,路由基础结构可以根据通道配置处理该文档。
要从 WebSphere Data Interchange 接收 EDI 事务,请通过执行下列步骤来创建新的 JMS 目标:
目标属性 | 值 |
---|---|
目标名 |
WdiJmsListener |
传输 |
JMS |
网关类型 |
生产 |
JMS 提供程序 URL |
file:///opt/mqm/java/JNDI/WdiJms |
JMS 队列名 |
EDI_IN_B |
JMS 工厂名 |
HUB60_QM_QCF |
JNDI 工厂名 |
com.sun.jndi.fscontext.RefFSContextFactory |
还需要另一个目标来从 Partner Two 通过 AS2 来接收 EDI。请采取下列步骤以创建该目标:
目标名 |
HubAS2Listener |
传输 |
HTTP/S |
网关类型 |
生产 |
URI |
/bcgreceiver/submit
注: HTTP/S 接收方的 URI 必须总是以 /bcgreceiver 开始 |