基于通道的服务是 CICS® 应用程序,这些应用程序被描述为组件,并使用诸如.NET、ASP.NET 等工具组装在一起。 IBM® Developer for z/OS. 只有使用 INVOKE
SERVICE API 命令并在通道上以容器形式传递二进制数据的其他 CICS 应用程序才能使用这些服务。
关于此任务
在 SCA 中,要作为基于通道的服务公开的应用程序是业务逻辑的实现。 组件服务描述 WSDL 中应用程序的接口。 组件具有一个接口,该接口可以包含操作和绑定。 对于基于通道的服务, CICS 绑定描述通道。 如果选择此绑定,那么 IBM Developer for z/OS 会向 SCDL 添加 binding.cics 部分。 基于通道的服务没有数据映射,因为应用程序接口需要容器中的通道和二进制数据。
过程
- 使用 IBM Developer for z/OS创建组合。
- 指定应用程序名称作为组件实现。
- 通过在工具中选择 direct 映射方式,将 CICS 绑定添加到相应的服务或引用。
- 如果在连接到组合服务的 CICS 绑定上指定 URI ,那么此 URI 将提供服务的外部名称。 在 CICS 中,此 URI 是相对路径名; 例如,如果要将服务公开为
http://myhost:port/myService ,那么绑定中的 URI 为 myService ,因为主机和端口不受组合应用程序控制。
- 如果在连接到组合引用的 CICS 绑定上指定 URI ,那么针对目标服务的 URI 已完成; 例如
http://myhost:port/myService 或 cics://PROGRAM/prog1?user=user1。
- 可选: 定义组合引用上的导入。
导入定义组件或组合的依赖关系。
- 将组合体作为束部署到 CICS 。
IBM Developer for z/OS 将生成捆绑软件清单并为您打包 SCDL 和其他工件。 清单描述了 CICS 成功安装 BUNDLE 资源所需的所有资源和元数据; BUNDLE 资源表示 CICS 区域中的组合体。 清单将组合体定义为 SCACOMPOSITE 资源类型,并使用相对路径引用 SCDL 的位置。
- 创建并安装 BUNDLE 资源。
您可以选择在 BUNDLE 资源定义上设置 SCA 域。 SCA 域通常表示一组提供业务功能区域的服务。 您可以使用不同的 SCA 域来安装同一束,因为 CICS 通过组合 SCA 域和服务名称来标识服务。 有关如何添加 SCA 域的详细信息和示例,请参阅
捆绑软件的范围。
您必须确保捆绑软件的所有先决条件都在 CICS 区域中可用,以便 BUNDLE 资源能够成功安装。
- 使用 INVOKE SERVICE API 命令编写应用程序以调用基于通道的服务:
EXEC CICS INVOKE SERVICE('servicename')
CHANNEL(channel)
OPERATION(operation)
servicename 是服务的外部名称, channel 是通道的 16 字节名称, operation 是任何值。 虽然该操作是命令上的必需选项,但该值不用于基于通道的服务。
结果
当应用程序调用基于通道的服务时, CICS 会解析该服务的名称,并发出 EXEC CICS LINK 命令以将指定的通道和容器传递到您在组合中定义的应用程序。 如果在绑定中指定了特定请求者管道,那么 CICS 将通过该请求者管道来运行请求。 如果未在绑定中指定请求者管道,那么 CICS 会动态地为请求创建请求者管道。
下一步操作
您可以测试并验证服务是否按预期工作。 您可以使用 IBM CICS Explorer®来查看 BUNDLE 资源及其内容。还可以启用和禁用 BUNDLE 资源以同时管理所有资源。