
将消息映射到 SCA 接口
如果带有消息传递绑定(如 JMS、MQ、MQ JMS 或通用 JMS)的导入操作与带有消息传递绑定的导出操作交换消息,那么可能会相互视为消息传递客户机。为使服务组件体系结构 (SCA) 应用程序能够与现有 JMS、MQ 或 MQ JMS 消息传递客户机进行通信,需要创建某些 SCA 工件。
开始之前
确保存在包含服务组件体系结构应用程序的模块,并且 JMS、MQ 或 MQ JMS 客户机所使用的消息格式是已知的。
业务对象
为使 SCA 应用程序能够与现有消息传递客户机进行通信,您将需要具有表示消息传递客户机所使用消息的业务对象。
如果客户机所使用的消息为 XML 格式,那么将对其进行定义的 XML 模式用作业务对象。如果您具有此模式,那么必须将其导入到模块中。这样,已导入的 XML 模式会出现在模块中的数据下。如果您不具有此模式,那么可以创建业务对象并向其添加适当属性,这将反映客户机所使用的 XML 格式。
如果客户机所使用的消息不是 XML 格式,并且没有对其进行定义的 XML 模式,那么必须创建业务对象并向其添加适当属性,以便其在逻辑上反映 JMS 客户机所使用的消息格式。例如,如果消息符合 Enterprise JavaBean (EJB) 模型,请创建业务对象并向该业务对象添加相应属性,以表示 EJB 模型的属性。
JMS 提供的消息类可具有包含不同格式消息的五种主体类型之一。IBM® Integration Designer 支持此消息类。为缩短开发时间,IBM Integration Designer 在其依赖关系编辑器中提供了一项功能,以便为其中每个 JMS 主体类型生成相应业务对象。
- 右键单击模块中的数据,然后从菜单中选择新建 > 业务对象。
- 为业务对象指定相应名称,然后单击完成。
- 向业务对象添加相应属性以对其进行完整描述,然后保存该对象。
数据绑定(稍后进行讨论)用于处理数据的变换,将消息传递系统或 EIS 系统中以本机格式传递的数据变换为基于服务组件体系结构 (SCA) 的应用程序中的服务数据对象 (SDO)。
界面
为使 SCA 应用程序能够与现有消息传递客户机进行通信,您必须具有表示消息传递客户机应用程序的输入和输出的接口;即,该接口表示与客户机的交互。
接口具有用于描述消息传递客户机应用程序操作的业务操作。必须决定要实现的操作样式,如文档字面值打包样式、文档字面值样式或 RPC 样式。操作可以是单向操作:发送消息但不期望响应,也可以是请求/响应操作:发送消息并期望返回的消息。
操作类型是表示消息传递客户机所使用消息的业务对象的类型。例如,如果是员工信息,那么应该使用或创建 employeeRecord 业务对象。 根据员工信息的内容,它可能会导致创建员工记录,或者更新或删除现有员工记录。因此,在该接口上,您可能具有三个操作:createEmployeeRecord、updateEmployeeRecord 和 deleteEmployeeRecord。
- 在模块导航中右键单击接口,然后从菜单中选择新建 > 接口。
- 为接口指定相应名称,然后单击完成。
- 向接口添加相应操作,以完整描述与消息传递客户机的交互,然后保存该接口。
导入、导出和绑定
业务对象表示从 JMS、MQ 或 MQ JMS 消息传递客户机接收和发送的消息,接口表示消息传递客户机的输入和输出的交互。但是,数据如何在客户机和这些 SCA 工件之间进行传输? 业务对象和接口位于与项目容器类似的模块中。导入和导出用于定义模块的外部接口或访问点。换言之,消息传递客户机通过导入和导出与 SCA 应用程序的业务对象和接口进行交互。
导入用于识别可从模块内调用的模块外的服务。导出允许组件侦听来自外部客户机的请求。通过导出,可以处理外部事件。当消息置于目标上时,关联的 SCA 导出会处理调用目标 SCA 组件的事件。至于消息传递,导入和导出会配对工作以发送和接收消息。通过导入,可以处理 SCA 应用程序中的内部事件。当此类消息至于目标队列上时,关联消息传递客户机会处理该事件。当消息置于目标队列上时,关联的 SCA 导出会处理调用目标 SCA 组件的事件。
导入或导出需要绑定信息,用于指定从模块传输数据的方法。提供了一些消息传递绑定,包括 JMS、MQ 和 MQ JMS。
下表中显示了绑定的关系、导入和导出上下文中的消息以及接口中操作的类型。
| JMS、MQ 或 MQ JMS 绑定 | 接口中的单向操作 | 接口中的请求/响应操作 |
|---|---|---|
| 导入绑定 | 客户机接收消息 | 客户机接收和发送消息 |
| 导出绑定 | 客户机发送消息 | 客户机发送和接收消息 |
- 打开组合件编辑器。
- 从选用板上的导入组中选择某个导入,然后将其拖至画布上。这样会创建不具有实现和接口的导入。
- 右键单击该导入,然后从菜单中选择添加接口。
- 添加至少具有一个操作的接口。
- 通过右键单击该导入,然后从菜单中选择生成绑定 > 消息传递绑定 > <type_of_binding> 来生成绑定。
- 打开组合件编辑器。
- 从选用板上的组件组中选择某个导出,然后将其拖至画布上。这样会创建不具有实现和接口的导出。
- 右键单击该导入,然后从菜单中选择添加接口。
- 添加至少具有一个操作的接口。
- 通过右键单击该导出,然后从菜单中选择生成绑定 > 消息传递绑定 > <type_of_binding> 来生成绑定。