Files
smart-project/docs/architecture.md
Jesxion 6c8760c6c5 feat: 确认河南三农推送协议,8个接口完整字段
- 新增第0章:设备推送协议(认证+统一入口+塔吊4接口+升降机4接口)
- 架构图更新:数据流改为厂家主动推送
- 推送地址/appid/secret待部署时配置
- API文档结构重排,H5接口和设备接口分开
2026-04-14 12:01:34 +08:00

5.2 KiB
Raw Blame History

系统架构设计

状态: 设计中


1. 系统架构图

                    ┌─────────────────────────────────────────┐
                    │           阿里云 OSS                    │
                    │    (文件存储: 证书/报告/日志)            │
                    └───────────────┬─────────────────────────┘
                                    │ upload
                                    ▼
┌──────────┐    ┌─────────────────────────┐    ┌──────────────┐
│ 已有API  │───▶│      后台 API 服务        │◀───│   H5 客户端   │
│ (塔吊/   │    │   Python / FastAPI      │    │  (移动端浏览器)│
│  升降机) │    │                         │    │               │
└──────────┘    │  ┌───────────────────┐  │    └──────────────┘
                │  │  设备数据接入层    │  │            ▲
                │  │  预警引擎          │  │            │ polling / websocket
                │  │  OSS 文件管理      │  │
                │  │  REST API          │  │
                │  └───────────────────┘  │            │
                └────────────┬────────────┘            │
                             │                          │
                             ▼                          │
                ┌─────────────────────────┐
                │      SQLite              │
                │  (设备台账/预警记录/     │◀────────────┘
                │   用户/OSS文件索引)     │
                └─────────────────────────┘

2. 模块划分

2.1 后台 API 服务

职责:数据聚合层,统一对接已有设备 API屏蔽异构数据源差异对 H5 提供标准化 REST API。

模块 说明
device_adapter 设备 API 适配器:塔吊协议解析、升降机协议解析
monitor 设备状态监控:定时轮询已有 API写入本地 DB
alert_handler 预警接收与存储:接收设备 API 的预警数据,存入 DB
file_mgr OSS 文件管理:上传、下载、索引
api_routes REST API 路由设备台账、实时数据、历史查询、预警、OSS

2.2 H5 客户端

职责:移动端展示与操作界面,基于响应式 H5 开发,适配手机浏览器。

模块 说明
dashboard 首页仪表盘:设备总数、在线/离线、告警统计
device_list 设备列表:塔吊/升降机分类展示
device_detail 设备详情:实时数据面板、历史曲线
alert_list 预警列表:未读/已处理筛选
alert_detail 预警详情:处理/忽略操作
profile 个人中心:账号信息、通知设置

3. 数据流向

3.1 设备数据采集

河南三农厂家系统(推送)
     │ (统一推送接口 POST /input/post/call)
     ▼
device_adapter (协议解析,统一入口)
     │
     ▼
monitor (写入 DB)
     │
     ├──────────────────┐
     ▼                  ▼
SQLite              alert_handler
(设备状态表)       (接收设备预警,写入 DB)
                         │
                         ▼
                  alert_records (预警记录表)

注:数据为主动推送,无需后台定时轮询。推送频率由厂家控制。

3.2 H5 数据请求

H5 浏览器
    │ GET /api/devices
    │ GET /api/devices/{id}/realtime
    │ GET /api/alerts
    ▼
api_routes (FastAPI)
    │
    ├──────────────┐
    ▼              ▼
PostgreSQL     OSS
(结构化数据)   (文件URL)

4. 部署架构

MVP 阶段采用轻量部署:

组件 部署方式
后台 API 阿里云函数计算FC或轻量服务器
PostgreSQL 阿里云 RDS 或轻量服务器自建
OSS 阿里云 OSS 标准存储

5. 安全设计

措施 说明
HTTPS 全链路 HTTPS证书由阿里云管理
Token 认证 H5 API 请求携带 JWT Token
CORS 限制允许的 H5 域名
OSS 鉴权 H5 通过后台签发临时 URL 访问 OSS 文件
输入校验 FastAPI Pydantic 模型全量参数校验

6. 待细化

  • 预警阈值配置 → 设备 API 自带预警判断,本系统仅做聚合展示
  • 设备 API 协议细节 → 河南三农统一推送接口8个接口已确认
  • 后台 API 公网部署地址(阿里云服务器,部署时配置)
  • 多租户隔离方案(目前 MVP 单租户设计)