面向服务中心的地理信息系统总体架构
2018-01-06曾莉
曾莉
(华北计算技术研究所北京100083)
面向服务中心的地理信息系统总体架构
曾莉
(华北计算技术研究所北京100083)
为了实现广域网环境下大量用户对地理信息的并发访问,满足各行各业在网络环境下基于在线服务应用种类更加丰富的地理信息的迫切需求,以及对高性能、高可靠、高可用、高可扩展的地理信息系统的要求,本文提出了面向服务中心的地理信息系统总体架构,对面向服务中心的地理信息系统的总体架构进行了详细的分析与设计,并给出了海量地理空间数据存储与管理、大规模地理信息应用服务器集群、高并发、高可靠的Web服务器集群的实现技术途径。
地理信息系统;服务中心;架构;技术途径
随着大数据时代中计算机与地理信息技术的高速发展,网络环境下的地理信息服务并发访问数量越来越大,从TB级到PB级,人们对可靠的网络化地图和地理信息服务的需求与日俱增。以往的地理信息系统架构在性能、功能以及二次开发能力都无法满足用户对地理信息应用的需求,无法满足系统网络化、服务化大规模快速发展的要求。
地理信息系统架构的发展大体经历了4个阶段。首先是传统的单机架构,接着是C/S架构,然后是B/S架构,再然后就是面向SOA的企业级的架构。传统的单机架构,运行在一台机器上,这样的架构使用简单,配置成本低,数据全部在一台机器上,同一时刻只能由一人操作,因此有着强一致性,但是它不能直接与其他计算机进行数据交互,不能进行分布式的处理,性能很低,只适合于输入量很少的环境下;C/S架构的地理信息系统运行在局域网上,通常是把所有的数据集中在一台数据服务器上,多个客户端软件共享数据C/S架构的地理信息系统只有一层交互,响应比较快,但是该结构下的每台客户机都需要安装相应的客户端程序,分布功能弱,兼容性差,变更不灵活,维护管理起来比较困难,不能实现快速部署;B/S架构的地理信息系统分布性比C/S架构的强,而且开发起来也比较简单,但是它对服务器的要求比较高,并且传输数据也慢;面向SOA的企业级地理信息系统是基于服务式架构的。服务式架构的地理信息系统通过调用不同服务器上发布的服务来实现。支持各种终端形式,包括浏览器、桌面软件、移动设备等。但是企业级地理信息系统可支持的地理数据量小,数据种类有限,大量用户访问的性能低。因此本文提出了一种新的地理信息系统即面向服务中心的地理信息系统来满足人们的需求,解决现有地理信息系统架构的不足[1-11]。
1 系统总体设计
面向服务中心的地理信息系统包括客户端、地理信息Web服务器集群软件、地理信息应用服务器群、服务目录服务器群、地理信息访问引擎和存储层,如图1所示。
图1 系统总体架构
客户端可以是浏览器、移动终端和桌面应用等终端组件,用户通过客户端的终端组件可以与Web服务层进行交互,访问地理信息服务。
地理信息Web服务器集群软件。包括两组服务器群,一组是由地理信息Web服务接入服务和若干个地理信息Web服务构成的服务器群软件,主要提供除地图瓦片服务以外的其它在线服务;另一组是由若干瓦片服务构成的服务器群软件,提供了高速地图瓦片服务。
应用服务器集群在服务中心内以高可靠、高可用、可伸缩的服务器集群环境提供各种类型的地理信息在线服务,地理信息应用服务器集群由地理信息服务负载均衡软件、多个地理信息应用服务和集群管理控制软件组成。地理信息应用服务为各服务组件等服务组件提供运行时环境,管理服务组件的生命周期,并提供线程池、连接池、缓存管理等公共服务;地理信息服务负载均衡软件管理多台地理信息应用服务器形成集群,根据不同服务器的健康状况,将来访的服务请求以最高效的方式分配到合适的应用服务器节点上去处理;集群管理控制台主要提供对集群中各节点状态监控及集群日志查看等功能。
1)目录服务器集群包括多个目录服务。目录服务在基于服务目录与负载信息存储层之上实现,提供各类地理信息服务目录和服务中心服务目录注册功能。目录服务接入服务,主要对外接入最终用户的服务请求,并均衡的将各服务请求转发至各目录服务,再将目录服务的结果返回给最终用户。
2)地理信息访问引擎模块主要基于空间数据文件系统和关系数据库,并基于分布式地理空间数据库提供了对各类地理数据(矢量、栅格、地名、文献、实景、瓦片等)的访问功能,构建统一的元数据库、统一管理各类地理数据关联的元数据信息,包括资源库引擎、栅格数据引擎、导航引擎、实景引擎、搜索引擎、目录管理、导航算法、地形分析算法以及对关系型数据库、分布式地理空间数据块的访问接口等。
3)存储层主要针对矢量数据、栅格数据、瓦片数据、多媒体数据、实景数据等各类海量地理空间数据高并发访问需求,提供了高可靠、可扩展、高性能的分布式存储环境。它是由关系型数据库、分布式数据库、分布式文件系统、缓存服务器群和搜索数据库组成的专用空间数据库。
2 系统任务处理流程
面向服务中心的地理信息系统处理用户请求根据请求的任务类型的不同,大体分为以下3种。
1)当请求访问地理数据目录服务时,系统任务处理流程如图2所示。
图2 地理数据目录服务访问流程
客户端发送地理信息目录服务访问请求,目录服务接入服务接收到服务后,根据地理信息服务目录服务器集群各节点的负载状况将任务分派给合适的地理信息目录服务器。目录服务器调用目录服务相关组件来处理请求,并将目录信息等存入关系型数据库。最后由各目录服务组件将处理结果综合返回给客户端。
2)当请求瓦片或者流媒体相关服务时,系统处理请求的流程如图3所示。客户端将服务请求发给Web服务器接入服务群,Web服务器接入服务根据请求的服务类型和各服务集群中每个服务节点的负载状况,将请求交予合适的服务器。接收到任务分派的瓦片服务器或流媒体服务器调用相关服务组件执行服务,然后处理结果与数据存储相互交互,最后通过服务器直接将请求相应返回到客户端。
图3 瓦片/流媒体服务访问流程
3)除了前两种情况,大多数用户请求都会经过如图4所示的任务处理流程。
①客户端的终端组件接收用户的请求,并将请求通过网络发送到Web服务层。
②Web服务接入器获取到请求后,根据请求的任务类型和Web服务器集群中各节点的负载状况,将请求交于合适的Web服务器进行处理。
③Web服务器接受到任务分派后,调用相应的Web服务组件对请求进行处理。
④Web服务器调用应用服务层的应用服务组件进行进一步的处理。Web服务层将请求通过TCP/IP协议传到应用服务层。协调服务器接收到请求后将请求交给负载均衡器。
⑤负载均衡器根据应用服务器集群中各节点的负载状态以及请求的服务类型,按照指定的负载均衡策略,将请求分派给合适的应用服务器来分析处理请求。
⑥应用服务器接收到任务分派后,调用相应的应用服务组件来对请求进行分析处理。
⑦应用服务器通过数据访问引擎与数据存储层进行数据交互。
⑧应用服务器将处理的结果返回给Web服务器做最后的处理。
⑨最后由Web服务器直接将最后的结果返回给客户端。
图4 任务处理流程
3 关键技术
以往的地理信息系统架构无法再满足用户的需求,必须攻破新的技术来构建新的地理信息系统架构,来适应时代的发展与需求。主要体现在以下几个方面:
1)用户需要应用的数据种类和数据量非常大,无法通过传统的集中式存储进行实现;
2)系统需要支持的并发访问用户数也非常大,传统规模的服务器集群在吞吐量、可靠性和可用性等方面无法满足;
3)用户的应用环境是广域网,带宽有限,但是系统性能还必须保证是高效的,等等。
所以研究海量地理空间数据存储技术、大规模地理信息应用服务集群技术以及高并发、高可靠的Web服务器集群技术是关键。
3.1 海量地理空间数据存储技术
地理空间数据大致分为结构化、半结构化、非结构化3种模型。它们数据量巨大,可以达到PB级。特别是占了主体地位的半结构化空间数据,不仅数据量大而且对访问与存储效率的要求特别高。如果使用传统的关系型数据库,则会成为整个系统的性能瓶颈,会存在访问效率低、并发用户少、部署速度慢等问题。针对空间数据的特点,本架构采用了综合分布式文件系统、分布式海量半结构化数据管理系统、搜索引擎数据库和关系型数据库系统等多种存储管理技术构成专用的复合空间数据库。它可以为海量数据的高效存储、快速访问、快速部署提供高性能、高可靠性的数据库基础支撑。
其中,使用关系型数据库来存储结构化的数据,比如元数据信息,用户权限、目录信息、图层信息等;使用分布式数据库集群来管理粒度较小的空间数据块,比如半结构化的矢量数据块,栅格数据块等以及非结构化图片等数据。其中数据分块可以减少数据的网络传输的数据量,使得系统可以在有限的内存空间中访问大量的数据。分布式数据库管理的这些空间数据块,最后会聚成较大的数据块存储于分布式文件系统上;使用分布式文件系统来存储对外下载数据文件和一些模型文件;使用搜索引擎数据库来存储需要进行查询分析的数据,比如导航数据,实景的站点信息数据等。使用缓存数据库来保存入库处理以及访问过程中需要临时记录的信息数据。为了实现海量数据的高效存储访问,还需要将存储的数据进行统一的组织,下面将以半结构化的矢量数据为例进行详细说明。
矢量数据瓦片的物理存储如图5所示。将系列比例尺矢量数据的图层信息提取出来,一方面构建图层数据在分布式存储中的访问URL,一方面构建图层信息对象(包括图层的基本信息、附属属性信息等),然后将他们存入关系型数据库。同时,系列比例尺的矢量数据经过数据切片、创建空间索引、数据打包等预处理,变成很多矢量数据瓦片,并将这些矢量数据瓦片存入分布式存储系统(HDFS/HBase)中。矢量瓦片数据的内部组织结构如图6所示。其中,通过图层位置索引信息可以快速定位图层在数据瓦片中的索引位置,通过空间索引能获取到某个范围包含的所有数据块,通过目标位置索引可以快速定位目标在数据块中的存储位置,从而提高目标数据的访问速率。
图5 矢量数据瓦片物理存储
3.2 大规模地理信息应用服务器集群
地理信息系统中的应用服务器主要是在局域网环境下为大量并发访问用户提供丰富的高性能地理信息服务(如路径规划服务,实景服务,地形分析服务等)。单个应用服务器的负载能力有限,不能支撑网络环境下大规模用户的并发访问,因此系统使用大规模应用服务器集群协同服务来解决网络环境下单个应用服务器计算能力不足的问题;并使用负载均衡器来分派与管理集群,实现集群的容灾备份,忙闲监控与任务分派。但是单个负载均衡器管理的应用服务器数量有限,不能支撑大规模的应用服务器集群的部署,因此系统采用多级负载均衡器;同时,系统使用分布式协调服务器来协调与管理整个应用服务器集群。分布式协调服务器可以实时感知集群的当前状态,比如全局参数,所有节点的信息等,监控集群事件并广播消息。所以对负载均衡技术、分布式协调服务器、应用服务器集群架构的研究很重要。
3.2.1 负载均衡技术
负载均衡器主要有负载信息管理、任务分派、任务转移、故障处理等功能。负载均衡器通过系统待处理任务队列长度、CPU利用率、I/O利用率、内存利用率等指标来衡量服务器节点的负载状况。各应用服务器节点收集自身的负载信息并定期的上报给负载均衡器的负载信息管理模块,负载信息管理模块将负载信息在内存中进行高效的存储,对任务分派模块和转移模块提供信息。任务分派模块负责将请求根据当前的负载均衡算法分配到合适的服务节点上。不用的应用场景下需要的负载均衡算法可能不同,因此,系统采用“插件式”的负载均衡策略,在部署系统时,可以灵活的通过配置选择合适的策略[12-13]。系统运行过程中,任务转移模块会定期的对集群各节点的负载信息进行统计并判断当前是否是负载均衡状态,如果不均衡,则将负载最重的节点上的任务转移一部分到负载最轻的节点上。故障处理模块会通过服务节点定期发来的心跳消息自动识别发生故障的服务节点,将这个节点删除,并将删除节点未完成的任务转移到正常的节点上去处理。
同时,为了保证负载均衡器的正常运行,系统采用一主多从集群模式使多个负载均衡器同时工作。提高了系统的稳定性和可靠性。
3.2.2 分布式协调服务器
分布式协调服务器,为整个集群各节点(包括负载均衡器,应用服务器等)提供了可靠的与分布式应用相关的基础服务,包括选举服务、命名服务、组服务、全局参数服务以及分布式锁服务等全局服务[14]。通过该服务,实现了集群节点的动态加入与退出、实时感知集群当前的状态、广播消息和监控集群时间等功能。
3.2.3 应用服务器集群架构
为了部署大规模的应用服务器集群,系统采用分布式多层级模式。如图7所示。
集群采用了两级负载均衡,在一个大的集群中包含了若干个小的集群,每个小的集群都包含一个负载均衡器和多个应用服务器。通过两级负载均衡技术,使得集群的规模从之前支持N个节点扩大到支持N×N个服务节点,实现了大规模的应用服务器集群的部署。同时,各个应用服务器子群可以根据不同的需求部署专用的地理信息服务,从而提高地理信息服务的性能。往往用户传来的请求往往比较小,而返回的结果相比请求大很多。因此,当从应用服务器返回的结果不再经过负载均衡以及Web服务层服务接口服务器。
图7 应用服务器集群架构
3.3 高并发、高可靠的Web服务器集群
地理信息系统中,web服务器提供了瓦片服务、目录服务、矢量数据服务、栅格数据服务、搜索服务、缓存服务等重要的服务功能。过去的地理信息系统实现的是由单个web服务器以REST的方式为用户提供基本的地理信息服务,只支持少量数据的用户并发访问。面对高并发的用户访问以及海量地理空间数据的请求,一台web服务器的处理能力和储存能力远远不够,因此系统使用web服务器集群来改善负载压力,通过增加web服务器的方式不断改善系统性能同样实现了系统的伸缩性,解决了大量用户的高并发访问问题。架构使用接入服务器群作为web服务器层的负载均衡器,接入服务器获取应用请求,然后根据请求的类型和各web服务器的负载状况分配请求给合适的web服务器节点,并监控web服务器节点的健康状态,及时进行故障转移,使系统不会因为单个服务器的宕机而影响应用,为系统提供了高可靠的访问能力。为了保证系统高可用,同样采用了集群的形式来部署接入服务器集群[15-17]。
同时,系统优化了缓存机制。之前以服务地图为单位的缓存机制替换为粒度更细的以瓦片图层为单位的缓存机制。相比之前以服务地图为单位的缓存,新的以瓦片图层为单位的缓存更加的灵活,缓存重用度也更高。
4 结论
计算机网络的迅速发展,使得人们获取地理信息越来越方便快捷,但是随之而来的是越来越庞大的用户群体,越来越多的在线服务功能需求,高并发的访问。我们需要不断地完善与更新现有的地理信息体系架构,应用新的技术新的思想,给人们提供更多更好的地理信息服务。
[1]曲鑫,张伟.云服务平台下的地理信息系统技术研究[J].测绘与空间地理信息,2014(9):113-115.
[2]潘艺.大数据时代地理信息系统的应用研究[J].电脑知识与技术,2015(5):19-20.
[3]何冰.论地理信息系统的发展趋势[J].广东科技,2013(6):84.
[4]张晶,王琰洁,黄小锋.一种微服务框架的实现[J].计算机系统应用,2017(4):82-86.
[5]韩立钦,孙波中,杨军义.面向SOA架构的地理信息公共服务平台建设技术研究[J].测绘标准化,2015(4):25-27.
[6]陆嘉恒.Hadoop实战[M].北京:机械工业出版社,2011.
[7]施磊磊,施化吉,束长波,等.基于Hadoop和HBase的分布式索引模型的研究[J].信息技术,2015(6):109-111,114.
[8]陈俊欣.基于Hadoop的空间矢量数据的分布式存储与查询研究[D].成都:电子科技大学,2016.
[9]单杰,秦昆,黄长青,等.众源地理数据处理与分析方法探讨[J].武汉大学学报:信息科学版,2014(4):390-396.
[10]吴琰,唐小明.基于HBase的分布式空间数据库技术[J].吉林大学学报:理学版,2016(6):1355-1360.
[11]张叶,许国艳,花青.基于HBase的矢量空间数据存储与访问优化[J].计算机应用,2015(11):3102-3105.
[12]宋俊辉,冯岩.负载均衡的分布式系统任务调度优化算法[J].吉林大学学报:理学版,2017(2):383-387.
[13]叶其革,张岚,樊冬梅.智能变电站多层数据交换调度优化方法研究[J].自动化与仪器仪表,2017(8):115-117.
[14]李文韵.基于分布式协调服务的集群管理的设计与实现[D].北京:北京邮电大学,2014.
[15]马力,王大翊,汪永生.基于SOA的Web服务应用构建关键技术研究[J].物联网技术,2014(8):76-79,83.
[16]陈荣赏,蓝秀锦.LVS/DR、NGINX混合负载均衡集群技术应用研究[J].湖北民族学院学报:自然科学版,2017(1):23-26.
[17]王利萍.基于Nginx服务器集群负载均衡技术的研究与改进[D].济南:山东大学,2015.
Geography information system architecture in service center
ZENG Li
(North China Institute of Computing Technology,Beijing100083,China)
In order to meet the demand of more abundant online service under the network environment in various areas and high effective,high reliability,high availability and high performance geography Information System in service center,a new GIS architecture is proposed.This paper analyzes and designs the GIS architecture in detail,then gives the technical approach of storage and management of mass geography spatial data,large-scale application server cluster,high concurrency and high reliability web server cluster.
geography information system;service center;architecture;technical approach
TN99
A
1674-6236(2017)23-0163-06
2017-04-24稿件编号:201704177
曾莉(1992—),女,四川达州人,硕士。研究方向:地理信息与图形图像。