将 HTTP 传输协议用于 4.2.2 之前版本的 ICS

WebSphere Business Integration Connect 可以通过 HTTP 传输协议向 4.2.2 之前版本的 WebSphere InterChange Server(ICS)发送文档以及从其接收文档。

注:

  1. 要通过 HTTP 传输协议在 WebSphere Business Integration Connect 和版本 4.2.2 InterChange Server 之间发送和接收文档,请参阅将 HTTP 传输协议与 V4.2.2 ICS 一起使用

  2. 如果您正通过 HTTP 传输协议交换 SOAP 文档,则请参阅通过 HTTP/S 发送 SOAP 文档

本节提供如何配置 4.2.2 之前版本的 InterChange Server 以及相应的兼容 ICS 的组件,以通过 HTTP 与 Business Integration Connect 一起使用的下列信息:

通过 HTTP 将文档发送到 4.2.2 之前版本的 ICS

本节提供了下列信息,以描述如何通过 HTTP 传输协议将文档从 Business Integration Connect 发送到 4.2.2 之前版本的 ICS:

从 Business Integration Connect 发送到 InterChange Server 的文档会启动 InterChange Server 中的事件通知。

发送所需的组件

Business Integration Connect 可以通过 HTTP 传输协议将文档发送到下列 4.2.2 之前版本的 InterChange Server。

要使 Business Integration Connect 能使用 HTTP 传输协议将文档发送到 4.2.2 之前版本的 ICS,需要配置这两个组件。表 45 中概述了这些配置步骤。


表 45. 配置 Business Integration Connect 和 InterChange Server
组件 版本 更多信息
WebSphere Business Integration Connect 4.2.2

配置通过 HTTP 传输协议传递的出站文档

配置通过 HTTP 传输协议传递的入站文档

WebSphere InterChange Server 4.1.1,4.2.0,4.2.1 创建用于 HTTP 的 4.2.2 之前版本的 ICS 构件

另外,要通过 HTTP 传输协议将文档发送到 ICS,您可以使用表 46 中列出的兼容 ICS 的组件。其中的大多数组件是作为 Business Integration Connect 发行版一部分提供的。


表 46. 通过 HTTP 将文档发送到 4.2.2 之前版本的 ICS 所需的组件
组件 描述 注意事项和限制
WebSphere Business Integration Connect Servlet(Connect Servlet)

这个 servlet 是 WebSphere InterChange Server 访问客户机。访问客户机是 InterChange Server(ICS)的外部过程,可以请求执行 ICS 内部的协作。

4.2.2 之前版本的 WebSphere InterChange Server 支持 servlet。

注:
4.2.2 版本的 WebSphere InterChange Server 不支持 servlet。
包装器数据处理程序

Connect Servlet 调用这个数据处理程序来将 HTTP 消息转换成相应的数据业务对象。 它调用适合于您消息的数据处理程序。 例如,如果有效负载是 XML 格式的,则可以配置包装器数据处理器,以调用 XML 格式的数据处理程序。

有效负载数据处理程序 该数据处理程序可以使文档有效负载在它的文档格式(通常是 XML)和它的业务对象表示之间进行转换。 该数据处理程序是必需的,并且它必须支持 MIME 类型的有效负载文档。
附件数据处理程序

该数据处理程序处理文档消息的附件文档。

当文档包括附件时,才需要该数据处理程序。

注:
表 46 中所列的所有组件都包含在 Business Integration Connect 安装介质中。要了解关于这些组件位置的信息,请参阅部署 Connect Servlet

图 9 提供了 Business Integration Connect 如何通过 HTTP 传输协议将文档发送到 4.2.2 之前版本的 ICS 的概述。

注:
包装器数据处理程序、附件数据处理程序和有效负载数据处理程序都是在 InterChange Server 内执行的。

图 9. 通过 HTTP 传输协议从 Business Integration Connect 到协作的消息流


图 9 所示,WebSphere Business Integration Connect Servlet 是兼容 ICS 的组件,Business Integration Connect 可以与其直接交互。该 Connect Servlet 是 访问客户机,它是 InterChange Server 外部过程,可以请求执行 ICS 协作。该访问客户机从名为服务器访问接口的应用程序编程接口(API)发出调用,以与 ICS 进行交互。WebSphere InterChange Server Access 接收并解释这些调用,前者是 ICS 内部的一个组件,ICS 用于处理与访问客户机的交互。服务器访问接口同步调用协作

注:

  1. 即使 Business Integration Connect 和后端系统之间的某些交互是 异步的,Server Access 仍然同步调用协作并一直等到该协作执行完毕。

  2. 有关访问客户机和 Server Access 的更多详细信息,请参阅 WebSphere InterChange Server 文档集中的访问开发指南

以下步骤描述了 Business Integration Connect 如何通过 HTTP 传输协议将文档发送到 ICS 中的协作,以此来参与事件通知的:

  1. Business Integration Connect 调用 WebSphere Business Integration Connect Servlet 以将文档发送到 InterChange Server。

    Business Integration Connect 将文档发送到指定为目标网关的 URL。

    注:
    Connect Servlet 可用于调用多个协作。
  2. 从 Business Integration Connect 发送的 HTTP 请求消息中,Connect Servlet 创建一个 Java 字符串。

    HTTP 请求消息包含两部分:

  3. Connect Servlet 检查其 servlet 属性文件,以确定要调用的协作以及要使用的谓词和 MIME 类型。

    每个 URL 都对应一个要调用的协作。(请参阅配置 Connect Servlet 以获取信息。)

  4. Connect Servlet 使用服务器访问接口中的调用将 Java 字符串连同 Servlet 属性文件中的信息发送到 WebSphere InterChange Server Access。

    由于 Connect Servlet 仅能将文档发送到 InterChange Server(它不能接收文档),所以它仅能参与 InterChange Server 的事件通知。

    注:
    要支持利用 InterChange Server 的请求处理,Business Integration Connect 必须与 WebSphere Business Integration Adapter for XML 进行交互。 要了解更多信息,请参阅通过 HTTP 从 4.2.2 之前版本的 ICS 接收文档
  5. WebSphere InterChange Server Access(属于 InterChange Server)接收 Java 字符串并调用包装器数据处理程序。

    包装器数据处理程序的任务是将 Java 字符串转换成相应的业务对象结构。它是 InterChange Server 期望作为输入的业务对象。

  6. 包装器数据处理程序采用下列步骤将 Java 字符串转换成业务对象结构:
    1. 从 Java 字符串中抽取头和有效负载。
      注:
      如果 Business Integration Connect 发送的文档包含附件,则可以配置包装器数据处理程序,以调用附件数据处理程序。处理带附件的文档中描述了附件数据处理程序的操作。
    2. 验证 MIME 类型的有效负载,并调用已经为 MIME 类型配置好的数据处理程序,以将有效负载转换成有效负载业务对象。
    3. 创建 HTTP 属性业务对象和动态业务对象。

      在 HTTP 属性业务对象中设置 HTTP 头,该业务对象是这个有效负载业务对象的动态元对象的子代。

    4. 创建顶级业务对象,并将事件业务对象设置成它的请求业务对象。

      包装器数据处理程序期望有效负载业务对象能有一个分等级的结构。有关该有效负载业务对象的结构信息,请参阅创建用于发送文档的业务对象定义

    5. 将顶级业务对象返回给 InterChange Server 内部的 Server Access 。
  7. Server Access 调用协作,并将它传递给顶级业务对象。

    请确保将要调用的协作对象的协作端口配置为外部端口。请参阅 WebSphere InterChange Server 文档,以获取有关如何配置端口的详细信息。

  8. 该协作执行顶级业务对象并将它返回到包装器数据处理程序。

    是否填充响应业务对象(在顶级业务对象内)取决于 InterChange Server 与 Business Integration Connect 之间交互的类型,具体如下:

    要了解更多信息,请参阅响应业务对象

  9. 如果交互成功,Connect Servlet 就将 HTTP 200 OK 应答返回给 Business Integration Connect。

配置 Connect Servlet

WebSphere Business Integration Connect Servlet 是一个访问客户机,它是 InterChange Server 的外部过程,可以请求执行 InterChange Server 内的协作。该访问客户机从名为服务器访问接口的应用程序编程接口(API)使用调用,以与 ICS 进行交互。WebSphere InterChange Server Access(InterChange Server 的组件,负责处理与访问客户机的交互)接收到这些调用并对它们进行解释。

注:
有关访问客户机和 Server Access 的更多详细信息,请参阅 WebSphere InterChange Server 文档集中的访问开发指南

Connect Servlet 的配置包括下列步骤:

部署 Connect Servlet

Connect Servlet、包装器数据处理程序和包装器数据处理程序的库文件在 Business Integration Connect 的安装盘中都可获得的,其位置在表 47 中列出。

表 47. Connect Servlet 组件的位置
组件 位置
Connect Servlet Integration/WBI/WICS/WBICServlet/ bcgwbiservlet.war
包装器数据处理程序 Integration/WBI/WICS/WBICServlet/ bcgwbiwrapperdh.jar
包装器数据处理程序的库文件 Integration/WBI/WICS/WBICServlet MO_DataHandler_WBIWrapper.in

注:
如果您想发送包含附件的文档,也可以如部署附件数据处理程序中所描述的那样部署附件数据处理程序及其相关联的库文件。

该 servlet 可以连接至 WebSphere InterChange Server V4.1.1、4.2.0 和 4.2.1。 可以在支持任意这些 InterChange Server 版本的平台上部署该 servlet。另外,您需要确保该平台上支持服务器访问接口。参阅 WebSphere InterChange Server 文档,以获取您正使用的 ICS 版本所支持的平台的列表。

要部署表 47 中的组件,请遵循这些步骤:

  1. 根据 Web 服务器的文档,将 Connect Servlet 及其关联文件部署到 Web 服务器。
  2. 请确保下列文件位于 Connect Servlet 的 CLASSPATH 中:

    这些文件可以在 InterChange Server 产品目录的 lib 子目录中找到。

    注:

    1. 这些文件所在的 InterChange Server 必须与您要调用的 InterChange Server 是同一个版本。

    2. 这些文件对您的 Web 服务器中 Connect Servlet 的 Web 容器必须是可用的。有关如何使这些文件对 Web 容器可用的更多信息,请查看您的 Web 服务器文档。
  3. 请确保下列文件位于 Connect Servlet 的 CLASSPATH 中:

    可以在 Business Integration Connect 安装介质的下列目录中找到这些文件:

    integration/wbi/wics/http/lib/thirdparty
     

    注:
    这些文件对您 Web 服务器中 Connect Servlet 的 Web 容器必须是可用的。有关如何使这些文件对 Web 容器可用的更多信息,请查看您的 Web 服务器文档。
  4. 使 InterChange Server 可互操作对象引用(.ior)文件可以在部署 Connect Servlet 的机器上使用。

    如果 Connect Servlet 与 InterChange Server 不在一台机器上,则您可以采取下列操作之一,以使 .ior 文件可用:

    注:
    您还需要用这个 .ior 文件的位置更新 Connect Servlet 属性文件中的 ICS_IORFILE 属性。要了解更多信息,请参阅标识 InterChange Server 实例

设置 Connect Servlet 属性

通过 HTTP 将文档发送到 4.2.2 之前版本的 ICS所述,servlet 属性文件中包含了 WebSphere Business Integration Connect Servlet 调用协作所需的信息,比如端口名和谓词。您必须创建该 servlet 属性文件,指定有关 WebSphere InterChange Server 的常规信息。然后,对于您希望该 servlet 调用的任何协作,提供关于该协作的信息。

本节提供了关于如何设置 Connect Servlet 属性的下列信息:

创建 servlet 属性文件

servlet 属性文件包含了表 48 中所列的组成部分。


表 48. servlet 属性文件的组成部分
servlet 属性文件的组成部分 描述 了解更多信息
一般信息 用于标识 InterChange Server 实例的属性 标识 InterChange Server 实例
协作信息 用于标识每个要调用协作的属性 标识要调用的协作
日志记录信息 用于配置 servlet 日志记录的属性 指定 servlet 日志文件的位置

标识 InterChange Server 实例  Connect Servlet 属性文件的第一部分包含了一般信息,用以标识与 Business Integration Connect 进行通信的 InterChange Server 实例。该 ICS 实例包含 Business Integration Connect 需要调用的协作。表 49 显示了 servlet 属性文件的一般属性。

表 49. servlet 属性文件的一般属性
属性名 描述 示例
ICS_SERVERNAME WebSphere InterChange Server 所运行的主机。 Server1
ICS_VERSION WebSphere InterChange Server 的版本号。可能的值有 4.1.1、4.2.0 和 4.2.1。 4.2.0
ICS_IORFILE

可互操作对象引用(.ior)文件的文件名,它用来访问 WebSphere InterChange Server Access。这个示例显示了如何指定 Windows 系统上的路径。

注:
这个路径应该在一行中输入。
c:/myiorlocation/

Server1ICS.ior

ICS_USERNAME 连接 WebSphere InterChange Server 的用户标识。 admin
ICS_PASSWORD 连接 WebSphere InterChange Server 的密码。 null
ICS_ENCRYPTED_PASSWORD 指出 ICS_PASSWORD 是否进行加密。如果对密码进行加密,则 servlet 将这个字段设置成 truefalse
ICS_DISABLEENCRYPTION 指出密码加密功能已禁用(true)还是已启用(false)。如果想让密码进行加密,则将这个字段设置成 falsetrue

注:
要获取定义了表 49“示例”列中所列值的样本 servlet 属性文件,请参阅样本 servlet 属性文件

标识要调用的协作 

Connect Servlet 属性文件的第二部分包含了协作信息,它将协作 URL 与相关的协作属性相关联。这一部分用两部分标识了协作 URL,如下所示:


表 50. servlet 属性文件的协作属性
属性名 描述 示例
WBIC_SERVLET_COUNT

这个文件中所配置的 URL 数:

  • 如果将它设置为 1,则 servlet 将处理 WBIC_URL_1 的 URL 和属性。
  • 如果将它设置为 2,则 Connect servlet 将处理用 WBIC_URL_1WBIC_URL_2 的 URL 和属性。
1
WBIC_URL_1 相对 URL 的名称 PurchaseOrder
WBIC_URL_1_COLLAB 协作的名称 PurchaseOrderCollab
WBIC_URL_1_PORT 协作的端口名 From
WBIC_URL_1_VERB 协作所预定的谓词 Create
WBIC_URL_1_WRAPPER_MIME 包装器数据处理程序所支持的 MIME 类型。请注意示例是小写的。 wbic/wrapper
WBIC_URL_1_CHARENCODE HTTP 请求所用的字符编码。请指定有效的 Java 字符编码。 UTF-8

注:
要获取定义了表 50“示例”列中所列值的样本 servlet 属性文件,请参阅样本 servlet 属性文件

servlet 属性文件的协作部分提供了相对 URL,以标识要执行的协作。为了能够在运行时查找协作,Connect Servlet 将下列几条信息合并起来:

例如,如果您使用表 50 中所示的样本值,则 Connect Servlet 需要获取 PurchaseOrderCollab 协作的 URL。为查找该 URL,servlet 采取了下列步骤:

  1. 获取 servlet URL,它标识了 Connect Servlet 的位置。

    Servlet 包含来自您 Web 服务器的 servlet URL。例如,假定您在下列位置部署了 Connect Servlet:

    http://www.yourcompany.com/tasks
     
  2. 将它 WBIC_URL_count 属性中的路径追加到 servlet URL。

    表 50 中,WBIC_URL_1 属性包含值“PurchaseOrder”。因此,Connect Servlet 将把这个字符串追加到 servlet URL,以获得协作的下列 URL:

    http://www.yourcompany.com/tasks/PurchaseOrder
     

在协作属性中,WBIC_URL_1_WRAPPER_MIME 属性指定用于包装器数据处理程序的 MIME 类型。 如果您指定多个 MIME 类型,则您需要多个元对象。 请参阅创建包装器子元对象以获取信息。

指定 servlet 日志文件的位置  日志记录属性是在 Connect Servlet 属性文件的第三部分中指定的。通过添加下列语句在属性文件中指定 servlet 日志文件的位置:

log4jappender.RollingFile.File=logFileLocation
 

图 10 所示,log4jappender.RollingFile.File 属性是用来配置 Log4J 的 servlet 属性文件的一部分。为配置 Connect Servlet,您只需指定日志文件的位置,即设置 log4jappender.RollingFile.File 属性。如果您熟悉 Log4J,您也能设置它的其它属性。

样本 servlet 属性文件  图 10展示了 servlet 属性文件的一个示例,它配置了表 49表 50“示例”列中的值。

图 10. 样本 servlet 属性文件

# WebSphere Business Integration 的样本属性文件
 # Connect Servlet
  ICS_SERVERNAME=Server1
  ICS_VERSION=4.2
  ICS_IORFILE=C:/myiorlocation/Server1InterChangeServer.ior
  ICS_USERNAME=admin
  ICS_PASSWORD=null
  ICS_ENCRYPTED_PASSWORD=false
  ICS_DISABLEENCRYPTION=true
 
# Collaboration properties for single collaboration
  WBIC_SERVLET_COUNT=1
 
 WBIC_URL_1=PurchaseOrder
  WBIC_URL_1_COLLAB=PurchaseOrderCollab
  WBIC_URL_1_CHARENCODE=UTF-8
  WBIC_URL_1_PORT=From
  WBIC_URL_1_VERB=Create
  WBIC_URL_1_WRAPPER_MIME=wbic/wrapper
 
#Log4J Debug Properties
 #Possible Categories - debug/info/warn/error/fatal
 #Default Category "error". Output to: stdout and RollingFile
 log4j.rootCategory=debug,RollingFile
 log4j.appender.RollingFile=org.apache.log4j.RollingFileAppender
 
#Log File Name
 log4j.appender.RollingFile.File=D:\\_DEV\\servlet.log
 log4j.appender.RollingFile.MaxFileSize=1000KB
 
#Number of backup files to keep
 log4j.appender.RollingFile.MaxBackupIndex=10
 log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
 log4j.appender.RollingFile.layout.ConversionPattern=
    %d{yyyy-MM-ddHH:mm:SS} %-5p [%c{1}] - %m%n
 

还可以在 Business Integration Connect 安装介质的 SAMPLES 目录中找到样本 servlet 属性文件。

标识 servlet 属性文件的位置

Connect Servlet 的部署描述符 web.xml 为 servlet 提供了初始化参数。要标识 servlet 属性文件的位置,请设置这个部署描述符中的 WBIC_FILENAME 参数。该参数指定了 Connect servlet 属性文件的绝对路径名。

例如,如果图 10 中所示的样本 servlet 属性文件被称为 connectServlet.cfg,并且它位于 Connect Servlet 的部署目录中(例如 C:\WBIC\integration),则您需要将 WBIC_FILENAME 参数设置成如下值:

C:\WBIC\integration\connectServlet.cfg
 

配置包装器数据处理程序

包装器数据处理程序将文档由序列化格式(该格式由 Connect Servlet 从 HTTP 消息创建)转换成其相应的业务对象。当 Connect Servlet 调用协作时,它将 Business Integration Connect 发送给它的序列化格式文档发送给 InterChange Server。该协作请求被驻留在 InterChange Server 中的 WebSphere Server Access 接收。如图 9 所述,Server Access 调用包装器数据处理程序,向其传递 Business Integration Connect 文档。 数据处理程序返回相应的有效负载业务对象。

要配置包装器数据处理程序,请遵循如下步骤:

下面几节概括了配置包装器数据处理程序的步骤。要获取有关数据处理程序的一般信息,请参阅 WebSphere InterChange Server 文档集中的数据处理程序指南

指定包装器数据处理程序的位置

InterChange Server 需要知道包装器数据处理程序的位置,以便在运行时可以装入该处理程序。要指定位置,请采用下列步骤:

  1. 编辑 ICS 启动脚本 start_server.bat,该脚本位于 InterChange Server 产品目录(InterChange Server 所驻留的机器)的 bin 子目录中。
  2. 对于该文件,将包装器数据处理程序的 JAR 文件(bcgwbiwrapperdh.jar)添加到包含在 ICS 中的 JAR 文件列表中。通常,将数据处理程序 JAR 文件添加到 ICS 启动脚本中的 DATAHANDLER 变量中。
    注:
    如果您安装了可选的附件数据处理程序,那么您必须将它的 JAR 文件添加到 ICS 启动脚本中。 要了解更多信息,请参阅指定附件数据处理程序的位置

创建用于包装器数据处理程序的配置业务对象

为确定要调用的数据处理程序,Server Access(位于 InterChange Server 内)检查顶级数据处理程序元对象 MO_Server_DataHandler。该文件位于 InterChange Server 产品目录的下列子目录中:

repository\edk
 

这个顶级元对象将 MIME 类型与子代元对象相关联,这个子代元对象中包含了数据处理程序的配置信息。因此,创建配置业务涉及到下列步骤:

  1. 创建包装器子元对象

    您必须用包装器数据处理程序的配置信息对子代元对象进行初始化。

  2. 编辑 MO_Server_DataHandler 元对象

    您必须在这个元对象中创建一个项,它将 MIME 类型与包装器数据处理程序的子代元对象名称相关联。

创建包装器子元对象

要配置包装器数据处理程序,必须创建其子代元对象,并用配置信息对这个子代元对象进行初始化。 数据处理程序使用这个元对象的属性来获取其配置信息,包括要进行实例化的数据处理程序类的名称。要创建这个元对象,需创建一个业务对象定义,该定义中包含表 51 中所列的属性。

注:
使用业务对象设计器来创建这个业务对象定义。

表 51. 包装器子代元对象的配置属性
属性 描述
ClassName

类名(必需),它指向下面这个数据处理程序类:

com.ibm.bcg.integration.wbi.datahandlers.
 WBICWrapperDataHandler
 
TopBOPrefix 用于确定顶级业务对象名的前缀。如果为请求所配置的数据处理程序所返回的请求业务对象在其特定于应用程序的业务对象级信息中没有 wbic_mainboname 标记,则将 TopBOPrefix 添加到请求业务对象名中,从而得到顶级对象的名称。
wbic_request_mime

包装器数据处理程序调用以处理请求消息有效负载的数据处理程序支持的 MIME 类型。请确保已经对这个数据处理程序进行了配置,以便 WebSphere InterChange Server Access 可以调用它。 要获取更多信息,请参阅编辑 MO_Server_DataHandler 元对象

注:
如果您的文档中包含附件,则该配置属性的 MIME 类型应该就是调用附件数据处理程序的 MIME 类型。要了解更多信息,请参阅处理带附件的文档
wbic_response_mime

包装器数据处理程序将调用以处理响应消息有效负载的数据处理程序的 MIME 类型。

注:
如果 Business Integration Connect 没有得到预期的响应,则您没有设置 wbic_response_mime

要点:
要赋值给表 51 中的属性,请设置属性的缺省值。例如,如果包装器数据处理程序打算对其请求消息使用定界数据处理程序,则将 wbic_request_mime 属性的缺省值设为 text/delimited

您可以为您需要使用的每个包装器数据处理程序实例定义子代元对象。例如,如果您需要仅支持一个请求 MIME 类型或一个请求 MIME 类型和响应 MIME 类型的组合,则可以创建单个子代元对象,并相应地设置 wbic_request_mimewbic_response_mime 属性的缺省值。然而,如果您需要支持请求 MIME 类型和响应 MIME 类型的各种不同组合,则可以为每个受支持的组合创建一个子代元对象。

Business Integration Connect 提供以下 InterChange Server 资源库文件,它包含包装器数据处理程序的样本子元对象:

ProductDir/Integration/WBI/WICS/WBICServlet/MO_DataHandler_WBICWrapper.in
 

此处的 ProductDir 是您安装 Business Integration Connect 产品的目录。该资源库文件定义了包装器数据处理程序的一个实例,它被配置成调用请求和响应业务对象的定界数据处理程序。图 11 显示了名为 MO_DataHandler_WBICWrapper 的样本子代元对象。

图 11. 包装器数据处理程序的样本子代元对象


如果您还需要支持请求消息格式为 XML 的文档,则要创建第二个子代元对象,以表示包装器数据处理程序的第二个实例。在这个子代元对象中,wbic_request_mime 属性的缺省值具有 text/xml MIME 类型。

编辑 MO_Server_DataHandler 元对象

WebSphere InterChange Server Access 使用名为 MO_Server_DataHandler 的顶级元对象,来将访问客户机能处理的 MIME 类型与支持这些 MIME 类型的数据处理程序相关联。 特别,这个顶级元对象将 MIME 类型与数据处理程序子代元对象相关联。

MO_Server_DataHandler 元对象是业务对象定义。因此,要编辑这个元对象,请在对象设计器中启动 MO_Server_DataHandler,并给它添加每个受支持的包装器数据处理程序实例的新属性。这个数据处理程序的每个实例都是请求 MIME 类型和响应 MIME 类型的唯一组合。

对于 MO_Server_DataHandler 元对象,您要进行下列修改:

例如,假设您将包装器数据处理程序配置成如图 11 所示的那样。图 12 显示了 MO_Server_DataHandler 元对象,该元对象的属性将 wbic_wrapper MIME 类型由 MO_DataHandler_WBICWrapper 子代元对象配置的包装器数据处理程序的实例关联起来。这个 MO_Server_DataHandler 元对象还将请求和响应 MIME 类型(text/delimited)与定界数据处理程序的子代元对象相关联。

图 12. 将 wbic_wrapper MIME 类型和包装器数据处理程序相关联


对于您需要支持的每种唯一的请求和响应 MIME 类型组合,请通过在 MO_Server_DataHandler 顶级元对象中添加属性来重复这个过程,其中这个属性的名称是与包装器数据处理程序实例相关联的 MIME 类型,它的类型是相关联的子代元对象名。您还要确保已配置的请求和响应 MIME 类型(及其子代元对象)存在于 MO_Server_DataHandler 中。

注:
如果您使用附件数据处理程序来处理 Business Integration Connect 文档中的附件,则还必须修改 MO_Server_DataHandler 以支持附件数据处理程序,如配置附件数据处理程序所描述的那样。

创建用于发送文档的业务对象定义

WebSphere Business Integration Connect Servlet 将您的文档以有效负载业务对象的格式发送到 InterChange Server。 对于 Connect Servlet,有效负载业务对象描述为层次结构的业务对象。包装器数据处理程序在接收到 Business Integration Connect 文档时创建这个业务对象层次结构。 因此,您必须创建业务对象定义以表示这个层次结构。

因为 Connect Servlet 参与 InterChange Server 的事件通知,所以顶级业务对象的请求和响应属性将是如表 52 所示的那样解释的。


表 52. 事件通知中的请求和响应业务对象
属性 用途
请求业务对象 包含来自 Business Integration Connect 的请求消息,该消息是触发协作的事件。
响应业务对象 包含响应消息,如果交互是同步的。

有关如何创建该业务对象结构的更多信息,请参阅为通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建业务对象

通过 HTTP 从 4.2.2 之前版本的 ICS 接收文档

本节提供了下列信息以描述如何通过 HTTP 传输协议从 4.2.2 之前版本的 InterChange Server 接收来自 Business Integration Connect 的文档:

Business Integration Connect 接收来自 InterChange Server、由 InterChange Server 中的请求处理发送的文档。

接收操作所需的组件

Business Integration Connect 可以通过 HTTP 传输协议接收来自下列 4.2.2 之前版本的 InterChange Server 的文档。

要使 Business Integration Connect 能通过 HTTP 传输协议从 4.2.2 之前版本的 InterChange Server 接收文档,需要配置两个组件。表 45 概括了这些配置步骤。另外,要通过 HTTP 协议从 InterChange Server 接收文档,您可以使用表 53 中列出的兼容 ICS 的组件。


表 53. 通过 HTTP 从 V4.2.2 之前版本的 Interchange Server 接收文档所需的组件
组件 描述 注意事项和限制

WebSphere Business Integration Adapter for XML

(Adapter for XML)

该适配器允许 InterChange Server 与应用程序交换业务对象,该应用程序以 HTTP 消息格式接收数据。Adapter for XML 和 Business Integration Connect 之间通过 URL 地址进行通信。

Adapter for XML 与 Business Integration Connect 一起提供的。您必须使用 V3.1.x 或更高版本的适配器。

注:
该适配器能与 4.2.2 版本的 WebSphere InterChange Server 一起使用。
HTTP 或 HTTPS 协议处理程序

这个协议处理程序与 Adapter for XML 一起工作,以将信息流发送到 URL 以及从 URL 接收信息流。

该协议处理程序是与 Business Integration Connect 一起提供的。 要了解更多信息,请参阅部署 HTTP 协议处理程序
有效负载数据处理程序 该数据处理程序可以使文档有效负载在它的文档格式(通常是 XML)和它的业务对象表示之间进行转换。 该数据处理程序是必需的,且必须支持 MIME 类型的有效负载文档。
附件数据处理程序 该数据处理程序使包含附件的文档在其文档格式及业务对象表示之间进行转换。 仅当您的文档包含附件时,才需要该数据处理程序。要了解更多信息,请参阅处理带附件的文档

图 13 概述了 Business Integration Connect 如何通过 HTTP 传输协议从 V4.2.2 之前版本的 InterChange Server 接收文档。

注:
所有有关 HTTP 协议处理程序的参考资料同样适用于 HTTPS 协议处理程序。

图 13. 通过 HTTP 传输协议从协作发送到 Business Integration Connect 的消息流


下列步骤描述了 Business Integration Connect 如何通过接收由 InterChange Server 内部的协作所发起的文档来参与请求处理。

  1. InterChange Server 内的协作对 Adapter for XML 进行服务调用,给它发送包含请求和响应子对象的顶级业务对象。

    请求子对象包含了特定于应用程序的信息,这些信息指向包含 Business Integration Connect 所期望的定制 HTTP 头的动态元对象。

  2. Adapter for XML 调用 HTTP 协议处理程序。
  3. HTTP 协议处理程序使用数据处理程序将协作发送的业务对象转换成 HTTP 流。

    协议处理程序读取顶级业务对象的 MIME 类型和 URL,以确定要使用的数据处理程序和接收者地址。

  4. HTTP 协议处理程序从顶级业务对象获得了第一个填充的业务对象。这是请求业务对象。

    HTTP 协议处理程序调用数据处理程序,以将业务对象转换成 HTTP 流。

    注:
    如果文档有附件,则请安装附件数据处理程序,然后配置 Adapter for XML,使之能调用该数据处理程序,以便将请求业务对象转换成带附件的文档。要了解更多信息,请参阅处理带附件的文档
  5. HTTP 协议处理程序根据请求业务对象确定动态元对象的名称。

    HTTP 协议处理程序在请求业务对象特定于应用程序的信息中搜索 cw_mo_conn 标记,该标记标识与动态元对象相对应的属性。如果您对文档使用的是后端集成封装方式,则可以在这个动态元对象中指定定制 HTTP 头信息。

  6. HTTP 协议处理程序在动态元对象中搜索 HTTPProperties 属性。

    如果该属性已填充,则协议处理程序在请求消息中设置传输级的头。在 HTTPProperties 属性内,还可以指定 content-type 标准 HTTP 头。要了解更多信息,请参阅为 V4.2.2 ICS 创建 HTTP 传输级头信息

  7. HTTP 协议处理程序通过使用数据处理程序所返回的字符串来创建 HTTP 流。 它还设置任何定制头信息,如动态元对象中所定义的那样。
  8. HTTP 协议处理程序将产生的请求消息以流的形式发送至指定的 URL。

    Business Integration Connect 侦听这个 URL,该 URL 已被配置成它的目标。

  9. Business Integration Connect 用 HTTP 200 OK 响应。

    如果(Adapter for XML 的)ReturnBusObjResponse 连接器属性为 true,则调用是同步的。协议处理程序将响应消息转换成响应业务对象,并将它返回给 Adapter for XML。适配器在顶级业务对象中设置业务对象。然后将顶级业务对象返回给 InterChange Server 内的协作。

设置 4.2.2 之前版本的 ICS 的 HTTP 环境

因为接收来自 InterChange Server 的文档需要使用兼容 ICS 的组件,所以您必须执行表 54 中描述的设置和配置任务。有关如何配置 Business Integration Connect 以便通过 HTTP 与 V4.2.2 之前的 InterChange Server 进行通信的信息,请参阅提供对出站文档的支持

表 54. 设置用于发送文档的环境
步骤 了解更多信息

1. 部署 HTTP 协议处理程序。

部署 HTTP 协议处理程序

2. 配置 WebSphere Business Integration Adapter for XML。

配置 Adapter for XML

注:
如果文档中包含附件,则还必须如处理带附件的文档所描述的那样安装并配置附件数据处理程序。

部署 HTTP 协议处理程序

Business Integration Connect 提供了定制 HTTP 协议处理程序,以便将消息发送到 Business Integration Connect,并从 Business Integration Connection 接收消息。可以在 Business Integration Connect 安装介质的下列文件中找到这个 HTTP 协议处理程序:

Integration/WBI/WICS/WBICServlet/bcgwbiprotocol.jar
 

可以将这个定制协议处理程序插入 Adapter for XML V3.1.x 或更高版本。有关受支持 InterChange Server 的版本和平台,请参阅 Adapter for XML 使用指南,以了解您所使用的适配器的版本。

要将 HTTP 协议处理程序部署到 Adapter for XML,您必须让 Adapter for XML 知道 HTTP 协议处理程序的位置,以便它能在运行时装入该协议处理程序。要指定 HTTP 协议处理程序的位置,请遵循下面这些步骤:

  1. 编辑 Adapter for XML 的启动脚本 start_xml.bat,该脚本位于安装了 WebSphere Business Integration Adapter 的产品目录的下列子目录中:
    connectors/xml
     
  2. 在这个启动脚本中,将定制 HTTP 协议处理程序的 JAR 文件 bcgwbiprotocol.jar 添加到 Adapter for XML 的 CLASSPATH 的 JAR 文件列表中。

配置 Adapter for XML

Adapter for XML 是兼容 ICS 的组件,它允许 Business Integration Connect 与 InterChange Server 以 HTTP 消息的格式交换文档。它支持 与 InterChange Server 进行的请求处理交互,如下所示:

注:
未使用 适配器的事件通知功能。要将 HTTP 消息从 Business Integration Connect 发送到 InterChange Server,请使用 WebSphere Business Integration Connect Servlet,如通过 HTTP 将文档发送到 4.2.2 之前版本的 ICS所描述的那样。
要点:
WebSphere Business Integration Connect 包括 WebSphere Business Integration Adapter for XML。必须单独获取该产品,并根据其 Adapter for XML 用户指南中的指示说明来安装它。请参阅适配器文档,以确保适配器版本与正在使用的 InterChange Server 版本相兼容。

当您为与 InterChange Server 进行通信而已配置了 Adapter for XML 时,请遵循下面这些部分的步骤来配置该适配器,以便它接受来自 Business Integration Connect 的 HTTP 消息。

指定有效负载数据处理程序

图 13 所示,Adapter for XML 协议处理程序使用数据处理程序将它从 InterChange Server 收到的业务对象转换成相应的 HTTP 流。

注:
Adapter for HTTP 调用的数据处理程序转换文档有效负载。如果您的文档是以 XML 传输包络(它包含附件或者“包络标志”为“是”)打包的,则将附件数据处理程序配置为有效负载数据处理程序。要了解更多信息,请参阅处理带附件的文档

要指出使用哪种数据处理程序来转换有效负载,您必须采取业务对象变换中列出的步骤。另外,必须配置 Adapter for XML 以使用该有效负载数据处理程序。在连接器配置程序中,设置 DataHandlerConfigMO 连接器配置属性,以指定 Adapter for XML 用来标识数据处理程序的顶级数据处理程序元对象。请确保在用于该适配器的受支持的业务对象列表中包括顶级数据处理程序元对象的名称。

配置协议处理程序包名

Adapter for XML 使用 JavaProtocolHandlerPkgs 连接器配置属性来标识 Java 协议处理程序包的名称。为与 Business Integration Connect 集成,确保将 JavaProtocolHandlerPkgs 属性设置成 Business Integration Connect 提供的 HTTP 协议处理程序的包名。

com.ibm.bcg.integration.wbi.utils.protocolhandlers
 

为响应业务对象指定支持

Adapter for XML 使用 ReturnBusObjResponse 连接器配置属性来指出是否返回响应业务对象。当交互为同步时,才返回响应业务对象。缺省情况下,ReturnBusObjResponse 连接器配置属性被设置成“false”。要配置 Adapter for XML 以返回响应业务对象,将 ReturnBusObjResponse 连接器配置属性设置成“true”。

注:
如果希望 Business Integration Connect 允许 社区管理员正在使用的封装和业务协议之间进行的同步交互,则请将 ReturnBusObjResponse 连接器配置属性设置成 true,并在您的顶级业务对象中提供响应业务对象。

要设置连接器配置属性,请使用作为 WebSphere Business Integration Adapter for XML 发行版的一部分的连接器配置程序工具。在连接器配置程序内,ReturnBusObjResponse 应该会出现在连接器配置属性中特定于连接器的选项卡上。

创建用于接收文档的业务对象定义

WebSphere Business Integration Adapter for XML 以有效负载业务对象的格式接收来自 InterChange Server 的信息。 对于 Adapter for XML,有效负载业务对象被表示成业务对象的层次结构。Adapter for XML 在接收到 Business Integration Connect 文档时创建这个业务对象层次结构。 因此,您必须创建业务对象定义以表示这个层次结构。

因为 Adapter for XML 参与 InterChange Server 的请求处理,所以顶级业务对象的请求和响应属性将如表 55 所示的那样进行解释。


表 55. 请求处理中的请求和响应业务对象
属性 用途
请求业务对象 包含来自 InterChange Server 的请求信息;协议处理程序和数据处理程序转换该信息并将它发送到 Business Integration Connect 侦听的 URL。
响应业务对象 如果交互是同步的,则包含来自 Business Integration Connect 的响应信息。

有关如何创建该业务对象结构的更多信息,请参阅为通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建业务对象

为通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建业务对象

Connect Servlet 以有效负载业务对象的格式将您的文档发送到 InterChange Server。Adapter for XML 以相同的格式接收来自 InterChange Server 的文档。当接收或发送 Business Integration Connect 文档时,这两个组件都调用有效负载数据处理程序来处理该业务对象,如下所述:

因此,您必须创建表 56 所示的业务对象定义,以表示 Adapter for XML 期望的有效负载业务对象结构。


表 56. 用于HTTP 传输协议的业务对象定义
条件 业务对象定义 了解更多信息
如果您正对您的文档使用 “无”封装或 后端集成封装您的文档没有附件

有效负载业务对象的业务对象层次结构:

  • 顶级业务对象
  • 请求业务对象
  • 响应业务对象(仅当期望有响应时才使用)

通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建有效负载业务对象结构
如果您对您的文档使用后端集成封装

在有效负载业务对象中添加业务对象以保存传输级头信息:

  • 动态元对象
  • HTTP 属性业务对象

为 4.2.2 之前版本的 InterChange Server 创建 HTTP 传输级头信息
如果文档包含附件(后端集成封装是必需的) 还必须创建其它业务对象以表示附件。 创建与附件关联的业务对象定义

注:
如果正在为 cXML 文档定义业务对象,请参阅创建 cXML 业务对象

通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建有效负载业务对象结构

包装器数据处理程序(用于发送文档)以及 Adapter for XML 和 HTTP 协议处理程序(用于接收文档)都期望有效负载业务对象有相同业务对象结构。该业务对象结构由下列业务对象构成:

图 14 显示了一个有效负载业务对象定义的样本业务对象结构,其中的业务对象定义用于通过 HTTP 传输协议传递文档的 4.2.2 之前版本的 InterChange Server。

注:
有关该业务对象结构的详细描述,请参阅 Adapter for XML 用户指南

图 14. 用于 4.2.2 之前版本的 InterChange Server 的 HTTP 有效负载业务对象的业务对象结构


顶级业务对象

顶级业务对象是请求和响应业务对象的包装器。您必须为该业务对象创建业务对象定义。表 57 概括了该顶级业务对象定义的属性。


表 57. 顶级业务对象的属性
属性 属性类型 描述
URL 字符串

业务对象中数据的目的地。

请注意:
包装器数据处理程序使用该属性。但是,Adapter for XML 使用了该属性。
MimeType 字符串

定义了传递给 URL 的数据的内容类型和格式。

请注意:
包装器数据处理程序使用该属性。但是,Adapter for XML 使用了该属性。
BOPrefix 字符串

用于确定要调用哪个数据处理程序。

请注意:
包装器数据处理程序使用该属性。
响应 业务对象 表示响应消息的子业务对象(如果您期望获得响应)。该业务对象的用途取决于它是参与请求处理还是参与事件通知。要了解关于该业务对象结构的更多信息,请参阅响应业务对象
请求 业务对象 表示请求消息的子业务对象。该业务对象的用途取决于它是参与请求处理还是参与事件通知。要了解关于该业务对象结构的更多信息,请参阅请求业务对象

注:
如果您正在使用附件数据处理程序处理附件,则您必须如创建与附件关联的业务对象定义中所描述的那样修改您的请求业务对象,以保存附件。

要了解有关顶级业务对象结构的完整描述,请参阅 Adapter for XML 用户指南

请求业务对象

请求业务对象包含了要传递到 URL 的数据。它包含了请求消息中各种 XML 标记的属性。该请求业务对象的用途取决于它参与以下哪个 InterChange Server 任务:

注:
该业务对象结构将它的两个子业务对象标识成“请求业务对象”和“响应业务对象”。 但是,请求处理和事件通知使用该结构。

有关请求业务对象结构的基本描述,请参阅 Adapter for XML 用户指南。 要和 Business Integration Connect 一起使用,您必须对请求业务对象定义的结构进行两项定制:


表 58. 请求业务对象特定于应用程序的信息中标记
特定于应用程序的信息的标记 描述 是否必需?
wbic_mainboname 给顶级业务对象取名
cw_mo_conn 指定动态元对象,该元对象包含了 HTTP 传输级头字段。要了解更多信息,请参阅为 4.2.2 之前版本的 InterChange Server 创建 HTTP 传输级头信息否(仅当使用后端集成封装时才需要这个标记)

响应业务对象

响应业务对象包含了要从 URL 接收的数据。它包含了响应消息中各种 XML 标记的属性。该响应业务对象的用途取决于它参与以下哪个 InterChange Server 任务:

无论该响应是事件通知的一部分还是请求处理的一部分,只有当 Business Integration Connect 和 InterChange Server 之间的交互是 同步的,并且期望获得对请求的业务响应时,才发送响应业务对象。如果出现这种情况,那么您还必须采用下列这些额外的步骤:

注:
响应业务对象包含动态元对象的属性。

如果 Business Integration Connect 和 InterChange Server 之间的交互是 异步的,则 Business Integration Connect 需要响应,因此您无需创建响应业务对象。

创建 cXML 业务对象

对于 cXML 文档,可以使用 XML 对象发现代理(ODA)来创建业务对象。XML ODA 可以使用 cXML DTD。但是请注意,XML ODA 不支持 ENTITY。 因此。在运行带 XML ODA 的 cXML DTD 之前,您需要从 DTD 中除去 ENTITY。

当使用 XML ODA 生成业务对象时,您可以选择 cXML 标记作为您的根元素。但是,这可能会生成一个大业务对象,捕获整个 cXML DTD。如果您想创建较小的业务对象,可以选择另一个标记作为根元素,这需要您为 Data Handler for XML 编写一个定制名称处理程序。数据处理程序将调用这个名称处理程序以进行顶级业务对象名称解析。请参阅 Data Handler for XML 文档以获取关于编写定制名称处理程序的信息。

为 4.2.2 之前版本的 InterChange Server 创建 HTTP 传输级头信息

如果您正通过 HTTP 传输协议发送 以后端集成封装的文档,那么您的请求业务对象需要包含定制的传输级头信息。 包装器数据处理程序和 Adapter for XML 都期望这个定制头信息位于 动态元对象中

图 15 显示了请求业务对象的业务对象结构,该请求业务对象中表示了通过 HTTP 传输协议传递的、以后端集成封装的 Business Integration Connect 文档。

图 15. 请求业务对象与 HTTP 动态元对象的关系


请通过执行下列步骤来确保业务对象结构包含了动态元对象:

  1. 创建业务对象定义以保存后端集成封装所需的 HTTP 属性。
  2. 为动态元对象创建业务对象定义。
  3. 修改请求业务对象的业务对象定义,以包含动态元对象的属性。

下面几节中逐一描述了这些步骤。

创建 HTTP 属性业务对象

HTTP 属性业务对象包含了后端集成封装所需的 HTTP 属性。它还可以包含 Content-Type 属性(该属性指定要在请求消息中设置的 content-type 头)和 content-length 属性(该属性指定消息长度,长度单位为字节)。表 4 描述了各个有效传输头字段。

要创建 HTTP 属性业务对象定义,请执行下列步骤:

  1. 在业务对象定义中为每个传输头字段创建属性。

    所有属性的属性类型都为“字符串”。您可以用 HTTP 属性的确切名称命名属性(如表 4头字段列中所列的那样)。

    注:
    HTTP 属性名称中唯一例外是 content-type 字段,其属性应为 Content_Type
  2. 对于 HTTP 属性业务对象中的每个属性,添加特定于应用程序的信息,以标识相关属性的用途。

    这个特定于属性级应用程序的信息具有以下格式:

    name=HTTPproperty
     

    其中 HTTPproperty表 4头字段列中的值之一。

图 15 中,HttpProps_BusObj 业务对象定义包含了各种传输头字段的属性。这些属性都有特定于属性级应用程序的信息,以指定相关协议头的名称。例如,x-aux-sender-id 属性具有如下特定于应用程序的信息:

name=x-aux-sender-id
 

创建 HTTP 动态元对象

动态元对象包含了一个子业务对象,该业务对象中包含了用于 HTTP 头信息的配置信息。请务必确保业务对象结构包含动态元对象。动态元对象的业务对象定义必须包含名为 HttpProperties 的属性,其属性类型是 HTTP 属性业务对象的业务对象定义(请参阅创建 HTTP 属性业务对象)。

例如,在图 15 中,HttpDynMO_BusObj 业务对象定义包含了 HttpProperties 属性,其属性类型为 HttpProps_BusObj

修改请求业务对象定义

请求业务对象定义表示从 Business Integration Connect 请求的信息。有关如何创建请求业务对象的信息,请参阅请求业务对象。为将动态元对象并入您的有效负载业务对象结构中,您必须对您的 请求业务对象定义进行下列修改:

  1. 将某个属性添加到请求业务对象定义中,以保存动态子代元对象。

    该属性的属性类型是动态元对象的业务对象定义(请参阅创建 HTTP 动态元对象)。

  2. cw_mo_conn 标记添加到请求业务对象定义特定于业务对象级应用程序的信息中,以标识包含动态元对象的属性。

    cw_mo_conn 标记的格式如下:

    cw_mo_conn=dynamicMetaObjAttr
     

    其中 dynamicMetaObjAttr 是包含动态元对象的请求业务对象中的属性名。

例如,在图 15 中,名为 HttpDynMO 的属性被添加到请求业务对象定义 WBIC_HttpRequest_BusObj 中。该属性包含了动态元对象,该对象是类型 HttpDynMO_BusObj 的子业务对象。另外,已经对请求业务对象的特定于应用程序的信息进行了修改,使之包含下列 cw_mo_conn 标记,以标识这个动态元对象:

cw_mo_conn=HttpDynMO
 

创建用于 HTTP 的 4.2.2 之前版本的 ICS 构件

要配置 4.2.2 之前版本的 InterChange Server 以通过 HTTP 传输协议与 Business Integration Connect 进行通信,您必须创建如表 59 所示的 InterChange Server 构件。


表 59. 用于通过 HTTP 传输协议与 4.2.2 之前版本的 ICS 进行通信的构件
ICS 构件 目的 了解更多信息
业务对象定义 表示文档 为通过 HTTP 传递文档的 4.2.2 之前版本的 ICS 创建业务对象
连接器对象(仅需要请求处理) 在运行时表示 Adapter for XML 创建 XML 连接器对象
协作模板和协作对象 表示 InterChange Server 用于处理文档的业务流程 绑定协作以与 Adapter for XML 通信

创建 XML 连接器对象

为了支持通过 HTTP 传输协议利用 4.2.2 之前版本的 InterChange Server 进行请求处理,您可以使用 Adapter for XML 将文档发送到 InterChange Server。要在运行时获取 Adapter for XML 的实例,请在“系统管理器”中采用下列步骤:

  1. 创建连接器对象:
  2. 配置连接器对象。

    有关如何配置 Adapter for XML 以和 Business Integration Connect 一起使用的信息,请参阅配置 Adapter for XML

绑定协作以与 Adapter for XML 通信

=创建协作所描述的,要使 InterChange Server 知道从哪接收以及向哪发送业务对象,则协作对象在运行时必须存在。当您为将信息发送到 Business Integration Connect 的协作创建协作对象时,帮定其端口。对于请求处理,设置“目标”协作端口,该端口使用 Adapter for XML 将请求发送到 Business Integration Connect、您为 Adapter for XMP 创建的连接器对象;也就是说,Adapter for XMP 是目的地适配器。

Copyright IBM Corp. 1997, 2004