基于微服务的安防场所人体安检信息系统设计
2023-07-31程大卫
程大卫
摘要:文章基于Spring Cloud微服务的软件架构模式进行研究,场景适用于安防场所中人体安检的应用,实现安防场所信息集中管理和人体安检流程实时监控等目的。首先,采用微服务的软件架构,以Spring Cloud为基础组件进行开发,微服务访问权限管理采用OAuth 2.0协议,通过Eureka模块对系统中加入的服务进行注册管理,注册的服务均采用WebAPI接口对外提供接口;其次,采用Redis作为数据缓存,实现系统的高并发;此外,系统引入人脸识别的边缘计算盒子提供生物信息验证,为人体安检方案在智慧化安防方面提供相关理论支撑、技术验证。
关键词:人体安检;微服务;分布式;Spring Cloud
中图分类号:TP311.52 文献标识码:A 文章编号:1674-0688(2023)04-0046-04
0 引言
随着人体安检仪在安防场所的应用场景逐渐复杂化,市场对人体安检仪进行系统集成的需求也越来越高。为保证安防场所访客身份信息的合法性,用户对指纹认证、掌静脉认证、虹膜认证及人脸认证等生物信息识别验证的需求也与日俱增。从市场调研及安检相关项目招标投标的技术需求可知,单个安防场所中需要多台人体安检设备及多个安防场所协同安检的情况经常存在,因此对安检信息进行集中管理显得尤为必要,而安检信息的集中管理对安防场所人体安检系统的应用灵活性和数据业务的处理与计算能力提出更高的要求,因此需要开发一套能满足客户定制化需求、基于生物信息验证的高效、稳定的人体安检信息管理系统。
国内外生物识别技术已经相当成熟,特别是人脸识别技术在安防场所进出记录管理上的集成应用;国内一些安防厂商虽然在视频分析技术中加入出入口人脸识别技术,但是缺少对安防场所系统业务的集成和安检设备的集成。鉴于客户对安检数据集成管理及提升工作效率有很大需求,本研究采用微服务架构模式作为解决方案进行人体安检信息管理系统的设计,该模式的灵活架构可应对复杂多变的用户需求,将复杂系统根据应用需求拆分成多个小服务,采用分布式的方式,實现各个分系统的协同运行,为系统提供弹性框架以应对用户方的业务需求、性能需求和安全需求。
1 系统支撑理论与技术
1.1 相关理论
1.1.1 负载均衡
负载均衡的意义是有效地将传入的网络流量分布到一组后端服务器上,也称为服务器池。为节约成本并在有效的规模下满足这些高容量的需求,最佳的实现途径通常是添加更多的服务器[1]。目前,负载均衡需要通过应用软件实现,一般采用Nginx作为网站的负载均衡器,用以实现http网站的数据分流任务。本系统采用Nginx作为前端网页的负载均衡器,采用Ribbon作为分布式服务调用的负载均衡。
1.1.2 分布式缓存
高并发的应用环境中,大量的数据库读写工作会给数据库的存取造成一定的压力。由于单一机器的承受能力和内存有一定的限度,因此提升系统性能一般采用分布式缓存实现[1]。考虑本系统的应用场景,设计拟采用Redis缓存系统解决Session(会话控制)共享在分布式环境中的应用。
1.1.3 分布式服务治理
目前,分布式服务框架的使用是分布式服务治理的一个重要选择。分布式服务框架在有效管理服务的同时,也监控服务质量[1]。本系统模式采用Spring Cloud;服务发现框架采用Eureka;系统熔断和降级采用Hystrix延迟和容错库,以提高整个系统的弹性。分布式框架的优势表现为能大幅提高并发访问量、大幅度节省设备成本(仅从架构方面进行优化,因此不需要配置大量的服务器)、将服务层与表现层的耦合性降到最低[1],从而实现解耦目的。
本研究采用的这些理论所形成的技术在最大限度地节约硬件的基础上,提高了系统的稳定性。
1.2 关键技术
1.2.1 Spring Cloud微服务框架
微服务架构是一种由多个小服务组成的应用开发模式,每个服务可以独立运行,同时采用轻量级交互[2]。微服务架构的目的是实现业务系统彻底组件化和服务化,从而达到一个组件就是一个产品的目标,并且每个组件均可独立对外提供服务,组件对外发布的方式采用HTTP Rest API(应用程序编程接口)方式。
Spring Cloud是基于Spring Boot的微服务框架。Spring Cloud为开发者提供微服务开发所需要的配置管理、服务发现、智能路由、微代理、全局锁、分布式会话和集群状态管理等组件[3]。Spring Cloud Gateway是Spring Cloud的核心组件,作为Spring Cloud生态系统中的网关,它提供统一的路由方式,并且基于Filter链的方式提供网关的基本功能,例如安全、监控/埋点、限流等。微服务的核心由Spring Cloud Netflix与各种Netflix OSS组件集成。 Spring Cloud架构模式下的服务注册中心采用Netflix Eureka云端服务发现组件,用于发现服务,达到云端中间层服务发现和故障转移的目的。Spring Cloud架构模式下的熔断器采用Netflix Hystrix,以提高延迟能力和对故障的容错能力。
1.2.2 Nginx
Nginx是一个HTTP服务器和反向代理服务器,它是一个开源框架,能够很好地解决高连接并发问题,能支持高达5万个并发连接数的响应,并且内存占用和CPU资源消耗也很低。当服务器和带宽受到限制时,能极大地提高Web系统的运行效率,增加服务器的吞吐量,加强网络数据的处理能力,进而降低因数据拥堵而造成的连接延迟或等待现象[4]。
1.2.3 Redis
Redis 作为一个开源的内存数据库项目,以其持久性和高性能的优势,实现一种分布式内存键值存储模式[5]。本系统使用Redis缓存系统,实现存储访客流程状态、实时记录状态转换、异常流程报警、缓存被检人安检流程信息等功能,达到快速获取被检人信息、优化安检流程的目的。
2 系统设计
2.1 应用场景
本系统主要应用于安防场所人体安检流程、安检信息的管理。系统采用微服务和分布式架构,融入人脸识别技术,对安防场所出入人员的人脸信息及基本信息进行集中管理。预约注册登记、进入安防场所的入口验证、安检设备检查前,都需要进行人脸识别、身份信息认证,系统的安检流程如下:出入安防场所的被检人员需要提前预约访问时间并提供对应的人脸等个人数据信息;系统记录被检人员进入安防区域的起始时间,设置最长停留时间;如果发生身份认证失败、被检人在安检场所内出现安检异常或超出限定停留时间等情况,安防场所管理平台将实时显示该报警信息直至人工进行干预解决。系统应具备如下功能:协同完成安防区域内到访人员、工作人员的检查和管理工作;实现安防场所内所有人员的全程跟踪,并且绑定被检人员的人体安检结果信息(包括是否携带、夹藏违禁品的安检图像和手检结论等);将所有单个通道、单个安防场所的安检结果数据汇总、存储到中心服务器,并提供历史数据查询、异常安检结果数据统计等服务,为整个安防场所或整个业务系统提供更多的决策支持。具体安检场景和流程如图1和图2所示。
2.2 软件系统架构
2.2.1 安防场所管理系统
对权限、用户、安防场所出入口、摄像机、历史记录、流程报警、图像进行管理、提供统计分析功能,并提供基于RESTful的WebAPI、WebSocket接口供相關网页端调用。
2.2.2 底层人脸识别接口
对接边缘计算盒子人脸识别模块,对相关接口进行封装,对外提供人脸比对相关接口。
2.2.3 摄像机控制服务
提供摄像机控制接口,如启动视频流、开启视频流抓拍、停止视频流抓拍。
2.2.4 数据传输服务
实现访客预约数据的流转,收集访客探访流程产生的业务数据。
2.2.5 人脸验证服务
通过调用边缘计算盒子的人脸比对服务和摄像机控制服务,向入口验证客户端和安检设备端软件提供人脸验证的接口。
2.2.6 安防场所综合管理平台
收集各个安防场所的访客来访数据,汇总显示总体来访情况和统计分析。管理系统架构如图3所示。
3 系统实现
3.1 安防场所管理系统功能
3.1.1 权限控制
系统使用OAuth 2.0协议进行微服务访问权限管理,同时采用客户端凭证和令牌认证2种认证方式,保证权限认证的安全性。用户管理功能可以为不同用户角色分配不同的用户权限,通过角色的区别在后端控制请求访问权限和在前端控制功能页面的跳转权限。
3.1.2 用户管理
对系统用户的登录、登出、查询提供支持,并提供用户新增、修改及修改密码的功能。
3.1.3 安防场所管理
在数据库设计中增设安防场所ID字段,在安防场所的服务器中以配置文件的形式配置当前安防场所ID,实现安防场所数据的互联共享。
3.1.4 出入口管理
出入口管理为安防场所的出口和入口节点的管理,包括新增出入口信息,修改出入口信息,以及删除出入口信息等管理功能。
3.1.5 摄像机管理
作为访客通道内的节点,摄像机需要纳入系统的管理,摄像机管理包括对摄像机进行新增、修改及删除,用户可以灵活绑定摄像机与出入口和设备之间的连接关系。
3.1.6 安检设备管理
作为访客通道内的节点,安检设备需要纳入系统的管理,主要包括对设备信息的新增、修改及删除。该功能可以实现按键区域内设备数量及连接关系的灵活配置。
3.1.7 进出记录
以时间为检索条件,提供查询访客、员工出入安防场所的历史记录信息,其中包含进入安防场所的认证信息、安检图像信息、离开安防场所的认证信息,并提供访客预约信息查询的功能。
3.1.8 统计分析
该功能主要是对报警信息、预约信息、员工出勤率、逗留时间、访问次数进行统计分析,可以对报警信息较多的访客进行统计、预警。
3.1.9 实时信息统计
可视化实时展示当天访客预约总数、进入安防场所内的访客数量、离开安防场所的访客数量,使安防场所管理人员随时掌握实时访客客流情况。
3.1.10 报警管理
当进入安防场所的人员流程出现异常时,系统发出报警信息至实时信息界面,并记录入系统,然后将报警信息以邮件等形式发送通知安防场所管理员。
3.1.11 数据上传服务
用于将多个安防场所数据互联共享,主要将单个安防场所的预约记录、访客进出历史记录、安防场所工作人员进出历史记录、访客安检信息、员工安检信息等数据上传至中心服务器。
3.2 人脸识别接口服务
用于将预约照片存入人脸库,能根据不同的摄像机类型切换人脸库,定时从人脸库解绑当天访客的人脸图片;还能将视频流中实时抓拍到的照片与系统人脸库图片进行比对验证,将比对结果推送至人脸验证服务端。
3.3 摄像机控制服务启动抓拍
该服务提供摄像机的抓拍、停拍功能(包括出入口和人体安检仪端的摄像机)。
3.4 数据传输服务
用于系统内部的数据传输,包括安防场所预约记录数据的上传和人体安检数据上传中心服务器。
3.5 人脸验证服务
该服务通过对边缘计算盒子的接口封装,为出入口客户端和人体安检设备客户端提供人脸验证的应用功能接口,包括对摄像机的抓拍、停拍的控制;提供证件类型查询、人脸比对等功能,并将查询和比对的结果提交至服务器,同时提供配置人脸比对超时提醒功能,当出现人脸比对超时等异常情况时,可以通过系统提醒工作人员进行人工核验身份。
4 结语
本系统设计的创新之处在于:运用分布式架构和负载均衡技术,在控制成本的同时提升系统的高可用和高并发,有效避免因流量激增引起的数据压力;使用Spring Cloud 微服务架构设计模式,通过小而可靠的功能模块构建整体方案,每个服务都可以独立于其他服务进行部署;在OAuth 2.0授权模式下,采用客户端凭证和令牌认证方式,保证权限认证的安全性;使用Redis缓存系统,快速获取实时访客流程状态转换、异常流程报警等数据信息。本系统可以实现安防场所的互联互通,共享多个安防场所管理平台的数据,促进智慧化安防场所的发展。
5 参考文献
[1]周雪萍,乌嵘,王俊丽,等.基于分布式数据平台的数据采集系统—以新疆油田公司采气一厂为例[J].信息系统工程,2020(9):26-27.
[2]程芳.基于三层框架的经济责任审计管理系统研究[J].自动化技术与应用,2020,39(11):147-150.
[3]牟林钢.一种微服务架构下的负载均衡策略优化方法[J].电子设计工程,2020,28(7):87-90,94.
[4]田纯青.利用Nginx实现基于URI的Web负载分配[J].现代计算机(专业版),2009(7):187-191.
[5]詹利群,程海林,任晓炜.Redis缓存技术在自动气象站资料调用中的优化应用[J].计算机系统应用,2019,28(5):77-83.