基于微服务架构的高校机房管理系统设计

2024-01-04 11:58杲靖张建兵潘群袁晓宇
电脑知识与技术 2023年32期
关键词:计算机机房功能模块网关

杲靖,张建兵,潘群,袁晓宇

(常州工学院计算机信息工程学院,江苏 常州 213032)

0 引言

高校计算机机房承担着计算机相关专业教学、课程、实践及考试等任务,目前大多高校计算机机房仍采用人工手动粗放管理,管理员对机房内所有计算机、电灯等用电设备进行统一开关[1]。然而在机房内上课的学生数量往往小于机房内计算机数量,导致无人使用的空闲计算机造成能源浪费。与此同时,人工管理存在着安全隐患与资源浪费、管理员管理机房费时费力、学生使用机房效率低下等诸多弊端。在物联网技术飞速发展的今天,传统的机房管理模式已无法满足要求。

由于机房内各设备通信协议不尽相同,传统的物联网框架存在着系统安装烦琐、新设备接入困难、整体系统难以更新换代的弊端。因此,人们运用物联网和微服务架构等技术,设计出便于安装部署的基于微服务框架的高校机房管理系统,实现对机房的自动控制和反馈控制,不仅可以检测机房的使用情况,确保学生上课前机房提前开锁,进入机房后及时供电,还可以识别计算机是否有学生使用,实现学生离开后断电等功能。最终实现节能省电,规避用电风险,提高学生课前准备效率,从而改善学生学习环境,促进学生学习效率,推动我国人才培养、资源利用最大化,实现低碳减排、节能环保新目标[2-4]。

1 系统总体设计

基于微服务架构的高校机房管理系统的主要功能分为五个功能模块,分别是:核心服务模块、支持服务模块、设备服务功能模块、应用服务功能模块、云平台功能模块,其中核心服务模块、支持服务模块、设备服务模块、应用服务模块部署在边缘网关中,云平台功能模块部署在云平台上。各模块中的服务均以微服务方式实现,它们之间通过REST API 或者消息总线进行通信,系统功能模块如图1所示。

图1 系统功能框图

2 微服务功能模块

微服务架构是将应用程序结构化为松散耦合的服务集合。这些服务是小型的、独立部署的,并且可以通过网络进行通信。每个服务都有自己的独立的业务功能,并且可以独立地进行开发、部署和扩展。微服务架构具有服务自治、轻量级、可扩展性、可复用性等特点,微服务之间通过API 进行通信,目前主要的通信方式有REST API、消息总线等[5-6]。本系统中采用REST API 和MQTT 相结合的方式进行微服务之间的通信,其中查询、配置、命令等通过REST API 通信,时序数据则在MQTT 中进行传输。本系统的微服务架构如图2所示。

图2 微服务架构图

2.1 核心服务功能模块

核心服务模块主要包含核心数据微服务、核心元数据微服务、核心命令微服务、注册配置微服务等,其主要提供数据采集与存储、系统配置信息存储与管理、设备管理与操作统一接口调用、微服务模块注册配置等功能。核心服务模块是连接设备服务与其他服务的核心,在系统中具有“承上启下”的功能。

2.2 支持服务功能模块

支持服务模块主要有任务调度微服务以及开源组件eKuiper,利用这两种支持服务,可以实现规则任务、定时任务等功能,大大提高了整个系统规则调度能力。eKuiper 可以利用系统中的消息总线,对数据进行过滤清洗,同时根据设定的规则执行相应的操作。

2.3 设备服务功能模块

在本系统中,各种设备错综复杂,设备协议也不尽相同,因此每种设备协议都需要有一个对应的设备微服务与设备进行交互,再通过核心服务模块,与其他微服务进行通信。同时各种设备服务也遵循了统一规则提供REST API 接口,方便其他微服务直接进行调用。

目前所设计的设备微服务包括:

1)Modbus 设备微服务:电磁锁及电表采用Modbus 协议,用于控制机房门禁及电源,另外还可以读取整个机房的用电量以及用电功率,帮助更好地判断机房使用情况。

2)扫码器设备微服务:采用自定义TCP 协议,可以扫描二维码,以便系统识别访客身份,主要用于学生预约进入机房的情况。

3)计算机管理设备微服务:采用自定义协议,实现对电脑开关机的控制。为了便于管理,该服务部署在机房中的教师机上,同时所有的学生机将作为设备通过教师机上的计算机管理设备微服务接入到系统中,实现对机房内所有计算机的管理,包括远程开关机、远程监控等。

4)LoRa设备微服务:由于灯控开关和环境传感器数量较多,需要多点部署,因此它们均采用了Lo-RaWAN无线协议,部署方便、成本低、覆盖范围广,无须布置中继器。另外环境传感器采用Class A 模式,能耗更低,可长时间使用电池供电。LoRa设备服务实现了LoRaWAN网关桥功能,可以连接管理LoRaWAN设备、解析转换LoRaWAN协议数据。

5)摄像头设备微服务:采用ONVIF协议与摄像头设备进行通信,该协议规范描述了网络视频的模型、接口、数据类型以及数据交互的模式,可以让不同厂商所提供的产品,均通过统一的语言来进行交流,增加了协同性和灵活性[7]。因此,本系统可以将机房中原有的摄像头快速接入到系统中,从而降低系统部署成本。摄像头设备微服务会定时操作所有摄像头抓拍照片,通过消息总线传递给其他微服务处理并上传至云平台。

设备微服务提供的RESP API如下:

获取微服务配置API:

方法GET结果:result(string:<required>)-返回配置信息;路径/config数据格式application/json

通过命令名称请求指定设备数据API:

方法GET参数:name(string:""):设备名称command(string:""):命令名称结果:result(string:<required>)-返回获取到的数据路径/device/name/{name}/{command}数据格式application/json

通过命令名称操作指定设备API:

方法PUT路径/device/name/{name}/{command}数据格式application/json参数:name(string:""):设备名称command(string:""):命令名称数据:param(string:json):命令参数结果:result(string:<required>)-返回操作结果

2.4 应用服务功能模块

2.4.1基础应用微服务

基础应用微服务主要是初步处理相关设备数据,并为其他应用微服务提供数据接口,同时建立与云平台的MQTT 连接。基础应用微服务流程如图3 所示,其主要功能如下:

图3 基础应用微服务流程图

1)设备影子:为了解决设备异常断开连接、多应用同时获取同一设备数据等问题,采用设备影子功能对设备数据进行同步,这种同步是一种双向同步,设备影子的配置数据可以同步给设备,设备的传感数据也可以同步给设备影子。

2)设备配置缓存:由于其他应用服务在运行时需要及时并多次获取当前网关所接入设备信息,考虑到应用程序运行的实时性,基础应用需要提供设备配置缓存,其中包括设备服务缓存、设备描述缓存、设备信息缓存。

3)云平台连接:建立边缘网关与云平台的MQTT连接,接收云平台的消息并进行处理,同时可将消息转发给其他微服务进行处理。另外其他微服务产生的数据也可由基础应用微服务转发至云平台。

2.4.2算法应用微服务

算法应用微服务主要实现的功能是对摄像头设备微服务中抓拍的照片进行识别,统计学生人数以及分布情况,并判断每台计算机是否有人使用。当判断出某台计算机无人使用时,可通过消息总线通知其他微服务进行处理。本系统基于MobileNetV3模型进行训练并使用OpenVINO 工具套件部署在边缘网关中。MobileNetV3 是一种轻量级的深度学习网络模型,特别适合用于移动和嵌入式视觉应用[8]。在训练模型时本系统使用TensorFlow Hub 中的预训练MobileNetV3模型来创建模型,并且使用预训练的权重进行迁移学习,训练时同时对人体和计算机进行学习。训练完成后,使用OpenVINO 的Model Optimizer 工具将训练好的模型转换成OpenVINO 的Intermediate Representation(IR)格式,之后便可以在具有OpenVINO环境的边缘网关中进行推理使用。

2.4.3计算机机房管理应用微服务

计算机机房管理应用服务主要是处理与系统相关的业务数据,例如课表导入与解析、定时任务创建、规则任务创建等。在对机房课表解析后,可形成课表内时间的定时任务,在上课前后,可对门锁、电源、灯控等进行操作,满足大批量学生的上课需求。当有预约的学生或有权限的教师临时使用机房时,可通过规则任务实现刷卡进门、打开电源等功能。

在机房需要上课时,课前会通过计算机管理微服务将所有计算机打开,学生全部落座后可能会存在部分计算机无人使用的情况,此时会等待算法应用微服务反馈无人使用的计算机,待确认后自动将该计算机关闭。另外微服务还可以实现根据光照度等环境数据自主判断是否需要开关灯。以上自动化措施可方便管理员对机房进行管理,并能有效地节约能源消耗。

计算机机房管理应用微服务流程图如图4所示。

图4 计算机机房管理应用微服务流程图

3 系统测试与应用

云平台功能模块主要包含展示Web 和MQTT 服务器,边缘网关连接至MQTT 服务器与云平台进行通信。为了验证系统设计的有效性,部署一套机房管理系统进行测试,测试过程中通过云平台展示页面观察测试结果。首先对定时任务进行测试,导入课表后,在上课时间前15分钟门禁正常打开、电源正常打开、灯控正常打开,机房内所有计算机全部开机。当机房内亮度达到400Lux 后,机房内灯光关闭,亮度仍达到300Lux以上,符合机房亮度标准。通过云平台展示页面可观察到,算法应用微服务可正常识别到人体存在,并能统计人数,另外根据识别到的人体和计算机,可判断每台计算机是否有人在使用,若无人使用超过5分钟将会自动关闭计算机。测试过程中云平台展示图如图5所示。

图5 云平台展示图

4 结论

在本研究中,人们设计并测试了一种基于微服务架构的机房管理系统,各功能模块采用微服务架构进行部署,微服务之间通过REST API 或消息总线进行通信。该系统利用物联网技术实现了对机房的自动控制和反馈控制。系统可以实现定时打开门禁、电源、灯控,根据机房内亮度自主开关灯,无人使用计算机时自动关机。这些自动化措施可以方便管理员对机房进行管理,还可以实现节能省电,规避用电风险,提高学生学习效率,推动人才培养和资源利用的最大化。总的来说,基于微服务架构的高校机房管理系统成功地解决了传统机房管理模式中存在的问题,提高了机房管理的效率和效果,为未来机房管理提供了新的可能性。

猜你喜欢
计算机机房功能模块网关
计算机机房的管理与维护研究
计算机机房管理和维护的重要性及措施研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
应对气候变化需要打通“网关”
功能模块的设计与应用研究
高校计算机机房管理系统的构建与实现
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计