Appearance
路线图(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.jsontraces.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
- Node A:
对应场景文件:
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}/start、POST /runs/{id}/stop、GET /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 可视化展示。
相关文档产出:
- 前端 UI 设计规格书:
docs/dev/04-frontend-ui-design.md - 后端开发与 API 指南:
docs/dev/03-development-guide.md,docs/dev/01-backend-api.md - 验收报告更新:
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 集成:自动化回归测试、文档构建与部署流水线