首页> 中国专利> 三维GIS异步通信传输系统及其异步通信传输的方法

三维GIS异步通信传输系统及其异步通信传输的方法

摘要

一种三维GIS异步通信传输系统,包括客户端和服务器,其中:客户端与服务器建立连接后发送三维空间数据查询消息至服务器,服务器接收三维空间数据查询消息并解析,转换为三维空间数据库查询任务,执行数据库查询任务并返回查询结果,将查询结果中的数据序列化为字节流的形式,并进行压缩得到压缩数据包,获取客户端的通信句柄,并根据所述通信句柄将压缩数据包发送至客户端,客户端接收压缩数据包,对压缩数据包进行数据重组、解压缩与解序列化操作,得到待查询的三维空间数据对象,进行三维可视化与三维空间分析等操作。

著录项

  • 公开/公告号CN103067396A

    专利类型发明专利

  • 公开/公告日2013-04-24

    原文格式PDF

  • 申请/专利权人 深圳先进技术研究院;

    申请/专利号CN201210592063.1

  • 申请日2012-12-29

  • 分类号

  • 代理机构深圳市科进知识产权代理事务所(普通合伙);

  • 代理人宋鹰武

  • 地址 518055 广东省深圳市南山区西丽大学城学苑大道1068号

  • 入库时间 2024-02-19 19:28:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-13

    授权

    授权

  • 2013-05-29

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

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及网络技术,尤其涉及一种三维GIS异步通信传输系统及 其异步通信传输的方法。

背景技术

随着大规模三维GIS数据一体化管理、数据安全性、分布式环境下 的多用户共享应用等方面的需求日益强烈,传统的两层客户端/数据库服 务器的三维GIS网络应用模式,随着数据规模的不断增大,多用户并发 数的增加,数据库服务器负载压力过大,且在多用户并发访问时导致数 据库服务器严重的I/O瓶颈和性能瓶颈,使多用户并发的三维GIS在满 足流畅可视化、高性能三维空间分析等实时应用方面遇到了难以克服的 障碍。为了减少数据库服务器的I/O瓶颈和多用户并发所带来负载压 力,一般采用客户端、应用服务器和数据库服务器多层架构:应用服务 器和数据库服务器分别部署在不同的主机上。用户界面和部分应用处理 逻辑在客户端部署,应用服务器承担部分处理逻辑,数据在数据库服务 器中部署。这种多层架构方式在客户端与应用服务器、应用服务器与数 据库服务器之间的交互都需要高效的网络通信。

网络传输模式直接决定网络应用软件的性能。网络传输模式分为同 步模式和异步模式两种。同步网络传输的特点是客户端发送请求后,必 须在服务器端响应后才发送下一个请求。这种工作模式的特点是客户端 不能并发多个消息,导致客户端数据调度效率低下。异步网络传输,指 客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求。 其优势在于避免了消息同步时间,提高了数据调度效率。异步传输策略 有助于高效地利用网络,减少高延迟带来的影响。然而,同步传输模式 和异步传统模式,都未针对三维GIS平台的三维空间数据调度与三维可 视化的特点进行三维空间对象进行消息处理、调度任务处理、压缩处理 以及传输方法处理,因此都很难针对三维GIS平台达到高效的网络数据 调度与网络传输效果。

发明内容

有鉴于此,有必要提供一种三维GIS异步通信传输系统及其传输方 法,来有效地将三维空间数据调度与数据网络传输有效的结合起来,达 到最佳的网络数据调度与传输效率。

本发明提供的一种三维GIS异步通信传输系统,包括客户端与服务 器,所述服务器中包括三维空间数据库,用于管理地形数据、影像数据、 城市三维模型数据及其属性数据等三维GIS数据以及用户连接权限数 据,其中:所述客户端包括:第一通信模块,用于将连接请求封装成连 接消息,将连接消息发送至所述服务器;所述服务器包括:监听模块, 用于监听所述客户端的所述连接消息,解析连接消息中的连接请求参 数;判断模块,用于从三维空间数据库获取用户连接权限数据,判断所 述连接请求的参数是否正确,其中,所述监听模块还用于在所述连接请 求的参数正确时建立与所述客户端的连接,所述第一通信模块还用于将 三维空间数据查询请求封装成三维空间数据查询消息发送到所述服务 器,所述监听模块还用于接收所述三维空间数据查询消息,并依次放到 三维空间数据查询消息队列中;第二通信模块,用于从三维空间数据查 询消息队列中依次取出三维空间数据查询消息,交由通信线程池中的空 闲线程进行解析处理,并将三维空间数据查询消息转换为三维空间数据 库查询任务,放入到数据库查询任务队列中;三维空间数据调度模块, 用于从调度线程池和数据库连接池中分别取出空闲的调度线程和数据 库连接执行三维空间数据库查询任务,并返回查询结果,其中,所述第 二通信模块还用于接收所述查询结果,将所述查询结果中的数据序列化 为字节流的形式,并进行压缩得到压缩数据包,获取所述客户端的通信 句柄,并根据所述通信句柄将所述压缩数据包发送至所述客户端,所述 第一通信模块还用于接收所述压缩数据包;所述客户端还包括数据处理 模块,用于对所述压缩数据包进行数据重组、解压缩与解序列化操作, 得到待查询的三维空间对象。

本发明还提供一种三维GIS异步通信传输方法,用于客户端与服务 器之间通信,其中,所述服务器中包括三维空间数据库,用于管理地形 数据、影像数据、城市三维模型数据及其属性数据等三维GIS数据以及 用户连接权限数据,所述方法包括以下步骤:所述服务器开启通信监听, 监听所述客户端的连接请求;所述客户端将连接请求封装成连接消息, 将连接消息发送至所述服务器;所述服务器监听所述客户端的所述连接 消息,解析连接消息中的连接请求参数;服务器从所述三维空间数据库 获取用户连接权限数据,判断所述连接请求的参数是否正确;若所述连 接请求的参数正确,则所述服务器建立与所述客户端的连接;所述客户 端将三维空间数据查询请求封装成三维空间数据查询消息发送到所述 服务器;所述服务器接收所述三维空间数据查询消息,并依次放到三维 空间数据查询消息队列中;所述服务器从三维空间数据查询消息队列中 依次取出三维空间数据查询消息,交由通信线程池中的空闲线程进行解 析处理,并将三维空间数据查询消息转换为三维空间数据库查询任务, 放入到数据库查询任务队列中;所述服务器从调度线程池和数据库连接 池中分别取出空闲的调度线程和数据库连接执行三维空间数据库查询 任务,并返回查询结果;所述服务器接收所述查询结果,将所述查询结 果中的数据序列化为字节流的形式,并进行压缩得到压缩数据包;所述 服务器获取所述客户端的通信句柄,并根据所述通信句柄将所述压缩数 据包发送至所述客户端;所述客户端接收所述压缩数据包;所述客户端 对所述压缩数据包进行数据重组、解压缩与解序列化操作,得到待查询 的三维空间对象。

本发明中的三维GIS异步通信传输系统及其通信传输的方法,通过 客户端连接请求与服务器建立连接,然后发送三维空间数据查询消息至 服务器,利用空闲的线程处理三维空间数据查询消息,提高了网络数据 调度与传输效率,避免了同步的延时。

附图说明

图1为本发明一实施方式中三维GIS异步通信传输系统的模块图;

图2为本发明一实施方式中利用图1所示的三维GIS异步通信传输 系统进行异步通信传输的方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出, 其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或 类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于 解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、 “顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关 系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造 和操作,因此不能理解为对本发明的限制。

请参阅图1,图1所示为本发明一实施方式中三维GIS异步通信传 输系统的模块图。

在本实施方式中,三维GIS异步通信传输系统包括服务器10以及 客户端20,其中,服务器10包括:监听模块102、第二通信模块104、 判断模块106、三维空间数据库110以及三维空间数据调度模块112。客 户端20包括第一通信模块202以及数据处理模块204。

在本实施方式中,三维空间数据库110中包括矢量模型数据、地形 数据以及地下数据,其中所述矢量模型数据包括几何数据、材质数据、 纹理数据和共享模型数据,所述地形数据包括DEM数据和DOM数据。

在本实施方式中,第一通信模块202用于将连接请求封装成连接消 息,将连接消息发送至所述服务器10。

监听模块102用于监听所述客户端的所述连接消息,解析连接消息 中的连接请求参数。

判断模块106用于从三维空间数据库110中获取用户连接权限数 据,判断所述连接请求的参数是否正确。

在本实施方式中,所述监听模块102还用于在所述连接请求的参数 正确时建立与所述客户端20的连接,所述第一通信模块202还用于将 三维空间数据查询请求封装成三维空间数据查询消息发送到所述服务 器10,所述监听模块102还用于接收所述三维空间数据查询消息,并依 次放到三维空间数据查询消息队列中。

在本实施方式中,第一通信模块202通过从消息发送线程池取出一 条空闲线程从消息队列中的头部依次取出一条消息,将消息发送到服务 器10,该线程加锁等待服务器10返回消息。

第二通信模块104用于从三维空间数据查询消息队列中依次取出三 维空间数据查询消息,交由通信线程池中的空闲线程进行解析处理,并 将三维空间数据查询消息转换为三维空间数据库查询任务,放入到数据 库查询任务队列。

在本实施方式中,所述第二通信模块104对所述DEM数据和DOM 数据采用小波变换压缩编码的方法进行压缩,城市三维模型数据通过对 其三维几何数据编码形成的数据流进行无损的数据压缩,对其纹理数据 也采用小波变换压缩编码方法进行压缩。

三维空间数据调度模块112用于从调度线程池和数据库连接池中分 别取出空闲的调度线程和数据库连接执行三维空间数据库查询任务,并 返回查询结果。

在本实施方式中,所述第二通信模块104还用于接收所述查询结果, 将所述查询结果中的数据序列化为字节流的形式,并进行压缩得到压缩 数据包,获取所述客户端20的通信句柄,并根据所述通信句柄将所述 压缩数据包发送至所述客户端20,所述第一通信模块202还用于接收所 述压缩数据包。

在本实施方式中,三维空间数据库110中保存了客户端20的IP地 址、端口号,第二通信模块104通过客户端20的IP地址以及端口号获 取所述通信句柄。

在本实施方式中,第一通信模块202收到服务器10数据返回的消 息后,将该通知发给数据接收线程,该消息发送线程设为空闲状态并解 锁,并回收到消息发送线程池中的空闲线程队列中,在这个过程中客户 端20从消息发送线程池不断取出空闲线程依次从消息队列中取出待处 理消息进行同样的消息发送、加锁、等待返回通知、通知数据接收线程, 解锁等操作,数据接收线程接到数据接收通知后,开始进行数据接收。

数据处理模块204用于对所述压缩数据包进行数据重组、解压缩与 解序列化操作,得到待查询的三维空间对象。

在本实施方式中,数据处理模块204根据压缩数据包的报头信息来 进行数据重组、解压缩与解序列化操作。其中报头信息包括:消息的类 型以及数据包的总长度,所述客户端20中的数据处理模块204通过消 息类型确定数据的类型,通过数据包的总长度确保数据的完整准确的接 收。

在本实施方式中,所述第二通信模块104还用于接收所述查询结果, 将所述查询结果中的数据序列化为字节流的形式,并进行压缩得到压缩 数据包。

在本实施方式中,判断模块106还用于判断所述压缩数据包的大小 是否大于固定值,且所述第二通信模块104在所述压缩数据包大于固定 值时对所述压缩数据包进行分包。在本实施方式中,固定值为64KB。

在本实施方式中,第二通信模块104对所述压缩数据包分包时按照 数据包大小为固定值进行分包,当分包后剩下的压缩数据包部分小于固 定值时,则不进行分包。

在本实施方式中,第二通信模块104在所述压缩数据包小于等于固 定值时不对所述压缩数据包进行分包。

在本实施方式中,第二通信模块104对所述压缩数据包实行分包是 为了避免大量的丢包和重传现象。

请参阅图2,图2所示为本发明一实施方式中利用图1所示的三维 GIS异步通信传输系统进行异步通信传输的方法的流程图。

在本实施方式中,所述三维空间数据库110中包括矢量模型数据、 地形数据以及地下数据,其中所述矢量模型数据包括几何数据、材质数 据、纹理数据和共享模型数据,所述地形数据包括DEM数据和DOM 数据。

在步骤S200,所述服务器10中的监听模块102开启通信监听,监 听所述客户端20的连接请求。

在步骤S202,所述客户端20中的第一通信模块202将连接请求封 装成连接消息,将连接消息发送至所述服务器10。

在步骤S204,所述服务10中的监听模块102监听所述客户端20的 所述连接消息,解析连接消息中的连接请求参数。

在步骤S206,所述服务器10中的判断模块106从所述三维空间数 据库110获取用户连接权限数据,判断所述连接请求的参数是否正确。

若所述连接请求的参数正确,则在步骤S208,所述服务器10建立 与所述客户端20的连接。

在步骤S210,所述客户端20中的第一通信模块202将三维空间数 据查询请求封装成三维空间数据查询消息发送到所述服务器10。

在本实施方式中,第一通信模块202通过从消息发送线程池取出一 条空闲线程从消息队列中的头部依次取出一条消息,将消息发送到服务 器10,该线程加锁等待服务器10返回消息。

在步骤S212,所述服务器10中的监听模块102接收所述三维空间 数据查询消息,并依次放到三维空间数据查询消息队列中。

在步骤S214,所述服务器10中的第二通信模块104从三维空间数 据查询消息队列中依次取出三维空间数据查询消息,交由通信线程池中 的空闲线程进行解析处理,并将三维空间数据查询消息转换为三维空间 数据库查询任务,放入到数据库查询任务队列中。

在本实施方式中,所述第二通信模块104对所述DEM数据和DOM 数据采用小波变换压缩编码的方法进行压缩,城市三维模型数据通过对 其三维几何数据编码形成的数据流进行无损的数据压缩,对其纹理数据 也采用小波变换压缩编码方法进行压缩。

在步骤S216,所述服务器10中的三维空间数据调度模块112从调 度线程池和数据库连接池中分别取出空闲的调度线程和数据库连接执 行三维空间数据库查询任务,并返回查询结果。

在步骤S218,所述服务器10中的第二通信模块104接收所述查询 结果,将所述查询结果中的数据序列化为字节流的形式,并进行压缩得 到压缩数据包。

在本发明其他实施方式中,所述三维GIS异步通信传输方法还包括 步骤S220,所述服务器10中的判断模块106判断所述压缩数据包的大 小是否大于固定值。在本实施方式中,固定值为64KB。

若所述压缩数据包的大小大于固定值,则在步骤S222,所述服务器 10中的第二通信模块104对所述压缩数据包进行分包。

在本实施方式中,第二通信模块104对所述压缩数据包分包时按照 数据包大小为固定值进行分包,当分包后剩下的压缩数据包部分小于固 定值时,则不进行分包。

在本实施方式中,第二通信模块104对所述压缩数据包实行分包是 为了避免大量的丢包和重传现象。

在步骤S224,所述服务器10中的第二通信模块104获取所述客户 端20的通信句柄,并根据所述通信句柄将压缩数据包发送至所述客户 端20。

在本实施方式中,三维空间数据库110中保存了客户端20的IP地 址、端口号,第二通信模块104通过客户端20的IP地址以及端口号获 取所述通信句柄。

若所述压缩数据包的大小小于等于固定值,则不需要对所述压缩数 据包进行分包,直接进入步骤S224。

在步骤S226,所述客户端20的第一通信模块202接收所述压缩数 据包。

在本实施方式中,第一通信模块202收到服务器10数据返回的消 息后,将该通知发给数据接收线程,该消息发送线程解锁,并回收到消 息发送线程池中的空闲线程队列中,在这个过程中客户端20从消息发 送线程池不断取出空闲线程依次从消息队列中取出待处理消息进行同 样的消息发送、加锁、等待返回通知、通知数据接收线程,解锁等操作, 数据接收线程接到数据接收通知后,开始进行数据接收。

在步骤S228,所述客户端20的数据处理模块204对压缩数据包进 行数据重组、解压缩与解序列化操作,得到待查询的数据对象,并对所 述客户端20解锁。

在本实施方式中,所述客户端20中的处理模块204通过解析所述 压缩数据包的报头信息进行数据重组,以获取完整的压缩数据包。

在本实施方式中,压缩数据包的报头信息包括:消息的类型以及数 据包的总长度,所述客户端20中的处理模块204通过消息类型确定数 据的类型,通过数据包的总长度确保数据的完整准确的接收。

本发明中的三维GIS异步通信传输系统10及其通信传输的方法, 通过客户端20连接请求与服务器10建立连接,然后发送三维空间数据 查询消息至服务器10,利用空闲的线程处理三维空间数据查询消息,提 高了网络数据调度与传输效率,避免了同步的延时。

虽然本发明参照当前的较佳实施方式进行了描述,但本领域的技术 人员应能理解,上述较佳实施方式仅用来说明本发明,并非用来限定本 发明的保护范围,任何在本发明的精神和原则范围之内,所做的任何修 饰、等效替换、改进等,均应包含在本发明的权利保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号