工作方式:CICS 捆绑软件部署 API
概述
CICS 束部署 API 使 Java 开发者能够在系统程序员保留控制权的同时部署束。 要实现此目标,开发者无需通过 FTP 将捆绑软件写入 zFS ,也无需从 CSD 安装捆绑软件。 这些操作由 API 通过使用功能标识或具有足够访问权的其他用户标识来执行。
该REST API HTTP 接收CICS ,其中包含开发人员的应用程序(以zip文件形式)。 该捆绑包将自动解压、安装并启用到相应的 CICS。 如果已存在同名的 CICS ,则会在安装新包之前将其禁用并丢弃。
通常,系统程序员为 Java 开发者提供必要的参数,例如 CICSplex , CICS 区域, CSD 组和 BUNDLE 定义的名称。 然后,系统程序员将创建 BUNDLE 定义,该定义使用正在开发的应用程序的正确捆绑软件目录属性进行配置。
API 如何工作
如前所述,API 可管理捆绑软件生命周期,并在接收到捆绑软件后代表开发者与 zFS 进行交互。 通常,应用程序接口由客户端驱动,如 CICS 提供的用于 Gradle (com.ibm.cics.bundle) 或 Maven (cics-bundle-maven-plugin).
API 配置了一个 bundles 目录。 这是 zFS 上使用 API 来管理捆绑软件的专用位置。 推送到 API 的软件包会解压缩到 bundles 目录中,并由 CICS 目标区域访问。 这对于开发者是透明的,并且由系统程序员进行管理。 使用此 API 的开发者无需在 zFS 上与捆绑软件交互。
对于开发者正在处理的每个应用程序,系统程序员会在 CSD 中创建 BUNDLE 定义。 BUNDLE 定义的 BUNDLEDIR 属性必须配置为上载到bundles 目录的应用程序正确版本的路径,例如/u/path/to/bundles/dir/ApplicationName_1.0.0 。 系统程序员为开发者提供 BUNDLE 定义名称和 CSD 组以驱动 API。 使用此 API 的开发者不需要安装,禁用或废弃 CICS BUNDLE 资源。
- 1 应用程序开发者通过 CICS 束部署 API 来发布应用程序束。
- 验证
- 2 CMCI JVM 服务器在目标区域的 CSD 中找到 BUNDLE 定义,并检查 BUNDLE 定义的 bundle 目录 (BUNDLEDIR) 属性值是否在 API 配置的 bundles 目录内。
- 卸载
- 3 CMCI JVM 服务器 检查目标区域中是否存在任何先前安装的与指定的 BUNDLE 定义同名的捆绑软件。 根据需要,禁用并废弃此类捆绑软件。
- 安装
- 5 CMCI JVM 服务器 启动 BUNDLE 定义的 CSD 安装。
API 的安全模型
- 应用程序开发者按正常方式进行认证,确保其用户标识有权访问 API。
- 该任务从应用程序开发者的用户标识切换到已配置的部署功能标识。
- 部署功能标识将捆绑软件写入 zFS ,并启动捆绑软件到目标区域的 CSD 安装。
- 在安装期间,目标区域的区域用户标识从 zFS 读取捆绑软件。
- 系统程序员必须正确配置 SAF 才能使用 API 启用捆绑软件部署。
- API 仅在配置为
SEC=YES的区域中有效。
如何使 CICS 绑定部署 API 请求
CICS 提供了一个 和一个 Maven 插件,使用该 API 将捆绑包发布到。 Gradle CICS Java 开发者可以在开发时将其用于捆绑软件部署。 有关说明,请参阅 cics-bundle-maven。 或者,如果要编写自己的工具,那么可以使用任何标准 REST 客户机来调用 API。
API 请求的格式基于 HTTP/1.1。 API 仅使用 POST 请求,并且接受多部分表单数据。 必须发送 Content-Type: multipart/form-data 头。 接受字符串参数和压缩捆绑软件文件作为有效内容中的表单数据部分。
API 返回 HTTP 响应代码和请求结果的 JSON 描述。 以下项的响应代码:4xx指示用户未正确处理 API。 以下项的响应代码:5xx指示未正确设置系统。
API 端点与标准 CMCI 接口一起提供。 例如,如果在 mycicshost.com 端口 4444 上提供 CMCI 接口,那么 API 端点 URL 将为 https://mycicshost.com:4444/managedcicsbundles。
- cicsplex
- 仅对于 CICSPlex ® SM 环境是必需的。 目标区域所属的 CICSplex 的名称。
- region
- 仅对于 CICSPlex SM 环境是必需的。 应安装捆绑软件的区域的名称。
- csdgroup
- 存在源 BUNDLE 定义的 CSD 组的名称。
- bunddef
- BUNDLE 定义的名称。
- bundle
- 包含捆绑软件内容的 zip 文件,例如,content-type application/zip。 META-INF 目录应该位于 zip 文件的根目录中。
curl -i -X POST -u MYUSER -F cicsplex=MYPLEX -F region=MYREGION -F csdgroup=CSDGRP -F bunddef=MYBUND -F bundle=@c:/path/to/bundle_0.0.1.zip https://mycicshost.com:4444/managedcicsbundlesCICS捆绑包部署 API 对上传的压缩文件内容进行解压缩,而不执行任何代码页转换。 在压缩之前,必须以正确的代码页对捆绑软件中的每个文件进行编码。
下一步
配置 CMCI JVM 服务器 以启用 API。 请参阅 为 CICS 束部署 API 配置 CMCI JVM 服务器