在本文中经常会涉及到集群的一些专有名词,在此,对这些专有名词进行简单的描述,以便于读者更加流畅的理解本文。

集群服务

集群服务是 SuperMap iServer 提供的一种服务,它能够获取多个 GIS 应用中的 GIS 服务,将 GIS 服务能力进行整合,根据集群服务中 GIS 服务的状态以及服务能力,为集群服务的客户端提供最佳的 GIS 服务。

集群服务是以 Rest 服务形式对外提供集群服务能力,从监听器获取对应的 GIS 应用(或者下级集群服务)中可用的 GIS 服务信息。集群服务内部包含负载均衡对象,根据指定的算法找出负载最小的可用 GIS 服务,为集群客户端的请求做任务均衡分配。

如果集群服务的客户端是 GIS 服务组件,那么集群服务会对最小负载的 GIS 服务构建一个远程 GIS 服务提供者供 GIS 服务组件调用。

集群系统

集群系统是一个高度透明的可伸缩的 GIS 服务的计算机系统,这样的系统对外作为一个整体为客户端提供 GIS 服务,而在集群系统的内部则是通过集群服务将 GIS 应用提供的 GIS 服务进行管理及任务的分派。

集群系统可以是多层次分布式结构的,集群服务可以集群 GIS 应用同时也可以集群另一个集群服务。集群系统中的单个 GIS 应用或者集群服务通常称为节点,这些节点通常通过局域网连接,但也有其它的可能连接方式。集群系统通常用来改进单个 GIS 应用的计算速度和/或可靠性。一般情况下集群系统提供的 GIS 服务比单个 GIS 应用所提供的 GIS 服务在性能、并发访问能力、稳定性方面都要高得多。

GIS 服务器

GIS 服务器是 SuperMap iServer 提供的一个虚拟的服务器,GIS 服务器是 GIS 应用的装载者,通过 GIS 服务器可以对 GIS 应用中的 GIS 服务进行管理,如启动、停止服务等。

GIS 应用

GIS 应用是针对特定的业务数据提供一系列专有的 GIS 服务的集合。GIS 应用中包括服务提供者,GIS 服务组件和服务接口三个组成部分,三部分相互组合形成一系列专有的 GIS 服务。服务提供者提供 GIS 功能的实现或者提供与第三方 GIS 服务的联系,业务数据在这个模块中被处理。GIS 服务组件对服务提供者进行二次封装,形成适当粒度的 GIS 服务组件,服务接口提供入口点,服务使用者可以使用该入口访问服务所提供的功能。

在集群机制中,加入集群或者从集群中卸载的最小单位是一个 GIS 应用,即集群支持将一个应用中所有的 GIS 服务加入到集群中,或者卸载出集群,但是不支持将一个 GIS 应用中的某一个 GIS 服务单独加入或者卸载出集群。

GIS 服务

GIS 服务是一种形态,经过 GIS 应用中 GIS 服务组件、服务提供者和服务接口的相互作用,最终以 GIS 服务的形态曝露给 GIS 服务器的客户端。

SuperMap iServer 的 GIS 服务按照 GIS 功能可以划分为基础地图服务、空间分析服务、三维服务以及数据管理服务。这些服务都是分别由各自类型的 GIS 服务组件、服务提供者组合而成。

SuperMap iServer 的 GIS 服务按照发布协议可以划分为 REST 服务,SOAP 服务,WMS 服务,RMI 服务等。这些都是基于不同的服务接口实现的。

一个 GIS 应用发布出的 GIS 服务是按照 GIS 功能和发布协议划分其 GIS 服务性质的,如 REST 风格的基础地图服务,REST 风格的空间分析服务等。

异构服务

异构服务是指非 SuperMap iServer 提供的 GIS 服务。如 googleMap 提供的 GIS 服务等。

SuperMap iServer 的集群机制不仅可以对 SuperMap iServer 的服务提供者进行集群,还支持将异构服务加入集群服务中,进行统一管理。

服务提供者

GIS 服务的直接提供者。封装并统一了对 GIS 功能的不同实现,如将本地组件(如 SuperMap iObjects .NET/Java)提供的 GIS 功能封装为 UGCMapProvider、UGCDataProvider,对远程服务(如 第三方 WMS 服务),Web 服务(如 REST 服务等)甚至是经过服务聚合之后的服务进行封装,得到不同类型的服务提供者。这些服务提供者屏蔽了不同服务来源的区别,实现 GIS 功能的统一。

通过 GIS 服务提供者对不同 GIS 功能实体的封装和统一,SuperMap iServer 实现了对多源异构服务的无缝集成与聚合。

GIS 服务组件

GIS 服务组件通过对服务提供者提供的服务能力进行组合,封装成粒度较粗的 GIS 服务组件。

在使用集群的情形下,GIS 服务组件作为集群服务的客户端通过 GIS 服务组件上下文与集群服务建立关联关系,集群服务会对最小负载的 GIS 服务构建一个远程 GIS 服务提供者供 GIS 服务组件调用。

监听器

监听服务监听到对应的报告信息后,将对应的报告信息传递给监听器,监听器根据得到的报告信息更新可用服务提供者信息。如果在间隔时间内没有接收到报告信息,则将对应的 GIS 应用或集群服务(参与集群的集群服务)的可用服务信息移除。

报告器

用于向集群服务报告所在 GIS 应用或者集群对应的可用 GIS 服务信息,报告器会间隔一定时间(如2秒钟)向集群服务发送报告。

负载均衡

随着业务量的不断提高、访问量和数据量的快速增长,对 GIS 服务的处理能力和计算强度也相应增大,使得单一的服务节点无法承担。负载均衡是将大量的并发访问或者数据流量分担到多台节点服务上分别处理,它提供一种廉价有效透明的方法扩展 GIS 服务的处理能力,提高系统的稳定性和可用性。

负载均衡算法

实现负载均衡能力的算法。主要算法包含轮转调度、根据权重轮转调度、最少连接调度、加权最小连接调度等。