开发指南平台应用、模块与 Bundle 开发模块开发
模块开发
在 Bundle 内创建模块定义,创建不可变模块版本并由 Bundle 统一发布。
模块是 Bundle 中的运行时能力单元。源码项目可以独立创建,但模块定义必须在明确的 Bundle 下创建。模块版本由 Bundle 精确引用,不单独发布、审核、上架或安装。
开发对象
| 对象 | 交付物 | 发布方式 |
|---|---|---|
| 模块定义 | 项目 Git 快照、module.json、methods/*.json | 在 Bundle 内创建不可变模块版本 |
| 模块事件与发布机制 | 事件声明、Runtime 发布方法和受控回调能力 | 由 Bundle 安装物化到目标 Runtime |
| ServiceReference 声明、绑定与运行时交付 | Interface 属性、模块属性绑定、引用授权和按需凭据领取 | 支持独立模块后端调用同一 Runtime 的目标方法 |
| InterfaceMap 与 ServiceReferenceMap | InterfaceMap 属性、具名服务映射和递归展开 | 通过稳定业务键绑定并选择多个同接口目标服务 |
| 模块调用上下文 | Runtime、调用方、用户和请求的可信上下文字段 | 在方法定义中显式映射到后端请求 |
| Runtime 用户委托 | 请求级 Actor assertion、ServiceReference 双凭据与按跳轮换 | 让外部模块后端代表当前已验证用户调用下游方法 |
模块需要保存数据时,可以使用 Runtime 提供的数据能力或调用独立后端;连接已有外部系统 时,也可以让用户填写租户编号和凭据。这些场景本身不要求开发生命周期插件。 独立模块后端跨模块调用使用已公开的模块属性绑定、新插件的按需引用访问解析和 Runtime 网关 HTTP 协议,完整方式见 模块服务间调用协议。
如果还没有确定模块是否需要外部服务,或者需要理解模块如何由 Bundle 自动安装,请先阅读 模块开发与 Bundle 自动安装。
组合交付
独立模块源码项目
-> 在 Bundle 内创建模块定义
-> 创建不可变模块版本
-> Bundle Manifest
-> 创建 Bundle Version
-> 审核和发布 Bundle
-> 安装到工作区 Runtime模块有独立外部后端并需要接收运行时服务引用时,使用当前模块生命周期协议;只有整个 Bundle 需要自动创建、 迁移或回收跨模块外部资源时,才转入高级 Bundle 开发。
继续阅读: