This topic applies only to the IBM Business Process Manager Advanced configuration.

将消息映射到 SCA 接口

如果带有消息传递绑定(如 JMS、MQ、MQ JMS 或通用 JMS)的导入操作与带有消息传递绑定的导出操作交换消息,那么可能会相互视为消息传递客户机。为使服务组件体系结构 (SCA) 应用程序能够与现有 JMS、MQ 或 MQ JMS 消息传递客户机进行通信,需要创建某些 SCA 工件。

此部分描述如何以 SCA 方式创建业务对象和用于表示消息传递客户机应用程序的接口。此外,还讨论了导入、导出和绑定。 SCA 应用程序使用带有消息传递绑定的导入操作向消息传递客户机发送消息,并且使用带有消息传递绑定的导出操作从消息传递客户机接收消息。

开始之前

确保存在包含服务组件体系结构应用程序的模块,并且 JMS、MQ 或 MQ JMS 客户机所使用的消息格式是已知的。

以下部分中讨论了这些 SCA 工件及其与 JMS 客户机的关系:

业务对象

为使 SCA 应用程序能够与现有消息传递客户机进行通信,您将需要具有表示消息传递客户机所使用消息的业务对象。

如果客户机所使用的消息为 XML 格式,那么将对其进行定义的 XML 模式用作业务对象。如果您具有此模式,那么必须将其导入到模块中。这样,已导入的 XML 模式会出现在模块中的数据下。如果您不具有此模式,那么可以创建业务对象并向其添加适当属性,这将反映客户机所使用的 XML 格式。

如果客户机所使用的消息不是 XML 格式,并且没有对其进行定义的 XML 模式,那么必须创建业务对象并向其添加适当属性,以便其在逻辑上反映 JMS 客户机所使用的消息格式。例如,如果消息符合 Enterprise JavaBean (EJB) 模型,请创建业务对象并向该业务对象添加相应属性,以表示 EJB 模型的属性。

JMS 提供的消息类可具有包含不同格式消息的五种主体类型之一。IBM® Integration Designer 支持此消息类。为缩短开发时间,IBM Integration Designer 在其依赖关系编辑器中提供了一项功能,以便为其中每个 JMS 主体类型生成相应业务对象。

要创建业务对象,请执行以下步骤:
  1. 右键单击模块中的数据,然后从菜单中选择新建 > 业务对象
  2. 为业务对象指定相应名称,然后单击完成
  3. 向业务对象添加相应属性以对其进行完整描述,然后保存该对象。

数据绑定(稍后进行讨论)用于处理数据的变换,将消息传递系统或 EIS 系统中以本机格式传递的数据变换为基于服务组件体系结构 (SCA) 的应用程序中的服务数据对象 (SDO)。

界面

为使 SCA 应用程序能够与现有消息传递客户机进行通信,您必须具有表示消息传递客户机应用程序的输入和输出的接口;即,该接口表示与客户机的交互。

接口具有用于描述消息传递客户机应用程序操作的业务操作。必须决定要实现的操作样式,如文档字面值打包样式、文档字面值样式或 RPC 样式。操作可以是单向操作:发送消息但不期望响应,也可以是请求/响应操作:发送消息并期望返回的消息。

操作类型是表示消息传递客户机所使用消息的业务对象的类型。例如,如果是员工信息,那么应该使用或创建 employeeRecord 业务对象。 根据员工信息的内容,它可能会导致创建员工记录,或者更新或删除现有员工记录。因此,在该接口上,您可能具有三个操作:createEmployeeRecord、updateEmployeeRecord 和 deleteEmployeeRecord。

要创建接口,请执行以下步骤:
  1. 在模块导航中右键单击接口,然后从菜单中选择新建 > 接口
  2. 为接口指定相应名称,然后单击完成
  3. 向接口添加相应操作,以完整描述与消息传递客户机的交互,然后保存该接口。

导入、导出和绑定

业务对象表示从 JMS、MQ 或 MQ JMS 消息传递客户机接收和发送的消息,接口表示消息传递客户机的输入和输出的交互。但是,数据如何在客户机和这些 SCA 工件之间进行传输? 业务对象和接口位于与项目容器类似的模块中。导入和导出用于定义模块的外部接口或访问点。换言之,消息传递客户机通过导入和导出与 SCA 应用程序的业务对象和接口进行交互。

导入用于识别可从模块内调用的模块外的服务。导出允许组件侦听来自外部客户机的请求。通过导出,可以处理外部事件。当消息置于目标上时,关联的 SCA 导出会处理调用目标 SCA 组件的事件。至于消息传递,导入和导出会配对工作以发送和接收消息。通过导入,可以处理 SCA 应用程序中的内部事件。当此类消息至于目标队列上时,关联消息传递客户机会处理该事件。当消息置于目标队列上时,关联的 SCA 导出会处理调用目标 SCA 组件的事件。

导入或导出需要绑定信息,用于指定从模块传输数据的方法。提供了一些消息传递绑定,包括 JMS、MQ 和 MQ JMS。

下表中显示了绑定的关系、导入和导出上下文中的消息以及接口中操作的类型。

表 1. 客户机行为方式上下文中使用的绑定关系与接口中操作的类型
JMS、MQ 或 MQ JMS 绑定 接口中的单向操作 接口中的请求/响应操作
导入绑定 客户机接收消息 客户机接收和发送消息
导出绑定 客户机发送消息 客户机发送和接收消息
要创建带有消息传递绑定的导入,请执行以下步骤:
  1. 打开组合件编辑器。
  2. 从选用板上的导入组中选择某个导入,然后将其拖至画布上。这样会创建不具有实现和接口的导入。
  3. 右键单击该导入,然后从菜单中选择添加接口
  4. 添加至少具有一个操作的接口。
  5. 通过右键单击该导入,然后从菜单中选择生成绑定 > 消息传递绑定 > <type_of_binding> 来生成绑定。
要创建带有消息传递绑定的导出,请执行以下步骤:
  1. 打开组合件编辑器。
  2. 从选用板上的组件组中选择某个导出,然后将其拖至画布上。这样会创建不具有实现和接口的导出。
  3. 右键单击该导入,然后从菜单中选择添加接口
  4. 添加至少具有一个操作的接口。
  5. 通过右键单击该导出,然后从菜单中选择生成绑定 > 消息传递绑定 > <type_of_binding> 来生成绑定。