Skip to Content
工作文档开发文档

开发文档

Quantitative Analysis for Development

忆志-中心服务平台

为避免重复编写文档, 详情请参阅原有项目文档, 地址:

统一管理数证管理服务器与采集设备, 提供设备管理、通信交互、数据采集及存储等核心功能。以下是各独立服务的详细说明:

  • Web 前端

    • 第三版 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 接口已废弃。为减少内存占用, 未来的消费类 App 接口将整合至“主业务接口服务”中实现。
    • 为简化部署与运维流程, 已将程序打包为 Docker 镜像, 便于快速部署。
  • 文档服务

    • 提供以下文档:
      • 数证管理服务器对接文档
      • 设备对接文档
      • 采集盒对接文档
      • 消费类 App 接口文档
      • 集团类 App 接口文档(已弃用, 曾用于与绍工对接时使用)。
  • 安装程序及升级程序

    • 主线版本安装程序
    • 主线版本增量升级程序
    • Coturn 服务独立安装程序
    • Janus 服务独立安装程序
    • 越南客户定制版安装程序
    • 越南客户定制版增量升级程序

依赖的中间件开发:

  • JANUS Gateway

    • 研究官方文档, 并制作对应的 Docker 镜像。
    • 集成 MQTT 协议, 支持通过配置文件 MQTT Broker。
  • EMQX

    • 研究官方文档, 实现安装后自动配置 Redis 验证功能, 包括 MQTT 连接的用户名、密码及授权规则的接入。
    • 利用 EMQX 的系统通知功能, 实现 MQTT 客户端在线与离线状态的推送。该功能需通过修改配置文件启用, 且已在安装过程中实现自动写入相关配置。
  • 其他中间件调整: Apache/ActiveMQ-Artemis, Coturn, Nginx, PostgreSQL, Redis 等根据项目需求进行了优化调整, 例如:

    • PostgreSQL 使用两个实例, 并通过 Pgpool 实现负载均衡。
    • Nginx 配合 Certbot 使用, 实现 SSL 证书的自动申请与更新。
    • 确保 Coturn 与 Janus 的端口开放范围不重叠, 以避免端口冲突。

其他:

忆志-隧道服务

基于穿透科技 SDK 封装的 Windows P2P 服务。由于穿透科技提供的现成隧道服务存在资源未能及时释放的问题, 因此需要基于其 SDK 进行二次开发, 并定制安装程序以满足需求。

  • 忆志-隧道 WEB 服务

    • 提供 6 个 HTTP 接口。
    • 实现 1 个消息队列业务处理功能。
    • 实现 1 个定时任务业务逻辑。
    • 提供 1 个 WebSocket 接口。
    • 实现 2 个 Web 界面。
  • 忆志-隧道 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/ 

忆志-数据采集设备 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 驱动, 实现对象存储虚拟磁盘挂载及变更的持久化存储。
Last updated on