一种提供空间分析服务的方法和装置与流程

文档序号:16390230发布日期:2018-12-22 11:19阅读:137来源:国知局
一种提供空间分析服务的方法和装置与流程

本发明涉及网络技术领域,特别是涉及一种提供空间分析服务的方法和装置。

背景技术

目前,随着空间分析模型越来越趋于完善,空间分析技术越来越普遍地被应用到各种场景。随着物联网和大数据技术的普及,目前的空间分析服务需要面对大量携带有位置信息的数据。对于一个空间分析任务,空间分析服务往往需要处理大量携带有位置信息的数据,因此,空间分析服务往往需要较长的分析时间,从而难以及时地提供空间分析结果。



技术实现要素:

本发明所要解决的技术问题是,提供一种提供空间分析服务的方法和装置,以使得空间分析的耗时能够缩短,从而及时地提供空间分析结果,以及时地响应空间分析请求。

第一方面,本发明实施例提供了一种提供空间分析服务的方法,包括:

接收空间分析请求;

将所述空间分析请求对应的空间分析任务拆分成多个空间分析子任务;

调度多个空间分析进程对所述多个空间分析子任务进行处理,得到多个空间分析子结果,其中,每一个所述空间分析进程处理至少一个所述空间分析子任务;

将所述多个空间分析子结果进行合并处理,得到所述空间分析请求对应的空间分析结果。

可选地,该方法还包括:

将所述空间分析结果回写到分布式空间分析系统内建的分布式存储系统中并在所述分布式存储系统中以弹性分布式数据集的形式保存所述空间分析结果中数据的引用;

根据所述弹性分布式数据集,对所述分布式存储系统中的所述空间分析结果进行分布式动态出图处理,以展示所述空间分析结果。

可选地,该方法还包括:

将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,所述将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中,具体为:

若所述空间分析结果的数据量小于预设数据量或所述空间分析结果属于预设结果类型,将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,该方法还包括:

若所述空间分析结果的创建时间超过预设保留时间且所述空间分析结果不属于预设保留类型,将所述空间分析结果从目标存储位置删除;

其中,所述目标存储位置包括所述空间数据库和/或所述分布式存储系统。

可选地,该方法还包括:

判断分布式空间分析系统是否具有空闲的空间分析进程;

若具有,从所述空闲的空间分析进程中选取所述多个空间分析进程并执行所述调度多个空间分析进程对所述多个空间分析子任务进行处理。

第二方面,本发明实施例提供了一种提供空间分析服务的装置,包括:

接收模块,用于接收空间分析请求;

拆分模块,用于将所述空间分析请求对应的空间分析任务拆分成多个空间分析子任务;

处理模块,用于调度多个空间分析进程对所述多个空间分析子任务进行处理,得到多个空间分析子结果,其中,每一个所述空间分析进程处理至少一个所述空间分析子任务;

合并模块,用于将所述多个空间分析子结果进行合并处理,得到所述空间分析请求对应的空间分析结果。

可选地,该装置还包括:

第一回写模块,用于将所述空间分析结果回写到分布式空间分析系统内建的分布式存储系统中并在所述分布式存储系统中以弹性分布式数据集的形式保存所述空间分析结果中数据的引用;

出图模块,用于根据所述弹性分布式数据集,对所述分布式存储系统中的所述空间分析结果进行分布式动态出图处理,以展示所述空间分析结果。

可选地,该装置还包括:

第二回写模块,用于将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,所述第二回写模块,具体用于:

若所述空间分析结果的数据量小于预设数据量或所述空间分析结果属于预设结果类型,将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,该装置还包括:

删除模块,用于若所述空间分析结果的创建时间超过预设保留时间且所述空间分析结果不属于预设保留类型,将所述空间分析结果从目标存储位置删除;

其中,所述目标存储位置包括所述空间数据库和/或所述分布式存储系统。

可选地,该装置还包括:

选取模块,用于判断分布式空间分析系统是否具有空闲的空间分析进程;若具有,从所述空闲的空间分析进程中选取所述多个空间分析进程并执行所述调度多个空间分析进程对所述多个空间分析子任务进行处理。

与现有技术相比,本发明实施例具有以下优点:

在本发明实施例中,通过将空间分析任务拆分的方式,将一个较大的空间分析任务拆分为多个较小的空间分析子任务,然后将这多个较小的空间分析子任务分配到多个空间分析进程中进行并行处理,最后将各个空间分析进程的分析结果进行合并,得到该空间分析请求对应的空间分析结果。如此,一方面,一个空间分析任务的子任务调度到多个空间分析进程中,并行执行空间分析,压缩了空间分析服务的总体耗时,另一方面,每个空间分析进程对应处理子任务都比较小,减少了每个空间分析进程的任务处理量,提高了任务处理时间。因此,本发明实施例中的提供空间分析服务的方法,可以有效的缩短空间分析的耗时,从而及时地提供空间分析结果,以及时地响应空间分析请求。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一个示例性应用场景的网络系统示意图;

图2为本发明实施例的一个微服务架构空间分析服务系统的结构示意图;

图3为本发明实施例中一种提供空间分析服务的方法的流程示意图;

图4为本发明实施例中另一种提供空间分析服务的方法的流程示意图;

图5为本发明实施例提供的分布式空间分析系统的结构示意图;

图6为本发明实施例提供的分布式内存存储系统的结构示意图;

图7为本发明实施例提供的消息总线服务系统的结构示意图;

图8为本发明实施例提供的数据同步服务系统的结构示意图;

图9为本发明实施例提供的空间数据服务系统的结构示意图;

图10为本发明实施例中一种提供空间分析服务的装置的结构示意图。

具体实施方式

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

目前,空间分析服务往往需要处理大量携带有位置信息的数据,但是,由于空间服务任务的特殊性,往往需要及时的处理空间服务任务,获得实时有效的空间分析结果。而传统的空间分析服务中,即使分布式空间分析系统接收到再多的空间分析请求,也仍然采用先入先出(firstinputfirstoutput,简称:fifo)的排队策略来调度各个空间分析请求有序的进入空间分析进程中,进行每个空间分析请求对应的空间分析任务的处理,依次得到各个空间分析请求对应的空间分析结果。

这样,当空间分析服务中有多个空间分析请求对应的空间分析任务时,对于接收时间较晚的空间分析任务,需要等到排在该空间分析任务之前的所有空间分析任务都被处理完之后,才可以对该空间分析任务进行处理,导致很多空间分析任务需要较长的处理时间,从而难以及时地提供空间分析结果。

基于此,发明人经过研究,在本发明实施例中,通过将空间分析任务拆分的方式,将一个较大的空间分析任务拆分为多个较小的空间分析子任务,然后将这多个较小的空间分析子任务分配到多个空间分析进程中进行并行处理,最后将各个空间分析进程的分析结果进行合并,得到该空间分析请求对应的空间分析结果。如此,一方面,一个空间分析任务的子任务调度到多个空间分析进程中,并行执行空间分析,压缩了空间分析服务的总体耗时;另一方面,每个空间分析进程对应处理子任务都比较小,减少了每个空间分析进程的任务处理量,提高了任务处理时间。因此,本发明实施例中的提供空间分析服务的方法,可以有效的缩短空间分析的耗时,从而及时地提供空间分析结果,以及时地响应空间分析请求。

举例来说,本发明实施例的场景之一,可以是应用到如图1所示的场景。在该场景中,提供空间分析系统主要涉及:空间分析客户端101和分布式空间分析系统102。其中,空间分析客户端101和分布式空间分析系统102可以进行数据交互。提供空间分析服务时,具体过程可以是:分布式空间分析系统102在接收空间分析请求后,将所述空间分析请求对应的空间分析任务拆分成多个空间分析子任务;通过调度多个空间分析进程对所述多个空间分析子任务进行处理,得到多个空间分析子结果,其中,每一个所述空间分析进程处理至少一个所述空间分析子任务;最后,该分布式空间分析系统102将获得的多个空间分析子结果进行合并处理,得到所述空间分析请求对应的空间分析结果。其中,所述空间分析请求,可以是用户根据空间分析需求,在空间分析客户端101上配置空间分析需求,并触发空间分析客户端101生成并发送至分布式空间分析系统102的与空间分析需求对应的空间分析请求。

而且,当分布式空间分析系统102获得空间分析请求对应的空间分析结果后,可以将该空间分析结果反馈给空间分析客户端101,以便该空间分析客户端101将空间分析结果可视化的显示给用户,以满足用户的空间分析需求。

可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述由分布式空间分析系统102执行,但是本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。

可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。

在介绍本发明实施例提供的方法和装置的实施例之前,下面先结合图2介绍一下本发明实施例所涉及的分布式空间分析系统102所处的微服务架构的空间分析服务系统200。

如图2所示,该空间分析服务系统200包括服务治理层210和业务服务层220。

其中,服务治理层210包括全局配置中心211,用于提供整个空间分析服务系统200所有的配置存储和对外访问的能力;服务注册中心212,用于提供服务注册,服务检索,服务可用性检测等能力;监控运维中心213,用于提供所有服务的监控、运维能力;以及,服务网关214,用于提供所有业务服务的对外暴露能力,其内部维护了一套路由规则,决定了业务服务对外暴露的方式,比如统一资源定位符(uniformresourcelocator,简称:url),安全,负载均衡等。

业务服务层220包括分布式空间分析系统221(即上述图1所示的分布式空间分析系统102),用于提供空间分析服务能力以及分析结果的动态可视化能力;空间数据服务系统222,用于提供空间数据在线编辑和在线检索服务能力;三维场景服务系统223,用于提供三维场景数据发布和在线编辑服务能力;分布式内存存储系统224,用于提供分析结果的临时存储和读取的能力;消息总线服务系统225,用于提供消息存储,消息实时派发的能力;以及,数据同步服务系统226,用于提供了跨数据存储的数据同步能力,比如把空间分析结果从分布式内存存储系统224中同步到空间数据库中。

其中,业务服务层220中的各业务服务,是一组内聚性较高的功能组合,在各自独立的进程中运行,维护着自身的数据存储系统。各业务服务之间部署独立、互不影响,通过轻量级的协议进行数据通信。

举例来说,当一个业务服务启动时,将自动从全局配置中心211中拉取业务服务配置,并根据配置启动。启动后,自动注册到服务注册中心212,服务注册中心212内部维护了一组业务服务注册表,其中包括业务服务的名称,业务类型,业务服务端点信息以及业务服务可用性信息。服务注册中心212定期检测各业务服务的可用性,并自动更新业务服务注册表中各业务服务的可用状态。所有业务服务对外访问的接口通过服务网关214来提供,服务网关214定期从服务注册中心212同步各业务服务的信息,并根据内建的服务路由规则(比如:自动将业务服务名称映射成出口业务服务的contextpath),将业务服务暴露出去。同时服务网关214在对内派发请求时,会进行安全校验、负载均衡以及容错处理。

下面结合附图,通过实施例来详细说明本发明实施例中提供空间分析服务的方法和装置的具体实现方式。

示例性方法

参见图3,示出了本发明实施例中一种提供空间分析服务的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤301,接收空间分析请求。

可以理解的是,空间分析请求,是由空间分析需求的一方,根据实际的空间分析需要,生成的请求信息,用于向提供分布式空间分析系统请求进行该空间分析请求对应的空间分析任务。作为一个实例,空间分析请求可以是携带有空间分析标识的请求,那么,当接收到一个请求信息时,通过判断该请求信息中是否携带有空间分析标识,确定该请求信息是否为一个空间分析请求。具体而言,可以在空间分析请求的某个特定的字段,或者,某个空闲的字段中,添加请求类型的标识。

作为一种可能的实现方式,当分布式空间分析系统接收到空间分析请求后,可以对空间分析请求进行解析,获得该空间分析请求对应的空间分析任务。该空间分析任务,是该分布式空间分析系统在接收到该空间分析请求后需要完成的任务。

步骤302,将所述空间分析请求对应的空间分析任务拆分成多个空间分析子任务。

具体实现时,当分布式空间分析系统通过解析所接收到的空间分析请求,获得对应的空间分析任务后,为了提高空间分析效率,可以将该空间分析任务拆分为多个空间分析子任务。

作为一种示例,可以按照空间分析任务的特征(如:空间分析任务的分析步骤),进行该空间分析任务的拆分。举例来说,假设空间分析任务a包括步骤a、b和c,那么,可以将该空间分析任务a拆分为3个空间分析子任务,分别为:空间分析子任务1、空间分析子任务2和空间分析子任务3,其中,空间分析子任务1包括步骤a,空间分析子任务2包括步骤b,空间分析子任务3包括步骤c。可以理解的是,按照空间分析任务的特征进行拆分时,每个空间分析子任务可以与一个特征对应,也可以与多个特征对应,在本实施例中不作具体限定。

作为另一种示例,可以按照当前分布式空间分析系统的具体情况,对空间分析任务进行拆分。例如,可以根据分布式空间分析系统当前接收到的分析请求数量,和/或,分布式空间分析系统当前空闲的空间分析进程数量,确定可以同时用于处理该空间任务的可用空间分析进程,并将该空间分析任务拆分为与所确定的可用空间分析进程的数量相等的空间分析子任务。

需要说明的是,为了确保分布式空间分析系统的有序运行,在对空间分析任务进行拆分时,可以在拆分后的空间分析子任务中,添加该空间分析任务的标识以及空间分析子任务的编号。

步骤303,调度多个空间分析进程对所述多个空间分析子任务进行处理,得到多个空间分析子结果,其中,每一个所述空间分析进程处理至少一个所述空间分析子任务。

空间分析进程,是指可以进行空间分析服务的基本单位。一般而言,一个分布式空间分析系统包括多个空间分析进程,可以处理多个空间分析任务。

可以理解的是,分布式空间分析系统将空间分析请求对应的空间分析任务拆分为多个空间分析子任务后,可以调度多个空间分析进程,对多个空间分析子任务进行处理,得到多个空间分析子结果。

作为一种示例,分布式空间分析系统可以调度与空间分析子任务的数量相同的空间分析进程,每个空间分析进程处理一个对应的空间分析子任务,多个被调度的空间分析进程同时进行空间分析,分别获得一个对应的空间分析子结果。

作为另一种示例,分布式空间分析系统可以调度预设数量的空间分析进程,每个空间分析进程处理对应的多个空间分析子任务,预设数量的空间分析进程同时进行空间分析,获得多个空间分析子结果。其中,空间分析子任务的数量是预设数量的倍数,该倍数即为该示例中每个空间分析进程处理的空间分析子任务的数量。

作为再一种示例,分布式空间分析系统可以调度当前可用的空间分析进程,每个空间分析进程处理对应的至少一个空间分析子任务,当前可用的空间分析进程同时进行空间分析,获得多个空间分析子结果。其中,一种情况下,当当前可用的空间分析进程的数量大于空间分析子任务的数量时,可以调度空间分析子任务数量个当前可用的空间分析进程,每个空间分析进程处理一个空间分析子任务;另一种情况下,当当前可用的空间分析进程的数量等于空间分析子任务的数量时,可以调度当前可用的所有空间分析进程,每个空间分析进程处理一个空间分析子任务;再一种情况下,当当前可用的空间分析进程的数量小于空间分析子任务的数量时,可以调度当前可用的所有空间分析进程,每个空间分析进程处理至少一个空间分析子任务。

可以理解的是,无论采用何种调度和处理的方式,均可以获得多个空间分析子结果,每个分析空间子结果可以对应于一个空间分析子任务,作为处理该空间分析子任务的处理结果。

需要说明的是,为了确保分布式空间分析系统的有序运行,在对空间分析子任务进行处理以及得到空间分析子结果的过程中,持续保持空间分析子任务所属的空间分析任务的标识以及该空间分析子任务的编号不变。即,每个空间分析子结果中,包括该空间分析任务的标识以及对应的该空间分析子任务的编号。

步骤304,将所述多个空间分析子结果进行合并处理,得到所述空间分析请求对应的空间分析结果。

为了获得对空间分析请求对应的空间分析任务进行处理后完整的空间分析结果,可以将获得的多个空间分析子结果进行合并处理,得到包括该多个空间分析子结果的空间分析结果,作为空间分析请求对应的空间分析结果。

具体实现时,可以将携带同一空间分析任务标识的空间分析子结果,按照空间分析子结果中携带的对应于空间分析子任务的编号,按照预设的排序方式(如:升序)进行合并,获得包括多个空间分析子结果的一个空间分析结果。该空间分析结果中可以携带其对应的空间分析任务标识,以体现该空间分析结果对应于空间分析任务对应的空间分析请求。

在得到空间分析结果后,为了完整的为用户提供更好的空间服务体验,还需要对空间分析结果进行回写以及展示。

作为一种可能的实现方式,如图4所示,该提供空间分析服务的方法还可以包括:

步骤405,将所述空间分析结果回写到分布式空间分析系统内建的分布式存储系统中并在所述分布式存储系统中以弹性分布式数据集的形式保存所述空间分析结果中数据的引用;

步骤406,根据所述弹性分布式数据集,对所述分布式存储系统中的所述空间分析结果进行分布式动态出图处理,以展示所述空间分析结果。

其中,分布式空间分析系统中除了包括多个空间分析进程外,还包括分布式存储系统,作为该分布式空间分析系统的内部临时存储区域,存储分布式空间分析结果。

弹性分布式数据集(resilientdistributeddataset,简称:rdd),是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集,是一种分布式只读且已分区集合对象,这些集合对象是弹性的,即,如果数据集一部分丢失,依然可以进行重建。

具体实现时,当得到空间分析请求对应的空间分析结果后,可以将空间分析结果回写到分布式空间分析系统内建的分布式存储系统中,并在分布式存储系统中以rdd的形式保存所述空间分析结果中数据的引用。可以理解的是,在分布式存储系统中保存的空间分析结果中数据的引用,相当于保存有数据的标识,可以根据该数据的引用,查找到该数据,即,查找到该空间分析请求对应的空间分析结果。当在所述分布式存储系统中以rdd的形式保存所述空间分析结果中数据的引用后,还可以根据所述rdd,对所述分布式存储系统中的空间分析结果进行分布式动态出图处理,以展示所述空间分析结果。

作为一个实例,在步骤405之前,可以判断是否空间分析结果的数据量大于等于预设的数据量,如果是,则可以执行上述步骤405和步骤406。

可以理解的是,预设的数据量,是分布式空间分析系统预先设置的数据量的一个阈值,当一个空间分析结果的数据量大于等于该预设的数据量时,如果将该空间分析结果回写到该分布式空间分析系统之外的区域,可能导致回写时间过长,影响空间分析的及时性。那么,可以将该空间分析结果回写到分布式空间分析系统内建的分布式存储系统中。

如图5所示,为分布式空间分析系统的结构示意图,该分布式空间分析系统包括:主控进程、备份进程、多个空间分析进程以及该分布式空间分析系统内建的分布式存储系统。

作为另一种可能的实现方式,该提供空间分析服务的方法还可以包括:将空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

其中,空间数据库,是空间分析服务系统200之外的一个数据库,可以通过网络与该空间分析服务系统200进行数据交互,用于存储该空间分析服务系统200产生的空间分析结果等数据。分布式空间存储

具体实现时,该实现方式中,是否将空间分析结果回写到分布式内存存储系统,可以通过下述两个条件进行判断:条件一,所述空间分析结果的数据量是否小于预设数据量;条件二,所述空间分析结果是否属于预设结果类型。一旦条件一或者条件二的判断结果为是,则可以认为该空间分析结果需要被回写到分布式内存存储系统,那么,将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中,以便该空间分析结果可以被长期的存储。

其中,预设的数据量与上一实现方式一致,具体的描述可以参见上一实现方式的描述。当一个空间分析结果的数据量小于该预设的数据量时,说明该空间分析结果的数据量较小,可以将该空间分析结果回写到该分布式空间分析系统之外的区域,即,可以回写至分布式内存存储系统中,基本不会影响空间分析的及时性。那么,将该空间分析结果回写到分布式内存存储系统中。

预设结果类型,是分布式空间分析系统预先从许多数据类型中设定的需要回写到分布式内存存储系统中的数据类型。具体实现时,分布式空间分析系统中的数据,可以在一个特定或者空闲的字段中携带有该数据的类型,如:空间分析结果、中间数据和原始数据。假设预设结果类型为“空间分析结果”,当一个空间分析结果中携带的数据类型为“空间分析结果”,说明该空间分析结果属于预设结果类型,需要被长期存储,可以将该空间分析结果回写到分布式内存存储系统中。

可以理解的是,为了确保该空间分析结果可以被长期存储,在将空间分析结果回写到分布式内存存储系统后,所述分布式内存存储系统还可以将所述空间分析结果同步到空间数据库中,进行长期稳定的存储。

如图6所示,为分布式内存存储系统的结构示意图,该分布式内存存储系统主要提供了快速存取的数据存储和数据访问服务能力,主要用于性能要求较高的数据写入和读取,比如空间分析结果的写入和同步。该分布式内存存储系统包括一个或多个服务节点(用于提供存储服务端点)、多个内存存储节点(用于存储数据)。一般内存存储节点的物理内存要求较大(建议大于32g,可以选取128g)。

随着空间分析任务的不断增多,产生的空间分析结果以及其他的数据,也越来越多,这些数据都存储在空间分析服务系统200中,占用了大量存储资源,为了减轻系统运维人员的工作压力,尽量避免手动清理一些不必要的数据,耗费大量的时间和精力,本实施例的提供空间分析服务的方法,还包括自动清理数据的功能,具体可以包括:若所述空间分析结果的创建时间超过预设保留时间且所述空间分析结果不属于预设保留类型,将所述空间分析结果从目标存储位置删除;其中,所述目标存储位置包括所述空间数据库和/或所述分布式存储系统。

可以理解的是,空间分析结果中还可以包括:用于记录该空间分析结果的创建时间的第一字段,以及用于标识该空间分析结果是否为保留类型的第二字段。其中,第一字段可以是该空间分析结果的创建时间对应的时间戳,或者,也可以是其他形式的用于记录该空间分析结果的创建时间的字段;第二字段可以是空间分析结果中的“保留”字段,或者,也可以是其他形式的用于标识该空间分析结果为保留类型的字段。

预设保留时间,是预先设置的空间分析结果保留时间的一个阈值。预设保留类型,是预先设置在空间分析结果中标识该空间分析结果为需要保留类型的第二字段。

具体实现时,是否将空间分析结果从目标存储位置删除,需要满足下述两个条件:条件一,所述空间分析结果的创建时间超过预设保留时间;条件二,所述空间分析结果不属于预设保留类型。

对于条件一,当空间分析结果的创建时间超过了预设保留时间(如3小时),说明该空间分析结果保留的时间足够长,该空间分析结果后续被查看、调用等的可能性微乎其微,再保留该空间分析结果已经没有了实际的意义。对于条件二,当空间分析结果中不包括第二字段,或者,第二字段标识该空间分析结果为非保留类型,说明该空间分析结果不属于预设结果类型,即,该空间分析结果不是特定设置需要被永久或者长期保留的数据。当条件一和条件二同时满足时,说明该空间分析结果不需要被长期保存,而且创建的时间大于了预设的保留时间,则可以认为该空间分析结果符合被删除的条件,从而将该空间分析结果删除。

需要说明的是,所删除的空间分析结果位于目标存储位置。一种情况下,该目标存储位置可以是所述空间数据库。此时,空间分析结果的创建时间可以是空间分析结果的产生时间,也可以是空间分析结果回写到空间数据库的时间,预设保留时间可以是预先设置的第一保留时间,即,该空间分析结果在空间数据库保留的最长时间。

另一种情况下,该目标存储位置也可以是所述分布式存储系统。此时,空间分析结果的创建时间可以是空间分析结果的产生时间,也可以是空间分析结果回写到分布式存储系统的时间,预设保留时间可以是预先设置的第二保留时间,即,该空间分析结果在分布式存储系统保留的最长时间。

再一种情况下,该目标存储位置也可以是所述分布式存储系统和空间数据库。此时,空间分析结果的创建时间可以是空间分析结果的产生时间,也可以是空间分析结果回写到目标存储位置的时间,预设保留时间可以包括第一保留时间和第二保留时间。由于空间数据库是空间分析服务系统200之外独立的数据库,而分布式存储系统是空间分析服务系统200内建的数据库,因此,为了减少空间分析服务系统200的数据存储压力,该第一保留时间可以大于第二保留时间,即,对于不属于预设保留类型的空间分析结果,在空间数据库中的保留时间可以比分布式存储系统的保留时间长。

通过本实施例提供的空间分析结果的自动清理机制,可以及时清理空间分析服务系统200中允许清理的空间分析结果,避免大量的空间分析结果占用存储资源,减轻系统运维人员的工作压力,省时省力。

此外,传统的分布式空间分析系统,对于接收到的每个空间分析请求,决定是否开始处理,要看该空间分析请求之前的空间分析请求是否完成处理,如果是,则可以开始处理该空间分析请求,否则,需要等待该空间分析请求之前的空间分析请求处理完成之后,才可以开始处理该空间分析请求。那么,为了进一步缩短空间分析的耗时,及时地提供空间分析结果,本实施例还可以包括:判断分布式空间分析系统是否具有空闲的空间分析进程;若具有,从所述空闲的空间分析进程中选取所述多个空间分析进程,并执行所述调度多个空间分析进程对所述多个空间分析子任务进行处理。

可以理解的是,分布式空间分析系统包括多个空间分析进程,而空闲的空间分析进程,是指当前时刻,没有被调度处理任何一个空间分析任务或者空间分析子任务的空间分析进程。

具体实现时,对于当前正在处理的空间分析请求之后接收到的空间分析请求,记作第二空间分析请求,先判断该分布式空间分析系统是否具有空闲的空间分析进程,如果有,则可以将该第二空间分析请求对应的第二空间分析任务拆分成多个空间分析子任务,再从该空闲的空间分析进程中选取多个空间分析进程,并执行上述步骤303,即,调度选取的多个空间分析进程,对该第二空间分析任务拆分成的多个空间分析子任务进行处理,而无需考虑上一个空间分析请求对应的空间分析任务是否处理完成,加快了空间分析速度,提高了空间分析的响应效率。

可见,本发明实施例的提供空间分析服务的方法,通过将空间分析任务拆分的方式,将一个较大的空间分析任务拆分为多个较小的空间分析子任务,然后将这多个较小的空间分析子任务分配到多个空间分析进程中进行并行处理,最后将各个空间分析进程的分析结果进行合并,得到该空间分析请求对应的空间分析结果。如此,一方面,一个空间分析任务的子任务调度到多个空间分析进程中,并行执行空间分析,压缩了空间分析时间的总体时间,另一方面,每个空间分析进程对应处理子任务都比较小,减少了每个空间分析进程的任务处理量,提高了任务处理时间。因此,本发明实施例中的提供空间分析服务的方法,可以有效的缩短空间分析的耗时,从而及时地提供空间分析结果,以及时地响应空间分析请求。

在介绍完本发明实施例的提供空间分析服务的方法后,为了使本发明实施例更加完整和清楚,下面介绍空间分析服务系统200中业务服务层220的其他系统。本发明提供的空间分析服务系统200的业务服务层220中,除了分布式空间分析系统221和分布式内存存储系统224之外,还包括:空间数据服务系统222、三维场景服务系统223、消息总线服务系统225和数据同步服务系统226。

参见图7,为消息总线服务系统225的结构示意图。其中,消息总线服务系统225包括消息总线端点服务以及多个消息代理。消息总线服务系统225提供了消息发布和订阅的服务访问端点,该访问端点的接口是抽象的,不绑定任何的消息代理,通常该端点服务可以由springcloudbus来实现。消息代理可以有多个实例,可以考虑采用kafka或rabbitmq实现。

可以理解的是,消息总线服务系统225是各业务服务的耦合剂,可以将各业务服务连接起来。例如,分布式空间分析系统221分析完成后,将调用分布式内存存储系统224,将分析结果写到分布式内存存储系统224中,同时通过消息总线服务系统225在特定消息主题上发布消息(消息内容是分布式内存存储系统224中新增了一个分析结果数据集),数据同步服务系统226订阅了该消息主题,它可以快速接收到该消息,然后数据同步服务系统226将存储在分布式内存存储系统224中的数据同步到空间数据库上,然后通过消息总线服务系统225通知空间数据库刷新数据目录。

参见图8,为数据同步服务系统226的结构示意图。其中,数据同步服务系统226提供了跨存储的空间数据同步能力,比如将存储在分布式内存存储系统224的空间分析结果同步到空间数据库中。

该数据同步服务系统226还提供了rest的服务端点来暴露数据同步的能力,例如:新建数据同步作业,取消数据同步作业,数据同步作业信息的检索等,数据同步服务系统226背后挂载多个数据同步工作节点来具体实施数据同步作业。

参见图9,为空间数据服务系统222的结构示意图。其中,空间数据服务系统222提供了空间数据的在线编辑(可编辑属性或空间位置)和检索(比如:空间查询、属性查询等)的服务能力。该空间数据服务系统222包括:空间数据端点服务以及空间数据库集群,其中,空间数据库集群需要有空间索引以及空间查询的能力,如mongodb或者oracle等具有空间数据存储能力的系统。

而三维场景服务系统223提供了三维场景数据(如:精细模型数据、高清影像数据、地形数据等)等的发布以及在线编辑的服务能力。该三维场景服务系统223包括:端点服务以及存储系统,其中,该存储系统要求具有较大的存储能力,具有较高的读取性能,对于空间索引能力要求不高,可以考虑用hbase来实现。

下面介绍基于图2的微服务架构的空间分析服务系统200的操作流程。

流程一:分布式空间分析系统响应空间分析请求的流程,具体可以包括:

s11,服务网关接收到空间分析请求,根据内建的安全规章,进行安全控制,如果当前用户不具有权限使用相应的空间分析能力,则拒绝服务,返回401状态码;否则进入s12。

s12,服务网关根据服务注册中心中注册的分布式空间分析信息,选择某个分布式空间分析实例a进行响应,将该空间分析请求派发给分布式空间分析实例a,进入s13。

s13,分布式空间分析系统接收到空间分析请求后,检查sparkcontext是否已实例化,如没有,则阻塞该空间分析请求,并实例化sparkcontext实例,否则直接重用已有的sparkcontext实例,进入s14。

s14,分布式空间分析系统根据空间分析请求的参数,计算得到当前空间分析请求期望的分析类型,从服务内建的分析提供者注册表中查找指定的分析提供(analysisprovider)者,如果查找失败,则返回404状态码,否则进入s15。

s15,分布式空间分析系统调用分布式空间分析作业管理器(analysisjobmanager)的launchjob方法来提交分布式空间分析作业(analysisjob),调用时,会传入analysisprovider以及sparkcontext实例。analysisjobmanager基于analysisprovider以及sparkcontext实例化分布式空间分析作业(analysisjob),并异步启动analysisjob,开始分布式分析,关于analysisjob如何执行分布式空间分析作业的流程,详见流程二。异步启动analysisjob会很快完成,analysisjobmanager返回analysisjob信息(如jobid,job配置以及状态信息),进入s16。

s16,分布式空间分析系统将analysisjobmanager返回的analysisjob信息序列化,回写到空间分析请求的响应(httpresponse)中。

流程二:analysisjobmanager执行分布式空间分析作业的流程,可以包括:

s21,当analysisjobmanager的launchjob方法被调用后,会实例化analysisjob对象,在构造analysisjob实例的过程中,会将analysisprovider,sparkcontext,analysisparam,analysisresultmanager对象传递进来。当analysisjob实例化完毕后,修改analysisjob内部的工作状态为“就绪状态”,进入s22。

s22,analysisjobmanager将该analysisjob提交到工作线程池中执行,analysisjob对象的run方法将会被工作线程执行,analysisjob的状态将被置为“运行状态”,进入s23。

s23,analysisjob对象调用analysisprovider的analyst方法开始进行分布式分析,进入s24。

s24,analysisprovider通过anlysisparam中找到待分析的数据的连接信息,通过sparkcontext对象将存储在分布式存储系统中的待分析数据映射成featurerdd(基于sparkrdd,同时支持空间对象的查询和处理),进入s25。

s25,analysisprovider调用featurerdd的各种map,reduce方法进行分布式处理,从而实现分布式空间分析的能力。当分布式空间分析完成后,进入s26。

s26,analysisjob根据analysisparam设置的参数,来决定如何处理空间分析结果。

有两种方案来处理空间分析结果。

作为一种示例,当analysisparam中writeresulttostore字段为true,analysisjob内部处理流程如下:

s26a1,analysisjob调用featurerdd的savetostore方法,将空间分析结果写到分布式空间分析系统内建的分布式存储系统中,进入s26a2。

s26a2,analysisjob调用analysisresultmanager的addanalysisresult()方法,将空间分析结果featurerdd保存在analysisresultmanager。

s26a3,analysisjob将当前job的状态置为“分析完成”。

s26a4,analysisjob根据featurerdd的id,生成空间分析结果的链接。并将链接填充到analysisjob详情信息中。

s26a5,analysisjob将当前job的状态置为“结果服务发布可用”。

作为另一种示例,当analysisparam中writeresulttostore字段为false,analysisjob内部处理流程如下:

s26b1,analysisjob调用featurerdd的savetostore方法,将空间分析结果写到分布式内存存储系统中,进入s26b2。

s26b2,analysisjob通过消息总线服务系统,向“topica”消息主题推送一条消息,告知分布式内存存储系统中新增了内存数据集,假如叫dataseta。analysisjob将当前job的状态置为“分析完成”,然后开始挂起工作线程,进入等待状态。

s26b3,数据同步服务系统订阅“topica”主题的消息,当接收到消息总线推送的消息,该数据同步服务系统得知分布式内存存储系统新增了dataseta数据集,进入s26b4。

s26b4,数据同步服务系统开始从分布式内存存储系统同步dataseta的数据到空间数据库中,当同步完成后,数据同步服务系统调用消息总线服务系统,向“topicb”推送一条消息,消息内容是“空间数据库中新增了dataseta”,进入s26b5。

s26b5,空间数据服务系统订阅了“topicb”消息主题,该空间数据服务系统接收到消息后,开始刷新服务,并感知到其背后的存储中新增了dataseta,将该dataseta体现在空间数据服务系统内容中,向“topicc”推送一条消息,内容是“空间数据服务系统中新增dataseta的内容,且该dataset的访问地址是url1”,进入s26b6。

s26b6,analysisjobmanager订阅了“topicc”的消息,当其接收到空间数据服务系统内容发生变更的消息后,唤醒了analysisjob工作线程,并告知其空间分析结果已可用,地址是url1,进入步骤s26b7。

s26b7,analysisjob将作业状态置为“空间分析结果可用”。

流程三:分布式空间分析系统响应空间分析结果,分布式动态出图请求流程,可以包括:

s31,服务网关接收到动态出图请求,根据内建的安全规章,进行安全控制,如果当前用户不具有权限使用相应的分析能力,则拒绝服务,返回401状态码,否则进入s32。

s32,服务网关根据服务注册中心中注册的分布式空间分析信息,选择某个分布式空间分析实例a进行响应,将动态出图请求派发给分布式空间分析实例a,进入s33。

s33,分布式空间分析系统解析动态出图请求烦人参数mapparameter,得到待出图的数据的featurerdd的id,进入s34。

s34,分布式空间分析出图调用analysisresultmanager的getresult(id)方法,得到featurerdd,该featurerdd对应了某次空间分析结果,进入s35。

s35,分布式空间分析系统根据mapparameter,featurerdd以及服务内部维护的sparkcontext对象开始实例化mappingjob,当实例化完毕后,调用mappingjob的outputtobitmap方法开始分布式动态出图,进入s36。

s36,mappingjob调用featurerdd的各种map,reduce方法开始收集落在出图范围内的空间数据,并进行一定的抽吸和像素坐标转换,得到像素坐标的feature数组,进入s37。

s37,mappingjob根据mapparameter将feature数组绘制在内存中,并序列化为某种特定的图片格式,比如png格式,进入s38。

s38,分布式空间分析系统从mappingjob对象中得到分布式动态出图的结果(图片的二进制表达方式),将该结果写回到动态出图请求的响应中,从而完成动态出图请求的处理流程。

流程四:分布式空间分析客户端发出空间分析请求以及完成分析结果展示的流程,可以包括:

s41,分布式空间分析客户端整理请求参数,并发出空间分析请求,进入s42。

s42,服务网关接收到空间分析请求,开始处理空间分析请求,具体流程,见流程一,最终服务网关将返回分布式空间分析作业信息,包括(作业id,作业信息的访问url,作业状态等),进入s43。

s43,分布式空间分析客户端检查服务网关返回的分布空间式分析作业信息,判断分布式空间分析作业是否已成功创建,如果创建失败则抛出异常,如果成功,则进入s44。

s44,分布式空间分析客户端开始轮询分布式空间分析作业的状态,从而检查分析空间作业是否已完成,直到服务网关返回分布式空间分析作业已完成响应,分布式空间分析客户端根据响应信息,得到空间分析结果的地址,进入s45。

s45,根据空间分析结果的地址,构造空间分析结果图层,并添加到当前的地图窗口中,并刷新地图对象,从而完成空间分析结果的可视化过程。

本发明实施例除了提供的提供空间分析服务的方法外,还提供了一种提供空间分析服务的装置,如图10所示,包括:

接收模块1001,用于接收空间分析请求;

拆分模块1002,用于将所述空间分析请求对应的空间分析任务拆分成多个空间分析子任务;

处理模块1003,用于调度多个空间分析进程对所述多个空间分析子任务进行处理,得到多个空间分析子结果,其中,每一个所述空间分析进程处理至少一个所述空间分析子任务;

合并模块1004,用于将所述多个空间分析子结果进行合并处理,得到所述空间分析请求对应的空间分析结果。

可选地,该装置还包括:

第一回写模块,用于将所述空间分析结果回写到分布式空间分析系统内建的分布式存储系统中并在所述分布式存储系统中以弹性分布式数据集的形式保存所述空间分析结果中数据的引用;

出图模块,用于根据所述弹性分布式数据集,对所述分布式存储系统中的所述空间分析结果进行分布式动态出图处理,以展示所述空间分析结果。

可选地,该装置还包括:

第二回写模块,用于将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,所述第二回写模块,具体用于:

若所述空间分析结果的数据量小于预设数据量或所述空间分析结果属于预设结果类型,将所述空间分析结果回写到分布式内存存储系统中,以便所述分布式内存存储系统将所述空间分析结果同步到空间数据库中。

可选地,该装置还包括:

删除模块,用于若所述空间分析结果的创建时间超过预设保留时间且所述空间分析结果不属于预设保留类型,将所述空间分析结果从目标存储位置删除;

其中,所述目标存储位置包括所述空间数据库和/或所述分布式存储系统。

可选地,该装置还包括:

选取模块,用于判断分布式空间分析系统是否具有空闲的空间分析进程;若具有,从所述空闲的空间分析进程中选取所述多个空间分析进程并执行所述调度多个空间分析进程对所述多个空间分析子任务进行处理。

上述描述为提供空间分析服务的装置的相关描述,其中,具体实现方式以及达到的效果,可以参见图3所示的提供空间分析服务的方法实施例的描述,这里不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1