
## 非功能性技术要求（3.1.2.2）

### 1、适用对象、指标总表与测量口径

#### （1）适用对象：商用密码服务平台、数据集加工生产平台与运营服务管理平台

3.1.2.2 列在「3.1.2 安全软件建设要求」之下，其条款文义指向商用密码服务平台。本项目实际交付的软件不止一套，而评审、上线、运行、运维走的是同一条流程。我方因此把 3.1.2.2 各项条款的承诺适用于全部交付软件，适用对象为三套：商用密码服务平台（即软件采购清单中的安全软件）、数据集加工生产平台、数据集运营服务管理平台。三套软件使用统一的技术底座，对外称「奔牛数据智能平台」，全称天地奔牛煤机装备数据智能平台（b0743）。

甲方已建成十余套业务系统，覆盖设计与工艺、生产计划与工单、质量检验、库存与物流、设备过程参数采集以及在役装备远程运维，跨系统追一件事仍需人工对账。本项目再增加三套软件，三套共用同一套非功能性指标与验证方法：可用性口径、升级方式、国产化基线、漏洞门禁统一承诺、统一验证，避免各套口径不一导致运维重复处置同类问题。

本节与其他章节在同一套指标上分工，不另立口径。安全技术的实现细节（国密算法应用、等级保护测评、商用密码应用安全性评估、去标识与脱敏、审计与权限管控）在安全方案一节展开；本节承担的实施职责是给出安全性指标的量值与判定方法——表 4-1 所列类型与通用漏洞评分 7.0 分及以上的高危漏洞在上线前整改关闭并复测无复现，高危修复时限 7 个自然日、中危 30 个自然日，并组织静态应用安全测试、软件成分分析、动态应用安全测试与渗透测试四道检测，出具安全测试报告与渗透测试报告。运营服务管理平台各功能模块的服务分级与服务级别协议指标在运营平台一节展开；本节承担的实施职责是给出支撑这些服务级别的系统级指标——月度可用率不低于 99.5%、核心服务恢复时间不超过 30 分钟、结构化数据恢复点不超过 15 分钟，并建设达成这些指标所需的高可用部署、备份恢复与故障注入验证。硬件型号、参数与质保条款在硬件选型一节展开；本节承担的实施职责是提出承载平台的冗余配置要求（双电源、双网口绑定、系统盘镜像、数据盘多副本或冗余磁盘阵列）、国产化判定规则与核算算式，并按该规则在上线验收时出具《国产化率核算说明》。

#### （2）指标的测量口径与复测处置

承诺值是写入合同与验收单的判据：招标文件给定量值的，取条款值本身；条款未给量值的，取我方承诺值。设计值是系统设计、选型与资源配置所依据的内部目标，时延类取承诺值的六成到七成，容量类取承诺值的一点五倍以上，为运行期的数据量增长与功能迭代留出余量。验收时以承诺值与下表固定的测量口径合并比对，实测值逐项记入验收记录。

响应时间一类指标须在验收方案中固定测量口径：同一个页面，在基准数据量下测得零点六秒，在十倍数据量且另有两百人在线的条件下可能是两秒；统计上取最大值还是取 P90，结论也不同。我方在《性能与可靠性验收方案》中对每项指标固定五个要素，并在合同签订后的需求确认阶段与甲方书面确认：

| 要素 | 固定内容 | 本项目的取值方式 |
|---|---|---|
| 测点位置 | 从哪里开始计时、到哪里结束 | 时延类指标以服务端接入层收到请求为起点、响应体最后一字节发出为终点；页面类指标以浏览器主内容可交互为终点 |
| 负载条件 | 测试时的并发与背景负载 | 按本节第七部分的容量规划表取设计并发的 70% 作为常态负载，100% 作为峰值负载 |
| 数据规模 | 被查询对象的数据量 | 按验收时点的实际在库数据量，并在验收方案中记录具体行数与文件数作为基准 |
| 统计口径 | 用哪个统计量判定 | 取 P90，样本量不少于 200 次；同时记录 P50 与 P99 供分析 |
| 排除项 | 不计入承诺范围的时间 | 客户端网络往返、甲方侧网络与机房条件、第三方系统接口等待、浏览器插件渲染、首次冷启动 |

表 1-1　性能与可靠性指标的五要素口径（来源：招标文件 3.1.2.2.5、3.1.2.2.6 条款与本节承诺）

复测不达标时按三种情形分别处置，不混为一谈。属于实现问题的，按客户端、网络、应用、数据库、外部依赖五层逐层收敛，定位到具体层后整改并复测。属于测量口径偏离的，回到表 1-1 核对五要素，以书面确认的口径重测。属于运行条件变更的（数据量超出基准口径、并发超出设计容量、甲方侧网络或算力条件变化），按配置变更流程提出资源调整建议并书面确认新基准，原指标在新基准下重新验证。

#### （3）非功能性指标总览与测试规格

招标文件对非功能性的要求，一半给了数：页面打开不超过 1 秒、报表生成不超过 3 秒、登录不到 1 秒、软硬件整体国产化比率不低于 80%。另一半没有给数，写的是「具备高度稳定性和可靠性」「迅速定位问题并恢复系统正常运行」。后面这一半在验收那天是判不了的——系统半夜停了两个小时，算不算「不够稳定」，双方各有各的说法，到那时再谈就只能各让一步。

这在本项目上不是小事。首轮存量加工要把 63 万张历史图纸连同配套工艺卡解析入库，按测算是二十个工作日的连续机时（表 7-3）；这二十天里系统停一次，断掉的不是几个页面，而是整批作业的续跑与重算。产线与井下的感知设备又是不间断回传的，停机期间的帧与温度读数补不回来——井下测点损坏尚且按不补装处理，数据上本就留着一条从某天起断掉的线，再因为平台停机多添几条断线，后面做时序对齐时就分不清哪条断线是设备坏了、哪条是平台停了。所以「稳定」「可靠」这类词必须在投标阶段就换成数，并且换成的数要连着怎么测一起说清楚。

19 项指标因此摊开成三张表，一项指标占一行，三张表以指标项同序对齐：第一张定数（招标值、承诺值、设计值），第二张定条件（设计依据、测试环境、持续与峰值负载、数据量与并发），第三张定判法（测试步骤、采样与计算公式、判定阈值、证据、不达标怎么办）。分成三张而不压成一张超宽表，是因为三张的使用时点不同——技术评审看第一张是否逐条对上了招标值，系统设计与选型用第二张，验收现场拿第三张逐行走。若改成在七类要求下各写各的，19 项指标会被拆散复述七遍，而「条款没给量值的那九项，到底有没有被变成可测的数」这个最容易糊弄过去的问题，也就没有一处可以一眼看出来。

七类要求的指标、招标值、承诺值与设计值如下。招标值取招标文件条款原值；条款未给量值的，承诺值由我方设立，设立依据逐项见表 1-3。

| 类别 | 指标项 | 招标值 | 承诺值 | 设计值 | 对应单元 |
|---|---|---|---|---|---|
| 基本 | 界面与文档中文化 | 系统功能页面支持中文，相关文档均为中文版 | 功能页面与交付文档均为中文版，附错误码中文释义对照表与行业分词词典 | 行业词典首批 ≥3000 条并持续补充 | b0745 |
| 基本 | 第三方组件授权 | 第三方软件有原厂授权、无产权纠纷 | 逐项可追溯至原厂授权，建立组件授权台账并随版本更新 | 台账覆盖直接依赖与间接依赖，粒度到版本号 | b0746、b0747 |
| 基本 | 上线前评审与整改 | 功能经评审通过后上线，整改不影响整体进度 | 功能经甲方评审通过后上线，一级整改单关闭后方可上线，里程碑不顺延 | 一级整改单关闭时限 ≤5 个工作日 | b0749、b0750 |
| 开放性 | 二次开发文档 | 提供二次开发手册、数据结构、数据模型、数据字典 | 四类文档齐备交付，七类扩展点各配一个可运行示例 | 接口文档覆盖对外接口的 95% 以上 | b0752、b0753 |
| 开放性 | 版本向后兼容 | 新版本向后兼容，现有系统和数据升级后正常使用 | 对外接口按版本号并行提供，旧版本至少保留一个大版本周期 | 旧版本保留两个大版本周期 | b0756、b0757 |
| 安全性 | 低级安全漏洞 | 不允许出现低级安全漏洞 | 上线前表 4-1 所列类型与高危漏洞整改关闭并复测无复现 | 中危漏洞残留数趋向零，残留项入台账跟踪 | b0759 |
| 安全性 | 传输与存储保护 | SSL 协议作为 Web 应用基础安全协议，敏感数据传输与存储受保护 | Web 应用启用 TLS 1.3（兼容 1.2），敏感数据按分级加密，密钥由密码服务平台托管 | 国密通道与标准通道双栈并存 | b0760、b0761、b0762 |
| 可靠性 | 月度可用率 | 条款未给量值（「具备高度稳定性和可靠性」） | ≥99.5%（扣除计划维护窗口与不可归因情形） | ≥99.9% | b0771、b0772 |
| 可靠性 | 核心服务恢复时间 | 条款未给量值（「迅速……恢复系统正常运行」） | RTO ≤30 分钟 | ≤10 分钟 | b0764、b0766 |
| 可靠性 | 数据恢复点 | 条款未给量值（「快速恢复正常运行」） | 结构化数据 RPO ≤15 分钟；数据集制品 RPO ≤24 小时 | ≤5 分钟 ／ ≤12 小时 | b0766、b0767 |
| 可靠性 | 故障定位时长 | 条款未给量值（「迅速定位问题」） | 一级故障 15 分钟内定位到故障域 | ≤8 分钟 | b0764、b0765 |
| 可靠性 | 压力与稳定性测试 | 交付前进行压力测试、稳定性测试并提供报告 | 交付《压力测试报告》《稳定性测试报告》《容量测试报告》《故障恢复与可靠性测试报告》 | 稳定性测试连续运行 ≥72 小时 | b0768、b0769 |
| 运行 | 页面打开响应 | ≤1 秒 | ≤1 秒 | ≤0.6 秒 | b0781 |
| 运行 | 报表生成响应 | ≤3 秒 | 预置报表与常用统计 ≤3 秒；大结果集导出类报表提交响应 ≤3 秒、异步生成 | ≤1.8 秒 | b0781 |
| 性能 | 登录响应 | <1 秒 | <1 秒 | ≤0.6 秒 | b0784 |
| 性能 | 简单页面操作 | 平均 <1 秒 | 平均 <1 秒 | ≤0.6 秒 | b0785 |
| 性能 | 复杂页面操作 | 平均 <2 秒 | 平均 <2 秒 | ≤1.2 秒 | b0786 |
| 性能 | 在线并发与事务并发 | 条款未给量值 | 在线用户峰值 500、事务并发 100 TPS | 750 ／ 150 TPS | b0784—b0786 配套 |
| 国产化 | 软硬件整体国产化比率 | ≥80% | ≥80%（采购金额口径，核算见第八部分） | ≥85% | b0788—b0793、b0677 |

表 1-2　非功能性指标总览：招标值、承诺值与设计值（来源：招标值抄录招标文件 3.1.2.2 各条款与 2.3 项目目标 b0677；设计值为我方内部设计目标）

招标文件已给定量值的十项，承诺值即取条款值本身，口径不改写、量值不下调。条款未给量值的九项（可用率、恢复时间、恢复点、定位时长、并发与容量等），由我方自定目标值，用途是把「迅速恢复」「高度稳定」一类定性要求转换为可实测、可验收的数值；这九项的设立依据逐项列于表 1-3，属对招标要求的补充量化，不替代、不改写招标文件的任何一条硬性要求。两类指标在验收时同表核对。

承诺值只是一个数，这个数在什么条件下成立，才是验收时真正要争的。同一个数据集检索页面，刚上线、库里几千条记录时测，零点几秒就出来了；等首轮 63 万张图纸连同工艺卡解析完、血缘与质检记录跟着铺满，同一个页面查同一个条件，走的索引、扫的分区、聚合的行数都变了。一个在空库上测出来的 1 秒达标，三个月后业务起来就不达标，这种达标对甲方没有意义。负载同理：产线与井下设备的回传并不均匀，班次交替那半小时的并发是平时的数倍，只给一个平均并发数，等于把最该验的那半小时漏掉了。

每项指标因此钉死四件条件：在哪套环境上测、常态负载多少、峰值负载多少、被测对象的数据量与并发多少。持续负载与峰值负载分成两列而不合成一个「并发」，就是为了不让班次峰值被平均掉；数据量单列，是为了把「按验收时点的实际在库量测、并另造满载态数据复测」写死，避免空库过关。最左边的设计依据一列约束的是我方自己：承诺值不能是拍出来的数，每一项都要指得回一个具体的工程配置——月度可用率指回双机互备接入层与数据库主备加仲裁的冗余度，核心服务恢复时间指回健康检查 5 秒间隔、实例重建 3 分钟、主备切换 2 分钟这三段链路耗时的合计，在线并发指回注册用户的在线比例与人均操作频次的推导（表 7-2）。依据站不住的，该改的是承诺值，而不是等到验收时再解释。

19 项承诺值各有一条工程上的来路，和一套可复现的测试条件；换一个人按同一行去测，测出来的数应当对得上。验收方案按同一行组织用例。

| 指标项 | 设计依据 | 测试环境 | 持续负载 | 峰值负载 | 测试数据量与并发 |
|---|---|---|---|---|---|
| 界面与文档中文化 | 矿山装备制造术语与生僻字入库要求；GB18030 字符集范围 | 功能测试环境，与生产同版本 | 单人走查，无背景负载 | 不涉及 | 含生僻字图纸标注样本 ≥500 件；工艺术语检索样本 ≥1000 条 |
| 第三方组件授权 | 组件引入评审规程与软件物料清单采集能力 | 构建流水线与台账系统 | 每次构建触发一次成分分析 | 发布前全量复扫 | 全量直接依赖与间接依赖，不抽样 |
| 上线前评审与整改 | 评审单元分批送审的排产能力；阶段末 ≥5 个工作日缓冲 | 评审环境（与生产同版本、同数据口径） | 评审单元逐个送审 | 阶段末多单元并行送审 | 每单元七项评审材料齐备 |
| 二次开发文档 | 七类扩展点的接口规范与示例工程 | 沙箱环境，与生产配置一致 | 单开发者实操 | 二次开发培训并发 ≥30 人 | 每类扩展点 ≥1 个完整示例走通 |
| 版本向后兼容 | 已发布接口契约库与历史数据集格式样本集 | 持续集成环境＋升级演练环境 | 每次构建跑一轮契约测试 | 升级演练时全量契约回归 | 全部已发布接口版本；历史格式样本集全量 |
| 低级安全漏洞 | 通用漏洞评分与 Web 应用常见风险清单；四道检测安排 | 测试环境（与生产同镜像、同配置基线） | 静态分析每次提交触发；成分分析每日一次 | 上线前动态扫描与渗透测试各一轮 | 全部对外暴露页面与接口，不抽样 |
| 传输与存储保护 | GM/T 0024、GB/T 39786 的密码应用要求；浏览器兼容约束 | 预生产环境，含密码机与安全接入网关 | 常态业务流量下抓包核查 | 加解密并发按密码服务设计容量加压 | 抓包样本覆盖六类场景；加密字段全量核查 |
| 月度可用率 | 双机互备接入层、无状态多实例、数据库主备＋仲裁的冗余度 | 生产环境运行监测 | 常态业务负载 | 班次交替时段峰值 | 全量请求采样，按自然月统计 |
| 核心服务恢复时间 | 健康检查 5 秒间隔、实例重建 ≤3 分钟、主备切换 ≤2 分钟的链路耗时合计 | 预生产环境故障注入 | 70% 设计容量背景负载 | 100% 设计容量背景负载 | 每项注入重复 3 次取最差值 |
| 数据恢复点 | 增量日志连续归档的归档周期；数据集制品发布即备份 | 预生产环境备份恢复演练 | 常态写入速率 | 加工高峰写入速率 | 结构化数据按全库恢复；制品按版本抽取 3 个 |
| 故障定位时长 | 指标 15 秒采集周期、链路标识贯通、分层排查树 | 预生产环境故障注入 | 70% 设计容量背景负载 | 100% 设计容量背景负载 | 每项注入记录从告警到定位故障域的时刻 |
| 压力与稳定性测试 | 表 7-2 设计容量与表 7-3 加工吞吐测算 | 基准测试环境（配置与生产等比，比例记入报告） | 稳定性测试取 70% 设计容量 | 压力测试阶梯加至 150% 设计容量 | 按满载态数据规模造数；并发按表 7-2 设计值 |
| 页面打开响应 | 前端分包按需加载、虚拟滚动、静态资源内网缓存 | 基准测试环境 | 设计并发的 70%（350 在线） | 设计并发的 100%（500 在线） | 按验收时点在库数据量；满载态另造数复测 |
| 报表生成响应 | 预计算与物化视图支撑同步类；异步类提交即返回 | 基准测试环境 | 报表并发 20 路 | 报表并发 50 路 | 同步类按预置报表全集；异步类按最大结果集报表 |
| 登录响应 | 证书校验结果会话内缓存、密码服务连接复用、首屏与认证解耦 | 基准测试环境，含密码机 | 登录并发 50 次/秒 | 登录并发 100 次/秒 | 账号样本 ≥2000；含双因素认证路径 |
| 简单页面操作 | 单表或一次主从查询、结果集 ≤200 行、不含聚合 | 基准测试环境 | 350 在线用户、70 TPS | 500 在线用户、100 TPS | 关键表按三档数据量（上线态／中期态／满载态） |
| 复杂页面操作 | 跨数据域聚合走只读副本、物化视图与分区裁剪 | 基准测试环境 | 350 在线用户、70 TPS | 500 在线用户、100 TPS | 同上；血缘与质检汇总按满载态造数 |
| 在线并发与事务并发 | 注册用户 ×25% 同时在线、人均每分钟 12 次操作（推导见表 7-2） | 基准测试环境 | 70% 设计容量持续 30 分钟 | 100%→150% 阶梯各 30 分钟 | 并发连接按表 7-2；数据量按满载态 |
| 软硬件整体国产化比率 | 分母为本项所采购或开发的软硬件；采购金额单一口径 | 到货验收现场与配置清单核对 | 不涉及负载 | 不涉及 | 全量采购与开发条目，不抽样 |

表 1-3　各项指标的设计依据与测试负载条件（来源：招标文件 3.1.2.2 各条款；负载条件与设计依据为我方承诺的测试口径）

验收现场最常见的争执，不是达没达标，而是「这个数怎么算出来的」。月度可用率扣不扣计划维护窗口、按分钟判还是按请求判，同一个月的运行数据能算出两个结论；恢复时间从故障发生那一刻起算还是从告警响起那一刻起算，中间差着一整个检测时延；响应时间取平均值还是取 P90，差距可以到一倍。甲方已建成十余套业务系统，跨系统追一件事至今仍要人工对账，根子正是各家口径不一致；非功能性指标若也留下这样的口径空档，质保期内每出一次争议都要从头谈一遍。

五列分别回答验收时的五个问题：怎么测、怎么采样怎么算、多少算过、拿什么留痕、不过怎么办。其中失败整改一列最容易被省掉，也最该写——只写到阈值为止等于只承诺了好结果，第一次不达标时双方无章可循。本节每一项指标都按首期基线、趋向值与回退路径三段给出：基线是表 1-2 的承诺值，趋向是表 1-2 的设计值，回退就是这一列——月度可用率连续两个月低于承诺值的，出根因分析与改进计划并按整改单跟踪至达标；核心服务恢复时间超时的，定位到检测、决策、执行哪一环之后优化并重演，直至三次均达标；软硬件整体国产化比率低于 80% 的，更换同类国产组件后重算并重做适配验证。把公式写进表里还有一层用处：采样次数、统计量、排除项都已固定，验收时不必临时商量怎么算，照着这一行跑一遍即可。

19 项承诺因此都具备可执行的验收程序，不达标时的下一步也事先写定，不留到事后再谈。

| 指标项 | 测试步骤 | 采样周期与计算公式 | 判定阈值 | 证据 | 失败整改 |
|---|---|---|---|---|---|
| 界面与文档中文化 | 按功能模块逐屏走查→构造异常触发提示→生僻字样本入库回显→排序与全半角比对→术语检索召回核对 | 逐项计数；中文化覆盖率＝已中文化界面元素数÷界面元素总数 | 走查项均已中文化判通过；残留项列整改单限期关闭 | 《界面中文化走查表》《错误码与中文释义对照表》、字符集测试记录 | 残留项按三级整改单随下一版本关闭，走查表更新后复核 |
| 第三方组件授权 | 构建产出软件物料清单→比对授权台账→核验商业授权书与开源许可文本→许可档位合规判定 | 每次构建一次；台账完备率＝已登记并附凭证的组件数÷清单组件数 | 清单内组件均附凭证；强传染型组件不以静态链接方式使用 | 《第三方组件授权台账》、软件物料清单、原厂授权书 | 缺凭证组件暂停合入，补齐或替换为等价宽松许可组件后重扫 |
| 上线前评审与整改 | 内部三道测试→会前 3 个工作日提交七项材料→甲方评审→出具结论与整改单→按级关闭→复评 | 按评审单元计；整改及时率＝按期关闭的整改单数÷整改单总数 | 一级整改单 5 个工作日内关闭；里程碑不顺延 | 评审结论、整改单与关闭记录、复测报告 | 超期整改单升级至项目周例会，动用阶段末缓冲，必要时调整单元上线顺序 |
| 二次开发文档 | 按手册步骤在沙箱实操七类扩展点→比对数据字典与实际表结构→接口文档与契约库逐条比对 | 每次版本发布一次；接口文档覆盖率＝有文档的对外接口数÷对外接口总数 | 覆盖率 ≥95%；七类扩展点示例均可运行 | 《二次开发手册》《数据结构说明》《数据模型》《数据字典》、示例工程、实操记录 | 文档与实现不符的以实现为准修订文档，示例失败的修正示例并重跑 |
| 版本向后兼容 | 升级前执行契约测试→升级→跑接口回归用例集→以历史格式样本集回读数据集 | 每次构建与每次升级各一次；契约通过率＝通过契约数÷已发布契约数 | 已发布契约均通过；历史格式样本均可回读 | 契约测试报告、接口回归测试报告、升级影响评估单 | 破坏契约的变更退回并新开接口版本；样本回读失败的保留旧格式读取实现 |
| 低级安全漏洞 | 静态分析（每次提交）→成分分析（每日）→动态扫描（每版本）→渗透测试（上线前）→整改→复测 | 扫描即采样；残留率＝未关闭缺陷数÷发现缺陷数，按严重级分列 | 表 4-1 所列类型与评分 ≥7.0 的高危项残留清零；中危按 30 个自然日时限关闭 | 安全测试报告、渗透测试报告、《安全缺陷台账》与复测记录 | 高危未关闭即阻塞上线；无补丁的按隔离加监测处置并经甲方书面接受 |
| 传输与存储保护 | 通道配置基线核查→流量抓包核查→数据库与文件抽查明文→密钥托管与轮换核查 | 上线前一轮、质保期每季度一轮；明文命中数按抽查样本计 | 禁用协议未启用；敏感字段与文件抽查无明文命中 | 《加密方案说明》、配置基线核查记录、抓包与抽查记录 | 命中项当期整改并复查，涉及历史数据的按分级重加密并留存处置记录 |
| 月度可用率 | 外部拨测与内部健康检查双路采集→按分钟判定可用→扣除计划维护窗口→按月汇总 | 采样周期 60 秒；可用率＝（月内分钟数－不可用分钟数－计划维护分钟数）÷（月内分钟数－计划维护分钟数） | ≥99.5% | 月度运行报告、监测原始数据、停机通告与故障单 | 连续两月低于承诺值的，出具根因分析与改进计划，按整改单跟踪至达标 |
| 核心服务恢复时间 | 注入故障→记录检测时刻→执行切换或重建→记录服务恢复时刻→业务探针确认可用 | 每次演练一次，每项重复 3 次；RTO＝服务恢复时刻－故障发生时刻，取三次最差值 | ≤30 分钟 | 《故障恢复与可靠性测试报告》、注入记录表、演练录屏 | 超时项定位到具体环节（检测、决策、执行）后优化并重演，直至三次均达标 |
| 数据恢复点 | 持续写入背景数据→注入故障或模拟误删→按备份与日志恢复→比对恢复点与故障点之间的数据差 | 月度备份恢复演练；RPO＝故障时刻－可恢复数据的最后一致时刻 | 结构化数据 ≤15 分钟；数据集制品 ≤24 小时 | 《备份与恢复演练记录》、恢复前后数据比对报告 | 超出承诺的缩短日志归档周期或提高备份频次，调整后下一轮演练复核 |
| 故障定位时长 | 注入故障→监测告警→值守按分层排查树逐层收敛→记录定位到故障域的时刻 | 每次演练一次；定位时长＝定位到故障域时刻－告警时刻 | 一级故障 ≤15 分钟 | 故障单、排查过程记录、监测看板截屏 | 超时的补充该故障类型的检测规则与看板，并入演练清单下轮复测 |
| 压力与稳定性测试 | 按阶梯加压找拐点→以 70% 容量连续运行 ≥72 小时→采集资源与响应曲线→出具报告 | 压力测试每级 30 分钟、指标采样 15 秒；稳定性测试全程采样 15 秒，取每小时 P90 作趋势 | 100% 容量下满足表 1-2 承诺值且错误率 <0.1%；拐点 ≥120% 容量；72 小时内响应时间劣化 <20% | 《压力测试报告》《稳定性测试报告》、原始采样数据 | 未达判据的按分层定位整改，整改后重跑完整轮次，不以局部复测替代 |
| 页面打开响应 | 预置基准数据量→施加背景负载→对目标页面重复请求 ≥200 次→记录接入层到响应末字节耗时 | 采样 ≥200 次；取 P90，同时记录 P50 与 P99 | P90 ≤1 秒 | 性能测试报告、原始采样数据、性能基线归档 | 超阈值按前端、接口、缓存、数据库分层定位；基线劣化 >20% 阻断发布 |
| 报表生成响应 | 同步类报表逐张执行并计时；异步类记录提交响应时间与生成完成时间 | 每张报表采样 ≥50 次；取 P90 | 同步类 P90 ≤3 秒；异步类提交响应 P90 ≤3 秒 | 性能测试报告、报表分类确认单 | 超阈值的转预计算或物化视图支撑；仍超的改列异步类并经甲方书面确认 |
| 登录响应 | 预置账号样本→按设计并发发起登录→记录认证完成时刻（不含首屏数据加载） | 采样 ≥200 次；取 P90 | P90 <1 秒 | 性能测试报告、密码服务调用日志 | 超阈值的优化证书校验缓存与密码服务连接复用，必要时上调密码服务并发配额 |
| 简单页面操作 | 按表 7-1 归类的功能点逐个执行→三档数据量下各采样 ≥200 次 | 采样 ≥200 次；取 P90，按数据量档分列 | 各档 P90 <1 秒 | 性能测试报告、功能点归类确认单、基线曲线 | 超阈值的按索引、分区、结果集裁剪整改；三档均须复测通过 |
| 复杂页面操作 | 同上，背景负载与数据量同简单页面操作 | 采样 ≥200 次；取 P90 | 各档 P90 <2 秒 | 同上 | 超阈值的转只读副本或预计算；仍超的按表 1-1 条件变更流程重订基准 |
| 在线并发与事务并发 | 按 50%→75%→100%→125%→150% 阶梯加压，每级稳定运行 30 分钟 | 每级采样 15 秒；TPS＝成功事务数÷统计时长，错误率＝失败请求数÷总请求数 | 100% 容量下 TPS 达标且错误率 <0.1%；拐点 ≥120% | 《压力测试报告》《容量测试报告》 | 未达的按连接池、线程池、缓存与数据库分层调优；资源不足的提交扩容建议 |
| 软硬件整体国产化比率 | 按到货清单与配置清单逐条判定→代入分子分母算式→出具核算说明 | 两个时点各一次（合同后预算、上线验收实算）；比率＝国产条目含税金额合计÷分母条目含税金额合计 | ≥80% | 《国产化率核算说明》、设备清单与型号、厂商归属证明、认证证书、适配测试报告 | 低于 80% 的按表 8-3 回退路径更换同类国产组件，更换后重算并重做适配验证 |

表 1-4　各项指标的测试步骤、采样与判定（来源：招标文件 3.1.2.2 各条款；步骤、公式、阈值与整改方式为我方承诺的验收口径）

### 图 1-1　指标的承诺、验证与回退路径

<svg viewBox="0 0 820 300" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11a" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <rect x="14" y="26" width="120" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="74" y="46" text-anchor="middle">招标文件</text>
  <text x="74" y="64" text-anchor="middle">3.1.2.2 条款</text>
  <path fill="none" d="M134 51 H196" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="165" y="43" text-anchor="middle" font-size="12">条款值</text>
  <rect x="196" y="18" width="150" height="66" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="271" y="38" text-anchor="middle">三层指标表</text>
  <text x="271" y="56" text-anchor="middle" font-size="12">承诺值／设计值</text>
  <text x="271" y="74" text-anchor="middle" font-size="12">验收值＋五要素口径</text>
  <path fill="none" d="M346 51 H408" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="377" y="43" text-anchor="middle" font-size="12">设计输入</text>
  <rect x="408" y="26" width="128" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="472" y="46" text-anchor="middle">设计与实现</text>
  <text x="472" y="64" text-anchor="middle" font-size="12">选型·架构·编码</text>
  <path fill="none" d="M536 51 H598" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="567" y="43" text-anchor="middle" font-size="12">待测版本</text>
  <rect x="598" y="18" width="208" height="66" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="702" y="38" text-anchor="middle">基准环境测试</text>
  <text x="702" y="56" text-anchor="middle" font-size="12">压力·稳定性·性能·安全</text>
  <text x="702" y="74" text-anchor="middle" font-size="12">出具测试报告</text>
  <path fill="none" d="M702 84 V128" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="762" y="110" text-anchor="middle" font-size="12">测试报告</text>
  <rect x="598" y="128" width="208" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="702" y="148" text-anchor="middle">甲方评审确认</text>
  <text x="702" y="166" text-anchor="middle" font-size="12">对照表 1-1 五要素</text>
  <path fill="none" d="M702 178 V218" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="742" y="202" text-anchor="middle" font-size="12">通过</text>
  <rect x="620" y="218" width="164" height="44" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="702" y="245" text-anchor="middle">上线并转入运行监测</text>
  <path fill="none" d="M598 153 H408" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
  <text x="503" y="145" text-anchor="middle" font-size="12">不通过：整改单＋复测要求</text>
  <rect x="196" y="128" width="212" height="86" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="302" y="148" text-anchor="middle">不达标分层处置</text>
  <text x="302" y="167" text-anchor="middle" font-size="12">① 实现问题 → 分层定位整改</text>
  <text x="302" y="185" text-anchor="middle" font-size="12">② 口径偏离 → 按书面口径重测</text>
  <text x="302" y="203" text-anchor="middle" font-size="12">③ 条件变更 → 重订基准后重验</text>
  <path fill="none" d="M302 128 V96 H472 V76" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11a)"/>
  <text x="390" y="90" text-anchor="middle" font-size="12">回归设计与实现</text>
  <path fill="none" d="M196 171 H110 V96" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11a)"/>
  <text x="108" y="196" text-anchor="middle" font-size="12">口径修订</text>
  <path fill="none" d="M110 96 V84" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3"/>
  <path fill="none" d="M110 84 H196" stroke="#334155" stroke-width="1.4" marker-end="url(#t11a)"/>
</svg>

图 1-1　非功能性指标的承诺、验证与回退路径。数据来源：招标文件 3.1.2.2.1 第（4）条上线评审要求（b0749、b0750）与 3.1.2.2.4 第（3）条测试报告要求（b0768、b0769）。

### 2、基本要求（3.1.2.2.1）

四条分别指向中文化、第三方授权、正版凭证与上线评审，共同点是都在交付环节产生可核对的凭证，因此每一条都配一份可供甲方逐项清查的台账或清单。

#### （1）界面与文档的中文化

系统功能页面支持中文，相关文档均为中文版（b0745）。中文化在本项目不只是界面翻译，还牵涉矿山装备制造的专业术语与中文数据处理，我方按以下六个层面落实。

界面层面，三套软件的菜单、按钮、字段标签、提示信息、报错信息、导出文件名与报表表头均为简体中文，不保留英文原文作为唯一显示；技术术语保留英文缩写时，在首次出现处给出中文全称，并在系统的术语表中可查。错误提示不直接抛出技术堆栈，而是给出中文说明、错误码与建议操作，错误码与中文释义的对照表随系统交付。

字符处理层面，数据库与应用统一采用 UTF-8 编码，字符集覆盖 GB18030 全部汉字范围，以容纳图纸标注与材料牌号中出现的生僻字与符号。中文排序支持拼音序与笔画序两种方式，供物料名称、文件名、专家姓名等列表使用。全角与半角字符在入库前做归一化处理，避免同一材料牌号因全角数字与半角数字差异而被识别为两种物料。

检索层面，中文分词采用通用词典加本项目行业词典的方式。行业词典由本项目的知识本体与数据标注规范派生，覆盖刮板输送机零部件名称、备料工序名称、热处理与焊接工艺术语、材料牌号等条目，首批词条规模不少于 3000 条，并在加工生产过程中按新发现的术语持续补充。分词词典的维护界面开放给甲方工艺与技术部门，由业务人员直接增补。

文档层面，交付文档均为中文版，包括用户手册、管理员手册、二次开发手册、数据字典、部署与运维手册、测试报告、验收文档与培训材料。涉及引用国际标准原文的部分，给出中文译名与标准号，必要时附原文条款号便于核对。

输入法与终端层面，手持终端与一体终端机的中文输入经实机验证，车间环境下的手套操作与扫码录入在同一界面内可切换，避免现场人员为输入一个工序名称反复切换输入法。

| 清查项 | 落实内容 | 验证方法 | 交付物 |
|---|---|---|---|
| 界面中文化 | 菜单、字段、按钮、提示、报表表头全部简体中文 | 界面逐屏走查，按功能模块出具走查记录 | 《界面中文化走查表》 |
| 错误提示 | 中文说明＋错误码＋建议操作 | 构造异常触发，核对提示内容 | 《错误码与中文释义对照表》 |
| 字符集 | UTF-8，覆盖 GB18030 汉字范围 | 用含生僻字的图纸标注样本入库并回显 | 字符集测试记录 |
| 中文排序 | 拼音序与笔画序可选 | 物料与文件列表排序比对 | 功能测试记录 |
| 全半角归一 | 入库前归一，避免同物异码 | 以全角半角混合的材料牌号样本验证 | 数据清洗规则说明 |
| 中文分词 | 通用词典＋行业词典，首批 ≥3000 条 | 用工艺术语检索样本集核对召回 | 《行业分词词典》与维护界面 |
| 交付文档 | 全部中文版 | 文档清单逐份核对 | 文档交付清单与签收单 |
| 终端输入 | 手持与一体终端实机验证中文录入 | 现场实机测试 | 终端兼容测试记录 |

表 2-1　中文化落实清查表（来源：招标文件 3.1.2.2.1 第（1）条 b0745）

#### （2）第三方软件授权与知识产权

涉及的第三方软件均有原厂授权、无产权纠纷，甲方使用系统时不受第三方起诉（b0746、b0747）。我方按「先建台账、再定边界、后作担保」三步落实。

建台账是基础工作。三套软件涉及的全部第三方成分，包括商业软件、商业许可的国产操作系统与数据库、开源组件及其间接依赖，逐项登记为《第三方组件授权台账》。台账在首次版本提交评审时一并提交，此后随每次版本发布更新。登记粒度到具体版本号，间接依赖通过软件成分分析工具自动采集生成软件物料清单，避免手工漏登。

定边界是风险控制。开源组件按许可类型分三档管理：宽松型许可可直接使用，保留版权声明即可；弱传染性许可允许以动态链接方式使用，修改该组件本身的代码须按其许可要求处置；强传染性许可不用于与交付代码静态链接或同进程集成的场合，若业务上确需其能力，采用独立进程加接口调用的方式隔离，或改用功能等价的宽松许可组件。这一档的判定在组件引入评审时完成，不留到交付阶段再处理。

| 许可档位 | 典型使用方式 | 本项目的使用边界 | 评审要求 |
|---|---|---|---|
| 宽松型 | 直接引入、随交付物分发 | 可用于全部交付软件 | 登记台账，保留版权与许可声明 |
| 弱传染型 | 动态链接或独立服务 | 可用，不修改组件自身源码；如修改则单独开放该组件的修改部分 | 组件引入评审并记录使用方式 |
| 强传染型 | 独立进程、经接口调用 | 不与交付代码静态链接、不同进程集成；优先寻找功能等价的宽松许可替代 | 组件引入评审逐例批准，记录隔离方式与替代预案 |
| 商业许可 | 按许可数量或节点授权 | 由我方提供正版许可，许可范围覆盖本项目约定的使用规模 | 提交授权书，登记到期日与续期责任 |

表 2-2　第三方组件许可档位与使用边界（来源：招标文件 3.1.2.2.1 第（2）条 b0746、b0747）

作担保是对甲方的承诺。我方承诺交付物不侵犯第三方的专利权、著作权、商标权与工业设计权；若甲方因使用本项目交付的系统而遭第三方以知识产权为由主张权利或提起诉讼，由我方负责应对与抗辩，承担由此产生的诉讼费用、赔偿费用与和解费用；如经判定确有侵权，我方在不影响甲方业务连续性的前提下，采取取得授权、更换为无瑕疵的功能等价实现、或修改实现方式三种方案之一，使甲方得以继续使用系统，相应工作不另行收费。承诺内容写入《知识产权无侵权担保函》，与投标文件一并提交。

台账的字段格式如下，便于甲方在验收与质保期内随时抽查。

| 字段 | 内容说明 |
|---|---|
| 组件名称与版本 | 精确到版本号，间接依赖标明被谁引入 |
| 许可类型 | 按表 2-2 的四档填写 |
| 来源 | 官方发布渠道或原厂 |
| 授权凭证 | 商业软件填授权书编号；开源填许可文本位置 |
| 使用方式 | 静态链接、动态链接、独立进程、独立服务 |
| 所在交付物 | 对应三套软件中的哪一套、哪个模块 |
| 安全跟踪 | 已知漏洞编号与修复版本、我方升级计划 |
| 替换预案 | 该组件不可用时的等价替代方案 |

表 2-3　第三方组件授权台账字段格式（来源：招标文件 b0746、b0747 及本节承诺）

#### （3）正版授权书与售后服务承诺书

投标方提供原厂正版软件授权书、售后服务承诺书（b0748）。我方按下列清单与时点提交：投标阶段随投标文件提交《售后服务承诺书》与《知识产权无侵权担保函》；合同签订后 15 个工作日内提交商业软件的原厂正版授权书原件或原厂出具的授权证明，涵盖操作系统、数据库管理系统、商用密码服务平台及其他按许可计费的商业组件；系统上线前提交与实际部署规模一致的许可清单与到期日台账。授权书上的授权主体、许可范围与许可数量以合同约定的部署规模为准，若运行期内甲方扩大部署规模，按许可条款补充授权，补充方式在合同中约定。

售后服务承诺书的服务分级与服务级别条款在售后服务方案一节展开。本节承担的实施职责是把两处数字锁成一套：承诺书中的故障响应时限、恢复时限与可用率条款，取表 1-2 与表 5-1 的同一组量值——一级故障 15 分钟内响应、核心服务恢复时间不超过 30 分钟、月度可用率不低于 99.5%；承诺书定稿前由我方技术与商务按表 1-2 逐行核签，核签记录随承诺书一并归档，两处不出现两套数字。

正版许可与授权证明的证据按下表引用。证据的提交时点、核验方式与归档位置逐项固定，甲方在验收与质保期内可按本表索引调阅。

| 证据件 | 覆盖范围 | 提交时点 | 核验方式 | 归档位置 |
|---|---|---|---|---|
| 《售后服务承诺书》 | 故障响应、恢复时限、可用率、质保期服务内容 | 随投标文件提交 | 与表 1-2、表 5-1 逐行比对量值 | 投标文件商务部分；项目文档库 |
| 《知识产权无侵权担保函》 | 专利权、著作权、商标权、工业设计权的担保与抗辩责任 | 随投标文件提交 | 担保范围与交付物清单比对 | 同上 |
| 操作系统原厂正版授权书 | 全部服务器与终端的操作系统许可 | 合同签订后 15 个工作日内 | 核验授权主体、许可范围、许可数量与到期日 | 《许可清单与到期日台账》；随验收文件移交 |
| 数据库管理系统原厂正版授权书 | 核心库及配套存储组件 | 同上 | 同上，并核验非免费版本 | 同上 |
| 商用密码服务平台授权书与《商用密码产品认证证书》 | 安全软件 | 同上 | 核验证书编号与有效期 | 同上 |
| 中间件与其他按许可计费组件的授权书 | 应用服务器、消息、缓存、检索等 | 同上 | 与《第三方组件授权台账》逐条对应 | 同上 |
| 许可清单与到期日台账 | 全部商业许可的授权主体、范围、数量、生效日与到期日 | 系统上线前，与实际部署规模一致 | 按实际部署节点数与核数核对许可数量 | 项目文档库；到期前 90 天自动提醒 |
| 开源组件许可文本与软件物料清单 | 全部直接依赖与间接依赖 | 每次版本发布 | 按表 2-2 档位判定使用边界 | 《第三方组件授权台账》附件 |

表 2-4　正版授权与承诺书的证据引用（来源：招标文件 3.1.2.2.1 第（3）条 b0748；提交时点与核验方式为本节承诺值）

部署规模在运行期扩大的，按许可条款补充授权，补充授权书按同一表格追加登记，台账版本随之更新。

#### （4）上线前评审与整改

系统所有功能经甲方评审通过后才能上线，评审不通过及时整改，且不影响项目整体进度（b0749、b0750）。「评审通过才能上线」与「整改不影响进度」须同时满足，整改工作纳入排产计划，不得挤占关键路径或靠加班兜底。

我方的做法是把评审做成分批、前置、并行的闸门，而非集中在上线前的一道总评审。

分批是指按功能模块与数据集批次划分评审单元。本项目的交付物天然可分批：三套软件按功能模块分批，四大数据集按供需计划、产品工艺设计、制造过程、质量四个业务域分批，专项智能工具链按九类分批。每个评审单元独立送审、独立通过、独立上线，一个单元未通过不阻塞其他单元。

前置是指在正式评审之前完成内部三道测试并把结论一并提交，减少评审会上才发现基础问题的情形。三道测试为功能测试、性能与可靠性测试、安全测试，分别对应本节第五至第八部分的验证方法。评审材料在评审会前 3 个工作日提交，便于甲方评审人员预读。

并行是指整改与下一阶段工作并行推进。整改单按影响程度分三级，分级与时限见表 2-5。一级整改单关闭后方可上线，二级与三级整改单允许带单上线并在约定时限内关闭，带单上线需甲方书面同意并记录在评审结论中。与此配套的是里程碑缓冲：项目计划在每个阶段末预留不少于 5 个工作日的评审与整改缓冲，缓冲用于吸收整改工作量，使单个评审单元的整改不传导到后续里程碑。

| 整改单等级 | 判定标准 | 关闭时限 | 是否阻塞上线 | 复评方式 |
|---|---|---|---|---|
| 一级 | 功能缺失或错误导致业务无法完成；高危安全漏洞；关键性能指标不达标 | 5 个工作日 | 阻塞 | 提交复测报告并召开复评会 |
| 二级 | 功能可用但存在明显不便；中危安全漏洞；非关键指标不达标 | 10 个工作日 | 不阻塞，带单上线须书面同意 | 提交复测报告，书面确认关闭 |
| 三级 | 界面文案、提示优化、文档补充一类 | 随下一个版本 | 不阻塞 | 版本发布说明中列明 |

表 2-5　上线评审整改单分级与时限（来源：招标文件 3.1.2.2.1 第（4）条 b0749、b0750）

评审材料清单固定为七项：评审单元的功能说明与操作手册节选、需求对照表（逐条对应招标文件与需求确认结论）、内部功能测试报告、性能与可靠性测试报告、安全测试报告、第三方组件授权台账增量部分、遗留问题清单与处置建议。七项齐备方提交评审，缺项由我方补齐后重新预约，不占用甲方评审时间。

### 图 2-1　功能上线评审闸门与整改回路

<svg viewBox="0 0 820 316" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11b" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <text x="18" y="20" font-size="12" fill="#475569">评审单元：按功能模块／数据集业务域／工具链类别分批送审，互不阻塞</text>
  <rect x="14" y="34" width="118" height="54" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="73" y="55" text-anchor="middle">需求确认</text>
  <text x="73" y="74" text-anchor="middle" font-size="12">对照表定稿</text>
  <path fill="none" d="M132 61 H186" stroke="#334155" stroke-width="1.4" marker-end="url(#t11b)"/>
  <text x="159" y="53" text-anchor="middle" font-size="12">范围</text>
  <rect x="186" y="34" width="118" height="54" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="245" y="55" text-anchor="middle">设计与开发</text>
  <text x="245" y="74" text-anchor="middle" font-size="12">单元级交付</text>
  <path fill="none" d="M304 61 H358" stroke="#334155" stroke-width="1.4" marker-end="url(#t11b)"/>
  <text x="331" y="53" text-anchor="middle" font-size="12">待测版本</text>
  <rect x="358" y="26" width="166" height="70" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="441" y="46" text-anchor="middle">内部三道测试</text>
  <text x="441" y="64" text-anchor="middle" font-size="12">功能｜性能与可靠性</text>
  <text x="441" y="82" text-anchor="middle" font-size="12">安全（四类检测）</text>
  <path fill="none" d="M524 61 H578" stroke="#334155" stroke-width="1.4" marker-end="url(#t11b)"/>
  <text x="551" y="53" text-anchor="middle" font-size="12">七项材料</text>
  <rect x="578" y="26" width="226" height="70" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="691" y="46" text-anchor="middle">甲方评审</text>
  <text x="691" y="64" text-anchor="middle" font-size="12">会前 3 个工作日提交材料</text>
  <text x="691" y="82" text-anchor="middle" font-size="12">出具评审结论与整改单</text>
  <path fill="none" d="M691 96 V140" stroke="#334155" stroke-width="1.4" marker-end="url(#t11b)"/>
  <text x="733" y="122" text-anchor="middle" font-size="12">通过</text>
  <rect x="600" y="140" width="182" height="48" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="691" y="169" text-anchor="middle">上线并转入运行监测</text>
  <rect x="300" y="140" width="258" height="112" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="429" y="161" text-anchor="middle">整改单分级处置</text>
  <text x="318" y="182" font-size="12">一级：阻塞上线，5 个工作日关闭后复评</text>
  <text x="307.0" y="202" font-size="12">二级：10 个工作日关闭，带单上线须书面同意</text>
  <text x="318" y="222" font-size="12">三级：随下一版本关闭，发布说明列明</text>
  <text x="318" y="242" font-size="12">整改与下一单元开发并行推进</text>
  <path fill="none" d="M600 164 H558" stroke="#334155" stroke-width="1.4" marker-end="url(#t11b)"/>
  <text x="579" y="156" text-anchor="middle" font-size="12">不通过</text>
  <path fill="none" d="M429 140 V116 H441 V96" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11b)"/>
  <text x="372" y="112" text-anchor="middle" font-size="12">复测</text>
  <path fill="none" d="M300 196 H245 V88" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11b)"/>
  <text x="258" y="214" text-anchor="middle" font-size="12">返工</text>
  <rect x="14" y="252" width="544" height="48" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="286" y="272" text-anchor="middle">里程碑缓冲：每阶段末预留 ≥5 个工作日，用于吸收整改工作量</text>
  <text x="286" y="291" text-anchor="middle" font-size="12">单个评审单元的整改不传导到后续里程碑，项目整体进度不顺延</text>
</svg>

图 2-1　功能上线评审闸门与整改回路。数据来源：招标文件 3.1.2.2.1 第（4）条（b0749、b0750）；整改单分级与时限为本节承诺值。

### 3、开放性要求（3.1.2.2.2）

三条依次指向二次开发能力与配套文档、用户手册与在线帮助、跨平台迁移与版本升级兼容。数据集加工生产不是一次性工程，甲方在项目结束后仍要持续扩充数据集、新增加工算子、对接新的源系统；我方通过二次开发手册、数据字典与免费技术指导，支撑甲方自行扩展算子与对接源系统。

#### （1）二次开发能力与配套文档

提供个性化、定制化及二次开发能力，提供二次开发手册、数据结构、数据模型和数据字典，免费提供二次开发技术指导服务（b0752、b0753）。

二次开发能力在本项目上不是一句客套话。数据集不是做完一轮就定型的东西：备料工序今天是 28 道，产线改一次工艺就不止 28 道，工序编码、工序之间的先后约束、每道工序该采哪些参数都要跟着改；63 万张历史图纸连同配套工艺卡解析入库只是起点，此后每天仍有新图纸、新工艺卡产生；井下测点损坏按现行做法不补装，源系统那一侧会凭空少掉一列，下游得分得清这是设备坏了还是停产。

最能说明问题的是焊接。焊机吐出来的参数流是连续的，而工件与焊道是离散的——一件大型单部件的焊缝可达数百条、一条焊缝多层多道，要把某一段参数流归到某一条焊道上，靠的是甲方自己那套焊缝与焊道编号规则。这套规则是企业内部的工艺约定，随工艺文件改版而改；外面的人既写不出来，也不该每改一次就等我方派人改代码。这类事情只有两种结局：要么平台留出甲方自己能动手的地方，要么数据集的扩充速度被我方的排期卡住。

二次开发能力因此落在七个扩展点上，设计原则是新增能力不改主干代码，甲方的开发人员通过注册与配置即可接入自己的实现。七个扩展点按「改动落到哪一层」排：配置即生效、不需要改代码也不需要发版的，是自定义字段与表单、流程编排、报表与看板，再加上事件回调的地址注册；要写代码但不碰主干的，是加工算子；从外部调进来的，是对外接口与工具包。接入方式一列回答的是这件事要不要发版、要不要我方在场，它决定了甲方能不能当天改完当天用上。典型用法一列不是举例凑数：一张只写能力不写用处的清单，甲方读完仍不知道自己手上的哪件事能靠它解决，所以每一行都对上一件本项目里确实会发生的事——给备料工序数据集加一个本企业特有的工序编码字段、写一个专用的图纸标注规则算子、把数据集检索接进协同办公系统。若改按平台模块组织（加工平台的接口、运营平台的接口分开列），同一类扩展会散到多处，甲方想扩一件事得先弄清它归哪个模块管。

七个扩展点要给出的结论是：甲方今后在数据集上要做的扩展都能在表内找到落点，其中四类当天配置当天生效，其余三类由甲方自行开发，均不需要我方改动主干代码。

| 扩展点 | 可扩展内容 | 接入方式 | 本项目的典型用法 |
|---|---|---|---|
| 对外接口 | 数据集查询、下载、元数据读写、订单与审批 | RESTful 接口，统一网关鉴权，提供接口文档与调用示例 | 甲方的协同办公系统调用数据集检索接口 |
| 软件开发工具包 | 封装接口调用、鉴权、分页、断点续传 | 提供工具包与示例工程 | 甲方自建小工具批量下载某业务域数据集 |
| 事件回调 | 数据集发布、版本变更、质检完成、订单状态变更等事件 | 甲方注册回调地址，平台按事件推送 | 数据集新版本发布后自动通知甲方的下游系统 |
| 加工算子 | 解析、清洗、标注、质检、合成各环节的处理单元 | 按算子接口规范实现并注册，平台调度执行 | 甲方工艺部门自行实现一个专用的图纸标注规则算子 |
| 自定义字段与表单 | 数据集元数据、订单、审批单的扩展字段 | 配置界面定义字段、类型、校验与展示位置 | 为备料工序数据集增加本企业特有的工序编码字段 |
| 流程编排 | 审批流、质检流、发布流的节点与条件 | 可视化编排，配置生效，无需发版 | 调整数据集对外挂牌前的审批层级 |
| 报表与看板 | 统计维度、指标、图表与导出格式 | 配置化定义，支持自定义查询 | 按车间维度统计工艺数据集的覆盖进度 |

表 3-1　二次开发扩展点清单（来源：招标文件 3.1.2.2.2 第（1）条 b0752、b0753）

手册写得再细，真正卡住甲方开发人员的常常是另一类问题：这个字段到底指什么、这张表和那张表靠什么对上。数据集元数据里的时效性按哪个时点算，模态占比的分母是条数还是文件数；28 道备料工序的工序编码在库里是一列值还是一张码表，改成 30 道时要动哪几处；63 万张图纸与配套工艺卡的配对关系落在哪张表上，一张图纸对多张工艺卡时主键怎么定。这些问题手册回答不了，只能由数据模型与数据字典逐表逐字段写死。

还有一类失效更隐蔽：文档交了初版就停在那里，半年后界面改了、字段加了、接口出了新版本，照着文档写出来的代码跑不通。甲方被绊住一两次之后就不再查文档、改为直接问人，二次开发能力也就名存实亡。所以这四类文档的交付不止于交出来，还要跟着版本一起走。

四类文档按「从怎么做到是什么」排：二次开发手册讲步骤，数据结构说明讲库怎么分层、实体之间靠什么约束，数据模型讲概念、逻辑、物理三层之间怎么映射，数据字典讲每一个字段的含义与取值。粒度要求一列是这张表的要害——这四类文档都可以写得很薄，也都可以写得真能用，薄的那种交了等同于没交；把粒度写进表里，验收就不是数文档份数，而是按每类扩展点有没有一个跑得通的示例、实体关系图有没有覆盖到全部业务实体、字段清单有没有漏项、码表给没给全取值来判。少了这一列，文档只能按份数验收，而份数与可用性无关。

四类文档合起来要达到的程度是：一个此前没接触过本平台的开发人员，照着它们可以不找我方的人就把一个扩展做完。接口文档的覆盖首期不低于对外接口的 95%，其后随版本逐批补齐、趋向逐一覆盖；仍有缺口的在版本发布说明中列明接口名与补齐时点，缺口期间由答疑窗口按售后服务方案的响应时限兜底。四类文档在系统首次上线前交付初版，内容大纲固定如下，随版本更新。

| 文档 | 内容大纲 | 粒度要求 |
|---|---|---|
| 二次开发手册 | 开发环境搭建、工程结构、鉴权与调用、七类扩展点的开发步骤与示例代码、调试与日志、打包与部署、常见错误与排查 | 每类扩展点至少一个可运行的完整示例 |
| 数据结构说明 | 逻辑分层、主要实体及其关系、主键与外键约束、分区与索引策略、历史版本与软删除的处理方式 | 含实体关系图，覆盖全部业务实体 |
| 数据模型 | 概念模型、逻辑模型、物理模型三层；数据集元数据模型、加工作业模型、质检结果模型、血缘模型 | 三层之间的映射关系逐表对应 |
| 数据字典 | 表清单、字段清单（名称、类型、长度、可空、默认值、业务含义、取值范围）、码表、枚举值、计算字段的口径说明 | 字段级无遗漏，码表给出全部取值与含义 |

表 3-2　二次开发配套文档交付大纲（来源：招标文件 b0752、b0753）

免费技术指导服务按四种形式提供，不单独收费，服务期覆盖建设期与质保期：二次开发专题培训，面向甲方开发人员，不少于 16 课时，含实操；答疑窗口，建设期内工作日响应，质保期内按售后服务方案的响应时限执行；示例工程与沙箱环境，提供可独立运行的示例工程与一套与生产环境配置一致的沙箱，甲方可在沙箱内自由试验而不影响生产数据；年度技术指导人日，质保期内每年提供不少于 10 人日的现场或远程技术指导，用于甲方自主开发过程中的设计评审与问题诊断。

#### （2）用户手册与在线帮助

提供完整的用户手册和在线帮助文档，包括常见问题解答、最佳实践和开发指南（b0754、b0755）。

用户手册按角色编写，避免把全部功能塞进一本让每类人都读不完的手册。业务用户手册面向数据集的使用方与审批人，按任务组织章节，每章回答一件事怎么做；管理员手册面向平台管理员，覆盖用户与权限、配额与策略、监控与告警、备份与恢复、许可管理；运维手册面向系统运维，覆盖部署、升级、巡检、故障处置、日志与性能分析；二次开发手册见表 3-2。

在线帮助做三层：页面级帮助，每个功能页面提供入口，打开即是该页面对应的手册章节；字段级提示，对规则不直观的字段给出悬浮说明与取值示例，例如数据集元数据中的时效性口径、模态占比的计算方式；引导式教程，对首次使用的用户提供分步引导，覆盖数据集检索与下载、数据集上传与登记、质检结果查看、订单与审批四条高频路径。

常见问题解答按模块组织，首批不少于 120 条，内容来自三个来源：培训与试运行期间收集的实际提问、答疑窗口的工单记录、我方在同类系统运行中沉淀的高频问题。质保期内按季度更新，新增条目在版本发布说明中列出。

最佳实践取自本项目的真实加工场景，而不是通用性的操作建议。例如图纸批量解析任务的批次大小如何选择与机时的关系、标注一致性校验不通过时的返工判断、数据集版本在场景验证中被引用后如何处理缺陷修复与版本分叉、备料工序数据集在新增工序时的元数据扩展方式。每条最佳实践给出背景、做法与适用边界，不写成口号。

开发指南是二次开发手册中面向场景的部分，按「我要做什么」组织：新增一个加工算子、对接一个新的源系统、增加一个数据集元数据字段、把数据集检索嵌入自有系统、订阅数据集发布事件。每条给出完整步骤与可运行代码。

| 文档类别 | 交付形态 | 首次交付时点 | 更新机制 |
|---|---|---|---|
| 业务用户手册 | 中文 PDF ＋ 在线版 | 模块上线评审时 | 随版本更新，变更记录逐版留存 |
| 管理员手册 | 中文 PDF ＋ 在线版 | 模块上线评审时 | 随版本更新 |
| 运维手册 | 中文 PDF | 系统上线前 | 随部署架构变更更新 |
| 二次开发手册 | 中文 PDF ＋ 在线版 ＋ 示例工程 | 对外接口发布时 | 随接口版本更新 |
| 在线帮助 | 系统内置，三层结构 | 随各模块上线 | 与手册同源，一次编写两处发布 |
| 常见问题解答 | 系统内置，可检索 | 试运行开始时首批 ≥120 条 | 按季度更新 |
| 最佳实践 | 系统内置 ＋ PDF 汇编 | 首轮数据集加工完成后 | 按加工批次沉淀 |
| 开发指南 | 并入二次开发手册 | 对外接口发布时 | 随接口版本更新 |

表 3-3　文档与在线帮助交付清单（来源：招标文件 3.1.2.2.2 第（2）条 b0754、b0755）

文档与系统同源维护：手册与在线帮助使用同一份源文件，一次编写两处发布，避免界面改了而手册没改。文档纳入版本管理，每次版本发布时文档的变更部分在发布说明中列出，甲方可据此判断本次升级影响到哪些操作。

#### （3）跨平台迁移、版本升级与向后兼容

支持在不同平台间迁移，支持版本升级，新版本向后兼容，现有系统和数据在升级后能正常使用（b0756、b0757）。

可迁移性靠四项设计保证，这四项在系统设计阶段就要定下来，事后补做代价很高。配置外置，全部环境相关配置从代码中剥离，集中在配置中心与环境变量，迁移时只换配置不改代码；应用无状态，会话与临时状态不保存在应用实例的本地内存或磁盘，实例可随时重建；存储访问抽象，文件访问经统一的存储接口层，底层可在本地文件系统、分布式文件系统与对象存储之间切换；数据库方言隔离，数据访问层不直接书写特定数据库的专有语法，专有能力经适配层封装，更换数据库时只替换适配层实现。

| 迁移场景 | 迁移内容 | 实施方法 | 停机窗口 | 回滚方式 |
|---|---|---|---|---|
| 物理机到虚拟化／私有云 | 应用、配置、数据 | 容器镜像重新部署，数据库逻辑导出导入或主从切换 | ≤4 小时 | 保留原环境，切回域名解析与负载均衡指向 |
| 虚拟化到物理机 | 同上 | 同上，注意资源配额与内核参数调整 | ≤4 小时 | 同上 |
| 国产操作系统之间 | 应用运行时与依赖 | 多架构容器镜像，按目标系统选择对应镜像；重新执行适配测试用例 | ≤2 小时 | 镜像版本回退 |
| 处理器架构之间 | 二进制依赖 | 多架构构建流水线产出同版本多架构镜像，避免架构锁定 | ≤2 小时 | 镜像版本回退 |
| 数据库之间 | 表结构、数据、存储过程 | 结构转换脚本＋数据校验（行数、校验和、抽样比对）；专有语法经适配层处置 | 按数据量测算，分批迁移 | 迁移期间双写或源库只读保留 |
| 数据集制品迁移 | 数据集文件与版本元数据 | 按版本清单逐版校验哈希后搬迁，元数据随之迁移，血缘关系保持 | 不停机，后台搬迁 | 源端保留直至校验通过 |

表 3-4　迁移场景与实施方法（来源：招标文件 3.1.2.2.2 第（3）条 b0756、b0757）

版本升级按滚动升级方式实施。升级前执行预检查脚本，核对当前版本号、数据库结构版本、磁盘余量、许可有效期与依赖组件版本，预检查不通过则终止升级并给出原因。升级时应用实例分批替换，负载均衡逐批摘除与回挂，升级过程中服务不整体中断。数据库结构变更采用可前滚可回滚的变更脚本，每个变更脚本配一个回滚脚本，变更前自动快照。升级完成后执行冒烟用例集，不通过则自动回滚到升级前版本。

| 兼容性规则 | 具体约定 | 违反时的处置 |
|---|---|---|
| 接口版本并行 | 对外接口在路径或请求头中带版本号，新旧版本并行提供 | 不删除旧版本接口，仅标记弃用 |
| 旧版本保留期 | 弃用公告发布后至少保留一个大版本周期，设计目标为两个周期 | 保留期内持续修复其安全缺陷 |
| 字段变更 | 响应字段只增不删；请求字段不新增必填项；新增字段给默认值 | 需删除字段时新开接口版本，旧版本保留 |
| 枚举变更 | 枚举取值只增不改语义；消费方按未知值降级处理 | 变更语义时新增枚举值而非复用旧值 |
| 数据结构变更 | 表字段只增不删，弃用字段标记后保留；主键与唯一约束不变更语义 | 需结构性调整时提供数据迁移脚本与校验报告 |
| 数据集格式变更 | 数据集文件格式版本化，旧格式的读取能力在新版本中保留 | 历史数据集不因平台升级而不可读 |
| 配置兼容 | 新增配置项给默认值，旧配置文件可直接使用 | 配置语义变更时提供自动转换脚本 |

表 3-5　向后兼容规则（来源：招标文件 b0756、b0757；各项保留期为本节承诺值）

兼容性的验证方法是契约测试。对外接口的每个版本维护一份契约（请求与响应的结构与约束），契约测试纳入持续集成，新版本代码若破坏任一已发布契约则构建失败，无法进入发布流程。数据集格式的读取兼容性以历史格式样本集回归验证，样本集随每次格式演进追加，不删除旧样本。

### 图 3-1　滚动升级与自动回滚时序

<svg viewBox="0 0 820 300" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11c" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <text x="18" y="20" font-size="12" fill="#475569">时间轴（自左向右）　｜　灰底＝自动执行，浅黄＝人工确认点</text>
  <line x1="18" y1="44" x2="800" y2="44" stroke="#94a3b8" stroke-width="1"/>
  <rect x="18" y="56" width="112" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="74" y="76" text-anchor="middle">升级预检查</text>
  <text x="74" y="95" text-anchor="middle" font-size="12">版本·余量·许可</text>
  <path fill="none" d="M130 82 H176" stroke="#334155" stroke-width="1.4" marker-end="url(#t11c)"/>
  <text x="153" y="74" text-anchor="middle" font-size="12">通过</text>
  <rect x="176" y="56" width="112" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="232" y="76" text-anchor="middle">数据库快照</text>
  <text x="232" y="95" text-anchor="middle" font-size="12">＋变更脚本前滚</text>
  <path fill="none" d="M288 82 H334" stroke="#334155" stroke-width="1.4" marker-end="url(#t11c)"/>
  <rect x="334" y="56" width="140" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="404" y="76" text-anchor="middle">实例分批替换</text>
  <text x="404" y="95" text-anchor="middle" font-size="12">摘除→替换→回挂</text>
  <path fill="none" d="M474 82 H520" stroke="#334155" stroke-width="1.4" marker-end="url(#t11c)"/>
  <rect x="520" y="56" width="128" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="584" y="76" text-anchor="middle">冒烟用例集</text>
  <text x="584" y="95" text-anchor="middle" font-size="12">关键链路验证</text>
  <path fill="none" d="M648 82 H694" stroke="#334155" stroke-width="1.4" marker-end="url(#t11c)"/>
  <text x="671" y="74" text-anchor="middle" font-size="12">通过</text>
  <rect x="694" y="56" width="110" height="52" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="749" y="76" text-anchor="middle">升级确认</text>
  <text x="749" y="95" text-anchor="middle" font-size="12">记录发布说明</text>
  <path fill="none" d="M584 108 V146" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11c)"/>
  <text x="636" y="132" text-anchor="middle" font-size="12">不通过</text>
  <rect x="334" y="146" width="314" height="52" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="491" y="166" text-anchor="middle">自动回滚</text>
  <text x="491" y="185" text-anchor="middle" font-size="12">镜像版本回退 → 回滚脚本执行 → 快照校验</text>
  <path fill="none" d="M334 172 H232 V108" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11c)"/>
  <path fill="none" d="M74 108 V172 H176" stroke="#334155" stroke-width="1.4" stroke-dasharray="4 3" marker-end="url(#t11c)"/>
  <rect x="56.0" y="152.4" width="112.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="112" y="166" text-anchor="middle" font-size="12">预检查不通过即终止</text>
  <rect x="18" y="216" width="786" height="66" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="32" y="238" font-size="12">服务连续性：实例分批替换期间负载均衡逐批摘除与回挂，对外服务不整体中断；升级窗口与通告按运维手册执行。</text>
  <text x="32" y="258" font-size="12">数据安全性：结构变更脚本一一配套回滚脚本，变更前自动快照；数据集制品不随平台升级改写，历史格式读取能力保留。</text>
  <text x="32" y="276" font-size="12">接口不变性：契约测试纳入持续集成，破坏已发布契约的代码无法进入发布流程（对应 b0782 升级不影响接口）。</text>
</svg>

图 3-1　滚动升级与自动回滚时序。数据来源：招标文件 3.1.2.2.2 第（3）条（b0756、b0757）与 3.1.2.2.5 第（6）条（b0782）。

### 4、安全性要求（3.1.2.2.3）

安全技术的实现细节、等级保护测评与商用密码应用安全性评估的组织安排、去标识与脱敏的具体方法在安全方案一节展开。本部分承担三项实施职责，各配可判定的指标：一是给出低级安全漏洞的判定口径与放行门禁，表 4-1 所列十六类与通用漏洞评分 7.0 分及以上的高危漏洞在上线前整改关闭并复测无复现，高危修复时限 7 个自然日、中危 30 个自然日，质保期内按季度复扫；二是给出传输与存储保护的技术基线与指标，Web 应用启用 TLS 1.3（兼容 1.2）并禁用 TLS 1.0、TLS 1.1 与 SSL 3.0，敏感数据按分级加密、密钥统一由商用密码服务平台托管、不在应用侧留存；三是列出保密技术所依据的国家标准与法规，并在上线验收时逐项出具符合性说明。

#### （1）低级安全漏洞的判定口径与放行门禁

不允许出现低级安全漏洞（b0759）。这一条在验收时需要一个可判定的口径，否则双方对「低级」的理解可能相差很远。我方把低级安全漏洞界定为：可由通用安全扫描工具或常规渗透手法在不构造复杂利用链的前提下直接发现并验证的缺陷。按这一界定，本项目把下列类型列为低级安全漏洞，上线前须整改关闭并经复测验证。

| 序号 | 漏洞类型 | 检测方式 | 放行要求 |
|---|---|---|---|
| 1 | 结构化查询语言注入 | 静态代码分析＋动态扫描＋渗透测试 | 整改关闭，复测无复现 |
| 2 | 跨站脚本 | 静态分析＋动态扫描 | 整改关闭 |
| 3 | 命令注入与代码注入 | 静态分析＋渗透测试 | 整改关闭 |
| 4 | 未授权访问与越权（水平与垂直） | 接口权限矩阵用例＋渗透测试 | 整改关闭，权限矩阵逐接口核对 |
| 5 | 硬编码口令、密钥与凭据 | 代码扫描＋密钥检测规则 | 整改关闭，改由密码服务平台托管 |
| 6 | 默认口令未改、弱口令策略 | 配置基线核查 | 整改关闭，强制口令策略生效 |
| 7 | 目录遍历与任意文件读取 | 动态扫描＋渗透测试 | 整改关闭 |
| 8 | 任意文件上传与可执行文件落地 | 渗透测试＋上传白名单核查 | 整改关闭 |
| 9 | 敏感数据明文传输 | 流量抓包核查 | 整改关闭，启用加密通道 |
| 10 | 敏感数据明文存储 | 数据库与文件抽查 | 整改关闭，按分级加密 |
| 11 | 会话管理缺陷（会话不失效、会话固定、令牌可预测） | 渗透测试 | 整改关闭 |
| 12 | 不安全反序列化 | 静态分析＋依赖检查 | 整改关闭 |
| 13 | 调试接口、管理端口、监控端点对外暴露 | 端口与路由扫描 | 整改关闭，收敛至管理网段 |
| 14 | 组件已知高危漏洞未修复 | 软件成分分析 | 升级或打补丁，无补丁时作隔离并记录 |
| 15 | 错误信息泄露技术细节（堆栈、路径、版本号） | 动态扫描＋人工核查 | 整改关闭，统一错误处理 |
| 16 | 安全响应头缺失、传输层配置弱化 | 配置基线核查 | 整改关闭，按基线配置 |

表 4-1　低级安全漏洞类型清单与放行要求（来源：招标文件 3.1.2.2.3 第（1）条 b0759；类型划分参照通用漏洞分级与 Web 应用常见风险清单）

检测安排四道，贯穿开发与交付全过程，不是上线前才做一次扫描。第一道是静态应用安全测试，纳入持续集成，每次代码提交触发，发现表 4-1 第 1、2、3、5、12 类问题即阻断合并。第二道是软件成分分析，每日对依赖清单做一次扫描，比对已知漏洞库，高危漏洞的修复时限为 7 个自然日、中危为 30 个自然日，无可用补丁时作隔离处置并记入《安全缺陷台账》。

第三道是动态应用安全测试，在测试环境对全部对外暴露的页面与接口做扫描，每个版本至少一轮。第四道是渗透测试，在上线前对三套软件做一轮，由具备资质的测评机构或我方安全团队实施，出具渗透测试报告。

放行门限与残留处置：表 4-1 所列类型与通用漏洞评分 7.0 分及以上的高危漏洞在上线前整改关闭、复测无复现，方予放行；4.0 至 6.9 分的中危漏洞逐项进入《安全缺陷台账》，给出整改计划与时限，残留数量趋向零，上线时的残留项须经甲方书面接受并附补偿性控制措施（如访问收敛、监测加强）；4.0 分以下的低危漏洞按版本迭代处置。质保期内按季度复扫一轮，新披露的高危漏洞按上述时限处置，处置记录纳入季度运行报告。

这里需要说清的是一个工程事实：安全漏洞的发现依赖于扫描规则与攻击手法的当期水平，新的漏洞类型会在系统交付之后被披露。我方的承诺因此分两段，交付时点承诺表 4-1 所列类型与高危漏洞关闭，质保期内承诺按季度复扫与上述修复时限持续处置，而不是承诺系统在任何时点都不存在任何漏洞。

#### （2）传输与存储的加密保护

支持将 SSL 协议作为 Web 应用的基础安全协议，敏感数据在传输和存储过程中得到保护（b0760、b0761）。

传输侧采用双栈并存：标准通道与国密通道。标准通道启用 TLS 1.3（兼容 TLS 1.2），禁用 TLS 1.0/1.1 与 SSL 3.0，密码套件按前向保密套件配置，启用严格传输安全响应头，证书由甲方信任的证书体系签发。国密通道按《GM/T 0024 SSL VPN 技术规范》与《GM/T 0054 信息系统密码应用基本要求》实现传输层密码协议，使用 SM2 证书与 SM4 加密、SM3 完整性校验，密钥与证书由商用密码服务平台与服务器密码机承载。

双栈并存的理由是一个需要正面讲清的工程约束：招标文件要求客户端兼容四类主流浏览器（b0777），而主流浏览器原生不支持国密传输层协议。若强制全站国密通道，普通用户将无法访问。我方的处置是在接入层做通道分流：面向普通业务用户的 Web 访问使用标准 TLS 通道，国密保护在网关之后的内部链路与数据存储层生效；面向管理员、审计员与对外数据交付的高敏通道使用国密通道，通过国密安全接入网关或国密客户端访问，并在管理端提供国密通道的接入说明。两条通道的密钥材料统一由密码服务平台托管，不在应用侧留存。

| 场景 | 传输保护 | 存储保护 | 密钥归属 |
|---|---|---|---|
| 普通用户 Web 访问 | 标准 TLS 1.3 | 会话令牌加密存储，不落盘明文 | 平台会话密钥，定期轮换 |
| 管理员与审计员访问 | 国密传输层协议，双因素认证 | 操作日志加密并计算完整性校验值 | 密码服务平台托管 |
| 系统间接口调用 | 双向认证，国密通道优先 | 接口凭据加密托管 | 密码服务平台托管 |
| 数据集文件上传下载 | 分块传输，逐块校验，通道加密 | 文件按敏感级别加密，支持一文一密策略 | 密码服务平台托管，密钥与文件分离存放 |
| 数据库连接 | 加密连接，不走明文端口 | 敏感字段加密，支持一数据一密策略 | 密码服务平台托管 |
| 备份介质 | 传输加密 | 备份文件整体加密，密钥独立保管 | 密码服务平台托管，异地保管一份密钥材料 |
| 设备侧数据回传 | 加密通道，断链后续传 | 边缘侧缓冲数据加密 | 设备证书，由密码服务平台签发 |

表 4-2　传输与存储保护的场景对照（来源：招标文件 3.1.2.2.3 第（2）条 b0760、b0761；一文一密与一数据一密能力对应 3.1.2.1 第（12）条）

敏感数据的识别依据本项目的数据分级分类结果。涉及个人信息、敏感地理信息、重要行业数据与企业秘密数据的字段与文件，在元数据中带敏感级别标记，加密策略、脱敏策略与可访问范围由标记驱动，不依赖开发人员逐处判断。分级分类的具体规则与去标识方法在安全方案一节详述。

#### （3）保密技术符合国家相关技术要求

数据和文档的安全保密技术符合国家相关技术要求（b0762）。我方按下列标准与法规实施，并在验收时逐项提供符合性说明。

| 类别 | 依据 | 本项目的落实点 |
|---|---|---|
| 网络安全等级保护 | 《GB/T 22239 信息安全技术 网络安全等级保护基本要求》 | 按等级保护二级以上要求设计安全区域、访问控制、安全审计与入侵防范；测评安排见安全方案 |
| 等级保护设计 | 《GB/T 25070 网络安全等级保护安全设计技术要求》 | 安全域划分、边界防护与管理中心设计 |
| 密码应用 | 《GB/T 39786 信息系统密码应用基本要求》《GM/T 0054》 | 物理与环境、网络与通信、设备与计算、应用与数据四个层面的密码应用设计 |
| 传输层密码 | 《GM/T 0024 SSL VPN 技术规范》 | 国密通道的协议实现与证书体系 |
| 密码设备接口 | 《GM/T 0018 密码设备应用接口规范》《GM/T 0030 服务器密码机技术规范》 | 服务器密码机的接入与调用（对应 b2150 技术参数） |
| 数据安全 | 《数据安全法》《个人信息保护法》《GB/T 35273 个人信息安全规范》 | 数据来源合法性核查、个人信息最小必要与去标识化处理 |
| 数据安全能力 | 《GB/T 37988 数据安全能力成熟度模型》 | 数据生存周期各环节的安全控制设计 |
| 数据分类分级 | 《GB/T 43697 数据安全技术 数据分类分级规则》 | 数据集与字段的分级分类规则与标记 |
| 数据管理能力 | 《GB/T 36073 数据管理能力成熟度评估模型》 | 数据治理体系按其三级要求建设，详见数据治理章节 |
| 文档保密 | 甲方保密制度与本项目保密协议 | 文档水印、外发审批、离职交接与介质管控 |

表 4-3　保密技术依据的标准与法规（来源：招标文件 3.1.2.2.3 第（3）条 b0762）

文档侧的保密措施落在三处：平台内的数据集说明文档、质检报告与评测报告按敏感级别控制可见范围，下载时加动态水印并记录下载人、时间与用途；对外交付的文档经审批流程，审批记录与文档版本一并留存；项目组内部的资料按本项目保密协议管理，离场人员的账号与权限在离场当日关闭，所持资料当面交接。

### 5、可靠性要求（3.1.2.2.4）

五条依次指向故障处理能力、容错与快速恢复、交付前的可靠性测试与报告、负载均衡与硬件冗余、模块故障不扩散。可靠性对本项目的意义与一般管理系统不同：数据集加工生产的多数作业是长时间批处理，一张图纸的解析、一批工艺卡的标注、一轮质检的执行动辄数小时，作业中断的代价不是刷新页面重试，而是机时与进度的损失。因此本部分的设计重点放在两处，一是让已经跑了几小时的作业在故障后能从断点继续而不是从头重跑，二是让一个模块的故障不把正在运行的加工作业一起拖下去。

#### （1）故障处理能力：先看得见，再定得位

具有故障处理能力，遇到异常情况时迅速定位问题、采取补救措施、恢复系统正常运行（b0764、b0765）。迅速定位的前提是系统本身可观测，否则定位靠的是逐台登录翻日志。我方按三类观测数据建设可观测性，三类数据共用同一时间基准与同一关联标识。

指标数据覆盖四层：基础设施层的处理器、内存、磁盘、网络与文件句柄；中间件层的连接池占用、队列堆积、缓存命中率；应用层的接口调用量、错误率、响应时间分位值、线程池状态；业务层的加工作业数、作业成功率、单位时间处理量、质检通过率。采集周期 15 秒，保留 180 天，关键指标保留 2 年用于容量复盘。

日志数据按结构化方式输出，每条日志带时间戳、服务名、实例标识、链路标识、用户标识与业务对象标识。链路标识在一次请求或一个加工作业的全过程中贯通，跨服务调用时随请求头传递，使一次失败可以从入口一路查到失败点。日志集中采集，错误日志保留 180 天。

链路追踪覆盖对外接口与加工作业。接口调用记录每一跳的耗时与状态，加工作业记录每个环节（解析、清洗、标注、质检、入库）的开始时间、结束时间、处理条数与异常条数。作业级追踪对本项目尤为必要，因为一次加工作业可能跨十几个算子，失败时需要知道是哪个算子的哪一批数据出了问题。

时间基准统一是上述三类数据可关联的前提。全部节点与设备侧采集网关对接同一内网时间源，时钟偏差控制在 100 毫秒以内，偏差超限产生告警。本项目的设备侧数据（热成像测温曲线、焊接参数流、图像帧）需要与工件、炉次、焊道做时间对齐，时钟偏差直接影响对齐质量，这一要求不只是运维需要。

| 故障等级 | 判定标准 | 发现方式 | 响应时限 | 定位时限 | 恢复目标 |
|---|---|---|---|---|---|
| 一级 | 平台整体不可用；核心数据面临丢失风险 | 监测自动告警＋电话通知 | 15 分钟内响应 | 15 分钟内定位到故障域 | RTO ≤30 分钟 |
| 二级 | 单个功能模块不可用；加工作业批量失败 | 监测自动告警 | 30 分钟内响应 | 30 分钟内定位 | 2 小时内恢复 |
| 三级 | 功能部分异常，有可用替代路径；单个作业失败 | 监测告警或用户报障 | 2 小时内响应 | 4 小时内定位 | 1 个工作日内恢复 |
| 四级 | 体验类问题，不影响业务完成 | 用户报障 | 1 个工作日内响应 | 按版本迭代 | 随版本修复 |

表 5-1　故障等级、响应与恢复时限（来源：招标文件 3.1.2.2.4 第（1）条 b0764、b0765；时限为本节承诺值，与售后服务方案同口径）

定位的方法固定为一棵分层排查树，值守人员按树走而不是凭经验猜，排查过程与结论记入故障单。排查树的分层顺序是：先判断影响面（全局、单模块、单用户、单作业），再按接入层、应用层、数据层、依赖层、基础设施层逐层收敛，每层有对应的观测看板与判定依据。补救措施与定位并行，不等根因查清才动手：具备降级路径的先降级保业务，具备冗余的先切换，确有数据风险的先停止写入并保护现场。根因分析在恢复后 3 个工作日内完成，输出故障报告，同类问题的检测规则与预案一并补入运行手册与演练清单。

### 图 5-1　高可用部署与故障域划分

<svg viewBox="0 0 820 440" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11d" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <rect x="12" y="12" width="796" height="56" rx="6" fill="#f8fafc" stroke="#94a3b8" stroke-dasharray="5 3"/>
  <text x="24" y="33" font-size="12" fill="#475569">故障域 A　终端与接入</text>
  <rect x="150" y="22" width="120" height="38" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="210" y="46" text-anchor="middle" font-size="12">PC／一体终端机</text>
  <rect x="286" y="22" width="120" height="38" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="346" y="46" text-anchor="middle" font-size="12">手持与移动终端</text>
  <rect x="422" y="22" width="136" height="38" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="490" y="46" text-anchor="middle" font-size="12">车间采集网关（边缘）</text>
  <rect x="574" y="22" width="222" height="38" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="685" y="46" text-anchor="middle" font-size="12">甲方 17 套业务系统（只读接口）</text>
  <rect x="12" y="80" width="796" height="52" rx="6" fill="#f8fafc" stroke="#94a3b8" stroke-dasharray="5 3"/>
  <text x="24" y="100" font-size="12" fill="#475569">故障域 B　负载均衡与安全接入</text>
  <rect x="200" y="88" width="190" height="38" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="295" y="112" text-anchor="middle" font-size="12">负载均衡（双机互备）</text>
  <rect x="406" y="88" width="190" height="38" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="501" y="112" text-anchor="middle" font-size="12">安全接入网关（双通道）</text>
  <path fill="none" d="M295 68 V88" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <rect x="256.0" y="71.4" width="40.6" height="12.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="258" y="82" font-size="12">HTTPS</text>
  <path fill="none" d="M501 68 V88" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="508" y="82" font-size="12">加密通道／断链续传</text>
  <rect x="12" y="144" width="796" height="78" rx="6" fill="#f8fafc" stroke="#94a3b8" stroke-dasharray="5 3"/>
  <text x="24" y="164" font-size="12" fill="#475569">故障域 C　应用与作业调度（无状态多实例）</text>
  <rect x="150" y="170" width="150" height="42" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="225" y="187" text-anchor="middle" font-size="12">加工生产平台</text>
  <text x="225" y="204" text-anchor="middle" font-size="12">实例 ×N</text>
  <rect x="312" y="170" width="150" height="42" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="387" y="187" text-anchor="middle" font-size="12">运营服务管理平台</text>
  <text x="387" y="204" text-anchor="middle" font-size="12">实例 ×N</text>
  <rect x="474" y="170" width="160" height="42" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="554" y="187" text-anchor="middle" font-size="12">作业调度与队列</text>
  <text x="554" y="204" text-anchor="middle" font-size="12">断点续跑·幂等重试</text>
  <rect x="646" y="170" width="150" height="42" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="721" y="187" text-anchor="middle" font-size="12">工作单元池</text>
  <text x="721" y="204" text-anchor="middle" font-size="12">解析／标注／质检</text>
  <path fill="none" d="M295 126 V170" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="302" y="150" font-size="12">业务请求</text>
  <path fill="none" d="M634 191 H646" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <rect x="12" y="234" width="796" height="52" rx="6" fill="#f8fafc" stroke="#94a3b8" stroke-dasharray="5 3"/>
  <text x="24" y="254" font-size="12" fill="#475569">故障域 D　密码服务</text>
  <rect x="200" y="242" width="196" height="38" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="298" y="266" text-anchor="middle" font-size="12">虚拟密码网关（服务分组）</text>
  <rect x="412" y="242" width="196" height="38" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="510" y="266" text-anchor="middle" font-size="12">服务器密码机（冗余电源）</text>
  <path fill="none" d="M396 261 H412" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <path fill="none" d="M387 212 V242" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="394" y="232" font-size="12">加解密／签验／密钥</text>
  <rect x="12" y="298" width="796" height="78" rx="6" fill="#f8fafc" stroke="#94a3b8" stroke-dasharray="5 3"/>
  <text x="24" y="318" font-size="12" fill="#475569">故障域 E　数据与存储</text>
  <rect x="150" y="324" width="170" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="235" y="342" text-anchor="middle" font-size="12">国产数据库 主备＋仲裁</text>
  <text x="235" y="359" text-anchor="middle" font-size="12">增量日志 RPO ≤15 分钟</text>
  <rect x="332" y="324" width="170" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="417" y="342" text-anchor="middle" font-size="12">对象存储 多副本</text>
  <text x="417" y="359" text-anchor="middle" font-size="12">数据集制品与原始件</text>
  <rect x="514" y="324" width="170" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="599" y="342" text-anchor="middle" font-size="12">时序库 分区存储</text>
  <text x="599" y="359" text-anchor="middle" font-size="12">测温与参数流</text>
  <rect x="696" y="324" width="100" height="44" rx="5" fill="#f6f1e7" stroke="#334155"/>
  <text x="746" y="342" text-anchor="middle" font-size="12">备份域</text>
  <text x="746" y="359" text-anchor="middle" font-size="12">独立介质</text>
  <path fill="none" d="M225 212 V324" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="232" y="300" font-size="12">读写分离</text>
  <path fill="none" d="M721 212 V324" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="728" y="300" font-size="12">制品落盘</text>
  <path fill="none" d="M684 346 H696" stroke="#334155" stroke-width="1.4" marker-end="url(#t11d)"/>
  <text x="12" y="398" font-size="12" fill="#475569">责任边界：故障域 A 中的甲方业务系统与厂区网络由甲方承担（网络建设由招标方负责，b2154）；边缘采集网关的现场安装与联调由我方实施。</text>
  <text x="12" y="418" font-size="12" fill="#475569">故障域 B 至 E 由我方承担设计、实施与质保期运维。任一域内的单点故障不导致跨域失效，切换与降级方式见表 5-2。</text>
  <text x="12" y="436" font-size="12" fill="#475569">本期按同一数据中心内的高可用与备份恢复设计；异地容灾待甲方基础设施条件具备后按本图故障域扩展。</text>
</svg>

图 5-1　高可用部署与故障域划分。数据来源：招标文件 3.1.2.2.4 第（2）（4）（5）条（b0766、b0767、b0770、b0771、b0772）、3.3 硬件采购清单（b2150）、3.4 网络部分（b2154）。

#### （2）容错机制与快速恢复

具有容错机制，在硬件故障、网络中断等不可预见情况下系统能够快速恢复正常运行（b0766、b0767）。容错的做法按故障类型分列如下表，每一行给出检测方式、容错手段与恢复目标。表中的恢复时间为本节承诺值，设计值按表 1-2 的口径取承诺值的三分之一左右。

| 故障类型 | 检测方式 | 容错与恢复手段 | 业务影响 | 恢复目标 |
|---|---|---|---|---|
| 应用实例宕机 | 健康检查连续 3 次失败 | 负载均衡自动摘除，编排平台重建实例，会话经令牌重建 | 该实例上的在途请求失败一次，客户端重试成功 | 摘除 ≤30 秒，实例重建 ≤3 分钟 |
| 数据库主节点故障 | 仲裁节点判定 | 主备切换，应用侧连接池自动重连，写入短暂中断 | 写操作中断，读操作经备库继续 | 切换 ≤2 分钟，RPO ≤15 分钟 |
| 存储节点故障 | 副本健康巡检 | 多副本读取，故障节点隔离后重建副本 | 无感 | 副本重建按容量测算，不影响业务 |
| 密码机故障 | 密码服务状态监测 | 虚拟密码网关按服务分组切换至可用密码服务 | 加解密短暂排队 | 切换 ≤1 分钟 |
| 网络中断（内网链路） | 链路监测与双上行 | 双上行自动切换；跨网段调用重试与熔断 | 短暂抖动 | 切换 ≤30 秒 |
| 网络中断（设备侧回传） | 边缘网关心跳 | 边缘侧本地缓冲，断链期间就地暂存，复通后按时序续传并去重 | 数据延迟到达，不丢失 | 缓冲容量满足断链 ≥24 小时 |
| 源系统接口不可用 | 接口探活与错误率 | 退避重试、断点记录、按水位线续取；长时不可用时任务挂起并告警 | 该源系统的增量采集延迟 | 复通后自动补采，不需人工重放 |
| 加工作业中断 | 作业心跳与超时 | 作业按批次与算子记录检查点，重启后从最后检查点续跑；算子幂等 | 已处理批次不重复计费机时 | 续跑 ≤5 分钟启动 |
| 消息队列积压 | 队列深度水位 | 消费端扩容、限流入口、超时消息入死信队列并告警 | 加工延迟 | 水位回落 ≤30 分钟 |
| 大模型网关调用失败 | 调用错误率与超时率 | 批量任务失败重试、并发控制、备用模型路由、调用日志留痕 | 该批次延迟 | 自动重试 3 次后转人工队列 |
| 机房断电 | 环境监测（甲方侧） | 按甲方机房供电与不间断电源条件执行；平台侧保证重启后数据一致 | 服务中断 | 供电恢复后 ≤30 分钟服务可用 |
| 误删除与逻辑错误 | 操作审计与数据校验 | 数据集版本不可变、软删除保留期、备份恢复 | 可回退到指定版本 | 按备份策略恢复，恢复点见表 5-3 |

表 5-2　故障场景、容错手段与恢复目标（来源：招标文件 3.1.2.2.4 第（2）条 b0766、b0767；恢复时间为本节承诺值）

表 5-2 给的是单点故障的处置手段，下面把其中三件需要逐项落到数值与步骤的事分开写清：恢复点与恢复时间的逐对象承诺、切换与回退的触发条件与步骤、重试过程中的一致性保障。

**恢复点、恢复时间与切换回退。** 不同数据对象的恢复代价不同，用一个 RPO 与一个 RTO 覆盖全部对象，在工程上不成立：结构化数据可由增量日志逼近分钟级恢复点，而数据集制品是大体量不可变文件，逐分钟备份既无必要也无收益。因此按对象分列如下，每一行给出恢复点承诺、恢复时间承诺、切换触发条件、切换步骤与回退方式。

| 数据与服务对象 | 恢复点（RPO） | 恢复时间（RTO） | 切换触发条件 | 切换步骤 | 回退方式 |
|---|---|---|---|---|---|
| 核心数据库（业务数据、元数据、订单、审计） | ≤15 分钟（增量日志连续归档，设计值 ≤5 分钟） | ≤30 分钟（设计值 ≤10 分钟） | 仲裁节点判定主节点失联或写入持续失败 ≥30 秒 | 仲裁判定→提升备库为主→更新连接路由→应用连接池重连→一致性校验→恢复写入 | 原主节点修复后以备库身份重新加入，数据追平后再择窗口切回；切回须经运维确认 |
| 对象存储（数据集制品、图纸、图像） | ≤24 小时（新版本发布即备份，设计值 ≤12 小时） | ≤4 小时（按版本清单逐版校验哈希后恢复） | 副本健康巡检判定副本数低于下限 | 隔离故障节点→从健康副本重建→哈希逐件校验→恢复可用标记 | 重建副本校验不通过的回退至备份副本，源端副本在校验通过前不删除 |
| 时序数据（测温曲线、参数流、监测指标） | ≤5 分钟（写入即落盘，分区日志归档） | ≤2 小时（按分区恢复） | 时序库节点不可写或分区损坏 | 切换写入至可用节点→从归档恢复受损分区→按时间戳去重→重建索引 | 恢复分区校验不通过的保留原分区并标记数据缺口，缺口在数据卡中如实登记 |
| 边缘侧采集数据 | 不丢失（断链期间本地缓冲，缓冲容量满足断链 ≥24 小时） | 复通后 ≤30 分钟开始续传 | 边缘网关心跳连续丢失 ≥3 个周期 | 本地转入缓冲模式→链路复通检测→按时间顺序续传→服务端按设备标识与时间戳去重 | 缓冲接近容量上限时按业务优先级降采样并告警，降采样区间在数据卡中标注 |
| 配置与密钥材料 | 每次变更即留版（RPO 趋近零） | ≤1 小时 | 配置错误导致服务异常，或密钥不可用 | 配置中心回滚至上一版本→服务热加载→密钥按密码服务平台规程恢复→加解密探针验证 | 回滚后仍异常的逐版向前回退，每退一版执行一次探针验证 |
| 应用服务（无状态实例） | 不涉及（状态不落本地） | ≤3 分钟（摘除 ≤30 秒，实例重建 ≤3 分钟） | 健康检查连续 3 次失败 | 负载均衡摘除→编排平台重建实例→就绪探针通过→回挂 | 新版本实例连续重建失败的按镜像版本回退至上一稳定版本 |
| 密码服务 | 不涉及（密钥由密码机与平台托管） | ≤1 分钟 | 密码服务状态监测判定服务不可用 | 虚拟密码网关将应用绑定切换至同组内可用密码服务→加解密探针验证 | 原服务恢复后重新注册入组，流量按权重逐步回切 |
| 加工作业 | 不丢失已完成批次（按批次与算子记录检查点） | ≤5 分钟启动续跑 | 作业心跳超时或工作单元失联 | 作业状态置为可重调度→调度器重新分配工作单元→从最后检查点续跑 | 续跑连续失败 3 次的转人工队列，并保留现场数据与算子输入供定位 |

表 5-3　恢复点、恢复时间与切换回退（来源：招标文件 3.1.2.2.4 第（1）（2）条 b0764—b0767；量值、触发条件与步骤为本节承诺值）

切换与回退有两条通用约定。一是切换自动、回切人工：故障发生时的切换由监测与仲裁自动完成，不等人工决策；而故障恢复后的回切须经运维确认并择窗口执行，避免原节点未真正稳定就把流量带回去造成二次中断。二是每次切换与回退都留痕：触发条件、判定依据、执行时刻、业务影响面与数据一致性校验结论记入切换记录，记录随月度运行报告提交。

**重试过程中的一致性保障。** 容错依赖重试，而重试最容易带来的问题不是失败，是重复——同一笔入库执行两次、同一张图纸解析出两份结构化结果、同一条时序点位写入两次。本项目对重试路径逐类给出一致性手段，使重试在结果上等价于只执行一次。

| 重试路径 | 重试策略 | 一致性手段 | 重复判定依据 | 验证方法 |
|---|---|---|---|---|
| 对外接口写入 | 指数退避，最多 3 次，总超时 30 秒 | 请求携带业务幂等键，服务端按幂等键查重后再处理 | 幂等键（业务单号＋操作类型） | 并发重放同一请求 100 次，核对落库记录数与状态 |
| 系统间接口采集 | 按水位线续取，失败退避重试 | 以源系统主键与更新时间戳做幂等写入，同键更新不新增 | 源系统主键＋更新时间戳 | 重复拉取同一时间窗，核对目标表行数与校验和 |
| 加工作业算子 | 批次级重试，最多 3 次，超次转人工队列 | 算子按「同输入同输出」实现，输出以批次标识覆盖写入而非追加 | 作业标识＋批次标识＋算子标识 | 同一批次重复执行 3 次，比对产物哈希是否一致 |
| 消息队列消费 | 消费失败重入队，超次进死信队列 | 消费端按消息标识去重，处理与位点提交在同一事务内完成 | 消息标识 | 人为重投消息，核对业务表无重复记录 |
| 数据集制品写入 | 分块上传，失败按块重传 | 制品不可变、版本化，同版本重复写入以哈希比对后拒绝覆盖 | 制品哈希＋版本号 | 重复提交同一版本，核对版本数与哈希 |
| 时序数据续传 | 边缘侧缓冲，复通后按时序续传 | 服务端按设备标识与时间戳做唯一约束，重复点位丢弃并计数 | 设备标识＋时间戳 | 断链后重复续传同一时段，核对点位总数与丢弃计数 |
| 大模型网关调用 | 失败重试 3 次，并发与配额受控 | 调用请求带批次与条目标识，结果按标识写入，重复结果以先到为准 | 批次标识＋条目标识 | 注入超时触发重试，核对生成条目数与标识唯一性 |

表 5-4　重试路径与一致性保障（来源：招标文件 3.1.2.2.4 第（2）条 b0766、b0767；策略与判定依据为本节承诺值）

上表七条的验证方法均纳入故障恢复测试执行，结果进入《故障恢复与可靠性测试报告》；其中接口写入、加工作业算子与时序续传三条在质保期内每半年复测一次。

表中「边缘侧本地缓冲」一行需要说明其必要性。本项目的设备侧数据采集点分布在热处理车间与焊接产线，按硬件采购清单配置在线高温热成像设备 6 台、在线热成像设备 21 台、红外图像采集设备 15 台（b2150）。车间网络环境与办公网不同，瞬断较常见，若回传链路一断数据就丢，热处理炉次的温度曲线会出现缺口，而缺口恰好落在关键升温段时，该炉次的数据对质量场景验证即失去价值。因此边缘采集网关配置本地缓冲，按断链 24 小时的数据量预留存储，复通后按时间顺序续传，服务端按设备标识与时间戳去重。

备份策略按对象分列。备份不只是拷一份文件，关键在于恢复可验证，因此每类备份都配恢复步骤、恢复目标时间与演练频次。表中恢复时间与表 5-3 的 RTO 承诺同口径。

| 备份对象 | 备份方式与频率 | 保留期 | 恢复步骤 | 恢复目标时间 | 恢复验证 |
|---|---|---|---|---|---|
| 结构化数据库 | 全量每日一次＋增量日志连续归档 | 全量 30 天，日志 7 天 | 选定恢复时点→恢复最近全量→顺序重放增量日志至该时点→一致性校验→切换应用连接 | ≤30 分钟（单库）／≤4 小时（全库重建） | 每月一次恢复演练，验证到可登录、可查询、关键报表数值与演练前一致 |
| 数据集制品与原始件 | 多副本＋异机备份，新版本发布即备份 | 版本保留策略由数据治理章节定义 | 按版本清单定位制品→从异机备份取回→逐件哈希校验→恢复元数据与血缘关联→置为可用 | ≤4 小时（按单版本计） | 每季度抽取 3 个版本做哈希校验与解压验证，校验结果记入演练记录 |
| 时序数据 | 按分区归档，每日归档上一日分区 | 按数据生存周期策略 | 定位受损分区→从归档取回→按设备标识与时间戳去重写入→重建索引→抽点比对 | ≤2 小时（按单分区计） | 每季度抽样恢复一个分区，比对恢复前后点位总数与抽样点值 |
| 配置与密钥材料 | 配置中心每次变更即留版；密钥按密码平台规程备份 | 全部历史版本 | 选定目标版本→配置中心回滚→服务热加载→密钥按规程恢复→加解密探针验证 | ≤1 小时 | 每季度验证配置回滚与密钥恢复流程，探针验证结果留痕 |
| 平台镜像与部署脚本 | 镜像仓库版本化，每次发布即留版 | 保留近 10 个版本 | 按版本号拉取镜像→按部署脚本重建环境→执行冒烟用例集→接入流量 | ≤4 小时（整体重建） | 每季度在沙箱环境做一次整体重建，冒烟用例集全部通过方记为有效 |
| 文档与报告 | 随文档库备份，每日一次 | 项目周期内长期 | 按文档清单从备份取回→版本比对→恢复至文档库 | ≤1 个工作日 | 每半年抽查，核对版本号与变更记录完整 |

表 5-5　备份、恢复步骤与恢复演练（来源：招标文件 3.1.2.2.4 第（2）条 b0766、b0767；保留期、恢复时间与验证频次为本节承诺值）

需要正面说明一处边界：招标文件的硬件采购清单未包含存储设备与通用服务器，网络建设由招标方负责（b2154）。本期的高可用与备份恢复按甲方提供的同一数据中心内的计算与存储资源设计，我方负责给出资源测算依据、分层策略与配置方案，并在资源到位后实施。跨数据中心的异地容灾不在本期采购范围内，待甲方基础设施条件具备后按图 5-1 的故障域划分扩展，扩展方式在运维手册中预留设计说明。

#### （3）交付前的可靠性测试与报告

在系统交付前进行可靠性测试，包括压力测试、稳定性测试等，提供压力测试报告、稳定性测试报告（b0768、b0769）。

可靠性测试要回答的是一个很具体的担心：这套系统在真正忙起来的那几周里撑不撑得住。本项目最忙的一段是可以预见的——首轮存量加工把 63 万张历史图纸连同配套工艺卡集中消化，按测算是二十个工作日的连续机时（表 7-3），这二十天里加工作业、质检回流与在线检索同时压在一套系统上；而 42 台感知设备的回传并不配合，班次交替那半小时的并发是平时的数倍。只在空闲时段点几个页面看看响应快不快，得出的结论对这二十天没有参考价值。更麻烦的是另一类问题：内存一点点涨、文件句柄一点点漏、连接池一点点占满，单看任何一刻的读数都正常，跑到第三天才崩——这种毛病只有连着跑才露头。

四类测试因此按「验的是哪一种撑不住」分，而不按测试工具或阶段分：压力测试验的是加压到什么程度开始垮、拐点在不在设计容量之上；长稳测试验的是连着跑会不会慢慢劣化；容量测试验的是数据堆到三倍五倍以后关键查询还走不走得动——这一条对本项目尤其要紧，图纸解析产物与血缘记录是只增不减的；故障恢复测试验的是坏了之后多久能回来。缺掉任何一类，都会留下一个在验收时看不出、在首轮加工期才暴露的口子：只做压力测试会漏掉缓慢泄漏，只做长稳测试会漏掉峰值拐点。通过判据与交付报告逐行对齐，是为了让每一类测试都落到一份可以交、可以查的文件上，而不是停在「已测试」三个字。

四类测试合起来要证明的是：这套系统在首轮加工那二十天的负载下有余量，连续运行不会自己退化，坏了能在承诺的时间内回来，而且这三件事都有报告为凭。四类测试的方案与判据如下。

| 测试类型 | 测试方法 | 通过判据 | 交付报告 |
|---|---|---|---|
| 压力测试 | 按表 7-2 的设计容量阶梯加压，从 50% 起每级增加 25% 直至 150%，每级稳定运行 30 分钟，记录响应时间、吞吐量、错误率与资源占用，找出性能拐点 | 在 100% 设计容量下响应时间满足表 1-2 承诺值、错误率 <0.1%；拐点出现在 ≥120% 设计容量 | 《压力测试报告》 |
| 稳定性（长稳）测试 | 以 70% 设计容量连续运行不少于 72 小时，期间混合执行在线交互与加工作业，采样与判定见表 5-8 | 内存与句柄无持续增长趋势、错误率 <0.1%、响应时间劣化 <20%、全程无人工干预 | 《稳定性测试报告》 |
| 容量测试 | 按 1 倍、3 倍、5 倍基准数据量分别测试关键查询与报表 | 5 倍数据量下关键查询响应时间劣化 <50%，并给出扩容建议 | 《容量测试报告》 |
| 故障恢复测试 | 按表 5-7 的故障注入清单逐项注入，观测检测时间、切换时间与业务影响 | 各项恢复时间满足表 5-2 承诺值；单模块故障的扩散范围满足表 5-9 判据 | 《故障恢复与可靠性测试报告》 |

表 5-6　可靠性测试类型、方法与判据（来源：招标文件 3.1.2.2.4 第（3）条 b0768、b0769）

故障注入按下表逐项执行。每项在预生产环境注入三次、取最差值，注入时背景负载按 70% 设计容量施加，记录注入时刻、检测时刻、恢复动作、恢复完成时刻与业务影响面，形成注入记录表并入报告。

| 序号 | 注入项 | 注入方式 | 预期检测方式与时限 | 预期恢复动作 | 判定阈值 | 业务影响判据 |
|---|---|---|---|---|---|---|
| 1 | 单个应用实例宕机 | 强制终止该实例进程 | 健康检查连续 3 次失败，≤30 秒检出 | 负载均衡摘除，编排平台重建实例 | 摘除 ≤30 秒，重建 ≤3 分钟 | 在途请求失败一次，客户端重试成功，整体错误率 <0.1% |
| 2 | 半数应用实例同时宕机 | 同时终止半数实例 | 同上 | 剩余实例承接流量，并行重建 | 重建 ≤3 分钟 | 响应时间劣化 ≤30%，无请求持续失败 |
| 3 | 数据库主节点故障 | 断开主节点网络或强制断电 | 仲裁节点判定，≤30 秒检出 | 主备切换，连接池重连 | 切换 ≤2 分钟，RPO ≤15 分钟 | 写操作中断不超过切换时长，读操作经备库继续 |
| 4 | 数据库连接池打满 | 构造长事务占满连接池 | 连接等待数越限告警，≤1 分钟检出 | 慢查询熔断，连接回收，限流入口 | 水位回落 ≤10 分钟 | 其他模块不受影响（判据见表 5-9） |
| 5 | 存储节点下线 | 下线一个存储节点 | 副本健康巡检检出 | 故障节点隔离，从健康副本重建 | 副本重建期间读写不中断 | 业务无感，制品可读可下载 |
| 6 | 密码机断网 | 断开密码机网络 | 密码服务状态监测，≤30 秒检出 | 虚拟密码网关切换至同组可用服务 | 切换 ≤1 分钟 | 加解密短暂排队，登录与签验不失败 |
| 7 | 内网链路中断 | 中断一条内网上行链路 5 分钟 | 链路监测，≤10 秒检出 | 双上行自动切换，跨网段调用重试与熔断 | 切换 ≤30 秒 | 短暂抖动，错误率 <0.1% |
| 8 | 设备侧回传链路中断 | 中断边缘采集网关回传 2 小时 | 边缘网关心跳丢失 ≥3 个周期 | 边缘侧转本地缓冲，复通后按时序续传并去重 | 复通后 ≤30 分钟开始续传 | 数据延迟到达不丢失，续传后点位总数与源端一致 |
| 9 | 源系统接口超时 | 对源系统接口注入 30 秒延迟与超时 | 接口探活与错误率告警 | 退避重试、断点记录、按水位线续取 | 复通后自动补采，无需人工重放 | 该源系统增量采集延迟，其他采集任务不受影响 |
| 10 | 消息队列堆积至水位上限 | 停止消费端并持续投递至水位上限 | 队列深度水位告警 | 消费端扩容、入口限流、超时消息入死信队列 | 水位回落 ≤30 分钟 | 加工延迟，无消息丢失，死信可重投 |
| 11 | 磁盘写满至阈值 | 填充磁盘至告警阈值 | 容量监测，≤1 分钟检出 | 日志轮转与归档清理，必要时在线扩容 | 余量回升至阈值以上 ≤30 分钟 | 写入不中断，无数据损坏 |
| 12 | 国产栈组合下的上述注入 | 在表 8-2 所列的目标组合环境中重跑第 1 至 11 项 | 同各项 | 同各项 | 各项阈值与通用环境一致 | 与通用环境的差异逐项记录，差异项进折损处置 |

表 5-7　故障注入清单与判定（来源：招标文件 3.1.2.2.4 第（2）（3）条 b0766—b0769；注入方式与判定阈值为本节承诺值）

稳定性测试的采样与判定单列如下。长稳测试的价值在趋势而不在某一时刻的读数，因此判据以斜率与劣化幅度表述，并固定采样周期与计算方式，避免验收时以某个瞬时峰值争执。

| 观测项 | 采样周期 | 计算方式 | 判定阈值 | 失败整改 |
|---|---|---|---|---|
| 堆内存与常驻内存 | 15 秒 | 取每小时均值做线性回归，计算 72 小时的增长斜率 | 斜率趋近零，72 小时累计增长 <5% | 按对象保留分析定位泄漏点，整改后重跑完整 72 小时 |
| 文件句柄与网络连接数 | 15 秒 | 每小时最大值的 72 小时增长量 | 增长量 <5%，无单调上升趋势 | 定位未关闭的资源，补齐释放逻辑后重跑 |
| 数据库连接池占用 | 15 秒 | 每小时 P90 的 72 小时变化 | 变化 <10%，无持续攀升 | 排查长事务与连接泄漏，调整池参数后重跑 |
| 接口响应时间 | 每 5 分钟一轮探针，每轮 ≥200 次 | 每小时 P90；劣化幅度＝（第 72 小时 P90－首小时 P90）÷首小时 P90 | 劣化 <20% | 分层定位后整改，重跑完整 72 小时 |
| 错误率 | 15 秒 | 错误率＝失败请求数÷总请求数，按小时汇总 | <0.1%，且无单小时突破 0.5% | 按错误类型分类定位，逐类整改后重跑 |
| 加工作业成功率 | 按作业批次 | 成功批次数÷提交批次数 | ≥99.5%，失败批次可续跑成功 | 定位失败算子，修正幂等或资源配额后重跑 |
| 垃圾回收停顿 | 每次回收事件 | 每小时停顿总时长占比与单次最大停顿 | 停顿占比 <2%，单次最大停顿 <1 秒 | 调整堆配置与回收策略，重跑并比对曲线 |
| 磁盘与日志增长 | 1 分钟 | 72 小时累计增量，外推至 30 天 | 外推值不超过规划余量 | 调整日志级别与归档周期，必要时上调容量规划 |

表 5-8　稳定性（长稳）测试的采样与判定（来源：招标文件 3.1.2.2.4 第（3）条 b0768、b0769；采样周期、计算方式与阈值为本节承诺值）

报告由我方测试组按统一模板出具，模板含测试环境配置、测试数据规模、测试用例、原始采样数据、结论与建议六部分，原始数据随报告移交以便复核。报告的出具与复核方式按两档执行：我方出具为基础档，四份报告（压力、稳定性、容量、故障恢复）在系统交付前提交；甲方要求第三方机构复核的，我方提供测试环境、测试数据、用例与原始数据并配合现场复测，复核结论作为报告附件一并归档，复核安排在需求确认阶段确定并写入验收方案。

#### （4）应用负载均衡与硬件故障冗余

具有应用负载均衡和硬件故障冗余机制（b0770）。

应用负载均衡分三层。接入层采用双机互备的负载均衡，对外提供单一虚拟地址，支持四层与七层转发，按最少连接数与响应时间加权分发，健康检查间隔 5 秒、连续 3 次失败即摘除后端、连续 2 次成功即回挂。应用层的服务间调用采用客户端侧负载均衡，结合服务注册与发现，实例上下线对调用方透明。加工算力层按作业队列分发，调度器按工作单元的剩余配额、作业优先级与数据本地性分配任务，单个工作单元故障时其未完成的任务重新入队，由其他工作单元接手。

密码服务的负载与前三层机制不同，依托商用密码服务平台的虚拟密码网关实现：密码服务按分组注册，应用与服务分组动态绑定，单个密码服务不可用时由同组内其他服务承接，避免密码服务单点故障导致应用瘫痪。这一能力对应安全软件功能要求中的密码服务负载与密码服务调度条款，其功能实现在安全方案一节详述。

硬件故障冗余按设备分列。服务器密码机按技术参数要求配置冗余电源、具备 4 个电口与 4 个光口（b2150），网络接入采用双上行；接入连接器配置双冗余热插拔电源与两块固态硬盘（b2150）；承载平台的通用服务器与存储按甲方资源配置，我方提出的冗余要求为双电源、双网口绑定、系统盘镜像、数据盘多副本或冗余磁盘阵列；车间侧的采集设备按点位冗余设计，同一炉台或产线的多台设备互为参照，单台故障时该点位的数据标记为缺失并告警，不中断其他点位采集。硬件型号、参数与质保条款在硬件选型一节详述。

#### （5）单一模块故障不扩散

平台具备稳定性与可靠性，单一功能模块出现问题不引发系统其他功能异常（b0771、b0772）。我方通过隔离边界与资源配额限制故障扩散，采取六项隔离手段，并给出可验证的扩散上限。

部署隔离，功能模块按独立部署单元划分，各单元独立进程、独立容器、独立发布，不共享运行时内存空间。资源配额隔离，每个部署单元配置处理器与内存上限，单元内的失控进程不抢占其他单元资源。连接池与线程池分池，数据库连接、缓存连接、外部接口调用按模块分配独立池与独立配额，一个模块把自己的池打满不影响其他模块取连接。

调用熔断，模块间调用设超时与熔断阈值，错误率或超时率越限即断开并返回降级结果，避免故障沿调用链堆积。降级开关，每个模块配置功能级开关，开关表随系统交付，运维可在不发版的前提下关闭故障模块的入口，保留其余功能。前端隔离，页面按模块独立加载，单个模块的前端资源加载失败或脚本异常不阻塞其他模块的页面渲染。

| 验证场景 | 注入方式 | 扩散上限判据 |
|---|---|---|
| 单模块进程崩溃 | 强制终止该模块全部实例 | 其他模块接口成功率 ≥99.9%，响应时间劣化 ≤10% |
| 单模块连接池打满 | 构造慢查询占满该模块连接池 | 其他模块无连接等待，响应时间劣化 ≤10% |
| 单模块处理器打满 | 在该部署单元内运行计算密集任务 | 其他模块响应时间劣化 ≤15% |
| 单模块依赖超时 | 对其下游依赖注入 5 秒延迟 | 熔断在 30 秒内生效，其他模块无超时 |
| 单模块前端脚本异常 | 注入脚本错误 | 其他模块页面正常渲染与交互 |
| 单模块数据异常 | 构造脏数据触发处理异常 | 异常数据进入隔离区并告警，加工作业其余批次继续 |

表 5-9　单一模块故障的扩散上限与验证方法（来源：招标文件 3.1.2.2.4 第（5）条 b0771、b0772；判据为本节承诺值）

六项验证场景纳入故障恢复测试，结果进入《故障恢复与可靠性测试报告》，并在质保期内每半年复测一次，复测结果进入运行报告。

### 6、运行要求（3.1.2.2.5）

#### （1）正版操作系统与数据库管理系统

系统基于正版的操作系统、数据库管理系统部署，正版许可由投标方提供，支持最新稳定成熟版本，核心系统不使用免费版数据库管理系统（b0774、b0775、b0776）。

许可由我方提供并随合同交付授权书。操作系统与数据库在招标文件国产化要求列举的范围内选型（b0790、b0792），最终型号与版本在需求确认阶段与甲方共同确定后写入《软硬件配置清单》。

「最新稳定成熟版本」需要一个判定口径，否则容易出现两种偏差：一种是追最新，选了刚发布的大版本，上层组件尚无互认证明，上线后踩兼容问题；另一种是过于保守，选了即将停止维护的版本，质保期内无法获得安全补丁。

我方的判定口径为四条同时满足：属于原厂的长期支持版本；发布满 6 个月且已有补丁更新记录；在本项目计划的质保期结束之后仍处于原厂维护期内；与本项目上层组件（中间件、运行时、密码服务）有可查的兼容性互认证明或经我方适配测试通过。四条判定的核对结论记入《版本基线说明》，随配置清单一并提交评审。

核心系统不使用免费版数据库，落实为三条约定。承载业务数据、数据集元数据、订单与审计记录的核心库，采用商业许可的国产数据库，许可由我方提供，许可规格覆盖合同约定的部署规模。承载时序数据、全文检索、分布式缓存、消息队列的组件按其技术定位配置：这些组件不作为核心业务数据的唯一存储，其中的数据均可由核心库或对象存储重建，采用商业许可或商业支持版本，并在《第三方组件授权台账》中标明其许可类型与数据可重建性。数据集制品与原始件存放于对象存储，其元数据与校验值在核心库中，制品丢失可按元数据重新生成或从备份恢复。

| 层次 | 组件定位 | 许可方式 | 数据可重建性 | 许可提供方 |
|---|---|---|---|---|
| 操作系统 | 全部服务器与终端 | 商业许可，按节点或按核授权 | — | 我方提供 |
| 核心数据库 | 业务数据、元数据、订单、审计 | 商业许可的国产数据库 | 不可重建，按表 5-5 备份 | 我方提供 |
| 时序存储 | 测温曲线、焊接参数流、监测指标 | 商业许可或商业支持版本 | 可由原始采集文件重建 | 我方提供 |
| 检索引擎 | 数据集检索、文档全文检索 | 商业许可或商业支持版本 | 可由核心库重建索引 | 我方提供 |
| 缓存与队列 | 热点缓存、作业队列 | 商业许可或商业支持版本 | 可重建，队列消息持久化 | 我方提供 |
| 对象存储 | 数据集制品、图纸、图像、短视频 | 随甲方存储资源或商业许可 | 多副本＋备份 | 按资源归属确定 |
| 商用密码服务平台 | 密码服务、密钥管理 | 商业许可，具商用密码产品认证证书 | 密钥按密码平台规程备份 | 我方提供 |

表 6-1　软件许可与数据可重建性对照（来源：招标文件 3.1.2.2.5 第（1）条 b0774、b0775、b0776）

许可台账记录每项许可的授权主体、许可范围、许可数量、生效日与到期日，到期前 90 天自动提醒。质保期内的许可续期责任按合同约定，我方在质保期内承担已交付许可的维保与补丁获取。

#### （2）浏览器与终端兼容

客户端支持主流浏览器，支持多种终端设备使用，包括个人计算机、一体终端机、手持终端及各类移动终端（b0777、b0778）。

浏览器兼容按内核基线而非品牌逐个适配。招标文件列举的四类主流浏览器分属两种内核，我方以这两条内核基线组织开发与测试，可覆盖同内核的其他浏览器，也避免因某一品牌版本号变动而反复返工。前端不使用依赖特定内核私有特性的实现，不使用已废弃的插件技术。

| 客户端类型 | 兼容基线 | 版本下限 | 测试范围 | 备注 |
|---|---|---|---|---|
| 浏览器（Chromium 内核） | 覆盖 b0777 所列的三款 | 近 3 年内的稳定版本 | 全部功能模块逐屏走查 | 国产操作系统自带的同内核浏览器一并测试 |
| 浏览器（Gecko 内核） | 覆盖 b0777 所列的一款 | 近 3 年内的稳定版本 | 全部功能模块逐屏走查 | — |
| 个人计算机 | 国产与通用架构，1920×1080 及以上 | — | 全部功能 | 主要作业终端 |
| 一体终端机 | 触控操作，1920×1080 或 1080×1920 | — | 车间查询、交检拍照、工序确认 | 大按钮布局，触控目标 ≥44 像素 |
| 手持终端 | 国产移动操作系统，5 至 6 英寸 | — | 扫码、工序确认、现场拍照上传、离线暂存 | 手套可操作，强光下可读 |
| 移动终端 | 国产与通用移动操作系统 | 近 3 年内主流版本 | 审批、查询、消息通知 | 响应式布局 |

表 6-2　浏览器与终端兼容矩阵（来源：招标文件 3.1.2.2.5 第（2）条 b0777、b0778）

手持终端的适配有三处是现场提出来的而不是通用要求，列在此处是因为它们影响前端实现方式。车间人员多戴手套作业，触控目标尺寸与手势复杂度须据此放宽，滑动类手势不作为唯一操作路径；车间局部区域光照强烈且有弧光，界面采用高对比配色并提供亮度适应；车间无线信号存在盲区，现场录入类功能（工序确认、交检拍照）支持离线暂存与联网后自动提交，提交结果以消息回执确认，避免人员重复录入。

#### （3）本地化与私有云部署

支持本地化、私有云部署环境（b0779）。三套软件按本地化私有部署设计，不依赖公网服务，不要求甲方开放外网访问。为此提供四项配套：离线安装介质，包含全部镜像、依赖包与安装脚本，介质内自带校验清单；内网镜像仓库与依赖仓库，部署在甲方内网，升级包经审批后由介质导入；许可激活采用离线方式，按设备指纹生成许可文件，不回连厂商服务器；时间源、证书颁发与域名解析均使用甲方内网服务，部署前核对清单由我方提供。

系统的外部依赖逐项列入《外部依赖清单》，标明是否必需、离线替代方式与缺失时的影响，便于甲方在网络策略审批时逐项核对。清单随部署方案一并提交。

#### （4）物理机与虚拟化等多种部署方式

支持物理机部署、虚拟化部署等多种部署方式（b0780）。

部署形态在本项目上不是一道单选题，原因在负载本身就是两种脾气。首轮存量加工要把 63 万张历史图纸连同配套工艺卡集中消化，按测算是二十个工作日的连续机时（表 7-3）；这一轮过去之后转入增量加工，机时需求落下一个量级。若一开始就按首轮峰值把算力固定在物理机上，加工期一过，这批资源大半时间闲着。另一头，核心数据库与密码服务对时延和隔离敏感，处理器一旦超分，同样的查询今天零点三秒、明天一秒二，容量测算就失去了意义，这类负载反过来不适合放在共享的虚拟资源上。

三种形态因此按「哪一类负载该落在哪种资源上」排，而不是按产品形态罗列。应用层与数据层分成两列，是因为这两层对资源的要求正相反——应用层要的是能随队列水位伸缩，数据层要的是性能可预期；合成一列会把这个对立藏起来，甲方照着选就容易把数据库也放进可超分的资源池。资源供给特点一列点明超分与否，是后续容量测算能不能成立的前提：表 7-6 的算力测算默认内存不超分、处理器仅在应用层适度超分，换一种供给方式，测算结论要跟着重做。

应用层采用容器化封装，三种形态下的应用交付物一致，差异集中在资源供给与编排方式，这是支持多形态的前提。由此可得的结论是：甲方按自己的机房与资源条件选形态，甚至三种混用，都不需要我方改造应用，只需按下表核对各层的资源供给是否满足前提。

| 部署形态 | 适用场景 | 应用层 | 数据层 | 资源供给特点 |
|---|---|---|---|---|
| 物理机部署 | 对性能与隔离要求高的核心数据库、密码服务 | 容器运行时直接运行于物理机 | 数据库独占物理机，本地高速盘 | 不超分，性能可预期 |
| 虚拟化部署 | 应用层、工作单元池、管理类组件 | 容器运行于虚拟机，编排平台统一调度 | 数据库可虚拟化，需保证磁盘性能 | 处理器可适度超分，内存不超分 |
| 私有云部署 | 整体部署，弹性伸缩加工算力 | 容器编排平台托管，按队列水位弹性伸缩工作单元 | 云上数据库服务或自建主备 | 按需申领，便于应对加工高峰 |
| 混合形态（本项目建议） | 核心数据库与密码服务物理机，其余私有云 | 同上 | 核心库物理机主备，其余云上 | 兼顾性能与弹性 |

表 6-3　部署形态与资源供给对照（来源：招标文件 3.1.2.2.5 第（3）（4）条 b0779、b0780）

本项目建议采用混合形态。理由是加工负载的波动很大：首轮存量加工（63 万张历史图纸的解析与标注）需要集中投入机时，之后转入增量加工，机时需求下降一个量级。把工作单元池放在可弹性伸缩的资源上，首轮加工期扩容、转入运行期缩容，比按峰值配置固定资源更经济；而核心数据库与密码服务对时延与隔离敏感，放在物理机上性能可预期。资源测算见表 7-3。

#### （5）页面打开与报表生成响应时间

应用页面打开响应时间不超过 1 秒，报表生成响应时间不超过 3 秒（b0781）。两项的承诺值、设计值见表 1-2，设计依据与测试负载见表 1-3，测试步骤、采样周期、计算公式与判定阈值见表 1-4，测量五要素按表 1-1 固定。页面打开的实现手段与第七部分的三项响应时间同源，见第七部分第 6 节的七组性能保障手段。报表一类另需一道口径划分，因为报表的数据量跨度很大，用一个数字覆盖全部报表在工程上不成立。

报表按结果集规模分两类，分界线在需求确认阶段逐张报表确认后写入验收方案。预置报表与常用统计属于同步类，由预计算与物化视图支撑，生成响应时间不超过 3 秒；跨年度全量明细、数据集全量清单导出、审计日志全量导出一类属于异步类，采用提交即返回加后台生成加完成通知的方式，提交动作的响应时间不超过 3 秒，生成完成后在消息中心与邮件中给出下载链接，生成进度在界面上可见。两类报表在界面上有明确标识，用户提交前即知道是即时出还是稍后取。

大结果集报表采用「提交响应不超过 3 秒 + 异步生成」：若将全量导出做成同步请求，页面长时间无响应易导致前端或网关超时、用户反复点击与后台重复生成，既不满足响应时间又加重负载。测点按表 1-1 与验收方案执行。

#### （6）升级易操作且不影响接口

系统升级易操作，不影响与其它模块的接口（b0782）。

升级操作的形态是一条命令或控制台上的一次操作：运维人员在控制台选择目标版本并发起升级，系统自动执行预检查、快照、分批替换、冒烟验证四个步骤，每一步的结果在界面上可见，任一步失败自动回滚并保留现场日志。升级手册给出操作步骤、预计时长、回滚方式与验证清单，升级操作不需要掌握底层细节。升级流程与回滚时序见图 3-1。

接口不受影响由三层保障。契约层面，对外接口与模块间接口的每个版本维护一份契约，契约测试纳入持续集成，破坏已发布契约的变更无法进入发布流程。兼容规则层面，按表 3-5 的七项规则约束变更内容。验证层面，升级前执行接口回归用例集，用例集覆盖全部对外接口与模块间关键调用，升级后的冒烟验证再跑一遍关键链路；与甲方其他系统的集成接口纳入回归范围，升级窗口与甲方侧的验证窗口在运维计划中对齐。

升级影响评估在每次升级前出具，内容包括：本次变更涉及的模块与接口、兼容性影响判定、数据库结构变更项与回滚方式、需甲方侧配合验证的接口清单、预计升级窗口与回退时限。评估单经甲方确认后执行升级。

### 7、性能要求（3.1.2.2.6）

#### （1）三项响应时间指标的口径与实现

登录响应时间小于 1 秒（b0784）、简单页面操作平均响应时间小于 1 秒（b0785）、复杂页面操作平均响应时间小于 2 秒（b0786）。

承诺值与设计值见表 1-2，测量五要素见表 1-1。这里需要先解决一个定义问题：什么叫简单页面操作、什么叫复杂页面操作。若不预先划分，验收时容易出现把一个跨六张大表的多维统计算作「简单页面操作」的争议。我方给出的划分规则如下，并在需求确认阶段逐个功能点归类后写入验收方案。

| 操作类别 | 判定规则 | 本项目的典型功能 | 承诺值 |
|---|---|---|---|
| 登录 | 身份认证链路，含双因素与密码服务调用 | 用户登录、单点登录跳转 | <1 秒 |
| 简单页面操作 | 单一数据域、单表或一次主从查询、结果集 ≤200 行、不含聚合计算 | 数据集目录浏览、元数据查看、订单列表、审批待办、工序字典查询 | <1 秒 |
| 复杂页面操作 | 跨 2 个及以上数据域、含聚合或排序计算、结果集 >200 行、或需调用外部服务 | 数据集多条件检索、质检结果汇总、加工作业看板、血缘关系展开、权限矩阵查询 | <2 秒 |
| 异步类操作 | 结果集规模不可预先界定，或单次处理时长不可控 | 全量导出、数据集打包下载、加工作业提交、批量标注任务 | 提交响应 ≤3 秒，执行进度可见 |

表 7-1　页面操作分类与响应时间承诺（来源：招标文件 3.1.2.2.6 第（1）（2）（3）条 b0784、b0785、b0786 与 3.1.2.2.5 第（5）条 b0781）

登录链路的耗时构成需单独说明，因为本项目的登录不是单纯的口令校验。按安全性要求，管理员与审计员采用口令与证书结合的双因素认证，认证过程涉及证书校验与密码服务调用。为把登录控制在 1 秒内，我方在实现上做三件事：证书校验结果在会话有效期内缓存，不每次请求都回密码服务；密码服务调用经虚拟密码网关做连接复用，避免每次建链；登录后的首屏数据与登录认证解耦，认证完成即跳转，首屏数据异步加载并带骨架屏，使用户感知的等待时间就是认证时间。

### 图 7-1　响应时间的构成与测量点

<svg viewBox="0 0 820 282" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11e" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <text x="14" y="20" font-size="12" fill="#475569">一次页面操作的耗时构成（自左向右为时间顺序）</text>
  <rect x="14" y="34" width="118" height="46" fill="#f1f5f9" stroke="#94a3b8"/>
  <text x="73" y="54" text-anchor="middle" font-size="12">客户端渲染</text>
  <text x="73" y="71" text-anchor="middle" font-size="12">与脚本执行</text>
  <rect x="132" y="34" width="100" height="46" fill="#f1f5f9" stroke="#94a3b8"/>
  <text x="182" y="54" text-anchor="middle" font-size="12">客户端网络</text>
  <text x="182" y="71" text-anchor="middle" font-size="12">往返时延</text>
  <rect x="232" y="34" width="104" height="46" fill="#eef2f7" stroke="#334155"/>
  <text x="284" y="54" text-anchor="middle" font-size="12">接入层</text>
  <text x="284" y="71" text-anchor="middle" font-size="12">转发与鉴权</text>
  <rect x="336" y="34" width="150" height="46" fill="#eef2f7" stroke="#334155"/>
  <text x="411" y="54" text-anchor="middle" font-size="12">应用处理</text>
  <text x="411" y="71" text-anchor="middle" font-size="12">业务逻辑与序列化</text>
  <rect x="486" y="34" width="150" height="46" fill="#eef2f7" stroke="#334155"/>
  <text x="561" y="54" text-anchor="middle" font-size="12">数据层</text>
  <text x="561" y="71" text-anchor="middle" font-size="12">查询·缓存·索引</text>
  <rect x="636" y="34" width="168" height="46" fill="#f1f5f9" stroke="#94a3b8"/>
  <text x="720" y="54" text-anchor="middle" font-size="12">外部依赖</text>
  <text x="720" y="71" text-anchor="middle" font-size="12">甲方系统接口等待</text>
  <line x1="232" y1="92" x2="232" y2="116" stroke="#334155" stroke-width="1.2"/>
  <line x1="636" y1="92" x2="636" y2="116" stroke="#334155" stroke-width="1.2"/>
  <path fill="none" d="M232 110 H636" stroke="#334155" stroke-width="1.6" marker-end="url(#t11e)"/>
  <path fill="none" d="M636 110 H232" stroke="#334155" stroke-width="1.6" marker-end="url(#t11e)"/>
  <text x="434" y="104" text-anchor="middle" font-size="12">承诺范围：测点 T1 至 T2（服务端）</text>
  <text x="300" y="130" font-size="12">T1　接入层收到请求</text>
  <text x="520" y="130" font-size="12">T2　响应体最后一字节发出</text>
  <rect x="14" y="146" width="396" height="124" rx="6" fill="#e8eef5" stroke="#334155"/>
  <text x="28" y="167" font-size="12">计入承诺范围（深色框）</text>
  <text x="28" y="188" font-size="12">· 接入层转发、鉴权与通道加解密</text>
  <text x="28" y="208" font-size="12">· 应用处理、序列化、缓存读写</text>
  <text x="28" y="228" font-size="12">· 数据库查询与索引扫描</text>
  <text x="28" y="248" font-size="12">· 统计口径取 P90，样本量 ≥200 次</text>
  <text x="28" y="266" font-size="12">· 负载条件取设计并发的 70%</text>
  <rect x="420" y="146" width="384" height="124" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="434" y="167" font-size="12">不计入承诺范围（浅色框）</text>
  <text x="434" y="188" font-size="12">· 客户端网络往返与终端渲染能力</text>
  <text x="434" y="208" font-size="12">· 甲方侧网络与机房条件（b2154）</text>
  <text x="434" y="228" font-size="12">· 甲方业务系统接口的等待时间</text>
  <text x="434" y="248" font-size="12">· 浏览器插件渲染、首次冷启动</text>
  <text x="434" y="266" font-size="12">以上各项在测试报告中单独记录供分析</text>
</svg>

图 7-1　响应时间的构成与测量点。数据来源：招标文件 3.1.2.2.5 第（5）条（b0781）、3.1.2.2.6 各条（b0784—b0786）与本节表 1-1 口径。

#### （2）并发与容量规划

招标文件的性能要求给出了三项响应时间，未规定并发量与数据容量。响应时间离开并发与数据量无法独立成立，因此本部分先把业务量推导成并发量，再把并发量与样本量推导成存储与算力，形成一条可代入复核的测算链。

业务量的推导起点是人与班次，不是经验数字。甲方按两班制组织生产，设计与工艺、生产计划、质量检验、库存与物流、设备运维五类岗位是平台的主要使用方；通用问答类场景面向全员开放，因此注册用户按在册人员规模取值。推导分四步：在册人员 → 注册用户 → 在线用户峰值 → 事务并发。第一步按在册人员全量开通计，基准取 2000 人（该值在需求确认阶段按甲方核定的实际使用人数调整，调整后按同一算式重算后三步，重算结果写入验收方案）；第二步按班次交替时段同时在线比例 25% 计，得在线用户峰值 500 人；第三步按人均每分钟 12 次页面级操作、每次操作折合 1 个事务计，得峰值事务并发 500×12÷60＝100 TPS；第四步取常态在线比例为峰值的 70%，得持续负载 350 人、70 TPS。

持续负载与峰值负载分开承诺，两者用途不同：持续负载是容量规划与资源配置的基准，也是长稳测试的加压点；峰值负载是响应时间承诺成立的边界条件，也是压力测试的判定点。表中设计值为内部设计目标，按峰值的 1.5 倍取。

| 容量项 | 持续负载（常态） | 峰值负载（承诺值） | 设计值 | 推导算式 |
|---|---|---|---|---|
| 注册用户 | — | 2000（按甲方核定人数调整） | 3000 | 在册人员全量开通；通用问答类场景面向全员 |
| 在线用户 | 350 | 500 | 750 | 峰值＝2000×25%；持续＝500×70% |
| 并发会话 | 350 | 500 | 750 | 与在线用户同量级，一人一会话 |
| 事务并发 | 70 TPS | 100 TPS | 150 TPS | 峰值＝500×12÷60；持续＝100×70% |
| 数据集下载并发 | 8 路 | 20 路 | 30 路 | 峰值按运营平台日交付订单 40 单、集中在 2 小时窗口内折算；单路速率受网络条件约束 |
| 加工工作单元 | ≥8 个并行单元（存量加工期） | ≥8 个并行单元 | ≥12 个 | 由表 7-3 的存量消化工期反解：首轮图纸解析须在 20 个工作日内完成 |
| 单元内算子并发 | ≥4 | ≥4 | ≥6 | 按单元资源配额÷单算子资源占用，见表 7-6 |
| 大模型网关并发 | ≥20 并发请求 | ≥50 并发请求 | ≥80 | 峰值＝指令数据生成 5000 条/小时/单元×8 单元÷3600×平均单次 4.5 秒 ≈ 50 |
| 时序数据写入 | ≥2 万点/秒 | ≥5 万点/秒 | ≥8 万点/秒 | 见本节下文测点推导式与表 7-4 |
| 单表数据量 | 关键表 ≥2 亿行 | 关键表 ≥5 亿行仍满足表 7-1 承诺 | ≥10 亿行 | 时序明细与加工明细按 18 个月累积量折算 |

表 7-2　并发与容量规划：业务量推导、持续负载与峰值负载（来源：响应时间指标对应招标文件 b0784—b0786；并发量与推导算式为我方承诺值）

时序写入量的测点推导式为：写入速率＝Σ（设备类别台数 × 单台测点数 × 采样频率）＋平台自身监测指标数÷采集周期。按本项目配置代入：二十七台热成像与高温热成像设备各取点、线、区域标量测点 100 个、采样 1 赫兹，得 2700 点/秒；十五台熔池相机各取派生特征标量 20 项、采样 10 赫兹，得 3000 点/秒；热处理群控与焊接电源等工艺侧参数按接入点位 2000 个、采样 1 赫兹，得 2000 点/秒；平台自身监测指标按节点数 ×400 项÷15 秒采集周期估算。四项合计约 1 万点/秒为常态，承诺值取 5 万点/秒，留出甲方测点清单核定后扩充与采样频率上调的余量。测点总数与采样周期清单在需求确认阶段与现场勘察后核定，核定值代入上式重算，重算结果写入验收方案；承诺值在重算结果超出时按表 1-1 的条件变更流程重订。

#### （3）数据加工生产的吞吐与存量消化测算

本项目的性能压力主要不在在线交互，而在加工生产的批量处理。四大数据集的规模是预训练数据集 615 亿 Token、指令微调数据集 89 万条、强化学习偏好数据 6.6 万组、基准测试数据集 0.95 万条，历史工艺样本 63 万张图纸，备料工序 28 道。按这些规模测算的加工吞吐与机时如下，每一行给出单元吞吐、工作量与机时算式，可代入复核。

| 加工环节 | 单元吞吐 | 本项目工作量 | 机时测算（8 个并行单元、每日 20 小时有效机时） |
|---|---|---|---|
| 文档解析（制度、标准、技术文件、质量记录） | ≥2000 页/小时/单元 | 暂按 200 万页测算（＝制度与标准 20 万页＋技术文件 80 万页＋质量记录 100 万页），实际页数在需求确认阶段按甲方文档库清点核定 | 2000000 ÷（2000×8×20）≈ 7 个工作日完成首轮；核定页数每增减 100 万页，工期按同式增减约 3 个工作日 |
| 图纸解析与结构化抽取 | ≥200 张/小时/单元 | 63 万张历史图纸 | 630000 ÷（200×8×20）≈ 20 个工作日完成首轮 |
| 工艺卡配对与工序序列抽取 | ≥300 张/小时/单元 | 63 万张图纸对应的工艺卡，28 道工序的序列标注 | ≈ 13 个工作日 |
| 预训练语料清洗与去重 | ≥5 GB/小时/单元 | 约 280 GB 文本（615 亿 Token 按中文编码折算） | 单轮约 7 小时机时，按清洗、去重、质量过滤三轮迭代约 1 个工作日 |
| 指令数据生成与自动质检 | ≥5000 条/小时/单元 | 89 万条 | ≈ 3 个工作日机时 |
| 偏好数据构建与一致性校验 | ≥2000 组/小时/单元 | 6.6 万组 | ≈ 1 个工作日机时 |
| 基准数据集构建与评测 | ≥1000 条/小时/单元 | 0.95 万条 | ≈ 1 个工作日机时 |
| 人工复核（抽样） | 200 条/人日（按标注规范的复核粒度） | 指令数据按 5% 抽样约 4.5 万条 | ≈ 222 人日，由标注与复核团队按排班消化 |

表 7-3　加工吞吐与存量消化测算（来源：数据集规模与历史样本量依招标文件 2.2 业务范围 b0683 与需求说明书；单元吞吐与机时为我方测算值）

表中机时数与人日数的对比说明了一件事：机器处理的瓶颈不在算力而在人工复核。因此加工排产的组织方式是按业务域分批流水，机器处理与人工复核错峰并行，而不是等全部机器处理完成再开始复核。工作单元数在首轮存量加工期按表 7-2 的设计值配置，转入增量加工后缩容，对应表 6-3 建议的混合部署形态。

#### （4）设备侧数据回传的带宽与存储测算

本项目的感知与检测设备按硬件采购清单配置红外图像采集设备 15 台、在线高温热成像设备 6 台、在线热成像设备 21 台（b2150）。这些设备的原始数据率远高于一般业务系统，若按全量回传设计，车间网络与存储都承担不起，因此采用边缘侧按业务事件抽帧的方式，把回传量压到百分之几。测算如下。

| 设备 | 台数 | 原始数据率 | 全量回传量 | 边缘抽帧策略 | 回传量 |
|---|---|---|---|---|---|
| 红外图像采集设备（熔池相机） | 15 | 1280×960、30 fps，压缩后约 180 KB/帧，约 43 Mbps/台 | 约 2.3 TB/日（按每台每日 8 小时） | 按焊道事件触发：每焊道留 20 帧关键帧＋2 秒短视频 | 约 2.9 GB/日/台，合计约 43 GB/日 |
| 在线高温热成像设备 | 6 | 384×288 全辐射，约 221 KB/帧 | 按连续留帧计约 0.19 TB/日 | 常态回传测温点、线、区域标量时序；全辐射帧按炉次关键节点留帧（装炉、升温段每分钟 1 帧、保温段每 2 分钟 1 帧、出炉） | 约 80 MB/日/台 |
| 在线热成像设备 | 21 | 同上 | 按连续留帧计约 0.67 TB/日 | 同上，按炉次或焊前测温事件留帧 | 约 80 MB/日/台 |
| 合计 | 42 | — | 约 3.2 TB/日 | — | 约 45 GB/日，为全量回传的约 1.4% |

表 7-4　设备侧数据回传测算（来源：设备台数与参数依招标文件 3.3.1 硬件采购清单 b2150；数据率与回传量为我方测算值）

抽帧不是为了省带宽而牺牲数据价值，抽帧规则由场景验证的数据需求反推确定。焊接场景需要的是起弧、稳定段与收弧三个时刻的熔池形貌，以及异常时段的连续画面；热处理场景需要的是升温段与保温段的温度曲线与关键节点的温度场分布。按事件触发留帧，恰好留下这些有用的部分，而连续录制的大部分画面是重复的。抽帧规则在数据标注规范中固化，并随场景验证结论调整；原始连续数据在边缘侧按滚动窗口保留 72 小时，期间可按需回溯调取，超期覆盖。

#### （5）存储与算力容量测算

存储与算力资源不在本项目的硬件采购清单内，由甲方申领配置。申领要有依据，而依据不能是一个总数——报一个「需要若干 TB」的数字，甲方既无法判断这笔资源该分几批到位，也无法在到位量不足时判断先保哪一块。本项目的量又确实不小：63 万张历史图纸的原始件接近 1 TB，解析产物与渲染图是原始件的两倍多，42 台感知设备还在按班次不间断回传熔池画面与温度场数据，这几项的增长节奏完全不同——图纸是一次性存量，设备数据是按天累积的流量。

测算因此按数据对象分行，而不按存储设备分行。这样排的好处是每一行的量都能从一个可核对的现场事实推出来：张数乘以单件大小、台数乘以帧率乘以留存时长，算式摆在行里，甲方拿自己的数代进去就能复核，不必接受一个无从验证的汇总值。所在层一列把冷热分开，是因为历史留档没有必要占高速盘，而数据集制品要随时可取；不分层的报法会把归档量按在线层的单价一起算进去，资源申领的盘子被放大，反而拖慢到位。

存储按在线层与归档层两层规划。在线层承载近期需访问的数据与全部数据集制品，归档层承载历史留档。读完这张表应当能得到两件事：总量从哪里来，以及资源分批到位时按什么次序保——在线层优先，归档层可后置到首轮加工完成之后。

| 数据对象 | 测算依据 | 有效容量 | 所在层 |
|---|---|---|---|
| 历史图纸原始件 | 63 万张 × 平均 1.5 MB | 约 0.95 TB | 在线 |
| 图纸解析产物与渲染图 | 原始件的约 2.5 倍（结构化结果、渲染图、中间产物） | 约 2.4 TB | 在线 |
| 预训练文本语料 | 615 亿 Token 按中文编码折算 | 约 0.28 TB | 在线 |
| 指令微调、偏好与基准数据集 | 89 万条＋6.6 万组＋0.95 万条，平均约 3 KB/条 | 约 0.003 TB | 在线 |
| 既有非结构化文档 | 制度、标准、技术文件、质量记录，暂按 200 万页 × 平均 1 MB/页测算 | 约 2 TB | 在线 |
| 设备侧留档（近 6 个月） | 45 GB/日 × 180 日 | 约 8 TB | 在线 |
| 设备侧留档（历史） | 45 GB/日 × 建设周期剩余天数 | 约 16 TB | 归档 |
| 时序数据 | 按本节测点推导式取常态 1 万点/秒 × 每点 8 字节 × 18 个月，压缩比按 10∶1 计 | 约 3 TB | 在线 2 TB／归档 1 TB |
| 数据集制品与版本 | 四大数据集按版本保留策略，含打包交付件 | 约 5 TB | 在线 3 TB／归档 2 TB |
| 平台自身（日志、镜像、索引） | 日志 180 天、镜像近 10 版本、检索索引 | 约 2 TB | 在线 |
| 在线层小计 | — | 约 20 TB | — |
| 归档层小计 | — | 约 19 TB | — |
| 含冗余的裸容量需求 | 在线层按 2 倍冗余系数、归档层按 1.5 倍 | 在线约 40 TB，归档约 29 TB | — |
| 备份容量需求 | 按表 5-5 的备份策略与保留期 | 约 25 TB | 独立介质 |

表 7-5　存储容量测算与冷热分层（来源：数据规模依招标文件 b0683 与本节口径；容量与冗余系数为我方测算值）

冷热分层的迁移规则由策略驱动：设备侧留档超过 6 个月自动转归档层，时序数据按分区超过 12 个月转归档，数据集制品的非当前版本按数据治理章节的版本保留策略转归档。归档层的数据仍可检索其元数据，取回时按异步方式处置并给出预计时间。表 7-5 中带暂估值的两项（既有非结构化文档、时序数据）在需求确认阶段按甲方清点与现场勘察结果核定，核定值代入同一算式重算，重算后的资源需求以书面方式提交甲方。

算力资源按两类负载分开测算，不合并成一个数：在线交互负载的资源需求由并发量决定，波动小；批量加工负载的资源需求由样本量与工期决定，首轮存量加工期与转入增量后相差一个量级。两类负载使用不同的资源池（见本部分第 6 节的资源隔离），因此测算也分开列出。

| 资源对象 | 测算依据与算式 | 首轮存量加工期 | 转入增量运行期 | 配置建议 |
|---|---|---|---|---|
| 在线应用实例 | 按峰值 100 TPS、单实例稳态承载 25 TPS 计，实例数＝100÷25×1.5（冗余系数）＝6 | 6 个实例，每实例 8 核 16 GB | 6 个实例 | 跨物理节点分布，单节点故障不影响过半实例 |
| 核心数据库 | 按峰值 100 TPS、关键表按 5 亿行计、读写比 7∶3，主库承担写与强一致读，只读副本承担统计与报表 | 主备各 32 核 128 GB，只读副本 1 个 | 同左 | 物理机部署，本地高速盘，不超分 |
| 加工工作单元 | 由表 7-3 的工期反解：图纸解析 63 万张 ÷（200 张/小时/单元 × 20 小时/日 × 20 个工作日）＝8 个单元 | 8 个单元，每单元 16 核 64 GB | 2 至 3 个单元 | 私有云弹性伸缩，按队列水位扩缩 |
| 加工加速算力 | 图像与图纸解析、指令数据生成、偏好一致性校验三类作业需加速算力；按 8 个单元各绑定 1 张加速卡计 | 8 张加速卡等效算力 | 2 张等效算力 | 与工作单元同池调度，按作业优先级分配 |
| 大模型调用额度 | 峰值 50 并发 × 平均单次 4.5 秒 ＝ 约 11 次/秒；按指令数据 89 万条、偏好 6.6 万组、基准 0.95 万条的生成与校验调用量折算 | 按峰值并发 50 申领额度 | 按峰值并发 20 申领 | 经统一网关做并发控制、批量调度与配额统计 |
| 时序库节点 | 按承诺写入 5 万点/秒、单节点稳态 2 万点/秒计，节点数＝5÷2 向上取整＋1（冗余）＝4 | 4 个节点，每节点 16 核 64 GB | 同左 | 按时间分区，查询带分区键 |
| 检索与缓存 | 按数据集目录条目、血缘记录与全文索引规模折算，索引容量约为源数据的 30% | 各 3 个节点，每节点 8 核 32 GB | 同左 | 可由核心库重建，故障可重建不可丢判定为「可重建」 |
| 人工复核工位 | 由表 7-3：指令数据按 5% 抽样约 4.5 万条 ÷ 200 条/人日 ＝ 222 人日 | 按 12 个工位并行，约 19 个工作日消化 | 按增量批次排班 | 与机器处理错峰并行，不等机器全量完成再开始 |

表 7-6　算力与资源测算（来源：样本量依招标文件 2.2 业务范围 b0683 与需求说明书；并发量依表 7-2；资源配置与算式为我方测算值）

表 7-6 的配置是向甲方提出的资源需求，不是本项目的采购内容。承载平台的通用服务器与存储不在本项目硬件采购清单内，资源到位配置低于上表的，按本部分第 7 节末段的约定重做容量核算并提交，由双方确认调整后的承诺值。

#### （6）性能保障手段

响应时间与吞吐指标的达成依靠下列七组手段，每组给出其针对的瓶颈。

前端侧，静态资源按模块分包与按需加载，首屏只加载当前模块；长列表采用虚拟滚动，不一次性渲染全部行；静态资源在内网缓存并带版本指纹，升级后自动失效；首屏数据与认证解耦，认证完成即跳转。

接口侧，读写分离，统计与报表类查询走只读副本；按业务对象设计接口粒度，避免前端为一个页面发起十几次请求；批量接口支持一次取回多个对象，减少往返次数。

缓存侧，热点数据（工序字典、物料主数据、数据集目录、权限信息）进分布式缓存，设置过期时间与主动失效；缓存键按数据版本构造，数据更新即换键，避免脏读；缓存击穿与雪崩按空值缓存与随机过期时间处置。

数据库侧，慢查询阈值设为 200 毫秒，超阈值查询自动记录并进入每周治理清单；索引按实际查询模式设计并定期复核；时序表按时间分区，图纸与加工明细表按业务域与批次分区，查询带分区键；大表的统计类查询用物化视图或预计算结果表支撑，预计算任务在低峰时段执行。

异步化侧，长任务统一走任务队列，提交即返回任务号，进度与结果经消息中心回传；导出类任务生成文件后给出下载链接，文件按保留期清理。

算力调度侧，加工作业按优先级与配额调度，场景验证所需的数据集优先排产；工作单元按队列水位弹性伸缩；作业带检查点，可中断可续跑，使高优先级作业可以插队而不浪费已完成的处理量。大模型调用经统一网关，网关侧做并发控制、批量调度、失败重试、超时控制与调用成本统计，避免单个作业把调用额度占满。

资源隔离侧，在线交互与批量加工使用不同的资源池与不同的数据库连接池，加工作业的资源占用不影响在线操作的响应时间。这一点对本项目尤其重要：首轮存量加工会长时间满负荷运行，若与在线交互共用资源，用户会在加工期间感到系统明显变慢。

#### （7）性能测试与性能回归

性能测试在三个时点执行：模块上线评审前、系统整体上线前、每次版本升级前。前两次按表 5-6 的压力测试与稳定性测试方案执行，第三次执行性能回归用例集。

性能回归纳入持续集成。关键接口与关键页面的响应时间基线保存在基线库中，每次构建后在标准测试环境跑一轮性能用例，与基线比对；P90 响应时间劣化超过 20% 则构建失败，需定位原因并处置后方可进入发布流程。基线在每个大版本发布后重新采集并归档，形成可比较的历史曲线。

质保期内每季度做一次性能复测与容量复盘，内容包括：按表 7-1 的分类复测响应时间、核对实际并发与数据量相对表 7-2 设计容量的占用率、按增长趋势给出扩容建议。复盘结果进入季度运行报告。实际数据量或并发超出表 7-2 设计容量时，按表 1-1 第五行的条件变更流程重订基准。

响应时间承诺的成立条件是其所对应的数据量与并发量，二者须与承诺值一并固定。

同一个页面操作，在十万条记录上和在一亿条记录上，响应时间不是一个量级。本项目的数据量在建设期内持续增长——预训练子集按 615 亿 Token 承接，数据集条目、血缘记录、质检记录随加工批次累积，三年后的数据规模与上线初期相差数十倍。若只承诺一个响应时间而不绑定数据量，这条承诺在第一年成立、第三年必然不成立。

因此本方案的性能承诺与表 7-2 的设计容量绑定：在表 7-2 所列并发与数据容量范围内，表 7-1 的响应时间承诺全程成立（登录 <1 秒、简单 <1 秒、复杂 <2 秒），不另设随数据量分档下调的承诺值。建设期内数据量增长通过容量复盘与扩容建议消化；实际并发或数据量超出表 7-2 设计容量时，按表 1-1 第五行的条件变更流程重订基准，不以默示放宽表 7-1 作为处置。

验证安排与上述口径一致：竣工验收与建设期阶段验收均按当时实际数据量实测表 7-1；交付前按表 7-2 满载规模造测试数据做压力测试并出具报告，终验收前用实际数据复测一次。**模拟与实测的差异如实记录**，差异超过约定幅度时，说明容量规划的假设需要修正，并给出修正后的资源需求。

需要说明的是，上述承诺以招标方提供的服务器资源达到容量规划所列配置为前提。本项目采购清单不含通用服务器，若实际到位配置低于规划，我方在收到实际配置清单后十个工作日内重做容量核算并提交，由双方确认调整后的承诺值——这一条在系统集成章节的前置条件表中同样列明，两处口径一致。

### 8、国产化要求（3.1.2.2.7）

#### （1）国产化适配的技术路线

支持国产化硬件设备，包括国产服务器、中央处理器、存储设备、网络设备、个人计算机、移动终端等（b0788、b0789）；支持国产化操作系统（b0790、b0791）；支持国产化数据库（b0792、b0793）。

国产化适配的工程难点不在「能不能跑起来」，而在三件事：一是避免架构锁定，二是避免对特定数据库专有语法的依赖，三是识别并补偿国产栈上的性能折损。我方的技术路线按这三点组织。

避免架构锁定靠多架构构建。持续集成流水线对同一份源码产出多架构的容器镜像，覆盖国产处理器常见的指令集架构与通用架构，镜像以同一版本号发布、按目标节点自动选择。涉及本地编译的组件（如图像处理、压缩、加解密库）在流水线中对各架构分别编译并跑适配测试，不以「在某一架构上能跑」代替全架构验证。

避免数据库专有依赖靠方言隔离层。数据访问层统一使用标准结构化查询语言子集，分页、序列、字符串函数、时间函数、层次查询一类在各数据库间写法不同的部分，经适配层按数据库类型分派实现；存储过程与触发器尽量不用，确需使用时在适配层登记并对每种目标数据库各提供一份实现；数据库结构变更脚本由统一的变更工具生成，按目标数据库方言输出。

识别性能折损靠基线对比测试。对同一组关键操作，在国产栈与通用栈上分别采集性能基线，逐项记录差异。差异在可接受范围内的直接采用；差异较大的按三条路径处置：参数调优（连接池、并行度、内存配置、执行计划）、实现调整（改写查询、增加预计算、调整索引策略）、资源补偿（按折损比例上调资源配置）。处置后仍不满足表 7-1 承诺值的，按表 1-1 的条件变更流程与甲方书面协商。折损评估结论随《国产化适配测试报告》提交。

### 图 8-1　国产化适配的分层与验证

<svg viewBox="0 0 820 364" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t11f" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
    <path d="M0 0 L8 4 L0 8 z" fill="#334155"/></marker></defs>
  <rect x="14" y="26" width="520" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="274" y="46" text-anchor="middle">应用层　三套软件（加工生产平台·运营服务管理平台·商用密码服务平台）</text>
  <text x="274" y="64" text-anchor="middle" font-size="12">同一份源码，不含架构相关与数据库相关的硬编码</text>
  <rect x="14" y="84" width="520" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="274" y="104" text-anchor="middle">适配层　数据库方言适配·存储访问抽象·密码接口封装</text>
  <text x="274" y="122" text-anchor="middle" font-size="12">更换底座时只替换本层实现，应用层不改</text>
  <rect x="14" y="142" width="520" height="46" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="274" y="162" text-anchor="middle">运行时层　容器运行时·编排平台·多架构镜像</text>
  <text x="274" y="180" text-anchor="middle" font-size="12">同版本号多架构发布，按目标节点自动选择</text>
  <rect x="14" y="200" width="168" height="46" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="98" y="220" text-anchor="middle" font-size="12">国产操作系统</text>
  <text x="98" y="238" text-anchor="middle" font-size="12">（b0790 列举范围）</text>
  <rect x="190" y="200" width="168" height="46" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="274" y="220" text-anchor="middle" font-size="12">国产数据库</text>
  <text x="274" y="238" text-anchor="middle" font-size="12">（b0792 列举范围）</text>
  <rect x="366" y="200" width="168" height="46" rx="5" fill="#e8eef5" stroke="#334155"/>
  <text x="450" y="220" text-anchor="middle" font-size="12">国产中间件</text>
  <text x="450" y="238" text-anchor="middle" font-size="12">应用服务器·消息·缓存</text>
  <rect x="14" y="258" width="520" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="274" y="278" text-anchor="middle">硬件层　国产服务器与处理器·存储·网络·终端·密码机·接入连接器</text>
  <text x="274" y="296" text-anchor="middle" font-size="12">（b0788 列举范围；密码机与连接器参数见 b2150）</text>
  <path fill="none" d="M274 72 V84" stroke="#334155" stroke-width="1.4" marker-end="url(#t11f)"/>
  <path fill="none" d="M274 130 V142" stroke="#334155" stroke-width="1.4" marker-end="url(#t11f)"/>
  <path fill="none" d="M274 188 V200" stroke="#334155" stroke-width="1.4" marker-end="url(#t11f)"/>
  <path fill="none" d="M274 246 V258" stroke="#334155" stroke-width="1.4" marker-end="url(#t11f)"/>
  <rect x="552" y="26" width="254" height="278" rx="6" fill="#f6f1e7" stroke="#334155"/>
  <text x="679" y="48" text-anchor="middle">逐层验证与证明材料</text>
  <text x="566" y="74" font-size="12">① 多架构构建流水线</text>
  <text x="566" y="92" font-size="12">　同版本多架构镜像，各架构跑适配用例</text>
  <text x="566" y="116" font-size="12">② 适配测试用例集</text>
  <text x="566" y="134" font-size="12">　功能·性能·稳定性三类，逐组合执行</text>
  <text x="566" y="158" font-size="12">③ 兼容性互认证明材料</text>
  <text x="566" y="176" font-size="12">　操作系统·处理器·数据库·中间件每类</text>
  <text x="566" y="194" font-size="12">　按招标文件要求份数提供（见安全方案）</text>
  <text x="566" y="218" font-size="12">④ 性能基线对比</text>
  <text x="566" y="236" font-size="12">　国产栈与通用栈逐项比对，折损分档处置</text>
  <text x="566" y="260" font-size="12">⑤ 国产化率核算</text>
  <text x="566" y="278" font-size="12">　按台套数与金额双口径核算，取较严者</text>
  <text x="566" y="296" font-size="12">　结论进《国产化适配测试报告》</text>
  <text x="14" y="326" font-size="12" fill="#475569">适配边界：核算与适配范围以本项目采购的软硬件、以及本项目新建系统所依托的计算与存储资源为限。</text>
  <text x="14" y="344" font-size="12" fill="#475569">甲方既有存量设备的国产化情况与接口对接，按需求确认阶段书面确认的边界执行。</text>
  <text x="14" y="362" font-size="12" fill="#475569">数据来源：招标文件 3.1.2.2.7（b0787—b0793）、2.3 项目目标国产化比率要求（b0677）、3.3.1 硬件采购清单（b2150）。</text>
</svg>

图 8-1　国产化适配的分层与验证。数据来源：招标文件 3.1.2.2.7 各条（b0787—b0793）与项目目标中的国产化比率要求（b0677）。

#### （2）国产化适配矩阵

国产化在招标文件里是一句比率和一串类别名，真正会出事的地方却在运行期：某个组件在国产处理器的指令集上编不过去，某个驱动在国产操作系统上装不上，某台感知设备的取流接口只提供厂商自带的封装而拿不到带时间戳的原始帧——任何一处卡住，牵动的都不只是那一个部件，而是整条采集到入库的链路要重排。本项目的适配对象也不止于平台自身，还连着 42 台感知设备的取流、密码机的接口与甲方已有的十余套业务系统。

十一类对象因此逐类列适配要求，而不按厂商或型号列。型号要到需求确认阶段才与甲方共同确定并填入《软硬件配置清单》，先锁型号等于把供货周期的风险提前锁进合同，适配结论若与型号冲突也再无调整余地。每一类都带验证方法与证明材料两列，是因为「支持国产」这四个字本身不构成交付——说支持而拿不出跑过的报告和可查的凭证，在验收时与没做没有区别；把验证方式写在同一行，这一类将来由谁测、测什么、交什么，当下就已定下。

由此可得的结论是：型号待定不等于责任待定——十一类对象的适配方式、验证方式与应交凭证都已逐类写明，型号确定后填入清单即可执行。

| 类别 | 招标文件要求 | 我方适配方式 | 验证方法 | 证明材料 |
|---|---|---|---|---|
| 服务器与处理器 | 支持国产服务器、处理器（b0788、b0789） | 多架构镜像，覆盖国产处理器常见指令集架构；本地编译组件逐架构编译 | 在目标架构节点执行功能、性能与稳定性适配用例 | 《国产化适配测试报告》；型号与厂商归属以《软硬件配置清单》与到货验收单为凭，随验收文件移交 |
| 存储设备 | 支持国产存储（b0788） | 存储访问抽象层，支持文件、块与对象三类接入 | 读写性能基线测试、多副本故障演练 | 《国产化适配测试报告》；型号与厂商归属以《软硬件配置清单》为凭（存储资源由甲方配置，归属按同一规则登记） |
| 网络设备 | 支持国产网络设备（b0788） | 不依赖特定厂商私有协议；双上行与链路切换按标准协议实现 | 链路切换演练、带宽与时延测试 | 网络联调记录（网络建设由甲方负责，b2154） |
| 个人计算机与终端 | 支持国产个人计算机、移动终端（b0788、b0789） | 前端按内核基线实现，不用插件技术；移动端适配国产移动操作系统 | 按表 6-2 的兼容矩阵逐项实机测试 | 终端兼容测试记录 |
| 操作系统 | 支持国产操作系统（b0790、b0791） | 在 b0790 列举范围内选型，容器镜像基于目标系统构建 | 功能、性能、稳定性三类适配用例 | 兼容性互认证明材料；正版授权书 |
| 数据库 | 支持国产数据库（b0792、b0793） | 在 b0792 列举范围内选型，经方言适配层接入；核心库用商业许可版本 | 功能用例、性能基线对比、主备切换演练、迁移脚本验证 | 兼容性互认证明材料；正版授权书 |
| 中间件 | 与国产中间件适配（对应安全软件适配条款） | 应用服务器、消息、缓存按国产化方案选型或采用可跨平台的实现 | 适配用例与压力测试 | 兼容性互认证明材料 |
| 密码设备 | 服务器密码机（b2150） | 按《GM/T 0018 密码设备应用接口规范》接入，经虚拟密码网关封装 | 国密算法调试、性能测试、分组切换演练 | 商用密码产品认证证书；国密调试记录 |
| 接入连接器 | 国产处理器与国产操作系统（b2150） | 按清单参数配置，功能适配按清单所列功能项逐项验证 | 功能适配验证与联调 | 适配验证记录 |
| 感知与检测设备 | 红外图像采集、在线热成像（b2150） | 在 b2150 所列参考品牌范围内选型，均为国内厂商产品；经软件开发工具包接入 | 采集联调、时间戳对齐验证、校准记录 | 设备合格证与校准记录；详见硬件选型章节 |

表 8-1　国产化适配矩阵（来源：招标文件 3.1.2.2.7 b0788—b0793、3.3.1 硬件采购清单 b2150）

表 8-1 是按类别逐项列的适配要求，但国产化在运行期是以组合形态出现的：一套国产操作系统配一种处理器架构、再配一种国产数据库，三者两两适配不等于三者同时可用。逐类验证通过而组合未验的，问题通常在上线后才暴露。因此在逐类适配之外，另按组合做一轮验证，组合清单如下。

| 组合编号 | 处理器架构 | 操作系统 | 数据库 | 中间件与运行时 | 验证内容 | 用途 |
|---|---|---|---|---|---|---|
| 组合一 | 国产架构甲 | b0790 列举范围内的国产系统甲 | b0792 列举范围内的国产库甲 | 国产应用服务器、消息、缓存与容器运行时 | 功能回归集、性能基线集、主备切换、72 小时长稳、故障注入第 1 至 11 项 | 生产主用组合 |
| 组合二 | 国产架构乙 | 国产系统甲 | 国产库甲 | 同上 | 同上 | 架构替换备选，验证不存在架构锁定 |
| 组合三 | 国产架构甲 | 国产系统乙 | 国产库甲 | 同上 | 功能回归集、性能基线集、主备切换 | 操作系统替换备选 |
| 组合四 | 国产架构甲 | 国产系统甲 | 国产库乙 | 同上 | 功能回归集、性能基线集、迁移脚本验证、主备切换 | 数据库替换备选，验证方言适配层有效 |
| 组合五 | 国产架构甲 | 国产系统甲 | 国产库甲 | 国产密码设备与虚拟密码网关 | 国密算法调试、加解密性能、密码服务分组切换 | 密码服务组合 |
| 组合六 | 通用架构 | 通用系统 | 国产库甲 | 同组合一 | 性能基线采集 | 仅作折损对比的参考基线，不作交付形态 |

表 8-2　国产化组合验证矩阵（来源：招标文件 3.1.2.2.7 b0788—b0793；组合划分与验证内容为我方承诺的验证口径）

组合验证的执行方式与判据：组合一为生产主用组合，须通过全部验证内容，是上线放行的前置条件；组合二至组合五各为一条替换路径，须通过其所列内容，用途是在某一层出现供货或适配问题时可按本部分第 4 节的回退路径切换；组合六不作为交付形态，只用于采集通用栈基线，与组合一逐项比对得出折损幅度。各组合的性能基线按表 1-4 的采样与计算方式采集，响应时间取 P90，组合一的结果须满足表 1-2 的承诺值；组合二至组合五允许相对组合一有折损，折损超过 20% 的按参数调优、实现调整、资源补偿三条路径处置，处置结论写入《国产化适配测试报告》。组合验证在系统整体上线前完成一轮，质保期内发生底座版本升级时就受影响的组合补测一轮。

兼容性互认证明材料按从严口径提供：操作系统、中央处理器、数据库、中间件四类基础环境每类不少于 3 份，合计不少于 12 份，与安全方案一节对该项的提交口径一致，不另立份数标准。

#### （3）国产化率的核算口径与承诺

项目总体目标要求数据库、安全软件、云平台、服务器、存储、网络、芯片等软硬件设备整体国产化比率不低于 80%（b0677），技术服务要求中亦明确国产化率不低于 80%（b2219）。国产化率是一个需要先约定分母的指标，因此我方给出核算口径如下，并在需求确认阶段与甲方书面确认。

核算范围以**本项所采购或开发的软硬件**为限，这一边界取自招标文件原文「仅针对本项所采购或开发的软硬件」（`b1208`）。甲方既有存量设备，以及以服务形态提供、不在本项采购清单内的计算与存储资源，按同一套判定规则纳入《国产化适配测试报告》的登记与验证范围，但不计入比率分母——这部分资源的国产化情况不由本项目决定，计入分母等于把不可控项写进可核算的承诺。登记而不计入，与不管不问是两件事：登记项同样要出具适配结论与兼容性证明，只是不参与比率计算。甲方既有设备的接口对接按需求确认阶段确认的边界执行。

核算采用**采购金额单一口径**，不用台套数口径，也不取两者中的较低者。理由是台套口径不稳健：分母中四十二台感知设备占到七成以上，比率几乎完全由这一类设备的判定结果决定，一个判定争议点就能把结论从达标推到不达标；金额口径的分母由硬件采购、软件许可与自研交付几块构成，单项得失不会翻转结论。

**分子与分母逐项定义如下，不留解释余地。**

分母＝本项所采购或开发的软硬件条目的含税金额合计，由四块构成：一是硬件采购，含服务器密码机 1 台、接入连接器 3 台、红外图像采集设备 15 台、在线高温热成像设备 6 台、在线热成像设备 21 台，共 46 台；二是外购软件许可，含操作系统、数据库管理系统、中间件与商用密码服务平台；三是自研交付软件，含数据集加工生产平台与运营服务管理平台 2 套；四是随上述软硬件一并交付、按许可或按节点计费的配套组件。不计入分母的是甲方既有存量设备，以及以服务形态提供、不在本项采购清单内的通用服务器、存储与网络资源。

分子＝分母各条目中判定为国产的条目的含税金额合计。判定按整机级与制品级作出，依据四条：设备或软件制品的厂商归属；计算类设备的处理器与操作系统来源；信创适配认证；国密产品认证。「芯片」一项穿透至计算芯片（处理器），不穿透至成像与红外探测等非计算器件——这一档次与硬件选型一节的选型准则、安全方案一节的密码产品判定取同一条规则。

比率＝分子÷分母。达标条件可以写成一行算式：记感知设备本体含税金额为 Hs、分母中其余构成合计为 Other，则比率不低于 80% 等价于 **Hs ≤ 0.25 × Other**。厂商报价到位当天即可代入验证，不必重做判定。

**全卷一套口径。** 上述分母边界、金额单一口径、四条判定依据与穿透档次，与硬件选型、安全方案、总论各节取同一套，不在各章分别核算：硬件选型一节给设备的国产化选型准则与证明材料，安全方案一节给安全软件与密码产品的信创适配与认证材料，两节的判定结论直接作为本表的输入；总论引用的比率结论取本表的核算值。核算表是唯一依据件，任何一章出现与本表不一致的比率或口径，以本表为准。

| 核算类别 | 本项目范围 | 国产化情况 | 台套数口径 | 金额口径 |
|---|---|---|---|---|
| 服务器密码机 | 1 台（b2150） | 国产处理器与操作系统，具商用密码产品认证证书 | 国产 | 国产 |
| 接入连接器 | 3 台（b2150） | 国产处理器 16 核、国产操作系统 | 国产 | 国产 |
| 芯片（计算芯片／处理器） | 不单列采购条目，随服务器密码机 1 台、接入连接器 3 台等计算类设备一并计入 | 计算类设备所载处理器为国产处理器，随整机交付；穿透档次限于计算芯片（处理器），不穿透至成像与红外探测等非计算器件 | 随整机计入，不单独计数 | 随整机计入，不单独计价 |
| 红外图像采集设备 | 15 台（b2150） | 在清单参考品牌范围内选型，整机为国内厂商产品；核心成像器件来源以原厂说明为凭 | 整机国产 | 整机国产 |
| 在线高温热成像设备 | 6 台（b2150） | 同上 | 整机国产 | 整机国产 |
| 在线热成像设备 | 21 台（b2150） | 同上 | 整机国产 | 整机国产 |
| 操作系统 | 全部服务器与终端，我方提供许可 | b0790 列举范围内选型，国内厂商产品 | 国产 | 国产 |
| 数据库管理系统 | 核心库及配套存储组件，我方提供许可 | b0792 列举范围内选型，国内厂商产品 | 国产 | 国产 |
| 安全软件（商用密码服务平台） | 1 套（b0692r02），我方提供许可 | 国内厂商产品，具商用密码产品认证证书 | 国产 | 国产 |
| 平台软件（加工生产平台、运营服务管理平台） | 2 套，我方自研并交付 | 源代码与构建链由我方掌握，可独立编译、部署与版本演进 | 国产 | 国产 |
| 中间件 | 应用服务器、消息、缓存、检索，我方提供许可 | 国产化方案或可跨平台实现，按厂商归属判定 | 国产 | 国产 |
| 云平台 | 本项目按私有化部署建设，不采购云平台，无对应采购条目 | 该类在本项无采购条目；甲方既有云资源按同一套判定规则登记并验证适配，适配结论入《国产化适配测试报告》 | 无采购条目，不计入分母 | 无采购条目，不计入分母（`b1208`） |
| 通用服务器、存储与网络资源 | 按甲方资源配置，不在本项采购清单内 | 按同一规则登记并验证适配 | 登记项，不计入分母（`b1208`） | 登记项，不计入分母 |
| 合计 | 46 台硬件 ＋ 本项交付的全部软件 | — | 不作为承诺口径（见上文理由） | **承诺 ≥80%**，达标条件 Hs ≤ 0.25 × Other |

表 8-3　国产化率核算表（来源：招标文件 2.3 项目目标 b0677、3.1.2.2.7 b0788—b0793、3.3.1 b2150、第 6 章技术服务要求 b2219）。招标文件点名的数据库、安全软件、云平台、服务器、存储、网络、芯片七类，在表中逐类均有对应行：数据库对应数据库管理系统行；安全软件对应商用密码服务平台行；服务器、存储与网络分别对应服务器密码机、接入连接器与通用服务器、存储与网络资源三行；芯片与云平台各单列一行，前者随计算类整机计入、后者在本项无采购条目并按不计入分母处理，两类的结论均写在本表内。表中判定按上文四条依据作出，穿透档次限于计算芯片；感知设备按整机厂商归属判定，核心成像器件来源以原厂说明为凭，与硬件选型一节「在满足全部技术参数的前提下优先国产化」的选型口径一致。若甲方要求把穿透档次下延至成像与红外探测器件，感知设备须逐台另行举证，此时台套数口径的结果会大幅下移，而金额口径仍按上文达标条件判定——这是不采用台套数口径作为承诺口径的直接原因。穿透档次在需求确认阶段与分母边界一并书面确认。

核算结论在两个时点出具：合同签订后的《软硬件配置清单》中给出预计核算值，系统上线验收时按实际到货与部署情况出具《国产化率核算说明》。核算说明的附件固定为五项，与硬件选型、安全方案两节的证明材料同源、不重复采集：设备与软件条目清单（型号、数量、厂商与厂商归属地、含税金额）；计算类设备的处理器与操作系统来源说明；信创适配认证与兼容性互认证明材料（四类基础环境每类不少于 3 份）；《商用密码产品认证证书》；自研软件的著作权登记证明与底层技术平台自主可控说明。五项附件随核算说明一并提交，供甲方按分子分母逐条复核。

#### （4）适配风险与回退

国产化适配存在三类可预见的风险，我方在方案中预置回退路径，而不是等问题出现再处置。

第一类是某一国产组件在本项目负载下的性能不达预期。回退路径为：先按参数调优与实现调整处置，仍不达标则在 b0790、b0792 列举的范围内更换同类国产组件（方言适配层与存储抽象层的设计使更换成本可控），更换后重新执行适配用例与性能基线对比。

第二类是某一第三方组件无国产架构的可用版本。回退路径为：寻找功能等价的可跨平台实现或开源实现并自行编译适配；无等价实现时将该组件的功能下沉到适配层由我方实现，或将依赖该组件的功能部署在通用架构节点上并在国产化率核算中如实计入。

第三类是适配所需的兼容性互认证明材料不足。回退路径为：由我方组织实测并出具《适配测试报告》作为补充证明，同时向原厂申请互认测试；安全软件的互认证明材料按招标文件对该项的要求份数提供，具体安排在安全方案一节说明。

三类回退的触发条件与处置时限纳入项目风险登记册，按项目管理章节的风险管理流程跟踪。

国产化适配按**四层**分别作出结论，每层的判定对象、验证方式与证据不同，适配结论不以单一布尔值表述。

**第一层是运行层**：操作系统、数据库、中间件、运行时。这一层的适配结论是二值的——能装、能跑、能通过功能回归即为适配。验证方式是在目标环境上跑完整的功能回归集与性能基线集，出具适配报告。

**第二层是依赖层**：业务代码所依赖的第三方组件。这一层的风险最高，因为组件的国产化替代往往不是一对一的——某个组件在国产环境上没有对应版本，需要换用功能相近但接口不同的替代品，业务代码要改。本方案的处置是在设计阶段即完成**依赖清单的国产化可得性核查**，逐个组件标注「有原生支持 / 有替代品 / 需自行实现 / 暂无方案」四档，前两档直接采用，第三档评估工作量并排期，第四档上报并与招标方协商技术路线。**这份清单在蓝图设计阶段提交，不留到实施期才发现。**

**第三层是性能层**：同样的功能在国产环境上跑得动，但吞吐与延迟可能与参考环境有差异。本层的吞吐与延迟以目标环境的实测数据为准，交付方式是**实测并说明**：在目标环境上实测性能基线，与容量规划的假设对比，差异超过约定幅度时调整资源配置或优化实现，调整过程与结果写入适配报告。

**第四层是生态层**：驱动、工具链、运维工具、监控探针。这一层的问题通常不影响功能，但影响运维效率。处置是列出受影响的运维动作与替代办法，纳入运维手册。

验收按四层逐层核对：某一层存在差异的，只就该层出具遗留项与处置计划，不整体判为未适配；运行层通过的，也不据此推定其余三层已适配。《国产化适配测试报告》按四层出具，每层给判定结论、实测证据与遗留项。

### 9、验证方法、交付物与验证时点汇总

非功能性要求的验证方法、交付物与验证时点汇总如下，供评审与验收逐条核对。验证时点分模块评审、上线验收、质保期复测三类，分别对应表 2-5 的评审闸门、系统整体验收与质保期内的季度或半年度复测。

| 招标文件单元 | 要求要点 | 验证方法 | 交付物 | 验证时点 |
|---|---|---|---|---|
| b0743、b0744 | 非功能性指标的整体符合性 | 按表 1-2 的招标值与承诺值、表 1-3 的测试负载、表 1-4 的步骤与判定逐项实测 | 《非功能性指标符合性说明》、性能与可靠性验收方案 | 上线验收 |
| b0745 | 页面与文档中文化 | 界面逐屏走查、字符集与分词测试 | 表 2-1 所列各项记录 | 模块评审 |
| b0746、b0747 | 第三方授权、无产权纠纷、不受起诉 | 组件台账核对、软件成分分析 | 《第三方组件授权台账》《知识产权无侵权担保函》 | 模块评审、上线验收 |
| b0748 | 原厂正版授权书、售后服务承诺书 | 按表 2-4 的证据引用逐件核验授权主体、范围、数量与到期日 | 表 2-4 所列八类证据件 | 随投标文件、合同后 15 个工作日、上线前 |
| b0749、b0750 | 上线前评审、整改不影响进度 | 评审闸门执行记录核对 | 评审结论、整改单与关闭记录 | 模块评审 |
| b0751、b0752、b0753 | 开放性与二次开发能力、四类文档、免费技术指导 | 扩展点逐项实操验证、文档评审 | 《二次开发手册》《数据结构说明》《数据模型》《数据字典》、示例工程、培训记录 | 模块评审、上线验收 |
| b0754、b0755 | 用户手册与在线帮助、问答、最佳实践、开发指南 | 文档清单核对、在线帮助逐屏抽查 | 表 3-3 所列各项 | 模块评审 |
| b0756、b0757 | 跨平台迁移、版本升级、向后兼容 | 迁移演练、升级演练、契约测试报告 | 《迁移与升级手册》、契约测试报告 | 上线验收、每次升级 |
| b0758、b0759 | 不允许低级安全漏洞 | 四道检测与渗透测试 | 安全测试报告、渗透测试报告、《安全缺陷台账》 | 模块评审、上线验收、质保期季度复扫 |
| b0760、b0761 | SSL 协议、传输与存储保护 | 流量抓包核查、加密配置基线核查、密钥托管核查 | 《加密方案说明》与配置基线核查记录 | 上线验收 |
| b0762 | 保密技术符合国家要求 | 按表 4-3 标准逐项符合性核对 | 《保密与合规符合性说明》；测评报告见安全方案 | 上线验收 |
| b0763、b0764、b0765 | 可靠性与故障处理能力 | 故障注入演练、定位时长实测 | 《故障恢复与可靠性测试报告》、故障处置预案 | 上线验收、质保期半年度 |
| b0766、b0767 | 容错机制、硬件故障与网络中断下快速恢复 | 按表 5-2 逐场景注入；按表 5-3 实测恢复点、恢复时间与切换回退；按表 5-4 验证重试一致性；按表 5-5 做备份恢复演练 | 同上、《备份与恢复演练记录》、切换记录 | 上线验收、质保期月度与季度 |
| b0768、b0769 | 可靠性测试、压力与稳定性测试报告 | 按表 5-6 方法与判据执行；故障注入按表 5-7 逐项；长稳采样与判定按表 5-8 | 《压力测试报告》《稳定性测试报告》《容量测试报告》《故障恢复与可靠性测试报告》与原始采样数据 | 交付前 |
| b0770 | 应用负载均衡与硬件故障冗余 | 实例摘除回挂演练、冗余部件拔除演练 | 高可用部署说明与演练记录 | 上线验收 |
| b0771、b0772 | 单一模块故障不扩散 | 按表 5-9 六项场景注入并实测扩散上限 | 故障隔离验证记录 | 上线验收、质保期半年度 |
| b0773、b0774、b0775、b0776 | 正版操作系统与数据库、支持最新稳定成熟版本、核心系统不用免费版数据库 | 许可文件核验、版本基线四条判定核对 | 原厂授权书、《版本基线说明》《软硬件配置清单》、表 6-1 | 上线验收 |
| b0777、b0778 | 主流浏览器与多种终端 | 按表 6-2 矩阵逐项实机测试 | 《浏览器与终端兼容测试报告》 | 模块评审 |
| b0779 | 本地化、私有云部署 | 离线部署演练 | 离线安装介质、《部署方案》《外部依赖清单》 | 上线验收 |
| b0780 | 物理机、虚拟化等多种部署方式 | 按表 6-3 形态分别部署验证 | 《部署方案》与部署验证记录 | 上线验收 |
| b0781 | 页面打开 ≤1 秒、报表生成 ≤3 秒 | 按表 1-1 五要素实测，报表按同步与异步分类实测 | 性能测试报告 | 模块评审、上线验收、质保期季度 |
| b0782 | 升级易操作、不影响接口 | 升级演练、接口回归用例集、契约测试 | 《升级手册》、升级影响评估单、回归测试报告 | 每次升级 |
| b0783、b0784、b0785、b0786 | 登录、简单与复杂页面操作响应时间 | 按表 7-1 分类、表 1-1 口径实测 | 性能测试报告、性能基线归档 | 模块评审、上线验收、质保期季度 |
| b0787、b0788、b0789 | 国产化硬件设备（服务器、处理器、存储、网络、终端） | 按表 8-1 逐类适配验证，按表 8-2 逐组合验证 | 《国产化适配测试报告》《国产化率核算说明》及其五项附件 | 上线验收 |
| b0790、b0791 | 国产化操作系统 | 适配用例、组合验证、兼容性互认证明核验（每类不少于 3 份） | 同上、兼容性互认证明材料 | 上线验收 |
| b0792、b0793 | 国产化数据库 | 适配用例、性能基线对比、主备切换演练、按表 8-2 组合四验证方言适配层 | 同上、《国产化率核算说明》 | 上线验收 |
| b0677、b2219（与本部分一并核验） | 数据库、安全软件、云平台、服务器、存储、网络、芯片七类软硬件设备整体国产化比率不低于 80% | 按表 8-3 七类逐类核算，采购金额单一口径，达标条件 Hs ≤ 0.25 × Other；云平台一类本项无采购条目，按不计入分母登记并验证适配 | 《国产化率核算说明》及其五项附件、《软硬件配置清单》 | 合同签订后出具预计值、上线验收出具实测值 |

表 9-1　非功能性要求的验证方法与交付物汇总（来源：招标文件 3.1.2.2 全部单元 b0743—b0793，并列入与本部分一并核验的国产化比率条款 b0677、b2219）

质保期内的持续保障按三个节奏执行：月度做备份恢复验证与运行指标巡检；季度做性能复测、容量复盘、安全复扫与常见问题解答更新；半年度做故障注入演练与故障隔离复测。各项结果进入运行报告提交甲方，指标偏离承诺值时按表 1-1 的回退流程处置。
