Skip to content

路线图(Roadmap / Demo 版本)

本路线图用于把 SRS(docs/srs/)里的需求条目,拆成可以直接演示、可以落盘、可以复现的 Demo 版本。

  • 需求对照:功能需求见 docs/srs/04-functional-requirements.md;验收口径见 docs/srs/07-acceptance.md
  • 版本原则:先闭环(能出数据与报告)→ 再接入 UNET 实时通信(真实 traces)→ 最后做可视化与答辩整合。
  • 对外口径:固定 3 个 Demo(Demo-0/1/2)。

版本状态(对外)

  • ✅ Demo-0:离线闭环(mock traces,可交付兜底)
  • ✅ Demo-1:UNET Gateway 接入(Tx/Rx + 真实 traces 落盘)
  • ✅ Demo-2:Dashboard 可视化 + 运行控制 + A/B 对比(答辩版本)

Demo-0:离线闭环(mock traces,兜底可交付)

目标:不依赖 UNET 网关,也能跑通“场景 → traces → metrics → report”,保证 UNET 接入受阻时仍可交付。

覆盖需求(SRS 对照):

  • FR-1:场景加载/校验/快照
  • FR-3:策略插件化 + 至少 2 种策略(round_robin / adaptive_qos)
  • FR-5:trace 记录 + 指标计算 + 落盘

落盘产物(runs/<run_id>/):

  • scenario.yaml / strategy.json / versions.json
  • traces.csv(数据来源=mock)
  • metrics.csv / report.md

已知缺陷(必须明确写出,避免“看起来都做了”):

  • traces 非 UNET 实时链路采集,不能证明仿真真实性。

Demo-1:接入 UNET 实时通信(Gateway Tx/Rx,真实 traces)

目标:形成“真实 traces”(非 mock),并从 payload header 恢复 run_id/step/seq,支撑可复现实验与 A/B 对比。

覆盖需求(SRS 对照):

  • FR-2:UNET 网关探测/连接(arlpy 优先,fjagepy 备选;不可用则降级 LogOnly)
  • FR-5:payload header 写入/解析 + trace 标准化 + 指标计算 + 落盘
  • FR-3:策略可切换(影响调度决策与发包机会分配)

Demo-1 的关键交付(端到端,不是“能连上就算”):

  • 网关探测:scripts/unet_probe_gateway.py 输出连接状态、可见 agent/service、能力摘要
  • 发送链路:scripts/unet_send_ping_or_tx.py 能发出至少 1 个包含 DT header 的 payload
  • 接收链路:scripts/unet_subscribe_rx.py 能接收消息并自动解析 DT header
  • 运行闭环:python -m unet_dt.orchestrator.runner --mode gateway 落盘 traces.csv(source=gateway)

Windows 2 节点样例(UNET handbook):

  • UNET 启动命令(示例):
powershell
# 在 UNET 根目录执行
bin\unet samples\2-node-network.groovy
  • 该样例会打印两个网关地址(示例):

    • Node A: tcp://localhost:1101
    • Node B: tcp://localhost:1102
  • 对应场景文件:scenarios/demo_2node_handbook.yaml(内含 tcp/http 地址与 traffic 配置)。

兼容性说明(不阻塞,但必须留口径):

  • UNET 的 Rx 通知/字段名在不同版本差异很大:本项目核心逻辑不写死类名/字段名,脚本会打印调试信息以便现场定位。
  • 若地址映射不一致,可通过 scenario 的 NodeConfig.unet_addr / unet.*_hint 做注入覆盖。

Demo-2:Dashboard 可视化 + 运行控制(答辩版本)

目标:在 Web 界面完成 runs 列表、详情曲线、A/B 对比、Start/Stop 控制、(可选)实时推送;必要时引入 barrier 同步做论文亮点。

建议拆分(便于逐步可演示):

  • Demo-2.1:runs 列表/详情/曲线 + A/B 对比(离线读取 runs/
  • Demo-2.2:运行控制(Start/Stop)+ WebSocket 推送(step/schedule/metrics)
  • Demo-2.3(可选增强):逻辑时间步进/Barrier + sync_error_ms / out_of_order 指标

当前进展(2026-02-11):

  • 已完成后端运行生命周期主链路:POST /runs/{id}/startPOST /runs/{id}/stopGET /runs/{id},并接入后台 RunService + ExecutionWorker
  • Demo-2 的剩余重点转为:Dashboard 页面整合、A/B 对比可视化、答辩流程脚本与前端交互细节。

2026-02-11 状态更新(后端验收完成)

已完成:

  • 接入 MySQL 数据库:配置 unet_dt + dt_runs/dt_run_summary/dt_run_events 映射表。
  • 完整的后端 API:实现了 start/stop/detail/metrics/traces 以及 WebSocket 实时推送。
  • 完成端到端验收:run_id acceptance-e2e-20260211090035,验证了从创建、启动、停止到指标/trace 查询的全流程,且 DB summary 与文件产物一致。

后续 Demo-2 剩余工作:

  • 开发 Dashboard 前端页面(列表/详情/控制/实时图表)。
  • 实现 7 节点位置的 Web 可视化展示。

相关文档产出:

  1. 前端 UI 设计规格书:docs/dev/04-frontend-ui-design.md
  2. 后端开发与 API 指南:docs/dev/03-development-guide.md, docs/dev/01-backend-api.md
  3. 验收报告更新:docs/srs/07-acceptance.md

2026-02-28 状态更新(Demo-2 全部完成)

Demo-2 已完成清单:

  • 后端全量 REST + WebSocket API(health/scenarios/create/start/stop/list/detail/metrics/traces/ws)
  • MySQL 持久化层(dt_runs/dt_run_summary/dt_run_events)
  • 前端 Dashboard:运行列表、详情曲线、A/B 对比、Start/Stop 控制、WebSocket 实时推送
  • 7 节点位置初始化(LocationInitializer,支持 fail-fast / best-effort)
  • 网关 PHY 预检(arlpy/fjagepy/LogOnly 三级降级)
  • 健康监控端点(/health
  • 完整文档站(SRS 10篇 + 架构 12篇 + 关键技术 5篇 + 前端 3篇 + 开发 6篇 + 进度/路线图/指南)

未来迭代方向

以下为答辩后可选增强方向,不阻塞当前交付:

  • Barrier 同步增强:引入逻辑时间步进 / Barrier 机制,补充 sync_error_ms / out_of_order 指标,作为论文亮点
  • 多策略 A/B 自动化:支持批量场景 + 多策略组合的自动化 A/B 对比与统计报告生成
  • 实时拓扑可视化:在 Dashboard 上展示节点间链路状态、信道质量热力图
  • 信道模型扩展:接入更多信道模型(Bellhop、射线追踪),支持参数化对比
  • 多用户协作:支持多用户同时操作不同场景,引入权限与审计机制
  • CI/CD 集成:自动化回归测试、文档构建与部署流水线