子系统设计
产品与系统设计 · v0.1 草案
平台底座
让不同模块认识同一个项目、同一个对象,并按同一范围访问数据。
它解决什么问题
每个模块都需要知道“谁在操作、属于哪个项目、引用哪份文件、发生了什么变化”。底座把这些通用机制统一起来。
负责什么
- 组织、身份、项目成员和访问范围。
- 文件存储、元信息、内容校验和受控下载。
- 跨模块对象引用、版本索引和依赖登记。
- 事件投递、通用待办与操作记录。
- 模块注册、能力声明和公共配置。
实验有效性、模型收敛、方案评审等业务规则由对应模块维护。
内部结构建议
| 组件 | 做什么 |
|---|---|
| 身份与访问服务 | 校验人、Agent 和工具在项目内的权限 |
| 对象目录 | 根据 ID 找到拥有模块及可访问版本 |
| 文件服务 | 管文件内容、校验值、来源和可见范围 |
| 依赖与事件服务 | 登记输入输出关系,可靠通知相关模块 |
| 操作记录与待办 | 记录行为者,向相应人员呈现需处理事项 |
对象目录保存定位与引用信息;具体业务字段由各模块维护,避免公共底座膨胀成包办一切的数据模型。
一个动作如何经过底座
研究人员上传仪器文件。文件服务返回资产引用与校验值,实验模块把它关联到指定 Run。底座记录操作者与事件,研究工作台显示新的可分析数据。
文件上传成功但关联失败时,界面展示待关联状态,允许补交关联操作。重复提交使用同一提交标识,避免产生两个实验附件记录。
模块间契约
业务对象由拥有模块创建。其他模块登记引用时包含项目、对象类型、ID 和版本。检索、预览、下载与 Agent 读取都校验同一访问范围。
事件最少说明发生了什么、源对象版本、所属项目、事件 ID 和时间。消费方可重复处理同一通知,而不会重复产生副作用。
失败和恢复
通知延迟时业务事实仍由源模块确认;后台重投后更新汇总视图。文件暂不可用时展示缺失产物状态,不把引用失效解释为数据不存在。
备份恢复需要验证文件与对象引用能重新对应,已发布成果可以完整重建。
怎样独立打包
它作为每个独立产品的必要基础能力随包交付。不同产品可以使用同一套实现,按需要启用文件、事件或组织管理功能。
首期验证
两个项目之间的数据访问隔离、对象版本定位、文件上传下载、重复事件处理,以及一条完整的来源链。身份供应商、存储产品与权限细粒度仍需选型。