Skip to content

架构设计

本章节详细介绍 Mooting 系统的整体架构设计和核心数据流。

系统架构图

┌─────────────────────────────────────────────────────────────────────────┐
│                              用户层                                      │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐                 │
│  │  iOS App    │    │ Android App │    │   Web App   │                 │
│  │  (未来)     │    │ (RN/Native) │    │  (RN Web)   │                 │
│  └─────────────┘    └─────────────┘    └─────────────┘                 │
│                                                                         │
└───────────────────────────────┬─────────────────────────────────────────┘

                    ┌───────────┴───────────┐
                    │                       │
             HTTP/REST API              BLE Protocol
                    │                       │
                    ▼                       ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│        应用服务层            │   │        硬件通信层            │
├─────────────────────────────┤   ├─────────────────────────────┤
│                             │   │                             │
│  ┌───────────────────────┐  │   │  ┌───────────────────────┐  │
│  │   MootingBackend      │  │   │  │  BluetoothModule      │  │
│  │   (Spring Boot)       │  │   │  │  (Android BLE SDK)    │  │
│  │                       │  │   │  │                       │  │
│  │  ┌─────────────────┐  │  │   │  │  ┌─────────────────┐  │  │
│  │  │ Auth Service    │  │  │   │  │  │ Device Manager  │  │  │
│  │  │ User Service    │  │  │   │  │  │ SPP Manager     │  │  │
│  │  │ Device Service  │  │  │   │  │  │ Command Handler │  │  │
│  │  │ Trans. Service  │  │  │   │  │  │ State Manager   │  │  │
│  │  │ Behavior Service│  │  │   │  │  └─────────────────┘  │  │
│  │  └─────────────────┘  │  │   │  │                       │  │
│  │                       │  │   │  └───────────────────────┘  │
│  └───────────────────────┘  │   │                             │
│                             │   └──────────────┬──────────────┘
└──────────────┬──────────────┘                  │
               │                                  │
               ▼                                  ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│        数据存储层            │   │        智能硬件层            │
├─────────────────────────────┤   ├─────────────────────────────┤
│                             │   │                             │
│  ┌───────────────────────┐  │   │  ┌───────────────────────┐  │
│  │   SQL Server 2022     │  │   │  │   Mooting 智能眼镜    │  │
│  │                       │  │   │  │                       │  │
│  │  • user              │  │   │  │  • 显示模块           │  │
│  │  • user_device       │  │   │  │  • 麦克风             │  │
│  │  • transcription_*   │  │   │  │  • 扬声器             │  │
│  │  • user_behavior_*   │  │   │  │  • BLE 模块           │  │
│  │                       │  │   │  │  • 传感器             │  │
│  └───────────────────────┘  │   │  └───────────────────────┘  │
│                             │   │                             │
└─────────────────────────────┘   └─────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────┐
│                            外部服务层                                    │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐                 │
│  │ 腾讯云 ASR  │    │  阿里云短信  │    │  飞书邮件   │                 │
│  │ (语音转写)  │    │  (验证码)   │    │  (验证码)   │                 │
│  └─────────────┘    └─────────────┘    └─────────────┘                 │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心数据流

1. 用户认证流程

┌──────────┐      ┌──────────┐      ┌──────────┐      ┌──────────┐
│  用户    │      │   APP    │      │  后端    │      │ 短信/邮件 │
└────┬─────┘      └────┬─────┘      └────┬─────┘      └────┬─────┘
     │                 │                 │                 │
     │  输入手机号     │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  POST /verify-code/send          │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │                 │  发送验证码     │
     │                 │                 │────────────────>│
     │                 │                 │                 │
     │                 │    200 OK       │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │  收到验证码     │                 │                 │
     │<────────────────────────────────────────────────────│
     │                 │                 │                 │
     │  输入验证码     │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  POST /verify-code/verify        │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │                 │  验证 & 创建用户│
     │                 │                 │─────┐           │
     │                 │                 │     │           │
     │                 │                 │<────┘           │
     │                 │                 │                 │
     │                 │  JWT Token      │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │  登录成功       │                 │                 │
     │<────────────────│                 │                 │
     │                 │                 │                 │

2. 设备连接流程

┌──────────┐      ┌──────────┐      ┌──────────┐      ┌──────────┐
│  用户    │      │   APP    │      │ BLE SDK  │      │  眼镜    │
└────┬─────┘      └────┬─────┘      └────┬─────┘      └────┬─────┘
     │                 │                 │                 │
     │  点击添加设备   │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  startScan()    │                 │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │                 │  BLE 扫描广播   │
     │                 │                 │<───────────────>│
     │                 │                 │                 │
     │                 │  onDeviceFound  │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │  显示设备列表   │                 │                 │
     │<────────────────│                 │                 │
     │                 │                 │                 │
     │  选择设备       │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  connect()      │                 │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │                 │  GATT 连接      │
     │                 │                 │────────────────>│
     │                 │                 │                 │
     │                 │                 │  连接成功       │
     │                 │                 │<────────────────│
     │                 │                 │                 │
     │                 │                 │  CmdBind        │
     │                 │                 │────────────────>│
     │                 │                 │                 │
     │                 │                 │  绑定确认       │
     │                 │                 │<────────────────│
     │                 │                 │                 │
     │                 │  onConnected    │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │  连接成功       │                 │                 │
     │<────────────────│                 │                 │

3. 实时转写流程

┌──────────┐      ┌──────────┐      ┌──────────┐      ┌──────────┐
│  用户    │      │   APP    │      │ 腾讯云ASR │      │  后端    │
└────┬─────┘      └────┬─────┘      └────┬─────┘      └────┬─────┘
     │                 │                 │                 │
     │  开始录音       │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  WebSocket 连接  │                 │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │  连接成功       │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │                 │  音频流 (PCM)   │                 │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │  实时转写结果   │                 │
     │                 │<────────────────│                 │
     │                 │                 │                 │
     │  显示字幕       │                 │                 │
     │<────────────────│                 │                 │
     │                 │                 │                 │
     │  ··· 持续转写 ···                 │                 │
     │                 │                 │                 │
     │  停止录音       │                 │                 │
     │────────────────>│                 │                 │
     │                 │                 │                 │
     │                 │  关闭 WebSocket │                 │
     │                 │────────────────>│                 │
     │                 │                 │                 │
     │                 │  POST /transcriptions            │
     │                 │────────────────────────────────>│
     │                 │                 │                 │
     │                 │  保存成功       │                 │
     │                 │<────────────────────────────────│
     │                 │                 │                 │
     │  保存完成       │                 │                 │
     │<────────────────│                 │                 │

技术选型说明

后端技术选型

选型原因
Spring Boot 4.0成熟稳定,生态丰富,团队熟悉
SQL Server企业级数据库,支持复杂查询和事务
JWT无状态认证,适合移动端和分布式场景
JPA/HibernateORM 映射简化数据库操作

移动端技术选型

选型原因
React Native跨平台开发,代码复用率高
Vite快速的 Web 构建工具,支持 HMR
Axios成熟的 HTTP 客户端
腾讯云 ASR国内语音识别服务,延迟低

Android SDK 技术选型

选型原因
Kotlin现代 Android 开发首选语言
BLE低功耗蓝牙,适合穿戴设备
MVVM架构清晰,便于测试

扩展性设计

横向扩展

  • 后端可通过负载均衡部署多实例
  • 数据库支持读写分离
  • 静态资源可使用 CDN 分发

功能扩展

  • API 版本化设计 (/api/v1/, /api/v2/)
  • 模块化的服务层设计
  • 插件化的第三方集成

下一步

Mooting 开发者文档