级别: 中级 崔 俊涛 (cuijunt@cn.ibm.com), 软件工程师, IBM
2007 年 2 月 08 日 第 2 部分描述如何通过控制台配置 WebSphere Partner Gateway 使得其能够传输自定义的 XML 文件。在 B2B 的解决方案中,我们可能需要用到自定义的XML文件,因此我们将介绍如何在 WebSphere Partner Gateway 中定义 XML 文件的格式以及如何验证 XML 文件。
摘要
此文章分为三部分,第 1 部分介绍 WebSphere Partner Gateway 及其必须软件比如 WebSphere MQ 的安装和配置过程,另外我们将介绍在安装和配置过程中容易出现的问题以及如何避免这些问题。第 2 部分描述如何通过控制台配置 WebSphere Partner Gateway 使得其能够传输自定义的 XML 文件。在 B2B 的解决方案中,我们可能需要用到自定义的XML文件,因此我们将介绍如何在 WebSphere Partner Gateway 中定义 XML 文件的格式以及如何验证 XML 文件。第 3 部分介绍如何使用 WebSphere Partner Gateway 传输自定义的 EDI 文件。EDI 是电子文档传输交换的一种标准。我们将介绍如何配置 WebSphere Partner Gateway 来支持标准 EDI 文件的自定义封装格式。
1. WebSphere Partner Gateway安装和配置
1.1 WebSphere Partner Gateway安装
1.1.1必需软件
从本系列的第 1 部分我们了解到,WPG运行时组件包括了数据库和队列管理器等组件,因此WPG需要首先安装数据库和WebSphere MQ。WPG支持DB2数据库和ORACLE数据库。本文使用DB2数据库。因此必需软件有:
- DB2 UDB Enterprise Edition 8.2
- WebSphere MQ 5.3 (CSD08 or later)。本文使用WebSphere MQ V6.0。
1.1.2安装DB2 UDB Enterprise Edition 8.2
DB2的安装不是本文的重点,并且有很多参考资料,因此本文就不再罗列步骤,只列出重点的步骤。
1. 用root登陆系统,在/etc/sysctl.conf中加入两行:
kernel.msgmni = 512
kernel.sem = 250 128000 32 1024
|
2. 保存文件,并且执行如下命令使更改生效:
3. 执行如下命令,检查上面的更改是否生效:
执行命令好,可以看到下面的输出。注意改动的部分。
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 262144
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 1024
max semaphores per array = 250
max semaphores system wide = 128000
max ops per semop call = 32
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 512
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
|
4. 现在可以开始安装DB2了,可以参考其他资料。只有如下的几步不同。
5. 当显示 Select the installation type 时,安装类型选择 Custom ,然后点击 Next.
图 1:选择安装方式
6. 当显示 Select the installation action 时, 点击 Next.
图 2:选择安装动作
7. 当显示 Select the features to install 时, 展开 Application Development tools 并且选择 Base Application Development Tools ,如下所示,然后点击 Next.
图 3:选择安装特性
其他的步骤与一般的安装相同。
1.1.3安装WebSphere MQ V6.0
WebSphere MQ的安装比较简单,将安装包解压后运行下面几个命令即可。
1. 以root用户登陆,切换到WebSphere MQ的安装文件夹,然后运行下面的命令接受license:
2. 依次运行下面的命令,就完成了WebSphere MQ的服务器的安装。
rpm -i MQSeriesRuntime-6.0.0-0.i386.rpm
rpm -i MQSeriesSDK-6.0.0-0.i386.rpm
rpm -i MQSeriesServer-6.0.0-0.i386.rpm
rpm -i MQSeriesJava-6.0.0-0.i386.rpm
|
3. 如果希望安装WebSphere MQ的客户端,则依次运行下面的命令:
rpm -i MQSeriesIES30-6.0.0-0.i386.rpm
rpm -i MQSeriesConfig-6.0.0-0.i386.rpm
|
1.1.4建立用户和组
WPG需要一些用户来访问数据库,因此,我们需要建立这些用户。
- bcguser: WPG管理员使用的系统用户。
- bcgcon: 控制台组件用来访问数据库的用户。
- bcgdoc: 文档管理起用来访问数据库的用户。
- bcgrecv: 接收器用来访问数据库的用户。
这些用户都属于bcggroup组。
上述用户和组是WPG默认的用户和组,你可以更改它们,选择你喜欢的用户名或者组名。本文使用这些默认的用户名和组名。
1. 以root用户登陆,执行如下命令建立bcggroup组:
2. 执行如下命令建立bcguser用户,并且使bcguser属于三个组:bcggroup, db2grp1(DB2用户组),mqm(MQ用户组)。
useradd bcguser -g db2grp1 -G bcggroup, mqm
|
3. 执行如下命令建立bcgcon, bcgrecv, bcgdoc用户,并且使这些用户都隶属于bcggroup组。
useradd bcgcon -g bcggroup
useradd bcgdoc -g bcggroup
useradd bcgrecv -g bcggroup
|
4. 使用passwd命令更改这些用户的密码。
5. 为了使bcguser能够使用DB2的命令,我们需要在/home/bcguser/.bash_profile文件中加入一项:
. /home/db2inst1/sqllib/db2profile
|
6. 保存。现在已经成功建立了所需的用户和组。
1.1.5建立WMQ 队列管理器 (Queue Manager)
WPG的运行依赖于队列管理器,因此在安装WPG之前,需要建立队列管理器,并对其进行相应的配置,比如建立队列,建立通道(channel)等。我们利用WPG安装文件里对于MQ的配置文件来配置相应的队列管理器。
1. 以root用户登陆,切换到WebSphere Partner Gateway的安装目录,可以发现有Tools/MQSeries目录,在此目录中有BCGCreate_Queues.mqsc文件。我们将利用此文件来配置MQ。将此文件拷贝到某临时目录中,比如/tmp。
2. 切换到用户mqm:
3. 建立队列管理器。可以使用如下命令:
crtmqm -q bcg.queue.manager
|
或者使用WebSphere MQ Explorer。
如果使用命令来建立队列管理器,将会有下列消息:
图 4:创建队列管理器的响应消息
4. 更改新建的队列管理器允许的通道(channel)数量。修改文件/var/mqm/qmgrs/bcg!queue!manager/qm.ini,在文件末加上如下三行,并且在最后一行后留下一空行:
Channels:
MaxChannels = 1000
MaxActiveChannels = 1000
|
或者通过WebSphere MQ Explorer来修改此队列管理器的通道的属性。
5. 使用如下命令或者通过WebSphere MQ Explorer来启动队列管理器。
6. 切换到BCGCreate_Queues.mqsc所在的目录,运行如下命令配置队列管理器:
runmqsc bcg.queue.manager < BCGCreate_Queues.mqsc
|
可以看到如下的控制台输出:
图 5:配置队列管理器的响应消息
7. 下面我们需要为队列管理器导入发布/订阅所需的队列及通道配置。切换到/opt/mqm/java/bin目录,运行如下命令:
runmqsc bcg.queue.manager < MQJMS_PSQ.mqsc
|
8. 使用WebSphere MQ Explorer为队列管理器建立监听器(listener),监听端口为1414,通讯协议为TCP,如图所示。也可以省略这一步,通过以下命令在启动队列管理器时手动来启动监听器:
runmqlsr -m bcg.queue.manager -t tcp -p 1414 &
|
9. 至此,队列管理器配置完毕,使用如下命令或者WebSphere MQ Explorer结束队列管理器:
endmqm -i bcg.queue.manager
|
1.1.6创建数据库
WPG需要将配置信息等存入数据库,因此在安装WPG之前需要首先创建相应的数据库。幸运的是,WPG已经提供了安装向导来帮助我们配置数据库。下面我们就利用数据库安装向导来创建相应的数据库。
1. 首先确定DB2正在运行。以db2inst1用户登陆,运行命令db2start。
2. 切换到用户root:
3. 使用如下命令建立WPG的安装目录和数据库目录:
mkdir -p /opt/IBM/WPG/DBLoader/tables
|
其中/opt/IBM/WPG是将要安装WPG的目录,而DBLoader是放置数据库的目录。
4. 改变上述目录的属性使得bcguser用户以及db2grp1用户组成为目录的拥有者,并且修改其读写权限,使得db2grp1用户组对其有可写权限,这样db2inst1才能对其进行读写:
chown -R bcguser:db2grp1 /opt/IBM/WPG/DBLoader/tables
chmod 775 /opt/IBM/WPG/DBLoader/tables
|
5. 切换到WPG安装文件所在的目录,可以发现有DBLoader这个目录,在此目录中有setupLinux可执行文件,运行这个文件:
6. 当出现欢迎屏幕时,点击Next .
图 6:DBLoader欢迎窗口
7. 当出现Software License Agreement时,选择I accept the terms in the license agreement ,点击Next 。
图 7:DBLoader软件许可协议
8. 选择安装目录为/opt/IBM/WPG/DBLoader,点击Next 。
图 8:DBLoader安装目录
9. 当出现选择数据库的提示时,选择IBM DB2 8.2,点击Next。如果使用Oracle数据库,请选择Oracle 9i 9.2.0.4 or later。本文使用DB2数据库。
图 9:选择数据库
10. 当提示输入数据库用户和密码时,输入以下信息,点击Next。
Database name: bcgapps
Instance name: db2inst1
Group name: bcggroup
Owner name: bcguser
Owner password: bcguser所使用的密码。
图 10:数据库信息
11. 当出现输入数据库存储目录的屏幕时,接受默认设置,点击Next。
图 11:数据库目录设定
12. 当提示输入WPG各个运行时组件使用的用户名和密码时,输入如下信息,点击Next。
Community Console user:
User name: bcgcon
Password: bcgcon使用的密码
Document Manager user:
User name: bcgdoc
Password: bcgdoc使用的密码
Receiver user:
User name: bcgrecv
Password: bcgrecv使用的密码
Group name: bcggroup
图 12:用户配置
13. 在下一个屏幕中为公共组件选择安装目录为/opt/IBM/WPG/common,点击Next。
图 13:公用组件的安装目录
14. 选择Run the SQL files,允许安装程序在安装时创建所需的数据库。点击Next。如果不想在安装时创建数据库,可以在安装后运行/opt/IBM/WPG/DBLoader/scripts目录下面的SQL脚本文件来创建。
图 14:创建数据库
15. 当出现Summary屏幕时,点击Next。
图 15:DBLoader安装情况摘要
16. 安装完成后,点击Finish。
图 16:DBLoader安装完成
17. 为了确定数据库是否成功创建,可以检查/tmp/bcgdbloader/logs目录下的dbscript_execution.log文件。确定里面包含这样的文字:
DB20000I The CREATE DATABASE command completed successfully.
如果文件包含这样的文字,就说明数据库成功创建了。
1.1.7安装WPG
成功创建完需要的数据库之后,就可以安装WPG的运行时组件了。
1. 切换到WPG安装文件所在的目录,可以看到hub目录。在此目录中有可执行文件setupLinux,执行setupLinux:
2. 当出现欢迎屏幕时,点击Next .
图 17:WPG欢迎屏幕
3. 当出现Software License Agreement时,选择I accept the terms in the license agreement ,点击Next 。
图 18:WPG软件许可协议
4. 选择安装目录为/opt/IBM/WPG,点击Next 。
图 19:WPG安装目录
5. 当出现选择安装WPG特性的屏幕时,接受默认设置,也就是全部特性,点击Next 。
图 20:WPG安装特性
6. 输入WPG所在的机器名,点击Next 。
图 21:机器名
7. 当出现选择WAS服务器的屏幕时,选择Automatically install the embedded version of IBM WebSphere Application Server Express,点击Next 。如果需要使用已经安装在本机上WAS服务器,则选择Use WebSphere Application Server v6.0 which is already installed on this computer.
图 22:WAS服务器选择
8. 当出现选择数据库的提示时,选择IBM DB2 8.2,点击Next。如果使用Oracle数据库,请选择Oracle 9i 9.2.0.4 or later。本文使用DB2数据库。
图 23:数据库类型选择
9. 当出现配置数据库的屏幕时,输入以下信息,点击Next。
Host name: 本机机器名
Port: 50000 (DB2数据库端口号)
Owner name: bcguser
Owner password: bcguser使用的密码
Database name: bcgapps
Schema name: BCGUSER
图 24:数据库参数设置
10. 检查数据库的连接信息,点击Next。
图 25:数据库信息
11. 当提示输入WPG管理员信息时,输入如下信息,点击Next。
User name: bcguser
Password: bcguser的密码
Group name: bcggroup
图 26:WPG管理员信息
12. 在下一个屏幕中为公共组件选择安装目录为/opt/IBM/WPG/common,点击Next。
图 27:公用组件所在目录
13. 为MQ的配置输入如下信息,点击Next。
Host name: 本机机器名
Queue Manager: bcg.queue.manager
Listener port: 1414
图 28:MQ配置
14. 当出现社区控制台的配置窗口时,输入以下用户名和密码,其他信息接受默认设置,点击Next。
User name: bcgcon
Password: bcgcon的密码
图 29:社区控制台用户
15. 当出现接收器的配置窗口时,输入以下用户名和密码,其他信息接受默认设置,点击Next。
User name: bcgrecv
Password: bcgrecv的密码
图 30:接收器用户
16. 当出现文档管理器的配置窗口时,输入以下用户名和密码,其他信息接受默认设置,点击Next。
User name: bcgdoc
Password: bcgdoc的密码
图 31:文档管理器用户
17. 在RosettaNet messages窗口点击Next。
图 32:RosettaNet消息
18. 在Alert notification messages窗口点击Next。
图 33:SMTP信息
19. 当出现Summary屏幕时,点击Next。
图 34:安装汇总
20. 安装完成后,点击Finish。
图 35:安装完成
至此,我们已经完成了WPG的全部安装过程。
1.1.8验证WPG的安装
为了验证WPG的安装是否成功,我们可以尝试启动WPG的各个运行时组件,并且登陆到WPG的社区控制台来验证WPG的安装。
1. 切换到bcguser用户:
2. 使用如下命令确定DB2实例正在运行:
3. 启动WMQ队列管理器bcg.queue.manager:
4. 为队列管理器bcg.queue.manager在端口1414启动监听器:
runmqlsr -m bcg.queue.manager -t tcp -p 1414 &
|
-m参数指定需要启动监听器的队列管理器,-t指定使用的网络协议,-p指定端口,&表示此监听器在后台运行。端口可以改变,不过需要和在安装WPG时指定的MQ属性的端口一致。
5. 键入回车键回到命令行模式,启动WMQ的发布/订阅代理:
strmqbrk -m bcg.queue.manager
|
6. WPG运行需要的数据库和消息队列已经启动,现在需要启动WPG的运行时组件。
7. 进入/opt/IBM/WPG/bin目录,按顺序依次启动社区控制台、文档管理器以及接收器:
./bcgStartServer.sh bcgconsole
./bcgStartServer.sh bcgdocmgr
./bcgStartServer.sh bcgreceiver
|
8. 在另外的Windows系统中,打开浏览器,访问http://ogrdgateway.cn.ibm.com:58080/console.
图 36:WPG社区控制台登陆界面
9. 输入以下用户名和密码登陆:
User name: hubadmin
Password: Pa55word
Company: Operator
此用户名和密码为WPG初始用户名和密码。
10. 因为是首次登陆,WPG会出现更改密码的页面,输入新密码后确定。
图 37:WPG社区控制台更改密码界面
11. 在导航栏中选择Viewers->Event Viewer。当出现Event Viewer Search页面时,点击Search。
图 38:查询事件
12. 当看到如下结果,这些结果中包含成功更改用户密码的信息,说明WPG安装成功。
图 39:事件列表
1.1.9停止WPG
停止WPG组件、消息队列以及数据库的顺序和启动WPG的顺序相反。
1. 进入/opt/IBM/WPG/bin目录,依次停止接受器、文档管理器和社区控制台:
./bcgStopServer.sh bcgreceiver
./bcgStopServer.sh bcgdocmgr
./bcgStopServer.sh bcgconsole
|
2. 停止WMQ的发布/订阅代理:
endmqbrk -m bcg.queue.manager
|
3. 停止队列管理器bcg.queue.manager:
endmqm -i bcg.queue.manager
|
4. 停止队列管理器的监听器:
endmqlsr -m bcg.queue.manager
|
1.2 WebSphere Partner Gateway配置
在上面的安装过程中,安装的只是WPG的运行时组件,要想真正的使WPG运行,还需要利用社区控制台来配置配置组件。下面我们根据三种不同的配置组件(参考本系列文章的第一篇)来分别介绍其配置方法。
1.2.1 目标
目标是WPG的入口。接收器在目标监听或探测消息。目标可以是一个文件夹、JMS队列、HTTP端点或者FTP路径。下面介绍目标的配置方法。
1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Hub Admin->Hub Configuration->Targets.
图 40:选择Targets
2. 社区控制台会显示目标列表的页面,列出了WPG所有的目标。
图 41:目标列表
3. 选择Create Target来新建一个目标。Transport列表列出了WPG支持的所有目标传输类型,包括FTP, JMS, POP3, HTTP, File Directory等。FTP Directory, HTTP, File Directory等传输方式比较简单,JMS, POP3, FTP Scripting相对复杂。我们首先介绍File Directory目标的配置方式,其次介绍JMS的配置方法。
图 42:目标的传输类型
File Directory目标
4. 在Transport列表中选择File Directory,输入目标名字、描述、目录路径,其他参数可以接受默认设置。目录路径必须是以/开始的路径,并且最下层目录不能已经存在,比如directory。
图 43:File Directory目标的设置
JMS目标
JMS目标的设置相对复杂,因为WPG只支持JMS格式的目标,而我们安装的消息服务是MQ,因此需要配置MQ使得MQ能够发送和接受JMS格式的消息。
5. 以root用户登陆WPG所在的系统,更改/opt/mqm/java/bin目录下的JMSAdmin.config的文件读写权限:
chmod 775 /opt/mqm/java/bin/JMSAdmin.config
|
6. 切换到bcguser:
7. 新建一个文件夹用来存放JMS的定义:
mkdir /home/bcguser/temp/JMS
|
8. 修改JMSAdmin.config文件:
vi /opt/mqm/java/bin/JMSAdmin.config
|
9. 在JMSAdmin.config中找到两行如下的文字,然后在其前面加上#,把它们注释掉:
INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
PROVIDER_URL=ldap://polaris/o=ibm,c=us
|
10. 然后查找如下的两行文字,将其前面的#去掉:
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
#PROVIDER_URL=file:/home/bcguser/temp/JMS
|
11. 保存文件。
12. 执行如下命令启动WMQ命令行环境:
runmqsc bcg.queue.manager
|
13. 在WMQ命令行环境中建立一个MQ的队列,并且用end命令结束命令行环境:
14. 运行如下命令将JMSAdmin.config需要的Java类加入到CLASSPATH中:
CLASSPATH=$CLASSPATH:/opt/mqm/java/lib/com.ibm.mq.jar:
/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/java/lib/fscontext.jar:
/opt/mqm/java/lib/providerutil.jar:/opt/mqm/java/lib/jms.jar:
/opt/mqm/java/lib/jndi.jar:/opt/mqm/java/lib/connector.jar:
|
15. 进入/opt/mqm/java/bin目录,运行JMSAdmin:
16. 在JMSAdmin的运行环境中,运行如下的命令建立JMS的上下文环境和消息队列:
define ctx(jms)
change ctx(jms)
define qcf(WBICHub) tran(CLIENT) host(ogrdgateway)
port(1414) chan(java.channel) qmgr(bcg.queue.manager)
define q(jmsQ) queue(JMSTEST) qmgr(bcg.queue.manager)
end
|
17. 现在已经完成MQ的配置,可以转到WPG的社区控制台来建立JMS的目标了。
18. 在Transport列表中选择JMS,按图所示输入名字、描述、JMS Provider URL, JMS Queue name, JMS Factory Name, JNDI Factory Name.
图 44:JMS目标的设置
其中JMS Provider URL是保存JMS配置的目录(在JMSAdmin.config文件中的PROVIDER_URL定义)加上使用的JMS的上下文环境的名字,此上下文环境在上述的define ctx(jms)中定义。
JMS Queue Name在define q(jmsQ) queue(JMSTEST) qmgr(bcg.queue.manager)中定义,而JNDI Factory Name对应于JMSAdmin.config中的INITIAL_CONTEXT_FACTORY。
19. 保存,JMS目标的配置完成。
1.2.2 入口
入口是某个合作伙伴的文档入口,而不是WPG的入口,合作伙伴可以是拥有WPG服务器的公司或企业,也可以是其他的公司或企业。因此入口必须依赖于某个WPG的参与者,也就是合作伙伴,在配置入口之前必须首先配置合作伙伴,也就是建立用户。入口可以是远程的文件夹、JMS队列。
1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Profiles->Community Participant.
图 45:选择Community Participant
2. 选择右上角的Create,新建一个参与者,填入如下信息,然后保存。
图 46:新建参与者
3. 选择导航栏上的Gateway,点击Create新建一个入口。
图 47:参与者的入口列表
4. 和目标相似,入口也支持多种传输方式,如下图所示:
图 48:入口的传输类型
本文介绍File Directory和JMS两种方式。
File Directory入口
5. 选择File Directory,按照下图输入信息,保存即可。
图 49:File Directory入口设置
此处的Address与File Directory目标中的Document Root Path类似,都是指向某个目录,但它们的格式不同。Document Root Path以/开始,而Address以file:///开始。
JMS入口
在目标配置这节中,我们已经介绍了如何配置MQ,使得MQ能够支持JMS格式的消息。现在我们可以直接利用这种配置来建立JMS入口。
6. 选择JMS,输入如下信息,保存。
图 50:JMS入口设置
Address, JMS Factory Name, Queue Name和JMS JNDI Factory Name与建立JMS目标相同,唯一不同的是我们需要指定放入JMS消息队列中的消息格式,也就是JMS Message Class和JMS Message Type.
1.2.3 通道
通道表示在目标和入口之间的处理流程,包括文档的接收、解密、验证、封装和发送。
1. 在导航栏中选择Hub Admin->Hub Configuration->Document Flow Definition。
图 51:选择Document Flow Definition
2. 在Manage Document Flow Definitions页面中,选择Manage Interactions,在Manage Interactions页面中,选择Create Interaction。然后选择原文档和目标文档格式,根据选择来确定使用何种转换图(Transform map)和动作(Action)。我们将在后面介绍。
图 52:创建通道
3. 点击Save保存,完成通道的配置。
除了上述三种配置之外,WPG还有其他的配置,比如参与者连接(Participant connections), B2B能力(B2B Capabilities)。
1.2.4 参与者连接 (Participant Connections)
参与者连接定义了参与者之间消息处理的通道并且限制了参与者之间能够进行的交互方式。它根据参与者的B2B能力来判断参与者所能使用的通道,并且对这些通道进行一些参数上的设置。因此我们首先介绍如何配置参与者的B2B能力。
B2B能力
以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Profiles->Community Participants. 通过Participant Search功能找到相应的参与者,然后选择导航栏中的B2B Capabilities。WPG会显示参与者的B2B能力,点击类似于文件夹的图标可以展开特定的Package,为参与者选择相应的Protocol和Document Flow。
图 53:B2B能力
参与者连接
1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Account Admin->Participant Connections,WPG会出现Manage Connections页面,选择发送方和接收方然后点击Search,WPG会显示发送方和接收方之间可以使用的连接。
图 54:参与者连接列表
连接只有在相应的通道被创建并且参与者的B2B能力被开启之后才会显示,因此确保需要的通道已经根据1.2.3中的方法创建,相应的B2B能力已经根据前面的方法开启。
2. 参与者连接默认是关闭状态,点击Activate可以激活它。
图 55:激活连接
3. 点击Gateways设置参与者所用的入口。
图 56:使用的入口
4. 点击源端或者目标端的属性按钮,可以分别设置源端和目标端的属性。属性根据Package, Protocol和Document Flow分为三个部分。不同类型的连接有不同的属性,我们将在第三篇文章中介绍。
图 57:连接属性
2. 自定义XML格式
WPG除了支持cXML这种特殊的XML格式的文档外,还支持各种自定义的XML文档。因为XML文档内容并没有统一的格式,随意性很大,所以WPG需要知道XML文档所需的封装格式,如何判断XML文档的类型,以及文档的传输方和接收方。下面将介绍如何自定义XML格式。
1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Hub Admin->Hub Configuration->XML Formats,WPG会列出所有自定义的XML文档格式。
图 58:自定义XML格式列表
2. 选择右上角的Create XML Format,输入所需的信息,点击保存就完成了XML文档格式的定义。
图 59:自定义XML格式
Routing Format对应于图52中的Protocol,可以从下拉列表中选取。这些Protocol只是某些文档格式的集合。WPG已经预先定义了一些Protocol,比如Binary, EDI-X12, cXML, Web Service等。Binary表示文档是二进制格式,而EDI-X12表示文档符合EDI-X12标准。在自定义XML格式中,我们需要自己创建这个Protocol。
Identifier Type有三种选择:Root Tag, DTD, 和Namespace。这个属性告诉WPG需要根据XML文件的何种元素判断XML的格式。
Source BusinessID和Target BusinessID表示传输这种XML文件的发送方和接收方。有两种设置方法:Element Path和Constant。Element Path表示从XML文档的内容来判断其发送方和接收方,而Constant表示接收方和发送方是固定的。
Source Document Flow和Source Document Flow Version对应于图52中的Document Flow。Version对应于图52中Document Flow后面的括号里的内容。它也有两种选择:Element Path和Constant。
在初始情况下,WPG并没有针对与自定义XML文档的Protocol和Document Flow,需要我们自己去定义。可以直接上传转换图来添加Protocol和Document Flow(第三篇文章介绍),或者自己创建所需的Protocol和Document Flow。下面将介绍Protocol的创建方法,Document Flow类似就不再介绍。
3. 在导航栏中选择Hub Admin->Hub Configuration->Document Flow Definition。然后在页面中选择Create Document Flow Definition。输入所需信息,点击保存即可。
图 60:自定义Protocol
我们需要创建的是Protocol,因此在type中选择Protocol,输入Code, Name和Version。 Protocol不属于Document,因此Document level选择No。
此时,自定义的XML格式就可以和通道以及参与者连接结合起来使用了。
3. 自定义EDI封装格式
EDI文档是电子商务领域中电子文档交换的标准之一。它定义了在电子商务领域中经常使用的消息格式,比如询价、订单、配送等请求和确认消息。WebSphere Partner Gateway V6支持EDI X12和EDIFACT等标准。但WPG在EDI-X12下面只有一种文档格式ISA,因此无论使用何种消息格式,我们都需要根据标准自定义这些消息封装格式并且在传输过程中转换为EDI-X12下面的ISA文档格式供WPG处理,当然这种转换过程由WPG完成。下面介绍如何自定义EDI X12下的订单消息封装格式。
1. 以hubadmin登陆WPG的社区控制台,在导航栏中选择Hub Admin->Hub Configuration->EDI->Envelope Profile,WPG会列出所有自定义的EDI消息封装格式。
2. 选择右上角的Create自定义封装格式,输入名字,选择支持的EDI标准,我们选择X12。
图 61:选择X12标准
3. 按照下图输入信息。这些信息涉及到EDI X12标准中的订单消息规范,在此不详细描述。
图 62:一般属性
图 63:Interchange属性
图 64:组属性
图 65:事务属性
4. 保存即完成了自定义EDI封装格式的配置。如果参与者连接中需要用到EDI文档,我们就可以在参与者连接的属性中为EDI文档指定这种封装格式,以便WPG能够对其进行封装并且传送。
4. 总结
WebSphere Partner Gateway提供了强大的文档处理能力,使得它能够在不同的B2B环境中集成不同的应用程序。它能够处理不同格式、不同封装格式、不同传输方式的文档,这使得它的应用领域非常广泛。本文介绍了WPG的安装和配置过程,并且介绍了如何自定义XML格式以及如何自定义EDI的封装格式。第三部分我们将引入一个实例场景来介绍如何使用WPG进行XML文档和EDI文档的转换。
关于作者  | |  | 崔俊涛,IBM 上海全球实验室的软件工程师。在 SAL_FIT 部门工作,现正致力于自动化测试的开发和研究。他感兴趣的技术有 SOA, EAI。你可以通过邮件 cuijunt@cn.ibm.com 与他联系。 |
对本文的评价
|