Skip to content

云平台系统 产品需求文档

字段内容
文档编号SUB-CP-V0.1
版本V0.1
状态草稿
作者产品团队
日期2026-04-16
审核人[待定]

修订记录

版本日期修订人修订内容
V0.12026-04-16产品团队初稿

1. 概述

1.1 目的

本文档定义云平台子系统(Cloud Platform, CP)的产品需求,作为云平台系统设计、开发、部署和运维的依据。云平台是农业无人机系统的远程服务中枢,为设备管理、远程遥测、远程指令、OTA升级、作业数据管理等功能提供后端支撑。

1.2 适用范围

  • 适用产品型号:XX 农业无人机
  • 适用版本:V1.0 种子用户版(100台规模)
  • 未来版本:V1.5/V2.0 扩展至1,000~10,000台规模

1.3 关联文档

文档编号文档名称关系
PRD-MASTER-V0.1总体产品需求文档上位需求来源
ICD-07-V0.1飞控与App远程接口(4G)接口定义(云平台通信架构、API路径、安全机制)
SUB-APP-V0.1操控App系统PRD协作子系统(App为云平台主要客户端)
SUB-FC-V0.1飞控系统PRD协作子系统(飞行器为云平台数据源)

1.4 术语定义

术语定义
MAVLink TCP Relay云端MAVLink透传中继服务,不解析不转换MAVLink消息,仅做TCP会话级转发
REST API基于HTTP的业务接口,用于用户认证、设备管理、OTA、作业记录等非实时业务
mTLS双向TLS认证,设备和服务端互相验证证书
JWTJSON Web Token,用于用户身份认证的令牌机制
HMACHash-based Message Authentication Code,基于哈希的消息认证码
OTAOver-The-Air,空中固件升级
TSDBTime Series Database,时序数据库,用于存储遥测数据
RBACRole-Based Access Control,基于角色的访问控制
GEO围栏地理围栏,定义禁飞区/限飞区/授权区的地理边界数据
灰度发布按百分比或设备分组逐步推送固件更新的策略
CACertificate Authority,证书颁发机构
PIPLPersonal Information Protection Law,中华人民共和国个人信息保护法

2. 系统描述

2.1 子系统职责

云平台系统是农业无人机系统的远程服务中枢,负责设备管理、远程遥测透传与存储、远程指令转发与审计、OTA固件分发、作业数据管理、GEO围栏服务和地图服务,为飞行器和操控App提供完整的云端业务支撑。

2.2 系统边界

飞行器(4G模块)                   操控App(Wi-Fi/4G)
     │                               │
     │ MAVLink TCP (mTLS)             │ MAVLink TCP (Token)
     ▼                               ▼
┌──────────────────────────────────────────────┐
│              云平台系统 (CP)                     │
│                                               │
│  ┌─────────────┐   ┌───────────────────────┐  │
│  │ MAVLink TCP  │   │     REST API 服务      │  │
│  │ Relay 服务   │   │                       │  │
│  │              │   │  · 用户认证 (JWT)      │  │
│  │ · 透传转发    │   │  · 设备管理            │  │
│  │ · 旁路采集    │   │  · 作业数据            │  │
│  │ · 指令审计    │   │  · 固件/OTA           │  │
│  │ · 会话管理    │   │  · GEO围栏            │  │
│  └──────┬──────┘   │  · 地图服务            │  │
│         │           │  · 历史遥测查询         │  │
│         │ 旁路写入   └───────────┬───────────┘  │
│         ▼                       │              │
│  ┌──────────────────────────────┴───────────┐  │
│  │               数据存储层                    │  │
│  │  · 时序数据库 (遥测数据, ≥90天)            │  │
│  │  · 关系数据库 (用户/设备/作业/权限)         │  │
│  │  · 对象存储 (固件包/地图文件/航测图)        │  │
│  │  · 审计日志存储 (指令日志, ≥1年)           │  │
│  └─────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘

上游输入

  • 飞行器:通过4G模块建立TCP连接,发送MAVLink v2二进制流(遥测数据)
  • 操控App:通过TCP连接接收/发送MAVLink消息(遥测查看/指令下发);通过HTTPS调用REST API(业务操作)

下游输出

  • 向App透传飞行器MAVLink数据流
  • 向App提供REST API响应(设备列表、历史遥测、作业记录、固件信息、GEO围栏、地图等)
  • 向飞行器透传App下发的MAVLink指令

协作子系统

  • SUB-APP(操控App):云平台的主要客户端,消费所有REST API和MAVLink TCP Relay服务
  • SUB-FC(飞控系统):通过4G模块与云平台建立TCP连接,是遥测数据的源头和指令的执行者
  • ICD-07:定义了飞控↔App远程接口的完整规范,云平台PRD需与之完全对齐

2.3 架构决策说明

决策:4G实时通道采用MAVLink over TCP直连透传,云端做纯TCP Relay;业务功能走独立REST API。

考量因素:

  1. 前期开发难度最低

    • TCP Relay方案:App已有MAVLink协议栈,4G通道只是换个socket地址,业务代码零修改
    • 全MQTT方案:需额外开发MAVLink↔JSON转换层、MQTT客户端、部署Broker,工作量翻倍
  2. 代码复用

    • 直连链路(AR8131)和4G链路对App完全透明,都是MAVLink over TCP/UDP
    • 一套代码两条路径,维护成本最低
  3. 生态兼容

    • QGroundControl、Mission Planner等开源GCS原生支持MAVLink TCP远程连接
    • 调试和测试阶段可直接用开源工具验证
  4. 种子用户阶段够用

    • 100台设备,不需要Pub/Sub一对多实时订阅
    • TCP Relay + REST API完全满足需求
  5. 渐进式升级路径

    V1.0(种子用户100台):
      MAVLink TCP Relay + REST API(最小可行)
      → 开发量最小,快速上线
    
    V1.5(规模扩大至1,000台):
      + WebSocket推送(机队看板实时更新)
      → 在REST层加WebSocket,不动MAVLink通道
    
    V2.0(万台级别):
      TCP Relay → MQTT fanout层(多订阅者)
      → 仅在云端relay后面加MQTT Broker做消息分发
      → App端仍然收MAVLink,由Broker负责协议桥接
      → App代码不变,只是云端架构升级

    每个版本只在云端加层,App代码始终不需要改动。

2.3.2 架构方案对比

维度方案A:MAVLink TCP + REST(采用)方案B:全MQTT(弃用)
前期开发量——App复用MAVLink协议栈——需协议转换层+MQTT客户端+Broker
协议栈数量App维护1套(MAVLink),云端REST独立App维护2套(MAVLink + MQTT)
实时性直接TCP转发,延迟低多一层Broker转发+JSON序列化
直连/4G代码复用完全复用不可复用
一对多订阅不擅长(TCP点对点)擅长(Pub/Sub)
生态兼容QGC/Mission Planner原生支持需定制开发

2.4 工作环境

云平台为纯软件系统,部署于云服务器/数据中心环境:

  • 部署环境:中国境内机房(数据安全法/PIPL合规要求)
  • 运行环境:Linux服务器(Ubuntu/CentOS)
  • 网络环境:公网IP + 负载均衡,支持TCP长连接和HTTPS
  • 依赖基础设施:时序数据库、关系数据库、对象存储、监控告警系统

3. 功能需求

3.1 设备管理(CP-F-1xx)

编号需求描述优先级验证方式来源
CP-F-101云平台应支持设备注册:飞行器出厂时预分配唯一设备ID和激活码,用户通过App扫码或手动输入激活码完成设备绑定(对应API:POST /api/v1/devices/{id}/bindcodeP0接口测试+端到端流程ICD-07-I-040, SYS-C-002
CP-F-102云平台应支持设备身份认证:每台飞行器使用X.509设备证书进行mTLS认证,证书由产品CA签发;云平台维护设备证书的签发、吊销、续期流程P0安全测试ICD-07-I-040~042
CP-F-103云平台应维护设备在线/离线状态:基于MAVLink TCP Relay连接状态判定——TCP会话建立且收到HEARTBEAT为在线,30秒无HEARTBEAT或TCP断开为离线;状态变更应在5秒内反映至REST API查询结果P0接口测试+模拟断连ICD-07-R-004
CP-F-104云平台应跟踪每台设备的固件版本信息(飞控/电调/遥控器),设备上线时通过MAVLink AUTOPILOT_VERSION消息旁路采集版本号并更新至设备注册表P1接口测试CP-F-601
CP-F-105云平台应支持设备分组管理:按用户(归属)、按区域(省/市)、按型号分组,支持一台设备属于多个分组;分组信息用于OTA灰度发布和统计报表P1接口测试
CP-F-106设备绑定/解绑操作需通过物理确认(飞行器端按键确认或扫码确认),不可纯远程完成P0端到端流程测试ICD-07-I-052
CP-F-107云平台应提供设备列表查询API(GET /api/v1/devices),返回用户已绑定的所有设备及其在线状态、最新位置、固件版本等摘要信息P0接口测试ICD-07 §6.2
CP-F-108云平台应支持管理员查看所有设备的注册信息、在线状态、绑定关系,用于运维排障P1接口测试

3.2 用户管理(CP-F-2xx)

编号需求描述优先级验证方式来源
CP-F-201云平台应支持用户注册:手机号+密码注册,注册时通过短信验证码验证手机号有效性P0接口测试+短信通道ICD-07-I-045
CP-F-202云平台应支持用户登录:账号+密码+短信验证码双因素认证(对应API:POST /api/v1/auth/loginP0接口测试ICD-07-I-045
CP-F-203云平台应实现JWT Token管理:Access Token有效期≤2小时,Refresh Token有效期≤7天;支持Token刷新(POST /api/v1/auth/refresh)和主动注销P0安全测试ICD-07-I-046
CP-F-204云平台应支持基于角色的权限控制(RBAC),预置三个角色:管理员(Admin)、操作员(Operator)、只读观察者(Viewer)P0权限测试
CP-F-205角色权限定义:管理员拥有全部权限(设备管理/用户管理/OTA/系统配置);操作员可操控设备和下发指令;观察者仅可查看遥测数据和作业记录P0权限测试
CP-F-206云平台应维护用户-设备绑定关系:一个用户可绑定多台设备,一台设备可被多个用户绑定(需设备所有者授权)P0接口测试CP-F-101
CP-F-207多用户绑定同一设备时,应区分权限等级:设备所有者(Owner,首次绑定者)拥有完整控制权,被授权用户的权限由所有者指定(操作员/观察者)P1权限测试
CP-F-208连续5次登录失败后,账号应锁定30分钟,防止暴力破解P0安全测试

3.3 远程遥测服务(CP-F-3xx)

编号需求描述优先级验证方式来源
CP-F-301云平台应部署MAVLink TCP Relay服务:接收飞行器4G模块的TCP连接(mTLS认证),透传MAVLink v2二进制流至对应App的TCP会话,不解析不转换MAVLink消息内容P0端到端透传测试ICD-07-R-001~003
CP-F-302Relay服务应根据设备-用户绑定关系建立转发映射:飞行器TCP会话 ↔ App TCP会话,确保数据只转发给已绑定且已认证的App端P0安全测试ICD-07-R-005
CP-F-303Relay服务应实现旁路数据采集:从透传的MAVLink流中旁路抓取关键消息(HEARTBEAT、GLOBAL_POSITION_INT、SYS_STATUS、VFR_HUD、GPS_RAW_INT、BATTERY_STATUS、自定义消息50001/50003),写入时序数据库,不得影响主通道转发延迟P0性能测试+数据验证ICD-07 §3.2
CP-F-304旁路采集写入频率:精简包字段1Hz(位置、高度、速度、电量、飞行模式、喷洒状态),完整包字段0.2Hz(电池详情、电机状态、作业进度、避障距离)P0数据采样验证ICD-07 §3.2
CP-F-305遥测数据应存储于时序数据库,保留周期≥90天;超过90天的数据自动归档或降采样保留P1数据保留验证ICD-07-I-035
CP-F-306云平台应提供历史遥测查询API(GET /api/v1/devices/{id}/telemetry),支持时间范围筛选和下采样查询,返回JSON格式遥测数据P0接口测试ICD-07 §6.2
CP-F-307Relay服务应检测MAVLink流中的告警标志位(SYS_STATUS中的errors_count、HEARTBEAT中的system_status),检测到告警事件时触发推送通知至绑定用户的AppP1告警模拟测试
CP-F-308Relay服务应基于MAVLink HEARTBEAT消息保活:30秒无心跳判定飞行器断连,更新设备在线状态并通知相关AppP0模拟断连测试ICD-07-R-004
CP-F-309云平台应提供设备最新遥测快照API(GET /api/v1/devices/{id}/status),返回设备在线状态和最近一次遥测数据,用于App首页设备列表展示P0接口测试ICD-07 §6.2

3.4 远程指令服务(CP-F-4xx)

编号需求描述优先级验证方式来源
CP-F-401Relay服务应支持指令转发:App通过同一TCP连接发送MAVLink COMMAND_LONG/COMMAND_INT消息,Relay透传至飞行器的TCP会话P0指令端到端测试ICD-07 §4.2
CP-F-402TCP会话层安全验证:会话建立时进行Token+HMAC验证,验证通过后会话内的MAVLink指令免重复认证;Token有效期≤2小时,过期后需重新认证P0安全测试ICD-07-I-010~011
CP-F-403Relay服务应实现指令权限分级拦截:L1查询类(仅Token)由REST API直接返回,不走MAVLink通道;L2安全操作类(Token+HMAC)通过Relay透传;L3控制类(V1.0不支持)在Relay层直接拦截并返回"不支持"错误P0权限测试ICD-07 §4.1
CP-F-404V1.0支持的远程指令范围:一键返航(MAV_CMD_NAV_RETURN_TO_LAUNCH)、紧急停机(MAV_CMD_COMPONENT_ARM_DISARM disarm)、暂停作业(MAV_CMD_DO_PAUSE_CONTINUE pause)、恢复作业(MAV_CMD_DO_PAUSE_CONTINUE continue)、设置返航高度(MAV_CMD_DO_SET_HOME)P0指令功能测试ICD-07 §4.3
CP-F-405Relay服务应跟踪指令执行结果:监听飞行器返回的MAVLink COMMAND_ACK消息并透传至App;超过3秒未收到ACK时,Relay应在审计日志中标记"超时"P0超时模拟测试ICD-07-I-014
CP-F-406Relay服务应记录所有转发的COMMAND消息至指令审计日志,包含:发送者用户ID、设备ID、指令类型、指令参数、时间戳、执行结果(ACK/超时/拒绝);日志保留≥1年P0日志审查ICD-07-I-012, ICD-07-I-054
CP-F-407紧急停机指令应在Relay转发后≤500ms内到达飞行器端(Relay内部处理延迟,不含网络传输延迟)P0延迟测试ICD-07-I-013
CP-F-408当直连数据链与4G远程通道同时存在时,云平台不做优先级仲裁——由飞行器端飞控判定直连指令优先级更高(ICD-07-I-015),Relay仅负责透传P0文档审查+联调ICD-07-I-015
CP-F-409云平台应提供管理员接口,支持强制断开指定设备的TCP会话(POST /api/v1/relay/sessions/{id}/disconnect),用于紧急安全干预P1接口测试ICD-07 §6.2

3.5 作业数据管理(CP-F-5xx)

编号需求描述优先级验证方式来源
CP-F-501云平台应存储每次作业的完整记录,包括:作业日期、设备ID、操作员、地块名称/边界、作业面积、用药量、飞行轨迹(GPS点序列)、作业时长、起止时间P0数据完整性验证SYS-C-004, SYS-C-032
CP-F-502作业记录应由App在作业完成后通过REST API上传至云平台;Relay旁路采集的飞行轨迹数据作为补充和校验P0上传流程测试
CP-F-503云平台应提供作业记录查询API(GET /api/v1/devices/{id}/missions),支持按时间范围、地块、设备筛选,返回作业记录列表P0接口测试ICD-07 §6.2
CP-F-504云平台应提供作业统计报表功能:按日/周/月汇总作业面积、用药量、飞行时长、作业架次P1报表验证
CP-F-505云平台应支持作业数据导出,格式为CSV和JSON,包含完整作业记录和飞行轨迹P1导出文件验证SYS-C-032
CP-F-506云平台应支持地块数据云端同步:用户在App中标绘的地块信息(名称、边界坐标、面积)同步至云端,跨设备/跨App实例可用P1同步测试
CP-F-507作业记录保留周期≥1年,支持事后追溯和监管检查需求P0数据保留验证ICD-07-I-035, SYS-C-004

3.6 固件管理与OTA(CP-F-6xx)

编号需求描述优先级验证方式来源
CP-F-601云平台应分别管理飞控、电调、遥控器三类固件的版本信息,每个版本包含:版本号、发布日期、变更说明、适用机型、固件包SHA256校验和P1版本管理验证ICD-07-I-034
CP-F-602云平台应支持固件包上传与存储:固件包存储于对象存储,上传时自动计算SHA256校验和并记录P1上传流程测试
CP-F-603云平台应提供固件版本查询API(GET /api/v1/firmware/{model}/latest)和固件下载API(GET /api/v1/firmware/{model}/{version}),App通过这些接口检查更新和下载固件包P1接口测试ICD-07 §6.2
CP-F-604云平台应支持OTA灰度发布策略:按百分比(如先推送10%设备)或按设备分组(如先推送测试组)逐步发布新固件P1灰度策略验证ICD-07-I-034
CP-F-605云平台应支持固件版本回滚:当新版本出现严重问题时,管理员可将指定设备或设备组的推荐版本回退至上一稳定版本P1回滚流程测试ICD-07-I-034
CP-F-606云平台应跟踪每台设备的OTA升级状态:未开始/下载中/安装中/成功/失败,App可查询升级进度P1状态跟踪验证
CP-F-607固件包下载应支持断点续传,避免在网络不稳定时反复下载P2断点续传测试

3.7 GEO围栏服务(CP-F-7xx)

编号需求描述优先级验证方式来源
CP-F-701云平台应维护禁飞区数据库,包含机场净空区、军事管控区等禁飞/限飞区域的地理边界数据;数据来源对接方案 [TBD-需讨论:民航局UOM系统 or 人工维护]P0数据完整性验证SYS-F-023, ICD-07-I-033
CP-F-702云平台应提供围栏数据增量同步API(GET /api/v1/geo/zones),支持按区域查询(矩形边界/中心点+半径),App定期拉取更新并缓存至本地P0接口测试+增量验证ICD-07 §6.2, ICD-07-I-033
CP-F-703云平台应支持自定义围栏:用户可在App中创建自定义作业区域和禁飞区域,同步至云端存储,跨设备可用P1自定义围栏流程测试
CP-F-704GEO围栏数据更新时,云平台应记录更新版本号和时间戳,App可通过版本号判断本地缓存是否需要刷新P1版本比对验证

3.8 地图服务(CP-F-8xx)

编号需求描述优先级验证方式来源
CP-F-801云平台应托管离线地图切片(卫星图/地形图),存储于对象存储,供App在无网络环境下使用P1地图加载测试
CP-F-802云平台应提供地图下载API(GET /api/v1/maps相关接口),支持按区域(经纬度范围)和缩放级别下载地图切片包P1接口测试+下载验证ICD-07 §6.2
CP-F-803云平台应支持用户上传航测高清地图:App完成航测作业后,将重建的高清地图上传至云端存储(POST /api/v1/maps/upload),供后续作业规划使用P2上传下载测试ICD-07 §6.2
CP-F-804云平台应提供用户高清地图列表查询(GET /api/v1/maps/list),返回用户已上传的地图元数据(名称、区域、上传时间、文件大小)P2接口测试ICD-07 §6.2

3.9 机队管理(CP-F-9xx)— V1.5/V2规划,V1.0不实现

注意:本节需求为V1.5/V2版本规划,V1.0种子用户版不实现。列出以便架构预留。

编号需求描述优先级目标版本来源
CP-F-901云平台应提供多机实时状态看板:在Web管理界面或App中展示所有在线设备的实时位置、状态、电量等信息P2V1.5
CP-F-902云平台应支持机队作业调度:多台飞行器协同作业时,云端分配各机作业区域并下发航线P2V2.0
CP-F-903云平台应提供机队运维统计:按设备汇总飞行时长、作业面积、故障次数、维护提醒(基于飞行小时数)P2V1.5
CP-F-904多机看板实时更新应采用WebSocket推送(V1.5架构升级),避免轮询带来的延迟和服务器压力P2V1.5§2.3.1升级路径

3.10 部署架构(CP-F-0xx)

编号需求描述优先级验证方式来源
CP-F-001云平台核心组件包括:MAVLink TCP Relay服务、REST API后端服务、时序数据库、关系数据库、对象存储、监控告警系统P0架构审查ICD-07 §6.1
CP-F-002MAVLink TCP Relay为云平台核心组件,应轻量高性能,推荐使用Go或Rust实现,单实例支持≥1,000并发TCP连接P0压力测试
CP-F-003数据库选型:时序数据库推荐TDengine或InfluxDB(遥测数据);关系数据库推荐PostgreSQL(用户/设备/作业数据) [TBD-需讨论]P0技术评审
CP-F-004对象存储用于存储固件包、地图切片文件、航测图片;推荐阿里云OSS或MinIO [TBD-需讨论]P1技术评审
CP-F-005监控与告警:部署Prometheus + Grafana(或云厂商监控服务),监控Relay连接数、API响应时间、数据库性能、磁盘使用率等关键指标P1监控面板验证

部署方案选型 [TBD-需讨论]:

方案描述优势劣势适用场景
方案A:云服务器自建阿里云/腾讯云ECS部署全部组件(Relay+后端+TSDB+PostgreSQL+MinIO)成本可控、灵活配置运维工作量大种子用户阶段(V1.0)
方案B:混合方案(推荐)ECS部署Relay+后端,阿里云OSS存固件/地图,云TSDB存遥测,RDS存关系数据运维托管、高可用月度成本稍高V1.0~V1.5过渡
方案C:全托管方案Kubernetes集群 + 全托管数据库 + CDN + 消息队列弹性扩展、高可用成本高、架构复杂V2.0万台级别

4. 性能需求

编号性能指标我方目标值(V1.0)未来扩展目标优先级验证方式
CP-P-001同时在线设备数≥1,000台≥10,000台(V2.0)P0压力测试
CP-P-002MAVLink TCP Relay透传延迟≤50ms(Relay内部处理延迟,不含网络传输)P0延迟测试
CP-P-003遥测旁路采集延迟旁路采集写入TSDB≤500ms(从Relay接收到存储完成),不影响主通道转发P0性能测试
CP-P-004REST API响应时间(P95)≤300ms≤200ms(V2.0)P0接口性能测试
CP-P-005系统可用性≥99.5%≥99.9%(V2.0)P0运行监控统计
CP-P-006遥测数据存储容量支持100台设备×365天全量遥测数据(估算:100台 × 86,400条/天 × 365天 ≈ 31.5亿条)10,000台×365天P0容量规划验证
CP-P-007并发API请求≥500 QPS≥5,000 QPS(V2.0)P1压力测试
CP-P-008TCP Relay单设备消息吞吐量≥100 msg/sP1吞吐量测试
CP-P-009固件包下载速度≥1 MB/s(App端4G网络条件下)P1下载速度测试
CP-P-010历史遥测查询响应时间单设备24小时数据查询≤2秒P1查询性能测试

5. 安全需求

编号安全需求描述触发条件系统响应优先级验证方式
CP-S-001所有通信链路应使用TLS 1.2+加密传输:飞行器↔Relay使用mTLS(设备证书双向认证),App↔Relay使用TLS + Token认证,App↔REST API使用HTTPS所有通信场景拒绝明文连接P0安全扫描
CP-S-002设备证书管理:云平台应维护产品CA,支持设备证书的签发(出厂预置)、吊销(设备报废/丢失)、续期(证书到期前自动更新)流程设备全生命周期吊销的证书不可建立连接P0证书生命周期测试
CP-S-003敏感数据加密存储:用户密码使用bcrypt/argon2哈希存储;设备证书私钥不存储于云端;用户手机号等PII字段使用AES-256加密存储数据写入时加密后存储P0数据库审查
CP-S-004访问控制:所有API接口应实施RBAC权限检查,未授权请求返回403;管理员接口(relay管理、用户管理等)仅限Admin角色访问每次API请求拒绝越权访问P0权限矩阵测试
CP-S-005安全审计日志:记录所有登录/登出、设备绑定/解绑、远程指令下发、权限变更、管理员操作等安全相关事件,包含操作者、时间、IP、操作内容;日志保留≥1年安全相关操作写入审计日志P0日志审查
CP-S-006DDoS防护:云平台应部署DDoS防护措施(云厂商DDoS高防/WAF),TCP Relay端口应有连接速率限制(单IP≤10连接/秒)异常流量拦截恶意流量P1安全演练
CP-S-007所有远程指令必须经过时间戳验证(±30秒窗口)和nonce去重(5分钟窗口),防止重放攻击远程指令下发拒绝过期/重复指令P0重放攻击测试
CP-S-008连续3次设备认证失败后,Relay应锁定该设备远程指令通道30分钟,并通过遥测数据上报安全事件认证连续失败锁定+告警P0安全测试
CP-S-009云平台应每季度进行一次安全扫描,每年进行一次渗透测试,发现的高危/严重漏洞应在72小时内修复定期执行漏洞修复P1安全报告审查

6. 合规需求

编号法规/标准需求描述优先级认证周期预估
CP-C-001《数据安全法》云平台服务器必须部署于中国境内机房,飞行数据和用户数据不得出境存储或传输P0
CP-C-002《个人信息保护法》(PIPL)用户注册时应明示收集信息范围并获取同意;提供用户数据查询、导出、删除功能;个人信息处理应遵循最小必要原则P0
CP-C-003民航局监管要求飞行数据应完整留存,支持民航局可能的监管数据报送要求 [TBD-需讨论:具体报送接口和格式待民航局明确]P1TBD
CP-C-004日志审计合规安全审计日志应满足《网络安全法》关于网络日志留存不少于六个月的要求;云平台安全日志保留≥1年P0
CP-C-005等级保护云平台应通过等保二级评测(100台设备规模);未来规模扩大至万台级别时应升级至等保三级 [TBD-需讨论时间节点]P1等保二级:2-3个月

7. 接口需求

接口编号对端子系统接口类型接口描述详细定义文档
CP-I-001飞控系统(FC) — 经4G模块MAVLink TCP (mTLS)飞行器通过4G建立TCP连接至Relay,发送/接收MAVLink v2消息流ICD-07 §3
CP-I-002操控App(APP) — 实时通道MAVLink TCP (Token)App通过TCP连接至Relay,接收遥测数据流/发送远程指令ICD-07 §3~4
CP-I-003操控App(APP) — 业务通道REST API (HTTPS)App通过HTTPS调用云平台REST API,进行用户认证、设备管理、作业数据、OTA、GEO围栏、地图等业务操作ICD-07 §6.2
CP-I-004短信网关HTTPS API用户注册/登录时发送短信验证码;告警事件推送短信通知[TBD-供应商选型]
CP-I-005推送服务HTTPS API告警事件、OTA通知等推送至App端(APNs/华为Push/小米Push)[TBD-供应商选型]

REST API接口汇总

以下API路径与ICD-07 §6.2保持完全一致:

API路径方法说明认证方式对应PRD需求
/api/v1/auth/loginPOST用户登录,获取JWT Token账号密码CP-F-202
/api/v1/auth/refreshPOST刷新TokenRefresh TokenCP-F-203
/api/v1/devicesGET获取用户绑定的设备列表JWTCP-F-107
/api/v1/devices/{id}/bindcodePOST设备绑定(扫码/手动输入)JWTCP-F-101
/api/v1/devices/{id}/statusGET获取设备在线状态和最新遥测JWTCP-F-309
/api/v1/devices/{id}/telemetryGET查询历史遥测数据(时间范围查询)JWTCP-F-306
/api/v1/devices/{id}/missionsGET查询作业记录列表JWTCP-F-503
/api/v1/devices/{id}/cmdPOST下发L1查询类远程指令JWTCP-F-403
/api/v1/relay/statusGETRelay服务状态(在线设备数、连接数)JWT(管理员)CP-F-001
/api/v1/relay/sessionsGET查看当前活跃TCP会话列表JWT(管理员)CP-F-409
/api/v1/relay/sessions/{id}/disconnectPOST强制断开指定设备TCP会话JWT(管理员)CP-F-409
/api/v1/geo/zonesGET查询GEO围栏数据(按区域查询)JWTCP-F-702
/api/v1/firmware/{model}/latestGET查询最新固件版本JWTCP-F-603
/api/v1/firmware/{model}/{version}GET下载固件包JWTCP-F-603
/api/v1/maps/uploadPOST上传航测高清地图JWTCP-F-803
/api/v1/maps/listGET获取用户高清地图列表JWTCP-F-804

8. 约束与假设

8.1 设计约束

  • 技术约束

    • MAVLink TCP Relay必须保持轻量,不解析MAVLink消息内容(仅旁路采集),确保透传延迟≤50ms
    • V1.0版本REST API与Relay服务可部署在同一台服务器,V1.5+需分离部署
    • 时序数据库需支持高频写入(100台设备 × 每秒1~5条消息 = 100~500 writes/s)
  • 团队约束

    • 当前无专职后端团队,云平台V1.0由App团队兼任开发,架构须尽量简单
    • 优先选择成熟开源组件,减少自研工作量
  • 成本约束

    • V1.0(100台设备)云服务器月度成本应控制在 ≤5,000元/月 [TBD-需讨论]
    • 优先考虑按量付费,避免大额预付

8.2 假设条件

  • 飞行器4G模块由硬件团队完成选型和集成,云平台仅需对接标准TCP连接
  • App团队已具备MAVLink协议栈开发能力(直连链路已验证)
  • 种子用户阶段(100台)不需要高可用部署(单机/双机即可),V1.5+再考虑集群化
  • 物联网SIM卡流量资费方案由商务团队谈定,云平台按既定方案执行
  • 离线地图数据来源由产品团队确定(购买卫星图服务商授权 or 开源地图数据)

9. 验收标准

9.1 种子用户版(V1.0,10月交付)必须通过项

测试项通过标准对应需求编号
设备注册与绑定扫码/手动输入激活码完成绑定,绑定后设备出现在用户设备列表CP-F-101, CP-F-107
设备mTLS认证飞行器使用X.509证书成功建立TCP连接,无证书设备被拒绝CP-F-102, CP-S-001
用户登录认证账号+密码+短信验证码登录成功,获取JWT TokenCP-F-202, CP-F-203
MAVLink TCP透传飞行器MAVLink数据通过Relay正确透传至App,端到端延迟≤3秒(含网络)CP-F-301, CP-P-002
遥测旁路采集Relay旁路采集的遥测数据正确写入TSDB,采集不影响主通道延迟CP-F-303, CP-F-304
远程指令转发App发送返航/停机/暂停/恢复指令,飞行器正确接收并执行CP-F-401, CP-F-404
指令审计日志所有远程指令被完整记录(发送者、指令、时间、结果)CP-F-406
历史遥测查询通过API按时间范围查询设备历史遥测数据,数据完整且响应≤2秒CP-F-306, CP-P-010
作业记录存储App上传的作业记录正确存储于云端,可通过API查询CP-F-501, CP-F-503
GEO围栏同步App通过API获取GEO围栏数据,数据完整且增量更新正确CP-F-702
数据加密传输所有通信链路TLS 1.2+,抓包验证无明文传输CP-S-001
服务器境内部署验证所有服务器和数据存储位于中国境内CP-C-001

9.2 应当通过项

测试项通过标准对应需求编号
设备在线状态准确性设备断连后5秒内状态更新为离线,API查询结果正确CP-F-103
RBAC权限控制观察者角色无法下发指令,操作员无法访问管理员接口CP-F-204, CP-S-004
OTA固件查询App通过API查询到最新固件版本信息CP-F-603
作业统计报表按日/周/月查询作业统计数据,数据准确CP-F-504
系统可用性连续7天运行,可用性≥99.5%CP-P-005
并发连接测试模拟100台设备同时在线,Relay和API响应正常CP-P-001

9.3 可延后项

测试项计划版本对应需求编号
OTA灰度发布V1.0+CP-F-604
固件版本回滚V1.0+CP-F-605
离线地图下载V1.0+CP-F-801, CP-F-802
航测地图上传V1.5CP-F-803
机队管理看板V1.5CP-F-901
多机协同调度V2.0CP-F-902
等保二级评测V1.0后CP-C-005

10. 待决事项 (TBD)

编号事项描述责任人期望决定日期影响范围
TBD-CP-001云平台部署方案选型:方案A自建 vs 方案B混合 vs 方案C全托管(推荐V1.0采用方案B)后端团队+产品经理2025-05全部云平台开发
TBD-CP-002时序数据库选型:TDengine vs InfluxDB后端团队2025-05遥测数据存储
TBD-CP-003对象存储方案:阿里云OSS vs 腾讯云COS vs MinIO自建后端团队2025-05固件/地图存储
TBD-CP-004GEO禁飞区数据来源:对接民航局UOM系统 vs 人工维护 vs 第三方数据服务产品经理2025-06CP-F-701
TBD-CP-005离线地图数据来源和授权方案产品经理2025-06CP-F-801
TBD-CP-006短信验证码服务商选型(阿里云短信/腾讯云短信等)后端团队2025-05CP-F-201, CP-F-202
TBD-CP-007MAVLink TCP Relay实现方案:Go自研 vs Rust自研 vs 基于开源组件二次开发后端团队2025-05CP-F-002, CP-F-301
TBD-CP-008V1.0云服务器预算上限确认产品经理+财务2025-05§8.1成本约束
TBD-CP-009民航局飞行数据报送的具体接口和格式要求产品经理+法务2025-06CP-C-003
TBD-CP-010等保二级评测启动时间节点安全团队+产品经理2025-07CP-C-005

附录

附录A:需求追溯矩阵

子系统需求编号系统级需求来源ICD来源验证方式验证状态
CP-F-101~108SYS-C-002ICD-07-I-040~042, ICD-07-I-052接口测试+端到端流程未验证
CP-F-201~208ICD-07-I-045~047接口测试+安全测试未验证
CP-F-301~309SYS-P-050ICD-07-R-001~005, ICD-07-I-001~005端到端透传+性能测试未验证
CP-F-401~409SYS-S-001ICD-07-I-010~016, ICD-07 §4指令端到端+安全测试未验证
CP-F-501~507SYS-C-004, SYS-C-032ICD-07-I-035数据完整性验证未验证
CP-F-601~607ICD-07-I-034版本管理+OTA流程未验证
CP-F-701~704SYS-F-023ICD-07-I-033围栏数据验证未验证
CP-F-801~804ICD-07 §6.2地图加载+下载测试未验证
CP-P-001~010SYS-P-050ICD-07-P-001~006压力测试+性能测试未验证
CP-S-001~009SYS-S-001ICD-07-I-040~054安全测试+渗透测试未验证
CP-C-001~005SYS-C-002, SYS-C-004ICD-07-I-030合规审查未验证

文档结束

菲航户外事业部产品知识库