促进分布式键值存储库上的空间索引的制作方法

文档序号:19471654发布日期:2019-12-21 02:22阅读:144来源:国知局
促进分布式键值存储库上的空间索引的制作方法

本主题公开总体上涉及对数据的空间索引和快速检索,更具体地涉及对于存储空间时间和移动数据的分布式键值的空间索引。



背景技术:

如今,期望向地理上靠近特定企业或位于特定地理位置内的特定顾客提供信息。例如,可能期望将优惠券推给在过去两天内购买了特定商品并且离特定企业在200英尺内的30岁-40岁之间的顾客。为了向企业提供该信息,采用了一种可以快速处理非结构化数据并且极具动态性的传递系统。使用传统数据库的成本非常高,以及需要纵向和横向扩展服务器来维护和跟踪这样的信息。目前,使用关系数据库来存储大量数据。随着存储的数据越来越多,成本会由于所需要的服务器数量而增加,而当处理跨所有服务器的多范围扫描时,效率会下降。因此,关系数据库不是对于所有可能类型的情况(例如,各种多范围查询)的最佳解决方案。

为了降低成本,采用非sql或非关系(nosql)存储库(例如,nosql数据库或键值数据库)来存储大量数据。nosql存储库能够处理非结构化和不可预测的数据。nosql存储库不是sql数据库,以及提供了丰富的查询功能并且可以易于扩展。nosql存储库正在获得行业支持,尤其是在存储地理测绘数据方面。然而,已发现的问题是nosql数据库不支持空间索引以允许k个最近邻法类型的查询(例如,“基于最近的”搜索以示出离我最近的、有人在那里买了一杯咖啡的所有咖啡店)、包含式类型的查询(例如,示出具有给定边界的、在过去两个小时内搭载了至少一名乘客的所有出租车)和距离内类型的查询(例如,基于距离的搜索以示出位于离餐馆0.3英里处的所有移动用户,以便他们可以接收到促销代码)。此外,另一个限制是nosql存储库支持单维度范围扫描,诸如,查询“20岁-30岁范围内的所有人或工资为10万美元-20万美元的所有人”或查询“以m-p开头的所有姓名”。然而,期望执行多维度范围扫描。

尽管nosql是用于存储大量数据集合的优先选择,但问题是要在不需要使用大量的计算机设备的情况下就能快速且高效地获取期望的信息。由于nosql支持单维度扫描,因此获得对多维度查询的实时答案将会有问题。如本文中所用的,术语“实时”涉及这样的数据处理系统,其中计算机接收不断变化的数据(诸如几何数据、消费者的购买习惯等),并且响应于查询,提供在接收到查询时可用的最新数据。因此,术语“实时”不需要被限制为在接收到查询后的任何特定时间量。

因此,在本文中描述的一个或多个实施例中采用了这样的解决方案和技术,其高效地使用nosql存储库来插入几何数据并且快速地处理查询,以允许企业获得关于潜在顾客的数据(例如,在某些情况下,实时数据)。



技术实现要素:

以下给出概述以提供对本发明的一个或多个实施例的基本理解。该“发明内容”不是旨在标识关键元素或重要元素、描绘特定实施例的范围或权利要求的范围。其唯一目的是以简化的形式呈现概念,作为稍后呈现的更详细描述的序言。在本文中描述的一个或多个实施例中,描述了促进对键值存储库的空间索引的系统、计算机实现的方法、装置和/或计算机程序产品。

根据实施例,系统包括存储计算机可执行组件的存储器和执行存储在存储器中的计算机可执行组件的处理器。在一个示例中,该系统包括生成几何对象的一个或多个地理散列的几何散列组件,其中一个或多个地理散列包括作为键存储在键值数据库中的一个或多个编码比特。在一个示例中,该系统包括生成空间索引的几何索引组件,其中空间索引是基于针对一个或多个地理散列生成的编码比特的总数量。在一个示例中,该系统包括几何存储组件,该几何存储组件使用空间索引将几何对象和一个或多个地理散列存储在键值数据库中,以允许更快地检索几何对象。优点是可以快速地检索被正确地插入和索引的空间数据。

在一些示例中,键值数据库包括一个或多个级别,其中一个或多个级别中的单个级别用来存储几何对象。这样的系统的优点是可以同时扫描多个级别以查找几何对象,这反过来将减少整体搜索时间。

在另一个实施例中,提供了一种计算机实现的方法。在一个示例中,该计算机实现的方法包括:由可操作地耦合到处理器的几何散列组件生成几何对象的一个或多个地理散列,其中一个或多个地理散列包括作为键存储在键值数据库中的一个或多个编码比特;以及由可操作地耦合到处理器的几何索引组件生成空间索引,其中空间索引是基于针对一个或多个地理散列生成的一个或多个编码比特的总数量。该计算机实现的方法还可以包括由可操作地耦合到处理器的几何存储组件,使用空间索引将几何对象和一个或多个地理散列插入键值数据库中,以允许更快地检索几何对象。

在一些示例中,用于该计算机实现的方法的键值数据库包括一个或多个级别,其中一个或多个级别中的单个级别用来存储几何对象。这样的方法的优点是可以同时扫描多个级别以查找几何对象,这反过来又将减少整体搜索时间。

在另一个实施例中,系统包括存储计算机可执行组件的存储器、以及执行存储在存储器中的计算机可执行组件的处理器。在一个示例中,该系统包括几何查询处理组件,该几何查询处理组件接收指定相对于几何对象的地理位置的目标的查询,并且生成该查询的地理散列,其中该地理散列是表示键值数据库中的键的一组比特。在一个示例中,该系统包括几何查询结果组件,该几何查询结果组件通过生成初始的键列表并且对键值数据库的所有级别进行同时搜索来识别几何对象,以允许快速检索几何对象,其中初始的键列表包括存储在键值数据库中的与地理散列匹配的一个或多个键。优点是通过并行地搜索所有级别,可以快速且高效地查找几何对象。

在一些示例中,几何查询结果组件生成删减的键列表,其中删减的键列表包括与目标匹配的键列表。优点是通过生成过滤掉不匹配数据的第二列表,提高了用于识别准确几何对象的整体速度。

在另一个实施例中,提供了一种计算机实现的方法。在一个示例中,计算机实现的方法包括:由可操作地耦合到处理器的几何查询处理组件接收指定相对于几何对象的地理位置的目标的查询;以及由几何查询处理组件生成查询的地理散列,其中地理散列是表示键值数据库中的键的一组比特。在一些实施例中,该计算机实现的方法还可以包括:由处理组件通过生成初始的键列表并且对多级别键值数据库的所有级别进行同时搜索来识别几何对象,其中,初始的键列表包括存储在键值数据库中的与地理散列匹配的键。

在一些示例中,该计算机实现的方法包括:由处理组件生成删减的键列表,其中,删减的键列表包括与目标匹配的一组键。优点是通过并行地搜索所有级别,可以快速且高效地查找几何对象。

在另一个实施例中,提供了一种用于使用键值数据库中的空间索引来插入和提取地理位置数据的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有包含在其中的程序指令。程序指令可由处理器执行,并且使处理器:由处理器接收指定相对于几何对象的地理位置的目标的查询;由处理器生成查询的地理散列,其中,地理散列是表示键值数据库中的键的一组比特;以及由处理器识别几何对象,生成初始的键列表,并且对键值数据库的所有级别进行同时搜索,以允许快速检索几何对象,其中初始的键列表包括存储在键值数据库中的一组键,这一组键将地理散列的前缀与存储在键值数据库中的键的前缀相匹配。

在一些示例中,程序指令还可以由处理器执行,并且使处理器:由处理器生成删减的键列表,其中删减的键列表包括与目标匹配的键列表。优点是通过使用用于搜索的前缀来并行地搜索所有级别,可以快速且高效地查找几何对象。

附图说明

图1示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的系统的框图,该系统可以促进使用nosql数据库插入地理空间数据的处理和提取地理空间数据的处理。

图2描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进生成几何对象的地理散列。

图3描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进生成空间索引。

图4描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法便于接收查询。

图5描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进识别键值数据库中存储的几何对象。

图6示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进将几何对象插入nosql存储库中。

图7示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进从nosql存储库中提取几何对象。

图8示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进从nosql存储库中提取几何对象。

图9示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的产品的流程图,该产品促进使用查询从nosql存储库中提取几何对象。

图10示出了根据本文中描述的一个或多个实施例的流程图,该流程图标识了促进将几何对象插入到nosql存储库中的非限制性方法的步骤。

图11示出了根据本文中描述的一个或多个实施例的流程图,该流程图标识了促进基于查询提取几何对象的非限制性方法的步骤。

图12是根据本文中描述的一个或多个实施方式的示例性操作环境的示意图。

具体实施方式

以下详细描述仅仅是说明性的,并且不是旨在限制实施例和/或实施例的应用或使用。此外,不是旨在受前面“发明内容”部分或“具体实施方式”部分呈现的任何明示或暗示信息的约束。现在参考附图描述一个或多个实施例,其中贯穿全文,相同的附图标记用来指代相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对一个或多个实施例的更彻底的理解。然而,很明显,在各种情况下,可以在没有这些具体细节的情况下实施一个或多个实施例。

考虑到使用传统关系数据库和nosql存储库的上述问题,可以实现一个或多个实施例,以按照如下形式来产生对这些问题中的至少一些问题的解决方案:使用可以根据多维度几何对象生成多个单维度键(例如,地理散列)的空间索引以及使用nosql存储库的多级别存储方案来插入几何对象。生成给定几何对象的地理散列具有如下优点:允许企业将多维度几何对象插入到nosql存储库中。使用单维度键具有快速且高效地处理未来多维度查询的优点。生成地理散列的另一个优点是,来自生成的地理散列的信息可被用来识别nosql存储库的最佳拟合级别以插入几何对象。基于来自生成的地理散列的信息在nosql中的给定级别存储几何对象具有如下优点:对每个级别进行并行扫描以快速且高效地发现所插入的几何对象。使用人工智能和数据分析实现本发明的一个或多个实施例具有其他技术优点,诸如减少能量、存储设备的使用和减少电信资源的使用。

图1示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的系统100的框图,该系统100可以促进使用nosql数据库插入地理空间数据的处理和提取地理空间数据的处理。此外,根据本文中描述的一个或多个实施例,系统100可以促进使用并行搜索来快速识别特定上下文中的查询结果的处理。本公开中解释的系统(例如,系统100等)、装置或处理的方面可以构成包含在机器内的机器可执行组件,例如,包含在与一个或多个机器相关联的一个或多个计算机可读介质(或多个介质)中。当由一个或多个机器(例如,计算机、计算设备、虚拟机等)执行时,这样的组件可以使机器执行所述操作。为了简洁起见,省略了在本文中描述的一个或多个实施例中采用的类似元件的重复描述。

系统100可以可选地包括服务器设备、一个或多个网络以及一个或多个设备(未示出)。系统100还可以包括或以其他方式与至少一个处理器102相关联,该处理器102执行存储器114中存储的计算机可执行组件。系统100还可以包括系统总线116,系统总线116可以耦合各种组件,包括但不限于几何散列组件104、几何索引组件106、几何存储组件108、几何查询处理组件110和几何查询结果组件112。系统100可以是可通信地耦合到设备的任何合适的计算设备或一组计算设备,计算设备的非限制性示例可以包括但不限于服务器计算机、计算机、移动计算机、大型计算机、自动测试系统、网络存储设备、通信设备、网络服务器设备、网络交换设备、网络路由设备、网关设备、网络集线器设备、网桥设备、控制系统或任何其他合适的计算设备。设备可以是能够与系统100传送信息的任何设备和/或能够使用由系统100提供的信息的任何其他合适的设备。应当理解,系统100、组件、模型或设备可以配备有通信组件(未示出),这些通信组件能够通过一个或多个网络在系统、组件、模型、设备等之间实现通信。

根据系统100,存储器114可以存储可由处理器102执行的计算机可执行组件。几何散列组件104可以接收几何对象以存储到存储器114中。在实施例中,要存储的几何对象可以是单个点数据或范围(例如,一维)、空间数据(例如,二维,如纬度和经度)、海拔(例如,三维)和时间(四维)。根据所收集的并且希望存储在nosql存储库中的信息,几何对象的尺寸会很大。任何合适的格式和方法都可以用于构建几何对象。例如,几何对象可以是格式为(a,b,c,d)的地理测绘数据,其中在一些实施例中,a可以用来识别项目(例如学校),b可以是地理空间数据(例如由学校覆盖的区域的纬度和经度定义的边界),c可以是海拔信息,而d可以保持空白。在另一个示例中,三维的几何对象(出租车载客、地理空间数据和时间)可用来插入在给定时间期间每个区域中发生了多少出租车载客。

几何散列组件104可以生成几何对象的一个或多个地理散列。在实施例中,针对几何对象计算边界框(例如,用于n维的点集合的最小框是其中包含几何对象的所有点的具有最小度量的框)。基于边界框的大小(例如,用来编码地理散列的比特数量),选择地理散列比特深度。在实施例中,使用将带有单位(例如米/英尺/码)的大小与用来编码地理散列的比特数量相关联的表来确定比特深度。根据本发明,可以使用任何合适的结构来确定比特深度。在实施例中,使用存储在存储器114中的地理散列比特深度表,地理散列比特深度表包括级别值、比特数量值和范围值。例如,在地理散列比特深度表中,深度级别1可以表示用来定义大小为1000平方米的边界框的5个比特;而比特级别2可以表示用来定义大小为100平方公里的边界框的6个比特。在所选择的比特深度处,确定完全覆盖几何对象的地理散列集合(例如,几何对象被包含在地理散列的联集中)。在实施例中,所生成的地理散列的数量可以由几何对象的维度来定义。例如,使用公式3n-1,其中n是几何对象的维度数量,基于几何对象的维度信息来确定要生成的地理散列的最大数量。在实施例中,每个地理散列(或者,在一些实施例中,一个或多个地理散列)表示编码键,该编码键包括一组比特(或者,在一些实施例中,一个或多个比特),并且表示单个空间维度范围值(例如,基于范围的纬度值和经度值)。用于地理散列的比特数量取决于几何对象的大小。

几何散列组件104可以使用任何合适的模型来使用几何对象中提供的地理空间数据信息(例如,地球上的边界)生成地理散列。例如,地理空间数据被分成多个框,其中每个框可以由地理空间数据(例如,纬度、经度、纬度经度)来定义,以表示地理散列。可以使用任何合适的模型对每个框进行编码,以生成一组比特。例如,将框编码成比特向量的一种方法是使用地理散列。地理散列通过从整个地球开始迭代地将一个区域分成四个区域来进行工作。与整个全地球相关联的标签是ф(空/零比特向量)。具有标签b的任何框的后续四个划分被标记为{b00,b01,b11,b10},即通过将{00,01,11,10}连接到标签b。注意,具有任何比特向量b的ф都导致b。在实施例中,每个地理散列都具有前缀部分和主体部分。每个地理散列都被编码为比特向量。例如,比特向量b=concat(b1,b2)(例如,0010=concat(001,0))。于是,b1是前缀,而b2是后缀/主体。

前缀和主体是基于为地理散列选择的框的大小。前缀可以呈现区域位置信息。例如,如果使用纬度和经度将地球分成16个多项式框,则前缀可以是多项式之一。主体可以代表所有附加的粒度多项式。例如,16个边界框可以被二进制编码成大小为4的比特向量。这些比特向量的范围从0000到1111。对于任何比特向量b=concat(b1,b2),b1代表粗粒度的框(即,b被包含在b1中),而后缀b2的添加定义了更细粒度的框b。在极端情况下,如果b1=ф(空/零比特向量),那么这代表整个地球—任何几何图形的最高级别的粗粒度表示。在其他极端情况下,如果b的长度是64,那么几何图形尺寸由9.4毫米x9.4毫米来限定(对于许多实际应用,这被认为是“点”几何图形)。

几何索引组件106可以生成空间索引,空间索引是基于由所有地理散列生成的编码比特的总数量。例如,在实施例中,nosql存储库被配置为使用多级别方案来存储地理散列和几何对象。每个级别都是基于期望的分辨率来定义的。在非限制性示例中,从0开始,使用4个级别(例如,0、10、20、30分辨率)。空间索引可用来识别每个级别。空间索引0是包罗万象的索引(例如,级别0-可以插入任何几何对象,诸如整个地球)。空间索引1将存储产生0-10个比特的所有几何对象;空间索引2可以被设置为存储产生10-20个比特的所有几何对象;而空间索引3可以被设置为存储产生20个比特以上的所有几何对象。例如,如果几何对象非常大,那么它可能被存储在级别0;一条道路可能被设置在级别20;而小房子可能被存储在级别30。基于对nosql存储库将要追踪的内容的预先了解(例如,房屋、道路、城市、国家等),可以定义级别的总数量和级别的分辨率。几何索引组件106可以确定针对地理散列生成的编码比特的总数量。使用编码比特的总数量,可以使用上面讨论的模型来确定特殊索引。

几何存储组件108可以通过使用空间索引来确定要插入几何对象和所有地理散列的最佳级别。例如,如果针对给定几何对象生成的编码比特的总数量是24,那么上面示例中的空间索引将等于2。在实施例中,如果比特的总数量未确定(例如,提供了整个地球),那么空间索引0将被用作包罗万象的索引。空间索引0保存长度为0的地理散列(即ф–零/空比特向量)。ф比特向量代表整个地球。由于我们正在对地球上的对象进行索引,被编码为ф的地理散列保证覆盖任何输入的几何对象。

几何查询处理组件110可以接收指定相对于几何对象的地理位置的目标的查询。查询可以具有目标(例如,请求者想要什么)和可以与该目标相关联的地理位置信息。查询可以具有附加的范围信息,以帮助查找nosql存储库中存储的几何对象。目标可以是基于距离的目标,以查找某一距离内的相对几何对象。例如,“查找离地理位置某一距离内最近的几何对象”。目标可以是“基于最近”的目标,以查找与人或地方最接近的相对几何对象。例如,“查找昨天在我的商店附近购买咖啡的所有人”。目标可以是“基于包含在内”的目标,以查找包含在定义区域中的相对几何对象。例如,“查找在时代广场运营的所有出租车”。几何查询处理组件110可以生成查询的地理散列(例如,查询的地理位置部分的地理散列),其中地理散列是表示键值数据库中的键的一个或多个比特(或者,在一些实施例中,一组比特)。在实施例中,查询包括搜索几何形状(例如,点)和搜索半径(300米)。首先计算搜索几何对象的边界框。将边界框扩展以覆盖搜索半径。给定经扩展的边界框的大小,如上所述地确定地理散列比特深度。然后使用在确定的比特深度处的地理散列来覆盖经扩展的地理散列。

几何查询处理组件110可以使用地理散列来识别几何对象。例如,数据库中的几何图形和查询两者(搜索几何图形+搜索半径)都可以被编码为比特向量,搜索操作只需要我们匹配这些比特向量。如果b1是b2的前缀或b2是b1的前缀,则两比特向量b1和b2匹配。例如,(0010,00)匹配,而(0010,01)不匹配。几何查询处理组件110可以使用地理散列来生成初始的键列表。如上所述,通过如下操作将搜索几何图形和搜索半径转换成地理散列:首先计算搜索几何图形的边界框,然后将该框拉伸达所述搜索半径,然后利用不超过3n-1个地理散列覆盖边界框。几何查询处理组件110可以将地理散列与存储在键值数据库中的一个或多个键相匹配,以创建初始的键列表。

几何查询处理组件110可以同时(或并行地)搜索键值数据库的所有级别,以快速且高效地构建初始的键列表。几何查询处理组件110可以使用存储在键值数据库中的地理散列的前缀和键的前缀来执行匹配。例如,给定从(搜索几何,搜索半径)中获得的比特向量b1和针对插入的几何图形获得的比特向量b2,如果且仅当b1是b2的前缀或者b2是b1的前缀时,它们匹配。例如,(0010,00)匹配,而(0010,01)不匹配。

几何查询处理组件110可以通过将查询的目标与几何对象进行比较来构建删减的键列表。几何查询处理组件110可以移除(例如,删减)与查询的目标不匹配的键。通过删减不匹配的键,几何查询处理组件110可以更快且准确地生成最终结果。

几何查询结果组件112可以检查存储的几何对象和查询的地理位置的距离。如果该距离在查询中指定的距离内,则几何查询结果组件112可以将该键保留在删减的键列表中。几何查询结果组件112可以重复该处理,直到检查了所有键。几何查询结果组件112可以从最后剩余的键列表中选择最靠近的几何对象。

系统100的各种组件(例如,包括几何散列组件104、几何索引组件106、几何查询处理组件110和几何查询结果组件112的处理组件)可以直接或经由一个或多个网络连接。这样的网络可以包括有线网络和无线网络,包括但不限于蜂窝网络、广域网(例如因特网)或局域网(lan),其非限制性示例包括蜂窝、wan、无线保真(wi-fi)、wi-max、wlan、无线电通信、微波通信、卫星通信、光通信、声波通信或任何其他合适的通信技术。此外,已经针对几个组件之间的交互描述了上述系统和/或设备。应当理解,这样的系统和组件可以包括本文中指定的那些组件或子组件、所指定的组件或子组件中的一些和/或附加组件。子组件也可以被实现为通信地耦合到其他组件的组件,而不是被包含在父组件中。此外,一个或多个组件和/或子组件可以被组合成提供聚合功能的单个组件。这些组件还可以与一个或多个其他组件交互,为了简洁起见,本文中没有具体描述一个或多个其他组件,但是一个或多个其他组件是本领域技术人员已知的。

此外,所执行的一些处理可以由专门的计算机来执行,用于在它们的特定环境中执行与各种类型的神经网络相关的所定义的任务。本发明的计算机处理系统、方法、装置和/或计算机程序产品可以被用来解决通过技术、计算机网络、因特网等的进步而出现的新问题。

本文中描述的设备的实施例可以采用人工智能(ai)来促进使本文中描述的一个或多个特征自动化。这些组件可以采用各种基于ai的方案来执行本文中公开的各种实施例/示例。为了提供或帮助本文中描述的大量确定(例如,确定、断定、推断、计算、预测、估计、导出、预报、检测、计算),本文中描述的组件可以检查被授权访问的数据的全部或子集,并且可以根据经由事件和/或数据捕获的一组观察,提供关于系统、环境等的状态的推理或确定系统、环境等的状态。例如,确定可以被用来识别特定的上下文或动作,或者可以生成状态的概率分布。确定可以是概率性的,即基于对数据和事件的考虑来计算感兴趣状态的概率分布。确定还可以指的是用于根据一组事件和/或数据组成更高级别事件的技术。

这样的确定可以导致根据一组观察到的事件和/或存储的事件数据来构建新的事件或动作,无论这些事件是否在时间上紧密相关,以及无论这些事件和数据是否来自一个或多个事件和数据源。本文中公开的组件可以采用各种分类(明确训练(例如,经由训练数据)以及隐含训练(例如,经由观察行为、偏好、历史信息、接收外部信息等))方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎等)以结合所要求保护的主题执行自动和/或确定的动作。因此,分类方案和/或系统可以用来自动学习和执行许多功能、动作和/或确定。

图2描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进生成几何对象的地理散列。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图200可以由下面描述的操作环境1200或100来实现。可以理解,流程图200的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212或系统100),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图2的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

操作202描绘了经由几何散列组件104接收要插入几何对象的请求(例如,由收集地理位置数据的实体所请求的)。操作204描绘了经由几何散列组件104生成几何对象的一个或多个地理散列,其中一个或多个地理散列包括作为键存储在键值数据库中的一个或多个编码比特(例如,将多维度几何对象转换成多个单维度键)。

图3描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进生成空间索引。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图300可以由下面描述的操作环境1200或100来实现。可以理解,流程图300的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图3的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

操作302描绘了经由几何索引组件106生成空间索引,其中空间索引是基于针对地理散列生成的编码比特的总数量(例如,添加构成多个单维度键的所有比特,并查找由空间索引指定的最佳拟合级别以插入几何对象)。操作304描绘了经由几何索引组件106,使用几何对象的维度信息(例如,3n-1,其中n是几何对象的维度数量)来确定要编码的地理散列的最大数量。

图4描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进接收查询。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图400可以由下面描述的操作环境1200或100来实现。可以理解,流程图400的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图4的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

操作402描绘了经由几何查询处理组件110接收指定相对于几何对象的地理位置的目标的查询(例如,查找k个最近邻)。操作404描绘了经由几何查询处理组件110生成查询的地理散列,其中地理散列是表示键值数据库中的键的一组比特(例如,获取地理位置并生成地理散列,并将它们用作键,以在键值数据库中查找相同类型的地理散列)。

图5描绘了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的图,该方法促进识别键值数据库中存储的几何对象。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图500可以由下面描述的操作环境1200或100来实现。可以理解,流程图500的操作可以以不同于所描述的顺序来实现。

在非限制性示例实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图5的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

操作502描绘了经由几何查询结果组件112,通过生成初始的键列表并且对键值数据库的所有级别进行同时搜索来识别几何对象,以允许快速检索几何对象,其中,初始的键列表包括存储在键值数据库中的与地理散列匹配的一个或多个键(例如,使用查询的地理散列/键来搜索nosql存储库的所有级别以查找几何对象)。操作504描绘了经由几何查询结果组件112生成删减的键列表,其中,删减的键列表包括与目标匹配的一组键。

图6示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进将几何对象插入nosql存储库中。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图600可以由下面描述的操作环境1200或100来实现。可以理解,流程图600的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图6的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

如图6中所示的方法的优点可以是可以将多维度几何对象作为单维度键插入nosql存储库中(例如,单维度的键值数据库),同时保持空间索引。另一个优点是使用最佳拟合级别,其中通过限制几何对象将被存储的级别,对于不同大小的几何对象,易于管理存储装置大小。

操作602描绘了经由几何散列组件104生成几何对象的地理散列,其中,地理散列包括作为键存储在键值数据库中的一个或多个编码比特(例如,将多维度几何对象转换成多个单维度键)。操作604描绘了经由几何索引组件106生成空间索引,其中空间索引是基于针对地理散列生成的编码比特的总数量(例如,添加构成多个单维度键的所有比特,并查找由空间索引指定的最佳拟合级别以插入几何对象)。操作606描绘了经由几何存储组件108使用空间索引将几何对象和地理散列插入键值数据库中,以允许更快地检索几何对象(例如,将几何对象和生成的地理散列作为键插入在nosql存储库中的最佳拟合级别处)。

图7示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进从nosql存储库中提取几何对象。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图700可以由下面描述的操作环境1200或100来实现。可以理解,流程图700的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图7的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

图7中所示的方法的一个优点可以是,同时搜索所有级别并生成初始的候选项列表将加速搜索,从而为企业提供实时数据,因此他们可以提高效率。通过获得满足请求者的目标的实时数据,他们将使用更少的资源(例如,外部硬件和软件通信资源)。

操作702描绘了经由几何查询处理组件110接收指定相对于几何对象的地理位置的目标的查询,并且生成查询的地理散列,其中,地理散列是表示键值数据库中的键的一组比特(例如,使用与用于插入几何对象的相同技术将接收到的查询的地理位置部分转换成一个或多个地理散列,这将允许高效搜索)。操作704描绘了经由几何查询结果组件112,通过生成初始的键列表并且对多级别键值数据库的所有级别进行同时搜索来识别几何对象,其中,初始的键列表包括存储在键值数据库中的与地理散列匹配的键(例如,使用查询的地理散列/键来搜索nosql存储库的所有级别以查找几何对象)。

图8示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的方法的流程图,该方法促进从nosql存储库中提取几何对象。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图800可以由下面描述的操作环境1200或100来实现。可以理解,流程图800的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图8的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

如图8中所示的方法的一个优点可以是,根据查询生成多个地理散列并对所有级别进行同时搜索将加速搜索,从而为企业提供实时数据,因此他们可以提高效率。通过获得满足请求者的目标的实时数据,他们将使用更少的资源(例如,外部硬件和软件通信资源)。

操作802描绘了经由几何查询处理组件110接收指定相对于几何对象的地理位置的目标的查询。操作804描绘了经由几何查询结果组件112生成查询的地理散列,其中,地理散列是表示键值数据库中的键的一组比特(例如,接收要查找k个最近邻的请求,以及获取地理位置并生成地理散列,以及将它们用作键以在键值数据库中查找相同类型的地理散列)。操作806经由几何查询结果组件112,通过生成初始的键列表并且对键值数据库的所有级别进行同时搜索来识别几何对象,以允许快速检索几何对象,其中,初始的键列表包括存储在键值数据库中的与地理散列匹配的一个或多个键(例如,使用查询的地理散列/键来搜索nosql存储库的所有级别以查找几何对象)。

图9示出了根据本文中描述的一个或多个实施例的示例性、非限制性计算机实现的产品的流程图,该产品促进使用查询从nosql存储库中提取几何对象。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在一些示例中,流程图900可以由下面描述的操作环境1200或100来实现。可以理解,流程图900的操作可以以不同于所描述的顺序来实现。

在非限制性示例性实施例中,提供了计算设备(或系统)(例如,计算机1212),该设备或系统包括一个或多个处理器和存储可执行指令的一个或多个存储器,当可执行指令被一个或多个处理器执行时,可执行指令可以促进执行本文中描述的操作,包括如图9的流程图中示出的非限制性方法。作为非限制性示例,一个或多个处理器可以通过引导或控制可操作以执行半导体制造的一个或多个设备来促进方法的执行。

如图9中所示的方法的优点可以是,同时搜索所有级别和使用前缀进行搜索以生成初始的候选项列表将加速搜索,从而为企业提供实时数据,因此他们可以提高效率。通过获得满足请求者的目标的实时数据,他们将使用更少的资源(例如,外部硬件和软件通信资源)。

操作902描绘了经由几何查询处理组件110接收指定相对于几何对象的地理位置的目标的查询。操作904描绘了经由几何查询结果组件112生成查询的地理散列,其中,地理散列是表示键值数据库中的键的一组比特。操作906经由几何查询结果组件112,通过生成初始的键列表并且对多级别键值数据库的所有级别进行同时搜索来识别几何对象,其中,初始的键列表包括存储在键值数据库中的键,这些键将地理散列的前缀与存储在键值数据库中的键的前缀相匹配(例如,使用查询的地理散列/键来搜索nosql存储库的所有级别以查找几何对象,并且使用前缀来减少不必要的搜索)。

图10示出了根据本文中描述的一个或多个实施例的流程图,该流程图标识了促进将几何对象插入到nosql存储库(例如键值数据库)中的非限制性方法的步骤。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在1002,用户提交一组几何对象,这一组几何对象要被索引和插入以供快速查找(例如,经由处理器102)。在1004,处理器从所有接收到的几何对象中选择要插入到键值数据库中的几何对象(例如,经由处理器102)。在1006,处理器通过基于由地理散列生成的比特的总数量选择最佳拟合级别(例如,基于分辨率为nosql存储库定义的级别,其中级别0表示非常大的几何图形,诸如大西洋或地球)来生成几何对象的地理散列(例如,经由几何散列组件104)。在1008,处理器可以基于选择的最佳拟合级别,将几何对象和地理散列插入键值数据库中(例如,经由几何存储组件108)。在1010,处理器进行检查以确定是否已经处理和插入了所有几何对象(例如,经由处理器102)。如果是,则在1012,nosql存储库已准备好供使用(例如,经由处理器102)。否则,在1004,处理器选择另一个几何对象进行处理。

图11示出了流程图,该流程图标识了用于基于查询提取几何对象的非限制性方法的步骤。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

在1102,用户提交查询(例如经由处理器102)。在1104,处理器生成查询的地理位置的地理散列(例如,经由几何查询处理组件110)。在1106,处理器经由几何查询处理组件110确定编码所需要的比特数量(例如,在知道地理位置的大小的情况下,搜索被限制到存储几何对象的特定级别)。在实施例中,并行地搜索所有级别。在另一个实施例中,使用与上面讨论的类似技术来生成空间索引,搜索与空间索引相关联的最佳拟合级别。使用并行搜索或有针对性的搜索的优点是可以快速获得结果。在1108,处理器使用所生成的地理散列的前缀来识别键值数据库中存储的所有地理散列,并且在1110,将地理散列添加到初始的候选项列表中(例如,经由几何查询组件112,在进行更深入的分析之前,首先识别与根据查询生成的地理散列匹配的所有地理散列)。在1112,处理器检查是否已经检查了所有地理散列(例如,经由几何查询组件112)。如果不是,则在1108,处理器识别要检查的附加地理散列。否则,一旦在1114对于每个候选项生成了初始列表,处理器就确定查询中的位置和与地理散列相关联的几何对象之间的距离(经由几何查询组件112)。在1116,处理器确定计算的距离是否小于或等于查询的地理位置(经由几何查询组件112)。如果是,则在1118,处理器将匹配视为可能的结果,并且添加到删减的列表(例如,删减的列表包括经由几何查询组件112匹配了几何对象检查的可能候选项的列表)。在1120,处理器检查是否已经检查了所有候选项(经由几何查询组件112)。如果是,则在1122,处理器进一步选择删减的列表中列出的最靠近的几何对象(经由几何查询组件112)。否则,在1114检查来自初始列表中的下一个候选项。

为了提供所公开的主题的各个方面的上下文,图12以及下面的讨论旨在提供对合适环境的一般描述,可以在合适环境中实现所公开的主题的各个方面。图12示出了其中可以促进本文中描述的一个或多个实施例的示例性、非限制性操作环境的框图。为了简洁起见,省略了本文中描述的其他实施例中采用的类似元件的重复描述。

用于实现本公开的各个方面的合适的操作环境1200也可以包括计算机1212。计算机1212还可以包括处理单元1214、系统存储器1216和系统总线1218。系统总线1218将包括但不限于系统存储器1216的系统组件耦合到处理单元1214。处理单元1214可以是各种可用处理器中的任何一种。双微处理器和其他多处理器体系结构也可以用作处理单元1214。系统总线1218可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用总线体系结构中的任何一种的本地总线,包括但不限于工业标准体系结构(isa)、微通道体系结构(msa)、扩展isa(eisa)、智能驱动电子设备(ide)、vesa本地总线(vlb)、外围组件互连(pci)、卡总线、通用串行总线(usb)、高级图形端口(agp)、火线(ieee1294)和小型计算机系统接口(scsi)。系统存储器1216还可以包括易失性存储器1220和非易失性存储器1222。包含诸如在启动期间在计算机1212内的元件之间传输信息的基本例程的基本输入/输出系统(bios)被存储在非易失性存储器1222中。作为说明而非限制,非易失性存储器1222可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程只rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如铁电ram(feram))。易失性存储器1220还可以包括充当外部高速缓冲存储器的随机存取存储器(ram)。作为说明而非限制,ram有许多种形式,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍数据速率sdram(ddrsdram)、增强型sdram(esdram)、同步链接dram(sldram)、直接rambusram(drram)、直接rambus动态ram(drdram)、以及rambus动态ram。

计算机1212还可以包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图8示出了磁盘存储装置1224。磁盘存储装置1224还可以包括但不限于诸如磁盘驱动器、软盘驱动器、磁带驱动器、jaz驱动器、zip驱动器、ls-100驱动器、闪存卡或记忆棒之类的设备。磁盘存储装置824还可以单独地包括存储介质或者与其他存储介质相结合,其他存储介质包括但不限于光盘驱动器,例如光盘rom(cd-rom)、可记录光盘驱动器(cd-r驱动器)、可重写cd驱动器(cd-rw驱动器)或者数字多功能光盘rom驱动器(dvd-rom)。为了促进将磁盘存储装置1224连接到系统总线1218,通常使用可移动或不可移动接口,例如接口1226。图8还描绘了在用户和合适的操作环境1201中的描述的基本计算机资源之间充当中介的软件。这样的软件还可以包括例如操作系统1228。可以存储在磁盘存储装置1224上的操作系统1228用于控制和分配计算机1212的资源。系统应用1230利用由操作系统1228通过例如存储在系统存储器1216或磁盘存储装置1224中的程序模块1232和程序数据1234进行的对资源的管理。应当理解,本公开可以用各种操作系统或操作系统的组合来实现。用户通过输入设备1236将命令或信息输入到计算机1212中。输入设备1236包括但不限于指点设备,例如鼠标、轨迹球、触笔、触摸板、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪、电视调谐卡、数码相机、数码摄像机、网络摄像头等。这些和其他输入设备经由接口端口1238通过系统总线1218连接到处理单元1214。接口端口1238包括例如串行端口、并行端口、游戏端口和通用串行总线(usb)。输出设备1240使用与输入设备1236相同类型的端口中的一些。因此,例如,可以使用usb端口向计算机1212提供输入,并从计算机1212向输出设备1240输出信息。提供输出适配器1242是为了说明除了其他输出设备1240之外,还有一些需要特殊适配器的输出设备1240,如监视器、扬声器和打印机。作为说明而非限制,输出适配器1242包括视频卡和声卡,视频卡和声卡提供输出设备1240和系统总线1218之间的连接方式。应当注意,其他设备和/或设备系统提供输入和输出能力两者,例如远程计算机1244。

计算机1212可以使用与一个或多个远程计算机(例如远程计算机1244)的逻辑连接在网络化环境中进行操作。远程计算机1244可以是计算机、服务器、路由器、网络pc、工作站、基于微处理器的电器、对等设备或其他公共网络节点等,并且通常还可以包括针对计算机1212描述的许多或所有元件。为了简洁起见,仅示出了与远程计算机1244在一起的存储器存储装置1246。远程计算机1244通过网络接口1248逻辑连接到计算机1212,然后经由通信连接1250进行物理连接。网络接口1248包括有线和/或无线通信网络,例如局域网(lan)、广域网(wan)、蜂窝网络等。lan技术包括光纤分布式数据接口(fddi)、铜分布式数据接口(cddi)、以太网、令牌环等。wan技术包括但不限于点对点链路、电路交换网络(如综合业务数字网络(isdn)及其变体)、分组交换网络和数字用户线路(dsl)。通信连接1250指的是用于将网络接口1248连接到系统总线1218的硬件/软件。虽然为了说明清楚起见,通信连接1250被示为在计算机1212内部,但是它也可以在计算机1212外部。仅出于示例性目的,用于连接到网络接口1248的硬件/软件还可以包括内部和外部技术,例如调制解调器(包括常规电话级调制解调器、电缆调制解调器和dsl调制解调器)、isdn适配器和以太网卡。

本发明的实施例可以是处于任何可能的集成技术细节级别的系统、方法、装置和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质(多个介质),其上具有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口都从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。用于执行本发明实施例的操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息个性化定制该电子电路来执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

虽然上面已经在运行在一台计算机和/或多台计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了主题,但是本领域技术人员将认识到,本公开也可以或可以与其他程序模块结合来实现。通常,程序模块包括执行任务和/或实现抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解,本发明的计算机实现的方法可以用其他计算机系统配置来实施,包括单处理器或多处理器计算机系统、微型计算设备、大型计算机以及计算机、手持计算设备(例如,个人数字助理、电话)、基于微处理器的或可编程的消费者或工业电子设备等。图示的各方面也可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备来执行。然而,本公开的一些(如果不是全部)方面可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储装置中。

如在本申请中使用的,术语“组件”、“系统”、“平台”、“接口”等可以指和/或可以包括计算机相关实体或与具有一个或多个特定功能的可操作机器相关的实体。本文中公开的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。举例来说,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程中,并且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。在另一个示例中,各个组件都可以从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以经由本地和/或远程进程进行通信,例如根据具有一个或多个数据包(例如,来自经由信号与本地系统、分布式系统中的另一个组件进行交互、和/或通过诸如因特网之类的网络与其他系统进行交互的一个组件的数据)的信号。作为另一个示例,组件可以是具有特定功能的装置,该特定功能由电路或电子电路操作的机械部件提供,该机械部件由处理器执行的软件或固件应用来操作。在这样的情况下,处理器可以在设备的内部或外部,并且可以执行软件或固件应用的至少一部分。作为又一个示例,组件可以是通过电子组件提供特定功能而没有机械部件的装置,其中电子组件可以包括处理器或其他装置来执行至少部分提供电子组件的功能的软件或固件。在一个方面,组件可以经由虚拟机来仿真电子组件,例如在服务器计算系统内。

此外,术语“或”意在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明,或者根据上下文清楚地看出,“x采用a或b”意在表示任何自然的包含置换。也就是说,如果x采用a;x采用b;或x采用a和b两者,则在上述任何一种情况下都满足“x采用a或b”。此外,在本发明说明书和附图中使用的量词“一”和“一个”通常应该被解释为意指“一个或多个”,除非另有说明或者从上下文中清楚地指向单数形式。如本文中使用的,术语“示例”和/或“示例性”用来表示用作示例、实例或说明。为避免疑问,本文中公开的主题不受这样的示例限制。此外,本文中描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为优先于或优于其他方面或设计,也不意味着排除本领域普通技术人员已知的等同示例性结构和技术。

如在本发明说明书中所使用的,术语“处理器”可以指基本上任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;并行平台;以及具有分布式共享存储器的并行平台。此外,处理器可以指集成电路、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑控制器(plc)、复杂可编程逻辑器件(cpld)、分立门或晶体管逻辑、分立硬件组件或被设计用来执行本文中描述的功能的前述各项的任意组合。此外,处理器可以利用纳米级体系结构,例如但不限于基于分子和量子点的晶体管、开关和门,以便优化空间使用或增强用户设备的性能。处理器也可以被实现为计算处理单元的组合。在本公开中,诸如“存储库”、“存储装置”、“数据存储库”、“数据存储装置”、“数据库”和与组件的操作和功能相关的基本上任何其他信息存储组件之类的术语被用来指代“存储器组件”、包含在“存储器”中的实体或包括存储器的组件。应当理解,本文中描述的存储器和/或存储器组件可以是易失性存储器或非易失性存储器,或者可以包括易失性和非易失性存储器两者。作为说明而非限制,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除rom(eeprom)、闪存或非易失性随机存取存储器(ram)(例如铁电ram(feram))。易失性存储器可以包括例如可以充当外部高速缓冲存储器的ram。作为说明而非限制,ram有许多种形式,例如同步ram(sram)、动态ram(dram)、同步dram(sdram)、双倍数据速率sdram(ddrsdram)、增强型sdram(esdram)、同步链接dram(sldram)、直接rambusram(drram)、直接rambus动态ram(drdram)、以及rambus动态ram(rdram)。此外,本文中公开的系统或计算机实现的方法的存储器组件旨在包括但不限于包括这些和任何其他合适类型的存储器。

上面描述的仅仅包括系统、计算机程序产品和计算机实现的方法的示例。当然,为了描述本公开的目的,不可能描述组件、产品和/或计算机实现的方法的每一种可能的组合,但是本领域普通技术人员可以认识到,本公开的许多其他组合和置换也是可能的。此外,就详细描述、权利要求、附录和附图中使用的术语“包括”、“具有”、“拥有”等而言,这样的术语旨在以类似于术语“包含”的方式是包含式的,如“包含”在权利要求中被用作过渡词时所解释的那样。为了说明的目的,已经给出了各种实施例的描述,但是其并不是旨在穷举或者限制于所公开的实施例。在不偏离所描述的实施例的范围和精神的情况下,许多修改和变型对本领域普通技术人员来说是明显的。选择本文中使用的术语是为了最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或使本领域普通技术人员能够理解本文中公开的实施例。

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