从哪来 · 为什么 · 怎么做
玖衍 Q11 问「中间件怎么接」。本节把 MDW 协议分工写成可联调的管道图,并指向 中间件专题页 与 middleware.opennexus.fun 实例。
Agent 需要「看见战场」
Brain COP 与 Gradio 参谋的前提是实时态势入流:CMO 仿真的 ACMI 2.2 流、外部 DIS 1278 仿真席、雷达/UAV 的 DDS topic、Command WPF 的 NamedPipe 回传——协议格式、坐标系、entity ID 各不相同。若让 Brain 直接解析每种协议,集成成本爆炸且延迟不可控。
MDW(Middleware)作为 L1 观测层的统一入流网关应运而生。
ingest → normalize → filter → route
四段流水线各司其职:ingest 按协议 adapter 收包;normalize 转为内部 CanonicalTrack(WGS84、UTC、entity 字段);filter 按 opMode / 地理围栏 / 权限 ACL 裁剪;route 推送至 Brain BFF、JUDGE、日志审计。
设计目标:E2E <200ms(传感器包 → Brain COP 图标更新),否则 AI 参谋看到的是「过去态」。
协议分工表
ACMI 2.2:CMO/Tacview 态势回放与 live 流。DIS 1278:跨仿真席互操作、AFSIM 侧挂。DDS:雷达/UAV 高频 topic。NamedPipe:Command WPF 本地回传。JSON/REST:Brain BFF 查询、门户 ACL 管控。
各协议只接 MDW,Brain 只消费 CanonicalTrack——单点 normalize,避免 N×M 集成。
MDW 协议流水线
联调入口:middleware.opennexus.fun 查看 live 流状态;协议字段定义见 /middleware.html。
协议选用与 use case
ACMI 2.2 — CMO 态势主通道
Command 仿真运行时可导出 ACMI 2.2(Tacview 兼容)流。MDW ACMI adapter 解析 # 帧头、Entity 块、Position 块,normalize 为 CanonicalTrack 后 route 至 Brain COP。这是 OpenNexus 演示与 train 模式的默认态势源,延迟通常在 50–120ms。
DIS 1278 — 跨席互操作与 AFSIM 侧挂
当需要接入外部 DIS 仿真席或 AFSIM 6-DOF 引擎时,MDW DIS adapter 监听 PDU(Entity State、Fire、Detonation)。DIS entity ID 在 normalize 阶段不直接进 Brain——必须先经 mapping-registry resolve 为 fusedId(见本体专题页)。这是 CMO + AFSIM 并存方案的关键管道。
DDS — 高频传感器 topic
雷达点迹、UAV 遥测等高频低延迟源走 DDS pub/sub。MDW DDS adapter 订阅指定 topic,filter 阶段按地理围栏裁剪后 route。DDS 与 ACMI 可在同一 fusedId 上 merge——Brain 融合层负责时空关联。
NamedPipe + JSON/REST — Command 本地回传与 BFF 查询
Command WPF :5000 执行结果(Mission 状态、单元毁伤)经 NamedPipe 本地回传 MDW,再 normalize 为 BDA 事件。Brain BFF 对外暴露 JSON/REST 供 COP 前端 WebSocket 订阅——REST 只读,写口仅 WPF :5000(INV-01)。