首页> 中国专利> 搜索结果中列出的内容的异步预测性缓存

搜索结果中列出的内容的异步预测性缓存

摘要

描述的技术减少了请求内容与接收到所请求的内容之间的时间量。在一些实施方式中,客户端提供搜索查询。生成搜索结果页,并且在将搜索结果页返回给客户端之前,搜索结果中的一些或全部被异步地预取和缓存。搜索查询可以包括自定义参数,该自定义参数也包括在预取请求中。可以修改搜索结果页中的网址,以指示是否发起了预取操作。一旦用户激活了搜索结果中的一个,响应web服务器在生成响应的同时使用所缓存的数据。

著录项

说明书

背景技术

软件应用通常调用数十或数百个服务来处理请求。取决于由服务执行的计算类型,可能很多秒或更长时间都不返回响应。可能使用大量的计算资源以大的计算成本重复地执行这些任务。这些问题对于客户端-服务器应用而言尤为严重,这在实际计算时间之上增加了网络延迟。

先前已经利用了技术来减少网络延迟和资源利用,例如客户端侧缓存、静态内容的服务器侧预取(pre-fetching)(例如,爬网和存储网页)等。然而,这些技术并非在所有情况下都适用或有效。例如,客户端侧缓存通常仅在内容已被首次检索之后才被利用,并且因此在内容被首次检索时不会提供优势。类似地,服务器侧预取不适用于实时生成的内容,尤其在内容是用户特定的(user-specific)情况下。因此,由这些先前的方案提供的优势是有限的。

相对于这些和其他技术考虑,提出了本文中进行的公开内容。

发明内容

本文中描述的技术在取回实时搜索结果页面中所列出的内容时减少了延迟。一般而言,本文中公开的技术可以减少请求内容与显示所请求的内容之间的时间量。减少的网络延迟提供了许多技术优势,因为与使用传统技术的类似装置相比,实现所公开技术的计算装置可以更高效地操作。此外,在一些实施方式中,本文中描述的技术通过将内容划分为内容项目并且在多个请求中重新使用用户不可知的(user-agnostic)内容项目,减少了服务器侧处理、存储器、存储装置和网络资源使用。还可以通过所公开技术的实施来实现本文中未具体提及的其他技术优势。

一般而言,本文中公开的技术预取并缓存在搜索结果中被链接的内容。在一些实施方式中,按每个用户的基础来缓存整个内容。在其他实施方式中,内容可以被划分为用户不可知的内容项目,可以将其缓存并且后续用于对来自不同用户的请求进行响应。内容也可以被划分为会过时的数据(即,可能不再完全准确的数据,例如,最近查看的项目的列表)和不会过时的数据(例如,公司标志)。不会过时的数据可以被缓存以备将来使用,而过时的数据可以被丢弃。

在一些实施方式中,从客户端接收搜索查询。在将搜索结果页面返回至客户端之前,通过发送对搜索结果页面中列出的一个或更多个项目的请求来执行预取。可以同步地执行请求,在这种情况下,在返回搜索结果页面之前全部或部分地缓存响应。还可以通过在返回搜索结果页面之前将搜索结果的列表发送至预取引擎来异步地执行请求。在将搜索结果页面发送至客户端并由客户端渲染时,预取引擎然后可以同步地预取和缓存内容。当客户端稍后请求被预取的搜索结果中的一个时(例如,通过用户点击搜索结果页面中的链接之一),响应请求的服务器可以从缓存中检索所请求的内容中的一些或全部。

在一些实施方式中,搜索结果页面在被返回至客户端之前被改变。例如,可以将搜索结果页面中的统一资源定位符(URL)修改成包括指示发起预取操作的查询参数。可以通过服务器使用此查询参数来确定缓存的内容是否可用。类似地,当客户端应用是本地应用(例如,

在一些实施方式中,当发送搜索请求时,客户端可以包括背景(context)数据,例如浏览器类型、屏幕分辨率、以及在请求内容时预取引擎可使用的其他信息。该背景数据可以由预取引擎包括在预取请求中以模仿客户端。

客户端还可以包括搜索请求中的自定义参数。自定义参数可以作为URL中的查询参数而被传送,或者在本地应用的情况下作为请求头部的一部分而被传送。预取引擎可以包括预取请求中的这些参数。在一个实施方式中,自定义参数使得客户端能够从可用组件的列表中选择显示的内容,例如,显示适用于台式机的复杂用户界面还是显示针对移动装置设计的简化用户界面。

通过应用本文中讨论的技术,现实世界的请求延迟可以在时间上从秒(例如,3秒)减少至毫秒(例如,20ms)。然而,基于为特定请求而缓存的内容量、从头开始生成内容所花费的时间、以及检测所缓存的内容并且将其集成到响应中的成本,可以实现或多或少的节省。例如,可以用所缓存的内容来完全满足请求,消除对下游服务的任何调用,从而使延迟最小化。

应当理解,上述主题可以被实现为计算机控制的设备、计算机实现的方法、计算装置或诸如计算机可读介质的制造品。通过阅读以下具体实施方式并且查看相关联的附图,这些特征和各种其他特征将变得明显。

提供本发明内容来用简化形式介绍一系列构思,这些构思将在下面的具体实施方式中进一步描述。本发明内容既不意图识别所要求保护的主题的关键特征或必要特征,本发明内容也不意图限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开内容的任何部分中提到的任何或所有缺点的实现方式。

附图说明

参照附图描述具体实施方式。在附图中,附图标记的最左边的数字标识该附图标记首次出现的附图。不同附图中的相同附图标记指示类似或相同的项目。

图1示出了用于预取和缓存搜索结果页面中所列出的内容的示例性系统。

图2示出了由客户端发送的示例性搜索查询。

图3示出了由搜索引擎返回的示例性搜索结果。

图4示出了由预取引擎发送至服务器的示例性请求。

图5示出了从服务器接收的示例性响应。

图6示出了包括缓存的内容项目的示例性数据缓存。

图7示出了用于请求搜索结果页面中的内容的示例性系统。

图8示出了通过预取和缓存在搜索结果页面中被链接的内容项目来减少响应延迟的示例过程。

图9示出了用于能够执行本文中描述的软件组件的计算机的示例计算机架构的附加细节。

具体实施方式

以下具体实施方式描述了在取回搜索结果页面中所列出的内容时减少延迟的技术。技术优势包括改进的客户端侧性能,例如在点击搜索结果时减少延迟,以及通过减少用户不可知内容项目的冗余生成来提高服务器侧资源利用。例如,用户可以针对智能电话外壳搜索电子商务网站。在将搜索结果页面返回至用户的时候或附近时间,预取并缓存前5个结果。如果在用户点击搜索结果中的一个之前经过了7秒钟,用户将不会经历用于生成预取页面所需的多达7秒钟的时间。还可以通过所公开技术的实施来实现本文中未具体提及的其他技术优势。虽然本文中公开的实施方式主要是在取回搜索结果页面上的内容时减少延迟的背景环境中提出的,但是要理解,可以使用本文中描述的技术在取回其他类型的内容时减少延迟。

现在转向图1,所示出的是用于预取和缓存搜索结果页面中所列出的内容的示例性系统100。如所示,系统100可以包括在客户端计算装置104上执行的客户端应用102(也称为“客户端”)。客户端应用102可以包括网页(web)浏览器、‘本地’应用例如iOS或Android应用等。客户端计算装置104可以是任何计算装置,例如,个人计算机、膝上型计算机、智能电话、平板电脑等。

在一些实施方式中,客户端应用102发起搜索查询106。例如,可以通过用户将文本输入至搜索查询框中来发起搜索查询106。还可以响应于先前提交的搜索的参数的添加、移除或修改来发送搜索查询106。例如,搜索电子商务项目时的参数可以将结果限制为成本低于$100的项目。如果用户改变或移除了此限制,例如将搜索结果限制为成本低于$50的项目,则生成新的搜索查询106。搜索查询也可以预先生成,例如作为付费列表的一部分,该付费列表在被点击时显示搜索结果。这些查询可以被标识符引用,该标识符可以引用存储在服务器上的基于文本的搜索(或其他类型的搜索)。类似地设想其他类型的查询。

可以由搜索引擎110接收搜索查询106。搜索引擎110执行搜索查询106,生成搜索结果109的列表。搜索结果109是满足搜索查询106的文档或其他内容的列表。在一些实施方式中,搜索引擎110根据搜索结果109生成搜索结果页面114。搜索结果页面114可以包括统一资源定位符(URL)的列表,在由客户端渲染时,该统一资源定位符(URL)可以被激活(例如,被点击)以导航至搜索结果中的一个。然后搜索引擎110可以将搜索结果页面114返回至客户端应用102以进行渲染和显示。

在一些实施方式中,预取枚举器(prefetch enumerator)108可以识别要预取的搜索结果109中的一个或更多个。例如,预取枚举器108可以识别除了付费列表之外的前5个搜索结果。这些要预取的项目111可以异步地发送至预取引擎112以进行处理。在将搜索结果页面114传输至客户端应用102之前,预取枚举器108可以异步地发送要预取的项目111。然而,这些操作的特定顺序可以改变(即,可以在发起预取之前返回搜索结果页面114),或者它们可以同时地发生。无论首先执行哪个操作(如果有的话),可以同时执行将搜索结果页面114返回至客户端102和预取。

当在web浏览器中渲染搜索结果页面114时,搜索结果页面114包含URL。当在应用中渲染搜索结果页面114时,搜索结果页面114可以包括页面标识符、数据库主要密钥或识别搜索结果109之一的其它标识符。

预取引擎112可以基于要预取的项目111来发起对内容的一个或更多个请求116。在一些实施方式中,将请求116同步且同时地发送至一个或更多个服务器118(例如,服务器118(A)、118(B)、118(C)……)。

在一些实施方式中,针对限定数目的搜索结果109执行预取。例如,可以针对前五个搜索结果执行预取。然而,可以基于用户点击前面搜索结果中的一个的可能性、预取和缓存的成本以及其他因素来选择任何限定数目的搜索结果。在一些实施方式中,从超链接的选择中省略了包括广告的搜索结果,这是因为点击率(click-through rates)不如普通搜索结果那么高。

随着预取引擎112接收到响应120,响应120被存储在缓存122中。在一些实施方式中,来自服务器118的响应120被整体存储在缓存122中。在其他实施方式中,来自服务器118的响应120被划分成单独存储在缓存122中的内容项目和用户不可知的内容项目。如下面结合图5更详细的讨论的,在处理基于网页(web)的内容时,web响应可以按内容类型划分为例如标记、样式表、代码、图像等。另外地或替选地,可以基于内容项目是用户特定的还是用户不可知的来对其进行划分。以这种方式,可以取回尽可能多的缓存内容并且将其应用于针对给定网页的后续请求。

现在转向图2,所示出的是由客户端102发送的示例性搜索查询106。在一些实施方式中,搜索查询106包括搜索查询字符串202。另外地或替选地,搜索查询106可以包括标识符,该标识符指的是保存的搜索或自动生成的搜索。搜索查询字符串202可以包括查询文本,例如,以查询参数“q=phone+charger”编码的“phone charger”。查询字符串202还可以包括其他用户限定的搜索参数,例如价格限制、日期范围、地理距离等。虽然图2中描绘的示例包括web地址,但是任何类型的互联网或网络地址也同样被考虑在内,其他用于传送搜索查询的技术也是如此。

搜索查询106还包括背景数据204和自定义参数220。背景数据204可以包括通常包括在web请求中的信息,例如用户数据206和客户端应用数据208。在web背景环境中,可以以cookie、会话、表单、HTTP头部或信息被传送至预取引擎112的任何其他手段来传送此数据。当客户端应用102是本地应用时,背景数据可以在头部(例如,请求头部)中传送。用户数据206可以包括登录凭证210和偏好212。登录凭证210可以包括用户名和验证令牌,而偏好212可以包括优选字体、颜色方案、可访问性选项等。

客户端应用数据208可以包括浏览器类型214、屏幕分辨率216、操作系统数据218等。例如,浏览器类型214可以指示源自于在移动装置上操作的CHROME web浏览器的请求。屏幕分辨率216可以指示屏幕方向、分辨率、颜色深度等。操作系统数据218可以指示在客户端计算装置104上执行的操作系统的名称和版本。

在一些实施方式中,自定义参数220允许客户端应用102在搜索查询106中提供参数,该参数将在预取内容时(即,在请求116中)被应用。虽然示例包括应用部分选择标志222和调试标志224,但是任何种类的自定义参数也同样被考虑在内。当服务器118允许客户端从内容部分的列表中选择时,可以使用应用部分选择标志222。调试标志224可以被开发者使用,以在生成响应时应用调试标志。

可以由预取引擎112将自定义参数并入对服务器118的请求116中。以这种方式,客户端应用102可以在搜索查询106中提供通常在请求特定内容(例如,web请求702)时会提供的参数,下面结合图7讨论。例如,一些客户端/服务器应用允许客户端应用102选择要包括在响应中的内容部分。作为特定示例,电子商务应用可以支持若干个不同的支付选项,包括一些仅适用于移动装置的支付选项。因此,如果客户端应用102正在移动装置上执行,则移动网页或移动应用可以在应用部分选择标志222中设置标志,该标志指示移动支付内容项目应当被包括在响应中。类似地,移动网页或移动应用可以省略指示桌面支付内容项目应当被包括在响应中的标志。客户端应用102还可以基于可用的屏幕基板面、用户偏好等来选择包括或排除内容。预取引擎112将包括请求116中的这些自定义参数,使得在预取时相应地生成响应120。可以类似地在调试场景中使用调试标志224,以在预取内容时启用调试和记录设置。

现在转向图3,所示出的是由搜索引擎返回的示例性搜索结果页面114。搜索结果页面114包括搜索文本指示符302,搜索文本指示符302向用户指示搜索的是什么,以及包括搜索结果304、306、308、310、312和314的列表。

在一些实施方式中,预取枚举器108修改与搜索结果304至314相关联的(URL),以指示是否发起了预取操作。例如,URL 304和306已经被修改成将预取参数316和318设置为真(true),指示预取枚举器108对这些URL发起了预取操作。然而,URL 312具有设置为假(false)的预取参数320,指示对该URL未发起预取。在其他实施方式中,不存在预取参数意味没有对URL发起预取。如下面结合图7更详细地讨论的,将此信息嵌入搜索结果指示了是否已经针对给定的搜索结果发起预取。

现在转向图4,所示出的是由预取引擎112发送至服务器118的示例性请求116。在一些实施方式中,请求116包括URL 402,URL 402是搜索结果109中的一个。

请求116可以包括背景数据204和自定义参数220。通过包括背景数据204,请求116模仿在从搜索结果中激活URL时客户端应用102将处于的背景环境。这提供了一致的用户体验,因为预取的内容将基于用户的特定浏览器、地点、语言和其他背景信息而生成。提供自定义参数220,使得服务器118能够执行如同是请求直接来自于客户端的相同的自定义。

现在转向图5,所示出的是从服务器118接收的示例性响应120。在一些实施方式中,响应120可以包括内容整体。另外地或替选地,响应120可以包括内容被划分成的一个或更多个内容项目。这些划分可以是自然发生的,例如标记、样式表和代码之间的划分。例如,在一个实施方式中,响应120被划分为一个或更多个文档,每个文档包含标记506、样式表508、代码510、图像512、组件514、可扩展标记语言(XML)516和JavaScript对象表示法(JSON)518。

另外地或替选地,可以在特定类型的文档内创建这些划分。例如,预取引擎112可以基于划分(DIV)、表(TABLE)、内嵌框架(IFRAME)或其他可重用组件来细分HTML文件。

在一些实施方式中,基于内容是用户特定的还是用户不可知的来对内容进行分类。例如,电子商务网站上的产品列表可以包括标记(HTML)507、样式表509、代码511、图像513、组件515、XML 517、JSON 519以及不是特定于特定用户的其他内容项目504。这些内容项目可以单独地存储,即,不与特定用户相关联地存储,使得来自另外用户的后续web请求可以从所缓存的内容中受益。用户不可知的(即,与用户无关的)内容的示例包括页面标题、图片、项目描述等。然而,用户特定的内容项目502——例如配送信息(其基于用户的位置)、搜索历史等——是按用户存储的或者根本不存储。

现在转向图6,所示出的是包括缓存的内容的示例性数据缓存122。在一些实施方式中,缓存122将所缓存的数据存储在表601中。例如,表601可以包括URL列602、用户ID列604、密钥列606和值列608。这仅仅是缓存的一个示例。其他缓存,例如仅包括索引列和值列的缓存,也同样被考虑在内。例如,索引列可以包括唯一标识符(例如,URL),或URL和用户ID的哈希,或URL、用户ID以及文档的特定部分的标识符(例如,特定的DIV元素)的哈希。

数据缓存122还可以包括没有画出的超时列,该超时列指示缓存的内容何时变为无效。缓存超时可以基于时间,例如自从创建缓存条目以来的分钟数。另外地或替选地,缓存超时可以基于读取操作的数目。在现有缓存条目中存储新值可以重置缓存超时。

可以使用URL列602来将所缓存的内容与所请求的URL进行匹配。在一些实施方式中,代替于存储整个URL,可以存储URL的缩写形式、URL内包含的唯一标识符或URL的单向哈希(one-way hash)。

用户ID列604指示哪个用户请求了存储在此行中的内容。例如,行610和612都指的是同一URL(“wwwebaycom/item?i=3af9dj”),然而行610存储为用户BSmith生成的结果,而行612存储为用户DJones生成的结果。

密钥列606存储用于识别文档内的特定内容项目的密钥。例如,该密钥可以是HTML标签的HTML Id或Name属性,其涉及具有HTML文档的特定元素。如所描绘的,行610和612包含用于同一URL的同一密钥。然而,由于用户ID 604不同,因此值608不同。这可以意味着密钥“f3a443”所涉及的内容(或内容项目)是用户特定的,例如基于用户位置的配送信息。

存储在值列608中的数据可以包括缓存的内容本身,例如内容的序列化版本。另外地或替选地,值列608可以包括对存储在外部数据存储中的内容的指针。

行614具有空白的用户ID列604,指示该值对任何用户有效。

现在转向图7,所示出的是用于请求、取回和渲染在搜索结果页面114中被链接的内容的示例性系统700。在一些实施方式中,在客户端计算装置104上运行的客户端应用102将请求702发送至服务器718。在一些实施方式中,702是由用户点击搜索结果页面114中的URL 703(例如,URL304至314中的一个)引起的。

如上所讨论的,在一些实施方式中,URL 703包括指示是否针对激活的URL发起了预取操作的查询参数。如果确定发起了预取操作,则服务器718向缓存122发送缓存读取请求704,以读取一个或更多个所缓存的内容项目。缓存读取请求704可以包括URL 703。在一些实施方式中,缓存读取请求704还包括用户ID,以检索用户特定信息。在一些实施方式中,缓存122返回与URL 703和/或用户ID相关联的内容和/或一个或更多个内容项目。这些内容中的一个或更多个项目可以并入响应710中,该响应710被返回至客户端应用102。

如果预取参数指示未发起预取(例如,“&prefetch=false”),或者如果未填充缓存(例如,预取花费的时间太长),则web服务器718可以将下游请求706发送至下游服务708以生成响应710。下游服务可以被实现为一个或更多个从属服务。

图7描绘了依赖性等级中的下游服务708(A)至708(G)(例如,下游服务708(A)依赖于(B)、(C)和(D),(B)依赖于(E)和(F),(D)依赖于(G))。虽然描绘了少量的下游服务,但是现实世界场景中并入了数百个下游服务。

在一些实施方式中,客户端应用102可以接收搜索结果页面114,该搜索结果页面114包括被预取枚举器108修改以指示发起了预取操作的URL。由于用户点击搜索结果中的特定URL平均花费一秒钟,因此存在着可用于客户端应用102下载所缓存的内容中的一些或全部内容的时间。例如,客户端应用102可以在用户点击链接之前确定该链接是否包括指示对该链接发起了预取操作的查询参数(例如,查询参数“prefetch=true”是否包含在URL中)。如果确定针对该链接发起了预取操作,则可以发送对链接的内容的请求,潜在地利用存储在缓存122中的任何预取内容。这还可以通过在接收到搜索结果之后(或者至少在接收到实际用户输入之前)立即发起请求来减少延迟。在一些实施方式中,如果响应是在用户点击对应链接之前由客户端接收的,则可以几乎立即显示所请求的内容。

图8示出了用于减少客户端-服务器软件应用102的延迟的示例过程800。该过程被示出为逻辑流程图中的框的集合,其表示可以在硬件、软件或其组合中实现的操作的序列。在软件的背景环境下,块表示计算机可执行指令,计算机可执行指令在由一个或更多个处理器执行时,执行所记载的操作。通常,计算机可执行指令包括执行或实现特定功能的例程、程序、对象、组件、数据结构等。描述操作的顺序不意图被解释为限制,并且可以以任何顺序和/或并行地组合任意数目的所描述的框来实现该过程。贯穿本公开内容描述的其他过程将被相应地解释。

图8示出了通过预取和缓存在搜索结果页面中被链接的内容项目来减少响应延迟的示例过程800。在框801处,从客户端应用102接收搜索查询106。如本文中讨论的,搜索查询106可以包括查询文本202、客户端背景数据204和自定义参数220。

在框803处,识别多个URL 109。在一些实施方式中,URL 109由处理搜索查询106的搜索引擎110识别。然而,可以通过将SQL查询提交至SQL数据库或将文件查询提交至文件系统或任何其他类型的搜索来识别多个URL 109。

在框805处,在一个实施方式中,在客户端102接收到基于所识别的URL 109的搜索结果页面114之前,发起对所识别的URL 109中的一些或全部URL的异步web请求116。在一些实施方式中,搜索查询106中提供的客户端背景数据204和自定义参数220包括在异步web请求116中,允许客户端102将参数220和客户端背景204提供至服务器118。这确保了预取内容120与用户无需预取直接查看的内容之间存在保真度。此外,通过将参数220包括在异步web请求116中,预取引擎使得客户端102能够自定义预取内容120。

在一些实施方式中,枚举引擎108修改搜索结果页面114以指示哪些内容已经发起了异步web请求。在一些实施方式中,用查询参数316,例如“&prefetch=true”修改已经(或将要)预取的URL。

在框807处,响应于异步web请求116而接收内容120。如以上结合图5所讨论的,内容120可以包括作为整体的一条内容,或者可以划分为内容项目。可以基于文档类型、内容项目是用户特定的还是用户不可知的、内容项目是否变得过时或任何其他指标来区分内容项目。

在一些实施方式中,如以上结合图6所讨论的,接收到的内容120被缓存在例如缓存122中。

在框809处,从客户端102接收对搜索结果页面114中所包含的多个URL 703中的一个的请求702。

在框811处,生成对在框809处接收到的请求702的响应710。在一些实施方式中,如果所请求的URL 703指示发起了预取操作,则查询缓存122以检索任何内容项目或整条内容,以用于包括在响应710中。然后可以由一个或更多个下游服务708生成未被缓存的所请求内容的部分,如以上结合图7所讨论的。在一些实施方式中,然后将响应710发送至客户端102。

图9示出了能够提供本文描述的功能(诸如,例如参照预取引擎112描述的)或者本文描述的任何程序组件的计算机的示例计算机架构的另外的细节。因此,图9中示出的计算机架构900示出了用于以下的架构:服务器计算机、或服务器计算机的网络、或适用于实现本文中描述的功能的任何其他类型的计算装置。可以利用计算机架构900来执行本文中提出的软件组件的任何方面。

图9中示出的计算机架构900包括:中央处理单元902(“CPU”);系统存储器904,其包括随机存取存储器906(“RAM”)和只读存储器(“ROM”)908;以及系统总线910,其将存储器904耦接至CPU 902。在ROM 908中存储有基本输入/输出系统,该基本输入/输出系统包含有助于在计算机架构900内的元件之间(诸如在启动期间)传送信息的基本例程。计算机架构900还包括用于存储操作系统914、其他数据和一个或更多个应用程序的大容量存储装置912。大容量存储装置912还可以包括预取引擎112。

大容量存储装置912通过连接至总线910的大容量存储控制器(未示出)连接至CPU902。大容量存储装置912及其相关联的计算机可读介质为计算机架构900提供非易失性存储。尽管本文中包含的计算机可读介质的描述是指大容量存储装置,例如固态驱动器、硬盘或CD-ROM驱动器,但是本领域技术人员应当理解,计算机可读介质可以是能够被计算机架构900访问的任何可用的计算机存储介质或通信介质。

通信介质包括计算机可读指令、数据结构、程序模块、或调制数据信号(诸如载波)或其他传输机制中的其他数据,并且包括任何传送介质。术语“调制数据信号”是指以下述方式改变或设置其一个或更多个特性的信号:将信息编码在该信号中的方式。通过示例而非限制性的方式,通信介质包括有线介质(例如有线网络或直接有线连接)以及无线介质(例如声学、RF、红外和其他无线介质)。以上任何介质的组合也应当包括在计算机可读介质的范围内。

通过示例而非限制性的方式,计算机存储介质可以包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储装置、或者可以用于存储所期望的信息并且可以被计算机架构900访问的任何其他介质。就权利要求目的而言,短语“计算机存储介质”、“计算机可读存储介质”及其变型本身不包括波、信号以及/或者其他瞬态和/或无形通信介质。

根据各种技术,计算机架构900可以使用通过网络950和/或另一网络(未示出)到远程计算机的逻辑连接来在联网环境下操作。计算机架构900可以通过连接至总线910的网络接口单元916连接至网络950。应当理解,网络接口单元916也可以用于连接至其他类型的网络和远程计算机系统。计算机架构900还可以包括输入/输出控制器918,用于接收和处理来自许多其他装置包括键盘、鼠标或电子笔(图9中未示出)的输入。类似地,输入/输出控制器918可以向显示屏、打印机或其他类型的输出装置(在图9中也未示出)提供输出。还应当理解,经由通过网络接口单元916到网络950的连接,计算架构可以使得预取引擎112的产品能够被分发。

应当理解,本文中描述的软件组件可以在被加载至CPU 902中并被执行时,将CPU902和整个计算机架构900从通用计算系统转换为被定制成促进本文中提出的功能的专用计算系统。CPU 902可以由任意数目的晶体管或其他分立电路元件构造,这些元件可以单独地或共同地假定任意数目的状态。更具体地,响应于包含在本文中公开的软件模块内的可执行指令,CPU 902可以作为有限状态机进行操作。这些计算机可执行指令可以通过指定CPU 902如何在状态之间转变来对CPU 902进行转换,从而对构成CPU 902的晶体管或其他分立硬件元件进行转换。

对本文中呈现的软件模块进行编码也可以对本文中提出的的计算机可读介质的物理结构进行转换。在此描述的不同实现方式中,物理结构的特定转换可以取决于各种因素。这样的因素的示例可以包括但不限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主要存储装置还是被表征为次要存储装置等。例如,如果计算机可读介质被实施为基于半导体的存储器,则可以通过转换半导体存储器的物理状态而在计算机可读介质上对本文中公开的软件进行编码。例如,软件可以转换晶体管、电容器或构成半导体存储器的其他分立电路元件的状态。软件还可以转换这种部件的物理状态,以在其上存储数据。

作为另一示例,可以使用磁性或光学技术来实现本文中公开的计算机可读介质。在这种实现方式中,当本文中提出的软件被编码在磁性或光学介质中时,该软件可以转换该磁性或光学介质的物理状态。这些转换可以包括改变给定磁性介质内的特定位置的磁性特性。这些转换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。利用仅为了方便本讨论而提供的前述示例,可以在不脱离本说明书的范围和精神的情况下进行物理介质的其他转换。

鉴于以上内容,应当理解,在计算机架构900中发生了许多类型的物理转换以便存储并执行本文中呈现的软件组件。还应当理解,计算机架构900可以包括其他类型的计算装置,包括手持计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算装置。还考虑到计算机架构900可以不包括图9中示出的全部部件,计算机架构900可以包括图9中未明确示出的其他部件,或者可以使用与图9中示出的架构完全不同的架构。

最后,尽管已经以特定于结构特征和/或方法动作的语言描述了各种技术,但是要理解,所附表示中限定的主题不必限于所描述的特定特征或动作。相反,这些特定特征和动作是作为实现所要求保护主题的示例形式来公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号