用于生成数字地图的技术背景技术
数字地图正变成用于传递表示人员、地点、对象和事件的位置的地图
信息的通用平台。随着更多的地图信息被呈现在数字地图上,确保以有意
义的方式来将地图信息呈现给用户变得必要。此外,数字地图正在变得更
加交互性,以允许用户对数字地图进行操纵以查看感兴趣的特定地图项。
此外,巨量的地图信息消耗显著的计算和通信资源。其结果是,需要增强
的技术来对数字地图进行管理和操纵,以有效地传递地图信息。
发明内容
下面给出简要的概述,以便于提供对本文描述的一些新颖实施例的基
本理解。本概述不是宽泛的概括,并且也不是要标识关键/重要的元件或者
描述其范围。其唯一目的是以简要的形式来给出一些概念,作为稍后给出
的更详细的描述的前序。
实施例总体上针对用于管理数字地图的增强的技术。一些实施例特别
针对以高效和有效的方式来管理数字地图的地图信息,以有利于用户的消
费的增强的技术。
在一个实施例中,地图应用可以利用地图调度器部件来将工作单元分
配给多个处理器和/或处理器核心,以高效地渲染数字地图。例如,数字地
图可以在不同的时间,在同一个位置中呈现变化类型的信息。在这样的情
况下,需要针对共享同一时间和位置的所有数据点,来确定一数据点的相
对位置。可以将工作调度到处理器集合中的给定处理器,以降低运算该相
对位置所需要的时间量。
为了实现上文及相关的目的,本文结合下面的描述以及附图描述了某
些示例性方面。这些方面指示可以实现本文公开的原理的各种方式,并且
所有这些方面及其等价物都是要落入要求保护的主题的范围内。当结合附
图考虑时,根据下文的具体实施方式,其他优点和新颖特征将变得显而易
见。
附图说明
图1示出了用于管理数字地图的装置的实施例。
图2A-C示出了区域地图的帧的实施例。
图3示出了装置的逻辑的实施例。
图4示出了第二区域地图的实施例。
图5示出了第三区域地图的实施例。
图6示出了第四区域地图的实施例。
图7示出了用于装置的逻辑流的实施例。
图8示出了用于装置的第二逻辑流的实施例。
图9示出了用于装置的第三逻辑流的实施例。
图10示出了用于装置的第四逻辑流的实施例。
图11示出了用于装置的集中式系统的实施例。
图12示出了用于装置的分布式系统的实施例。
图13示出了计算架构的实施例。
图14示出了通信架构的实施例。
具体实施方式
实施例总体上针对用于管理数字地图的增强技术。一些实施例特别针
对用于以高效和有效的方式来管理数字地图的地图信息以有利于用户消费
的增强技术。
实施例可以对工作进行组织、管理和调度,来以非常高效和有效的方
式生成具有视觉表示的数字地图。视觉表示的一个示例可以包括覆盖在数
字地图的特定位置上的图表(例如,条形图、饼状图、分簇的柱形图等)。
图表可以提供针对与给定位置相关联的多个类别的图表数据,例如,美国
的一个州的政党关系和选民数量。如针对给定实现所期望的,本文描述的
技术可以应用于数字地图的任何视觉表示和类别数据。实施例并不限于该
上下文。
更特别地,实施例试图改进对共享视觉表示的空间中的同一位置的时
限性(time-bound)的数据点的渲染。为了实现该目标,渲染系统可以被布
置为针对任何给定的时间点,确定哪些数据点是可见的。在同一时间点上,
多个点在同一位置处可见的那些情况中,渲染系统在共享同一时间和位置
的所有数据点中动态地(例如,针对每个渲染帧)确定一数据点的相对位
置。以这种方式,渲染系统可以快速地处理视觉表示随时间的改变,例如,
当与视觉表示相关联的类别值变化时。此外,实施例试图以允许帧的渲染
由多个处理器电路并行地执行、由单个专用处理器(例如,图形处理单元)
顺序地执行或者由二者的某种组合执行的方式来组织工作任务。其结果是,
实施例可以改进操作者、设备或网络的承受能力、可伸缩性、模块化、可
扩展性或互操作性。其他优点和使用场景同样适用。
在一个实施例中,方法可以包括:接收具有针对数字地图的地理区域
定义的多个类别的类别信息,多个类别中的每个类别具有一个或多个类别
值;对任务进行调度以利用一个或多个处理器电路来生成注释的数字地图,
该注释的数字地图包括数字地图的地理区域的多个类别和相关联的类别值
的视觉表示,该视觉表示具有不同的视觉部分,每个视觉部分表示由随时
间变化的相关联的类别值定义的类别,每个视觉部分包括数据点的集合;
以及根据所调度的任务,通过电路来生成具有视觉表示的注释的数字地图。
描述并且要求保护其他实施例。
一般参照本文所使用的符号和术语,下面的详细描述以在计算机或计
算机的网络上执行的程序过程的形式给出。这些过程性的描述和表示由本
领域技术人员使用,以将他们工作的实质最有效地传递给本领域的其他技
术人员。
这里,过程通常被视为产生期望的结果的自相容的操作序列。这些操
作是需要对物理量进行物理操纵的那些操作。通常,虽然不是必须的,这
些量可以采用能够被存储、传送、组合、比较以及其他操纵的电、磁或光
信号的形式。主要出于通用的原因,将这些信号称为比特、值、元素、符
号、字符、项、数量等有时被证明是方便的。然而,应当注意到,所有这
些和类似的术语是要与合适的物理量相关联,并且仅是应用于这些量的方
便的标签。
此外,执行的操纵通常被称为例如相加或者比较等术语,这些术语通
常与由人类操作者所执行的精神上的操作相关联。在本文描述的形成一个
或多个实施例的部分的任何操作中,大多数情况下,这样的人类操作者的
能力都不是必须的,或者不是期望的。确切地说,这些操作是机器操作。
用于执行各种实施例的操作的有用的机器包括通用数字计算机或者类似设
备。
各种实施例还涉及用于执行这些操作的装置或系统。该装置可以被专
门构造以用于要求的目的,或者其可以包括由存储在计算机中的计算机程
序来选择性地驱动或者重新配置的通用计算机。本文所给出的过程并不固
有地与特定的计算机或其他装置有关。可以利用根据本文的教示写出的程
序来使用各种通用机器,或者可以证明构造更专用的装置来执行所需的方
法步骤是方便的。从给出的描述中,各种这样的机器的所需结构将显而易
见。
现在参照附图,其中,在整个附图中,相同的附图标记用于指代相同
的元件。在下面的描述中,出于解释的目的,阐述了大量的特定细节,以
便于提供对本文的充分理解。然而,可能显而易见的是,这些新颖的实施
例可以在没有这些特定细节的情况下实施。在其他实例中,以框图的形式
示出了公知的结构和设备,以便有利于对这些结构和设备的描述。其意图
是要覆盖与要求保护的主题一致的所有修改、等价物、和可替换方案。
图1示出了装置100的框图。在一个实施例中,装置100可以包括计
算机实现的装置100,其具有包括一个或多个部件122-a的软件地图应用
120。尽管图1中示出的装置100具有按照某种拓扑的有限数量的元件,但
应当认识到,如针对给定实现所期望的,装置100可以包括按照可替换的
拓扑的更多或更少的元件。
值得注意的是,本文使用的“a”和“b”和“c”以及类似指示符是要
作为表示任何正整数的变量。由此,例如,如果实现设置了a=5的值,则
部件122-a的完整集合可以包括部件122-1、122-2、122-3、122-4和122-5。
实施例并不限于该上下文。
装置100可以包括地图应用120。地图应用120一般可以被布置为管理
数字地图124。地图是区域的视觉表示。数字地图124可以包括数字或电子
形式的地图。数字地图124可以用于描绘地理。尽管一些实施例在对物理
地理位置进行视觉化的方面来讨论地图,但数字地图124还可以用于表示
任何空间,真实的或想象的,例如,用于表示脑图、DNA图和宇宙图。实
施例不限于该上下文。
在一个实施例中,地图信息112可以由实现装置100的同一个电子设
备来提供。在一个实施例中,地图信息112可以由与实现装置100的电子
设备(例如,客户端)不同的电子设备(例如,服务器)提供。
地图应用120可以包括能够创建、修改、管理或者另外使用数字地图
124的地图信息的任何软件应用。在一个实施例中,地图应用120可以包括
或者被实现为独立的生产力应用、或者生产力应用的插件。生产力应用可
以包括被设计为执行知识工作者的功能的特定集合的软件应用程序。生产
力应用通常操作用于创建、修改、发送、接收或另外管理一个或多个文档
的内容。生产力应用的示例可以包括但不限于被设计用于特定操作系统的
互相关联的客户端应用、服务器应用和/或网络服务的生产力套件,例如,
华盛顿雷蒙德微软公司开发的用于MICROSOFT的
OFFICE生产力套件。生产力应用的示例可以包括但不限于:
MICROSOFTWORD、MICROSOFTMICROSOFT
MICROSOFTMICROSOFT
MICROSOFTMICROSOFTMICROSOFT
PROJECT、MICROSOFTPUBLISHER、MICROSOFT
WORKSPACE、MICROSOFTMICROSOFT
OFFICEINTERCONNECT、MICROSOFTOFFICEPICTUREMANAGER、
MICROSOFTSHAREPOINTDESIGNER、以及MICROSOFTLYNC。服务
器应用的示例可以包括但不限于:MICROSOFTSHAREPOINTSERVER、
MICROSOFTLYNCSERVER、MICROSOFTOFFICEFORMSSEVER、
MICROSOFTOFFICESERVER、MICROSOFTOFFICE
PROJECTSERVER、MICROSOFTOFFICEPROJECTPORTFOLIO
SERVER、以及MICROSOFTOFFICESERVER。
此外,还应当认识到,除了与所描述的实施例一致的生产力应用之外,实
施例还可以实现其他类型的应用。实施例不限于这些示例。
地图应用120能够与网络设备(例如,提供诸如网络服务等的网络服
务的服务器)进行通信。网络服务的示例可以包括但不限于:MICROSOFT
WINDOWSMICROSOFTOFFICE网络APPLICATIONS、
MICROSOFTOFFICELIVE、MICROSOFTLIVEMEETING、MICROSOFT
OFFICEPRODUCT网络SITE、MICROSOFTUPDATESERVER、以及
MICROSOFTOFFICE365。
再次参照图1,地图应用120可以与其他部件、应用和/或设备交互操
作,以接收和/或取回控制指令100、数字地图124的地图信息112、以及数
字地图124的类别信息130的集合作为输入。地图应用120可以根据控制
指令110来对给定的数字地图124的地图信息112和类别信息130进行处
理,并且输出注释的数字地图140。注释的数字地图140可以包括具有地理
区域的数字地图124,所述地理区域注释有用于表示由类别信息130定义的
多个类别的一个或多个颜色、颜色变量、颜色阴影和/或混合颜色。
注释的数字地图140还可以包括具有地理区域的数字地图124,所述地
理区域具有所选择的位置处的视觉表示。视觉表示可以包括适合于以视觉
的方式表示类别信息的任何图形化用户界面(GUI)元件。视觉表示的示例
可以包括但不限于图表覆盖,其中,视觉图表覆盖被注释有用于表示由类
别信息130定义的多个类别的一个或多个颜色、颜色变量、颜色阴影和/或
混合颜色。视觉表示的其他示例可以包括但不限于对象、图标、图像、图
形、动画、照片、图片、表、数据结构以及能够传递类别信息的任何其他
GUI元件。视觉表示可以具有任何水平的不透明度或透明度,以允许查看
数字地图上的底层位置,如针对给定实现所期望的。实施例不限于该上下
文。
控制指令110可以表示用于对各个部件122-1、122-2和122-2进行控
制的控制字或命令。控制指令110可以从诸如触摸屏、语音命令或定点设
备等的输入设备接收。输入设备可以由用户手动地控制或者从另一个应用、
部件和/或设备自动地控制。控制指令110可以用于传递控制字或命令,以
对地图应用120进行控制,例如,选择配置参数、操作参数、性能参数、
格式化参数、安全参数、特征、颜色、颜色梯度(颜色斜面)、用户简档、
以及与地图应用120相关联的其他可配置信息。实施例不限于该上下文。
地图信息112可以表示与数字地图124相关联的任何数字信息。地图
信息112的示例可以包括但不限于地理坐标、边界、兴趣点、元数据、地
图对象、图标等。在一个实施例中,数字地图124的地图信息112可以是
地理信息系统(GIS)的一部分,或者源自于该GIS。GIS是制图、统计分
析和计算机科学技术的融合。GIS是被设计为捕获、存储、操纵、分析、管
理、和呈现所有类型的地理数据的系统。GIS可以将数字地图124的地图信
息112存储、生成和/或供应到客户端系统,例如地图应用120。GIS可以将
地图信息112存储、生成和/或供应为连续流、离散部分(例如,地图块)、
或者某种其他期望的形式。也可以使用其他地理信息系统和/或数据。实施
例不限于该上下文。
类别信息130可以表示可以与数字地图124的定义的地理区域相关联
的任何定义的类别和/或类别值。类别信息130的示例可以包括但不限于商
业信息、实体信息、企业信息、销售信息、市场信息、政党关系、投票信
息、人口统计信息、数字信息、时间信息等,仅仅举出几个示例。实施例
不限于该上下文。
地图应用120可以包括地图管理器部件122-1。地图管理器部件122-1
可以管理数字地图124。这可以包括例如下面的操作:从GIS取回数字地图
124的地图信息112、从GIS更新数字地图124的地图信息112、针对用户
界面或网络浏览器来渲染数字地图124、在电子显示器上呈现数字地图124、
存储数字地图124、分配数字地图124的任务和工作信息140、生成数字地
图的元数据、以及其他地图管理操作。
地图应用120可以包括地图调度器部件122-2。地图调度器部件122-2
提供在数字地图124的球面视图上呈现大量的时限分类数据点的能力。地
图调度器部件122-2可以将工作信息140(例如,工作单元)分配给多个处
理器和/或处理器核心,以有效地渲染数字地图124。例如,数字地图124
可以在不同的时间,在同一个位置中呈现变化类型的信息。在该情况下,
需要针对共享该同一时间和位置的所有数据点,确定一数据点的相对位置。
可以将工作调度到处理器集合中的给定处理器,以减少运算该相对位置所
需要的时间量。
地图应用120可以包括地图生成器部件122-3。地图生成器部件122-3
一般可以被布置为生成、注释、修改、存储或另外管理数字地图124。地图
生成器部件122-3可以从服务器(例如,GIS服务器)接收地图信息,或者
从本地数据库中取回存储的地图信息112。地图生成器部件122-3可以利用
各种类型的地图信息112来生成和/或注释数字地图124。地图生成器部件
122-3可以在图形化用户界面(GUI)或者网络浏览器中渲染数字地图124,
以用于在电子显示器上呈现。
再次参照针对数字地图124的工作调度操作,地图调度器部件122-2
提供在数字地图124的球面视图上呈现大量的时限分类的数据点的能力。
地图调度器部件122-2可以将工作单元分配给多个处理器电路150-b(和/
或处理器核心和/或处理器线程),以有效地渲染数字地图124。处理器电路
150-b可以是执行地图应用120和地图调度器部件122-2的同一个处理器电
路或是与其不同的处理器电路。实施例不限于该上下文。
处理器电路150-b可以被实现为电子设备的一部分,如参照图11所进
一步详细描述的。每个处理器电路150一般可以被布置为执行针对地图应
用120的逻辑。处理器电路150的示例可以包括广泛的各种商业可用的处
理器中的任一个。处理器电路150可以包括通用处理器电路或专用处理器
电路。此外,这些处理器电路150中的一个或多个可以包括多个处理器、
多线程处理器、多核心处理器(无论所述多个核共存于同一管芯上还是不
同管芯上)、和/或多个物理单独的处理器以某种方式链接的某种其他变型的
多处理器架构。在一个实施例中,处理器电路150可以包括不同类型的处
理器电路,例如,应用处理器、基带处理器、专用集成电路、控制器、微
控制器等。在一个实施例中,处理器电路150可以包括被设计为补充主处
理器(例如,中央处理单元)的一个或多个协处理器,例如,浮点单元(FPU)、
图形处理单元(GPU)、信号处理单元、字符串处理单元、加密处理单元、
输入/输出(I/O)接口、存储器控制器等。实施例并不限于该上下文。
地图调度器部件122-2可以将工作单元分配给多个处理器150(和/或处
理器核心和/或处理器线程),以有效地渲染数字地图124。例如,数字地图
124可以在不同的时间,在同一个位置中呈现变化类型的信息。在该情况下,
需要针对共享该相同时间和位置的所有数据点,确定一数据点的相对位置。
地图调度器部件122-2可以对工作单元进行调度,以用于由处理器电路102
的集合中的给定处理器电路102来进行处理,以减少运算该相对位置所需
要的时间量。
地图调度器部件122-2可以使用诸如图形处理单元(GPU)等的一个或
多个专用处理器来渲染数以百万计的时限分簇的图形元素。为了渲染共享
空间中同一位置的多个时限数据点,渲染系统需要针对任何给定的时间点,
确定哪些数据点是可见的。当在同一时间点,多个点在同一位置处可见时,
渲染系统还需要动态地确定(例如,对于每个被渲染的帧)共享该同一时
间和位置的所有数据点中的数据点的相对位置。
例如,假定地图调度器部件122-2被给予如表1中所示出的数据集,其
中这些数据点共享同一位置:
表1
值
类别
时间戳
3
黄色
1
4
绿色
1
7
黄色
2
2
绿色
3
1
红色
3
与表1的数据集相关联的各种帧需要针对不同的时间戳来进行渲染,如图2
中所示。
图2A-C示出了与表3相关联的帧200的集合。帧200可以包括用于以
饼形图的形式呈现数据的三个(3)示例性帧202、204和206。作为示例,
帧200使用饼形图,但本文所描述的技术可以被实现用于任何类型的视觉
化图表,例如,堆叠柱、分簇柱、基于区域的多边形数据、或者其他图表。
实施例并不限于该上下文。
图2A示出了在时间戳1处被渲染的第一帧202。帧202可以包括数字
地图124的视觉表示210。视觉表示210可以包括一个或多个视觉部分
212-c。如图2中所示,例如,视觉表示210可以包括视觉部分212-1、212-2
和212-3。视觉部分212-1可以被分配颜色黄色(例如,黄色类别),视觉
部分212-2可以被分配颜色绿色(例如,绿色类别),视觉部分212-3可以
被分配颜色红色(例如,红色类别),如图2中所指示的。黄色类别、绿色
类别和红色类别的大小和相对位置可以由表1中时间戳1处指示的类别值
来进行设置。
图2B示出了在时间戳2处被渲染的第二帧204。帧204可以包括如所
指示的黄色类别和绿色类别。黄色类别和绿色类别的比例由被时间戳2处
的值修改过的表1中时间戳1处指示的值来进行设置。如在时间戳2处的
帧204中所指示的,例如,来自绿色类别的值在时间戳1处仍然是可见的,
这是因为这里使用的视觉类型需要值保持为可见的,直到在后面的时间戳
中由更新的值替换为止。
图2C示出了在时间戳3处渲染的第三帧206。帧206可以包括如所指
示的黄色类别、绿色类别和红色类别。黄色类别、绿色类别和红色类别的
比例由被时间戳3处的值修改过的表1中的在时间戳1、2处指示的值来进
行设置。如在时间戳3处的帧206中所指示的,例如,来自时间戳1处的
绿色类别的值仍然是可见的,这是因为这里使用的视觉类型需要值保持为
可见的,直到在后面的时间戳由更新的值替换为止。
在一些情况下,帧渲染可以完全地由CPU代码执行。然而,这种类型
的实现是不可缩放的,因为CPU存储器与GPU存储器之间的数据传送速
度显著地限制了每帧可以被处理的数据量。为了允许渲染系统处理和显示
数以百万的动态数据点,地图调度器部件122-2仅利用GPU来处理渲染系
统的所有数据。
图3示出了逻辑300。逻辑300可以由地图调度器部件122-2和/或用于
对用于电子显示器的图形进行渲染的渲染系统来实现。渲染系统的示例可
以包括但不限于视频控制器。在一个实施例中,例如,渲染系统可以包括
实现为GPU的处理器电路150。GPU可以用于根据逻辑300来渲染时限分
簇的图形元件。
在一个实施例中,渲染系统可以实现地图调度器部件122-2。可替换地,
渲染系统可以从地图调度器部件122-2接收控制指令,以根据逻辑300来渲
染时限分簇的图形元件。实施例不限于给定的实现。
如图3中所示,逻辑300可以包括收集阶段302、累加阶段304、选择
阶段306、以及数据点生成阶段308。收集缓冲器312、累加缓冲器314和
选择缓冲器316可以分别用于存储三个阶段302、304和306中的每一个阶
段的数据。缓冲器312、314和/或316可以被实现为任何类型的存储器单元,
例如参照图11所描述的那些。尽管示出了用于每个阶段的三个单独的缓冲
器,但应当认识到,针对给定的实现,可以使用更多或更少的缓冲器。实
施例不限于该上下文。
在收集阶段302,渲染系统遍历所有数据点,通过某种标准对它们进行
过滤,并将它们输出到存储在结构化的收集缓冲器312中的收集数据结构
中。过滤标准的示例可以包括但不限于数据点在当前帧期间是否是可见的。
收集数据结构可以包括针对位置和选择的类别0-M的多个列,以及从0-N
的多个行。这些收集值可以用于确定给定位置处的视觉表示内的每个类别
的类别值。
在如下所示的表2中,可以示出用于收集数据结构的结构的示例:
表2
类别
|
位置
0
1
2
3
(…)
M
0
1
2
3
4
(…)
N
GPU硬件深度缓冲器可以用于确保当多个数据点满足过滤标准时(例如,
一个以上的数据点在给定的位置中同一时间可见时),只选择最高值。
在累加阶段304,渲染系统遍历由前面的收集阶段302生成的收集数据
结构中的所有单元,并对它们的值进行累加。其输出是存储在累加缓冲器
314中的累加数据结构。累加数据结构在结构上类似于收集数据结构(如表
2所示出的)。然而,每个单元的值包含同一行上的左边所有值的和。例如,
假定收集数据结构具有下面表3中示出的包含类别值的集合[3,2,5,7,9]的行
0:
表3
类别
|
位置
0
1
2
3
4
0
3
2
5
7
9
在该情况下,累加数据结构将包含如下面表4中所示的累加值的集合
[3,5,10,17,26]:
表4
位置
行0
3
5
10
17
26
如表4中所指示的,第一单元可以包含值3,其与表3的第一单元相同。第
二单元可以包含值5,其是表3的第一单元和第二单元的值3和2的和(例
如,3+2=5)。第三单元可以包含值10,其是表3的第一单元、第二单元和
第三单元的和(例如,3+2+5=10)。该过程继续通过收集数据结构的整个行
0,以生成收集数据结构的行0的累加值,用于存储在累加数据结构中。这
些累加值可以用于确定在给定位置处视觉表示内每个类别的相对位置。
为了使用GPU来并行地执行该累加,渲染系统执行log2(类别的数量)
遍,其中每遍将一个单元与左边2pass个单元距离远的每个邻居相加。例如,
假定收集数据结构具有行0,行0具有表5所示的类别值的集合
[3,5,2,0,4,0,7,3],如下所示:
表5
类别
|
位置
0
1
2
3
4
5
6
7
0
3
5
2
0
4
0
7
3
渲染系统遍历表5中示出的由先前的收集阶段302生成的收集数据结构的
行0中的所有单元,并且在累加阶段304期间,在3遍中对它们的值进行
累加:[3,8,7,2,4,4,7,10]、[3,8,10,10,11,6,11,14]、[3,8,10,10,14,14,21,24]。
第一遍的结果被示出在第一遍累加数据结构中,如下表6所示:
表6
位置
0
3
8
7
2
4
4
7
10
如表6中所指示的,在第一遍期间,第一单元可以包含值3,其与表5中的
第一单元相同。第二单元可以包含值8,其是表6的第一单元和第二单元的
值3和5的和(例如,3+5=8)。第三单元可以包含值7,其是表6的第二单
元和第三单元的和(例如,5+2=7)。第四单元可以包含值2,其是表6的第
三单元和第四单元的和(例如,2+0=2)。该过程继续通过收集数据结构的
整个行0,以生成收集数据结构的行0的第一遍累加值。第一遍累加值可以
存储在第一遍累加数据结构中。
第二遍的结果在第二遍累加数据结构中示出,如下面表7中所示:
表7
位置
0
3
8
10
10
11
6
11
14
如先前所描述的,每遍将一个单元与左边2pass个单元距离远的每个邻居相
加。如表7中所指示的,在第二遍期间,第一单元可以包含值3,其与表6
中的第一单元相同。第二单元可以包含值8,其与表6的第二单元相同。第
三单元可以包含值10,其是表6的第一单元和第三单元的值3和7的和(例
如,3+7=10)。第四单元可以包含值10,其是表6的第二单元和第四单元的
和(例如,8+2=10)。第五单元可以包含值11,其是表6的第三单元和第五
单元的和(例如,7+4=11)。该过程继续通过第一遍累加数据结构的整个行
0,以生成收集数据结构的行0的第二遍累加值。第二遍累加值可以存储在
第二遍累加数据结构中。
第三遍和最后一遍的结果在第三遍累加数据结构中示出,如下面表8
中所示:
表8
位置
0
3
8
10
10
14
14
21
24
如先前所描述的,每遍将一个单元与左边2pass个单元距离远的每个邻居相
加。如表8中所指示的,在第三遍期间,第一单元可以包含值3,其与表7
中的第一单元相同。第二单元可以包含值8,其与表7的第二单元相同。第
三单元可以包含值10,其与表7的第三单元相同。第四单元可以包含值10,
其与表7的第四单元相同。第五单元可以包含值14,其是表7的第一单元
和第五单元的值3和11的和(例如,3+11=14)。第六单元可以包含值14,
其是表7的第二单元和第六单元的和(例如,8+6=14)。第七单元可以包含
值21,其是表7的第三单元和第七单元的和(例如,10+11=21)。最后,第
八单元可以包含值24,其是表7的第四单元和第八单元的和(例如,
10+14=24)。第三遍累加值可以存储在累加数据结构中,作为表5中所示出
的收集数据结构的行0的最终累加值。
在选择阶段306,渲染系统遍历在收集阶段302期间生成的收集数据结
构的所有单元,并且每个单元选择满足某个标准的一个值。例如,可以选
择最大值,以使得只显示给定位置处具有最高值的类别。例如,利用表3
中示出的收集数据结构,位置0的最高类别值是类别4的类别值9。该数据
被输出作为存储在选择缓冲器316中的选择数据结构。选择数据结构可以
至少具有位置、值和选择的类别的三列,以及行0-N。选择数据结构的示例
可以在表9中示出,如下所示:
表9
位置
值
选择的类别
0
1
2
3
4
(…)
N
在数据点生成阶段308,渲染系统遍历分别存储在收集缓冲器312、累
加缓冲器314和选择缓冲器306中的收集数据结构、累加数据结构和选择
数据结构中的数据,并且发布具有正确值和位置的数据点。数据点生成阶
段308将数据输出到GPU缓冲器,该数据稍后由将数据显示在屏幕上的实
际的渲染算法来进行消费,由此允许整个数据处理和视觉化都在GPU中进
行。
图4示出了区域地图400。区域地图400可以示出具有堆叠柱图的数字
地图124的部分,所述堆叠柱图利用逻辑300被实现用于数字地图124上
的特定地理位置。作为示例,区域地图400可以使用堆叠柱图,但本文所
描述的技术可以被实现用于任何类型的视觉图表,例如,饼形图、簇状柱
形图、基于区域的多边形数据或者其他图表。实施例不限于该上下文。
如图4中所示,区域地图400示出了在数字地图124上的给定位置404
处的堆叠柱图402。堆叠柱图402可以具有不同的柱部406-d,每个柱部表
示与给定位置404相关联的不同类别。堆叠柱图402可以使用颜色来对每
个柱部406在视觉上进行区分,例如,分别针对柱部406-1、406-2和406-3,
使用颜色蓝色、黄色和紫色,柱部406-1、406-2和406-3中的每个表示与
位置404相关联的不同类别。
当对堆叠柱图402进行渲染时,存储在收集缓冲器312中的收集数据
结构中的类别值用于确定堆叠柱图402中的柱部406中的每个的类别值。
存储在累加缓冲器314中的累加数据结构中的累加值用于确定堆叠栏图402
中的柱部406的相对位置。例如,假定柱部406-1、406-2和406-3分别被
分配了值2、5和4。可以使用前面两个单元的累加值(在该示例中,其可
以是9)来确定柱部406-1的位置。可以使用前面单元的值(在该示例中,
其可以是4)来确定柱部406-2的位置。可以使用前面单元的值(其被设置
为0,因为不存在前面的单元)来确定柱部406-3的位置。
图5示出了区域地图500。区域地图500可以示出具有饼形图的数字地
图124的部分,所述饼形图利用逻辑300被实现用于数字地图124上的特
定地理位置。作为示例,区域地图500可以使用饼形图,但本文所描述的
技术可以被实现用于任何类型的视觉图表,视觉图表例如是堆叠柱图、簇
状柱形图、基于区域的多边形数据或者其他图表。实施例不限于该上下文。
如图5中所示,区域地图500示出了数字地图124上的给定位置504
处的饼形图502。饼形图502可以具有不同的饼形图部分506-e,每个饼形
图部分506表示与给定位置504相关联的不同类别。饼形图502可以使用
颜色来对每个饼形图部分406在视觉上进行区分,例如,,分别针对饼形图
部分506-1、506-2和506-3使用颜色蓝色、黄色和紫色,饼形图部分506-1、
506-2和506-3中的每个表示与位置504相关联的不同类别。
当发布饼形图实例时,收集缓冲器312和最大的累加缓冲器值确定饼
形图502的每个饼形图部分506的相对大小。累加缓冲器值确定饼形图502
的每个饼形图部分506的相对位置。最大的累加缓冲器值确定整个饼形图
502的大小。例如,假定饼形图部分506-1、506-2和506-3分别被分配值2、
4和5。可以使用前面两个单元的累加值(在该示例中,其可以是9)来确
定饼形图部分506-1的位置。使用前面单元的值(其被设置为0,这是由于
不存在前面的单元)来确定饼形图部分506-2的位置。使用前面单元的值(在
该示例中,其可以是4)来确定饼形图部分506-3的位置。
图6示出了区域地图600。区域地图600可以示出具有各种区域的数字
地图124的部分,其中,与给定区域相关联的一个或多个类别使用不同的
颜色、颜色变量、颜色阴影或混合颜色来进行表示。
如图6中所示,区域地图600示出了具有单个的颜色黄色的区域602。
当将数据显示为区域时,渲染系统可以使用选择阶段306来选择每个位置
的最大值。收集和累加缓冲器值包含用于合适地对区域602进行阴影化的
值,而选择缓冲器316确定什么值最终被渲染。例如,假定区域902被分
配了值5,其是来自值的集合[2,4,5]中的最大值。存储在选择缓冲器316中
的选择数据结构可以包含一个或多个类别和相关联的值,这些类别和值可
以用于生成区域602的颜色(或者颜色阴影或混合颜色),在本情况中,颜
色是黄色。
数据点生成阶段308可以将数据输出到GPU缓冲器,该数据稍后由在
电子显示器上呈现数据的实际的渲染算法来进行消费,由此允许整个数据
处理和视觉处理都在GPU上进行。
本文包括表示用于执行所公开的架构的新颖方面的示例性方法的流程
图的集合。尽管为了便于说明简便的目的,本文示出的一个或多个方法例
如,流程图表或流程图形式,被示出和描述为一系列的动作,但应当理解
和认识到,方法并不由动作的顺序限制,这是因为,根据所述方法,一些
动作可以以与本文示出和描述的顺序不同的顺序发生和/或与其他动作并行
发生。例如,本领域普通技术人员将理解和认识到,方法可以可替换地例
如以状态图的方式表示为一系列相关的状态或事件。此外,新颖的实现可
以不需要方法中示出的所有动作。
图7示出了逻辑流700的一个实施例。逻辑流700可以表示由本文描
述的一个或多个实施例执行的操作中的一些或全部。逻辑流700可以示出
由地图应用120执行的操作。
在图7所示出的示例性实施例中,在框702处,逻辑流700可以接收
具有针对数字地图的地理区域定义的多个类别的类别信息,多个类别中的
每个具有一个或多个类别值。例如,在处理器电路上操作的地图应用120
可以被布置为管理数字地图124。地图应用120可以包括地图管理器部件
122-1,其被布置为接收具有针对数字地图124的地理区域定义的多个类别
的类别信息130。例如,多个类别中的每个可以具有如表3中所示的一个或
多个类别值。
在框704处,逻辑流700可以对任务进行调度以利用一个或多个处理
器电路来生成注释的数字地图,其中,注释的数字地图包括针对数字地图
的地理区域的多个类别和相关联的类别值的视觉表示,该视觉表示具有不
同的视觉部分,每个视觉部分表示由随时间变化的相关联的类别值定义的
类别,每个视觉部分包括数据点的集合。例如,地图应用120可以包括地
图调度器部件122-2,其被布置为调度工作信息140以利用一个或多个处理
器电路150来生成注释的数字地图160。注释的数字地图160可以包括针对
数字地图124的地理区域的多个类别和相关联的类别值的视觉表示210。视
觉表示210可以具有不同的视觉部分212,每个视觉部分表示由随时间变化
的相关联的类别值定义的类别,每个视觉部分中包括数据点的集合。在表1
中示出了随时间变化的类别值的示例。
在框706处,逻辑流700可以根据所调度的任务,通过电路来生成具
有视觉表示的注释的数字地图。例如,地图应用120可以包括地图生成器
部件122-3,其被布置为根据分配给处理器电路150中的一个或多个的工作
信息140来生成具有视觉表示210的注释的数字地图160。例如,在一个实
施例中,工作信息140可以被分配给一个或多个GPU。
在框708处,逻辑流700可以在电子显示器上呈现注释的数字地图。
例如,地图生成器部件122-3可以在电子设备的电子显示器上呈现注释的数
字地图160。可替换地,地图生成器部件122-3可以发送针对另一个软件或
硬件部件的控制指令,以在电子设备的电子显示器上呈现注释的地图160。
图8示出了逻辑流800的一个实施例。逻辑流800可以表示由本文所
描述的一个或多个实施例执行的操作中的一些或全部。逻辑流800可以示
出在收集阶段302期间由地图应用120执行的操作。
在图8所示出的示例性实施例中,在框802处,逻辑流800可以遍历
视觉表示的所有数据点。例如,地图调度器部件122-2可以对工作信息140
进行调度来遍历视觉表示210的所有数据点。
在框804处,逻辑流800可以通过一个或多个过滤标准来对这些数据
点进行过滤。例如,地图调度器部件122-2可以对工作信息140进行调度来
通过一个或多个过滤标准对数据点进行过滤。过滤标准的示例可以包括:
在当前帧期间可见的那些数据点。
在框806处,逻辑流800可以将过滤后的数据点存储在收集缓冲器中
的收集数据结构中,该收集数据结构具有行和列的集合,所述行用于表示
数据点的位置,并且所述列用于表示数据点的类别,每个行和列的交叉点
包括具有类别值的单元。例如,地图调度器部件122-2可以对工作信息140
进行调度以将过滤后的数据点存储在收集缓冲器312中的收集数据结构中。
该收集数据结构可以具有结构。例如,在一个实施例中,该收集数据结构
可以被实现为具有行和列的集合的表,所述行用于表示数据点的位置,并
且所述列用于表示数据点的类别,每个行和列的交叉点包括具有类别值的
单元。在表2中示出了收集数据结构的示例。
图9示出了逻辑流900的一个实施例。逻辑流900可以表示由本文描
述的一个或多个实施例执行的操作中的一些或全部。逻辑流900可以示出
在累加阶段304期间由地图应用120执行的操作。
在图9所示出的示例性实施例中,在框902处,逻辑流900可以遍历
具有行和列的集合的收集数据结构,所述行用于表示数据点的位置,并且
所述列用于表示数据点的类别,每个行和列的交叉点包括具有类别值的单
元。例如,地图调度器部件122-2可以对工作信息140进行调度来遍历收集
数据结构,例如,表2或表3中示出的收集数据结构。
在框904处,逻辑流900可以在一个或多个累加遍次中对收集数据结
构的每行上的类别值进行累加。例如,地图调度器部件122-2可以对工作信
息140进行调度来在一个或多个累加遍次中对收集数据结构的每行上的类
别值进行累加。例如,当使用单个处理器电路150-1(例如,CPU)时,该
累加任务可以在单个累加遍次中执行,如表3中所示。
在框906处,逻辑流900可以使用多个累加遍次,利用图形处理单元
(GPU)来并行地对收集数据结构的每行上的类别值进行累加。例如,地
图调度器部件122-2可以对工作信息140进行调度以在两个或更多累加遍次
中,对收集数据结构的每行上的类别值进行累加。当使用多个处理器电路
150-1、150-2时,该任务可以在多个累加遍次中执行,如在表5-8中所示的。
例如,在一个实施例中,处理器电路150-1可以被实现为CPU,并且处理
器电路150-2可以被实现为耦合到处理器电路150-1的GPU。地图调度器
部件122-2可以对工作信息140进行调度以指示GPU使用多个累加遍次,
并行地对收集数据结构的每行上的类别值进行累加。
在框908处,逻辑流900可以将累加的值存储在累加缓冲器中的累加
数据结构中,累加的数据结构具有行和列的集合,所述行用于表示数据点
的位置,并且所述列用于表示数据点的累加值迭代,每个行和列的交叉点
包括具有累加的值的单元。例如,地图调度器部件122-2可以对工作信息
140进行调度以将累加的值存储在累加缓冲器314中的累加数据结构中。累
加数据结构可以具有任何结构。在一个实施例中,累加数据结构可以被实
现为具有行和列集合的表,所述行用于表示数据点的位置,并且所述列用
于表示数据点的累加值迭代,每个行和列的交叉点包括具有累加的值的单
元,如表4中所示出的。
图10示出了逻辑流1000的一个实施例。逻辑流1000可以表示由本文
描述的一个或多个实施例执行的操作中的一些或全部。逻辑流1000可以示
出在选择阶段306期间由地图应用120执行的操作。
在图10所示出的示例性实施例中,在框1002处,逻辑流1000可以遍
历具有行和列的集合的收集数据结构,所述行用于表示数据点的位置,并
且所述列用于表示数据点的类别,每个行和列的交叉点包括具有类别值的
单元。例如,地图调度器部件122-2可以对工作信息140进行调度来遍历收
集数据结构,例如,表2或表3中示出的收集数据结构。
在框1004处,逻辑流1000可以针对每行选择与一个或多个选择标准
相对应的类别值。例如,地图调度器部件122-2可以对工作信息140进行调
度以针对每行选择与一个或多个选择标准相对应的类别值。选择标准的示
例可以包括最大的类别值,以确保在给定的位置处,只有具有最高值的类
别用于视觉表示210。
在框1006处,逻辑流1000可以将所选择的值存储在选择缓冲器中的
选择数据结构中,选择数据结构具有行和列的集合,所述行用于表示数据
点的位置,第一列用于表示所选择的类别值,并且第二列用于表示与所选
择的类别值相关联的所选择的类别。例如,地图调度器部件122-2可以对工
作信息140进行调度来将所选择的值存储在选择缓冲器316中的选择数据
结构中。选择数据结构可以被实现为任何结构。例如,在一个实施例中,
选择数据结构可以被实现为具有行和列的集合的表。行可以表示数据点的
位置。第一列可以表示所选择的类别值。第二列可以表示与所选择的类别
值相关联的所选择的类别。在表9中示出了选择数据结构的示例。
一旦完成收集阶段302、累加阶段304和选择阶段306,并且收集数据
结构、累加数据结构和选择数据结构被生成并且分别存储在收集缓冲器
312、累加缓冲器314和选择缓冲器316中,则处理器电路150可以将控制
返回给地图应用120。地图生成器部件122-3可以使用收集数据结构、累加
数据结构和选择数据结构来生成具有视觉表示210的注释的数字地图160。
例如,在一个实施例中,地图生成器部件122-3可以确定每个位置的类别和
相关联的类别值,以便于从收集数据结构和选择数据结构来渲染视觉表示
210的每个视觉部分212的数据点,并且根据累加数据结构来确定每个视觉
部分212在视觉表示210内的相对位置。
图11示出了集中式系统1100的框图。集中式系统1100可以在单个计
算实体中(例如,完全地在单个设备1120内)实现装置100的结构和/或操
作中的一些或全部。
设备1120可以包括能够接收、处理和发送用于装置100的信息的任何
电子设备。电子设备的示例可以包括但不限于:超级移动设备、移动设备、
个人数字助理(PDA)、移动计算设备、智能电话、电话、数字电话、蜂窝
电话、电子书阅读器、手持设备、单向寻呼机、双向寻呼机、消息传送设
备、计算机、个人计算机(PC)、桌面型计算机、膝上型计算机、笔记本计
算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵或服
务器群、网服务器、网络服务器、互联网服务器、工作站、微型计算机、
大型计算机、超级计算机、网络设备、网设备、分布式计算系统、多处理
器系统、基于处理器的系统、消费电子设备、可编程消费电子设备、游戏
设备、电视、数字电视、机顶盒、无线接入点、基站、用户站、移动用户
中心、无线网络控制器、路由器、集线器、网关、网桥、交换机、机器或
者其组合。实施例并不限于该上下文。
设备1120可以使用处理部件1130来执行装置100的处理操作或逻辑。
处理部件1130可以包括各种硬件元件、软件元件或二者的组合。硬件元件
的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理
器电路、电路元件(例如,晶体管、电阻、电容、电感等)、集成电路、专
用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、
现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、
芯片、微芯片、芯片组等。软件元件的示例可以包括软件部件、程序、应
用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作
系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、
软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码
段、计算机代码段、字、值、符号或者其任何组合。确定实施例是使用硬
件元件和/或软件元件实现的可以根据任何数量的因素而变化,如针对给定
实现所期望的,所述因素例如可以是期望的计算速率、功率级、热耐受度、
处理循环预算、输入数据速率、输出数据速率、存储器网络资源、数据总
线速度和其他设计或性能约束。
设备1120可以使用通信部件1140来执行装置100的通信操作或逻辑。
通信部件1140可以实现任何公知的通信技术和协议,例如,适合于与分组
交换网络(例如,诸如互联网等的公共网络、诸如企业内联网等的专用网
等)、电路交换网络(例如,公共交换电话网络)、或者分组交换网络和电
路交换网络的组合(具有合适的网关和转换器)一起使用的技术。通信部
件1140可以包括各种类型的标准通信元件,例如,一个或多个通信接口、
网络接口、网络接口卡(NIC)、无线设备、无线发射机/接收机(收发机)、
有线和/或无线通信介质、物理连接器等。作为示例而非限制,通信介质1112、
1142包括有线通信介质和无线通信介质。有线通信介质的示例可以包括电
线、电缆、金属导线、印刷电路板(PCB)、背板、交换结构、半导体材料、
双绞线、同轴电缆、光纤、传播信号等。无线通信介质的示例可以包括声
学、射频(RF)频谱、红外线和其他无线介质。
设备1120可以经由通信部件1140,分别使用通信信号1114、1144,通
过通信介质1112、1142分别与其他设备1110、1150进行通信。设备1110、
1150可以在设备1120的内部或外部,如针对给定实现所期望的。
如图11中所示,设备1120可以实现整个的装置100以访问由另一个
设备实现的地图数据库,例如,由设备1150实现的GIS1160。装置100还
可以利用实现装置100的一些或全部的另一个设备(例如,设备1110)来
渲染数字地图124。数字地图124可以以任何数量的方式被传送,例如,通
过消息传递接口(例如,电子邮件、短消息服务(SMS)、多媒体消息服务
(MMS)、即时消息(IM)等)、共享网络存储空间、对等通信、网络技术
(例如,网页)、以及其他通信模态。此外,设备1110还可以使用装置100,
以类似于与设备1120通信的方式来与GIS1160进行通信。设备1120还可
以实现计算和/或通信设备共用的其他平台部件,例如,参照图15所描述的。
图12示出了分布式系统1200的框图。分布式系统1200可以将装置100
的结构和/或操作的部分分布到多个计算实体上。分布式系统1200的示例可
以包括但不限于客户端-服务器架构、3层架构、N层架构、紧密耦合或聚
集的架构、对等架构、主从架构、共享数据库架构、以及其他类型的分布
式系统。实施例并不限于该上下文。
分布式系统1200可以包括客户端设备1210和服务器设备1250。一般
地,客户端设备1210和服务器设备1250可以与参照图2描述的客户端设
备220相同或类似。例如,客户端系统1210和服务器系统1250每个可以
包括处理部件1230和通信部件1240,它们分别与参照图11描述的处理部
件1130和通信部件1140相同或类似。在另一个示例中,设备1210、1250
可以经由通信部件1240,使用通信信号1214来通过通信介质1212进行通
信。
客户端设备1210可以包括或采用根据所描述的实施例操作以执行各种
方法的一个或多个客户端程序。例如,在一个实施例中,客户端设备1210
可以实现装置100的一部分,例如,地图应用120。
服务器设备1250可以包括或采用根据所描述的实施例操作以执行各种
方法的一个或多个服务器程序。例如,在一个实施例中,服务器设备1250
可以实现装置100的一部分,例如,GIS1160。分布式模型可以适合于在多
个设备或用户之间共享地图信息。
图13示出了适合于实现如上文描述的各种实施例的示例性计算架构
1300的实施例。在一个实施例中,计算架构1300可以包括或被实现为电子
设备的部分。电子设备的示例可以包括参照图11描述的那些等。实施例不
限于该上下文。
如本申请所使用的,术语“系统”和“部件”是要指代与计算机有关
的实体,无论其是硬件、硬件和软件的组合、还是软件或执行中的软件,
这些实体的示例由示例性计算架构1300提供。例如,部件可以是但不限于
在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或
磁存储介质)、对象、可执行体、执行的线程、程序、和/或计算机。作为示
例,在服务器上运行的应用和该服务器二者都可以是部件。一个或多个部
件可以驻留在进程和/或执行的线程内,并且部件可以位于一个计算机上和/
或分布在两个或更多计算机上。此外,部件可以通过各种类型的通信介质
来相互通信地耦合,以协调操作。协调可以涉及信息的单向或双向交换。
例如,部件可以以在通信介质上传送的信号的形式来传送信息。信息可以
被实现为分配给各种信号线的信号。在这样的分配中,每个消息都是信号。
然而,另外的实施例可以可替换地采用数据消息。这样的数据消息可以通
过各种连接被发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构1300包括各种常见的计算单元,例如,一个或多个处理器、
多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、
振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源
等。然而,这些实施例不限于计算架构1300的实现。
如图13中所示,计算架构1300包括处理单元1304、系统存储器1306
和系统总线1308。处理单元1304可以是各种商业可用的处理器中的任何一
个,其包括但不限于和处理器;
应用、嵌入式和安全处理器;和和
处理器;IBM和单元处理器;Core(2)
和处理器;以及类似处理器。此外,
双核微处理器、多核处理器和其他多处理器架构也可以被采用作为处理单
元1304。
系统总线1308提供了用于系统部件的接口,该接口包括但不限于系统
存储器1306到处理单元1304的接口。系统总线1308可以是能够使用各种
商业可用的总线架构中的任一个来进一步互连到存储器总线(具有或者不
具有存储器控制器)、外围总线和本地总线的多种类型的总线结构中的任何
一个。接口适配器可以经由插槽架构连接到系统总线1308。示例插槽架构
可以包括但不限于加速图形端口(AGP)、插件总线、(扩展的)工业标准
架构((E)ISA)、微通道架构(MCA)、NuBus、外围部件互连(扩展的)
(PCI(X))、快速PCI、个人计算机存储卡国际协会(PCMCIA)等。
计算架构1300可以包括或者实现各种制品。制品可以包括用于存储逻
辑的计算机可读存储介质。计算机可读存储介质的示例可以包括能够存储
电数据的任何有形介质,其包括易失性存储器或者非易失性存储器、可移
动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。
逻辑的示例可以包括使用任何合适类型的代码实现的可执行计算机程序指
令,所述代码例如是源代码、编译的代码、解释的代码、可执行代码、静
态代码、动态代码、面向对象的代码、视觉代码等。实施例还可以至少部
分地被实现为包含在非暂时性计算机可读介质中或者上的指令,该指令可
以由一个或多个处理器来读取和执行,以实现本文所描述的操作的性能。
系统存储器1306可以包括以一个或多个较高速度的存储器单元形式的
各种类型的计算机可读存储介质,例如,只读存储器(ROM)、随机存取存
储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、
同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、
可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速
存储器、诸如铁电聚合物存储器等的聚合物存储器、奥氏存储器、相变或
铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、
诸如独立磁盘冗余阵列(RAID)驱动器等的设备阵列、固态存储器设备(例
如,USB存储器、固态驱动器(SSD))以及适合于存储信息的任何其他类
型的存储介质。在图13中所示出的示例性实施例中,系统存储器1306可
以包括非易失性存储器1310和/或易失性存储器1312。基本输入/输出系统
(BIOS)可以存储在非易失性存储器1310中。
计算机1302可以包括具有一个或多个较低速度的存储器单元形式的各
种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)
1314、用于从可移动磁盘1318读取或者向可移动磁盘1318写入的磁性软
盘驱动器(FDD)1316、以及用于从可移动光盘1322(例如,CD-ROM或
DVD)读取或者向可移动光盘1322写入的光盘驱动器1320。HDD1314、
FDD1316和光盘驱动器1320可以分别通过HDD接口1324、FDD接口1326
和光驱动接口1328连接到系统总线1308。用于外部驱动实现的HDD接口
1324可以包括通用串行总线(USB)和IEEE1394接口技术中的至少一种
或者两种。
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执
行指令等的易失性和/或非易失性存储。例如,包括操作系统1330、一个或
多个应用程序1332、其他程序模块1334和程序数据1336在内的大量程序
模块可以存储在驱动器和存储器单元1310、1312中。在一个实施例中,一
个或多个应用程序1332、其他程序模块1334、以及程序数据1336可以例
如包括系统100的各种应用和/或部件。
用户可以通过诸如键盘1338的一个或多个有线/无线输入设备和诸如
鼠标1340等的定点设备来将命令和信息输入到计算机1302中。其他输入
设备可以包括:麦克风、红外(IR)远程控制、射频(RF)远程控制、游
戏手柄、手写笔、读卡器、加密锁、指纹读取器、手套、绘图板、操纵杆、
键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、跟踪球、跟踪
板、传感器、尖笔等。通常,这些和其他输入设备通过耦合到系统总线1308
的输入设备接口1342连接到处理单元1304,但也可以通过诸如并行端口、
IEEE1394串行端口、游戏端口、USB端口、IR接口等的其他接口来连接。
监视器1344或者其他类型的显示设备还经由诸如视频适配器1346等
的接口连接到系统总线1308。监视器1344可以在计算机1302内部或外部。
除了监视器1344之外,计算机通常包括其他外围输出设备,例如,扬声器、
打印机等。
计算机1302可以使用经由有线和/或无线通信的到一个或多个远程计
算机(例如,远程计算机1348)的逻辑连接在网络化环境中操作。远程计
算机1348可以是工作站、服务器计算机、路由器、个人计算机、便携式计
算机、基于微处理器的娱乐设备、对等设备或者其他常见的网络节点,并
且通常包括参照计算机1302所描述的单元中的多个或者全部,但是为了简
洁起见,仅示出了存储器/存储设备1350。所描述的逻辑连接包括与局域网
(LAN)1352和/或更大网络(例如,广域网(WAN)1354)的有线/无线
连接。这样的LAN和WAN网络环境在办公室和公司中是常见的,并且有
利于诸如内联网之类的企业范围的计算机网络,所有这些网络都可以连接
到全球通信网络,例如,互联网。
当在LAN网络环境中使用时,计算机1302通过有线和/或无线通信网
络接口或者适配器1356连接到LAN1352。适配器1356可以有利于与LAN
1352的有线和/或无线通信,LAN1352还可以包括设置在其上的用于与适
配器1356的无线功能进行通信的无线接入点。
当在WAN网络环境中使用时,计算机1302可以包括调制解调器1358,
或者连接到WAN1354上的通信服务器,或者具有用于通过WAN1354来
建立通信的其他方式,例如,通过互联网的方式。调制解调器1358(其可
以是内部或者外部的,并且可以是有线和/或无线设备)经由输入设备接口
1342连接到系统总线1308。在网络化的环境下,参照计算机1302或者其
部分所描述的程序模块可以存储在远程存储器/存储设备1350中。应当认识
到,示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链
路的其他方式。
计算机1302可操作用于使用IEEE802标准系列来与有线和无线设备
或者实体进行通信,所述设备例如是以无线通信(例如,IEEE802.11空中
调制技术)可操作地设置的无线设备。这技术至少包括Wi-Fi(或者无线保
真度)、WiMax和蓝牙TM无线技术等。由此,通信可以是如传统网络一样的
预定义结构或者是至少两个设备之间的简单的专用通信。Wi-Fi网络使用称
为IEEE802.11x(a、b、g、n等)的无线技术,来提供安全、可靠、快速
的无线连接。Wi-Fi网络可以用于将计算机彼此连接、连接到互联网、以及
连接到有线网络(该有线网络使用与IEEE802.3有关的介质和功能)。
图14示出了适合于实现如先前所描述的各种实施例的示例性通信架构
1400的框图。通信架构1400包括各种通用通信元件,例如发射机、接收机、
收发机、无线设备、网络接口、基带处理器、天线、放大器、滤波器、电
源等。然而,实施例不限于通过通信架构1400的实现。
如图14中所示,通信架构1400包括一个或多个客户端1402和服务器
1404。客户端1402可以实现客户端设备1110、1210。服务器1404可以实
现服务器设备1250。客户端1402和服务器1404操作地连接到一个或多个
相应的客户端数据存储1408和服务器数据存储1410,这些数据存储可以用
于存储相应的客户端1402和服务器1404的本地信息,例如,暂存信息
(cookie)和/或相关联的上下文信息。
客户端1402和服务器1404可以使用通信架构1406来在彼此之间传送
信息。通信架构1406可以实现任何公知的通信技术和协议。通信架构1406
可以被实现为分组交换网络(例如,诸如互联网等的公共网络、诸如企业
内联网等的私有网络等)、电路交换网络(例如,公众交换电话网络)、或
者分组交换网络和电路交换网络的组合(具有合适的网关和转换器)。
通信框架1406可以实现被布置为接受、传送和连接到通信网络的各种
网络接口。网络接口可以被视为专门形式的输入输出接口。网络接口可以
使用包括但不限于直接连接、以太网(例如,厚、簿双绞线10/100/1000Base
T等)、令牌环网、无线网络接口、蜂窝网络接口、IEEE802.11a-x网络接
口、IEEE802.16网络接口、IEEE802.20网络接口等在内的连接协议。此外,
可以采用多个网络接口来与各种通信网络类型接合。例如,可以采用多个
网络接口来允许通过广播、多播和单播网络进行通信。如果处理需求指示
更大数量的速度和容量,则可以类似地使用分布式网络控制器架构来组合、
负载平衡、以及另外增加客户端1402和服务器1404所需要的通信带宽。
通信网络可以是有线和/或无线网络的任一个或其结合,包括但不限于直接
互连、安全定制连接、私有网络(例如,企业内联网)、公共网络(例如,
互联网)、个域网(PAN)、局域网(LAN)、城域网(MAN)、工作任务作
为互联网上的节点(OMNI)、广域网(WAN)、无线网络、蜂窝网络、以
及其他通信网络。
一些实施例可以使用表达“一个实施例”或者“实施例”以及它们的
派生词来描述。这些术语表示结合该实施例所描述的特定特征、结构或者
特性包括在至少一个实施例中。在说明书的各种位置所出现的短语“在一
个实施例中”不一定全都指代同一个实施例。此外,一些实施例可以使用
表达“耦合”和“连接”以及它们的派生词来描述。这些术语并不一定是
要作为彼此的同义词。例如,一些实施例可以使用术语“连接”和/或“耦
合”来进行描述,以指示两个或更多元件彼此直接物理的或电气的接触。
然而,术语“耦合”还可以表示两个或更多个元件彼此不是直接接触,但
仍然彼此协作或交互。
需要强调的是,提供了本公开的摘要,以允许读者快速地确定技术公
开的本质。应当理解的是,其不用于解释或者限制权利要求的范围或含义。
此外,在上文的具体实施方式中,可以观察到,出于精简本公开的目的,
将各种特征聚集在单个实施例中。本公开的方法不应被解释为反映下面的
意图:即,要求保护的实施例需要多于明确记载在每权利要求中的特征。
确切地说,如所附的权利要求书所反映的,发明的主题在于少于单个公开
的实施例的全部特征。因此,所附的权利要求书由此被并入到具体实施方
式中,每个权利要求本身作为单独的实施例。在所附的权利要求书中,术
语“包括”和“其中”分别用作相应的术语“包含”和“在其中”的简明
英语等价物。此外,术语“第一”、“第二”、“第三”等仅用作标记,其并
不是要对它们的对象施加序数要求。
上文已经描述了包括公开架构的示例。当然,不可能描述部件和/或方
法的每个能想到的组合,但是本领域的普通技术人员应该认识到,许多其
他的组合和置换是可能的。因此,该新颖架构旨在涵盖落入所附权利要求
书的精神和范围内的所有这种改变、修改和变形。