开发文档
Quantitative Analysis for Development
忆志-中心服务平台
为避免重复编写文档, 详情请参阅原有项目文档, 地址:
- https://es-doc.netbodycamera.com/es-center-server-doc/#/manual/dev/webrtc/
- https://es-doc.netbodycamera.com/es-center-server-main-service-doc/#/requirement/
- https://es-doc.netbodycamera.com/es-center-server-device-service-doc/#/api/server/center/manage/device/get-webrtc-config/
统一管理数证管理服务器与采集设备, 提供设备管理、通信交互、数据采集及存储等核心功能。以下是各独立服务的详细说明:
-
- 第三版 UI:包含 276 个功能界面、76 个封装的 UI 组件、100+ 公共函数封装、1164 个 HTTP 接口调用封装以及 50+ MQTT 事件处理封装。
- 第二版 UI:包含 234 个功能界面、54 个封装的 UI 组件、100+ 公共函数封装、931 个 HTTP 接口调用封装以及 40+ MQTT 事件处理封装。
- 第一版 UI:包含 196 个功能界面、32 个封装的 UI 组件、100+ 公共函数封装和 873 个 HTTP 接口调用封装。
- 已删除代码未计入统计范围, 例如:
- 曾基于穿透科技提供的隧道服务开发直播与回放功能, 但由于资源未及时释放的问题, 该方案已被弃用。
- 曾基于穿透科技 SDK 封装的隧道服务实现直播与回放功能, 但因效果不理想且需要在客户端安装程序, 该方案也被弃用。后续改为基于 WebRTC 实现, 无需安装客户端程序, 显著提升了用户体验。
- 针对 WebRTC P2P 及 SFU 技术进行了深入研究, 开发了模拟数据采集设备的推流端界面, 用于与拉流端联调测试, 并对全流程进行了反复优化与调整。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- 提供 1038 个 HTTP 接口。
- 包含 47 个消息队列业务处理功能。
- 包含 2 个定时任务业务处理功能。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- 提供 37 个 HTTP 接口。
- 支持 78 个消息队列业务处理功能。
- 提供 36 个 Socket 接口。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- 集团类 App 接口已废弃。为减少内存占用, 未来的消费类 App 接口将整合至“主业务接口服务”中实现。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- 提供以下文档:
- 数证管理服务器对接文档
- 设备对接文档
- 采集盒对接文档
- 消费类 App 接口文档
- 集团类 App 接口文档(已弃用, 曾用于与绍工对接时使用)。
- 提供以下文档:
-
- 主线版本安装程序
- 主线版本增量升级程序
- Coturn 服务独立安装程序
- Janus 服务独立安装程序
- 越南客户定制版安装程序
- 越南客户定制版增量升级程序
依赖的中间件开发:
-
- 研究官方文档, 并制作对应的 Docker 镜像。
- 集成 MQTT 协议, 支持通过配置文件 MQTT Broker。
-
- 研究官方文档, 实现安装后自动配置 Redis 验证功能, 包括 MQTT 连接的用户名、密码及授权规则的接入。
- 利用 EMQX 的系统通知功能, 实现 MQTT 客户端在线与离线状态的推送。该功能需通过修改配置文件启用, 且已在安装过程中实现自动写入相关配置。
-
其他中间件调整: Apache/ActiveMQ-Artemis, Coturn, Nginx, PostgreSQL, Redis 等根据项目需求进行了优化调整, 例如:
- PostgreSQL 使用两个实例, 并通过 Pgpool 实现负载均衡。
- Nginx 配合 Certbot 使用, 实现 SSL 证书的自动申请与更新。
- 确保 Coturn 与 Janus 的端口开放范围不重叠, 以避免端口冲突。
其他:
忆志-隧道服务
基于穿透科技 SDK 封装的 Windows P2P 服务。由于穿透科技提供的现成隧道服务存在资源未能及时释放的问题, 因此需要基于其 SDK 进行二次开发, 并定制安装程序以满足需求。
-
- 提供 6 个 HTTP 接口。
- 实现 1 个消息队列业务处理功能。
- 实现 1 个定时任务业务逻辑。
- 提供 1 个 WebSocket 接口。
- 实现 2 个 Web 界面。
-
- 提供用于在 Windows 系统上部署隧道服务的安装程序。
忆志-WEBRTC
基于 WebRTC 数据通道技术实现的 P2P 文件传输及 P2P HTTP 接口调用, 参考了聊天室的多客户端接入并发实现。
- 忆志-WEBRTC 回放支撑服务
- 实现 P2P 文件传输功能。
- 实现 P2P HTTP 接口代理调用。
- 集成 MQTT 协议, 实现通过 toml 文件配置或环境变量配置连接 MQTT Broker。
- 支持根据中心服务器定制的 MQTT Client ID 规则连接至 MQTT Broker。中心服务平台能够监听对应的 MQTT Client ID 的上线与下线状态, 从而实时判断数证管理服务器的在线情况。
- 实现从中心服务器获取对应数证管理服务器编号的 STUN、TURN 服务器地址及帐号密码的功能。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
忆志-kh2248
为避免重复编写文档, 详情请参阅原有项目文档, 地址: https://es-doc.netbodycamera.com/es-bodycam-web-ui-1-doc/#/manual/dev/download-file/
- 忆志-kh2248-数据采集设备 WEB 前端定制版
- 包含 50 个功能界面、9 个封装的 UI 组件、10+ 公共函数封装以及 55 个 HTTP 接口调用封装。
- 专为 KH2248 定制开发, 满足特定场景需求, 并具备良好的扩展性。
忆志-数据采集设备 WEB 前端
为避免重复编写文档, 详情请参阅原有项目文档, 地址: https://es-doc.netbodycamera.com/es-embedded-web-doc/#/project/es-embedded-web
本项目为公司通用的主线程序, 目前已停止更新。后续将根据各定制版本的需求反馈, 逐步升级优化以支持更多功能。
- 忆志-数据采集设备 WEB 前端
- 包含 30+ 个功能界面、7 个封装的 UI 组件、10+ 公共函数封装以及 30+ 个 HTTP 接口调用封装。
- 提供基础功能框架, 便于快速定制开发。
忆志-数据采集设备 USB 信令 SDK For Linux
为避免重复编写文档, 详情请参阅原有项目文档, 地址: https://es-doc.netbodycamera.com/es-device-usb-tools-doc/#/manual/dev/c++/
忆志-数据采集设备 USB 信令 SDK 的 Linux 实现, 基于 C 语言头文件实现, 专注于 USB 信令采集功能的跨平台支持。
- 忆志-数据采集设备 USB 信令 SDK For Linux
- 目前已实现 15 个符合公安部标准的接口函数, 剩余 90 多个内部函数待开发。
- 后续计划采用 Rust 重构现有代码, 以提高代码质量与运行效率。
- 剩余的 90 多个内部函数也将在 Rust 重构完成后, 使用 Rust 进行开发。
忆志-定位
为避免重复编写文档, 详情请参阅原有项目文档, 地址: https://es-doc.netbodycamera.com/es-location-services-doc/#/
- 忆志-定位代理服务
- 提供 5 个 HTTP 接口。
- 包含 2 个定时任务业务处理功能。
- 对接了 One-Net 和 TX 第三方定位服务平台。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
忆志-对象存储平台
为避免重复编写文档, 详情请参阅原有项目文档, 地址:
-
https://es-doc.netbodycamera.com/es-oss-doc/#/design/framework/
-
https://es-doc.netbodycamera.com/es-oss-doc/#/manual/operation-and-maintenance-operation/k3s-init/
-
- 基于 Flink 1.16.0 和 Flink CDC 2.3 开发的 Flink Job 应用程序, 支持通过 Flink SQL 实现数据处理, 并可部署至 Flink 集群。
- 实现从数证管理服务器数据库中读取数据, 并将其同步至忆志-对象存储数据库中, 确保数据的一致性和实时性。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- consumer: 服务消费者模块, 负责调用其他服务。
- provider: 服务提供者模块, 提供核心业务逻辑。
- provider-common: 提取自服务提供者的公共代码模块, 可被其他工程复用(如定时任务工程)。
- common: 生产端与消费端共享的公共代码模块(包括 DTO、Entity、Service、Util 等), 支持跨工程复用。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- common: 公共代码模块, 包含网络通信封装及各类工具类。
- page-index-react: 业务模块, 涵盖监控、传输任务等功能。
- page-login-react: 登录模块, 提供通用的登录功能。
- page-system-react: 系统管理模块, 支持多国语言配置、日志管理、权限控制等。
- 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
-
- 实现 K3s 环境的离线安装。
- 实现 K3s 环境下 MinIO 集群的部署, 支持离线。
- 实现 K3s 环境下部署以下服务的部署, 支持离线:
- 忆志-对象存储-对接-数证管理服务器
- 忆志-对象存储-可视化管理-后端
- 忆志-对象存储-可视化管理-前端
忆志-数证管理平台
为避免重复编写文档, 详情请参阅原有项目文档, 地址: https://es-doc.netbodycamera.com/bmc-doc#/project/
- bmc-admin
- 修改 BMC-Admin:新增 3 个以上 HTTP 接口, 用于响应对象存储虚拟磁盘的挂载及变更操作。
- 集成 mysql 驱动, 实现对象存储虚拟磁盘挂载及变更的持久化存储。