public_documents/投标文件/系统逻辑架构图.svg

349 lines
24 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg viewBox="0 0 1100 780" xmlns="http://www.w3.org/2000/svg" font-family="Microsoft YaHei,Arial,sans-serif">
<defs>
<!-- 渐变 -->
<linearGradient id="gUser" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1565C0"/>
<stop offset="100%" stop-color="#1976D2"/>
</linearGradient>
<linearGradient id="gFront" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0277BD"/>
<stop offset="100%" stop-color="#039BE5"/>
</linearGradient>
<linearGradient id="gBiz" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1B5E20"/>
<stop offset="100%" stop-color="#2E7D32"/>
</linearGradient>
<linearGradient id="gData" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#4A148C"/>
<stop offset="100%" stop-color="#6A1B9A"/>
</linearGradient>
<linearGradient id="gInfra" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#263238"/>
<stop offset="100%" stop-color="#37474F"/>
</linearGradient>
<linearGradient id="gDevice" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#BF360C"/>
<stop offset="100%" stop-color="#E64A19"/>
</linearGradient>
<!-- 行背景渐变 -->
<linearGradient id="bgUser" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#E3F2FD"/>
<stop offset="100%" stop-color="#EEF7FF"/>
</linearGradient>
<linearGradient id="bgFront" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#E1F5FE"/>
<stop offset="100%" stop-color="#EEF9FF"/>
</linearGradient>
<linearGradient id="bgBiz" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#E8F5E9"/>
<stop offset="100%" stop-color="#F1FBF2"/>
</linearGradient>
<linearGradient id="bgData" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#F3E5F5"/>
<stop offset="100%" stop-color="#FAF0FC"/>
</linearGradient>
<linearGradient id="bgInfra" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#ECEFF1"/>
<stop offset="100%" stop-color="#F5F7F8"/>
</linearGradient>
<linearGradient id="bgDevice" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#FBE9E7"/>
<stop offset="100%" stop-color="#FFF3F0"/>
</linearGradient>
<!-- 阴影 -->
<filter id="sh" x="-4%" y="-4%" width="112%" height="130%">
<feDropShadow dx="0" dy="2" stdDeviation="3" flood-color="rgba(0,0,0,0.13)"/>
</filter>
<!-- 箭头 -->
<marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto">
<path d="M0,0 L0,6 L8,3 z" fill="#90A4AE"/>
</marker>
<marker id="arrB" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto">
<path d="M0,0 L0,6 L8,3 z" fill="#2196F3"/>
</marker>
</defs>
<!-- 整体背景 -->
<rect width="1100" height="780" fill="#F4F6FA" rx="10"/>
<!-- 标题 -->
<rect x="0" y="0" width="1100" height="44" rx="10" fill="#1A3A5C"/>
<rect x="0" y="34" width="1100" height="10" fill="#1A3A5C"/>
<text x="550" y="28" fill="#fff" font-size="16" font-weight="700" text-anchor="middle" letter-spacing="2">验证试验室数据管理平台 · 系统逻辑架构图</text>
<text x="980" y="28" fill="#90CAF9" font-size="10" text-anchor="middle">2026-04-17</text>
<!-- ========== 层标签(左侧色块) ========== -->
<!-- 用户层 -->
<rect x="8" y="52" width="26" height="88" rx="5" fill="url(#gUser)" filter="url(#sh)"/>
<text x="21" y="110" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,110)">用 户 层</text>
<!-- 展示层 -->
<rect x="8" y="148" width="26" height="88" rx="5" fill="url(#gFront)" filter="url(#sh)"/>
<text x="21" y="206" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,206)">展 示 层</text>
<!-- 业务层 -->
<rect x="8" y="244" width="26" height="218" rx="5" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="21" y="368" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,368)">业 务 逻 辑 层</text>
<!-- 数据层 -->
<rect x="8" y="470" width="26" height="138" rx="5" fill="url(#gData)" filter="url(#sh)"/>
<text x="21" y="548" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,548)">数 据 层</text>
<!-- 基础设施 -->
<rect x="8" y="616" width="26" height="78" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="21" y="664" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,664)">基础设施</text>
<!-- 设备接入 -->
<rect x="8" y="702" width="26" height="66" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="21" y="744" fill="#fff" font-size="11" font-weight="700" text-anchor="middle" transform="rotate(-90,21,744)">设备接入</text>
<!-- ========== 第1层用户层 ========== -->
<rect x="42" y="52" width="1050" height="88" rx="7" fill="url(#bgUser)" stroke="#BBDEFB" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="72" fill="#1565C0" font-size="12" font-weight="700">用户角色层</text>
<!-- 用户角色卡片 -->
<rect x="58" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="128" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">系统管理员</text>
<text x="128" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">系统配置 · 用户管理 · 日志审计</text>
<rect x="218" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="288" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">主管领导</text>
<text x="288" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">审批决策 · 大屏查看 · 报告批准</text>
<rect x="378" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="448" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">验证工程师</text>
<text x="448" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">任务执行 · 数据采集 · 报告编制</text>
<rect x="538" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="608" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">质量工程师</text>
<text x="608" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">质量审核 · 报告复核 · 中断初审</text>
<rect x="698" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="768" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">计划调度员</text>
<text x="768" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">任务排程 · 资源调配 · 进度跟踪</text>
<rect x="858" y="80" width="140" height="48" rx="6" fill="url(#gUser)" filter="url(#sh)"/>
<text x="928" y="101" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">数据分析员</text>
<text x="928" y="117" fill="#90CAF9" font-size="9" text-anchor="middle">数据挖掘 · 趋势分析 · 算法调用</text>
<!-- 层间箭头 1→2 -->
<line x1="567" y1="140" x2="567" y2="148" stroke="#90A4AE" stroke-width="2" marker-end="url(#arr)" stroke-dasharray="4,2"/>
<!-- ========== 第2层展示层 ========== -->
<rect x="42" y="148" width="1050" height="88" rx="7" fill="url(#bgFront)" stroke="#B3E5FC" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="168" fill="#0277BD" font-size="12" font-weight="700">前端展示层Web Browser · 大屏终端)</text>
<rect x="58" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="132" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">数据大屏</text>
<text x="132" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">实时监控 · KPI看板 · 设备状态</text>
<rect x="220" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="294" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">任务管理界面</text>
<text x="294" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">工单 · 排程 · 执行 · 归档</text>
<rect x="382" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="456" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">资源管理界面</text>
<text x="456" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">设备 · 人员 · 产品 · 模板</text>
<rect x="544" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="618" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">审批处置界面</text>
<text x="618" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">流程审批 · 中断 · 报告审批</text>
<rect x="706" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="780" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">数据分析界面</text>
<text x="780" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">对比 · 预测 · 挖掘 · 算法</text>
<rect x="868" y="176" width="148" height="48" rx="6" fill="url(#gFront)" filter="url(#sh)"/>
<text x="942" y="197" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">系统管理界面</text>
<text x="942" y="213" fill="#B3E5FC" font-size="9" text-anchor="middle">用户 · 权限 · 接口 · 配置</text>
<!-- 层间箭头 2→3 -->
<line x1="567" y1="236" x2="567" y2="244" stroke="#90A4AE" stroke-width="2" marker-end="url(#arr)" stroke-dasharray="4,2"/>
<!-- ========== 第3层业务逻辑层 ========== -->
<rect x="42" y="244" width="1050" height="218" rx="7" fill="url(#bgBiz)" stroke="#C8E6C9" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="264" fill="#1B5E20" font-size="12" font-weight="700">业务逻辑层Application Server</text>
<!-- API网关横条 -->
<rect x="58" y="272" width="1018" height="32" rx="6" fill="#1B5E20" opacity="0.9" filter="url(#sh)"/>
<text x="567" y="293" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">
API 网关层(统一鉴权 · 路由转发 · 限流熔断 · 跨域处理 · 操作日志记录)
</text>
<!-- 业务模块 -->
<!-- 任务管理 -->
<rect x="58" y="314" width="152" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="134" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">任务管理</text>
<line x1="68" y1="342" x2="200" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="134" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 任务创建 / 排程</text>
<text x="134" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 甘特图调度</text>
<text x="134" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 任务执行跟踪</text>
<text x="134" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 工单状态管理</text>
<text x="134" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 报告生成归档</text>
<text x="134" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 任务中断处理</text>
<text x="134" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 试验标准关联</text>
<!-- 资源管理 -->
<rect x="224" y="314" width="152" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="300" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">资源管理</text>
<line x1="234" y1="342" x2="366" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="300" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 设备档案管理</text>
<text x="300" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 设备状态监控</text>
<text x="300" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 试验人员管理</text>
<text x="300" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 试验产品管理</text>
<text x="300" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 模板 / 程序管理</text>
<text x="300" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 试验标准管理</text>
<text x="300" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 报告模板管理</text>
<!-- 数据采集引擎 -->
<rect x="390" y="314" width="152" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="466" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">数据采集引擎</text>
<line x1="400" y1="342" x2="532" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="466" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 多协议适配驱动</text>
<text x="466" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 实时数据采集</text>
<text x="466" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 数据预处理清洗</text>
<text x="466" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 异常告警触发</text>
<text x="466" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 视频监控接入</text>
<text x="466" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 曲线实时推送</text>
<text x="466" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 大数据量缩放</text>
<!-- 审批流程引擎 -->
<rect x="556" y="314" width="152" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="632" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">审批流程引擎</text>
<line x1="566" y1="342" x2="698" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="632" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 流程定义配置</text>
<text x="632" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 节点流转控制</text>
<text x="632" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 中断 / 返工审批</text>
<text x="632" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 模板升版审批</text>
<text x="632" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 报告审批归档</text>
<text x="632" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 超时提醒通知</text>
<text x="632" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 消息推送服务</text>
<!-- 数据分析引擎 -->
<rect x="722" y="314" width="152" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="798" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">数据分析引擎</text>
<line x1="732" y1="342" x2="864" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="798" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 数据对比分析</text>
<text x="798" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 趋势预测计算</text>
<text x="798" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 算法库调用</text>
<text x="798" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 自定义算法执行</text>
<text x="798" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 统计报表生成</text>
<text x="798" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 多图表可视化</text>
<text x="798" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 数据导出服务</text>
<!-- 系统管理 -->
<rect x="888" y="314" width="188" height="136" rx="6" fill="url(#gBiz)" filter="url(#sh)"/>
<text x="982" y="336" fill="#fff" font-size="12" font-weight="700" text-anchor="middle">系统管理</text>
<line x1="898" y1="342" x2="1066" y2="342" stroke="rgba(255,255,255,0.2)" stroke-width="1"/>
<text x="982" y="358" fill="#A5D6A7" font-size="9" text-anchor="middle">· 用户 / 角色权限管理</text>
<text x="982" y="372" fill="#A5D6A7" font-size="9" text-anchor="middle">· 审批流程配置</text>
<text x="982" y="386" fill="#A5D6A7" font-size="9" text-anchor="middle">· 接口配置管理</text>
<text x="982" y="400" fill="#A5D6A7" font-size="9" text-anchor="middle">· 操作日志审计</text>
<text x="982" y="414" fill="#A5D6A7" font-size="9" text-anchor="middle">· 系统参数配置</text>
<text x="982" y="428" fill="#A5D6A7" font-size="9" text-anchor="middle">· 数据字典管理</text>
<text x="982" y="442" fill="#A5D6A7" font-size="9" text-anchor="middle">· 系统监控告警</text>
<!-- 层间箭头 3→4 -->
<line x1="567" y1="462" x2="567" y2="470" stroke="#90A4AE" stroke-width="2" marker-end="url(#arr)" stroke-dasharray="4,2"/>
<!-- ========== 第4层数据层 ========== -->
<rect x="42" y="470" width="1050" height="138" rx="7" fill="url(#bgData)" stroke="#E1BEE7" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="490" fill="#4A148C" font-size="12" font-weight="700">数据层Data Layer</text>
<!-- 关系型数据库 -->
<rect x="58" y="498" width="186" height="96" rx="6" fill="url(#gData)" filter="url(#sh)"/>
<text x="151" y="518" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">关系型数据库</text>
<text x="151" y="532" fill="#CE93D8" font-size="9" text-anchor="middle">MySQL / PostgreSQL</text>
<line x1="68" y1="538" x2="234" y2="538" stroke="rgba(255,255,255,0.15)" stroke-width="1"/>
<text x="151" y="552" fill="#CE93D8" font-size="9" text-anchor="middle">任务 / 工单 / 审批 / 用户</text>
<text x="151" y="566" fill="#CE93D8" font-size="9" text-anchor="middle">产品 / 设备 / 模板数据</text>
<text x="151" y="580" fill="#CE93D8" font-size="9" text-anchor="middle">结构化业务数据存储</text>
<!-- 时序数据库 -->
<rect x="260" y="498" width="186" height="96" rx="6" fill="url(#gData)" filter="url(#sh)"/>
<text x="353" y="518" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">时序数据库</text>
<text x="353" y="532" fill="#CE93D8" font-size="9" text-anchor="middle">TDengine / InfluxDB</text>
<line x1="270" y1="538" x2="436" y2="538" stroke="rgba(255,255,255,0.15)" stroke-width="1"/>
<text x="353" y="552" fill="#CE93D8" font-size="9" text-anchor="middle">设备高频采集时序数据</text>
<text x="353" y="566" fill="#CE93D8" font-size="9" text-anchor="middle">支持 ≥100万条/秒写入</text>
<text x="353" y="580" fill="#CE93D8" font-size="9" text-anchor="middle">自动压缩 / 分级存储</text>
<!-- 缓存数据库 -->
<rect x="462" y="498" width="186" height="96" rx="6" fill="url(#gData)" filter="url(#sh)"/>
<text x="555" y="518" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">缓存数据库</text>
<text x="555" y="532" fill="#CE93D8" font-size="9" text-anchor="middle">Redis Cluster</text>
<line x1="472" y1="538" x2="638" y2="538" stroke="rgba(255,255,255,0.15)" stroke-width="1"/>
<text x="555" y="552" fill="#CE93D8" font-size="9" text-anchor="middle">实时状态 / 会话缓存</text>
<text x="555" y="566" fill="#CE93D8" font-size="9" text-anchor="middle">Token / 权限缓存</text>
<text x="555" y="580" fill="#CE93D8" font-size="9" text-anchor="middle">热点数据加速访问</text>
<!-- 文件存储 -->
<rect x="664" y="498" width="186" height="96" rx="6" fill="url(#gData)" filter="url(#sh)"/>
<text x="757" y="518" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">文件对象存储</text>
<text x="757" y="532" fill="#CE93D8" font-size="9" text-anchor="middle">MinIO / NAS</text>
<line x1="674" y1="538" x2="840" y2="538" stroke="rgba(255,255,255,0.15)" stroke-width="1"/>
<text x="757" y="552" fill="#CE93D8" font-size="9" text-anchor="middle">试验报告 / 附件文件</text>
<text x="757" y="566" fill="#CE93D8" font-size="9" text-anchor="middle">视频录像 / 算法包</text>
<text x="757" y="580" fill="#CE93D8" font-size="9" text-anchor="middle">模板文件 / 程序文件</text>
<!-- 消息队列 -->
<rect x="866" y="498" width="210" height="96" rx="6" fill="url(#gData)" filter="url(#sh)"/>
<text x="971" y="518" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">消息队列</text>
<text x="971" y="532" fill="#CE93D8" font-size="9" text-anchor="middle">RabbitMQ / Kafka</text>
<line x1="876" y1="538" x2="1066" y2="538" stroke="rgba(255,255,255,0.15)" stroke-width="1"/>
<text x="971" y="552" fill="#CE93D8" font-size="9" text-anchor="middle">审批通知异步处理</text>
<text x="971" y="566" fill="#CE93D8" font-size="9" text-anchor="middle">告警事件 / 邮件队列</text>
<text x="971" y="580" fill="#CE93D8" font-size="9" text-anchor="middle">数据分析异步任务</text>
<!-- 层间箭头 4→5 -->
<line x1="567" y1="608" x2="567" y2="616" stroke="#90A4AE" stroke-width="2" marker-end="url(#arr)" stroke-dasharray="4,2"/>
<!-- ========== 第5层基础设施层 ========== -->
<rect x="42" y="616" width="1050" height="78" rx="7" fill="url(#bgInfra)" stroke="#CFD8DC" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="636" fill="#263238" font-size="12" font-weight="700">基础设施层Infrastructure</text>
<rect x="58" y="644" width="178" height="38" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="147" y="659" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">Web服务器</text>
<text x="147" y="673" fill="#B0BEC5" font-size="9" text-anchor="middle">Nginx · 反向代理 · 负载均衡</text>
<rect x="252" y="644" width="178" height="38" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="341" y="659" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">应用容器</text>
<text x="341" y="673" fill="#B0BEC5" font-size="9" text-anchor="middle">Docker · Kubernetes 编排</text>
<rect x="446" y="644" width="178" height="38" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="535" y="659" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">监控运维</text>
<text x="535" y="673" fill="#B0BEC5" font-size="9" text-anchor="middle">Prometheus · Grafana · ELK</text>
<rect x="640" y="644" width="178" height="38" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="729" y="659" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">网络安全</text>
<text x="729" y="673" fill="#B0BEC5" font-size="9" text-anchor="middle">防火墙 · WAF · SSL/TLS</text>
<rect x="834" y="644" width="244" height="38" rx="5" fill="url(#gInfra)" filter="url(#sh)"/>
<text x="956" y="659" fill="#fff" font-size="11" font-weight="700" text-anchor="middle">服务器硬件</text>
<text x="956" y="673" fill="#B0BEC5" font-size="9" text-anchor="middle">x86服务器 · 工业以太网交换机 · UPS</text>
<!-- 层间箭头 5→6 -->
<line x1="567" y1="694" x2="567" y2="702" stroke="#90A4AE" stroke-width="2" marker-end="url(#arr)" stroke-dasharray="4,2"/>
<!-- ========== 第6层设备接入层 ========== -->
<rect x="42" y="702" width="1050" height="66" rx="7" fill="url(#bgDevice)" stroke="#FFAB91" stroke-width="1.5" filter="url(#sh)"/>
<text x="62" y="720" fill="#BF360C" font-size="12" font-weight="700">设备接入层Device Integration</text>
<rect x="58" y="728" width="148" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="132" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">TCP/IP · 以太网</text>
<rect x="220" y="728" width="148" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="294" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">RS485 · RS232 串口</text>
<rect x="382" y="728" width="148" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="456" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">USB · USB3.0</text>
<rect x="544" y="728" width="148" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="618" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">Modbus · OPC-UA</text>
<rect x="706" y="728" width="148" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="780" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">视频 · POE摄像头</text>
<rect x="868" y="728" width="210" height="30" rx="5" fill="url(#gDevice)" filter="url(#sh)"/>
<text x="973" y="747" fill="#fff" font-size="10" font-weight="600" text-anchor="middle">13台验证平台设备</text>
<!-- 底部说明 -->
<text x="550" y="772" fill="#90A4AE" font-size="10" text-anchor="middle">
成都凯天电子股份有限公司 · 验证试验室数据管理平台 · 系统逻辑架构图 · V1.0 · 2026-04-17
</text>
</svg>