测绘地理信息   2022, Vol. 47 Issue (6): 101-105
0
云GIS架构下的电网数据并行计算及编辑技术研究[PDF全文]
夏伟1, 李志坚1, 蔡文婷1, 邓兵1, 高永铭1, 陈姣2, 蔡喜荣2    
1. 南方电网数字电网研究院有限公司,广东 广州,510000;
2. 厦门亿合恒拓信息科技有限公司,福建 厦门,361000
摘要: 随着电网GIS业务应用的拓展, 海量空间数据量呈几何级数增长, 如何系统地存储和管理地理空间数据、提高软硬件的利用率和高效地服务更多用户, 成为了电网GIS实际应用的新的研究热点。以南方电网GIS平台为例, 主要研究云GIS架构下的数据并行计算及编辑的关键技术, 结合云计算在大数据处理方面的优势, 来解决电网GIS所面临的困境。首先概述了云GIS的架构; 然后重点介绍云计算与GIS结合的关键技术; 最后通过在南方电网的应用实践证明相关技术的可行性及先进性。
关键词: 云计算    云GIS    海量空间数据    并行处理框架    
Research on Parallel Computing and Editing Technology of Power Grid Data Under Cloud GIS Architecture
XIA Wei1, LI Zhi-jian1, CAI Wen-ting1, DENG Bing1, GAO Yong-ming1, CHEN Jiao2, CAI Xi-rong2    
1. China Southern Power Grid Digital Grid Research Institute Co., Ltd., Guangzhou 510000, China;
2. Xiamen Yihe Hengtuo Information Technology Co., Ltd., Xiamen 361000, China
Abstract: With the expansion of the business application of the power grid GIS, the amount of massive spatial data has increased exponentially. How to systematically store and manage geospatial data, improve the utilization rate of software and hardware, and efficiently serve more users have become the New research hotspots of the practical application of power grid GIS. Taking the GIS platform of China Southern Power Grid as an example, this paper mainly studies the key technologies of data parallel computing and editing under the cloud GIS architecture, and combines the advantages of cloud computing in big data processing to solve the difficulties faced by the power grid GIS. First, it outlines the architecture of cloud GIS; then focuses on the key technologies of the combination of cloud computing and GIS and finally proves the feasibility and advancement of related technologies through the application practice in China Southern Power Grid.
Key words: cloud computing    cloud GIS    massive spatial data    parallel processing framework    

GIS融合了空间科学、信息科学和管理科学的相关知识,其主要功能包括:空间数据的采集与存储、编辑与管理、分析与可视化等[1]。目前,GIS广泛应用在环境资源管理、城市规划、轨道交通运输、军事公安、水利系统、商业金融和电力系统等领域。近年来,在电网领域,随着GIS平台业务应用的广度和深度持续化,服务范围的不断扩宽,对数据的管理要求也越来越高。GIS数据包括矢量数据、地形数据、遥感影像数据、电网数据和三维模型数据等[2-4]。其数据量已经从TB级迈向了PB级的规模,具有数据密集型和计算密集型的特点,这给电网GIS数据存储、分析、管理和计算带来了全新的挑战。因此,如何有效地处理电网GIS中海量的空间数据,为电网用户提供安全可靠的服务已成为新的研究热点。

如果单纯依靠计算机硬件的升级改造解决该问题,其成本是巨大的。因此,为了降低GIS平台的改造成本和提升系统的可扩展性,亟需引入分布式存储和并行计算的思想。云GIS是将云计算与GIS技术相结合的产物。利用云计算来改进传统GIS的结构体系、扩展GIS的基本功能,提升海量空间数据处理效率,从而提供更高效的服务。近年来,越来越多国内外的GIS平台融合云计算技术来提供空间信息数据服务,主流的云GIS平台包括Arc GIS 10.1、Super Map GIS、Map GIS和Geo Star等。

本文基于南方电网的GIS平台,研究了云GIS架构下的数据并行及编辑的关键技术。围绕GIS平台软件的架构和具体技术实现,介绍云计算的相关理论、云GIS架构及实现云GIS的关键技术,并展示了其实际应用效果。

1 云GIS平台架构

随着GIS海量数据的增长、并发访问和数据处理的计算量不断增长,对系统的服务器处理能力和计算能力的要求越来越高。传统的电网GIS存在资源利用率低、功能耦合性高、需求扩展不灵活和迁移部署困难等问题,而云技术的出现为GIS的改造提供了新思路。云计算具有高可靠性、高通用性、可伸缩性和按需服务的特征,在海量数据存储计算等方面具有明显的优势[5]。采用云计算技术来构建GIS系统可以有效解决地理信息领域面临的数据密集、计算密集和并发密集的问题[6-9]。云计算通过网络,先将庞大的计算处理程序拆成无数个子程序,再交由服务器集群进行分析处理,最后将结果返回给用户,其部署模型主要有私有云、社区云、公共云和混合云这4种[2-4]。包括软件即服务Saa S、平台即服务Paa S和基础设施即服务Iaa S这3种交付模式[4]。目前,国内外主流的云服务提供商有:Amazon EC2 & S3、IBM Cloud、Microsoft Windows Azure、Windows Server Hyper-V、IBM Cloud、阿里云和百度云等。

近年来,云GIS在电网领域的应用越来越广泛。云GIS是用云计算技术来改进传统GIS的结构体系,其实质是将GIS平台迁移到以云计算为支撑的“云”基础设施之上,然后按需为用户提供服务。云GIS可以为用户提供虚拟化的软硬件资源,实现对数据创建、分析、编辑和可视化的完全访问。借助云平台的基础设施可以提供大规模计算能力,实现了GIS中海量空间数据的存储、分析、查询、可视化和虚拟化等功能。提高GIS数据处理与管理能力,解决了地理信息科学领域中计算密集型和数据密集型的各种问题。用户只需要根据业务的需求选择合适终端访问云,如同使用桌面系统那样简单方便[10, 11]。这样可以帮助企业更快地响应用户业务需求的变化、动态扩展服务资源,进而可以最大化GIS资源的利用率。

电网云GIS架构如图 1所示,采用多层结构体系将云GIS中不同的逻辑组件分离开来,最大限度地利用每个组件的功能。平台包括物理层、虚拟层、数据资源层、服务层和应用层,涉及了多个层的服务发现与监控、资源调度和虚拟化等[3, 12]。平台的云GIS应用服务层,通过web端为用户提供数据管理编辑、地图处理、空间分析和服务发布等功能。

图 1 云GIS架构 Fig.1 Proposed GIS Cloud Architecture

GIS云服务器包括了通信层、逻辑层、存储层、应用层和配置层[12, 13],主要是为云GIS提供可伸缩的计算资源,如数据库、服务器逻辑、相关配置、通信接口、服务器端程序和硬件基础设施等[12]。其中,云通信层主要负责管理和控制GIS云系统内的所有通信和云GIS与外界的通信。逻辑层包括了据访问逻辑、表示逻辑、任务逻辑和业务逻辑等。云存储层主要用于维护系统中的空间数据库,它统一了云GIS和DBMS之间的通信。云应用层包括系统分析器、系统日志记录、调度器、数据压缩、数据转换和反向地理编码等工具。云配置层主要用于保持系统配置的一致性,是云GIS的配置管理和存储组件。

2 云GIS实现的关键技术

与传统Web GIS和服务式GIS相比,云GIS需要承载更大量的空间数据及更高的并发访问压力,并提供更为流畅的用户访问性能与体验,这些方面的改善依赖于云GIS的一系列关键技术。云计算应用于GIS的关键技术包括虚拟化(Virtualization)、跨平台、分布式存储、数据并行处理和服务器集群等[10, 14]

2.1 虚拟化技术

虚拟化技术包括计算资源虚拟化、存储资源虚拟化和网络资源虚拟化[14, 15]。通过虚拟化可以将计算资源切割为更小的单元,结合具体的空间数据处理或存储任务,实现资源优化组合。虚拟化技术通过在同一个主机上复用虚拟机的方式来共享硬件资源,实现多用户间资源共享并提高资源利用效率和应用程序灵活度。虚拟化技术主要用于虚拟化云GIS平台中的空间数据存储系统、空间数据服务节点、空间数据处理节点和动态迁移[15]。传统GIS空间数据的处理与服务节点运行于独立的硬件设备,每个节点都需要针对性地安装、设置及调优,配置与维护的工作量大;而云GIS中的计算机节点可以虚拟化为同质虚拟机,可以提供弹性、可伸缩的计算环境,从而实现云GIS中计算节点的快速部署。虚拟化技术包括以下两种:

1)以Oracle Virtual Box和VMware Workstation等为代表的全虚拟化技术。该技术通过在物理硬件和传统操作系统之间安装宿主操作系统,并插入一层虚拟机监视器(virtual machine monitor, VMM)来负责硬件资源的管理,并虚拟化为多个虚拟副本提供给多个虚拟机使用[15, 16]

2)以KVM(kernel-based virtual machine)和VMware ESX Serve为代表的并虚拟化技术[15, 16]。该技术不需要宿主操作系统,可以直接在裸机物理硬件上运行虚拟机。正因为没有宿主操作系统,所有可以大幅降低系统性能损耗。因此,本文采用VMware ESX Server半虚拟化技术来搭建电网云GIS系统。

2.2 跨平台技术

电网GIS在实际应用中往往同时运行于Windows、UNIX、Linux、Android和i OS等不同的操作系统中,因此,云GIS平台需要支持跨平台服务。跨平台技术使云GIS中节点的部署更灵活,可以根据应用模块的实际需求选择合适的操作系统。在云GIS应用中,跨平台技术有3种实现方式:通过第三方软件模拟Windows环境、通过Java实现GIS内核和以标准C++实现GIS内核[15, 17]。考虑到标准C++具有一次编码到处编译的特征,具有广泛的硬件环境和操作系统支持能力,支持Windows、Linux、Android和Ios多种运行环境,且相比java等在处理数据密集型与计算密集型应用中性能优势显著。

因此,本文基于标准C++实现了通用GIS内核(universal GIS core, UGC),将核心功能如空间分析和空间查询用C++实现,确保核心功能的高效性,然后在基础功能之上去实现多种形态的组件及前端应用。

2.3 分布式存储技术

分布式存储技术可以将海量的空间数据分布到多台存储设备或服务器节点上进行处理,减少数据I/O瓶颈并可通过冗余备份提升数据安全性[16]。该技术在云GIS平台中的应用主要有:存储海量地图切片文件和作为分布式空间数据库的持久化层。在Web GIS和Service GIS应用中,地图通常是静态的,通过预生成缓存切片,可以显著提升性能,改进用户体验。但在云GIS应用中,地图范围及比例尺普遍较大,预生成所有的地图切片的文件数量将非常巨大[17]。如果采用常规文件系统(file system)存储组织和管理,不仅难度大且访问效率低。

因此本文采用分布式空间数据存储系统(distributed spatial file system, DSFS),将多台数据服务器节点通过千兆网络互联,并将所有节点的存储资源整合成一个虚拟的存储设备,对外提供存储服务[17]。DSFS可以优化空间数据的存储和访问性能。DSFS分布式架构中节点之间不再以同步通信来协作,降低了节点之间的耦合度,去除了主控服务器的复杂功能逻辑,从而降低了主控服务器的压力,有效提升了云GIS数据存储容量、吞吐效率和鲁棒性。

2.4 数据并行处理框架

空间数据的并行计算是云GIS平台技术发展的又一关键任务,目前应用较为广泛的并行计算框架如线程构建模块(thread building blocks, TBB)框架、面向线程并行的Open MP(open multiprocessing)框架和基于消息中间件的面向进程并行的MPI(message passing interface)框架,以及Open MP与MPI的混合框架(Hybrid)等[14-17]。为了使云GIS中应用程序在单机和多机群集环境中都能发挥并行优势,最大程度重用现有软件功能和支持现有的硬件条件,本文采用混合模式的数据并行处理框架来实现地理空间数据的并行计算。该框架主要由计算节点、消息中间件、主控任务节点、日志分析模块和进度监听模块等5个部分构成。通过混合模式的数据并行处理框架进行并行调度,对数据处理的性能改进效果显著。

2.5 服务器集群技术

服务集群技术是通过将一组松散集成的计算机软件和硬件连接起来,可以由两台或多台计算机在一个群组内协作完成数据处理分析等任务[15]。对于客户端来说集群是透明的,集群中每个节点的资源(内存、处理器、操作系统等)是相互独立的,并为所属的用户集负责。服务器集群的实现方式主要有纵向扩展和横向扩展。纵向扩展是对GIS服务器的硬件(服务器的处理器、内存、存储设备)进行升级,从而提升服务器的计算和存储能力;横向扩展,是通过增加服务器节点的数量,从而提升整个系统的负载能力。由于纵向扩展受制于硬件的更新迭代,升级成本较高;而横向扩展更为灵活性,是目前构建集群系统的首选方案。本文基于横向扩展,采用多层次异构集群技术实现云GIS新系统的服务器集群。

多层次异构集群是超图公司在单层集群的基础上进行改进的多机集群方式[17]。在多层次异构集群架构下所有的节点都是GIS服务器,系统中的基本元素是集群主节点和集群子节点,不再设独立的服务器做负载均衡。在多层次异构集群架构中,GIS服务器既可以是主节点也可以是子节点。主节点对收到的客户端请求进行负载均衡,转发给多个节点处理,也包括其自身。一个集群的主节点可以管理多个子节点,也可以向其他主节点或集群报告并成为他们的子节点,这便实现了集群本身的多层次特征。

多层次异构集群架构如图 2所示,当客户端或GIS应用向集群服务器发送请求时,集群服务器会基于设置的负载均衡方案将任务分配给多个子节点,集群成员响应请求并将响应的结果返回给集群服务器,集群服务器再将响应结果返回给客户端或GIS应用。这样可以满足空间信息应用对超高并发的需求,充分发挥电网云GIS平台的优势。

图 2 多层次异构集群架构 Fig.2 Multi-level Heterogeneous Cluster Architecture

3 电网云GIS应用

为了验证云GIS架构下的数据并行计算及编辑技术的可行性及有效性,本文基于南方电网GIS平台进行综合实践,将关键技术应用到传统的电网GIS中。南方电网的GIS平台自2018年上线以来,已在南方电网公司的8家省级单位运行,通过平台建设与业务应用的持续深化,已实现对输、变、配及低压数据的管理,支撑生产、配电自动化等核心业务系统应用。南方电网云GIS服务应用如图 3所示。

图 3 南方电网云GIS服务 Fig.3 China Southern Grid Cloud GIS Service

南方电网云GIS平台由云GIS软件和端GIS软件两部分组成。云GIS软件部署在云服务器上,由空间数据管理模块、数据查询分析模块、数据处理计算模块、空间服务发布模块、消息服务总线、监控运维模块、服务分发加速模块和空间信息服务门户构成。端GIS包括PC端GIS、组件式GIS开发平台、WEB端SDK、移动终端开发平台和GIS应用系统等。南方电网云GIS在空间数据存储方面,融合了云计算高可靠性、高吞吐率和可伸缩的特性,数据存储可靠安全。在空间数据计算方面,采用虚拟化和集群技术,为电网GIS平台提供了高性能的计算分析能力。在信息服务方面,云计算的可迁移性、可聚合性、共享性和按需服务特点解决了传统GIS系统资源共享困难的问题。实际应用效果证明,融合云计算技术的电网GIS,可以全面提高运行效率、改善用户体验、实现数据共享及业务融合。

4 结束语

本文主要研究了云GIS架构下的数据并行计算及编辑的关键技术,将虚拟化、分布式存储、跨平台技术、数据并行处理技术和服务器集群技术等融入GIS中,从而更好地满足GIS应用对海量数据管理、复杂空间计算和高可用性保障的需求。本文围绕GIS平台软件的架构和具体技术实现,首先介绍云计算相关理论和电网云GIS平台架构;接着介绍了云GIS平台中的关键技术及实现;最后介绍了云GIS在南方电网系统的实际应用效果。实际应用实践证明云GIS架构可以更好地利用电网GIS软件资源,将相关服务应用模块化并产品化。有效简化了云GIS的安装、部署,并降低了运维的难度,促进云GIS应用性能的提升,从而更好地为用户提供稳定、高效、可靠的服务,进而提升了南方电网平台运行效率和企业的整体效益。

参考文献
[1]
地理信息系统导论[M]. 北京: 科学出版社, 1999.
[2]
Gasster S D, Lee C A, Palko J W. Remote Sensing Grids: Architecture and Implementation[M]//Plaza A J, Chang C I. High Performance Computing in Remote Sensing. Balti-more County(UMBC), USA: Chapman and Hall/CRC, 2008: 203-238.
[3]
GIS下的土地利用规划空间布局合理性评价[J]. 测绘与空间地理信息, 2021, 44(2): 113-117. DOI:10.3969/j.issn.1672-5867.2021.02.028
[4]
Yang C, Wu H, Huang Q, et al. Using Spatial Principles to Optimize Distributed Computing for Enabling Physical Science Discoveries[J]. Proceedings of National Academy of Sciences, 2011, 106(14): 5498-5503.
[5]
Foster I, Zhao Y, Raicu I, et al. Cloud Computing and Grid Computing 360-Degree Compared[C]. Proceedings of the 4th Grid Computing Environments Workshop, Austin Convention Center Austin, TX, USA, 2008.
[6]
Armbrust M, Fox A, Griffith R, et al. Above the Clouds: A Berkeley View of Cloud Computing[C]. Proceedings of the IEEE International Conference on Cloud Computing, New York, USA, 2013.
[7]
[8]
Goodchild, M F, Yuan M, Cova T J. Towards a General Theory of Geographic Representation in GIS[J]. International Journal of Geographic Information Science, 2007, 21(3): 239-260. DOI:10.1080/13658810600965271
[9]
Service GIS引发地理信息服务共享与聚合革命[J]. 地理信息世界, 2008, 6(6): 82-85.
[10]
"云GIS"的发展趋势分析[J]. 电脑知识与技术, 2011, 7(16): 3824-3826. DOI:10.3969/j.issn.1009-3044.2011.16.030
[11]
Yang C, Goodchild M, Huang Q, et al. Spatial Cloud Com-Puting: How Can the Geospatial Sciences Use and Help Shape Cloud Computing?[J]. International Journal of Digital Earth, 2011, 4(4): 305-329. DOI:10.1080/17538947.2011.587547
[12]
de Oliveira D, Baião F A, Mattoso M. Towards Taxonomy for Cloud Computing from an e-Science Perspective[M]//Antonpoulos N, Gillon L. Cloud Computing: Principles, Systems and Applications. Heidelberg: Springer-Verlag, 2010.
[13]
基于三维GIS技术的城市热环境和风环境应用展示系统建设[J]. 测绘与空间地理信息, 2021, 44(1): 156-158.
[14]
基于云计算的云数据管理技术[J]. 电子技术与软件工程, 2019(5): 145.
[15]
Ruest D, Ruest N. 虚拟化技术指南[M]. 陈奋, 译. 北京: 机械工业出版社, 2011.
[16]
基于云计算的GIS大数据分析技术与应用[J]. 国外电子测量技术, 2019, 38(9): 136-141.
[17]
李绍俊. 云GIS框架下的数据管理与并行处理关键技术研究[D]. 北京: 中国科学院大学, 2014.