首页> 中国专利> 电力GIS跨平台空间数据服务方法及系统

电力GIS跨平台空间数据服务方法及系统

摘要

本发明公开一种电力GIS跨平台空间数据服务系统,采用跨平台空间数据服务引擎及本地空间数据库管理技术,构建一套跨平台部署的三层架构空间数据服务平台及相关的客户端内存空间数据库。系统使用标准的HTTP协议,服务器将采用扩展Apache Web服务器实现对OracleSpatial、ArcSDE等空间数据库的访问和数据调度,客户机将采用GeoStar兼容的空间数据库访问接口,实现对服务器空间数据库的快速获取和基于内存的快速访问,以满足电网空间信息服务平台大量用户并发访问时的空间数据获取效率,提升用户体验。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-20

    授权

    授权

  • 2016-03-16

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20121114

    著录事项变更

  • 2013-04-24

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20121114

    实质审查的生效

  • 2013-03-27

    公开

    公开

说明书

技术领域

本发明涉及空间信息技术,是对电网空间数据管理、调度、缓存的 数据服务中间层技术,尤其涉及一种电力GIS系统跨平台空间数据服务 方法及系统。

背景技术

在电网空间信息服务平台采用全省大集中部署方式的前提下,由于 全网省的电网空间数据及相关属性数据都很庞大,以及大集中方式的客 户端应用的高并发率,所以,采用传统的与空间数据库进行直连的方式 对空间数据访问,将给数据库服务器和网络带宽带来巨大压力。同时也 很大的影响客户端用户的使用效率。

发明内容

本发明提供一种

为解决上述技术问题,本发明提供的一个技术方案是:

提供一种电力GIS跨平台空间数据服务系统,包括数据层、业务层 以及服务层,所述业务层包括消息通信模块、空间数据服务引擎以及空 间数据访问接口;所述服务层包括本地空间数据库以及业务接口;所述 空间数据访问接口用于提供对所述数据层的空间数据库的矢量数据和 属性数据的访问操作;所述空间数据服务引擎用于通过所述空间数据访 问接口对所述数据层的空间数据库进行读取、矢量数据回写、基于Http 协议的数据传输、矢量数据同步、连接池以及矢量数据缓存;所述本地 空间数据库用于对服务器端发送过来的空间数据建立本地缓存,将接受 的空间数据流以及本地编辑的数据上传至服务器,同时保持与服务器的 内容同步。

其中,所述空间数据服务引擎包括:缓冲池,用于将空间数据库中 的矢量数据缓存到本地空间数据库中;版本管理模块,用于通过建立数 据库修改标志的增量记录来对空间数据库状态进行更新,并通过引用状 态的更新来完成版本的更新以及协调冲突,以实现多用户编辑下版本的 并发控制;数据编辑模块,用于将客户端对矢量数据或者属性数据的修 改结果以原子操作回写到空间数据库中,并通知缓冲池更新相应数据以 及发布数据同步消息;连接池,用于空间数据库回写和数据缓冲;SQL 请求转发模块,用于根据用户需要将一些特定SQL语句直接转发给空间 数据库;以及集群服务模块,用于将多台数据服务器进行集群管理,保 持多台数据服务器间的数据一致性与完整性。

其中,所述缓冲池包括:内存管理模块,用于通过API访问缓冲中 的数据;线程管理模块,用于提供线程生命周期管理;索引器,用于根 据空间数据和属性数据,分别采用网格空间索引和基于Hash算法的索 引进行数据的查询和访问;本地序列化模块,用于根据需要将当前缓冲 池的数据执行快照,并序列化到本地系统文件中,成为文件数据源;缓 冲池填充模块,用于根据配置文件将空间数据库中的数据填充缓冲池; 以及缓冲池刷新模块,用于将被编辑过的数据同步到缓冲池中。

其中,所述数据编辑模块包括:事务管理模块,用于提供数据库的 原子性操作管理;矢量数据回写模块,用于将客户端提交的一个或多个 的修改记录写入空间数据库;同步消息管理模块,用于将数据同步消息 发送给客户端,使客户端本地空间数据库中的数据同步做出修改;以及 缓冲池更新模块,用于通知缓冲池已有对象发生修改。

其中,所述连接池包括:初始化连接池模块,用于通过配置文件或 者环境变量读取连接数据库所必须的信息,以及最大和最小连接数、等 待最大延迟等;请求数据库连接模块,用于返回数据库连接对象,以及 用于当没有空闲连接对象,且当前连接数未达到最大连接数时,创建新 的连接并放置到连接池中;以及关闭数据库连接模块,用于在使用连接 对象后关闭连接对象。

其中,所述空间数据访问接口包括:数据库连接模块,用于建立与 空间数据库的连接,并返回连接句柄;数据库查询模块,用于提供基于 空间条件、属性条件、以及空间和属性混合条件的查询,其中,查询的 空间数据结构符合Oracle Spatial的SDO_Geometry结构;数据库编辑模 块,用于提供对空间数据库的基于条件的删除、行的修改、新增行等编 辑,其中,输入的空间数据参数的结构符合Oracle Spatial的 SDO_Geometry结构;以及事务模块,用于提供基于批编辑的原子性数 据库操作。

其中,所述本地空间数据库包括:空间数据缓存,用于管理所有经 服务器接收的空间数据流,将其建库形成本地空间数据库;空间索引模 块,用于优化对海量空间数据的空间检索;事务缓存,用于对编辑事务 的历史数据进行缓存,以及用于对编辑进行Undo和Redo操作;序列化 模块,用于将全内存方式运行的空间数据序列化到本地磁盘和从本地磁 盘恢复空间数据缓存;HTTP通信模块,用于负责本地空间数据库与服 务器的空间数据传输,通过HTTP协议实现空间数据请求的上传和空间 数据的下载;消息通信模块,用于实现服务器与本地空间数据库的同步 通知;空间数据异步传输与建库模块,用于在初始开图时采用异步传输 方式对大量空间数据进行传输,以及用于在在异步传输时进行渐进式建 库与数据获取;GeoStar接口;以及扩展接口,用于服务器的通信和其 他关于本地空间数据库的操作,主要包括服务器数据请求接口、序列化 接口以及属性SQL查询接口。

其中,所述集群服务模块包括:负载调度器,用于将客户端请求发 送到服务器池上执行;服务器池,用于根据客户请求执行相应的服务, 所述包括数据检索、数据编辑、信息获取;以及共享存储系统,用于作 为服务器池共享的存储区,以使服务器池拥有相同的内容以及提供相同 的服务;所述负载调度器、服务器池和共享存储系统通过高速网络相连 接。

其中,所述共享存储系统是数据库、网络文件系统或者分布式文件 系统。

其中,所述数据库版本管理模块包括:数据库状态记录模块,用于 当修改某一特定数据库时将其变更标示为一个状态。所述状态为打开状 态或者关闭状态;版本管理模块,用于通过一组关系表格在数据层和要 素层管理空间数据库,其中,在数据库层上,所述版本管理模块用于利 用版本表记录空间数据库每个版本的名称、创建者、创建时间,利用态 表记录所指向的数据库状态以及数据库状态间的线索联系,利用修改记 录表记录被修改过的空间数据库中的表,在要素层上,所述版本管理模 块用于利用基表记录原始状态的数据,利用修改表记录对基表的修改信 息,利用版本化视图提供以上关系表格重构的数据库版本的内容;以及 版本冲突协调模块,用于在提交编辑后的子版本时,进行版本协调,然 后判断是否存在冲突,并当确定存在冲突时提取冲突信息解决冲突。

本发明的有益效果是,本发明采用跨平台空间数据服务引擎及本地 空间数据库管理技术,构建一套跨平台部署的三层架构空间数据服务平 台及相关的客户端内存空间数据库。系统使用标准的HTTP协议,服务 器将采用扩展Apache Web服务器实现对Oracle Spatial、ArcSDE等空间 数据库的访问和数据调度,客户机将采用GeoStar兼容的空间数据库访 问接口,实现对服务器空间数据库的快速获取和基于内存的快速访问, 以满足电网空间信息服务平台大量用户并发访问时的空间数据获取效 率,提升用户体验。

附图说明

图1是本发明一实施方式中一种电力GIS跨平台空间数据服务系统 的系统架构图一种车辆调度系统的系统架构图;

图2是本发明一实施方式中缓冲池结构示意图

图3是本发明一实施方式中本地空间数据库结构示意图。

主要元件符号说明

100、电力GIS跨平台空间数据服务系统;1、消息通信模块;

2、空间数据服务引擎;3、空间数据访问接口;4、本地空间数据 库;

5、业务接口;21、缓冲池;22、版本管理模块;23、数据编辑模 块;

24、连接池;25、SQL请求转发模块。

具体实施方式

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以 下结合实施方式并配合附图详予说明。

请参阅图1,是本发明一实施方式中一种电力GIS跨平台空间数据 服务系统的系统架构图。一种电力GIS跨平台空间数据服务系统100包 括数据层、业务层以及服务层,所述业务层包括消息通信模块1、空间 数据服务引擎2以及空间数据访问接口3;所述服务层包括本地空间数 据库4以及业务接口5。

所述空间数据访问接口3用于提供对所述数据层的空间数据库的矢 量数据和属性数据的访问操作。所述空间数据服务引擎2用于通过所述 空间数据访问接口3对所述数据层的空间数据库进行读取、矢量数据回 写、基于Http协议的数据传输、矢量数据同步、连接池以及矢量数据缓 存。所述本地空间数据库4用于对服务器端发送过来的空间数据建立本 地缓存,将接受的空间数据流以及本地编辑的数据上传至服务器,同时 保持与服务器的内容同步。

所述空间数据服务引擎2包括缓冲池21、版本管理模块22、数据 编辑模块23、连接池24、SQL请求转发模块25以及集群服务模块。缓 冲池21用于将空间数据库中的矢量数据缓存到本地空间数据库4中。 版本管理模块22用于通过建立数据库修改标志的增量记录来对空间数 据库状态进行更新,并通过引用状态的更新来完成版本的更新以及协调 冲突,以实现多用户编辑下版本的并发控制。数据编辑模块23用于将 客户端对矢量数据或者属性数据的修改结果以原子操作回写到空间数 据库中,并通知缓冲池21更新相应数据以及发布数据同步消息。连接 池24用于空间数据库回写和数据缓冲。SQL请求转发模块25用于根据 用户需要将一些特定SQL语句直接转发给空间数据库。集群服务模块 26用于将多台数据服务器进行集群管理,保持多台数据服务器间的数据 一致性与完整性。

请参阅图2,为本发明一实施方式中缓冲池结构的示意图。空间数 据缓存最主要的功能是将空间数据库中的矢量数据缓存到本地内存中, 减少空间数据库的IO操作,大幅度提高空间数据的访问速度和请求响 应速度。根据项目有关客户端数据访问特点的前期调研,决定缓冲池在 apache服务器启动时,一次性存放配置文件中指定的所有空间数据。

所述缓冲池21包括内存管理模块、线程管理模块、索引器、本地 序列化模块、矢量数据请求模块、缓冲池填充模块以及缓冲池刷新模块。 内存管理模块用于通过API访问缓冲中的数据。缓冲池21中的物理内 存将被组织成逻辑上的cache表,以映射DBMS上的表。数据置换算法 将追踪热点数据,提高数据的命中率。

线程管理模块用于提供线程生命周期管理,提供线程的调度和生 成、摧毁等线程生命周期管理,保证在并发访问下,内存中数据的完整 性。索引器用于根据空间数据和属性数据,分别采用网格空间索引和基 于Hash算法的索引进行数据的查询和访问。本地序列化模块用于根据 需要将当前缓冲池的数据执行快照,并序列化到本地系统文件中,成为 文件数据源,被序列化后的文件可被缓冲池加载,使得空间数据引擎在 即使没有Oracle Spatial的情况下也能提供数据的访问。缓冲池填充模块 用于根据配置文件将空间数据库中的数据填充缓冲池。缓冲池刷新模块 用于将被编辑过的数据同步到缓冲池中,以保证数据与Oracle Spatial的 一致性。

空间数据库版本是指向某一特定数据库状态的数据库记录,创建空 间数据库的一个版本实际是生成并选择了空间数据库的某一状态,从而 产生了整个空间数据库的逻辑快照,当用户编辑不同版本空间数据库 时,所有中间结果都缓存在各个数据库状态之中,当对数据库编辑完毕 并提交数据成果时,空间数据库管理系统通过对比各版本所指向的数据 库状态,检查各状态下空间数据库的修改内容,并以交互方式或事先设 定好的取舍方案保留不同版本中的变更要素。

所述数据库版本管理模块22包括数据库状态记录模块、版本管理 模块以及版本冲突协调模块。数据库状态记录模块,用于当修改某一特 定数据库时将其变更标示为一个状态。所述状态为打开状态或者关闭状 态;版本管理模块,用于通过一组关系表格在数据层和要素层管理空 间数据库,其中,在数据库层上,所述版本管理模块用于利用版本表记 录空间数据库每个版本的名称、创建者、创建时间,利用态表记录所指 向的数据库状态以及数据库状态间的线索联系,利用修改记录表记录被 修改过的空间数据库中的表,在要素层上,所述版本管理模块用于利用 基表记录原始状态的数据,利用修改表记录对基表的修改信息,利用版 本化视图提供以上关系表格重构的数据库版本的内容。版本冲突协调模 块用于在提交编辑后的子版本时,进行版本协调,然后判断是否存在冲 突,并当确定存在冲突时提取冲突信息解决冲突。以上数据库版本管理 模块22采用这种协调机制解决了不同状态中因对同一记录的修改而引 起的版本冲突,保证空间数据库的完整一致性。

所述数据编辑模块23包括事务管理模块、矢量数据回写模块、同 步消息管理模块以及缓冲池更新模块。事务管理模块用于提供数据库的 原子性操作管理。矢量数据回写模块用于将客户端提交的一个或多个的 修改记录写入空间数据库。同步消息管理模块用于将数据同步消息发送 给客户端,使客户端本地空间数据库中的数据同步做出修改。缓冲池更 新模块用于通知缓冲池已有对象发生修改。

所述连接池24包括初始化连接池模块、请求数据库连接模块以及 关闭数据库连接模块。初始化连接池模块用于通过配置文件或者环境变 量读取连接数据库所必须的信息,以及最大和最小连接数、等待最大延 迟等。请求数据库连接模块用于返回数据库连接对象,以及用于当没有 空闲连接对象,且当前连接数未达到最大连接数时,创建新的连接并放 置到连接池中。关闭数据库连接模块用于在使用连接对象后关闭连接对 象。

所述空间数据访问接口3包括数据库连接模块、数据库查询模块、 数据库编辑模块、事务模块。数据库连接模块用于建立与空间数据库的 连接,并返回连接句柄。数据库查询模块,用于提供基于空间条件、属 性条件、以及空间和属性混合条件的查询,其中,查询的空间数据结构 符合Oracle Spatial的SDO_Geometry结构。数据库编辑模块用于提供对 空间数据库的基于条件的删除、行的修改、新增行等编辑,其中,输入 的空间数据参数的结构符合Oracle Spatial的SDO_Geometry结构。务管 理模块用于提供基于批编辑的原子性数据库操作。

请参阅图3,为本发明一实施方式中本地空间数据库结构示意图。 基于三层构架的多用户矢量数据访问具有数据传输量大、并发访问用户 多等特点,即使通过提高网络带宽、增加硬件性能以及优化数据仍旧难 以满足大数据量的快速显示和编辑,因此需要对服务器端发送过来的空 间数据建立本地空间数据库。

所述本地空间数据库4包括空间数据缓存、空间索引模块、事务缓 存、序列化模块、HTTP通信模块、消息通信模块。空间数据缓存用于 管理所有经服务器接收的空间数据流,将其建库形成本地空间数据库。 空间索引模块用于优化对海量空间数据的空间检索。事务缓存用于对编 辑事务的历史数据进行缓存,以及用于对编辑进行Undo和Redo操作。 序列化模块用于将全内存方式运行的空间数据序列化到本地磁盘和从 本地磁盘恢复空间数据缓存。HTTP通信模块用于负责本地空间数据库 与服务器的空间数据传输,通过HTTP协议实现空间数据请求的上传和 空间数据的下载。消息通信模块用于实现服务器与本地空间数据库的同 步通知。扩展接口用于服务器的通信和其他关于本地空间数据库的操 作,主要包括服务器数据请求接口、序列化接口以及属性SQL查询接口。

所述集群服务模块23包括负载调度器、服务器池、共享存储系统, 所述负载调度器、服务器池和共享存储系统通过高速网络相连接。负载 调度器用于将客户端请求发送到服务器池上执行。服务器池用于根据客 户请求执行相应的服务,所述包括数据检索、数据编辑、信息获取。共 享存储系统用于作为服务器池共享的存储区,以使服务器池拥有相同的 内容以及提供相同的服务。所述共享存储系统是数据库、网络文件系统 或者分布式文件系统。

本发明的技术效果是:本发明的电力GIS跨平台空间数据服务系统 采用跨平台空间数据服务引擎及本地空间数据库管理技术,构建一套跨 平台部署的三层架构空间数据服务平台及相关的客户端内存空间数据 库。系统使用标准的HTTP协议,服务器将采用扩展Apache Web服务 器实现对Oracle Spatial、ArcSDE等空间数据库的访问和数据调度,客 户机将采用GeoStar兼容的空间数据库访问接口,实现对服务器空间数 据库的快速获取和基于内存的快速访问,以满足电网空间信息服务平台 大量用户并发访问时的空间数据获取效率,提升用户体验。解决电网 GIS平台全省集中部署的并发数据访问效率低的问题,极大的提高用户 访问并发量和缓解数据库服务器的访问压力。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围, 凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或 直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保 护范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号