# 部署与模块拆分 (/docs/architecture/deployment)

## 初期建议：模块化应用，加独立计算执行器 [#初期建议模块化应用加独立计算执行器]

Web 工作台调用应用层，各业务模块有明确接口和数据归属。仿真、数据分析和文件转换交给后台执行器，避免长任务阻塞日常操作。

```text
浏览器工作台 / 外部 Agent
            ↓
身份校验与应用接口
            ↓
业务模块（明确边界） → 任务队列 → 计算 / 仿真 / 转换执行器
            ↓                        ↓
结构化数据与版本记录          文件、结果与运行日志
```

“执行器”指运行具体任务的程序；它可以与应用部署在同一环境，也可以部署在拥有专用软件的机器上。

## 建议提前约定的事情 [#建议提前约定的事情]

| 边界 | 约定 |
| --- | --- |
| 模块调用 | 通过公开接口，不依赖另一模块的内部表结构 |
| 文件访问 | 通过受控文件引用，不暴露固定服务器路径 |
| 长任务 | 统一记录输入、状态、日志、产物和取消请求 |
| 执行环境 | 记录软件与模型版本，按能力分派任务 |
| 配置 | 地址、凭据、启用模块与存储位置可配置 |
| 数据迁移 | 导出包含对象、版本、文件和依赖清单 |

初期可以共享数据库实例，数据表和迁移仍按拥有模块组织。跨模块事件与业务提交需要可靠衔接，避免数据已经提交却丢失通知。

## 模块独立部署时如何工作 [#模块独立部署时如何工作]

独立的计算产品可以打包必要的项目、身份、任务和文件能力，通过导入或适配器获取输入。接入完整平台时，改为引用其他模块的对象。

模块需要明确必需依赖、可选能力和版本兼容范围。可选模块不可用时，界面说明缺少什么能力，并保留已经完成的工作。

## DWSIM 的部署验证 [#dwsim-的部署验证]

计划通过适配器接入 DWSIM 的自动化能力。正式选择之前，需要用指定版本验证运行环境、模型加载、输入设置、求解、结果导出以及依赖和授权条件。

是否采用 Windows 执行节点、其他受支持环境或专门封装，保留为验证结果决定的选型。开源不等于所有操作系统与所有模型都能以同样方式运行。

## 面向企业交付 [#面向企业交付]

保留自有云环境与客户环境部署的可能性。项目数据、企业资产和平台通用资源有明确归属，检索、文件和 Agent 都遵循相同访问范围。

备份恢复不仅要恢复数据库，还要恢复对应文件、版本引用和发布清单。客户停用某个模块时，需要能够导出其拥有的数据与成果。

## 什么时候值得拆成服务 [#什么时候值得拆成服务]

当模块需要不同运行环境、单独扩缩容、独立发布，或客户确实要单独部署时，再按已建立的边界拆分。服务数量本身不作为架构成熟度指标。
