首页> 中国专利> 一种建立租户驱动的电网地理信息空间服务的方法

一种建立租户驱动的电网地理信息空间服务的方法

摘要

本发明涉及一种建立租户驱动的电网地理信息空间服务的方法,包括步骤有:(1)建立该方法所需的系统,该系统包括多租户访问控制中心、监控调度、空间服务池、存储资源及计算资源;(2)多租户访问控制中心的部署;(3)建立监控调度;(4)建立空间服务池;(5)建立存储资源;(6)建立计算资源。本发明利用多租户技术有效度量各租户对于电网地理信息空间服务系统的资源使用情况,从而有针对性的改进占用计算资源更多的业务应用场景,通过对各租户的配额控制,避免造成整个电网空间信息服务系统的瘫痪,电网空间服务系统提供托管数据的统一管理和访问的权限控制。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-15

    著录事项变更 IPC(主分类):H04L29/08 专利申请号:2016110497202 变更事项:发明人 变更前:陈文康李江伟赵光俊王汝英李欣荣高勇张海涛朱传晶刘万龙徐骏 变更后:李强陈文康赵峰李江伟赵光俊王汝英李欣荣高勇张海涛朱传晶刘万龙徐骏

    著录事项变更

  • 2019-09-06

    授权

    授权

  • 2017-05-03

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20161124

    实质审查的生效

  • 2017-04-05

    公开

    公开

说明书

技术领域

本发明属于地理空间信息技术领域,特别是一种建立租户驱动的电网地理信息空间服务的方法。

背景技术

传统的电网地理信息空间服务系统实现了电网资源的结构化管理和图形化展现,并以面向服务的架构为各类业务应用提供电网图形和分析服务。各类业务应用需要电网设备的位置信息或者拓扑关系时,通过调用电网地理信息空间服务系统发布的标准服务获取相关数据;如果电网地理信息空间服务系统发布的标准服务不满足业务应用的需要,各类业务应用通过调用电网地理信息空间服务系统发布的标准服务进行二次开发,进行空间服务功能的扩展,并自行部署所扩展的空间服务。

这种传统的电网地理信息空间服务系统架构,不方便度量各类业务应用对于电网地理信息空间服务系统的资源使用情况,比如各类业务应用所调用的电网空间服务的次数、调用服务所消耗的电网地理信息空间服务系统的内存资源、CPU资源、磁盘资源等。

传统的电网地理信息空间服务系统通过F5(一种硬件负载方式)完成服务调用的负载均衡,无法根据业务应用的需求动态的、及时的调整高负载的电网空间服务的运行实例。

同时,各业务应用对于扩展开发的空间服务自行部署。空间服务的数据传输量和普通文本数据传输量相比,网络传输量更大。由于各个业务应用所扩展开发的空间服务独立的自行部署,和电网地理信息空间服务系统提供的标准空间服务通过网络进行数据的频繁交互,存在传输的数据量大、占用网络带宽大等问题,所扩展的空间服务往往性能较低。

此外,传统的电网地理信息空间服务系统管理的电网设备类型固定。各业务应用如果有特殊电网设备需要展示时,往往需要搭建一套地理信息平台的基础环境,将需要展示的特殊电网设备进行发布,从而实现业务应用所需的特殊电网设备和电网地理信息空间服务系统中数据的叠加显示。

通过对国内公开专利及其它文献的检索,没有发现与本发明方法相近似的公开专利及文献。

发明内容

本发明的目的在于克服现有技术的不足,提供一种建立租户驱动的电网地理信息空间服务的方法。

本发明解决其技术问题是采取以下技术方案实现的:

一种建立租户驱动的电网地理信息空间服务的方法,包括步骤如下:

(1)建立该方法所需的系统,该系统包括多租户访问控制中心、监控调度、空间服务池、存储资源及计算资源;

(2)多租户访问控制中心的部署,多租户访问控制中心是访问电网地理信息空间服务系统的入口,是租户的权限控制中心,实现下列功能:

①对租户进行创建、删除,并对租户可使用的配额进行管理,

②对租户使用的电网地理信息空间服务系统的资源进行访问控制,

③对租户访问请求进行负载均衡,多租户访问控制中心提供租户管理、认证授权、资源托管;

(3)建立监控调度,监控调度是对各租户使用电网地理信息空间服务系统资源情况的监控,根据各租户创建时分配的配额,进行资源使用的限制,具体包括:

①监控服务器,负责接收监控代理收集的数据和状态信息;负责所有监控设备和监控项目配置、数据的存储与报表的生成与展示及报警发送;对空间服务池中的服务进行调度,负责根据节点运行代理上传的宿主机状态和运行实例的状态,进行运行实例的故障转移;

②节点运行代理,运行在被监控设备上的一个监控组件,用以收集被监控设备上的各种监控数据,并将这些数据发送给监控服务器;

③监控数据,所有被监控主机和被监控项目的配置信息以及系统所采集的数据都存在时序数据库中;

(4)建立空间服务池,空间服务池是运行在电网地理信息空间服务系统基础环境中的服务的集合,既包括电网地理信息空间服务系统的标准服务,也包括各租户根据业务需要扩展的空间服务;

(5)建立存储资源,存储资源是电网地理信息空间服务系统的存储系统,存储的内容包括电网图形数据、托管数据、元数据及监控数据,存储内容通过关系型数据库进行存储;

(6)建立计算资源,计算资源是电网地理信息空间服务系统的提供的计算能力,包括CPU、内存、硬盘、网络,是所有宿主机的计算能力的集合,计算资源的使用,是使用容器技术实现空间服务对于资源的访问控制。

而且,所述步骤(2)中③的租户管理包括租户的创建、租户的删除,具体步骤如下:

①进行创建租户还是删除租户的判断

②所述步骤①如果是创建租户的具体步骤如下:

a)设置租户的基本信息,租户的基本信息如下:

i.租户编号:租户的唯一标识;

ii.租户名称:描述该租户所对应的业务系统名称;

b)设置租户可使用的资源配额,并写入到租户配额表,租户使用的配额信息如下:

i.可访问的电网数据:按照电网设备的图层和单位,设置该租户可以访问的电网数据;

ii.服务调用的次数:设置租户访问的电网地理信息空间服务系统标准服务的次数;

iii.托管数据的限制:包括托管数据的图层数量限制、托管数据可占用磁盘空间的大小限制;

iv.托管服务的限制:包括托管服务的数量限制、托管服务运行时占用的计算资源的上限,运行的托管服务的运行实例的数量上限;

c)分配访问的授权码:将租户的基本信息写入租户表,并返回授权码,而且,该步骤所述授权码用于租户在调用电网地理信息空间服务系统时使用,用于验证租户身份是否合法;

③所述步骤①如果是删除租户的具体步骤如下:

a)删除托管服务运行实例,所述具体步骤如下:

i.从元数据中获取到该租户托管的服务名称、编号;

ii.通知监控调度模块,由监控调度模块负责删除服务资源池中该租户托管服务的运行实例;

iii.删除元数据中对该租户所托管服务的描述信息;

b)删除托管数据,所述具体步骤如下:

i.从元数据中获取到托管数据的名称、存储位置;

ii.根据托管数据的名称、存储位置,物理删除托管数据;

iii.删除元数据中对租户所托管数据的描述信息;

c)删除租户的相关信息,所述具体步骤如下:

i.删除租户表中该租户的基本信息;

ii.删除服务池运行实例表中托管服务所对应的实例地址;

iii.删除租户相关的其它信息。

而且,所述步骤(2)中③的认证授权,具体包括:

①实现对租户身份信息的验证,避免非法的请求得到处理;

②根据负载情况,对租户的访问请求进行负载均衡,具体步骤如下:

a)请求参数解析,对客户端、应用端发送的调用请求参数进行解析,得到租户的下列信息:

i.租户编号;

ii.授权码;

iii.服务名称:该服务名称可以是电网地理信息空间服务系统提供的标准服务,也可以是租户根据业务需要所扩展的空间服务,该步骤所述的标准服务是电网地理信息空间服务系统提供的并通过服务方式对外提供的基础电网数据访问接口,所述标准服务按照微服务进行设计开发,每一个微服务提供一类数据访问接口,空间服务池中一个容器实例部署一个微服务;

b)租户标识验证,从租户表中读取租户列表,验证租户的标识是否有效;

c)租户配额验证,从租户配额表中读取租户的配额信息,验证本次请求是否达到了该租户可访问服务的调用次数上限;

d)分配访问地址,读取服务池运行实例表,获取到运行实例的访问地址。同时修改租户配额表中数据;

其中,所述运行实例表包括下面信息,多租户访问控制中心中的认证授权模块从运行实例表中获取运行实例的清单,并按照轮询的方式分配访问地址:

i.IP、端口:通过IP地址和端口可以访问到运行实例提供的服务,所述运行实例,通过IP地址和端口可以从外界访问到;

ii.租户编号:标识该运行实例由哪一个租户创建,如果是电网地理信息空间服务系统提供的标准服务,标识为默认租户;

iii.服务名称:标识该运行实例提供的服务名称。

iv.心跳时间:标识该运行实例最后一次的心跳上报时间,如果心跳上报时间距离太远,表明该运行实例提供的服务不可用,负载均衡时不往该运行实例上访问请求;

v.最近访问时间:记录该条记录对应的运行实例最近的一次访问时间;

e)返回结果给租户。

而且,所述步骤(2)中③的资源托管包括租户的空间数据托管和业务应用的空间服务的托管,具体步骤如下:

①租户标识验证,从租户表中读取数据,进行租户标识验证,如果是不合法的租户标识,结束流程;

②租户配额验证,从租户配额表读取租户的配额数据,对租户的配额进行验证,如果租户使用的配额已经超过上限,结束流程;

③判断资源托管类型:服务托管还是数据托管,

A.所述步骤中如果是数据托管,执行下面的步骤:

a)上传托管数据,上传的托管数据可以为Shapefile文件格式、Excel格式;

b)托管数据解析和验证,对上传的托管数据进行验证,进行图层的解析,得到托管数据的下列信息:

i.图层列表

ii.图层的标识

iii.图层字段

iv.坐标系统

c)托管数据权限设置,设置托管数据是否共享给其它租户使用,如果设置共享的类型:

i.读:共享该托管数据的租户只可以读取该托管数据的数据表中的空间数据;

ii.写:共享该托管数据的租户可以往该托管数据的数据表中增加新的空间数据;

d)托管数据存储,将解析后验证后的托管数据写入数据库中,并将托管数据的元数据信息写入元数据表中,并将上一步骤的权限设置,记录到租户数据控制表中;

所述托管数据管理具有下列特征:

i.业务应用所托管的数据和电网地理信息空间服务系统中的电网数据存在统一数据库;

ii.托管数据在存储时表名采用租户编号_64位全局唯一标识符的格式,避免托管数据表明的重复;

iii.托管数据的隔离通过逻辑隔离,通过所属租户、共享租户和操作类型三个字段用来配置托管数据在租户见的共享隔离规则,所属租户字段表明数据资源的拥有者,拥有者对数据拥有完全控制权限,可以修改共享策略,共享和停止共享数据,共享租户字段表明数据资源共享给谁,共享的权限记录在对应的操作类型中,操作类型包括读、写两种,租户可以对托管的数据进行符号化,发布成地图服务,租户也可以将托管的数据和有权限访问的基础电网图层进行组合,重新符号化,并发布成地图服务;

e)返回结果;

B.步骤中如果是服务托管,执行下列的步骤:

a)上传托管服务,上传托管服务的程序包到FTP服务器,所述托管服务如果只是对电网地理信息空间服务系统中标准服务的组合,无需访问额外的空间数据,则直接上传托管服务即可。如果托管服务使用了访问了额外的空间数据,需要将额外访问的空间数据以数据托管的方式托管到电网地理信息空间服务系统中;

b)部署到服务池,上传的托管服务部署到服务池,更新元数据和服务池运行实例表,所述服务池是所有空间服务的集合,不仅包括电网地理信息空间服务系统提供的标准空间服务,也包括业务应用扩展开发的空间服务。所有空间服务均按照微服务进行设计开发,微服务运行容器实例中,并通过调度监控管理微服务运行容器实例的创建、删除、暂停;

其中,所述部署到服务池的具体步骤如下:

i.监控调度程序根据各个宿主机的资源使用情况和需要运行的实例数量,通知相应的宿主机上的Agent创建运行实例;

ii.Agent根据接收到的创建指令从FTP服务器下载基础镜像文件和程序包,创建出运行实例,基础镜像文件包括了空间服务运行所需的中间件、运行的基础环境;

iii.监控调度程序根据Agent反馈的实例创建情况,更新元数据和服务池运行实例表;

c)返回结束。

而且,所述步骤(3)中①的监控服务器具有下列特征:

①监控服务器单独部署,发布监控数据收集服务由各个节点运行代理上报监控数据;

②监控服务器主动分析监控数据,并生成分析资源使用情况的报表;

③监控服务器负责维护运行实例表;

④监控服务器负责通知节点运行代理维护宿主机上的运行实例,包括新建、删除、暂停运行实例;

所述步骤(3)中②节点运行代理具有下列特征:

①一个宿主机部署一个节点运行代理,宿主机上的节点运行代理主动上报收集的监控数据;

②节点运行代理监控所在宿主机的存活状态,并每隔一段时间上报一次宿主机的存活状态;

③节点运行代理负责宿主机上容器的存活状态,并每隔一段时间上报容器的存活状态;

④节点运行代理监控宿主机的资源使用情况,并每隔一段时间上报一次宿主机的资源使用情况,如果达到预警值,监控服务器不再往其上创建新的运行实例;

⑤节点运行代理根据监控服务器发送的指令,在宿主机上创建新的运行实例或者删除运行实例;

⑥节点运行代理提供连接后台数据库的连接池,为运行实例提供数据库的连接转发;

所述步骤(3)中③的监控数据具体包括下列内容:

①宿主机的CPU使用率;

②宿主机的内存使用率;

③宿主机的负载均值;

④宿主机的网络流量;

⑤宿主机的磁盘使用量;

⑥宿主机的心跳信息;

⑦运行实例的心跳信息。

而且,所述步骤(4)的空间服务池具有下面的特征:

①采用容器技术,一个宿主机上运行多个容器的运行实例;

②运行实例可以通过宿主机的IP地址和端口访问,同一个宿主机上的运行实例IP地址相同,但使用的端口不一样;

③每个运行实例能使用的宿主机的计算资源在创建该运行实例时指定,并在运行实例运行过程中受到控制;

④同一宿主机上的运行实例独立运行,运行环境相互隔离,某一个运行实例的挂掉,不影响同一宿主机上其它运行实例的运行;

⑤电网地理信息空间服务系统提供的标准服务按照微服务的方式进行开发,租户根据业务应用扩展开发的空间信息服务也按照微服务的方式进行开发,每个运行实例有且仅部署一个标准服务或者扩展开发的空间服务;

⑥每一个运行实例通过节点运行代理上报自身的运行状态;

⑦每一个运行实例通过节点运行代理连接后台数据库进行操作。

而且,所述步骤(5)中的电网图形数据是指基础电网设备的图形数据,包括电网设备的位置坐标、设备的关键属性及拓扑连接关系,基础电网设备图形数据按照电网设备管理专业进行分层存储,基础电网图形数据按照设备所属单位进行访问控制;

所述步骤(5)中的托管数据是业务应用在电网地理信息空间服务系统中存储的空间数据。不同租户的托管数据通过逻辑进行隔离,电网地理信息空间服务系统提供托管数据的存储、管理存储的空间数据;

所述步骤(5)中的元数据,是对电网地理信息空间服务系统中的各类存储数据进行的描述,包括但不局限下列信息:

①基础电网数据的描述;

②托管数据的描述;

③租户信息;

所述步骤(5)中的监控数据存储各种监控采集的数据,使用时序数据库存储,数据内容包括但不局限于下面信息:

①宿主机的CPU使用率;

②宿主机的内存使用率;

③宿主机的负载均值;

④宿主机的网络流量;

⑤宿主机的磁盘使用量;

⑥宿主机的心跳信息;

⑦运行实例的心跳信息。

本发明的优点和积极效果是

1、本发明利用多租户技术,能有效度量各租户对于电网地理信息空间服务系统的资源使用情况,从而有针对性的改进占用计算资源更多的业务应用场景。

2、本发明利用多租户技术,通过对各租户的配额控制,包括可使用的电网设备、CPU使用占比、内存使用限额、调用次数限额等,避免某租户不合理的资源消耗造成对其它租户所托管服务的影响或者某租户不合理的资源消耗造成整个电网空间信息服务系统的瘫痪。

3、本发明利用多租户技术,各租户可以根据业务应用需要扩展自身所需的空间服务,并托管到电网空间信息服务系统中,电网空间服务系统提供托管服务的监控和运行实例的调度。

4、本发明利用多租户技术,各租户可以根据业务应用需要扩展自身所需的空间数据图层,并托管到电网空间信息服务系统中,电网空间服务系统提供托管数据的统一管理和访问的权限控制。

附图说明

图1是电网地理信息空间服务系统框架结构示意图;

图2是租户管理示意图;

图3是认证授权示意图;

图4是资源托管示意图;

图5是电网地理信息空间服务系统运行示意图;

图6是托管数据示意图;

图7是模块部署示意图。

具体实施方式

以下对本发明实施例做进一步详述,以下实施例只是描述性的,不是限定性的,不能以此限定本发明的保护范围。

一种建立租户驱动的电网地理信息空间服务的方法,包括步骤如下:

(1)该系统由多租户访问控制中心、监控调度、空间服务池、存储资源、计算资源组成,见图1电网地理信息空间服务系统装置图。

(2)多租户访问控制中心是访问电网地理信息空间服务系统的入口,是租户的权限控制中心。具有下列的功能:

①对租户进行创建、删除,并对租户可使用的配额进行管理

②对租户使用的电网地理信息空间服务系统的资源(存储资源、计算资源等)进行访问控制

③对租户访问请求进行负载均衡

多租户访问控制中心提供租户管理、认证授权、资源托管。

所述步骤(2)中租户管理包括租户的创建、租户的删除,其流程见图2租户管理,具体步骤如下:

①创建租户还是删除租户的判断

②所述步骤①如果是创建租户的具体步骤如下:

a)设置租户的基本信息,租户的基本信息如下:

i.租户编号:租户的唯一标识

ii.租户名称:描述该租户所对应的业务系统名称

b)设置租户可使用的资源配额,并写入到租户配额表。租户可使用的配额信息如下:

i.可访问的电网数据:按照电网设备的图层和单位,设置该租户可以访问的电网数据

ii.服务调用的次数:设置租户可以访问的电网地理信息空间服务系统标准服务的次数

iii.托管数据的限制:包括可托管数据的图层数量限制、托管数据可占用磁盘空间的大小限制

iv.托管服务的限制:包括可托管服务的数量限制、托管服务运行时占用的计算资源(内存、磁盘、CPU、网络)的上限,可运行的托管服务的运行实例的数量上限

c)分配访问的授权码。将租户的基本信息写入租户表,并返回授权码。

而且,该步骤所述授权码用于租户在调用电网地理信息空间服务系统时使用,用于验证租户身份是否合法。

d)结束流程。

③所述步骤①如果是删除租户的具体步骤如下:

a)删除托管服务运行实例。所述具体步骤如下:

i.从元数据中获取到该租户托管的服务名称、编号

ii.通知监控调度模块,由监控调度模块负责删除服务资源池中该租户托管服务的运行实例

iii.删除元数据中对该租户所托管服务的描述信息

b)删除托管数据。所述具体步骤如下:

i.从元数据中获取到托管数据的名称、存储位置

ii.根据托管数据的名称、存储位置,物理删除托管数据

iii.删除元数据中对租户所托管数据的描述信息

c)删除租户的相关信息。所述具体步骤如下:

i.删除租户表中该租户的基本信息

ii.删除服务池运行实例表中托管服务所对应的实例地址

iii.删除租户相关的其它信息

d)结束流程。

所述步骤(2)中认证授权,主要实现的功能:

①实现对租户身份信息的验证,避免非法的请求得到处理

②根据负载情况,对租户的访问请求进行负载均衡

其处理流程见图3认证授权,具体步骤如下:

①请求参数解析。对客户端、应用端发送的调用请求参数进行解析,得到租户的下列信息:

a)租户编号

b)授权码

c)服务名称:该服务名称可以是电网地理信息空间服务系统提供的标准服务,也可以是租户根据业务需要所扩展的空间服务。

该步骤所述的标准服务是电网地理信息空间服务系统提供的并通过服务方式对外提供的基础电网数据访问接口。所述标准服务按照微服务进行设计开发,每一个微服务提供一类数据访问接口,空间服务池中一个容器实例部署一个微服务。

②租户标识验证。从租户表中读取租户列表,验证租户的标识是否有效。

③租户配额验证。从租户配额表中读取租户的配额信息,验证本次请求是否达到了该租户可访问服务的调用次数上限。

④分配访问地址。读取服务池运行实例表,获取到运行实例的访问地址。同时修改租户配额表中数据。

所述运行实例表包括下面信息,多租户访问控制中心中的认证授权模块从运行实例表中获取运行实例的清单,并按照轮询的方式分配访问地址:

a)IP、端口:通过IP地址和端口可以访问到运行实例提供的服务。所述运行实例,通过IP地址和端口可以从外界访问到。

b)租户编号:标识该运行实例由哪一个租户创建。如果是电网地理信息空间服务系统提供的标准服务,标识为默认租户。

c)服务名称:标识该运行实例提供的服务名称。

d)心跳时间:标识该运行实例最后一次的心跳上报时间,如果心跳上报时间距离太远,表明该运行实例提供的服务不可用,负载均衡时不往该运行实例上访问请求。

e)最近访问时间:记录该条记录对应的运行实例最近的一次访问时间

⑤返回结果给租户。

所述步骤(2)中资源托管,包括租户的空间数据托管和业务应用的空间服务的托管,如图4所示,其步骤如下:

①租户标识验证。从租户表中读取数据,进行租户标识验证。如果是不合法的租户标识,结束流程。

②租户配额验证。从租户配额表读取租户的配额数据,对租户的配额进行验证,如果租户使用的配额已经超过上限,结束流程。

③判断资源托管类型:服务托管还是数据托管。

所属步骤中如果是数据托管,执行下面的步骤:

a)上传托管数据。上传的托管数据可以为Shapefile文件格式、Excel格式。

b)托管数据解析和验证。对上传的托管数据进行验证,进行图层的解析,得到托管数据的下列信息:

i.图层列表

ii.图层的标识

iii.图层字段

iv.坐标系统

c)托管数据权限设置。设置托管数据可以是否可以共享给其它租户使用,如果可以设置可以共享的类型:

i.读:共享该托管数据的租户只可以读取该托管数据的数据表中的空间数据。

ii.写:共享该托管数据的租户可以往该托管数据的数据表中增加新的空间数据。

d)托管数据存储。将解析后验证后的托管数据写入数据库中,并将托管数据的元数据信息写入元数据表中,并将上一步骤的权限设置,记录到租户数据控制表中。

所述托管数据管理具有下列特征:

i.业务应用所托管的数据和电网地理信息空间服务系统中的电网数据存在统一数据库。

ii.托管数据在存储时表名采用“租户编号_64位全局唯一标识符”的格式,避免托管数据表明的重复。

iii.托管数据的隔离通过逻辑隔离,控制示意图见图6托管数据。

通过所属租户、共享租户和操作类型三个字段用来配置托管数据在租户见的共享隔离规则。

所属租户字段表明数据资源的拥有者,拥有者对数据拥有完全控制权限,可以修改共享策略,共享和停止共享数据;

共享租户字段表明数据资源共享给谁,共享的权限记录在对应的操作类型中。操作类型包括读、写两种。

iv.租户可以对托管的数据进行符号化,发布成地图服务;租户也可以将托管的数据和有权限访问的基础电网图层进行组合,重新符号化,并发布成地图服务。

所述符号化是地理信息系统的概念,是指对空间数据设置显示的符号;

所述地图服务是地理信息系统的概念,地图服务往往提供对所发布的空间数据的进行查询、显示、地图导出、网络分析等功能,并支持WMS、WFS、KML等通用的地理信息标准接口。扩展新的空间服务时往往需要使用地图服务所提供的功能进行开发。

e)返回结果。

所属步骤中如果是服务托管,执行下列的步骤:

a)上传托管服务。上传托管服务的程序包到FTP服务器。

所述托管服务如果只是对电网地理信息空间服务系统中标准服务的组合,无需访问额外的空间数据,则直接上传托管服务即可。如果托管服务使用了访问了额外的空间数据,需要将额外访问的空间数据以数据托管的方式托管到电网地理信息空间服务系统中。

b)部署到服务池。上传的托管服务部署到服务池,更新元数据和服务池运行实例表。

所述服务池是所有空间服务的集合,不仅包括电网地理信息空间服务系统提供的标准空间服务,也包括业务应用扩展开发的空间服务。所有空间服务均按照微服务进行设计开发,微服务运行容器实例中,并通过调度监控管理微服务运行容器实例的创建、删除、暂停。

所述部署到服务池的具体步骤如下:

i.监控调度程序根据各个宿主机的资源使用情况和需要运行的实例数量,通知相应的宿主机上的Agent(节点运行代理)创建运行实例。

ii.Agent(节点运行代理)根据接收到的创建指令从FTP服务器下载基础镜像文件和程序包,创建出运行实例。基础镜像文件包括了空间服务运行所需的中间件、运行的基础环境。

iii.监控调度程序根据Agent(节点运行代理)反馈的实例创建情况,更新元数据和服务池运行实例表。

c)返回结束。

(3)监控调度。监控调度是对各租户使用电网地理信息空间服务系统资源(存储资源、计算资源)情况的监控,根据各租户创建时分配的配额,进行资源使用的限制。

所述调度监控包括下面几个组成部分,见图5电网地理信息空间服务系统运行示意图:

①Server(监控服务器)。负责接收监控代理收集的数据和状态信息;负责所有监控设备和监控项目配置、数据的存储与报表的生成与展示、报警发送;对空间服务池中的服务进行调度,负责根据Agent(节点运行代理)上传的宿主机状态和运行实例的状态,进行运行实例的故障转移。

②Agent(节点运行代理)。运行在被监控设备上的一个监控组件,用以收集被监控设备上的各种监控数据,并将这些数据发送给监控服务器。

③监控数据。所有被监控主机和被监控项目的配置信息以及系统所采集的数据都存在时序数据库中。

而且,所述组成部分中Server(监控服务器)具有下列特征:

①Server(监控服务器)单独部署,发布监控数据收集服务由各个Agent(节点运行代理)上报监控数据。

②Server(监控服务器)主动分析监控数据,并生成分析资源使用情况的报表。

③Server(监控服务器)负责维护运行实例表。

④Server(监控服务器)负责通知Agent(节点运行代理)维护宿主机上的运行实例,包括新建、删除、暂停运行实例。

而且,所述组成部分中Agent(节点运行代理)具有下列特征:

①一个宿主机部署一个Agent(节点运行代理),宿主机上的Agent(节点运行代理)主动上报收集的监控数据。

②Agent(节点运行代理)监控所在宿主机的存活状态,并每隔一段时间上报一次宿主机的存活状态。

③Agent(节点运行代理)负责宿主机上容器的存活状态,并每隔一段时间上报容器的存活状态。

④Agent(节点运行代理)监控宿主机的资源使用情况,并每隔一段时间上报一次宿主机的资源使用情况。如果达到预警值,Server(监控服务器)不再往其上创建新的运行实例。

⑤Agent(节点运行代理)根据Server(监控服务器)发送的指令,在宿主机上创建新的运行实例或者删除运行实例。

⑥Agent(节点运行代理)提供连接后台数据库的连接池,为运行实例提供数据库的连接转发。

而且,所属组成部分中监控数据包括下列内容:

①宿主机的CPU使用率

②宿主机的内存使用率

③宿主机的负载均值

④宿主机的网络流量

⑤宿主机的磁盘使用量

⑥宿主机的心跳信息

⑦运行实例的心跳信息

(4)空间服务池。空间服务池是运行在电网地理信息空间服务系统基础环境中的服务的集合,既包括电网地理信息空间服务系统的标准服务,也包括各租户根据业务需要扩展的空间服务。

而且,所述空间服务池具有下面的特征:

i.采用容器技术,一个宿主机上运行多个容器的运行实例。

ii.运行实例可以通过宿主机的IP地址和端口访问。同一个宿主机上的运行实例IP地址相同,但使用的端口不一样。

iii.每个运行实例能使用的宿主机的计算资源(CPU、内存、磁盘、网络)在创建该运行实例时指定,并在运行实例运行过程中受到控制。

iv.同一宿主机上的运行实例独立运行,运行环境相互隔离。某一个运行实例的挂掉,不影响同一宿主机上其它运行实例的运行。

v.电网地理信息空间服务系统提供的标准服务按照微服务的方式进行开发;租户根据业务应用扩展开发的空间信息服务也按照微服务的方式进行开发。每个运行实例有且仅部署一个标准服务或者扩展开发的空间服务。

vi.每一个运行实例通过Agent(节点运行代理)上报自身的运行状态。

vii.每一个运行实例通过Agent(节点运行代理)连接后台数据库进行操作。

(5)存储资源。存储资源是电网地理信息空间服务系统的存储系统,存储的内容包括电网图形数据、托管数据、元数据、监控数据。存储内容通过关系型数据库进行存储。

而且,该步骤所述电网图形数据是指基础电网设备的图形数据,包括电网设备的位置坐标、设备的关键属性、拓扑连接关系。基础电网设备图形数据按照电网设备管理专业进行分层存储,基础电网图形数据按照设备所属单位进行访问控制。

该步骤所述托管数据是指业务应用时,业务应用有特殊的电网设备类型进行展示,这些特殊的电网设备类型在基础电网图形数据中的没有。电网地理信息空间服务系统提供了基础架构,各个业务应用可以根据自身的需要在电网地理信息空间服务系统中存储所需的特殊电网设备,并实现这些特殊电网设备和基础电网图形数据的叠加展示。

该步骤所述托管数据就是业务应用在电网地理信息空间服务系统中存储的空间数据。不同租户的托管数据通过逻辑进行隔离,电网地理信息空间服务系统提供托管数据的存储、管理(创建、删除、更新)存储的空间数据。

该步骤所述元数据,是对电网地理信息空间服务系统中的各类存储数据进行的描述,包括但不局限下列信息:

①基础电网数据的描述

②托管数据的描述

③租户信息

该步骤所述监控数据存储各种监控采集的数据的,使用时序数据库存储,数据内

容包括但不局限于下面信息:

①宿主机的CPU使用率

②宿主机的内存使用率

③宿主机的负载均值

④宿主机的网络流量

⑤宿主机的磁盘使用量

⑥宿主机的心跳信息

⑦运行实例的心跳信息

(6)计算资源。计算资源是电网地理信息空间服务系统的提供的计算能力,包括CPU、内存、硬盘、网络,是所有宿主机的计算能力的集合。

所述计算资源的使用,是使用容器技术实现空间服务对于资源的访问控制。

本发明的基本原理

本发明的建立及方法,包括步骤如下:

(1)该系统由多租户访问控制中心、监控调度、空间服务池、存储资源、计算资源组成,见图1电网地理信息空间服务系统装置图,各个模块的部署见图7模块部署示意图,说明如下:

①模块多租户访问控制中心部署在两台服务器上,两台服务器互为主主备份。

②各个宿主机上运行容器实例,一个容器实例部署一个空间服务。每个宿主机上部署一个Agent(节点运行代理),由Agent(节点运行代理)采集各个宿主机的状态信息、运行在主机上的容器的运行状态、空间服务的运行状态;Agent(节点运行代理)同时也负责和后台数据库集群建立连接池,各个容器对数据库的访问通过Agent(节点运行代理)完成。

③Server(调度监控)部署在单独的服务器,为保证高可用性,采用主备部署。Server(调度监控)负责接受上报的监控信息并存储在时序数据库influxdb中;同时,Server(调度监控)负责给各个宿主机上的Agent(节点运行代理)发送指令进行容器运行实例的创建、删除等操作。

④时序数据库influxdb负责存储监控数据。数据库集群存储电网数据、托管数据、元数据。

⑤运行实例表采用Memcached进行存储,为保证运行实例表的高可用性,Memcached采用主备部署。

⑥FTP服务器。存储基础镜像文件和上传的托管服务的程序包。创建运行实例从FTP服务器下载所需的文件。

(2)租户是本文所述的核心概念,一个租户对应一个集成的业务应用系统。租户有不同的配额限制,租户的配额在创建该租户时进行分配,也可在后期进行调整。可供租户使用的配额包括:

①可访问的电网数据:根据基础电网设备的图层和单位,设置该租户可以访问的电网数据;

②服务调用的次数:设置租户可以访问的电网地理信息空间服务系统标准服务的次数;

③托管数据的限制:包括可托管数据的图层数量限制、托管数据可占用磁盘空间的大小限制;

④托管服务的限制:包括可托管服务的数量限制、托管服务运行时占用的计算资源(内存、磁盘、CPU、网络)的上限,可运行的托管服务的运行实例的数量上限。

(3)租户访问电网地理信息空间服务系统时需要传入授权码,授权码是租户访问电网地理信息空间服务系统的身份标识,用于验证该租户是否合法。

(4)租户管理由电网地理信息空间服务系统中有管理员权限的人员进行操作。创建租户时设置租户的基本信息,并分配可使用配额的上限。租户的应用场景主要包括租户的数据托管、租户的服务托管。

(5)租户数据托管的实施步骤如下:

①上传托管数据。租户上传的托管数据可以为Shapefile文件格式、Excel格式。

②托管数据解析和验证。多租户访问控制中心中的资源托管模块对上传的托管数据进行验证,进行图层的解析,得到托管数据的下列信息:

a)图层列表

b)图层的标识:图层的名称

c)图层字段:字段名称

d)坐标系统:托管数据的坐标系

③托管数据权限设置。租户对自身托管的数据具有全部的控制权限,可读可写,租户也可以将自己托管的数据共享给其它租户使用,可以共享的类型包括:

a)读:共享该托管数据的租户只可以读取该托管数据的数据表中的空间数据。

b)写:共享该托管数据的租户可以往该托管数据的数据表中增加新的空间数据。

④托管数据存储。将解析后验证后的托管数据写入数据库中,并将托管数据的元数据信息写入元数据表中,并将上一步骤的权限设置,记录到租户数据控制表中。租户数据托管的具体实施如下:

a)业务应用所托管的数据和电网地理信息空间服务系统中的基础电网数据存在统一存储数据库中。

b)解析得到托管数据的图层列表,在数据库中创建相应的表,托管数据的表名采用“租户编号_64位全局唯一标识符”的格式,避免托管数据表名的重复。

c)托管数据的隔离通过逻辑隔离,逻辑隔离通过租户数据控制表实现。控制示意图见图6托管数据。租户数据控制表包括下面字段:

i.ID:编号,主键

ii.资源对象:存储托管数据的图层名/表名

iii.所述租户:该托管数据中图层由哪个租户创建,该租户对托管的数据有全部操作权限

iv.共享租户:将该托管数据中某一图层共享给该租户使用。该租户可操作的权限记录在操作类型一列。

v.操作类型:记录共享租户可使用托管数据的权限,操作类型包括读、写两种权限

通过所属租户、共享租户和操作类型三个字段用来配置托管数据在租户见的共享隔离规则。

d)返回结果。

⑤租户服务托管的实施步骤如下:

a)上传托管服务。托管服务是业务应用时电网地理信息空间服务系统标准服务不满足需求时,业务应用基于标准服务组件扩展的新的空间服务。新扩展的空间服务托管运行在电网地理信息空间服务系统,上传的托管服务程序存储在FTP服务器上。

b)部署到服务池。所述部署到服务池的具体步骤如下:

i.Server(调度监控)根据各个宿主机的资源使用情况和需要运行的实例数量,计算出需要在各个宿主机上创建的运行实例的数量。

ii.Server(调度监控)发送指令给Agent(节点运行代理),并传递基础镜像文件(基础镜像文件包括了空间服务运行所需的中间件、运行的基础环境)和程序包的URL、运行实例可使用的CPU、内存、网络、磁盘等参数。

iii.Agent(节点运行代理)根据接受到的参数,下载基础镜像文件和程序包,创建出运行实例。

iv.Agent(节点运行代理)将创建的结果反馈给Server(调度监控),并负责更新元数据和服务池运行实例表。

v.返回结束。

(6)租户访问服务的实施步骤:

①租户访问服务的格式如下:

http://IP:端口/sggisserver/services/租户编号/服务名称/方法名?参数1=参数值&参数2=参数值&参数3=参数值&...&参值4=参数值,如果是电网地理信息空间服务系统提供的标准服务,则租户编号为默认值gis,所有的标准服务隶属于系统的特殊租户gis。租户访问的授权码在HTTP头中进行传递。

②请求参数解析,得到下列信息:

a)租户编号:要访问的服务属于该租户。

b)服务名称:要访问的服务名

c)授权码

③从租户表中读取租户信息。根据租户编号,验证该租户是否存在。

④根据租户编号,解密授权码,验证本次访问是否合法。

⑤根据租户编号,读取配额信息,如果租户对服务的访问次数达到配额上限,访问失败;如果访问次数未达到配额上限,分配一个访问地址。所述步骤分配访问地址的具体实施步骤如下:

a)服务池运行实例表中的心跳时间标识该运行实例最后一次的心跳上报时间,如果心跳上报时间距离太远,表明该运行实例提供的服务不可用,上一步骤的查询要将其过滤掉。

b)服务池运行实例表中的最近访问时间标识了该条记录对应的运行实例最近的一次访问时间。根据租户编号,服务名称,心跳时间查询服务池运行实例表,得到运行实例表的清单,从清单中选择最近访问时间字段中距离现在时间最远的记录作为访问的地址。

c)更新所选择的记录的中最近访问时间为当前时间。

d)返回访问地址。

(7)租户配额限制的实施步骤。每一个租户在电网地理信息空间服务系统中使用的资源受到配额的限制。电网地理信息空间服务系统中的配额项包括:

①可访问的电网数据:按照电网设备的图层和单位,设置该租户可以访问的基础电网数据。设置完租户可访问的基础电网图层后,租户扩展的空间服务不能访问其不可访问的基础电网图层。租户可以将其托管的数据和可访问的基础电网图层进行组合,发布新的图形服务出来进行访问。

②服务调用的次数:设置租户可以访问的电网地理信息空间服务系统标准服务的次数。租户在访问服务时,在多租户访问控制中心的认证授权模块进行服务调用次数的限制,当服务调用的次数达到限额的上限时,访问失败。

③托管数据的限制:包括可托管数据的图层数量限制、托管数据可占用磁盘空间的大小限制。租户托管数据的限制在租户上传托管数据时进行控制,超过可托管数据的图层数量限制的上限、可占用磁盘空间的大小限制时,托管数据上传失败。

④托管服务的限制:包括可托管服务的数量限制、托管服务运行时占用的计算资源(内存、磁盘、CPU、网络)的上限,可运行的托管服务的运行实例的数量上限。每一个租户的可托管服务数量在上传托管服务包时进行控制,超过可托管服务的数量上限,则上传托管服务不成功。托管服务运行时占用的计算资源(内存、磁盘、CPU、网络)的上限,通过容器进行控制,容器技术提供了优秀的资源隔离机制,各个空间服务的运行相互隔离相互不影响。可运行的托管服务的运行实例的数量上限通过Server(监控服务器)完成,Server(监控服务器)监控运行实例的数量,并进行动态调整。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号