基于微服务的棉仓安全管理系统研究与设计
2022-08-25田振川朱雅文
田振川 冀 翼 朱雅文
〔1.中华全国供销合作总社郑州棉麻工程技术设计研究所,河南郑州450004〕〔2.商丘市华云防雷工程技术有限公司,河南商丘476000〕
一、引言
棉花是纺织加工的重要原料,在全球贸易和社会消费中占有重要的地位[1]。为确保棉花种植者的利益和棉花产业的安全,国家相继出台了棉花“临时收储”和“目标价格补贴”等政策。然而,在仓库存储过程中存在棉花发生阴燃和明燃等安全隐患,如果巡视检查不到位,这些隐患得不到及时处理极易引发重大火灾事故,将给国家和相关企业造成巨大的经济损失。
CO气体是棉花阴燃和明燃的主要释放气体[2],当其浓度变化速率达到一定阈值时及时处理,可避免重大火灾事故的发生。中国棉花储备库现阶段缺少对CO气体数据变化实时监控、安全巡视检查管理和库内远程视频监控的系统工具。通过项目实施,可使分布在全国的近200家国家储备库实现实时、高效和规范化的管理,提高火灾事故预防信息化管理水平。同时,棉仓安全管理系统可协助国家棉花储备库管理部门对储备库管理数据进行集中采集、共享和管理。
二、系统需求分析
气体探测器和监测报警控制器实现库内CO气体数据的实时采集并上传至服务器,通过浓度数据分析变化速率进行安全信息预警,获取安全巡视记录、事故上报信息记录和库内视频信息,实现远程安全监控管理。主要具体功能如下。
(一)基础信息管理
主要涉及储备库、仓库和工作人员等信息采集,并在巡视检查和事故上报操作过程中提交储备库、仓库、人员信息和相关工作内容信息。通过扫描储备库或仓库二维码可获取其相关信息。
(二)采集硬件信息管理
气体采集数据上传服务器时,同时上传探测器及报警控制器的物理地址和编号,并通过系统设置探测器或监测报警器物理地址、编号、名称、所属储备库、所属仓库、启用时间等基本信息实现与采集传数据的关联,也可通过扫描探测器或报警器二维码获取相关设置信息。
(三)监测信息管理
气体探测器实时采集CO气体浓度并将采集数据、时间和硬件地址等信息传输到监测报警器,监测报警器将采集数据进行处理分析后经无线发送模块发送并保存到服务器数据库。系统获取数据库数据进行分析和处理,同时进行安全信息预警和报警。
(四)巡视信息管理
巡视人员进行安全检查时,通过棉仓安全管理系统对所检查储备库、巡视仓库、巡视人员姓名、时间、库内状况等信息进行上报,并可对巡视检查结果进行审核和定期检查。
(五)库内视频监控
库内的视频监控系统可实时记录下库内的视频影像,当发生仓库安全事件时可以回看视频记录,同时进行影像资料的备份和存储。
(六)事故上报管理
储备库相关事故上报,包括棉花的阴燃、燃烧等火灾情况,支持图片、文档等格式。事故上报后按规章流程进行各环节批示处置,并对整个事故过程情况进行总结,对典型事故编辑成案例,对图片、视频、工作文档等进行归档管理。
(七)移动端APP
开发手机APP和移动终端APP,主要实现巡视安全检查、事故上报和处置等信息提交功能,并可进行信息查询和巡视公告查看等。
三、微服务架构介绍
微服务架构是当前互联网开发非常热门的一种架构模式[3],核心思想是将一个整体、复杂的功能应用划分为多个小型服务,同时保证功能的完整。每个服务只注重自己的功能,被封装为一个独立的应用程序,一个服务实例即为一个进程,服务之间的通信实为进程间的交互。服务可交由团队或个人进行独立开发,不受开发技术限制,只需要确保每个微服务提供API服务,实现服务之间的通信。同时由于小模块化,因此后续可采用新的技术进行升级和替换;从部署的角度,每个服务可以独立部署,不需考虑协调服务部署时对其他服务的影响。
在项目中,采用基于.NET Core框架进行开发[4],其开发程序可分别针对手机、PC端或其它移动终端系统进行发布和运行,同时可在Windows和Linux操作系统上统一部署。
四、系统架构设计
系统主要采用微服务架构和三层软件编程架构思想。其中,整体架构设计方面采用微服务架构思想将整个系统分成两层,并将系统功能模块拆分成尽可能细的服务;在编程实现方面根据功能需求分为界面交互层(表示层)、业务处理层(业务逻辑层)和数据操作层(数据访问层),三层之间通过网络对外提供接口服务。系统架构图如图1所示。
图1 棉仓安全管理系统架构图
(一)系统微服务架构设计
棉仓安全管理系统的第一层是将系统拆分成基础信息管理、气体监控管理、巡视管理、视频监控和安全事故管理五个功能应用,并封装成五个独立的一级系统,一级系统之间不存在功能层面上的依赖。
系统第二层是根据五个功能应用进行综合分析、抽象出各种不同的服务,且每一种服务只对某种特定资源进行操作,该服务被称为二级子系统。每个一级子系统拆分的二级系统在功能层面上相互依赖,可以独立部署和向外界提供服务。同时,很多二级系统可在不同应用中复用,也可在以后的扩展功能中重用[5]。
(二)系统三层架构设计
系统三层编程架构中的界面交互层(表示层)主要负责基础信息管理、气体监控管理、巡视管理、事故管理和视频监控五大功能应用与用户之间进行交互的前端页面;业务处理层(业务逻辑层)主要实现五大功能应用拆分成不同服务内部对资源进行业务逻辑操作和逻辑计算;数据操作层(数据访问层)主要实现对基础信息、气体采集信息、巡视信息和事故信息等数据的数据库操作和库内视频文件的读写操作。
五、功能模块设计
棉仓安全管理系统具备对储备库基础信息、CO气体探测器或监测报警器基础信息、巡视信息、工作人员信息、事故信息进行集中收集、管理和整合功能,从而帮助建立信息完整、内容丰富的棉仓管理资料。系统功能结构如图2所示。
图2 详细功能结构图
部分核心模块功能说明如下:
(一)仓库信息管理
主要实现仓库相关信息的添加和设置,包括仓库名称、仓库编码、备注等信息。
(二)探测器管理
主要实现CO气体探测器地址、名称、所属仓库、所属仓库位置等基本信息的设置,通过报警控制器上传的采集数据,快速定位所在仓库。
(三)气体监控管理
通过气体探测采集的浓度数据,实时分析CO浓度变化情况汇总,实时掌握仓库火灾安全状况。
(四)气体记录管理
对气体探测器采集的数据进行保留,可随时对探测器数据进行历史查询,判断探测器是否正常工作。
(五)气体预警管理
对气体浓度变化阈值进行设置。气体浓度超过阈值时,系统进行预警或报警并提示报警所在仓库的位置。
(六)巡视管理
仓库进行正常安全检查时,需将巡视人信息、巡视仓库、巡视时间和是否有事故进行上报,方便监督巡视制度实施。
(七)安全事故管理
当出现安全事故时,需对事件发生起因、时间、过程、结果等信息进行上报,上报信息包括图片和总结文档等。
六、系统实现
(一)气体信息采集
根据气体探测器监测范围和仓库空间范围对CO气体探测器和气体监测报警器进行合理部署、安装。其中,CO气体探测器实现CO气体信号的采集并将信号转化为数字信号对外输出;气体监测报警控制器主机内嵌入微处理器和配备有无线传输模块,该控制器同时具有丰富的软件功能,完成探测器数字信号采集和数据的实时计算并将计算结果通过无线发送到指定远程服务器。
(二)仓库视频监控数据采集
仓库视频监控数据通过库内安装的光纤上传到视频文件系统服务器上,棉仓安全管理中心系统通过接口可从视频监控系统上调取监控录像。针对可能存在的部分厂库没有安装光纤,无法进行实时视频传输的情况,可事先完成视频监控系统的接口开发工作,后续仓库光纤网络安装后再将实时数据传输到视频服务器上,最后通过接口获取视频数据。
(三)系统开发技术实现
系统主要采用ASP.NET Core和AngularJS技术进行开发,其中.NET Core是一个全新的跨平台开源框架[6],基于该框架开发的Web应用可部署在云上和服务器上;AngularJS用于系统前端开发,并与HTML和CSS技术进行完美结合,构建功能强大的交互式应用。
(四)移动端实现
移动端采用基于.Net的移动开发平台Smobiler,该平台是一种跨平台的解决方案,开发应用程序可在Android和IOS两个平台进行运行,避免针对Android和IOS分别进行开发,缩短了开发时间,降低了研发成本。
SQL Lite作为移动端的本地数据库,可将一些基本设置信息进行保存,在网络不畅通时将上传数据暂存到本地,待网络连通时再进行上传。
同时,移动应用需使用摄像头权限,通过扫描二维码获取仓库基本信息或相关信息,巡视或事故上报管理可通过移动系统将提交信息上传到服务器。
七、结语
棉仓安全管理系统实现CO气体浓度数据采集频率为10次/min并实时上传到服务器数据库,通过系统查看验证,采集数据准确、完整、可靠。主管部门通过访问棉仓安全管理系统查看仓库内CO气体数据浓度变化、巡视工作记录和库内实时监控,对储备库管理工作可以做下一步指导。
本系统为国家储备库主管部门和各地储备库分公司进行安全管理提供了一种方便的途径,对预防火灾事故提供了可行的解决方案,改变了火灾发生后进行追责的工作方式,使储备库安全管理工作更加有效、及时和针对性。同时,系统采用微服务架构方便新业务和新服务的扩展,提高了系统的扩展性、稳定性和健壮性。