一种顾及空间约束的GIS服务网关平台的制作方法

    专利2022-07-08  85


    本发明涉及地理信息服务技术领域,尤其涉及一种顾及空间约束的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服务层,预先存储有若干种gis服务,所述目标gis服务为所述gis服务中的一种,所述目标gis服务根据所述空间范围获取目标gis服务结果,并将所述目标gis服务结果通过所述路由组件返回给所述应用客户端层。

    作为上述方案的改进,所述调度算法包括以下算法中的一种:先来先服务调度算法、短作业优先调度算法、轮转法算法、多级反馈队列算法。

    作为上述方案的改进,所述智能网关组件层还包括权限认证组件;其中,所述权限认证组件用于在所述应用客户端层响应gis服务调用指令之前,对输入的用户名和密码进行校验;当所述用户名和所述密码匹配时,所述应用客户端层响应gis服务调用指令;当所述用户名和所述密码不匹配时,所述应用客户端层不响应gis服务调用指令。

    作为上述方案的改进,所述智能网关组件层还包括ip黑白名单组件;其中,所述ip黑白名单组件用于禁止所述路由组件转发ip黑名单中的ip地址向对应的gis服务发送的所述gis服务调用请求。

    作为上述方案的改进,所述智能网关组件层还包括实时监控组件;其中,所述实时监控组件用于实时监控所述gis服务的服务状态码、服务延迟时间和服务连接数的至少一种。

    作为上述方案的改进,所述智能网关组件层还包括限流控制组件;其中,所述限流控制组件用于控制所述应用客户端层对所述gis服务进行访问的访问时间段、访问流量、访问次数。

    作为上述方案的改进,所述智能网关组件层还包括日志分析组件;其中,所述日志分析组件用于记录所述gis服务的访问信息,并分析记录的所述访问信息。

    作为上述方案的改进,所述gis服务网关平台包括:

    空间数据服务、地图服务、空间查询服务和空间分析服务,其中,所述空间数据服务提供基于地理信息元数据的服务,包括地理信息数据的内容、质量和描述信息;所述地图服务支持不同平台下发布的地图服务,包括arcgis地图服务,supermap地图服务,geoserver地图服务,和标准ogc地图服务;所述空间查询服务提供地理信息数据的空间查询服务,包括空间定位查询服务和空间关系查询服务;所述空间分析服务提供地理信息数据的空间分析服务,包括空间统计服务,缓冲区分析服务和叠加分析服务。

    与现有技术相比,本发明实施例提供的一种顾及空间约束的gis服务网关平台,包括应用客户端层、智能网关组件层和gis服务层。通过所述应用客户端层响应gis服务调用指令,生成gis服务调用请求并将所述gis服务调用请求发送给负载均衡层,所述负载均衡层根据负载均衡策略接收所述gis服务调用请求,并将该gis服务调用请求发送至智能网关组件层;所述智能网关组件层,包括空间筛选组件和路由组件,所述路由组件用于接收所述gis服务调用请求,所述空间筛选组件用于将所述空间筛选参数转换为空间范围,所述路由组件还用于将携带有空间范围的gis服务调用请求发送给gis服务层中相应的目标gis服务;gis服务层,预先存储有若干种gis服务,所述目标gis服务为所述gis服务中的一种,所述目标gis服务根据所述空间范围获取目标gis服务结果,并将所述目标gis服务结果通过所述路由组件返回给所述应用客户端层。本发明实施例提供的gis服务网关平台,对gis服务的所有请求都经过智能网关组件层转发,为gis服务的访问提供了集中管理的平台,可以有效增强对gis服务访问的安全性管控;同时能够在给定的空间约束条件下实现空间筛选,实现了gis服务的智能化和精细化管理;另外,智能网关组件层的所有组件都是可插拔组件,增强了平台的灵活性和扩展性。

    附图说明

    图1是本发明实施例提供的一种顾及空间约束的gis服务网关平台的结构示意图;

    图2是本发明实施例提供的一种顾及空间约束的gis服务网关平台的总体架构图;

    图3是本发明实施例提供的一种顾及空间约束的gis服务网关平台的物理架构图。

    具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    参见图1,是本发明一实施例提供的一种顾及空间约束的gis服务网关平台的结构示意图;所述gis服务网关平台包括:

    应用客户端层10,用于响应gis服务调用指令,生成gis服务调用请求并将所述gis服务调用请求发送给负载均衡层20;其中,所述gis服务调用请求包括空间筛选参数;

    可选地,应用客户端层10是网页客户端,或者,应用客户端层10是应用程序客户端。示例性的,应用客户端层10,通过标准的http请求协议对注册到平台的gis服务资源进行访问,无须关心服务内部实现使用的具体协议,服务重构时也无须了解服务内部的组成方式。

    负载均衡层20,用于根据基于虚拟服务器集群的负载均衡策略接收所述gis服务调用请求,并根据调度算法将该gis服务调用请求发送至智能网关组件层30;

    示例性的,如图3所示的一种顾及空间约束的gis服务网关平台的物理架构,负载均衡层接受应用客户端层的请求,将所述gis服务调用请求合理的分发到多个网关服务器节点,以提升服务响应的性能和平台的可用性,确保服务的连续性;图3所示的负载均衡层采用lvs keepalived模式的负载均衡高可用方案,lvs是linuxvirtualserver的简写,即linux虚拟服务器,是虚拟的服务器集群系统,主要负责对服务请求的转发,具有较高的抗负载性能,采用一台主机,一台备机的双机热备方案,使用lvs提供的服务调度算法将各个gis服务调用请求转发到下一层的网关服务器节点。为了保障负载集群的高可用性,需要检测任何一个lvs节点是否正常工作,keepalived是专门为lvs提供的健康检查工具,主要有提供两个功能,节点健康状态检查和故障自动切换,当检测到有节点故障时能够自动将请求转移到正常工作节点上;值得说明的是,图3中的gis服务层包含多个gis服务器,gis服务器提供gis服务;

    可选地,所述调度算法包括以下算法中的一种:先来先服务调度算法、短作业优先调度算法、轮转法算法、多级反馈队列算法。值得说明的是,所述先来先服务调度算法、所述短作业优先调度算法、所述轮转法算法和所述多级反馈队列算法可参考现有技术,在此不再赘述。

    智能网关组件层30,包括空间筛选组件31和路由组件32,路由组件32用于接收所述gis服务调用请求,空间筛选组件31用于将所述空间筛选参数转换为空间范围,路由组件32还用于将携带有空间范围的gis服务调用请求发送给gis服务层中相应的目标gis服务;所述空间筛选参数为输入的行政区域名称,所述空间范围为所述行政区域名称对应的地理范围;

    示例性的,针对市一级的用户,当进行gis服务访问的时候按照该市级的空间范围进行筛选,服务的响应结果限定在该市级空间范围内:

    curl-xposthttp://localhost:port/services/servicea/plugins

    --data"name=spatial-limit"

    --data"config.spatial.city=广州市";

    表示对服务servicea开启空间筛选组件,并设置该服务的空间范围为广州市行政区对应的地理范围内。

    值得说明的是,curl是一个利用url语法的命令行工具,支持http协议,用来请求web服务器实现对应的操作,-xpost表示设置http请求方式为post,--data表示附加参数的键值对,以下不再赘述。

    路由组件32为智能网关组件层30的基础核心组件,实现路由控制功能。该组件定义gis服务调用请求的路由规则,路由与服务相关联,每一个匹配给定路由的gis服务调用请求都将被提交给相应的gis服务,通过服务和路由规则的结合实现转发,示例性的:

    curl-xposthttp://localhost:port/services/servicea/routes

    --data"host=example.com"

    --data"path=/newpath";

    表示为服务servicea定义一个路由规则,并设置路由的主机参数为example.com,路由的访问路径为/newpath。

    gis服务层40,预先存储有若干种gis服务,所述目标gis服务为所述gis服务中的一种,所述目标gis服务根据所述空间范围获取目标gis服务结果,并将所述目标gis服务结果通过路由组件32返回给应用客户端层10。

    如图2所示的一种gis服务网关平台的总体架构:

    进一步地,智能网关组件层30还包括权限认证组件33;其中,权限认证组件33用于在应用客户端层10响应gis服务调用指令之前,对输入的用户名和密码进行校验;当所述用户名和所述密码匹配时,应用客户端层10响应gis服务调用指令;当所述用户名和所述密码不匹配时,应用客户端层10不响应gis服务调用指令。

    具体地,应用客户端10接收输入的用户名和密码,在响应gis服务调用指令之前,将其发送到智能网关组件层30中的权限认证组件33,权限认证组件33对所述用户名和所述密码进行校验,当所述用户名和所述密码匹配时,应用客户端层10响应gis服务调用指令;当所述用户名和所述密码不匹配时,应用客户端层10不响应gis服务调用指令。

    示例性的:

    curl-xposthttp://localhost:port/services/servicea/plugins

    --data"name=authentication"

    --data"users=user1"

    --data"token=tokencode";

    表示对服务servicea开启权限认证插件authentication,并设置可以访问的用户为user1,权限授权码为tokencode;

    进一步地,智能网关组件层30还包括ip黑白名单组件34;其中,ip黑白名单组件34用于禁止路由组件32转发ip黑名单中的ip地址向对应的gis服务发送的所述gis服务调用请求。

    示例性的,ip黑白名单组件34提供了gis服务访问的ip黑白名单控制功能。通过ip地址控制禁止访问以增强服务的安全性,可支持单个,多个,范围分段ip,使用示例如下:

    curl-xposthttp://localhost:port/services/servicea/plugins

    --data"name=ip-limit"

    --data"config.blacklist=192.168.1.100";

    表示对服务servicea的访问添加到ip黑名单,并设置禁止访问的ip黑名单为192.168.1.100。

    进一步地,智能网关组件层30还包括实时监控组件35;其中,实时监控组件35用于实时监控所述gis服务的服务状态码、服务延迟时间和服务连接数的至少一种。

    进一步地,智能网关组件层30还包括限流控制组件36;其中,限流控制组件36用于控制应用客户端层10对所述gis服务进行访问的访问时间段、访问流量、访问次数。

    通信网络提供的资源有限,当应用客户端层向网络中发送大量请求时,可能会导致网络瘫痪。示例性的,限流控制组件36的使用如下:

    curl-xposthttp://localhost:port/services/servicea/plugins

    --data"name=stream-limit"

    --data"config.size=10m"

    --data"config.timeduring=09:00-18:00"

    --data"config.hour=1000";

    限流控制组件36限定应用客户端层10对服务servicea的访问进行限流控制,允许访问时间段为九点整到十八点整,访问流量限制为10兆,每小时访问次数最多为1000次。

    进一步地,智能网关组件层30还包括日志分析组件37;其中,日志分析组件37用于记录所述gis服务的访问信息,并分析记录的所述访问信息。

    其中,所述调用信息指的是所述gis服务响应所述gis服务调用请求后返回给应用客户端层10的相关信息,包括调用的gis服务类型、时延等;所述访问信息包括访问用户以及对应的访问时间、访问的gis服务类型、访问成功与否。

    进一步地,空间筛选组件31、路由组件32、权限认证组件33、ip黑白名单组件34、实时监控组件35、限流控制组件36和日志分析组件37都是可插拔组件。

    进一步地,所述gis服务还包括空间数据服务41、地图服务42、空间查询服务43和空间分析服务44,其中,空间数据服务41提供基于地理信息元数据的服务,包括地理信息数据的内容、质量和描述信息;地图服务42支持不同平台下发布的地图服务,包括arcgis地图服务,supermap地图服务,geoserver地图服务,和标准ogc地图服务;空间查询服务43提供地理信息数据的空间查询服务,包括空间定位查询服务和空间关系查询服务;空间分析服务44提供地理信息数据的空间分析服务,包括空间统计服务,缓冲区分析服务和叠加分析服务。

    值得说明的是,gis服务层40主要是对gis服务资源进行注册管理,每一个gis服务都是一个资源,需要将其注册到平台中。示例性的,注册一个地图服务资源:

    curl-xposthttp://localhost:port/services/add

    --data"name=servicea"

    --data"type=servicetype.wms"

    --data"url=http://localhost:port/wms/test";

    表示注册一个名为servicea的gis服务资源,类型为地图服务,该服务的url为http://localhost:port/wms/test。

    本发明实施例提供的一种gis服务网关平台,包括应用客户端层、负载均衡层、智能网关组件层和gis服务层,通过所述应用客户端层响应gis服务调用指令,生成gis服务调用请求并将所述gis服务调用请求发送给所述负载均衡层;其中,所述gis服务调用请求包括空间筛选参数;所述负载均衡层根据负载均衡策略接收所述gis服务调用请求,并将该gis服务调用请求发送至所述智能网关组件层;所述智能网关组件层,包括空间筛选组件和路由组件,所述路由组件用于接收所述gis服务调用请求,所述空间筛选组件用于将所述空间筛选参数转换为空间范围,所述路由组件还用于将携带有空间范围的gis服务调用请求发送给gis服务层中相应的目标gis服务;gis服务层,预先存储有若干种gis服务,所述目标gis服务为所述gis服务中的一种,所述目标gis服务根据所述空间范围获取目标gis服务结果,并将所述目标gis服务结果通过所述路由组件返回给所述应用客户端层。本发明实施例提供的一种gis服务网关平台,对gis服务的所有请求都经过智能网关组件层,为gis服务的访问提供了集中管理的平台,可以有效增强对gis服务访问的安全性管控,同时能够在给定的空间约束条件下实现空间筛选,实现了gis服务的智能化和精细化管理,智能网关组件层的所有组件都是可插拔组件,满足对服务多样化的管控要求,增强了平台的灵活性和扩展性。

    以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。


    技术特征:

    1.一种顾及空间约束的gis服务网关平台,其特征在于,包括:

    应用客户端层,用于响应gis服务调用指令,生成gis服务调用请求并将所述gis服务调用请求发送给负载均衡层;其中,所述gis服务调用请求包括空间筛选参数;

    所述负载均衡层,用于根据基于虚拟服务器集群的负载均衡策略接收所述gis服务调用请求,并根据调度算法将该gis服务调用请求发送至智能网关组件层;

    所述智能网关组件层,包括空间筛选组件和路由组件,所述路由组件用于接收所述gis服务调用请求,所述空间筛选组件用于将所述空间筛选参数转换为空间范围,所述路由组件还用于将携带有空间范围的gis服务调用请求发送给gis服务层中相应的目标gis服务;其中,所述空间筛选参数为行政区域名称,所述空间范围为所述行政区域名称对应的地理范围;

    gis服务层,预先存储有若干种gis服务,所述目标gis服务为所述gis服务中的一种,所述目标gis服务根据所述空间范围获取目标gis服务结果,并将所述目标gis服务结果通过所述路由组件返回给所述应用客户端层。

    2.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述调度算法包括以下算法中的一种:先来先服务调度算法、短作业优先调度算法、轮转法算法、多级反馈队列算法。

    3.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述智能网关组件层还包括权限认证组件;其中,

    所述权限认证组件用于在所述应用客户端层响应gis服务调用指令之前,对输入的用户名和密码进行校验;当所述用户名和所述密码匹配时,所述应用客户端层响应gis服务调用指令;当所述用户名和所述密码不匹配时,所述应用客户端层不响应gis服务调用指令。

    4.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述智能网关组件层还包括ip黑白名单组件;其中,

    所述ip黑白名单组件用于禁止所述路由组件转发ip黑名单中的ip地址向对应的gis服务发送的所述gis服务调用请求。

    5.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述智能网关组件层还包括实时监控组件;其中,

    所述实时监控组件用于实时监控所述gis服务的服务状态码、服务延迟时间和服务连接数的至少一种。

    6.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述智能网关组件层还包括限流控制组件;其中,

    所述限流控制组件用于控制所述应用客户端层对所述gis服务进行访问的访问时间段、访问流量、访问次数。

    7.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述智能网关组件层还包括日志分析组件;其中,

    所述日志分析组件用于记录所述gis服务的访问信息,并分析所述访问信息。

    8.如权利要求1所述的顾及空间约束的gis服务网关平台,其特征在于,所述gis服务包括空间数据服务、地图服务、空间查询服务和空间分析服务,其中,所述空间数据服务包括基于地理信息元数据的服务,所述地图服务包括arcgis地图服务、supermap地图服务、geoserver地图服务和标准ogc地图服务,所述空间查询服务包括空间定位查询服务和空间关系查询服务,所述空间分析服务包括空间统计服务、缓冲区分析服务和叠加分析服务。

    技术总结
    本发明公开了一种GIS服务网关平台,包括:应用客户端层,用于响应GIS服务调用指令,生成GIS服务调用请求并发送给负载均衡层;负载均衡层再将其发送到智能网关组件层;其中,GIS服务调用请求包括空间筛选参数;智能网关组件层,包括空间筛选组件和路由组件,路由组件接收GIS服务调用请求,空间筛选组件将空间筛选参数转换为空间范围,路由组件还将携带有空间范围的GIS服务调用请求发送给GIS服务层中相应的目标GIS服务;GIS服务层,预存有若干种GIS服务,目标GIS服务为GIS服务中的一种,目标GIS服务根据空间范围获取目标GIS服务结果,并返回给应用客户端层。采用本发明实施例,能够实现空间筛选,同时提供GIS服务访问管理平台,增强了对GIS服务访问的安全性管控。

    技术研发人员:王明省;何华贵;吴瑞龙;林鸿;刘洋;张鹏程;杨卫军;李少智
    受保护的技术使用者:广州市城市规划勘测设计研究院
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23015.html

    最新回复(0)