用于高效传输数据的通用格式转让专利

申请号 : CN200880125737.9

文献号 : CN101925895B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 萨格尼克·南迪戴维·怀特蔡超文熙硕西蒙·王马修·琼斯阿肖克·巴布·阿马拉里克·穆伊

申请人 : 谷歌公司

摘要 :

一种用于传输、接收和存储字符串中的多元素数据的方法、系统和装置,包括计算机程序产品。多个数据元素在划界的字符串中进行发送并且具有用来在接收计算机提取和存储数据元素的相应项目标识符、数据类型和索引号。

权利要求 :

1.一种用于处理字符串的系统,所述字符串包括网页跟踪数据的多个元素,所述系统包括:用于从客户端设备接收字符串的装置;

用于扫描所述串以定位全局参数的装置;

用于读取在所述串中跟随在所述全局参数之后的第一项目标识符的装置;

用于读取在所述串中跟随在所述第一项目标识符之后的两个或多个划界的数据元素的第一群组的装置,所述第一群组中的所述数据元素具有相应的索引号;

用于将所述第一群组中的所述数据元素与所述第一项目标识符和相应的索引值相关联地存储的装置;

用于读取在所述串中跟随在所述第一项目标识符之后的第二项目标识符的装置;

用于读取在所述串中跟随在所述第二项目标识符之后的两个或更多个划界的数据元素的第二群组的装置,所述第二群组中的所述数据元素具有相应的索引号;以及用于将所述第二群组中的所述数据元素与所述第二项目标识符和相应的索引值相关联地存储的装置。

2.如权利要求1所述的系统,其中所述串作为在HTTP请求中的URL的后缀被接收。

3.如权利要求1所述的系统,其中所述第一和第二群组中的所述数据元素包括web分析跟踪数据。

4.如权利要求3所述的系统,其中所述web分析跟踪数据包括对应于用户与网页的交互的数据。

5.如权利要求1所述的系统,其中所述第一和第二群组中的所述数据元素由不要求在URL中使用换码序列的字符进行划界。

6.如权利要求1所述的系统,其中所述数据元素的第一和第二群组由星号进行划界。

7.如权利要求1所述的系统,其中所述两个或更多个划界的数据元素的第一群组包括包围在第一组圆括号内的键数据元素的子群组以及包围在第二组圆括号内的值数据元素的子群组。

8.如权利要求7所述的系统,其中所述键数据元素的子群组的数据类型和所述值数据元素的子群组的数据类型通过键接着值的数据类型枚举顺序指示。

9.如权利要求7所述的系统,其中所述键数据元素的子群组和所述值数据元素的子群组中的至少一个的数据类型通过紧接在包围该子群组的所述组圆括号之前的数据类型标识符明确指示。

10.如权利要求7所述的系统,其中数据元素的相应的索引号在所述键数据元素的子群组中是唯一的,并且在所述值数据元素的子群组中是唯一的。

11.如权利要求10所述的系统,其中除非通过后跟感叹号的索引号另外明确指示,否则所述键数据元素的子群组的索引号以初始值开始并且对于每个接续的数据元素加一。

12.如权利要求1所述的系统,进一步包括:

用于向所述客户端设备发送超文本标记语言的装置,所述超文本标记语言包括一个或多个脚本,所述一个或多个脚本可操作地指示客户端设备的web浏览器向所述一个或多个计算机发送图像请求,所述图像请求包括包含所述字符串的后缀。

13.一种用于处理字符串的方法,所述字符串包括网页跟踪数据的多个元素,所述方法包括:从客户端设备接收字符串;

扫描所述串以定位全局参数;

读取在所述串中跟随在所述全局参数之后的第一项目标识符;

读取在所述串中跟随在所述第一项目标识符之后的两个或更多个划界的数据元素的第一群组,所述第一群组中的所述数据元素具有相应的索引号;

将所述第一群组中的所述数据元素与所述第一项目标识符和相应的索引值相关联地存储;

读取在所述串中跟随在所述第一项目标识符之后的第二项目标识符;

读取在所述串中跟随在所述第二项目标识符之后的两个或更多个划界的数据元素的第二群组,所述第二群组中的所述数据元素具有相应的索引号;以及将所述第二群组中的所述数据元素与所述第二项目标识符和相应的索引值相关联地存储。

14.如权利要求13所述的方法,其中所述串作为在HTTP请求中的URL的后缀被接收。

15.如权利要求13所述的方法,其中所述第一和第二群组中的所述数据元素包括web分析跟踪数据。

16.如权利要求15所述的方法,其中所述web分析跟踪数据包括对应于用户与网页的交互的数据。

17.如权利要求13所述的方法,其中所述第一和第二群组中的所述数据元素由不要求在URL中使用换码序列的字符进行划界。

18.如权利要求13所述的方法,其中所述第一和第二群组中的所述数据元素由星号进行划界。

19.如权利要求13所述的方法,其中所述两个或更多个划界的数据元素的第一群组包括包围在第一组圆括号内的键数据元素的子群组以及包围在第二组圆括号内的值数据元素的子群组。

20.如权利要求19所述的方法,其中所述键数据元素的子群组的数据类型和所述值数据元素的子群组的数据类型通过键接着值的数据类型枚举顺序指示。

21.如权利要求19所述的方法,其中所述键数据元素的子群组和所述值数据元素的子群组中的至少一个的数据类型通过紧接在包围该子群组的所述组圆括号之前的数据类型标识符明确指示。

22.如权利要求19所述的方法,其中数据元素的相应的索引号在所述键数据元素的子群组中是唯一的,并且在所述值数据元素的子群组中是唯一的。

23.如权利要求22所述的方法,其中除非通过后跟感叹号的索引号另外明确指示,否则所述键数据元素的子群组的索引号以初始值开始并且对于每个接续的数据元素加一。

说明书 :

用于高效传输数据的通用格式

[0001] 优先权声明和相关专利申请
[0002] 本文档要求于2007年12月13日提交的题为“GENERIC FORMATFOR EFFICIENT TRANSFER OF DATA”的美国临时专利申请序列号61/013,518的优先权,其全文通过参考结合于此作为本文档公开的一部分。

技术领域

[0003] 本说明书涉及数据传输格式。

背景技术

[0004] 通过网络互连的计算机能够使用各种协议进行通信。给定协议能够支持任意数目的数据编码格式。例如,可以使用超文本传输协议(HTTP)来将信息从一个计算机传送到另一个计算机。为了将信息从传送计算机成功传输到接收计算机,建立了编码格式以使得由发送方编码的数据能够被接收方解码。
[0005] 为了通过网络传送多个数据元素以便在计算机处进行接收,接收计算机和传送计算机使用相同的数据编码格式以使得所传送的数据能够被接收方成功解析和解释。能够建立任意数量的格式,但是为了限制传输给定量的数据所需的带宽,需要限制所选择格式引入的开销量。为了传输多元素字符数据(例如,ASCII文本表示的多个变量),传输格式通常利用一个或多个分隔符字符来分隔各个变量元素。接收计算机处的解析程序接着能够基于所选择的数据编码格式提取数据并且将其分配给正确的变量。
[0006] 理想地,给定的编码格式是灵活的,以使得例如包括一个或多个新变量的变化能够由编码体系进行处理而无需对基础代码进行实质性(或者任何)改变。因此,谨慎地为给定编码方案选择一个或多个分隔符和基本格式能够提高数据编码格式的效率和有用性。

发明内容

[0007] 一般地,本说明书中描述的主题的一个方面能够以方法来实现,所述方法包括动作:接收字符串;扫描所述串以定位全局参数;读取在所述串中跟随在所述全局参数之后的第一项目(project)标识符;读取在所述串中跟随在所述第一项目标识符之后的两个或更多个划界(delimited)的数据元素的第一群组,所述数据元素具有相应的索引号;将所述数据元素与所述第一项目标识符和相应的索引值相关联地存储;读取在所述串中跟随在所述第一项目标识符之后的第二项目标识符;读取在所述串中跟随在所述第二项目标识符之后的两个或多个划界的数据元素的第二群组,所述数据元素具有相应的索引号;以及将所述数据元素与所述第二项目标识符和相应的索引值相关联地存储。
[0008] 在特定实施方式中,所述串作为HTTP请求中的URL的后缀被接收。所述串的数据元素可以包括web分析跟踪数据,并且由不要求在URL中使用换码序列(escape sequence)的字符进行划界。例如,所述数据元素能够由星号进行划界。所述数据元素的数据类型能够由键接着值的数据类型枚举顺序隐含指示,和/或由紧接在包围子群组的一组圆括号之前的数据类型标识符明确指示。除非由后跟感叹号的索引数另外明确指示,否则数据元素的子群组的索引号可以以初始值开始并且对于每个接续(proceeding)的数据元素加一。
[0009] 其它实施例包括相应的系统、装置和计算机程序产品。
[0010] 能够实施本说明书中描述的主题的特定实施例来实现以下优势中的一个或多个。数据传输格式是灵活的,因为数据元素能够被在需要最小变化或者无需对解析和存储体系的计算机程序代码进行变化的情况下添加。数据传输格式是紧凑的,以使得传输开销最小化并且使用该格式提高了数据传输操作的效率。
[0011] 在以下描述和附图中给出了本说明书中描述的主题的一个或多个实施例的细节。根据描述、附图和权利要求,所述主题的其它特征、方面和优势将是显而易见的。

附图说明

[0012] 图1是用于通过网络传输格式化数据的示例性环境的框图。
[0013] 图2是用于在两个或更多计算机之间传输数据的示例性格式。
[0014] 图3是与web分析系统一起使用的用于使用示例性数据格式的示例性环境。
[0015] 图4是用于从格式化数据提取用于多个项目ID的数据元素的示例性解析器的框图。
[0016] 图5A和5B共同是与web分析系统一起使用的用于解析附加到URL的数据的示例性方法的流程图。
[0017] 各附图中相同的附图标记和标号表示相同的要素。

具体实施方式

[0018] 图1是用于通过网络106传输格式化数据104的示例性环境100的框图。发送计算机102通过网络106向接收计算机108发送格式化数据104。接收计算机108的解析器110读取格式化数据104以从格式化数据104中提取一个或多个组分元素以便存储在数据存储112中。例如,所述解析器能够如通过用来传输数据的格式指引来从格式化数据中提取一个或多个串和/或整数以存储到与程序114一起使用的一个或多个所定义变量中。
[0019] 图2是用于在两个或更多计算机之间传输数据的示例性格式200。例如,示例性数据格式200能够被用来使用一系列字符传输属于任意数量的数据类型的任意数量的数据元素。在一些实施方式中,所传输的字符为ASCII字符。示例性数据格式200能够被用来发送图1的格式化数据104。所示出的数据格式200包括属于两种数据类型的数据元素:键(key)和值(value)。在示例性数据格式200中,键数据类型被用来传输字母字符的串。
值数据类型被用来传输数字字符。虽然所示出的示例性格式仅包括两种数据类型,但是所述格式能够支持额外的数据类型。例如,能够使用所述示例性格式传输双精度(对于浮点数而言)数据类型。
[0020] 所述示例性格式以全局参数202开始。所示的全局参数为“utme”,但是全局参数可以是任意字符或字符串,所述字符或字符串在数据串中的出现在一系列所接收字符中是唯一的从而其被识别为与所述示例性格式相对应的数据传输的开始。例如解析器110的遇到后面跟有等号(“=”)的全局参数的串解析器能够被编程为根据所述示例性格式识别数据传输的开始并且相应对跟随的信息进行解析。
[0021] 示例性数据格式200包括项目标识符、数据类型标识符和数据群组。项目标识符(项目ID)204被用来表示后续数据属于指定的项目。例如,可以将多个项目ID分配给各个项目。例如,在解析程序接收的对给定项目接收的键和值与该项目相关联地进行存储以将所述数据与其它项目的数据进行区分,以避免两个或更多项目之间的变量冲突。在示例性格式200中,跟随在项目ID 204之后的数据能够被解析器认为是与该项目相对应直至遇到另一个项目ID。在一些实施方式中,要求初始的项目ID跟随在全局参数和等号之后。读取使用所述示例性格式发送的数据的解析器能够被编程为将位于圆括号“()”之外的任意数字字符看作是项目ID。
[0022] 圆括号“()”在该示例性格式中被用来包围数据群组。在圆括号内数据元素对应于所述格式所支持的数据类型中的一个。所支持的数据类型能够被给定与解析器在所接收数据中没有明确指示的情况下将对在所述格式中所遇到的数据元素分配的顺序相对应的枚举顺序。在示例性格式200中,所述枚举顺序可以是键接着值,意味着除非在数据中明确指示,否则数据元素的第一群组将被兼容的解析器认为是键群组,而数据的下一个群组将被假设为值群组。
[0023] 示例性格式200不包括数据元素的第一群组对应于任意给定数据类型的明确指示。因此,根据键接着值的枚举顺序,第一个遇到的数据元素的群组将被认为是键群组。第一数据群组中的键数据206包括以星号(*)划界的多个元素。除非在数据中明确指示,否则第一个遇到的键元素被认为是属于初始索引值。在群组中接下来遇到的键元素被认为是属于先前的索引值加1。明确索引在所述示例性格式中被指定为具有感叹号“!”。一旦遇到感叹号,兼容的解析器就会把跟随在所述感叹号之后的数据元素分配给由所述感叹号之前的数字字符所指示的索引。在示例性格式200中,键数据206包括之前为“10”的感叹号以指示跟随在所述感叹号之后的键元素应当被分配给键索引10。
[0024] 根据所述枚举顺序,跟随在键数据群组106之后的下一个数据群组为值数据群组。值数据108包括以星号划界的三个数据元素。兼容的解析器以与键元素类似的方式对值数据元素进行处理。也就是说,除非在数据中明确指示,否则第一元素被分配给第一索引,而后续的元素被分配给先前元素的索引加1。使用感叹号对索引进行明确指示。值数据208包括之前为“5”的感叹号。跟随在所述感叹号之后的值元素由此被分配给值索引5。
[0025] 值数据208之后为项目ID 210。项目ID 210为“2”指示跟随在项目ID 210之后的方括号所包围的数据群组要被分配给具有项目ID“2”的项目。数据类型ID 212为“v”明确指示下一个数据群组为值数据群组。数据类型ID 212之后为值数据214。值数据214中的第一个数据元素被明确分配给索引值12,而后续的元素则被分配给先前元素的索引加1。
[0026] 与许多传输格式不同,示例性数据格式200不包括变量名(例如,后跟相应的值的变量名)。与包括变量名的格式相比,这明显降低了数据格式200所固有的数据传输开销。示例性数据格式200也不使用格式化字符,其需要在结合URL使用时(例如,连接到URL末尾)使用换码序列。要求URL换码的字符在结合URL使用时导致大小损失。例如,如果要求URL换码,则需要三个字符换码代码来表示单个字符。示例性数据格式200的分隔符不要求使用换码代码,由此提高了格式的效率。
[0027] 在一些实施方式中,数据格式200被用来向web分析系统传输数据以记录一个或多个网页参数,例如访问者与一个或多个网页的交互。
[0028] 图3是与web分析系统310一起使用的用于使用示例性数据格式200的示例性环境300。计算机302的用户能够将计算机302上的web浏览器程序指向web服务器304所服务的网站。web服务器304能够通过向计算机302发送一个或多个网页以向用户显示来进行响应,其中计算机302用作用户与一个或多个网页进行交互的用户接口设备。所传输的网页的代码可以包括一个或多个脚本,根据用户与网页的交互,所述脚本指示计算机302的web浏览器向web分析系统310发送格式化数据308。例如,由web浏览器304所服务的网页的HTML可以包括嵌入式JavaScript,其使得根据示例性数据格式200格式化的数据通过网络306被传输到web分析系统310。在一些实施方式中,一个或多个URL请求与根据示例性数据格式200格式化的后缀一起从计算机302发送到web分析系统。例如,URL请求可以被附加有问号“?”,其后跟随有根据数据格式200格式化的字符串。
[0029] web分析系统的解析器312能够解析所述URL和所附加的信息。所述解析器提取在所附加的串中包括的键和值,并且将所提取的键和值与其相应的项目ID相关联存储。在一些实施方式中,所接收的数据与命中(hit)标识符(命中ID)相关联存储作为唯一键,其中格式化数据的每次接收被认为是一次命中。在一些实施方式中,所接收的数据与访问标识符(访问ID,也称作会话标识符或会话ID)相关联存储。例如,如果所有命中都对应于用户与满足预定条件的网站的交互,则命中的集合可归因于用户对网站的访问。例如,所述条件可以包括命中全部对应于在其中用户未将web浏览器指向不同网站的时段期间发生的用户交互,和/或对应于其中用户未退出所述网站(例如,如果网站要求用户登录和密码)的时段期间发生的用户交互。另一个示例性条件可以是被分配给给定会话的所有命中都在自命中的最后接收起过去阈值延迟之前被接收。
[0030] 在从数据格式提取数据之后,所提取的数据能够存储在数据存储314中,其中所提取的数据元素根据数据格式的规则进行存储。也就是说,键和值与其项目ID、数据类型ID和索引号相关联存储,如通过它们在格式化串中的放置所指示的。一个或多个项目316能够访问所存储的数据,以例如提供web分析报告信息。
[0031] 图4是用于从格式化数据404提取用于多个项目ID的数据元素的示例性解析器402的框图。所述解析器接收格式化数据404,并且提取所述格式化数据的数据元素以例如使用所提取的项目数据406、408和410生成一个或多个记录。如以上所描述的,所述数据元素也可以与会话ID和/或命中ID相关联存储。
[0032] 在一些实施方式中,项目ID对应于使用web分析系统的项目和/或组以跟踪用户与一个或多个网页的交互。所述web分析系统能够使用分析系统将各个项目ID分配给每个项目和/或组。所述系统将数据作为通用键和值进行存储。例如,为了访问数据,给定组保持对其变量映射的跟踪。也就是说,所述组负责了解存储在其项目的键和值索引中的数据表示什么。这是由在数据格式200中缺少与数据元素一起传输的变量名而导致的。如以上所描述的,在所述数据格式中缺少变量名允许所述格式保持紧凑和高效。该通用数据元素的额外好处在于在需要解析或存储体系以很少或没有变化(例如,代码变化或重新编译)的情况下给定团队能够向其项目添加新的变量和/或修改其变量映射(也称作计划)。
[0033] 数据格式200提供了用于从用户web浏览器传送命中以用于任意数量的分析跟踪项目的标准格式。在一些实施方式中,存储用于多个项目的数据元素的web分析系统支持跨项目报告。例如,如果一个项目组对与用户交互类型和/或网页参数相关的数据感兴趣,所述数据还没有被其组所跟踪但是正被使用web分析系统的另一团队跟踪以跟踪命中,则第一项目组能够构建数据查询以连同对其它项目跟踪的数据相结合地报告其自己跟踪的数据。
[0034] 图5A和5B共同是与web分析系统一起使用的用于解析附加到URL的数据的示例性方法500的流程图。该方法关于实施所述方法的系统进行描述。接收HTTP请求(502)。所接收的HTTP请求可以包括例如具有以与示例性格式200相一致的格式的附加数据的URL。在一些实施方式中,所述HTTP请求能够由嵌入在派发给用户计算机的web浏览器的网页中的客户端侧JavaScript发起。用户使用web浏览器的控制(例如,在页面上的图像或区域上移动鼠标指针,或者在网页的一个或多个区域上进行点击)与网页的交互能够使得嵌入式JavaScript从web分析系统的web服务器发起HTTP请求。在一些实施方式中,所述JavaScript请求具有最小文件大小的图像。例如,所述HTTP请求可以是对于具有一像素乘一像素大小的GIF格式图像的请求。
[0035] 解析器读取附加到所述HTTP请求的数据(504)。所述数据可以是例如形成跟随在URL之后的字符串的ASCII格式的字符。所述解析器读取所附加的数据直至遇到全局参数(506)。所述解析器提取跟随在所述全局参数和等号之后的第一数字字符串。所述系统使用所述数字字符作为当前项目ID(508)。检查跟随在所述项目ID之后的字符以确定该字符是否是明确的数据类型标识符(510)。如果发现了明确的数据类型标识符,则当前数据类型被设置为所指示的数据类型(512)。如果没有发现明确的数据类型标识符,则根据枚举规则设置当前数据类型(514),所述枚举规则例如可以基于数据类型在串中出现的顺序,诸如以上所描述的枚举顺序。
[0036] 所述系统进行至读取左(open)圆括号字符之后的字符串直至遇到星号或右(close)圆括号(516)。所述系统检查所读取的字符以确定它们是否包括感叹号(518)。如果所述字符包括感叹号,则系统读取感叹号之前的数字串并且将该数字设置为当前索引(520)。如果所述字符不包括感叹号,则根据索引递增规则设置当前索引(即,索引被设置为初始索引号并且对其后的每个数据元素递增)(522)。所述方法进行至图5B。所述系统将在星号之前的字符串中读取的数据元素分配给当前项目、数据类型和索引(528)。
[0037] 如果没有遇到右圆括号字符(530),所述方法循环回到图5A的534以读取下一个字符串直至星号或右圆括号。如果遇到了右圆括号,则当前的数据元素群组处于末尾并且系统检查是否还存在更多字符有待处理(534)。如果再没有字符,则方法结束(536)。如果存在额外的字符,则系统检查下一个字符以确定该字符是否为项目ID(538)。如果所述字符为项目ID,则当前项目ID被设置为该字符所指示的项目ID(540)。所述系统进行至确定下一个字符是否为数据类型标识符(542)。如果下一个字符是数据类型标识符,则当前数据类型被设置为该标识符所明确指示的数据类型(544)。如果下一个字符不是数据类型标识符,则系统根据数据类型枚举规则设置当前数据类型(546),并且所述系统进行至返回图5A的534以读取下一个数据元素。
[0038] 本说明书中所描述的主题和功能操作的实施例能够以数字电子电路来实现,或者以计算机软件、固件或硬件包括本说明书所公开的结构及其结构等同物来实现,或者以它们中一个或多个的组合来实现。本说明书中所描述的主题的实施例能够被实现为一个或多个计算机程序产品,即编码在有形程序载体上用于由数据处理装置执行或者控制其操作的计算机程序指令的一个或多个模块。所述有形程序载体可以是计算机可读介质。所述计算机可读介质可以是机器可读的存储设备、机器可读的存储基片、存储器设备、实现机器可读传播信号的物质成分,或者它们中一个或多个的组合。
[0039] 术语“数据处理装置”涵盖用于处理数据的所有设备、装置和机器,例如包括可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,所述装置可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中一个或多个的组合的代码。
[0040] 计算机程序(也被称作程序、软件、软件应用、脚本或代码)可以以任意形式的编程语言来编写,包括汇编或解释语言,或者说明或过程语言,并且其可以任意形式部署,包括作为独立程序或者作为适于在计算环境中使用的模块、组件、子程序或其它单元。计算机程序并不必对应于文件系统中的文件。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分之中,存储在专用于所讨论程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可被部署为在一个计算机或位于一个地点或者跨多个地点分布并且通过通信网络进行互连的多个计算机上执行。
[0041] 本说明书中所描述的处理和逻辑流程能够由一个或多个可编程处理器来执行,所述可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述处理和逻辑流程还可以由特定目的的逻辑电路来执行,并且装置也可以被实现为特定目的的逻辑电路,所述特定目的的逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
[0042] 例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者其二者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据的一个或多个大型存储设备,或者可操作地耦合到所述一个或多个大型存储设备以从其接收数据或者向其传送数据或两者,所述大型存储设备例如磁盘、磁光盘或光盘。然而,计算机并不需要具有这样的设备。此外,计算机能够嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器,仅举出几个示例。
[0043] 适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够被补充以专用逻辑电路或者集成于其中。
[0044] 为了提供与用户的交互,本说明书中描述的主题的实施例能够在具有用于向用户显示信息的显示设备以及用户能够通过其向计算机提供输入的键盘和指示设备的计算机上实现,所述显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器,所述指示设备例如鼠标或轨迹球。也能够使用其它类型的设备类提供与用户的交互;例如,向用户提供的反馈可以是任意形式的感觉反馈,例如视觉反馈、听觉反馈或者触觉反馈;并且来自用户的输入能够以任意形式来接收,包括声音、语音或触觉输入。
[0045] 虽然本说明书包含了许多特定的实施方式细节,但是这些不应当被理解为对任意发明或所要求保护的范围的限制,相反应当理解为特定发明的特定实施例的具体特征的描述。本说明书中在分立实施例的背景下描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的背景下描述的各个特征也能够分立地在多个实施例或者任意适当子组合中实现。此外,虽然特征在以上可以被描述为以某些组合发生作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合排除,并且所要求的组合可以指向子组合或者子组合的变化形式。
[0046] 类似地,虽然在图中以特定顺序描绘了操作,但是这不应当理解为要求这样的操作以所示的特定顺序或者连续顺序来执行,或者要执行所有的所图示操作才能得到所需的结果。在某些情况下,多任务和并行处理可能是有益的。此外,以上在实施例中所描述的各个系统组件的划分不应当被理解为要求在所有实施例中进行这样的划分,并且其应当被理解为所描述的程序组件和系统通常能够在单个软件产品中集成在一起或者打包到多个软件产品中。
[0047] 已经对本说明书中所描述的主题的特定实施例进行了描述。其它实施例在权利要求的范围之内。例如,权利要求中所记载的动作能够以不同顺序来执行并且仍然得到所需的结果。例如,附图中所描绘的处理并不必须要求所示的特定顺序或者连续顺序才能得到所需的结果。在某些实施方式中,多任务和并行处理可能是有益的。