数据可视化平台的性能优化转让专利

申请号 : CN201080019471.7

文献号 : CN102414656B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : B·C·艾伦B·S·鲁伯

申请人 : 微软公司

摘要 :

可提供数据可视化平台的优化。应用可提供数据值并且请求从数据可视化平台(DVP)创建可视化。DVP可合成与可视化的数据值的子集相关联的多个几何记录。应用可通过遍历几何向量并且将向量的子集转换为用于向显示设备输出的绘图指令来呈现可视化。

权利要求 :

1.一种用于提供可视化平台(150)的优化的方法(200),所述方法(200)包括:定义(210)可视化;

合成(220)与所述可视化相关联的多个几何向量,其中所述合成包括通过使用可配置的准则以确定随后的点是否与先前的数据点足够近而能够被忽略来使用数据点忽略算法以便为数据的子集合成所述几何向量;

接收(230)显示可视化的请求;

迭代遍历(240)所述多个几何向量(135),其中所述迭代遍历所述多个几何向量包括使用几何忽略算法来通过转换所述几何向量的数据的子集来降低所需呈现的绘图指令的数量;

将多个几何向量中的至少一个向量转换为至少一个绘图指令;

在显示设备(150)上显示(250)可视化;

确定(260)在所述显示中是否发生改变;并且

如果确定在所述显示中已经发生了改变,则在所述显示设备上重新显示所述可视化。

2.如权利要求1所述的方法(200),其特征在于,所述几何忽略算法包括忽略所述多个几何向量(135)中的至少一个几何向量。

3.如权利要求2所述的方法(200),其特征在于,所述忽略所述多个几何向量(135)中的至少一个几何向量包括确定所述多个几何向量(135)中的至少一个几何向量是否与至少一个准则相关联。

4.如权利要求3所述的方法(200),其特征在于,所述至少一个准则包括以下中的至少一个:显示大小、数据类型、可视化类型、要显示的数据点的总数、所述多个几何向量(135)的总数、以及在显示对象之间重叠的数量的大小。

5.如权利要求1所述的方法(200),其特征在于,还包括:确定所述多个几何向量中的至少一个向量是否包括与所述多个几何向量中的至少一个第二向量相关联的像素位置;以及响应于确定所述多个几何向量中的至少一个向量包括与所述多个几何向量中的至少一个第二向量相关联的像素位置,忽略所述多个几何向量(135)中的所述至少一个第二向量。

6.如权利要求1所述的方法(200),其特征在于,还包括:发送多个转换的几何向量给应用(140);

呈现多个转换的几何向量以用于应用(140)的显示。

7.如权利要求6所述的方法(200),其特征在于,还包括:从应用(140)处接收对一批转换的几何向量的请求;

发送多个转换的几何向量中的子集给应用(140),其中所述多个转换的几何向量中的子集包括与接收到的对一批转换的几何向量的请求相关联的多个转换的几何向量;以及等待发送多个转换的几何向量中剩下的子集。

8.如权利要求1所述的方法(200),其特征在于,所述将多个几何向量中的至少一个向量转换为至少一个绘图指令包括直线化所述多个几何向量(135)中的至少一个向量。

9.如权利要求1所述的方法(200),其特征在于,还包括:接收至少一个支持的绘图指令,其中所述将多个几何向量中的至少一个向量转换为至少一个绘图指令包括将所述多个几何向量中的至少一个向量转换为至少一个支持的绘图指令。

10.一种用于提供可视化平台(150)的优化的方法,所述方法包括:创建(210)与多个数据值相关联的可视化对象;

将多个数据值中的至少一个第一值合成(220)为与可视化对象相关联的几何向量,通过使用可配置的准则以确定随后的点是否与先前的数据点足够近而能够被忽略来忽略多个数据值中的至少一个第二值;

将多个数据值的子集合成(220)为与可视化对象相关联的多个几何向量(135);以及通过将所述多个几何向量(135)中的至少一个向量转换为至少一个绘图指令来呈现(250)可视化对象,其中所述将所述多个几何向量(135)中的至少一个向量转换为至少一个绘图指令包括将所述多个几何向量(135)中的子集转换为多个绘图指令,其中所述多个几何向量(135)的子集是根据几何忽略算法(130)而被选择,其中所述几何忽略算法被配置为通过转换所述几何向量的数据的子集来降低所需呈现的绘图指令的数量。

11.如权利要求10所述的方法,其特征在于,所述几何忽略算法(130)包括算法(130),被操作为:将所述多个几何向量(135)中的至少一个第一向量转换为至少一个绘图指令,迭代至所述多个几何向量(135)中的至少一个第二向量;

确定所述多个几何向量(135)中的至少一个第二向量是否包括与至少一个第一向量相关联的可视化对象上的点相邻近的可视化对象上的点;以及响应于确定所述多个几何向量(135)中的至少一个第二向量包括与至少一个第一向量相关联的可视化对象上的点相邻近的可视化对象上的点,忽略将至少一个第二向量转换为至少一个绘图指令。

12.一种用于优化可视化平台(150)的方法(200),包括:从用户应用(140)处接收(210)创建可视化对象的请求,其中所述请求包括多个数据值和可视化类型;

合成(220)与可视化对象相关联的多个几何向量(135),其中所述合成多个几何向量(135)包括:合成与多个数据值中的至少一个值相关联的至少一个几何向量;以及通过根据可配置的准则确定随后的点是否与先前的数据点足够近而能够被忽略来忽略多个数据值中的至少一个;

从用户应用(140)处接收(230)呈现请求;

将所述多个几何向量(135)中的第一子集中的每个转换为至少一个绘图指令,其中所述多个几何向量(135)中的第一子集根据几何忽略算法(130)而被选择,其中所述几何忽略算法被配置为通过转换所述几何向量的数据的子集来降低所需呈现的绘图指令的数量;

发送与所述多个几何向量(135)中的第一子集中的每个相关联的至少一个绘图指令给用户应用(140);

呈现(250)可视化对象,其中所述呈现可视化对象包括向显示设备(150)呈现与所述多个几何向量(135)中的第一子集中的每个相关联的至少一个绘图指令;

响应于检测到的影响所呈现的可视化对象的改变,从用户应用(140)处接收第二呈现请求;

将所述多个几何向量(135)中的第二子集中的每个转换为至少一个绘图指令,发送与所述多个几何向量(135)中的第二子集的每个相关联的至少一个绘图指令给用户应用(140);以及重新呈现可视化对象。

13.一种用于提供可视化平台(150)的优化的系统,所述系统包括:用于创建(210)与多个数据值相关联的可视化对象的装置;

用于将多个数据值中的至少一个第一值合成(220)为与可视化对象相关联的几何向量的装置,用于通过使用可配置的准则以确定随后的点是否与先前的数据点足够近而能够被忽略来忽略多个数据值中的至少一个第二值的装置;

用于将多个数据值的子集合成(220)为与可视化对象相关联的多个几何向量(135)的装置;以及用于通过将所述多个几何向量(135)中的至少一个向量转换为至少一个绘图指令来呈现(250)可视化对象的装置,其中所述将所述多个几何向量(135)中的至少一个向量转换为至少一个绘图指令包括将所述多个几何向量(135)中的子集转换为多个绘图指令,其中所述多个几何向量(135)的子集是根据几何忽略算法(130)而被选择,其中所述几何忽略算法被配置为通过转换所述几何向量的数据的子集来降低所需呈现的绘图指令的数量。

说明书 :

数据可视化平台的性能优化

背景技术

[0001] 数据可视化平台的性能优化在生成可视对象中提供改进的性能。在某些情况下,为计算机生成可视对象可以是非常性能密集的。例如,生成图表和地图可需要大量的计算能力和/或存储器,尤其是在对象包括大量的数据点时。传统的策略是呈现(render)每一个数据点,而不管产生的对象的大小。由于对象上的某些操作将导致计算机变得响应缓慢,这将会造成问题。例如,显示大地图、选择详细图表的一部分、滚动、打印、和/或修改对象将需要大量的计算能力并且会导致计算机响应缓慢。

发明内容

[0002] 可提供数据可视化平台的性能优化。提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征。本概述也不旨在用于限制所要求保护的主题的范围。
[0003] 可提供数据可视化平台的优化。应用可提供数据值并且请求从数据可视化平台(DVP)创建可视化。DVP可合成与可视化的数据值的子集相关联的多个几何记录。应用可通过迭代遍历(iterate through)几何向量并且将向量的子集转换为用于向显示设备输出的绘图指令来呈现可视化。
[0004] 前述概括描述和以下详细描述两者都提供示例并且都只是说明性的。因此,前述概括描述和以下详细描述不应被认为是限制性的。此外,除了此处所阐明的那些之外还可提供其它特征或变种。例如,各实施例可涉及在详细描述中描述的各种特征组合和子组合。

附图说明

[0005] 合并在本公开中并且构成其一部分的附图示出本发明的各实施例。在附图中:
[0006] 图1是操作环境的框图;
[0007] 图2是用于优化可视化平台性能的方法的流程图;以及
[0008] 图3是包括计算设备的系统的框图。

具体实施方式

[0009] 以下详细描述参考各附图。只要可能,就在附图和以下描述中使用相同的标号来指示相同或类似的元素。尽管可能描述了本发明的各实施例,但是修改、改编和其它实现也是可能的。例如,可对附图中所示出的元素进行置换、添加、或修改,并且可通过对所公开的方法置换、重新排序、或添加阶段来修改此处所描述的方法。因此,以下详细描述并不限制本发明。相反,本发明的正确范围由所附权利要求书定义。
[0010] 可提供数据可视化平台(DVP)的性能优化。与本发明的各实施例一致,DVP可根据显示分辨率在合成对象期间忽略数据点,并且可构建存储器中最小的一组几何向量。DVP还可在呈现对象期间忽略合成的向量。例如通过使用允许诸如最大存储器消耗、时间和/或数据点计数等的设置上的控制的应用程序编程接口(API),DVP可进一步允许对忽略数据点和/或向量以显示不同质量设置的算法的缩放。
[0011] 图1是用于提供可视化平台105的操作环境100的框图。可视化平台105可包括对象模块110、布局引擎115以及几何迭代器125。布局引擎115可包括数据点忽略算法120。几何迭代器125可包括几何忽略算法130。几何迭代器125和布局引擎115可创建、更新、读、检索和/或提供多个几何向量数据135。操作环境100可进一步包括应用140,该应用包括被操作为呈现绘图指令给诸如监视器、屏幕、打印机和/或其它显示设备等的输出设备150的呈现器145。可视化平台105可包括允许创建诸如图表之类的数据可视化的体系结构,并且可在可视化上展示交互式特征。该体系结构可提供与多个呈现平台的集成。
当用户选择所展示的特征时,该体系结构可将选择转换成公共格式,并根据独立于呈现平台的布局规则来修改数据可视化。
[0012] 应用140可通过对象模块110来定义可视化。对象模块110可调用布局引擎115,该布局引擎可将存储器中的一几何记录集合建立为几何向量数据135。应用140稍后将需要呈现可视化,并且调用可访问几何向量数据135的几何迭代器125并将其返回给应用140。应用140可将几何向量数据135中的每个几何基元转换成呈现给输出设备150的绘图指令。
[0013] 可视化平台105可包括共享内核,该共享内核包括用于提供交互式可视化的软件库和/或实用程序。共享内核可例如用C++或C#实现,并且可以是与平台无关的。共享内核可包括可视化实用程序,用于提供布局、形状和/或几何、线服务、三维呈现、动画帧生成、和/或交互式热点。可视化平台110可进一步包括用于与应用140交互的应用程序编程接口(API)。
[0014] 性能优化的两个方面可以是在几何向量数据135的合成以及几何向量数据135到用于呈现的绘图指令的转换期间。例如,在几何向量数据135的合成期间,存储器使用将随着数据量的增长而大量增长。通过使用数据点忽略算法120以便为数据的子集合成几何向量,可降低所需的存储器量。几何忽略算法130可操作以通过转换几何向量数据135的子集来降低所需呈现的绘图指令的数量。
[0015] 图2是阐明与本发明的实施例一致的用于提供数据可视化平台优化的方法200中所涉及的各通用阶段的流程图。方法200可使用如将在以下参考图3更详细地描述的计算设备300来实现。以下将更详细地描述实现方法200的各阶段的方式。方法200可开始于起始框205并且继续至阶段210,在阶段210处计算设备300可定义可视化。例如,应用140可向可视化平台105发送创建可视对象的请求。请求可包括数据值、数据系列和/或诸如折线图、条形图、饼形图或图表等的对象类型。可视化平台105可用对象管理器来为可视对象定义存储器位置。
[0016] 从在其中计算设备300定义可视化的阶段210,方法200可前进至阶段220,在该阶段,计算设备300可合成与可视化相关联的至少一个几何向量。例如,应用140可定义包括1000个数据点的图表可视化,其中每个数据点可由绘制的八边形形状来表示。在传统系统中,可视化平台105可为1000个数据点中的每一个数据点都合成几何向量。与本发明的各实施例一致,布局引擎115可使用数据点忽略算法120来为1000个数据点的子集合成几何向量。这可允许显示草图和/或预览质量的可视对象。进一步与本发明的各实施例一致,布局引擎115可被操作为确定1000个数据点中的数据点彼此之间是否足够近从而基于应用140和/或输出设备150的特征是无法区分的。例如,如果1000个数据点中的30个数据点的子集都互相重叠或者到达彼此的预定阈值之内,诸如在5个像素之内,则数据点忽略算法120可被操作为忽略合成30个数据点中的所有的点,并且仅合成30个数据点中的一个点。
[0017] 与本发明的各实施例一致,应用140可定义包括10000个数据点的柱状图。布局引擎115可调用穿过数据的列系列类,并为数据点的边框合成向量,并且将向量放入到几何向量数据135中。布局引擎115可从应用140处接收例如以像素为单位的图表大小,并且确定在该图表大小中可显示多少数据点。例如,300个像素宽的图表仅能够无重叠地显示300个数据点。布局引擎135从而可为10000个数据点的300个点的子集合成向量数据。
该子集的大小可基于例如输出设备150的分辨率。
[0018] 该子集的大小还可基于例如布局引擎115对某些数据点将由其它数据点所涵盖的确定,并且布局引擎115可因此忽略合成被涵盖的数据点的向量数据。与本发明的各实施例一致,布局引擎115可确定随后的数据点将占据与先前的数据点精确相同的像素,并且因此可忽略随后的数据点。与本发明的进一步实施例一致,数据点忽略算法120可使用可配置的准则以确定随后的点是否与先前的数据点足够近而能够被忽略。例如,布局引擎115可设置忽略先前的数据点5个像素之内的数据点的准则。进一步与本发明的各实施例一致,可随着合成阶段的进行而提升准则,以便限制由合成几何向量数据135所消耗的存储器量。还可从应用140处接收准则,诸如通过对用用户界面节流控制的用户选择。
[0019] 一旦计算设备300在阶段220合成几何向量,方法200可继续到阶段230,在该阶段,计算设备300可接收呈现可视化的请求。例如,应用140可根据用户命令来请求呈现可视化。
[0020] 在计算设备300在阶段230接收呈现请求之后,方法200可继续到阶段240,在该阶段,计算设备300可迭代遍历合成的几何向量并且将其转换为绘图指令。例如,可视化平台105可将包括图表对象的x轴的几何向量转换为线条的绘图指令,其中绘图指令包括相关联的数据,诸如线条的起始点、线条的终止点、线条的颜色和/或线条的宽度等。
[0021] 与本发明的各实施例一致,可视化平台105可从应用处接收至少一个支持的绘图指令。可视化平台105可被操作为将合成的几何向量转换为支持的绘图指令。例如,可视化平台105可被操作为将包括八边形的几何向量直线化为包括用于在输出设备150上呈现八边形形状的八条线条集合中的每一条的起始和终止点的绘图指令。应用140可替代地或附加地通知可视化平台包括中心点和八边形形状宽度的支持的绘图指令,从而可视化平台105可将包括八边形的几何向量转换为支持的绘图指令,而不是直线化该八边形形状。应用
140因此可减少可视化平台105需要提供的转换的绘图指令的数量。
[0022] 计算设备300可使用几何忽略算法130来减少需要转换和呈现的几何向量的数量。例如,如果为数据点使用八边形形状,可视化包括100像素乘以200像素的图表,则每个八边形可包括10像素乘以10像素或者更小的形状,并且某些线段可包括0长度。例如,几何忽略算法130可确定特定的几何向量与用于忽略的准则相关联,诸如该向量可被转换为具有相同起始和终止点的线条的绘图指令。在这一示例中,几何忽略算法130可忽略特定的几何向量,而不是将其转换为绘图指令并且将其发送给应用140以用于呈现。几何忽略算法130可根据诸如显示大小、数据类型。可视化类型、数据点的总数以及几何向量的总数等的众多其它准则来忽略几何向量中的一个。
[0023] 与本发明的各实施例一致,应用140可分批地取绘图指令。例如,应用140可分配足够的存储器以接收50条绘图指令。可视化平台105从而可提供50条绘图指令并且通知应用140是否有更多的绘图指令在等待。可视化平台105可等待应用140以请求随后的批次并且重复这一过程。
[0024] 方法200可从阶段240前进至阶段250,在该阶段,计算设备300可向输出设备呈现可视化。例如,应用140可在呈现器145处接收绘图指令,并且在包括输出设备150的屏幕上绘出可视化。
[0025] 一旦计算设备300在阶段250呈现可视化,方法200可前进至阶段260,在该阶段,计算设备300可确定在显示中是否发生改变。例如,可移动、缩放、重新调整大小和/或完全或部分地隐藏所显示的可视化。如果计算设备确定在可视化的显示中已经发生了改变,则方法300可返回至阶段250,在该阶段,计算设备300可重新呈现可视化。数据点忽略可在阶段220的合成期间当几何向量数据135被缓存时发生,而几何忽略可在阶段250每次呈现可视化时发生。因此,每当应用140必须呈现可视化时,例如当窗口被移动、最小化、最大化或缩放时,应用140可从几何迭代器125处接收一组新的绘图指令。例如当应用140缩小时,将在可视化中显示更少的像素,并且几何忽略将更加积极,忽略更多的几何向量。
[0026] 与本发明的各实施例一致,数据点忽略和几何忽略可单独地和/或一起使用,并且可通过用户展现的配置偏好来控制。例如,想要在图表上放大至详细细节的用户可禁用数据点忽略,以便提供最大数量的数据,同时启用几何忽略以防止转换在放大状态中不可见的向量。
[0027] 一旦计算设备300在阶段260确定在显示中是否发生了改变并且如果需要重新呈现了可视化,方法200可在阶段270终止。
[0028] 与本发明一致的实施例可包括用于提供可视化平台优化的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可被操作为定义可视化,创建多个几何记录,接收显示可视化的请求,迭代遍历多个几何向量,将多个几何记录中的至少一个转换为至少一个绘图指令,并且在显示设备上显示可视化。
[0029] 与本发明一致的另一实施例可包括用于提供可视化平台优化的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可被操作为创建与多个数据值相关联的可视化对象,合成多个数据值中的至少一个第一值为与可视化对象相关联的几何向量,并且忽略合成多个数据值中的至少一个第二值。
[0030] 与本发明一致的又一实施例可包括用于提供优化可视化平台的系统。该系统可包括存储器存储和耦合到该存储器存储的处理单元。处理单元可被操作为从用户应用处接收创建可视化对象的请求,合成与可视化对象相关联的多个几何向量,从用户应用处接收呈现请求,将多个几何向量的子集中的每一个子集转换为至少一个绘图指令,发送与多个几何向量的子集中的每一个子集相关联的至少一个绘图指令给用户应用并且呈现可视化对象。处理单元可被进一步操作为响应于检测到的影响呈现的可视化对象的改变,从用户应用处接收第二呈现请求,将多个几何向量的第二子集中的每一个子集转换为至少一个绘图指令,发送与多个几何向量的第二子集中的每一个子集相关联的至少一个绘图指令给用户应用,并且重新呈现可视化对象。
[0031] 图3是包括计算设备300的系统的框图。与本发明的实施例一致,上述存储器存储和处理单元可以在诸如图3的计算设备300等计算设备中实现。可使用硬件、软件、或固件的任何合适的组合来实现该存储器存储和处理单元。例如,存储器存储和处理单元可以用计算设备300或结合计算设备300的其它计算设备318中的任意一个来实现。与本发明的各实施例一致,上述系统、设备和处理器是示例,而其它系统、设备和处理器可包括上述存储器存储和处理单元。此外,计算设备300可包括用于上述系统100的操作环境。系统100可以在其它环境中操作并且不限于计算设备300。
[0032] 参考图3,与本发明的实施例一致的系统可包括诸如计算设备300的计算设备。在基本配置中,计算设备300可包括至少一个处理单元302和系统存储器304。取决于计算设备的配置和类型,系统存储器304可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。系统存储器304可包括操作系统305、一个或多个编程模块306,并且可包括可视化平台110。例如,操作系统305可适用于控制计算设备300的操作。在一个实施例中,编程模块306可包括用户应用
140。此外,本发明的各实施例可结合图形库、其它操作系统、或任何其它应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图3中由虚线308内的那些组件示出。
[0033] 计算设备300可具有附加特征或功能。例如,计算设备300还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘、或磁带等。这些附加存储在图3中由可移动存储309和不可移动存储310示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器304、可移动存储309和不可移动存储310都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储信息且可以由计算设备300访问的任何其它介质。任何这样的计算机存储介质可以是设备300的一部分。计算设备300还可具有输入设备312,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。也可包括输出设备314,诸如显示器、扬声器、打印机等等。上述设备是示例并且可以使用其它设备。
[0034] 计算设备300还可包含可允许设备300诸如通过例如内联网或因特网的分布式计算环境中的网络来与其它计算设备318通信的通信连接316。通信连接316是通信介质的一个示例。通信介质通常由诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其它无线介质等无线介质。如此处所使用的术语计算机可读介质可包括存储介质和通信介质两者。
[0035] 如上所述,多个程序模块和数据文件可存储在包括操作系统305的系统存储器304中。当在处理单元302上执行时,编程模块306(例如,用户应用140)可执行各过程,包括例如,如上所述的方法200的一个或多个阶段。上述过程是示例,并且处理单元302可执行其它过程。根据本发明的各实施例可使用的其它编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
[0036] 一般而言,根据本发明的各实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本发明的各实施例可用其它计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型计算机、大型计算机等。本发明的各实施例也可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
[0037] 此外,本发明的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中,或在包含电子元件或微处理器的单个芯片上实践。本发明的各实施例还可使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其它技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可在通用计算机或任何其它电路或系统内实践。
[0038] 例如,本发明的各实施例可被实现为计算机过程(方法)、计算系统、或诸如计算机程序产品或计算机可读介质等的制品。计算机程序产品可以是计算机系统可读并且对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。计算机程序产品还可以是计算系统可读并且对用于执行计算机过程的指令的计算机程序编码的载体上的传播信号。因此,本发明可在硬件和/或软件(包括固件、常驻软件、微码等)中体现。换言之,本发明的各实施例可采用其上包含在供指令执行系统使用或结合其使用的介质中的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序供指令执行系统、装置、或设备使用或结合其使用的任何介质。
[0039] 计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备、或传播介质。更具体的计算机可读介质示例(非穷尽列表),计算机可读介质可包括以下:具有一条或多条导线的电连接、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、以及便携式压缩盘只读存储器(CD-ROM)。注意,计算机可使用或计算机可读介质甚至可以是其上打印程序的纸张或另一合适的介质,因为程序可经由例如对纸张或其它介质的光学扫描而电子地捕捉,随后如有必要被编译、解释,或以其它合适的方式处理,并且随后存储在计算机存储器中。
[0040] 以上参考根据本发明的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本上同时执行,或者这些框有时可按相反的次序来执行。
[0041] 尽管描述了本发明的某些实施例,但是可存在其它实施例。此外,虽然本发明的各实施例被描述为与存储在存储器和其它存储介质中的数据相关联,但数据还可存储在或读取自其它类型的计算机可读介质,诸如辅助存储设备,像硬盘、软盘、或CD-ROM,来自因特网的载波,或其它形式的RAM或ROM。此外,所公开的各方法的各阶段可以任何方式来修改,包括通过对各阶段重新排序和/或插入或删除各阶段,而不背离本发明。
[0042] 包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。申请人保持并且保留此处所包括的代码中的所有权利,并且授予仅关于所授权的专利的再现且未出于其它目的再现该材料的许可。
[0043] 虽然本说明书包括各示例,但本发明的范围由所附权利要求书来指示。此外,尽管用对结构特征和/或方法动作专用的语言描述了本说明书,但是所附权利要求书不限于以上所述的特征或动作。相反,上述具体特征和动作是作为本发明的各实施例的示例来公开的。