Bundle 生命周期插件开发
以独立 Adapter Hosted Service 分担公共协议,Bundle 和 Module 提供调用方法,业务后端保留业务与数据库。
生命周期插件用于开通外部租户、同步业务配置、停止外部实例或解除安装绑定。 所有插件统一在 Bundle 顶层绑定,以整个安装实例为操作边界;Module 通过逐资源授权提供属性,不单独拥有插件生命周期。 插件后端的业务程序独立部署,程序和访问凭据不进入 Bundle。公共协议可以与业务实现分层, 不要求每个 Hosted Service 重复编写完整插件协议。
推荐架构与当前接入方式
推荐采用独立 Adapter Hosted Service + Bundle/Module: 平台调用 Adapter 的生命周期 Endpoint,由 Adapter 完成握手、轮换、认证、协议校验及业务调用。 业务 Hosted Service 负责业务实例、授权、事务与幂等,通过自己的 Database Capability 使用数据库。 Adapter 使用独立逻辑数据库保存协议凭据与短期解析授权。Application Runtime 安装调用 Bundle 后提供标准 Module 方法。
Adapter 后端先独立部署,再安装和配置 Adapter Bundle。Bundle 安装不创建 Adapter 的后端项目、 Environment、进程或数据库。业务 Bundle 的生命周期回调用于管理业务租户、配置及绑定, 与 Adapter 和业务后端自身的部署生命周期分别管理。
源码实现、版本发布、环境部署和真实业务联调分别验收;本章不把未验证的部署宣称为一键模板。 也可以直接实现插件协议, 相关 SDK、握手与引用文档同时是 Adapter 的底层协议依据。
新插件按权威规范声明协议,使用携带安装环境的引用访问合同。
插件登记中的 bundleExecution 和 Bundle 绑定均须显式声明支持的协议。
初次接入先阅读最小业务回调示例, 了解业务代码与 Adapter 的分工;安装身份字段由平台和 Adapter 传递,详见身份说明。
首次受管接入:从开发到安装验证
完整操作顺序与分层完成标准统一见首次接入流程与验收;直接实现和 Adapter 都遵循同一受管接入流程。
- 准备程序、数据库、加密密钥和回调载体。
- 申请一次性授权、交付部署配置,启动后完成握手;确认接入、清理引导配置,再验证重启恢复和轮换。
- 在 Bundle 顶层声明插件绑定、非敏感配置和资源属性授权。
- 创建 Bundle 版本,在目标 Runtime 安装;由 Runtime 提供安装身份和操作身份。
- 插件协调其拥有的外部业务状态,返回受授权的业务输出。
- 在相关生命周期中按权威引用合同获取并持久化地址与密钥;业务调用及重试使用已生效的本地配置。
责任边界
插件目录管理服务身份和执行地址;Bundle 管理资源组合与版本;Runtime 管理安装记录、活动版本、 操作、阶段执行和失败恢复。插件保存自己的业务实例及其安装归属,不能自己推进 Bundle 安装状态。 平台业务组件保存它们拥有的业务配置;同步配置不等于在这些组件中再安装一次插件。
普通安装、升级、卸载由平台安装器完成。只有需要协调外部业务状态时才引入生命周期插件。
开发路线
首次开发先按首次接入流程与验收完成操作规划,再按以下专题查阅实现细节。
底层合同见Bundle 生命周期与引用协议和 失败与重试。