SuperMap iServer 集群系统可以将具有相同 GIS 服务能力的 GIS 应用进行整合,共同为客户端提供高效的地图响应,也可以将位于不同环境(软硬件环境)、不同区域的 GIS 应用进行整合,提供全面、高可扩展的地图服务。用户根据实际的情况,可以自由配置集群中 GIS 应用、地理数据与集群的关系。

 

1 GIS 应用、GIS 服务与地理数据的关系

地理数据是 GIS 系统的核心组成部分,它限定了一个 GIS 系统能够服务的空间范围。地理数据通常以两种形式被存储,一种是文件型地理数据,一种是空间数据库型地理数据。通常文件型地理数据存储容量有限,在编辑数据的时候,并发访问能力有限。空间数据库型地理数据可以存储海量的数据,并发性能良好。在 SuperMap 中地理数据通过工作空间来管理,一个工作空间可以同时管理一个或者多个地理数据,如一个工作空间中可以同时包括北京数据、上海数据,即访问该工作空间的地理数据可以获得北京数据、上海数据。同样,一个地理数据可以同时被多个工作空间管理,如图 7中地理数据库2的北京数据可以同时被工作空间1和工作空间2管理,即两个工作空间都可以对该数据进行操作,如编辑等。以下内容,本文将以空间数据库型地理数据为例进行说明。

SuperMap iServer 的 GIS 服务根据其服务能力可以分为几种类型,包括基础地图服务、数据管理服务、空间分析服务、三维分析服务等。不同类型的 GIS 服务所能够计算的 GIS 功能不同,如基础地图服务提供对地理数据的基本 GIS 操作能力,包括地图显示,放大某范围的地图等;数据服务提供对地理数据的管理能力,包括创建、删除、修改数据集及其属性等。

根据 GIS 应用、GIS 服务和地理数据的基本描述,可以得出如下关系:

GIS 服务与地理数据的关系

一个 GIS 服务必须对应一个工作空间的数据,上文中提到,工作空间中可以包括一个或者多个地理数据,因此一个 GIS 服务可以将一个或者多个地理数据对外发布并提供该数据的 GIS 服务。如图 7中基础地图服务1与工作空间1建立对应关系,默认情况下,GIS 服务1将发布工作空间下所有的地理数据,即发布上海和北京的数据库中数据。

图 7 GIS 服务器与 GIS 服务、地理数据库关系

GIS 应用与 GIS 服务的关系

一个 GIS 应用可以提供一个或者多个具有不同 GIS 能力的 GIS 服务,如图 7中 GIS 应用1提供基础地图服务1和数据管理服务1两个 GIS 服务。GIS 应用根据实际情况,可以随时创建或者删除某个或者某几个 GIS 服务。

GIS 应用能力

GIS 应用的能力主要分为服务能力和地理数据能力,服务能力通过 GIS 应用所提供的 GIS 服务类型决定。GIS 应用的地理数据能力通过 GIS 服务所使用的地理数据决定,每一个 GIS 应用都需要配置地理数据,如图 7中 GIS 应用1提供对上海和北京的地理数据的 GIS 服务。

2 集群系统中 GIS 应用节点的数据同步

集群服务负责对 GIS 应用提供的 GIS 服务的任务调度与管理,GIS 服务是真正做地理数据、GIS 功能处理的实体,因此,集群系统对外提供的 GIS 服务能力取决于该系统中 GIS 应用所提供的能力。上文中提到,GIS 应用的能力主要由所提供的 GIS 服务类型和所发布的地理数据决定。因此集群系统可以通过配置 GIS 应用的能力来扩展集群系统的能力范围,即集群系统与集群里 GIS 应用节点的能力同步。

相同服务能力的 GIS 应用组成的集群

相同服务能力的 GIS 应用是指 GIS 应用提供的 GIS 服务的类型与所发布的地理数据完全相同,如图 8中 GIS 应用 b1和 GIS 应用 b2就是具有相同服务能力的 GIS 应用,他们都提供了上海地图数据的基础地图服务。

集群系统由相同服务能力的 GIS 应用组成,可以为高并发访问的客户端提供快速的地图请求的响应。如图 8中客户端同时向集群服务发送100个上海数据的 GIS 请求,集群服务可以将100个请求平均分配给 GIS 应用1和 GIS 应用2处理,这要比100个请求全部由 GIS 应用1或者 GIS 应用2单独完成要高效。当客户端访问量升高,引起地图响应效率降低,可以考虑向集群中适当增加相同服务能力的 GIS 应用;当客户端访问量降低,可以减少集群中的 GIS 应用。这种 GIS 应用的加入与卸载都是可动态调配的,增强系统的灵活性。

图 8 相同能力的 GIS 服务器组织的集群系统

相同地理数据不同服务能力的 GIS 应用组成的集群

相同地理数据不同服务能力的 GIS 应用指两个或者多个 GIS 应用他们发布相同的空间数据库中的地理数据,但是他们的服务能力有所不同,如图 9所示,GIS 应用 b1提供上海数据的基础地图服务,GIS 应用 b2提供上海数据的数据管理服务。

有不同服务能力的 GIS 应用构成的集群,其服务能力也得到增强。当客户端发送向上海数据添加一个新数据集的请求,集群将请求调配给 GIS 应用2的数据管理服务处理,同样,对上海数据的放大、缩小等请求调配给 GIS 应用1的基础地图服务处理。当客户端请求的数据管理服务并发量升高,集群可以适当的增加具有数据管理服务能力的 GIS 应用,以便增强数据管理服务的处理效能,这些 GIS 应用都是发布同一套上海地理数据。

图 9 相同地理数据不同能力的 GIS 服务器组织的集群系统

不同服务能力的 GIS 应用组成的集群

如图 10所示,不同数据/服务能力的 GIS 应用可以加入到一个集群中,集群服务会根据客户端请求的地理数据和请求的 GIS 功能类型选择最佳的 GIS 服务来处理。集群中 GIS 应用的地理数据和服务能力可以动态变化,以适应客户端请求量的变化。如图 10中,当客户端对地理数据2访问量升高,GIS 应用 a3无法独立且高效的完成请求的处理,此时可以考虑通过增加相同能力的 GIS 应用,或者调配其他 GIS 应用来改善现状。假设客户端对地理数据1的请求通过 GIS 应用 a1即可满足效率要求,那么可以将 GIS 应用 a2的能力进行调整,使 GIS 应用 a2发布地理数据2并具有与 a3相同的服务能力,这样,a2和 a3共同承担客户端对地理数据2的请求,提高处理效率。

在部署 GIS 应用时值得注意的是,当多个 GIS 应用发布同一个地理数据并提供在线编辑能力时,任意 GIS 应用所作的地图编辑与更新的结果都会同步被其他 GIS 应用所读取。当互为备份的地理数据库分别对应不同的 GIS 应用,并提供地图编辑与更新的服务能力时,例如,图 10中地理数据1和地理数据2分别对应 GIS 应用 a1/a2和 a3,a1/a2对 GIS 数据库1所作的地图编辑结果并不会自动被 GIS 数据库2所更新,因为 a1和 a2只负责 GIS 数据库1的地图数据。此时,要实现备份数据(地理数据2)的同步更新,需要用户对互为备份的地理数据做同步更新的操作。

图 10 不同能力的 GIS 服务器组成的集群