李旋 李睿
(四川邮电职业技术学院 四川省成都市 610067)
系统平台建设需基于统一的技术架构来对外提供应用服务,不得明显相互独立。考虑到后期业务架构的调整,系统需具备较高程度的可定制化开发能力,能够定制化的满足实际业务要求。此外,还需保证系统适用于用户提出的另行采购的硬件、软件,并能很好实现集成。
安全需求分为三个部分,分别是应用安全需求、数据安全需求、系统访问安全需求。具体要求如下:
应用安全需求。系统要求具有审计功能和系统管理功能,可以对用户的操作记录,系统日志等进行查看;对于系统中的所有账号信息以及密码信息,均需满足相关高复杂度的要求和管理,同时能够对系统中的主键ID(例如账号ID 等)进行唯一性校验。
数据安全需求。集团系统中的数据涉及到国有企业的安全生产数据,属于保密内容范畴,因此为了保证数据的安全性,所有数据首先需要在统一的专用数据库服务器中进行专用管理,确保数据库系统的独立性。
系统访问安全需求。由于集团组织机构层级较多,机构人员数量庞大,同时存在人员交叉的情况,因此需要建议一种用户身份的信任和凭证校验机制,保证登录当前系统用户的唯一性和权威性。
在可视化软件方面,满足多数据源接入:支持标准的JDBC 接口,能直接对接各种主流关系型数据库系统;支持文本数据(Excel、CSV)的直接导入分析,支持API 接口对接。此外要满足实时数据可视化,同时提供三种方式:数据库定时执行SQL 的准实时数据提取、定时通过调用第三方接口获取准实时数据、通过接口实时接收第三方接口实时发送的数据。
在图表方面,要能够实现图表切换,包括:各类折线图、曲线图、柱状图、饼状图等图像。在2D 地图和3D 地图方面,满足2D 地图接入需求,包括:分布地图、迁移地图、标注地图、热力图。并支持下钻,层级包含:世界、中国、全国34 个省/市/自治区以及300 个以上重要的地市。满足3D 地图接入需求,该地图的能力支持:内置至少4 种样式,8 种及以上的光点样式。
在指挥调度系统方面,具体功能需求如下:
(1)满足快捷灵活的指挥关系重构;
(2)实时动态的信息交互传输;
(3)全程可视化操作;
(4)可靠固化的应急联动处置。
系统技术选型方面,应针对目前市场的主流技术、开发成本和后期系统整体运维难度等情况进行综合考虑,系统选择目前流行的微服务架构。系统整体采用公有云建设与本地备份及设备控制相结合的形式,公有云主要实现软件部署以及视频点播分发。本地存储服务器用于冷备份公有云软件平台数据。公有云建设包含一套前端Nginx 负载,一套注册服务以及网关中心、一套微服务集群、一套消息服务集群、一套分布式文件集群以及Mysql 主从库。在数据资源处理层面包含四台服务器,分别为数据采集云服务器、数据清洗云服务器、数据存储云服务器以及数据预处理云服务器。
指挥调度中心项目建设有四大部分进行组成,包括基础设施层、后台管理层、数据采集管理层以及前台应用层。由此四部分统一构建成为指挥调度中心核心内容。整体逻辑架构如下:
(1)基础设施层:负责底层的计算资源以及存储资源、网络资源等构建,保证系统的高效运行及安全性,对底层的虚拟化资源、大数据资源、高性能资源、数据库资源等进行稳定性的报账,保证系统高效安全的运行。
(2)后台管理层:负责对各种数据源的接入和数据交换进行适配。同时支持实时数据接口以及第三方WebService、http、socket 等接口数据。对集团所属现有系统进行全方位的数据抽取与钻探。
(3)数据采集管理层:针对系统中存在的海量数据,以及高频的数据交互,系统提供统一的标准和口径,以此来对海量数据进行采集、清洗、存储、加工,从而将海量数据形成无形大数据资产,为集团和其他第三方兄弟单位、监管政府机关等提供高校服务。主要是将采集来的结构化数据、非结构化数据进行统一存储,运监、营销、客服、故障等结构化数据主要提供给二维可视化进行展示。地理数据、视频数据、巡航数据、传感器数据主要提供给多维可视化进行数据分析和3D 展示。
(4)前台应用层:主要提供基于浏览器的图形化编排集成开发环境和运行框架,支持数据配置、事件交互配置、样式效果配置。在可视化运行框架的支持下,完成页面的解析、数据的加载和转换、事件的执行、图形的渲染等。
系统在大屏端主要进行相关数据的展示功能,具体展示的板块包括集团概况展示、能源化工情况展示、培育主业展示、健康教育情况展示等模块。此外用户在大屏前端还可以进行应急指挥调度。
集团概况模块主要以图形化方式从多个方面展示集团的整体概况,主要包含集团简介、廉洁、党建、规划发展等几个层面,以便于参观者快速了解到集团整体情况。能源化工模块围绕集团核心主业,涵盖电力、燃气、化工经营等多个能源化工产业关键数据指标,此板块主要以图形化、数据可视化方式呈现能源化工产业各板块的经营数据指标。培育主业模块通过收集集团公司及各级分公司相关战略发展数据,形成集团培育主业总览图,涵盖工程建设、类金融、文化旅游等多个产业。健康教育模块通过收集集团公司及各级分公司健康产业以及教育产业数据,以产业结构形式显示各板块营收、生产、投资、重点项目等。应急指挥调度模块主要通过系统对项目现场视频(固定视频、移动视频)进行查看,并连接现场人员(单人或多人)移动设备进行现场视频连线、语音对讲、文件传输等,实现突发应急事件下的远程调度指挥,提升突发应急事件响应和处置效率。
系统后台管理端,主要用于前端和集团相关业务流程数据的管理和操作功能,同时具备系统的用户和权限等功能的集成。主要包括综合管理模块、投资发展模块、人力资源模块、财务管理模块、科技创新模块、信息化模块以及系统管理模块等。
综合信息模块涵盖各部门业务,通过提炼关键生产经营指标形成全集团业务数据一把抓。投资发展模块主要用于集团公司项目投资计划、投资预算计划、项目完成度、在建项目状态等信息的展示。人力资源模块主要用于集团公司人力资源规划、组织机构设置、薪酬考核体系、考核结果运用、培训和招聘管理、专业技术人才队伍建设情况等信息展示。财务管理模块要用于集团整体营收情况、利润情况、公司成本预算、费用控制等工作的展示。科技创新数据报表管理提供指标类别数据报表导入和报表自定义组合导出功能,同时可根据各级分公司、年月时间维度进行查询。信息化模块主要用于展示指标类数据,即在建项目数、已建项目数、基础设施数、信息化预算数、软件著作权等。系统管理模块包括用户管理、权限管理、资源管理等板块。
数据采集分析主要以元数据驱动方式提供强大的抽取、转换和加载的数据采集服务能力[1]。提供对异构数据源的集成能力,实现针对大体量异构数据的处理操作,能够在数据采集过程中对数据进行持续化的预处理,实现数据采集全过程的可视、可管、可控。主要涉及数据采集范围管理、数据输入输出功能、视屏数据采集、实时数据采集以及离线数据采集等。
根据目前集团已有的各类结构化数据和非结构化数据,以及其他文件、视频等资源数据的采集情况,结合所有数据的来源特点、更新方式、交换条件等,再附加考虑集团内外网和现场生产环境的网络条件等因素,确定对不同类型的数据分别采用数据交换与整合平台、服务总线的实时数据交换、基于ETL 的数据导入、人工录入、直接使用等多种方式进行采集[2]。
根据集团公司现有信息化系统建设情况,已通过集团公司数据中台或PowerBI 系统对接上来的数据统一通过系统层面的数据对接接口实现数据接入应用;对于集团各分公司/项目现场等已自建系统实现所属领域数据收集而数据未统一汇聚到集团数据中台的情况则由本项目实施小组提出具体数据对接清单,而后由集团数据中台项目的实施小组牵头实现集团各分公司/项目现场的数据汇聚;对于本项目独有的且未经集团各分公司信息化系统收录的数据[3],则由本项目开发对应的数据填报功能,通过数据填报功能人工收集系统运行所需的数据指标,同时在有必要的情况下可将人工收集上的数据同步给数据中台,形成数据资源的汇聚沉淀。
在接入生产经营各类数据时,因本身数据质量的不可控性,数据需要被清洗。特别是很多的数据都有缺失值。比如,生产经营指标中的电力发电数据,其中的一些属性可能没有记录值,如当前上报发电量的时间。填充丢失的值,可以采用忽略元组、人工填写缺失值、使用一个全局常量填充缺失值、用属性的均值填充缺失值、用同类样本的属性均值填充缺失值、使用最可能的值填充缺失值、用最邻近方法填充缺失值等方法。
数据存储计算主要提供数据处理、计算、集成、分析及高效可靠的数据存储能力。实现结构、非结构化数据的数据存储、数据管理、数据备份、数据计算、数据挖掘等。
本次数据存储方案主要分为结构化数据存储方案以及非结构化数据存储方案。
其中结构化存储选用MySQL 数据库。根据项目实际应用需要,结构化存储数据库划分为以下类型数据库:
4.3.1 基础业务数据库
基础业务数据是集团公司经营管理过程中,相关业务在执行和运行过程中产生的需要进行处理的结果数据。业务数据基于系统中相关的底层基础数据进行衍生,关联了相关的业务属性而形成[4]。在此建设方案中,主要业务数据库包括:投资发展数据库、人力资源数据库、财务管理数据库、建设管理数据库、资产运营数据库、资本运营数据库、科技创新数据库、生产管理数据库以及信息化管理数据库等。
4.3.2 主题数据库
主题数据资源分为按业务条线划分的纵向业务主题数据和按管理领域划分的横向分析主题数据。分析主题数据基于业务主题数据和外部相关数据、根据领域分析模型建立。在此建设方案中,主要主题数据库包括:集团概况数据库、数智能投数据库、能源化工数据库、培育主业数据库、健康教育数据库以及指挥调度数据库[5]。其中,能源化工数据库又分为电力数据库、燃气数据库以及化工数据库。健康教育数据库分为教育数据库和大健康数据库。培育主业包含建设管理数据库、资本管理数据库以及资产管理数据库。
4.3.3 共享数据库
共享数据主要在与外部公司和系统进行数据交互时提供共享数据存储库,通常存储经过加工整合之后的结果数据。因本次项目建设的可视化平台属于集团数据指标以及经营情况的最终呈现平台,平台内累积的各类加工整合后的数据较多,如集团资产规模增长率、电力发电规模情况等均属于二次加工数据,此类数据均可对外反哺给集团内各业务支撑系统以及生产管理系统用于生产经营效率的提升以及异常情况的监控等。此类数据交互时均通过共享数据库对外交互共享。
在非结构化存储中,系统运行需要汇聚部分非结构化数据,对于此类非结构化数据如项目现场监控视频、无人机巡检视频等通过与视频汇聚平台的实时对接来实现,此类视频历史数据本项目不主动进行存储,仅在项目软件平台实际运行中需要调用时通过视频汇聚平台发起调用。而部门文档、存档资料以及各类音视频影像资料等则基于文件服务器进行存储。
当前系统前端采用VUE 进行开发,后端服务器采用JAVA 语言进行设计。本次系统内数据交互接口均基于Kafka 实现。系统采用生产者-消费者模型对消息数据进行收发。系统的架构拓扑结构如图1 所示。
图1: 系统数据交互接口拓扑图
系统对外部系统的数据发布接口统一采用WebService 形式接口。“对外数据接口”提供两个接口,分为权限查看接口和数据查看接口。外部系统申请对接数据时由本平台分配用户名密码以及对应申请的具体表。外部系统通过调用“权限查看接口”可查看自己权限下能够查询的表名称;外部系统通过调用“数据查看接口”并传入对应表名即可获取对应表名下的所有数据。
以权限查看接口为例,具体实现样例如下:
函数名:getPermitTableName
函数输入参数:String username, String password(即用户名、密码)
函数输出结果:包含results 节点的XML 格式数据。
数据样例如下:(owner 表示该表所属用户,一般与用户名相同,tablename即该用户有权查看的数据表名)
本次系统指挥调度中心可视化软件默认接受大屏拼接控制器端以HTTP RESTful 风格的API 或者SDK 形式对外提供分屏拼接控制下发、模式读取、模式切换应用、视频信号源切换等接口。针对视频汇聚而言,现阶段所有摄像头数据到中心机房后先汇总到视频汇聚平台的边缘服务器,然后进行视频流协议层集成,并根据需要录制,压缩传输视频流到云平台(也可不压缩选择原始码流),云平台建立视频流分发转发,并发播放处理服务,并通过接口形式集成进入整个指挥调度中心系统,最后再由指挥调度中心系统同步投屏到大屏展示。
本文介绍了国有集团应急指挥系统的设计与实现。该系统通过结合集团现有的常见业务场景中的流程,从架构方面进行整体设计,同时针对大屏端和管理后端提出了具体的需求细节以及详细设计方案,针对集团应急指挥系统需对接多源数据的要求,设计了一套数据采集、清洗、存储的方案,最终通过从系统功能数据流转、对外数据发布、与硬件交互等方面进行了系统验证和测试。