一种三维空间数据并行调度方法和系统的制作方法

文档序号:6385602阅读:202来源:国知局
专利名称:一种三维空间数据并行调度方法和系统的制作方法
技术领域
本发明属于地理空间信息系统技术领域,尤其涉及一种三维空间数据并行调度方法和系统。
背景技术
大规模三维空间数据的流畅可视化一直是三维GIS最基本的需求,能否从大规模三维空间数据库中快速调度所需的数据已成为保障三维实时可视化流畅性的关键。在三维空间数据库的数据量小于系统内存或显示设备缓存时,通常采用系统启动便将数据全部加载到内存与显存的策略,以支持最高效的三维可视化。但是,随着三维空间数据库的规模不断增加,系统内存已远远无法加载全部数据,这就必须需要动态调度技术,按三维可视化的需要动态加载数据。为了提高三维空间数据可视化与数据调度的效率,采用多线程技术能充分利用多核的优势,实现数据读取的真正并行,但是如何能使多线程执行效率更高效,必须考虑并行任务的合理划分问题。现有三维GIS软件对于连续的海量地形表面数据的动态调度已经取得了比较成熟的成果,如Google Earth、World Wind等数字地球软件对全球的海量地形数据,在网络环境下都可以实现快速、流畅的多分辨率显示的可视化效果,如Skyline的Terra Gate网络数据服务器软件以流方式给多客户实时传输三维地理地形数据集。但是,目前对于地上地下各种离散复杂实体、地质实体、地下管网等的海量三维空间数据的动态调度还远没有地形数据的成熟,如Skyline对三维空间数据的纹理大小、几何面片数等有比较严格的限定。尤其是对城市三维模型数据,由于数据结构复杂性、空间分布不规则性以及多细节层次特性等特性,因而对城市三维模型数据的调度远没有地形数据成熟、快速。三维空间数据库的数据调度都是以前端用户的请求为前提,从数据库中高性能的吞吐数据,主动满足前端快速数据请求。此过程以响应前端用户的调度需求为目的,因此必需在中间模块把调度需求转换成从数据库中调度数据的并行调度任务。对于三维空间数据的并行调度必须针对三维GIS可视化以及三维空间数据的数据内容相关性进行数据的并行调度任务划分,但是目前还都没有成熟的方案。

发明内容
本发明提供一种三维空间数据并行调度方法和系统,旨在解决当前三维空间数据的调度效率低,导致无法从大规模三维空间数据库中快速调度所需的数据,从而难以保障三维实时可视化流畅性的问题。为此,本发明提供了如下技术方案—种基于数据内容的三维空间数据并行调度方法,包括以下步骤接收多个客户端的三维空间数据调度请求;通过基于数据内容的调度任务并行分解方法,将三维空间数据调度任务进行分解,生成可并行执行的三维空间数据调度子任务;
为所述三维空间数据调度子任务分配可用任务执行线程和数据库连接,执行三维空间数据库的并行查询;对所述三维空间数据调度子任务查询获取的数据重组后,返回给客户端。本发明还提供了一种三维空间数据并行调度系统,包括客户端和服务器,服务器包括调度任务分解模块,用于数据调度请求的解析,数据调度任务的并行分解,生成可并行执行的数据调度任务;数据调度模块,用于生成基于数据内容的三维空间数据调度任务;线程池管理模块,用于线程池技术管理线程的创建、销毁与管理操作,任务的分配策略,以及线程之间的同步协同机制;数据库连接池模块,用于数据库连接池技术管理数据库连接的创建、销毁与管理操作与所述数据调度模块和数据库分别相连接,用于为所述三维空间数据调度任务分配可用线程,执行三维空间数据库的多调度任务并行查询,预先创建和保存多个用户的数据库连接队列;;调度任务执行模块,与所述线程池管理模块与数据库连接池管理模块相连接,用于执行的三维空间数据库的并行调度任务;三维空间数据库,与所述线程池管理模块调度任务执行模块相连接,用于存储大规模的三维空间数据。与现有技术相比,本发明的实施例具有如下优点本发明基于三维空间数据的数据内容相关性分析,对三维空间数据的调度运用调度任务并行分解进行并行调入任务划分,以及多调度任务的并行执行,从而提高从数据库提取不同类型三维空间数据的调度效率,改善了三维GIS实时可视化的能力。


图1是本发明实施例提供的三维空间数据并行调度方法的方法流程图;图2是本发明实施例提供的生成基于数据内容的三维空间数据调度任务的方法流程图;图3是本发明实施例提供的为三维空间数据调度任务分配可用线程,执行三维空间数据库的多调度任务并行查询方法流程图;图4是本发明实施例提供的从空闲线程队列中取出空闲线程的方法流程图;图5是本发明实施例提供的三维空间数据并行调度系统的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。图1是本发明实施例提供的三维空间数据并行调度方法的方法流程图,为了便于说明,仅不出了与本发明实施例相关的部分。如图1所示,该方法包括以下步骤
步骤101,接收多个客户端的三维空间数据调度请求。步骤102,通过基于数据内容的调度任务并行分解方法,将三维空间数据调度任务进行分解,生成可并行执行的三维空间数据调度子任务。步骤103,为所述三维空间数据调度子任务分配可用任务执行线程和数据库连接,执行三维空间数据库的并行查询。步骤104,对所述三维空间数据调度子任务查询获取的数据重组后,返回给客户端。图2是本发明实施例提供的生成基于数据内容的三维空间数据调度任务的方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分。如图2所示,该方法执行步骤101,接收客户端的数据查询请求后,还包括以下步骤步骤201,判断接收的数据查询请求类型,若为三维空间查询请求,执行步骤202,若为非三维空间查询请求,则执行步骤203。步骤202 :获取所述三维空间查询请求需要查询的三维要素类集合,根据三维要素类的数据类型进行判断,为每个三维要素类建立单独的调度任务,并转换成可并行执行的三维要素数据调度任务。具体的,所述三维空间查询请求,可以是建筑查询、植被查询、管线查询、地质查询中的一种或者多种。具体的,所述转换成的数据调度任务,可以是建筑调度任务、植被调度任务、管线调度任务、地质调度任务中的一种或者多种。步骤203 :判断该查询请求的类型,分离材质、纹理、共享模型以及属性等各种数据类型的查询,并转换成相应的数据调度任务。具体的,所述非三维空间查询请求,可以是纹理查询、材质查询、共享模型查询、属性查询中的一种或者多种。具体的,所述转换成的相应的数据调度任务,可以是纹理调度任务、材质调度任务、共享模型调度任务、属性调度任务中的一种或者多种。图3是本发明实施例提供的为三维空间数据调度任务分配可用任务执行线程,执行三维空间数据库的多调度任务并行查询方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分。如图3所示,该方法包括以下步骤步骤301,将生成的三维空间数据调度任务放入三维空间数据调度任务队列中。步骤302,依次取出三维空间数据调度任务队列中的第一个调度任务。优选的,按照先进先出的原则,依次从所述三维空间数据调度任务队列中取出第一个调度任务。步骤303,从空闲任务执行线程队列中取出一个空闲线程。具体的,从空闲线程队列中取出空闲线程的方法,如图4所示,将在下一个实施例中详细说明。步骤304,将三维空间数据调度任务队列中取出的调度任务,绑定在从所述空闲线程队列中取出的所述空闲线程中。
步骤305,将所述空闲线程设置为繁忙线程,加入到繁忙线程队列中。步骤306,从所述繁忙线程队列中,依次取出所述绑定调度任务的繁忙线程,执行所述三维空间数据调度任务。具体的,所述绑定调度任务的繁忙线程,从数据库连接池管理模块的连接池管理器中,获取空闲的数据库连接,进行三维空间数据库的查询。步骤307,所述三维空间数据调度任务执行完毕后,将所述繁忙线程设置为空闲线程,并加入到所述空闲线程队列中。优选的,存储在同一磁盘/RAID中的三维空间数据,由同一线程进行处理。步骤308,将执行所述三维空间数据调度任务所获取的数据进行返回。具体的,将每个线程执行所述调度任务所获取的数据合并在一个集合中,将全部数据进行返回。图4是本发明实施例提供的从空闲线程队列中取出空闲线程的方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分。如图4所示,该方法包括以下步骤步骤401,判断空闲线程队列中是否存在空闲线程,若存在,则执行步骤402,若不存在,则执行步骤403。步骤402,从所述空闲线程队列中取出一个空闲线程。步骤403,判断活动线程是否达到最大线程设置数,若已达到,则执行步骤404,若未达到,则执行步骤405。步骤404,等待至空闲线程队列中有空闲线程时,从所述空闲线程队列中取出一个空闲线程。步骤405,创建新线程放入所述空闲线程队列中。基于相同的构思,本发明实施例还提供一种三维空间数据并行调度系统,如图5所示,该系统包括客户端51,用于向服务器发送数据查询请求,并接收返回的查询结果。调度任务分解模块52,用于数据调度请求的解析,数据调度任务的并行分解;调度任务执行模块56,生成可并行执行的数据调度任务。具体的,调度任务分解模块52运用调度任务并行分解算法,生成基于数据内容的三维空间数据调度任务。线程池管理模块53,用于线程池技术管理线程的创建、销毁与管理操作,任务的分配策略,以及线程之间的同步协同机制。具体的,线程池管理模块53,包括线程池管理器,所述线程池管理器分别与数据调度模块、数据库连接池管理模块和数据库相连接。具体的,所述线程池管理器用于从所述调度任务执行模块56中获取三维空间数据调度任务,分配可用线程。具体的,所述线程池管理器还用于与从所述数据库连接池管理模块中获取的空闲的数据库连接,并从数据库获取数据库存储信息后,进行三维空间数据库的查询。三维空间数据库54,用于存储大规模的三维空间数据。数据库连接池模块55,用于数据库连接池技术管理数据库连接的创建、销毁与管理操作。具体的,数据库连接池模块55,还包括数据库连接池管理器,数据库连接池管理器用于向线程池管理器提供空闲的数据库连接。本发明实施例基于三维空间数据的数据内容相关性分析,通过对三维空间数据的调度运用调度任务并行分解进行并行调入任务划分,以及多调度任务的并行执行,从而提高从数据库提取不同类型三维空间数据的调度效率,改善了三维GIS实时可视化的能力。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种基于数据内容的三维空间数据并行调度方法,其特征在于,包括以下步骤: 接收多个客户端的三维空间数据调度请求; 通过基于数据内容的调度任务并行分解方法,将三维空间数据调度任务进行分解,生成可并行执行的三维空间数据调度子任务; 为所述三维空间数据调度子任务分配可用任务执行线程和数据库连接,执行三维空间数据库的并行查询; 对所述三维空间数据调度子任务查询获取的数据重组后,返回给客户端。
2.如权利要求1所述的三维空间数据并行调度方法,其特征在于,所述通过基于数据内容的调度任务并行分解方法,将三维空间数据调度任务进行分解,生成可并行执行的三维空间数据调度子任务,包括以下步骤: B1:判断接收的数据查询请求类型,若为三维空间查询请求,执行步骤B2,若为非三维空间查询请求,则执行步骤B3 ; B2:获取所述三维空间查询请求需要查询的三维要素类集合,根据三维要素类的数据类型进行判断,为每个三维要素类建立单独的调度任务,并转换成可并行执行的三维要素数据调度任务; B3:判断该查询请求的类型,分离材质、纹理、共享模型以及属性等各种数据类型的查询,并转换成相应的数据调度任务。
3.如权利要求1或2所述的三维空间数据并行调度方法,其特征在于,所述为所述三维空间数据调度任务分配可用任务执行线程,执行三维空间数据库的并行查询,包括以下步骤: Cl:将所述生成的三维空间数据调度任务放入三维空间数据调度任务队列中; C2:按照先进先出的原则,依次取出所述三维空间数据调度任务队列中的第一个调度任务; C3:从空闲任务执行线程队列中取出一个空闲线程; C4:将所述三维空间数据调度任务队列中取出的所述调度任务,绑定在从所述空闲线程队列中取出的所述空闲线程中,并将所述空闲线程设置为繁忙线程,加入到繁忙线程队列中; C5:从所述繁忙线程队列中,依次取出所述绑定调度任务的繁忙线程,执行所述三维空间数据调度任务; C6:所述三维空间数据调度任务执行完毕后,将所述繁忙线程设置为空闲线程,并加入到所述空闲线程队列中; C7:将执行所述三维空间数据调度任务所获取的数据进行返回。
4.如权利要求3所述的三维空间数据并行调度方法,其特征在于,所述步骤C5,包括以下步骤: 所述绑定调度任务的繁忙线程,获取空闲的数据库连接,进行三维空间数据库的查询。
5.如权利要求3所述的三维空间数据并行调度方法,其特征在于,所述步骤C7,包括以下步骤: 将每个线程执行所述调度任务所获取的数据合并在一个数据集合后,将全部数据进行返回。
6.一种三维空间数据并行调度系统,包括客户端和服务器,其特征在于,所述服务器包括: 调度任务分解模块,用于数据调度请求的解析,数据调度任务的并行分解,生成可并行执行的数据调度任务; 线程池管理模块,用于线程池技术管理线程的创建、销毁与管理操作,任务的分配策略,以及线程之间的同步协同机制; 数据库连接池模块,用于数据库连接池技术管理数据库连接的创建、销毁与管理操作,预先创建和保存多个用户的数据库连接队列; 调度任务执行模块,与所述线程池管理模块与数据库连接池管理模块相连接,用于执行的三维空间数据库的并行调度任务; 三维空间数据库, 与所述调度任务执行模块相连接,用于存储大规模的三维空间数据。
全文摘要
本发明涉及地理空间信息系统技术领域,提供了一种基于数据内容的三维空间数据并行调度方法,所述方法包括接收多个客户端的三维空间数据调度请求;通过基于数据内容的调度任务并行分解方法,将三维空间数据调度任务进行分解,生成可并行执行的三维空间数据调度子任务;为所述三维空间数据调度子任务分配可用任务执行线程和数据库连接,执行三维空间数据库的并行查询;对所述三维空间数据调度子任务查询获取的数据重组后,返回给客户端。本发明通过将三维空间数据调度任务的分解与并行执行,提高了从三维空间数据库调度不同类型三维空间数据的效率,改善了三维GIS实时可视化的能力。
文档编号G06F9/46GK103077074SQ20121057633
公开日2013年5月1日 申请日期2012年12月26日 优先权日2012年12月26日
发明者李晓明, 朱庆, 李行义, 修文群, 梁守真, 李洪忠 申请人:深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1