跳转至
XiStudio · Tech Architecture

XiStudio 技术架构设计 v1.0

分层设计 · 数据流 · 部署拓扑 · 技术栈 · 扩展机制
文档编号:D2-P1-TECH-001 · 版本:v1.0 · 发布:2026-05-05
让每一层都可替换 · 让每一个接口都有契约
5
架构分层
.NET 8
核心运行时
Electron
UI Shell

XiStudio 技术架构设计 v1.0

摘要

本文档是 XiStudio IDE技术架构详设,与 spec.md 互补:spec 定义 "做什么"(功能/性能/兼容性契约),本文回答 "怎么做"(分层/模块/数据流/扩展点)。 目标读者:架构师、平台软件团队、Enterprise/IDM 客户的二次开发工程师


1. 架构原则

XiStudio 架构五条原则

  1. 分层解耦:UI / 编辑器内核 / 编译器 / 仿真烧录 / 设备 I/O 各有清晰边界
  2. 契约优先:每层之间用 gRPC / IPC 契约隔离,不共享内存态
  3. 插件可插拔:算法块、导出器、调音 UI 均通过 .xiplugin 机制热加载
  4. 离线可跑:核心工作流(编辑 / 编译 / 仿真 / 烧录)不依赖云端
  5. 逐步云化:AI 辅助与团队协作是增量能力,不破坏离线基线

2. 总体分层

2.1 五层架构

graph TB
    L5[L5 · 表现层<br/>UI Shell · Electron]
    L4[L4 · 应用层<br/>EditorCore · ParamPanel · Scope]
    L3[L3 · 领域层<br/>Compiler · Simulator · AlgoLib]
    L2[L2 · 基础设施层<br/>Burner · XiFlash · JTAG Driver]
    L1[L1 · 设备与云层<br/>XiDSP · XiMind Cloud · License Server]

    L5 --> L4
    L4 --> L3
    L3 --> L2
    L2 --> L1

    class L5 xyL5
    class L4 xyL4
    class L3 xyL3
    class L2 xyL2
    class L1 xyL1

2.2 各层职责

职责 进程 主要技术
L5 表现层 窗口、菜单、渲染 Renderer 进程(Electron) TypeScript + React + Canvas2D
L4 应用层 编辑器交互、参数绑定、实时示波器 Renderer + Main 桥接 TypeScript + .NET Bridge(Edge.js)
L3 领域层 流图模型、编译、仿真、算法库管理 Main 进程(.NET 8) C# + Roslyn + 自研 DSL
L2 基础设施层 设备 I/O、文件系统、网络、加密 Main 进程 + Native DLL C# P/Invoke + C 驱动
L1 设备与云层 XiDSP 硬件、XiMind 云端、License 服务器 独立设备/服务 XiDSP-ISA / HTTPS / gRPC

3. 核心模块详设

3.1 EditorCore(流图编辑器内核)

graph LR
    Model[FlowGraphModel] --> Cmd[Command Bus]
    Cmd --> Undo[Undo/Redo Stack]
    Cmd --> Evt[Event Bus]
    Evt --> Renderer[Canvas Renderer]
    Evt --> Param[Param Panel]
    Evt --> Scope[Scope]

    class Model xyL3
    class Cmd,Evt xyL2
    class Undo,Renderer,Param,Scope xyL1
  • 核心数据结构FlowGraphModel(节点 + 边 + 组 + 元数据)
  • 命令模式:所有编辑动作走 Command Bus,天然支持 Undo/Redo
  • 事件总线:解耦 UI 与数据变化
  • 实时渲染:Canvas2D 绘制 + ResizeObserver 按需重绘

3.2 Compiler(DSP 编译器)

graph LR
    Flow[.xiflow] --> Parse[AST 解析]
    Parse --> Lint[静态检查]
    Lint --> Opt[算法图优化]
    Opt --> Codegen[代码生成]
    Codegen --> ASM[XiDSP 汇编]
    ASM --> BIN[.xifw 固件]

    Opt -.性能预估.-> Profile[MIPS/MEM Report]

    class Flow xyL0
    class Parse,Lint xyL2
    class Opt,Codegen xyL3
    class ASM,BIN xyL4
    class Profile xyL1

关键点: - IR(中间表示):基于 SSA 形式,便于优化 pass 串联 - 算法图优化:常量折叠、冗余块消除、流水线调度 - 目标后端:v1.0 只支持 XiDSP-D1;v2.0+ 支持 D2/D3/A1 和第三方 DSP - 性能预估:每个节点给 MIPS/Memory/Cycles 三维预估,供工程师提前感知瓶颈

3.3 Simulator(位精确仿真器)

  • 核心:XiDSP 指令集 位精确解释器(cycle-accurate 模式可选)
  • 输入.xifw + 音频 WAV/PCM
  • 输出:仿真后音频 + 节点级波形 + 性能 Profile
  • 性能:v1.0 单线程 ≥ 10× 实时率(48 kHz 单通道);v1.5 并行化 ≥ 50×

3.4 Burner(烧录引擎)

graph LR
    FW[.xifw] --> Sign[签名校验]
    Sign --> Pack[打包 .xiflash]
    Pack --> Sel{接口选择}
    Sel -- USB --> USB[XiFlash USB]
    Sel -- 串口 --> UART[XiFlash UART]
    Sel -- JTAG --> JTAG[XiFlash JTAG]
    USB --> Device[XiDSP]
    UART --> Device
    JTAG --> Device

    class FW xyL0
    class Sign xyWarn
    class Pack xyL2
    class Sel xyWarn
    class USB,UART,JTAG xyL3
    class Device xySuccess
  • 驱动抽象IBurnerBackend 接口,USB/UART/JTAG 各自实现
  • 签名:Pro+ 版本的固件必须通过 RSA-2048 签名,否则拒绝烧录
  • 断点续传:大固件分片传输,支持中断恢复

3.5 AIBridge(XiMind 桥接)

  • 通信:HTTPS + Server-Sent Events(流式返回)
  • 缓存策略:同样的 Prompt + 同样的项目上下文 → 本地缓存 30 天
  • 离线退化:云端不可达时,XiMind 能力静默失效,不影响主流程

4. 进程模型

4.1 Electron 双进程 + .NET 桥

graph TB
    Main[Main 进程<br/>Node.js]
    Renderer[Renderer 进程<br/>Chromium]
    NetHost[.NET 8 Host<br/>子进程]

    Main <--IPC JSON-RPC--> Renderer
    Main <--Edge.js / Named Pipe--> NetHost
    NetHost --> Domain[L3 领域层<br/>C# 代码]

    class Main xyL4
    class Renderer xyL5
    class NetHost xyL3
    class Domain xyL2

4.2 为什么要分出 .NET Host

  • 性能:编译 / 仿真是 CPU 密集,放在独立 .NET 进程避免阻塞 UI
  • 稳定性:.NET 崩溃只影响当前任务,不拖死 UI
  • 复用:同一个 .NET Host 未来可被 CLI / REST 服务复用

5. 数据流

5.1 编辑 → 编译 → 烧录全流程

graph LR
    U[用户操作] --> E[EditorCore]
    E --> M[FlowGraphModel]
    M -- 保存 --> F[.xiflow]
    F --> C[Compiler]
    C --> FW[.xifw]
    FW --> B[Burner]
    B --> D[XiDSP Device]
    D -- JTAG 反馈 --> UI[Scope 实时显示]

    class U xyL0
    class E,M xyL4
    class F,FW xyL2
    class C,B xyL3
    class D xyL1
    class UI xySuccess

5.2 项目文件树

my-project.xiproj/         # 项目目录(文件夹即项目)
├── project.xml            # 项目元数据
├── flows/
│   ├── main.xiflow        # 主流图
│   └── preset-rock.xiflow # 子流图
├── params/
│   └── default.xiparam    # 参数组
├── assets/
│   └── test-audio.wav     # 仿真素材
├── build/
│   ├── main.xifw          # 编译输出
│   └── main.xiflash       # 烧录包
└── .xi/                   # 内部元数据(.gitignore 友好)

6. 扩展机制

6.1 .xiplugin 插件格式

my-plugin.xiplugin(ZIP 归档)
├── manifest.json          # 插件元数据(ID/版本/入口/权限/签名)
├── main.js                # 入口脚本(TypeScript 编译产物)
├── assets/                # 图标/图片/文档
└── README.md

6.2 三类插件

类型 用途 示例
算法块(AlgoBlock) 自定义 DSP 算法 客户私有 AEC 算法
导出器(Exporter) 把 XiStudio 工程导出为其他格式 导出到 ADI SigmaStudio
UI 扩展(UIPanel) 自定义调音面板 品牌专属 GUI

6.3 权限与签名

  • 插件 manifest.json 必须声明权限(文件 / 网络 / 硬件访问)
  • Enterprise+ 版强制要求插件签名(防止恶意插件)
  • 首次加载时弹窗提示用户确认权限

7. 部署拓扑

7.1 单机模式(Community / Pro)

用户 PC
├── XiStudio.exe / .app(桌面)
├── XiFlash USB/串口设备(调试时插)
└── XiDSP 目标板(调试时插)

7.2 企业集成模式(Enterprise)

graph TB
    subgraph "Client Workstations"
        W1[工程师 PC 1]
        W2[工程师 PC 2]
        Wn[工程师 PC N]
    end

    subgraph "Enterprise Backend"
        LS[License Server]
        CS[Collab Server<br/>XiForge]
        Proxy[AI Gateway<br/>代理到 XiMind]
    end

    subgraph "Cloud"
        XM[XiMind Cloud]
    end

    W1 --> LS
    W2 --> LS
    Wn --> LS
    W1 --> CS
    W2 --> CS
    Wn --> CS
    CS --> Proxy
    Proxy --> XM

    class W1,W2,Wn xyL5
    class LS,CS xyL3
    class Proxy xyL2
    class XM xyL1

7.3 IDM 模式(源码级)

  • 客户拿到源码 + 构建脚本 + 定制化接口
  • 可在自有 CI/CD 中构建、签名、分发
  • 支持客户替换 Codegen 后端以对接客户自研 DSP

8. 技术栈选型理由

选型 替代方案 选择理由
Electron(而非 Native) Qt / MAUI 跨平台速度 + 前端人才池 + 生态成熟
.NET 8 核心 Node.js / Rust 既有团队 C# 能力 + Roslyn 元编程 + 性能够用
React(而非 Vue) Vue / Svelte 大型应用维护性 + Electron 社区示例多
Canvas2D(而非 WebGL) WebGL / Konva v1.0 节点数有限,Canvas2D 足够,2027+ 升 WebGL
gRPC(而非纯 REST) REST Only IDM 低延迟场景需要 · REST 留给 Enterprise

9. 可观测性与运维

9.1 遥测(Telemetry)

  • 默认关闭,用户首次启动可显式开启(遵守 GDPR / 个保法)
  • 只收集匿名崩溃堆栈 + 功能使用频次,不收集工程内容
  • 数据通过 OpenTelemetry 协议上送

9.2 日志

  • 本地日志:按天滚动,最多保留 30 天 / 500 MB
  • 崩溃转储:MiniDump + 上下文元信息
  • 分级:Trace / Debug / Info / Warn / Error / Fatal(默认 Info)

9.3 License 服务器(Enterprise)

  • 心跳:客户端每 5 分钟上报一次 License 状态
  • 离线宽限期:断网 72 小时内仍可工作(可配置)
  • 审计日志:License 使用、登录、关键操作

10. 演进路线

10.1 未来 2 年技术演进

时间 演进项 影响层
2026 Q4 Pro v1.0 首发 · 支持 XiDSP-D1 L1-L5
2027 Q2 Enterprise v1.0 · 团队协作 L4 + L1(云)
2027 Q4 XiMind 集成(AI 辅助) L4 + L1(云)
2028 Q2 并行仿真 + GPU 加速 L3
2028 Q4 第三方 DSP(ADI/TI)Codegen 后端 L3
2029+ Linux 版 / 云端 IDE(WebAssembly) L5 + L2

10.2 技术债提示

已识别的技术债(v1.0 阶段接受)

  1. Electron 包体积偏大(~200 MB) → 2027 评估 Tauri 替换
  2. Canvas2D 大项目(>500 节点)渲染卡顿 → WebGL 重写
  3. 编译器 IR 仅为 线性 IR → 2028 升级为 SSA + Region-based
  4. License 服务器单点部署 → 增加集群与热备

11. 附录

11.1 与其他文档的引用关系

关联文档 引用点
XiStudio 产品概述 用户场景 / 版本矩阵
XiStudio PRD 功能需求 / 验收标准
XiStudio 产品规格书 版本能力矩阵 / API 契约
XiStudio API 文档 CLI / REST / gRPC 详细
软件开发规范 代码风格 / Git 流程
测试规范与质量标准 质量红线

11.2 版本历史

版本 日期 要点
v1.0 2026-05-05 首版 · 五层架构 + 模块详设 + 部署拓扑

tech-arch.md · D2-P1-TECH-001 · v1.0 · 2026-05-05 · Xisound 研发中心 · 平台软件团队