架构

Quatm 的服务、进程与客户端如何协同。

分布式服务

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/ 目录。