分布式服务
Quatm 采用分布式架构:驱动、数据管理、属性记录、消息路由、Web 访问与 GUI 作为独立操作系统进程运行,经本地 IPC 或 TCP 通信。
flowchart TB
subgraph Clients[客户端]
GUI[桌面 GUI<br/>PySide6]
WEB[Web 控制台<br/>浏览器 / 移动端]
end
BUS[(ZeroMQ 事件总线<br/>数据 · 图像 · 命令 · 属性)]
subgraph Control[控制层]
PM[进程与任务监督]
EXP[实验运行时<br/>Experiment · 扫描 · 队列 · 循环器]
end
subgraph Services[服务层]
DATA[数据与图像管理]
PROP[属性记录]
MSG[消息 Hub / 日志]
HEALTH[设备健康与租约]
WEBHUB[Web Hub]
end
subgraph Hardware[硬件层]
DRV[设备驱动<br/>VISA · 串口 · TCP · USB · GPIB · DLL]
RT[FPGA / ADwin / 实时控制器]
end
GUI --> BUS
WEB --> BUS
BUS --> PM
BUS --> EXP
EXP --> DATA
EXP --> PROP
PM --> MSG
PM --> HEALTH
DATA --> DRV
EXP --> RT
DRV --> Hardware
WEBHUB --> WEB
MSG --> BUS
HEALTH --> DRV故障隔离与网络透明
每个主要组件都可以作为独立操作系统进程运行。客户端与服务通过本地 IPC 或 TCP 通信,因此控制机、分析机与远程笔记本可以共享同一套实验,而不必共享同一个 进程。该架构刻意保持故障隔离与网络透明:图像处理不会阻塞时序,缓慢的 浏览器也不会拖住数据采集。
更深入的架构说明见通信层与代码仓库中的 quatm/docs/ 目录。