门禁业务最佳实践
本文档基于 DejaOS 标品门禁应用的设计经验,详细阐述构建高效、稳定的门禁系统所需的关键数据模型、业务流程及架构模式。
1. 核心数据模型
一个典型的门禁系统围绕以下四个核心实体构建:
1.1 凭证 (Credentials)
用于验证身份的物理或数字媒介。DejaOS 支持多种凭证类型,每种类型在数据库中存储的格式不同:
| 凭证类型 | 存储内容 | 数据量级 (预估) | 备注 |
|---|---|---|---|
| 人脸 | 特征值 (Feature Vector) | ~1024 Bytes | 不存储原始照片,仅存储提取后的数学特征 |
| 指纹 | 特征值 (Feature Template) | ~1024 Bytes | 同样仅存储特征模板 |
| 二维码 | 字符串内容 | ~32 - 64 Bytes | 动态或静态二维码的内容 |
| PIN 码 | 哈希值或明文 | ~6 Bytes | 通常为 4-6 位数字密码 |
| NFC 卡 | 卡号 (UID) | ~4 - 32 Bytes | IC/ID 卡的序列号 |
| 蓝牙 | 蓝牙数据包 | ~32 Bytes | 通常用于手机蓝牙开门 |
注意:并非所有硬件设备都支持上述所有凭证,需根据具体选型确定。
1.2 人员 (Personnel/Subject)
门禁通行的主体。
- 核心字段:
PersonID(唯一标识)。 - 扩展字段:姓名、部门、工号、有效期等。
1.3 权限 (Permission)
定义“谁”在“什么时间”可以进入“哪里”的规则。常见的权限策略包括:
- 常开模式 (Always):无时间限制,永久有效。
- 时段模式 (Time Slot):仅在特定起始日期和结束日期之间有效。
- 每日/周循环模式 (Daily/Weekly):例如仅工作日(周一至周五)的 9:00 - 18:00 有效。
1.4 通行记录 (Access Log)
每次尝试通行的完整审计记录。无论通行成功与否,都应记录:
- 时间戳
- 凭证类型
- 凭证值
- 通行结果 (成功/失败及原因)
- 人员 ID (仅成功时)
- 现场抓拍 (人脸通行时通常附带现场截图)
2. 注册流程 (Enrollment)
注册是将“人员”、“凭证”和“权限”三者关联并写入设备数据库的过程。主要有三种实现模式:
2.1 离线注册 (Device Side)
直接在设备端完成,无需网络。
- 适用场景:单机使用、临时访客、无网络环境。
- 操作方式:
- UI 录入:通过设备屏幕直接输入人员 ID。
- 硬件采集:设备作为采集器读取 NFC 卡号、录入指纹或抓拍人脸。
- 权限限制:通常仅支持默认权限(如“永久有效”)。
2.2 局域网 Web 管理 (Local Web)
利用设备内置的 Web Server 进行管理。
- 适用场景:小规模部署、局域网环境。
- 操作方式:设备连接网络后,管理员通过 PC 浏览器访问设备 IP,在 Web 界面上进行可视化的人员和权限管理。
2.3 云端下发 (Cloud/MQTT) - 推荐
设备作为客户端连接后台管理系统。
- 适用场景:规模化部署、集中管理。
- 实现建议:
- 协议:推荐使用 MQTT 长连接,相比 HTTP 轮询更实时、更高效。
- 流程:管理员在后台系统中录入数据,后台通过 MQTT 将 update 指令推送到指定设备,设备接收并写入本地数据库。
+------------+ +------------+ +----------+
| 后台管理 | | MQTT Broker| | 设备应用 |
+------------+ +------------+ +----------+
| | |
| 1. 管理员录入人员/权限 | |
|----------------------------->| |
| | |
| 2. Publish Update 指令 | |
|----------------------------->| |
| | 3. Push 消息 |
| |------------------------------>|
| | |
| | 4. 解析消息并写入 DB |
| | |
| | 5. 返回操作结果 (Ack)|
|<-----------------------------+-------------------------------|
| | |
数据一致性警告
强烈建议不要混合使用“离线注册”和“云端下发”模式。 离线注册的数据直接产生于设备,而云端模式的数据源头在服务器。混合使用极易导致数据冲突(如 ID 重复)和同步困难。一旦选择了云端集中管理,应禁用设备的本地注册功能。
3. 通行校验流程 (Verification)
设备通过 Worker 线程并发监听多种输入源(摄像头、指纹仪、读卡器),一旦捕获凭证,即触发校验流程。