百积木文档
开发指南平台应用、模块与 Bundle 开发模块开发

模块开发

在 Bundle 内创建模块定义,创建不可变模块版本并由 Bundle 统一发布。

模块是 Bundle 中的运行时能力单元。源码项目可以独立创建,但模块定义必须在明确的 Bundle 下创建。模块版本由 Bundle 精确引用,不单独发布、审核、上架或安装。

开发对象

对象交付物发布方式
模块定义项目 Git 快照、module.jsonmethods/*.json在 Bundle 内创建不可变模块版本
模块事件与发布机制事件声明、Runtime 发布方法和受控回调能力由 Bundle 安装物化到目标 Runtime
ServiceReference 声明、绑定与运行时交付Interface 属性、模块属性绑定、引用授权和按需凭据领取支持独立模块后端调用同一 Runtime 的目标方法
InterfaceMap 与 ServiceReferenceMapInterfaceMap 属性、具名服务映射和递归展开通过稳定业务键绑定并选择多个同接口目标服务
模块调用上下文Runtime、调用方、用户和请求的可信上下文字段在方法定义中显式映射到后端请求
Runtime 用户委托请求级 Actor assertion、ServiceReference 双凭据与按跳轮换让外部模块后端代表当前已验证用户调用下游方法

模块需要保存数据时,可以使用 Runtime 提供的数据能力或调用独立后端;连接已有外部系统 时,也可以让用户填写租户编号和凭据。这些场景本身不要求开发生命周期插件。 独立模块后端跨模块调用使用已公开的模块属性绑定、新插件的按需引用访问解析和 Runtime 网关 HTTP 协议,完整方式见 模块服务间调用协议

如果还没有确定模块是否需要外部服务,或者需要理解模块如何由 Bundle 自动安装,请先阅读 模块开发与 Bundle 自动安装

组合交付

独立模块源码项目
  -> 在 Bundle 内创建模块定义
  -> 创建不可变模块版本
  -> Bundle Manifest
  -> 创建 Bundle Version
  -> 审核和发布 Bundle
  -> 安装到工作区 Runtime

模块有独立外部后端并需要接收运行时服务引用时,使用当前模块生命周期协议;只有整个 Bundle 需要自动创建、 迁移或回收跨模块外部资源时,才转入高级 Bundle 开发

继续阅读:

  1. 模块定义开发
  2. 模块事件与发布机制
  3. ServiceReference 声明、绑定与运行时交付
  4. InterfaceMap 与 ServiceReferenceMap
  5. Runtime 用户委托
  6. 模块调用上下文
  7. 模块冻结与 Bundle 交付

本页内容