Files
smart-project/docs/architecture.md
Jesxion b985912234 feat: 锁定 SQLite 数据库选型(MVP)
- 架构图/SPEC.md/database.md 同步更新
- 移除 Alembic 迁移工具,改用 schema.sql 初始化
2026-04-14 11:46:40 +08:00

140 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 系统架构设计
> 状态: 设计中
---
## 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_engine` | 预警引擎:阈值判断、预警生成、通知分发 |
| `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 设备数据采集
```
已有设备 API
│ (定时轮询: 每 30s 或设备主动推送)
device_adapter (协议解析)
monitor (写入 DB + 触发预警判断)
├──────────────────┐
▼ ▼
PostgreSQL alert_engine
(设备状态表) (阈值判断)
alert_records (预警记录表)
通知分发 (站内/OSS记录)
```
### 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 协议细节(目前尚未获取,需跟进沟通)
- [ ] 预警阈值配置方案(管理员界面 or 配置文件)
- [ ] 实时通知方案WebSocket / SSE / 轮询)
- [ ] 多租户隔离方案(目前 MVP 单租户设计)