存储和检索内容的多种版本的多层高速缓冲存储机制的制作方法

文档序号:6403719阅读:160来源:国知局
专利名称:存储和检索内容的多种版本的多层高速缓冲存储机制的制作方法
技术领域
本发明一般涉及电子实体的存储和检索。本发明特别涉及用来存储和检索对象的多层高速缓冲存储器的使用,其中各组对象可相互关联,如在网络变换代理上存储多种版本的网络内容。
背景技术
有多种方法用于存储数据。一种这样的方法是通过使用结合阵列。在结合阵列里,将要存储的对象与一个关键字相关。将对象存在一个特殊的位置,该位置由该相关关键字来识别。当想要检索对象时,只需要查找该关键字,因为该关键字识别该对象的位置。
结合阵列有各种各样的实现方式。例如,数据库、文件系统和高速缓冲存储器都是结合阵列。在这里特别对高速缓冲存储器感兴趣。
高速缓冲存储器是提供数据的本地存储的结合阵列。这里所用的“本地”有点相对性。在将高速缓冲存储器连接到微处理器以允许它们工作得更快和更有效率的情形下,“本地”可能意味着高速缓冲存储器包括在与微处理器相同的芯片上制造的存储器。然而,在将高速缓冲存储器用于网络代理的情形下,“本地”可能意味着高速缓冲存储器在代理机箱内的磁盘驱动器中实现。
高速缓冲存储代理使用与Web页面相关的URL作为各自的关键字存储和检索Web内容。然而,在这种情况下出现的问题之一是可能有大量不同的Web页面具有相同的URL。例如,Web页面的内容可能近似相同,但它们可能各自适用于在不同类型的装置(例如,桌上型电脑或能够上网的蜂窝电话)上观看。为了唯一识别必须检索的Web页面,这个关键字因此需要包括额外的信息。关键字可因此结合Web页面的其它特征,诸如Cookies或设计Web页面的浏览器的类型。
在现有技术的代理中实现的高速缓冲存储是典型的平面形。换句话说,存在带有多个入口的单个高速缓冲存储器。每个缓冲存储器入口包含一个与相应关键字相关的Web页面。如上面所述,该关键字可同时结合URL和唯一识别高速缓冲内容所必需的其它特征。因此,如果代理需要存储具有不同URL的1000张Web页面,就需要1000个高速缓冲存储器入口。如果要求代理服务器为这些Web页面的每一张存储10种不同的版本,就需要10,000个高速缓冲存储器入口。
因为高速缓冲存储器是平面的,所以其存储和检索入口所需的时间和/或存储器随入口数目增加。[[根据所用的数据结构,查找时间可从O(n)变化到O(log(n)),甚至到O(1)(恒定时间),所以以下不准确]]入口的相似性不能带来任何好处(即,数十个入口可能只是同一Web页面的不同版本的事实)而且,当用平面式高速缓冲存储结构存储内容的多种版本时,没有办法处理相关内容的集合。例如,没有办法存储所有相关内容所共有的数据(例如,存储HTTP标题或者同一Web页面的多种版本所共有的其它信息)。必须为每一个独立版本单独存储共有信息。同样,没有办法处理这些相关内容的集合作为一个组。例如,如果想要更新过时Web页面的每个版本,就没有办法采取影响所有版本的单个行动--必须在高速缓冲存储器结构中分别定位和更新它们。
应当指出,当对于数据库存在多层存储机制时,这些与高速缓冲存储器结构不相同。数据库不是被设计用作其它程序的内部功能库。在数据库系统中,必须由数据库程序设计员明确构建树和多级存储和检索结构以及,由于实现数据库系统所付出的努力、花费以及系统开销,这项技术不适用于高性能的高速缓冲存储器检索。

发明内容
可由本发明的各种实施例来解决上面概括论述的一个或多个问题。一般地说,本发明包括用于提高对象的存储和检索性能的系统和方法。在一个实施例中,本发明包括一个多层高速缓冲存储系统,其中可使用多个关键字来查找高速缓冲存储器入口。高速缓冲存储系统的最低层存储对象,而较高层存储对较低层(诸如存储对象的层)的引用。用每一个关键字来查找位于高速缓冲存储系统的不同层的入口。
在网路代理中实现一个示范性的实施例。配置网络变换代理以处理Web服务器和一个或多个客户(例如网络浏览器)之间的通信。因此,如果配置网络变换代理来高速缓冲存储服务于客户的Web页面那么它将工作得更有效率。在这个实施例中,配置网络变换代理以存储每个Web页面的多种版本,其中每一个版本对应于,例如,一个不同的客户装置,每个客户装置拥有其自己的显示特征和性能。不同于将Web页面的所有不同版本存入平面式高速缓冲存储器,将Web页面存入多层高速缓冲存储器。更具体地说,将Web页面存入两层高速缓冲存储器,其中Web页面的URL用作高速缓冲存储器第一层入口的关键字,而Web页面的版本用作高速缓冲存储器(它实际上包括多个高速缓冲存储器)的第二层入口的关键字。当有客户请求Web页面时,从该请求中识别所想要的页面的URL和客户的装置类型。网络变换代理把URL用作关键字编索引进入第一层高速缓冲存储器。与这个关键字(URL)相应的入口包含识别第二层高速缓冲存储器的对象。网络变换代理用第二个关键字(装置类型)编索引进入所识别的第二层高速缓冲存储器。对应第二个关键字的所识别的第二层高速缓冲存储器的入口包含作为想得到的Web页面的对象。然后就可检索到该Web页面并服务于客户。
可供选择的实施例包括一种在多层高速缓冲存储器中存储和检索对象的方法。每一个要存储的对象具有多个与之相关的关键字。用每一个关键字编索引进入不同层的高速缓冲存储器。除在最后一层的高速缓冲存储器外,所有层的每个高速缓冲存储器都包含对后一层中的高速缓冲存储器引用的对象。在最后一层的高速缓冲存储器存储对象本身,而不是对其它高速缓冲存储器的引用。可供选择的是,最后一层的高速缓冲存储器可能包含对所存储对象的引用而不是对象本身。因此,在多层高速缓冲存储系统中存储一个对象包括在第一层高速缓冲存储器中存储包含第一个关键字和对第二层高速缓冲存储器的引用的入口,对另外的层可能重复这种操作(例如,在第二层高速缓冲存储器中存储包括第二关键字和对第三层高速缓冲存储器的引用的入口),以及在最低层高速缓冲存储器中用最后一个关键字存储对象。检索对象包括用第一个关键字编索引进入第一层高速缓冲存储器以得到对第二层高速缓冲存储器的引用,并对其它较低层重复这个步骤直到到达最后一层为止,在最后一层用最后一个关键字编索引进入最后一层高速缓冲存储器以检索对象。
本发明的另一个实施例包括一个软件应用程序。该软件应用程序收录在诸如软盘、CD-ROM、DVD-ROM、RAM、ROM、数据库模式等的计算机可读介质中。计算机可读介质包含为使计算机执行上面所概述的方法而配置的指令。应当指出,计算机可读介质可能包括RAM或其它组成计算机系统的一部分的存储器。因此计算机系统将被允许执行根据现在所公开的内容的方法,并认为在所附权利要求书的范围内。
也可能有大量其它的实施例。


通过阅读下面的详细描述和参考附图,本发明的其它目标和优势将变得显而易见。
图1说明根据本发明的一个实施例的基于网络的系统的示范性结构图。
图2说明根据本发明的一个实施例的适合用作网络变换代理的计算机的基本配置图。
图3说明根据本发明的一个实施例的多层高速缓冲存储器的结构图。
图4是说明根据本发明的一个实施例的适用于N层高速缓冲存储结构的通用方法的流程图。
虽然本发明可以有各种修改和可供选择的形式,仍然通过附图的实例和附加的详细说明展示其具体的实施例。然而,应当明白附图和详细说明的目的不是将本发明限制在所描述的特殊实施例。相反此公开的目的是覆盖落在如所附权利要求书定义的本发明的范围内的所有修改、等价物以及可供选择的对象。
具体实施例方式
下面将描述本发明的优选实施例。应当指出下面所描述的这个以及任何其他的实施例只是示范性的,而且目的是说明本发明而不是限制本发明。
一般地说,本发明包括用于提高存储和检索对象的性能的系统和方法。在一个实施例中,本发明包括一个多层高速缓冲存储系统,其中使用多个关键字来查询高速缓冲存储器的入口。高速缓冲存储器的最低层存储对象,而较高层存储对较低层(如存储对象的层)的引用。用每个关键字来查询在高速缓冲存储系统的不同层的入口。
在网路变换代理实现一个示范性实施例。配置网路变换代理以截取和操纵Web服务器和一个或多个客户(例如Web浏览器)之间的通信。因此,如果配置网路变换代理高速缓冲存储服务于客户的Web页面,那么它将工作得更有效率。在这个实施例中,配置网路变换代理以产生每一个Web页面的多种版本,其中每个版本对应于,例如,客户装置的每种类型的不同最佳化,每个客户装置有其自己的显示特征和性能。不同于将Web页面的所有不同版本存入一个平面式高速缓冲存储器,将Web页面版本存入多层高速缓冲存储器。更具体地说,将Web页面存储在两层高速缓冲存储器,其中Web页面的URL用作进入高速缓冲存储器第一层的关键字,而将页面已经为其变换的装置用作进入高速缓冲存储器第二层的关键字。
当客户请求Web页面时,可从请求中识别出想得到的页面的URL和客户的装置类型。网路变换代理用URL作为索引进入第一层高速缓冲存储器的关键字。对应于这个关键字(URL)的入口包含作为第二层的高速缓冲存储器的标识符的对象。网络变换服务器用第二关键字(装置类型)编索引进入第二层中所标识的高速缓冲存储器。对应于第二关键字的所标识的第二层高速缓冲存储器的入口包含是想得到Web页面的对象。于是就可检索到Web页面并提供给客户。
虽然该优选实施例是在网络变换代理实现的,但应当指出本发明能够通用于多种系统的多层高速缓冲存储器。因此,即使现在公开的内容主要集中在本发明在网路变换代理的实现,这样的目的也只是示范,而不是限制。
本发明的优选实施例在网络环境下工作。应用网络及其组件来将Web内容(例如Web页面)从一个或多个服务器分配给一个或多个客户。参考图1展示了示范性结构。
如图1所示,所述结构包括连接到网络变换代理14的客户12,该代理14又连接到Web服务器16。网络变换代理14包括高速缓冲存储子系统18。客户12通过第一个网络13连接到代理14。代理14通过第二个网络15连接到Web服务器16。预期网络13和网络15中至少有一个包括互联网。这些网络的另一个可能包括一个特殊企业的内部或外部网络。然而,应当指出,客户12、代理服务器14和Web服务器16的连接没有必要为了本发明以任何特殊方式配置。
代理处理诸如Web浏览器的客户装置或程序和诸如Web服务器的服务器装置或程序之间的通信。在基于Web的系统里,代理处理客户对Web内容的请求,以及Web服务器响应这些请求所提供的Web内容。在处理这些通信时,代理负责模拟Web服务器并因此降低对系统(对Web服务器和网络自身)的负担。代理通过存储由Web服务器所提供的一些内容,以及当可能时提供所存储的内容给客户以响应对内容的请求来做这件事。这样,代理为Web服务器减轻了服务一部分客户的请求的负担。
在一个优选实施例中,配置网络变换代理以执行由服务器所提供的Web内容的变换。变换可能依赖于客户对内容作出请求以及请求的方式。变换可包括为了在特殊类型的客户装置上使用而使内容优化所作的修改。例如,修改Web页面以适应不同显示装置的性能(例如,对Web页面上的图像执行色彩减弱或黑白变换)。因此,代理可生成一种特殊Web页面的多种版本(或其它Web内容)。代理也可执行变换,为客户做出更多内容修改,诸如为不同客户插入不同的广告。然后代理需要存储Web内容的这些不同版本。
为了创建和识别Web页面的不同版本,网络变换代理使用关于在页面上所作变换的类型和源服务器所提供的版本的信息。版本高速缓冲存储关键字也可指示变换中所用的参数值。例如,如果网络变换代理对一幅图像做色彩减弱,那么该关键字将包括图像将要减弱到的颜色的标号。根据本发明的代理为存储和检索Web内容提供了快速而有效的机制,即使内容的多个版本增加了必须存储的信息的总量。
参考图2,展示了根据本发明的一个实施例适合用作网络变换代理的计算机的基本配置。在计算机系统100实现服务器14。计算机系统100包括中央处理器(CPU)112、只读存储器(ROM)114、随机存取存储器(RAM)116、硬盘驱动器(HD)118以及输入输出设备(I/O)120。计算机系统100可能有不止一个CPU、ROM、随机存取存储器、硬盘驱动器、输入输出设备或其它其硬件组件。然而将计算机系统100描述为只拥有一种单一类型的组件。应当指出图2所示的系统是示范性硬件配置的简化示图,可能有许多其它可供选择的配置。
在驻留于诸如ROM 114、RAM 116或硬盘驱动器118的存储器内的适当软件应用程序可执行这里所描述的部分方法。软件应用程序可包括程序指令,这些指令被配置用来使执行指令的数据处理器执行这里所描述的方法。这些指令可收录(存储)在内部存储装置,如ROM114、RAM 116或硬盘驱动器118、其它装置,以及外部存储装置,或由诸如计算机系统100或者甚至CPU 112的数据处理器可读的存储介质。这种介质可包括,例如,软盘、CD-ROM、DVD ROM、磁带、光存储介质等。
在本发明的一个示意性实施例中,计算机可执行指令可以是若干行编辑的C++、Java或其它语言代码。也可以使用其它结构。例如,任何一台计算机的功能可由图2所示的不同计算机实现。另外,携带这种代码的计算机程序或其软件组成部分也可以存储在不止一台计算机的不止一种数据处理系统的可读介质上。
在上面的硬件配置里,各种软件组成部分可驻留于单个计算机或独立计算机的任何组合中。在可供选择的实施例中,一些或所有软件组成部分可驻留于同一台计算机。例如,代理计算机100的一种或多种软件组成部分可驻留于一个客户计算机或服务器计算机或两者之上。在仍是另一个实施例中,如果代理计算机所实现的功能融入到客户计算机或服务器计算机中就可不要求代理计算机本身。在这样的实施例里,客户计算机和服务器计算机可定向连接到同一个网络。
任何客户、服务器和代理计算机之间的通信可用电子、光、射频或其它信号来完成。例如,当用户在客户计算机上时,当发送通信给用户时客户计算机可将信号转换为人可理解的形式,也可将人的输入转换为代理或服务器计算机将要使用的适当的电子、光、射频或其它信号。同样,当操作者在服务器计算机时,当传送通信给操作者时服务器计算机可将信号转换为人可理解的形式,也可将人的输入转换为计算机将要使用的适当的电子、光、射频或其它信号。
如上面所解释,代理负责存储Web服务器先前提供的信息使得可将这种信息提供给客户以响应他们的请求。这种信息存储在代理的高速缓冲子系统。高速缓冲子系统实际上包括大量组织在两层或多层的高速缓冲存储器。上层和中层引用较低层的高速缓冲存储器。最低层实际上存储想得到的信息。通过依次访问这些层的每一层来访问存储在高速缓冲子系统中的信息。
参考图3,展示了根据本发明的一个实施例的多层高速缓冲存储系统的结构。如图所示,高速缓冲存储子系统18包括第一层22和第二层24。第一层22实际上包括具有多个入口(例如31-33)的单个高速缓冲存储器30。第二层24包括多个高速缓冲存储器(例如40、50、60)。
每一个高速缓冲存储器的每一个入口包括一个关键字和一个对象。关键字用来识别进入高速缓冲存储器的期望入口。对象是存储在高速缓冲存储器的想得到的信息。由于高速缓冲存储子系统18被设计用来存储Web内容,所以第一层高速缓冲存储器26入口(例如35)的关键字包括URL(统一资源定位符)。入口对象(例如36)包括对第二层24的高速缓冲存储器的引用。例如,第一层高速缓冲存储器的入口31的对象36是对第二层高速缓冲存储器40的引用。
高速缓冲存储器40(如同其它第二层高速缓冲存储器)非常相似,每一个入口(例如,41、42、43)包括一个关键字和一个对象。然而,由于高速缓冲存储器40位于高速缓冲存储系统结构的最低层,所以它的高速缓冲存储入口所包含的对象包括高速缓冲存储子系统18设计将要存储的类型的对象(例如,Web页面)。如果高速缓冲存储子系统18有不止两层,在第二层24的高速缓冲存储器(如40)所包含的对象将包括对第三层高速缓冲存储器的引用。这个第三层可能是最低层,或仍是另一个中间层,其中高速缓存的对象包括对后续层的高速缓冲器的引用。因此,该结构可扩展到任何数目N层。
图4的流程图总结了在使用这种高速缓冲存储结构检索所存储的对象中所采用的方法。图4的流程图表示适用于N层高速缓冲存储结构的通用方法。如图所示,用第一关键字来编索引进入第一结构以检索对第二层高速缓冲器的引用。根据高速缓冲存储结构中的层数N重复进行该操作。对最后一层(第N层)来说,用第N个关键字编索引进入高速缓冲器以检索所存储的对象。
在该优选实施例的情况下,其中在网络变换代理实现高速缓冲存储子系统,第一层高速缓冲存储器26的关键字包括在那里所存储的各个内容的名称(例如URL)。第一层高速缓冲存储器26中的对象包括对第二层24的高速缓冲存储器的引用。第二层高速缓冲存储器中的关键字是基于指定URL所标识的内容的不同版本的参数。第二层高速缓冲存储器中的对象包括由高速缓冲存储子系统18所存储的Web内容。第一和第二层高速缓冲存储器中的关键字结合起来可用于存储或检索高速缓冲存储子系统18所存储的任何一段内容的任何版本。
在本发明的简单实施例中,两种不同的高速缓冲存储器,或需要的尽可能多的高速缓冲存储器,每个都用一个关键字来存储一个值。每个高速缓冲存储器的功能相似。高速缓冲存储器可包括任何高速缓冲存储或相关的存储器结构。
本发明的一个实施例是多层高速缓冲存储系统。在简单实施例中,本发明使用两层高速缓冲存储系统。在第一层,用基于内容名称的关键字来识别许多第二高速缓冲存储器中的一个。在第二高速缓冲存储器里,用封装指定版本的信息的关键字来识别第一层关键字所指定的内容的特殊版本。用程序可表示如下
Level_1_Caclhe=CacheOf<f(Content_Name),Level_2_Cache>Level_2_Cache=CacheOf<g(Description_Of_Content_Version),Content_Version>抽象函数f()和g()将它们的自变量转换成简洁而容易匹配的关键字。在该优选实施例中,用到MD5sum,但将用到任何(近似)独一无二的编码。CacheOf<Key,Content>是通过与关键字相关来存储和检索内容的高速缓冲存储数据结构。
第一层高速缓冲存储(Level_1_Cache)是高速缓冲存储器的高速缓冲存储,其中用基于内容名称的关键字来存储和检索第二层高速缓冲存储(Level_2_Cache)。第二层高速缓冲存储是标准的高速缓冲存储,它将内容版本的描述和适当的内容版本联系起来。值得注意的是,第二层高速缓冲存储的关键字没有必要封装内容名称,因为在每一个第二层高速缓冲存储器的所有项都是同样内容的不同版本-更具体地说,是由Content_Name所识别的内容。
存储包括版本的关键字和包括Web页面的值的第二层高速缓冲存储器与本领域现有技术相似。然而,存储包括URL的关键字和包括第二高速缓冲存储器的值的第一层高速缓冲存储器在存储高速缓冲存储器方面是独一无二的。
在一个优选实施例中,第一层高速缓冲存储(Level_1_Cache)是基于内容的名称(例如URL),而且它指向第二层高速缓冲存储。第二层高速缓冲存储(对应于Level_2_Cache)基于已经应用于内容的变换的类型和参数设置。
在该优选实施例中,用内容URL的MD5Sum提供第一层高速缓冲存储(对应于上面的简单实施例所描述的Level_1_Cache)的关键字。由MIT的Ronald L.Rivest教授开发的MD5算法是通常所用的单向函数,具备两个不相等输入极不可能产生相同结果的性质。这种算法使识别数据的关键字更有效。
第二层高速缓冲存储器包含由URL所识别的内容的多种版本。代理通过对Web内容执行参数变换来创建这些多样化版本。基于变换名称的MD5Sum及其参数提供第二层高速缓冲存储器的关键字。每个关键字用那些设置来标识所变换内容的版本。
使用MD5sum函数,这种结构可描述为Level_1_Cache=OneCacheOf<MD5Sum(URL),Level_2_Cache>Level_2_Cache=OneCacheOf<MD5Sum(Transformation_Parameters),Transform(Content,Transformation_Parameters)>该优选实施例用C++模板在多层高速缓冲存储结构内创建高速缓冲存储器。C++模板使得没有必要为了完成同样的任务而写出独立的代码体。它使任务抽象化,允许一个C++对象执行多个任务。为了完成某一具体任务,可将任何类型的关键字和值赋值到模板中。在本系统的情况下,C++模板使得没有必要为第一和第二层高速缓冲存储器编写两种独立的代码体。针对两种不同的高速缓冲存储器的关键字和值类型可同时装入同一个C++模板的结构内。以这种方式使用C++模板的示范性系统和方法,在由发明人Jeremy S.de Bonet、Todd A.Stiers、Jeffrey R.Annison、Phillip Alvelda VLL以及Paul M.Scanlan于2003年1月16日提交的名称为“任意内容和应用数据的存储和检索的设计”的美国专利申请No._(代理案卷号No.IDET1150-1)中详细描述。
使用多层高速缓冲存储使高速缓冲存储器的查找更有效。例如,高速缓冲存储代理可存储1000个URL中每个的10种独立的版本。使用目前的发明,将没有必要用10,000个独立关键字将URL存为10,000个独立实体。相反,可将URL存为使用1,000个独立关键字的1,000个独立实体。当要查找某个具体页面的具体版本时,代理只需要搜寻1,000个URL,然后再搜寻那个URL的10种版本。这种查找只要求搜寻1,010个独立实体而不是10,000个。
而且,本发明产生一种存储所有内容所共有的数据的方法。例如,创建内容的日期或各种其他的HTTP标题也许是所有版本所共有的(如在变换代理的情形下),而且本发明提供公共地点来存储这种信息。没有必要对内容的每一个版本单独存储这种信息,而且如果有任何变化,可同时对内容的多种版本做出这些变化。
同时,由于所有版本的Web页面一起存储在单个高速缓冲存储系统,开发者能够一起操纵、转储或删除它们,没有必要单独标识每一个。
开发者可将高速缓冲存储系统扩展到超过两层。可用于编索引进入这些层的高速缓冲存储器的另外的关键字可能包括其他的标识符,诸如装置类型、浏览器或支付水平。
随着网络客户之间差异的增多,就有必要创建内容的多种版本,每一种版本对客户的不同类型是最佳化。在此发明之前,不存在将这种多版本化的内容组织到单个的统一的高速缓冲存储结构的方法。
在上面结合具体的实施例已经描述了本发明可能提供的好处和优势。不能将这些好处和优势以及任何使它们发生或变得更加明确的元素或限制条件解释为任何或全部权利要求的重要、必须或基本特征。如这里所用到的,短语“包括”“包含”或它的任何其它变型的目的是解释为非专有地包括跟在那些短语后的元素或限制条件。因此,不将包括一组元素的系统、方法或其他实施例限制在只是那些元素,而可能包括其他没有明确列出或所述实施例固有的元素。
虽然已经参考特殊的实施例说明了本发明,应当明白所述实施例是说明性的而且不将发明的范围限制在这些实施例。对上面所描述实施例也可能有许多变化、修改、添加或改进。预期这些变化、修改、添加或改进将落入如下面权利要求书所详述的本发明的范围内。
权利要求
1.一种用于存储和检索第一类型的对象的系统,包括多个高速缓冲存储器,其中在每一个高速缓冲存储器的每个入口包括一个关键字和一个对象;其中所述多个高速缓冲存储器包括多个第(n+1)层高速缓冲存储器,其中在第(n+1)层高速缓冲存储器的每一个入口的每个对象包括一个第一类型的对象;以及其中所述多个高速缓冲存储器进一步包括一个第n层高速缓冲存储器,其中在第n层高速缓冲存储器的每个入口的每个对象包括一个对应第(n+1)层高速缓冲存储器的标识符。
2.根据权利要求1所述的系统,其中所述系统包括一个在网络变换代理上实现的Web页面高速缓冲存储系统;其中所述第n层高速缓冲存储器包括第一层高速缓冲存储器,其中在第一层高速缓冲存储器中的关键字包括URL,而且其中在第一层高速缓冲存储器中的对象包括第二层高速缓冲存储器的标识符;其中第(n+1)层高速缓冲存储器包括第二层高速缓冲存储器,其中在第二层高速缓冲存储器中的关键字包括对应URL的版本,而且其中在第二层高速缓冲存储器中的对象包括Web页面。
3.根据权利要求2所述的系统,其中所述代理被配置成对Web页面执行一种或多种变换并将所变换的Web页面存储在第(n+1)层高速缓冲存储器中。
4.根据权利要求1所述的系统,其中所述对象包括Web内容。
5.根据权利要求4所述的系统,其中至少一部分Web内容包括Web页面。
6.根据权利要求1所述的系统,其中在第n层高速缓冲存储器中的关键字包括URL。
7.根据权利要求1所述的系统,其中在第(n+1)层高速缓冲存储器中的关键字包括版本标识符。
8.根据权利要求1所述的系统,其中所述系统包括至少另外一层高速缓冲存储器,并且其中除最低层外的每一层中的高速缓冲存储对象都引用较低层中的高速缓冲存储器。
9.根据权利要求1所述的系统,其中第(n+1)层高速缓冲存储器被配置成存储在对应的高速缓冲存储系统中的所有入口所共有的共享信息。
10.根据权利要求1所述的系统,其中每个第(n+1)层高速缓冲存储器被配置成存储对应于单个URL的Web页面的多种版本。
11.根据权利要求1所述的系统,其中所述系统被配置成允许通过联合操作操纵所选择的第(n+1)层高速缓冲存储器中的所有入口。
12.一种用于检索期望的对象的方法,其中有多个关键字与该期望对象相关,该方法包括识别与期望对象相关的多个关键字;通过所识别的关键字中的第n个关键字查找在第n层高速缓冲存储器中的第n个入口,其中所述第n个入口包含所识别的关键字中的第n个关键字和第n个对象,其中所述第n个对象包括第(n+1)层高速缓冲存储器的标识符;以及查找在第(n+1)层高速缓冲存储器中的第(n+1)个入口,其中所述第(n+1)个入口包含所识别的关键字的第(n+1)个关键字和第(n+1)个对象,其中所述第(n+1)个对象包括该期望的对象。
13.根据权利要求12所述的方法,其中所述期望的对象是Web页面;其中识别与所述期望对象相关的多个关键字包括该Web页面的URL和URL的版本;其中所述方法包括通过所述URL查找在第一层高速缓冲存储器中的第一个入口,其中所述第一个入口包含作为对应关键字的URL和作为对应对象的第二层高速缓冲存储器的标识符;并查找在第二层高速缓冲存储器中的第二个入口,其中所述第二个入口包含作为对应关键字的URL的版本以及作为对应对象的期望Web页面。
14.根据权利要求12所述的方法,其中该期望对象包括Web内容。
15.根据权利要求14所述的方法,其中该Web内容包括Web页面。
16.根据权利要求12所述的方法,其中第n个关键字包括URL。
17.根据权利要求12所述的方法,其中第(n+1)个关键字包括版本标识符。
18.根据权利要求12所述的方法,其中所述高速缓冲存储器包括具有不止两层的高速缓冲存储系统。
19.根据权利要求12所述的方法,其中第(n+1)层高速缓冲存储器被配置成存储第(n+1)层高速缓冲存储器中的所有入口所共有的共享信息。
20.根据权利要求12所述的方法,其中第(n+1)层高速缓冲存储器被配置成存储对应于单个URL的Web页面的多种版本。
21.根据权利要求12所述的方法,进一步包括通过联合操作操纵第(n+1)层高速缓冲存储器中的所有入口。
22.根据权利要求12所述的方法,进一步包括对Web内容执行一种或多种变换并将变换后的Web内容存入第(n+1)层高速缓冲存储器中。
23.一种包括收录在数据处理器可读的介质上的多个指令的软件产品,其中所述指令被配置成使数据处理器执行所述方法,包括识别与期望的对象相关的多个关键字;通过所识别的关键字中的第n个关键字查找在第n层高速缓冲存储器中的第n个入口,其中第n个入口包含所识别的关键字的第n个关键字和第n个对象,其中第n个对象包括第(n+1)层高速缓冲存储器的标识符;以及查找在第(n+1)层高速缓冲存储器中的第(n+1)个入口,其中第(n+1)个入口包含所识别的关键字的第(n+1)个关键字和第(n+1)个对象,其中第(n+1)个对象包括该期望的对象。
24.根据权利要求23所述的软件产品,其中该期望对象是Web页面;其中识别与该期望对象相关的多个关键字包括该Web页面的URL和URL的版本;其中所述方法包括通过URL查找在第一层高速缓冲存储器中的第一个入口,其中第一个入口包括作为对应关键字的URL和作为对应对象的第二层高速缓冲存储器的标识符;以及查找在第二层高速缓冲存储器中的第二个入口,其中第二个入口包含作为对应关键字的URL的版本和作为对应对象的期望的Web页面。
25.根据权利要求23所述的软件产品,其中该期望对象包括Web内容。
26.根据权利要求25所述的软件产品,其中该Web内容包括Web页面。
27.根据权利要求23所述的软件产品,其中第n个关键字包括URL。
28.根据权利要求23所述的软件产品,其中第(n+1)个关键字包括版本标识符。
29.根据权利要求23所述的软件产品,其中所述高速缓冲存储器包括具有不止两层的高速缓冲存储系统。
30.根据权利要求23所述的软件产品,其中第(n+1)层高速缓冲存储器被配置成存储在第(n+1)层高速缓冲存储器中的所有入口所共有的共享信息。
31.根据权利要求23所述的软件产品,其中第(n+1)层高速缓冲存储器被配置成存储对应于单个URL的Web页面的多种版本。
32.根据权利要求23所述的软件产品,进一步包括通过联合操作操纵第(n+1)层高速缓冲存储器中的所有入口。
33.根据权利要求23所述的软件产品,进一步包括对Web内容执行一种或多种变换并将变换后的Web内容存入第(n+1)层高速缓冲存储器中。
全文摘要
提供一种用于提高对象存储和检索的性能的系统和方法。在一个实施例中,本发明包括在网络变换代理中实现的多层高速缓冲存储系统。代理对从Web服务器接收到的Web内容执行变换并将变换后的内容存入高速缓冲存储系统。高速缓冲存储器的最低层存储作为高速缓冲对象的内容,而高层存储对较低层(诸如存储对象的层)的引用作为它们的高速缓冲存储对象。用多个关键字来查找高速缓冲存储器入口。用每一个关键字来查找位于高速缓冲存储器不同层的入口。
文档编号G06F12/00GK1774703SQ03804105
公开日2006年5月17日 申请日期2003年1月16日 优先权日2002年1月18日
发明者杰里米·S.·德博内特 申请人:伊迪蒂克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1