- 新增第0章:设备推送协议(认证+统一入口+塔吊4接口+升降机4接口) - 架构图更新:数据流改为厂家主动推送 - 推送地址/appid/secret待部署时配置 - API文档结构重排,H5接口和设备接口分开
139 lines
5.2 KiB
Markdown
139 lines
5.2 KiB
Markdown
# 系统架构设计
|
||
|
||
> 状态: 设计中
|
||
|
||
---
|
||
|
||
## 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. 待细化
|
||
|
||
- [x] ~~预警阈值配置~~ → 设备 API 自带预警判断,本系统仅做聚合展示
|
||
- [x] ~~设备 API 协议细节~~ → 河南三农统一推送接口(8个接口,已确认)
|
||
- [ ] 后台 API 公网部署地址(阿里云服务器,部署时配置)
|
||
- [ ] 多租户隔离方案(目前 MVP 单租户设计)
|