校园安全防疫系统设计与实现

2021-03-10 09:20马欢
电子技术与软件工程 2021年20期
关键词:消息分布式架构

马欢

(新疆财经大学信息管理学院 新疆维吾尔自治区乌鲁木齐市 830012)

校园作为当前重要的人群聚集地,防疫压力更是巨大,各个学校除了要求配搭口罩及各种卫生宣传外,定期测温更是必备及有效的防控手段,但目前测温多还采用人工检测、手工记录方式,方式的陈旧导致的数据疏漏、人为漏检、温度不准问题时有发生,且检测效率低下,体验较差,因此亟需信息化手段辅助。

本文为有效做好新形势下的学校疫情防控工作,提出一种适用于校园人群聚集的疫情防控系统建设方案,在学校食堂、图书馆、教学楼入口部署智能感知终端,实时采集人员信息及体温数据,通过有线/无线网络实现数据及时汇聚至中心端,然后采用分布式计算架构处理、分析数据,对体温异常给出提醒和预警,同时提供完备的通行人员记录,有效避免防控疏漏,降低疫情传播风险。

1 相关技术

智能感知终端是一种集人脸识别、读卡器及远红外测温模块于一体的智能设备,能够快速准确的完成人员信息及体温数据的采集。

RESTful 是一种软件架构风格、设计风格,提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件,可使设计更简洁、更有层次,更易于实现缓存等机制[1]。

Angular 框架,它是一款具备MVC、模块化、自动化双向数据绑定、依赖注入的前端框架,其提供一种无DOM 操作的编程方式,在前端页面中引入了传统在后台开发中使用的一些思想,增强代码的结构和可维护性[2]。

Springboot 框架,它是 Spring 框架的扩展,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,是现行Java 后端开发的主流框架[3]。

Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的所有动作流数据,主要用于处理活跃的流式数据,特别适合高速海量的物联网应用场景[4]。

Mongodb 是一个基于分布式文件存储的数据库,使用集合和文档来描述和存储数据,因为消除了表结构概念,不需要事前对表进行任何初始化操作。在架构的层面上带来了可扩展的能力,并且具有非常高的读写性能,尤其在大数据量下[5]。

综上,系统基于传统J2EE 体系架构,采用Springboot 和Angular 的前后端分离模式、RESTful 风格的接口定义、Kafka 的分布式消息队列及Mongodb 的分布式存储技术融合构建,在场景适用性及可扩展性方面极具优势。

2 系统架构

2.1 总体架构

校园安全防疫系统依托校园网络及软硬件资源,采用分布式方式部署,系统遵循物联网三层体系架构构建,分为数据感知层、数据传输层和用户应用层,总体架构如图1所示。

图1:系统总体架构图

数据感知层以具备人脸识别、身份证号读取及红外测温能力于一体的智能终端为感知对象,实时采集通过闸口学生的人脸信息和温度数据。

数据传输层应用有线、Wi-Fi、3G/4G 等多种通信技术,通过信息加密、身份验证、数据校验等方式实现感知数据的实时可靠传输。

应用层,采用J2EE 多层架构及前后端动静分离技术实现,实时汇聚智能终端采集到的人员信息、人脸照片和温度数据等,通过严格的清洗、脱敏及格式化处理后,进行多维度的统计、分析,为校园提供全面、动态、及时的防疫技术支撑。同时为满足实时到来的大量结构与非结构数据,采用基于Kafka 的分布式消息队列和基于Mongodb 的分布式文档数据库集群方式部署,可满足应用需求的快速读写要求和横向扩展需要。

2.2 功能结构

系统软件体系结构基于J2EE 多层体系设计,采用前后端分离的开发模式,系统业务功能主要分为以下7 个子系统,系统功能结构如图2所示。

图2:系统功能结构图

设备管理模块:该模块主要完成智能终端的管理,包括终端的注册、信息维护及实时监测。

数据采集上传:该模块采集教职工、学生信息及人脸信息,主要借助身份证号读卡器完成,采集后做脱敏处理,为后续刷脸功能提供数据支撑。

数据处理模块:该模块依托消息总线,完成前端身份信息、人脸信息以及测温数据的接收、处理和存储,并且对非正常范围内的体温给出预警。

设备参数维护:为方便快速的运维设备,系统统一将众多终端设备的参数存储在平台端,提供设备参数的查询、维护等功能,在必要时可推送至终端,完成前端设备的参数调整。

通行数据下发:为提高通行效率,该模块可将教职工、学生脱敏信息及人脸特征信息下发至智能终端,实现不依赖任何卡片的刷脸通行。

部门用户管理:该模块主要完成部门维护、各级管理员及用户的维护。

信息展示模块:该模块对系统中的数据进行统计、分类,最后以图表、列表、图片、文字的形式进行展示。

2.3 接口设计

系统采用前后端分离开发模式,前端采用Angular 框架,后端采用Springboot 框架,接口采用RESTful 风格定义,简明清晰,有助于提高用户界面的跨平台的可移植性,也有助于服务器模块的可扩展性,主要接口设计如表1所示。

表1:系统接口设计列表

在springboot 中开发RESTful 十分快捷,依赖注解实现,主要包括@PathVariable、@PostMapping、@DeleteMapping、@PutMapping 和@GetMapping 五类。

3 主要业务流程

系统主要业务包括数据采集上传、数据下载、参数推送等,结合数据传输协议,下面对数据采集上传业务展开全流程详述,其他业务限于篇幅,不再叙述。

3.1 数据采集上传

数据采集上传是系统的最主要业务流程,通过智能终端实时感知通行人的身份信息、人脸信息及体温数据,利用有线/无线网络,按照数据通信协议,汇聚所有终端数据到中心系统。系统的数据采集上传流程如图3所示,主要分为以下几个步骤:

图3:数据采集上传示意图

(1)通行人员在设备前刷脸,准备通行;

(2)智能设备首先进行抓拍人脸,与设备中的人脸库进行比对分析,比中则确定人员信息,然后通过测温模块取得人员体温数据;

(3)智能设备向中心端发出数据上传请求,中心经过身份验证及格式校验后返回应答信息;

(4)智能设备收到应答后,按照协议要求组织数据,然后上传;

(5)中心收到数据后,进行处理、判定体温是否异常,并返回信息;

(6)智能设备收到数据后,无异常则提示人员通行,有异常则要求人员再次测试;

(7)中心端格式化数据后进行持久化存储,并按照规则进行统计分析,供展示使用。

4 解决的关键问题

4.1 分布式计算框架

系统采用大平台思路构建,随着业务量和终端的不断增加,需要面对大量实时产生的数据,而且在校园中数据峰值较为集中,给系统的架构设计带来压力。为解决此问题,本文采用以分布式消息队列为核心的分布式计算框架予以解决。

根据系统的数据特征,本文采用分布式消息队列作为高速数据总线,解决应用耦合、异步消息、流量削峰等问题,极大提高系统性能和高可用性。利用Kafka 这种分布式发布/订阅消息系统搭建数据总线,具体方案如下:

消息生产者方面:按照应用规模、终端数量以及数据量等应用场景,部署多个独立的数据采集应用,负责接收前端不断到来的数据,同时集成消息生产者功能,接到终端数据后,使用推送模式将消息发布到消息队列代理。

消息消费者方面:依据数据规模,部署多个独立的数据消费应用,使用拉取模式从消息队列代理订阅并消费信息,同时对消息进行解析、处理、统计、分析。

由此,构成一个高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性的分布式计算系统。在本文中,针对不断到来的大量前端采集数据,使用消息队列作为中间缓存,达到高效的处理实时消息,降低编程复杂度的目的。同时,生产者发送消息到代理时,会根据区块机制分区存储,通过规模合理设置后,所有消息可以均匀分布到不同的分区中,实现动态的负载均衡,极大的提高了吞吐率。

4.2 数据通讯协议

应用场景中,系统需要实时从大量智能终端接收数据,充分考虑数据采集的完整性以及通行效率,同时兼顾设备的活动监测,本文设计了一套基于HTTP 的数据通讯协议,主要由消息头、消息内容和校验码三部分组成,协议目前分为心跳、数据上传、数据下载三类,还可根据应用需求不断扩展。

协议交互流程如图4所示,以数据上传为例。

图4:协议交互流程示意图

数据内容格式如表2所示。

表2:协议数据格式

通讯协议的交互流程采用请求、应答的会话模式,首先由客户端发起会话请求,服务端经过终端身份验证、格式校验后,回复客户端,然后,再由客户端发起传输数据的业务请求,在整个交互中均采用校验机制确保数据完整性,对于安全级别较高的场景,还可对内容进行加密处理。

上传数据交互步骤如下:

(1)客户端发起数据交互请求,服务端返回的消息应答;

(2)客户端收到成功应答后,发送数据内容;

(3)服务端接收到内容后,返回消息应答;

(4)重复2,3 步骤直到传输完毕;

(5)转步骤1,重复以上流程,直到所有数据传输完毕后关闭连接。

通过此数据传输协议,系统可完成智能终端与中心端的可靠数据传输。

5 结束语

本文提出的校园安全防疫系统,是物联网的典型应用,系统采用J2EE 多层体系架构,以智能终端为感知设备、无线/有线通信技术为桥梁、实时采集人员的身份信息及体温数据,系统采用分布式计算框架,从分布式消息队列和分布式文档存储等多个层面应对大量数据的快速读取和处理需求,系统有机融合了多项技术,具备高吞吐、高可用及易扩展特性,能够满足校园等人员密集场所的快速信息采集和自动测温需求,可为疫情防控提供了有效的技术支撑。

猜你喜欢
消息分布式架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
LSN DCI EVPN VxLAN组网架构研究及实现
基于DDS的分布式三维协同仿真研究
一种基于FPGA+ARM架构的μPMU实现
消息
消息
消息
西门子 分布式I/O Simatic ET 200AL