郭沛高,张明媚,刘 津
(山西能源学院,山西 晋中 030600)
为深入贯彻落实国家关于人防数字化改革推进会议精神,各地陆续开展智慧人防信息化建设。智慧人防建设是以人民防空综合防护体系信息化建设为目标,以信息网络为命脉,以信息设备为载体,以信息软件为灵魂,以信息资源为血液,构建覆盖防护救援、通信报警、工程建设管理、宣传教育以及战时应急指挥等全业务、多领域、全要素的智慧人防信息平台[1]。构建人防信息资源共享交换和智慧人防业务统一管理、统一指挥以及统一调度,平台需充分考虑海量数据的共享交换、服务的动态可扩展、访问的高并发等问题[2],微服务框架恰好能高效实现平台需求。本文利用微服务框架,结合GIS、云计算等技术,搭建了智慧人防信息管理平台,将人防资源“一张图”展示、人防日常管理、人防业务管理以及成果共享等常用功能进行微服务化,有效提高平台的灵活性、安全性以及可扩展性,让人防管理工作更加信息化和智慧化。
微服务框架是基于SOA架构升级的一种框架模式,将原本独立的系统拆分成多个小型服务,每个小型服务即是一个微服务,能够快速解决单一的业务功能和简化系统开发部署工作,让开发人员通过扩展微服务,满足不同等级的业务需求,具有体量小、业务清晰、开发成本低以及维护容易等优点[3]。
微服务架构的特性主要包括四方面内容:一是单一职责性。微服务框架下的微服务是将业务功能模块按照单一化的方式进行拆分,微服务之间可以利用“管道”进行灵活聚合,从而输出更强的服务能力[4]。二是独立性。每个微服务都是采用独立的解决方案,微服务之间具有高内聚、低耦合。开发人员只需专注开发自己负责的微服务,极大提高了功能开发和部署的灵活性。三是轻量级通信性。微服务之间采用HTTP的RESTful API方式进行通信,可以实现跨平台、跨编程语言通信,从而达到所谓的轻量级通信。四是进程隔离性[5]。传统技术框架,当业务逻辑发生改变时,需停止整个应用进行重新部署,这样给运维工作带来很大的困难。微服务框架下,各个业务功能都采用微服务实现,具有较强的独立性,并独立运行在各自的进程中,当业务逻辑发生改变时,只需停止相关功能的微服务进程,系统照常运行,从而减轻了运维工作压力。
智慧人防信息管理平台采用微服务框架,提高平台的灵活性、稳定性以及伸缩性,实现人防管理业务服务的动态扩展和部署。平台采用模块分层化、微服务结构化的架构设计思路,让各层间功能独立、层内功能耦合度最小[6],主要包括基础设施层、数据层、微服务层、应用层和用户层。
基础设施层是采用云服务思路,利用虚拟化技术,构建平台运行所需的计算、存储和网络资源。数据层是平台运行的数据支撑,一方面通过在线服务的方式,调用基础地理信息数据,如电子地图、影像图以及行政区划图等,另一方面对人防专题数据进行收集、汇交、处理和入库,如人防工程数据、报警器数据、危险源数据、重要人防工程三维模型、重点防护目标三维模型以及重大危险源三维模型等。微服务层是对常用功能服务进行管理,将各种服务采用领域驱动设计方法进行细分,实现业务功能的微服务化,可提供单一微服务的基础功能,也可提供微服务集群的复杂功能。应用层为平台提供的各类应用功能,如人防日常管理、人防业务管理以及成果共享等。用户层是平台主要使用部门,如人防办、政府部门、建设公司等。
智慧人防信息管理平台基于B/S结构,前端开发采用Bootstrap开源框架,JQuery开源JavaScript库,页面开发采用HTML5,后端微服务框架采用SpringCloud框架,数据库采用MySQL和内存非关系数据库Redis[7]。平台微服务技术路线设计包括Web接口层、微服务注册中心、微服务应用中心、微服务配置中心、运维管控系统以及微服务客户端。每个微服务都独立运行,所有微服务在注册中心进行发现和注册,各个微服务使用REST进行通信,从而实现微服务间的高内聚、低耦合。微服务框架技术路线设计示意图如图1所示。
图1 微服务框架技术路线设计
人防业务功能微服务化是功能模块按照领域大小进行拆分,形成多个单一功能且具有独立数据库的小型服务。在功能微服务化中要注意过度零散的微服务化容易增加服务间网络通信开销,增加服务部署和管理的难度[8]。平台以人防资源“一张图”展示、共享以及业务管理为目标,以地理信息数据、人防三维模型数据、人防专题数据等为信息来源,实现人防资源“一张图”展示、人防基础设施管理、人防日常办公管理、人防业务全过程管理和人防成果共享管理等。平台功能微服务化结构如图2所示。
图2 平台功能微服务化结构
智慧人防管理涉及的数据微服务数量多,为避免各类微服务进程干扰,需给每个微服务提供独立的资源运行环境。本文采用容器化技术,将微服务及其依赖的运行环境打包成一个镜像[9],实现不同微服务能够按需、无差别地部署到不同服务节点上,同时同一个服务节点可以运行多个容器,保证同一个服务节点上可以部署不同的微服务。微服务容器化部署能够对微服务进行细粒度控制,从而实现服务的最大化资源利用。微服务容器化管理流程如图3所示。
图3 微服务容器化管理流程
智慧人防管理涉及的业务多样,一条完整业务流程包含多个不同类型的微服务,如数据调用微服务、查询微服务、项目申请微服务、项目审批微服务等。在高并发环境下,为确保服务质量,本文采用微服务动态伸缩与注册机制,实现微服务的动态准确调度,保证微服务的高可扩展和高可用性[10]。具体流程如下,一是平台接收外部服务调用请求;二是访问微服务注册中心,获取可用的微服务实例,并根据微服务实例所需的负荷情况,实现微服务的负载均衡;三是当并发量过高,现有微服务实例无法满足需求,则微服务控制管理模块会动态创建新的微服务实例,从而保证微服务的可用性;四是当并发量过低,实例化微服务大大超过请求需求时,微服务控制管理模块则会动态减少微服务实例,从而减少系统资源的浪费。
人防资源“一张图”展示是在统一的坐标系下,实现地理信息、人防专题信息以及人防业务信息的图文展示、二三维展示,为人防工程管理、防护救援、通信报警、宣传教育以及战时应急指挥的业务提供数据服务。包括的功能有地图操作、空间查询统计、专题制作等功能。
人防基础设施管理是对人防设施信息和外围公共资源信息的统一管理和更新维护,主要包括信息的录入、查询、统计和更新。信息录入和更新是对人防基础设施的基本信息通过平台进行填写和完善,如设施ID、名称、类型、位置、安装联系人以及联系单位等。信息查询和统计实现了空间查询统计、模糊查询统计以及关键字组合查询统计,通过输入设施名称、设施类型等搜索条件,将结果以列表或图形的方式进行展示,点击其中某条结果,可以快速进行地图定位并高亮显示。外围公共资源信息的管理主要是收集人防相关的应急、公安以及减灾等数据,为人防业务提供信息服务。
人防日常管理是对人防基本情况管理和数据建库、入库以及维护管理等。人防基本情况管理是对省-市-县各级人防单位基本情况的管理,如人防单位基本情况浏览、查询和统计、人防基本情况多媒体展现等。数据建库、入库和维护管理是对各类人防信息进行收集、整理、质检后,建立数据库,并将数据入库,后续定期对人防信息进行更新和维护。
人防业务全过程管理是平台的核心功能,主要包括了人防工程管理、人防应急预案管理、人防专家库管理、人防警报管理以及人防指挥救援管理。人防工程管理实现了人防工程从申请、审核、施工以及验收全周期管理,人防应急预案管理是在汇总人民防空各类预案的基础上,根据人防突发事件类型,及时响应相应预案,提高组织协调能力和应急决策能力。人防专家库管理是建立人防专家库,并可对专家人员进行修改和更新。当出现人防紧急事件时,能快速召集相应专家进行会议,为领导提供辅助决策。人防报警管理是利用各类传感器,如报警器、视频监控摄像头等,对人防工程和基础设施进行监控,当超过阈值时,触发报警功能,及时将报警信息传送给指挥中心和周边巡查人员。人防指挥救援管理是突发重大灾害或突发事件后,对现场进行救援和调控,如逃生路线和救援路线的生成,确保应急和应战指挥救援。
微服务框架能有效提升智慧人防信息管理平台数据展示、查询、统计以及复杂业务流程处理能力,能够快速响应业务需求的变化,高效地进行功能扩展,具有良好的应用价值。人防管理工作是一项长期工作,所涉及的数据和业务功能将不断更新、优化和升级,基于微服务框架下的智慧人防信息管理平台能够高效、迅速地响应数据和功能的改进,让平台开发更简单,扩展更灵活,运行更可靠,能够将人防管理的各个业务模块进行扩展延伸,实现“智慧人防”建设的快速发展。