CN1272189A - 预取信息的方法和系统 - Google Patents

预取信息的方法和系统 Download PDF

Info

Publication number
CN1272189A
CN1272189A CN98809577A CN98809577A CN1272189A CN 1272189 A CN1272189 A CN 1272189A CN 98809577 A CN98809577 A CN 98809577A CN 98809577 A CN98809577 A CN 98809577A CN 1272189 A CN1272189 A CN 1272189A
Authority
CN
China
Prior art keywords
prefetch
server
looking ahead
requested
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN98809577A
Other languages
English (en)
Other versions
CN1200378C (zh
Inventor
彼德·肯尼施·迈尔肯
菲利普·史郎·于
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1272189A publication Critical patent/CN1272189A/zh
Application granted granted Critical
Publication of CN1200378C publication Critical patent/CN1200378C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2885Hierarchically arranged intermediate devices, e.g. for hierarchical caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Abstract

公开一种用于客户机的预取数据方法和系统,这些客户机关联于一代理服务器分层系统以及增强的由内容服务器向这些客户机的数据传输。预取数据的方法识别数据访问模式,并根据对数据访问模式的动态解释来预取选定信息。内容服务器或代理服务器识别与该内容服务器或代理服务器分层系统相关联的客户机的数据访问查访模式。数据访问模式最好是存储在一个统计表中。内容服务器根据来自统计表的输入产生预取线索信息。预取线索信息注解所请求信息或由客户机请求的对象。当所请求信息通过代理服务器分层系统时,预取线索信息被优化地更新。预取线索信息注解由客户机请求的被请求信息。为客户机预取选定信息的最终决定是根据预取线索信息和预取线索值作出的。预取线索值是根据本地节点特定因素(如存储限制和访问时间)计算出来的。

Description

预取信息的方法和系统
本发明涉及为客户机动态预取信息或对象(object)的方法和装置,这里的客户机最好是与分级代理服务器系统相关联,例如可能在万维网上预取万维网对象当中涉及到。术语集
因特网(Internet):使用一套TCP/IP协议的若干网络和网关组成的网络。
客户机(Client):客户机是一台计算机,它向服务器发出命令,服务器完成与该命令相关联的任务。
服务器(Server):按另一台计算机的命令完成任务的任何计算机称为服务器。一个万维网服务器通常支持一个或多个客户机。
万维网(world Wide Web)(WWW或Web):一种因特网应用,它让使用者通过选择(“点击”)被点亮的感兴趣词或短语,在从服务器到服务器和从数据库到数据库的因特网交换连接(称作超链接)上查寻信息。因特网WWW服务器支持客户机并向客户机提供信息。万维网可以被认为是其全部资源用URL定址的因特网,它使用HTML显示对应于URL的信息并向其他URL提供点击(point-and-click)接口。
通用资源定位符(Universal Resource Locator)(URL):URL是对因特网上信息进行唯一标识或编址的方法,它可以被认为是电子邮件地址的万维网文档版本。URL可以由超链接来访问。URL标识的一个实例是“http://www.philipyu.com:80/table.html”。URL有4个组成部分。从这个实例的左边开始,第一部分指定所用协议(在该例中是http),它与定位符的其余部分用“:”分开。下一部分是目标主机的主机名或IP地址;这一部分在其左侧用双斜线“∥”定界,在其右侧用单斜线“/”(或可选地使用“:”)定界。端口号是一个可选部分,在左侧用“:”与主机名划界,在右侧用一单斜线“/”定界。第四部分是实际的文件名或程序名(在本例中是table.html),再使用单斜线按传统方式分开目录和子目录。在本例中,扩展名“.html”意味着这是一个HTML文件。
超文本标记语言(HyperText Markup Language)(HTML):HTML是一种语言,由万维网服务器用于创建和连接被万维网客户机观看的文档。HTML产生超文本文档。
超文本传输协议(Hypertext Transfer protocol)(HTTP):HTTP是无状态(stateless)协议的一例,其中由客户机向服务器发出的每个请求都被独立地处置。服务器没有关于先前连接的记录。在URL的开头,“http:”指明对于指定的资源发出请求的客户机与目标服务器之间应使用HTTP协议进行通信。
因特网浏览器或Web浏览器(Internet Browser或Web Browser):一种图形接口工具,它运行因特网协议,如HTTP,并在使用者的屏幕上显示结果。当使用者在因特网上“冲浪”时,浏览器能作为因特网上的漫游响导,与图形桌面、目录和查寻工具配套。在本申请中,Web浏览器是一个与万维网通信的一种客户机服务。
客户机高速缓存(Client cache):客户机高速缓存通常用作为被客户机访问的原始对象组(高速缓存)。在万维网环境中,客户机高速缓存通常由Web浏览器实现,可以高速缓存当前调用过程中被访问的对象(即非持久性高速缓存),或者可以高速缓存跨越多个调用的对象。
高速缓存代理(Caching proxy):网络中的专用服务器,作为代表客户机的代理去定位一个对象,可能返回一个被高速缓存的副本。高速缓存代理通常用作为第二层或更高层高速缓存,因为它们是在对客户高速缓存器未高速缓存命中的情况下才被调用的。
元标记(META-tagging):信息与给定对象的组合。例如,在HTTP中,在HTTP标题的各字段(field)中信息能与请求和响应二者组合在一起。例如,一个HTTP客户机能指定请求从其中返回页面的URL。
                    *  *   *
随着万维网(WWW或Web)在大众中的增加,在因特网上的业务量已相当大地增加了。现在万维网已成为网络性能的主要瓶颈之一。例如,当一个通过慢网络链路连于服务器的使用者请求文档或信息时,该Web用户可能会感受到显著的延迟。Web在网络上向使用者传送信息进一步提高了网络上的通信量水平。这种增加了的通信量降低了其他使用者的请求所能得到的带宽,造成额外的可能延迟。
为减小客户机访问迟延,现有技术已把常用的信息文档存储或高速缓存到更接近使用者的网络节点处,访问这些节点的访问迟延更可接受。高速缓存可在网络上的各种节点上实现。例如,一所大的大学或公司可以有它自己的本地高速缓存,注册到那个网络上的所有使用者都可以从其中取回文档。本地高速缓存可以以专用服务器的形式实现。
称作高速缓存代理的一种专用服务器可以作为代表客户机的代理,去定位被请求信息的任何可能被高速缓存的副本。高速缓存代理通常作为第二层或更高层高速缓存,因为高速缓存代理只与对失效客户机高速缓存的未命中有关。客户机高速缓存建立在各种Web浏览器中。客户机高速缓存或者可以只存储在当前调用过程中被访问的文档(非持久性高速缓存,如Mosaic),或者可以高速缓存跨越多个调用的文档。
先前在Web文档高速缓存方面的工作主要是在请求式(on-demand)高速缓存这一领域。请求式高速缓存的意思是在一个对象被请求之后才作出高速缓存决定。例如,Abrams等在“高速缓存代理:局限与潜力”(第4届国际万维网会议文集,1996)中描述了已对Web检验过的不同的请求式高速缓存策略。
在因特网服务供给商(ISP)的网络或合作网络中,在代理分层系统中不同的区域代理或部门代理可能会观察到不同的查访(reference)行为或面对不同的网络业务和延迟。代理分层系统的存在进一步使预取决策复杂化,即是否所有的中间代理、客户机或它们的子集都应进行预取。这样,便需要一种预取方法和系统,它能有效地协调代理服务器分层系统和相关联的客户机所进行的预取活动。
于是,本发明提供了一种从内容服务器(content server)中预取选定信息的方法,它能使经由通信网络以及一个或多个代理服务器与内容服务器相连的一个或多个客户机容易地访问所选定的信息,该方法包含如下步骤:
从至少一个代理服务器中请求信息;
根据任何所述客户机过去对所请求信息的提取或访问情况,建立用于所述用户的预取线索信息;
以所述预取线索信息对所请求的信息作注解;以及
根据预取线索信息和所请求信息,从任何所述服务器中预取选定信息。
通常,所请求信息包含所请求的对象,而选定信息包含预取候选对象,如因特网数据。在这种情况下,所请求的对象能通过与该因特网数据相关联的一个超文本传输协议(HTTP)链路去查访这选定对象,代理服务器通过存储在所请求对象的对象标题中的所请求对象通用资源定位符(URL)来识别选定对象与所请求对象之间的关系。
建立预取线索信息的步骤最好包括以下步骤:追踪与所述客户机关联的数据查访模式(pattern);把数据查访模式组织到对象标识符组中,这对象标识符组是根据所请求对象和预取候选对象之间的关系组织的;以及确定所述组中哪些具有足够的预取候选对象和所请求对象之间的关系,以证明有理由把所述预取候选对象作为选定信息预取回来。这样,所述各客户机的数据查访模式有利地依据过去对所请求信息的提取或先前的访问,数据查访模式被选定为代表与所述代理服务器之一相关联的所述不同客户机在过去的提取或访问中的任何共同趋势。然后,它能用于确定预取线索信息。
追踪和组织步骤最好包括建立数据库以把查访数据模式存储于代理服务器中;安排所述数据库每个中的字段,这些字段包括对象标识符和对象计数,这对象标识符把所请求对象彼此区分开,对象计数则指明被所述服务器之一观察到的所请求对象曾被请求的次数;以及把访问清单与所述数据库关联起来,每个所述访问清单含有与每个所请求对象相关联的一个或多个预取候选对象。
这种数据库能用于确定所请求对象与预取候选对象之间的关系和追踪关于所请求对象和预取候选对象的访问统计;这访问统计包括关于所请求对象的父(parent)对象访问频率和关于预取候选对象的子(child)对象访问频率;父对象访问频率代表所请求对象中的一个特定对象被至少一个所述客户机请求的次数;子对象访问频率代表紧随访问该特定对象之后一个或多个所述预取候选对象被实际请求的次数。这便允许根据子对象访问频率和与该子对象访问频率相关联的父对象访问频率的比值来选定预取候选对象的预取清单,这预取清单只包含它们的该比值超过一阈值概率的那些预取候选对象。
一般而言,只有预取候选对象的一个子集将在所述代理服务器之一或所述客户机之一被实际预取和接收,通常对预取候选对象这一子集的选择以作为选择信息是基于诸多因素的,如在所述代理服务器之一处能得到的存储大小和/或在所述代理服务器之一处的访问时间。这样,是根据与某一相应预取值相关联的优先级来预取预取候选对象的。
在最佳实施例中,对所请求信息加注解的步骤包含把预取线索信息放入预取标记(label)中的步骤,这预取标记有因特网内容选择平台(PICS)格式或与PICS格式兼容的标记协议。在这一(PICS)格式的一个具体实现中,定义了一个对象标识符类别和查访者(referrer)标识符类别,所述方法进一步包括向内容服务器返回查访者标识符类别的步骤,以识别实际被查访过的任何预取候选对象。根据因特网内容选择平台(PICS)协议或PICS兼容协议组织预取线索信息利用了已被许多浏览器支持的格式。
通常,存在一个所述代理服务器的分层系统。在这一分层系统中定义一个发送节点和一个接收节点,预取线索信息最好从一个初始状态修改为一个最终状态,这初始状态由发送节点确定,而最终状态由接收节点确定。正是所述最终状态下的预取线索信息在其后构成最终预取决定的基础(假定预取选择信息由接收节点发生)。
换句话说,当预取线索信息通过该分层系统从代理服务器传送到客户机时,该预取线索信息能被解释和更新。如果存在对所请求信息的本地查访而且如果本地级服务器的计数超过了一个最小阈值计数(即因此能在本地得到可靠的统计),则最好由一代理服务器来更新预取线索信息。预取线索信息的更新还能根据代理分层系统中的高速缓存状态(例如指出在该分层系统中何处可以高速缓存一特定的预取候选对象)。
本发明还提供了一个数据处理系统,用于通过网络从一内容服务器预取选定信息,所述系统包括一个或多个与该网络关联的代理服务器,以及通过网络与该内容服务器及一个或多个代理服务器进行通信的若干客户机;所述系统包含:
从至少一个代理服务器请求信息的装置;
根据任何所述客户机过去对所请求信息的提取或访问情况,为所述客户机建立预取线索信息的装置;
以所述预取线索信息注解所请求信息的装置;以及
根据预取线索信息和所请求信息,从任何所述服务器中预取选定信息的装置。
在一个最佳实施例中,所请求信息包含所请求的对象,而选定信息包含预取候选对象,这里每个所述代理服务器和至少一个客户机有一个存储器,它至少有一个在主高速缓存和预选高速缓存之间的逻辑分隔,其中预取的选定信息存储在预取高速缓存中。
最好是由预取装置根据一种优先级方案来预取对象和把所预取的对象存储到预取高速缓存中,这优先级方案首先存储具有最高预取值的对象,并考虑可能得到的预取高速缓存存储器大小,该预取值是基于一个或多个客户机对预取对象进行查访的单个查访概率或累积查访概率。特别是,该预取值可以基于预取线索信息清单上的一个预取候选对象将被一些特定客户机访问的估计访问概率,以及基于根据存储选定的一些预取候选对象所需存储大小而确定的对象访问成本。
在一个最佳实施例中,预取装置包含一个预取处理器,它包括计算所述预取值的计算装置和对计算装置计算出的预取值进行评估的评估装置;所述计算装置为预取线索信息清单上的每个预取对象标识符计算其预取值;所述评估装置对多个候选预取对象的预取值进行评估,并对预取线索信息清单上与那些最高预取值相关联的那些候选预取对象给予高速缓存优先。该预取装置可以包含在至少一个所述代理服务器中的第一预取处理器和在至少一个所述客户机中的第二预取处理器(即预取可以在这分层系统中的不同/多个位置上完成)。
一个最佳实施例还包括一个存储在所述客户机之一的存储器中的客户机对象请求处理器,在向代理服务器或网络请求所请求对象之前,该客户机对象请求处理器先在主高速缓存和预取高速缓存上搜索所请求的对象,如果该对象位于预取高速缓存中,则由客户机对象请求处理器产生一个发给服务器的预取被查访消息,指出该预取对象已被该客户机实际访问过,以此来通告内容服务器或代理服务器。类似地,最好是至少一个所述代理服务器包括一个预取被查访消息处理器,用于在调用一个高速缓存管理器例行程序之后传送预取被查访消息,如果所请求的对象位于该预取高速缓存中的话。这样,即使因为一子对象能从该客户机处的预取高速缓存或代理服务器中的高速缓存中得到,因而该服务器没有和这一子对象直接接触,但该服务器也能保持访问统计的准确记录。
本发明进一步提供了一个用于这种数据处理系统中的内容服务器或代理服务器,其中所请求的信息包含所请求对象,其中选定信息包含预取候选对象,所述服务器包括:
一个统计表,存储父对象标识符和相关联的子对象标识符,该统计表含有关于父对象的第一计数,该第一计数代表父对象被客户机查访的频率,统计表含有关于子对象的第二计数,该第二计数代表选定的所述父对象被查访之后相应子对象被查访的频率;以及
产生装置,用于根据统计表中的信息产生预取线索信息清单。
在一个实施例中,该产生装置从统计表中接受第一计数、第二计数、子对象标识符和父对象标识符输入,该产生装置包括评估装置用于评估父对象与其相关联的子对象之间的访问关系,如果在客户机查访相应父对象之前一些子对象被以适当的频率靠近地、接续地被查访,则评估装置把这些子对象放入预取线索信息清单中。这适当的频率可以基于子访问次数与相应父访问次数的比值。通常,这涉及对每个所述父对象标识符计算其第二计数与第一计数的比值;把该比值与一线索阈值作比较;如果该比值超过该线索阈值,则在预取线索信息清单上把子对象和相关联的父对象组成组或者说组合起来。
最好是该服务器进一步包含统计更新装置,用于根据实际被查访的子对象来更新统计表;该统计更新装置首先查找正在查访的一个所述父对象的标识,这个在查访对象,或者说查访者(referrer)对象,是在子对象实际被请求之前被查访的对象,这个实际被请求的子对象使其在统计表中的相应第二计数被更新。这个统计表还应在一旦收到来自预取被查访消息处理器的预取被查访消息时立即更新。
在服务器为一代理服务器时,它最好进一步包含预取更新装置,用于接收和更新预取线索信息清单。预取更新装置把第一计数与第一本地阈值计数进行比较,并对第一计数超过第一本地阈值计数的每个子对象标识符调用产生装置,如果第一计数没有超过第一本地阈值计数,则预取更新装置保持原来的预取线索信息清单。在一种更复杂的途径中,预取更新装置把第一计数与第一和第二本地阈值计数进行比较,并且(i)如果第一计数没有超过第一本地阈值计数则保持原来的预取线索信息清单;(ii)如果第一计数超过第一本地阈值计数但没有超过第二本地阈值计数则修改原来的预取线索信息清单;以及(iii)如果第一计数超过第一和第二本地阈值计数二者,则替换原来的预取线索信息清单。
该服务器最好进一步包括:一个代理对象处理器,用于把所请求对象回送给请求所请求对象的较低层代理服务器或客户机,如果所请求对象不是预取对象,则代理对象处理器回送所请求对象并相应地更新统计表;以及一个预取高速缓存管理器,用于管理预取高速缓存。这样,代理对象处理器把所请求对象从预取高速缓存回送给发请求的客户机或代理服务器,并把该对象标记为可从预取高速缓存删除的对象,如果该对象是遵循一个预取请求而被请求的话。如果所请求对象不在主高速缓存或预取高速缓存中,则代理对象管理器向另一服务器发出对象请求。如果这个所请求对象不与一预取请求相关联,而且如果所请求对象位于该预取高速缓存或主高速缓存中,则代理对象处理器相应地更新统计表。
从另一方面看,本发明提供了一种方法,用于通过通信网络从一内容服务器中预取选定对象以使与一个或多个代理服务器相关联的客户机容易地得到这些选定对象;该方法包含的步骤有:
a)从至少一个所述代理服务器请求所请求的对象;
b)根据客户机过去对所请求对象提取或访问情况,识别相应客户机的数据查访模式;
c)由数据查访模式生成预取线索信息送入预取线索信息清单;
d)以预取线索信息注解所请求对象;
e)根据预取线索信息和当前所请求对象,从至少一个所述服务器中预取选定对象。
这样,被预取的选定信息包含一个预取候选对象;而建立预取线索信息的步骤进一步包含在所述代理服务器的分层系统中的一个发送节点建立预取线索信息;这里预取候选信息通过所述代理服务器的分层系统;在该分层系统中的接收节点要预取的选定信息是基于预取线索信息。
通常有一代理服务器分层系统与网络相关联,该代理服务器分层系统包括一个较低层服务器,它比其他代理服务器更紧密地与这些客户机相关联。在一个最佳实施例中,如果存在对所请求对象的本地查访而且本地级服务器计数超过一个最小阈值计数,则通过该代理服务器分层系统来更新预取线索信息;另一种作法(或者说再一种作法)是可以通过分析较高层处的高速缓存状态来更新预取线索信息,该分层系统的最高层是最紧密地与网络相关联的。
从另一方面看,本发明提供了一种系统,用于增强治网络从服务器到客户机的数据流,该处理系统包含:
与该网络相关联的代理服务器;
与该网络相关联的内容服务器;
配置成与一个或多个所述代理服务器进行通信的客户机;
存储在至少一个所述代理服务器中的统计表,该统计表存储父对象标识符和相关联的子对象标识符,该统计表含有关于父对象的第一计数,该第一计数代表父对象被客户机查访的频率,该统计表含有关于子对象的第二计数,该第二计数代表选定的所述父对象被查访之后相应子对象被查访的频率;以及
产生装置,用于根据第一计数和相应的第二计数输入产生预取线索信息,以导出预取线索信息清单,所述产生装置包括:
计算装置,用于对每个所述父对象标识符计算第二计数与第一计数的比值;
比较装置,用于把该比值与一线索预值进行比较,如果该比值超过该线索阈值,则比较装置在预取线索信息清单上把子对象和相关联的父对象组成组或者说组合起来;以及
预取装置,用于根据预取线索信息和由客户机实际请求的父对象,预取子对象。
在一个最佳实施例中,每个所述代理服务器有第一处理器、第一存储器和用于存储数据的第一存储装置;这第一存储器至少有一个在第一主高速缓存和第一预取高速缓存之间的逻辑分隔;内容服务器有第二处理器、第二存储器和用于存储数据的第二存储装置;以及至少一个客户机有第三处理器、第三存储器以及用于存储数据的第三存储装置,这第三存储器至少有一个在第二主高速缓存和第二预取高速缓存之间的逻辑分隔,预取处理装置把子对象存储在第一预取高速缓存或第二预取高速缓存中。
在一个最佳实施例中,预取装置包括计算装置用于计算预取值,和评估装置用于评估由计算装置计算出的预取值;所述计算装置对预取线索信息清单上的每个子对象标识符计算一个预取值,并对预取线索信息清单上那些具有最高预取值的子对象给予高速缓存优先,预取处理装置管理预取高速缓存中的可使用的空间。
该系统最好进一步包括:预取更新装置,用于更新预取线索信息清单;该预取更新装置把第一计数与第一本地阈值计数和第二本地阈值计数进行比较,这第一本地阈值计数根据来自一个服务器的统计,这第二本地阈值计数根据来自另一服务器的统计,对于第一计数超过第一本地阈值计数和第二本地阈值计数二者的每个子对象标识符,所述预取更新装置调用产生装置;如果第一计数不超过第一本地阈值计数,则预取更新装置保持原来的预取线索信息清单。
最好是这个系统进一步包括:
统计更新装置,用于更新统计表;
存储在所述代理服务器之一中的代理对象处理器,这代理对象处理器调用预取线索信息清单更新例行程序,如果一较低层代理服务器请求所请求的对象,则该代理对象处理器向该较低层代理服务器回送所请求的对象,如果所请求对象不是一个预取对象,则代理对象处理器回送所请求对象并调用统计更新装置;
预取高速缓存管理器,用于管理与所述代理服务器之一相关联的预取高速缓存,如果较低层服务器未曾请求所请求的对象,则代理对象管理器调用该预取高速缓存管理器;
存储在所述代理服务器之一中的代理对象请求处理器,如果对象在预取高速缓存中和如果该对象曾遵循一个预取请求而被请求过,则该代理对象请求处理器向所述客户机中发请求的一个回送这些对象并使该对象标记为可从预取高速缓存中删除的对象;如果这所请求的对象不在主高速缓存或该预取高速缓存中,则代理对象请求处理器向另一服务器发送一个对象请求,如果所请求对象不与该预取请求相关联和如果所请求对象位于该预取高速缓存或主高速缓存中,则代理对象请求处理器与统计更新装置通信。
该系统最好还进一步包括:
统计更新装置,用于更新统计表;
以及存储在所述代理服务器之一中的预取所查访消息管理器,该预取所查访消息管理器调用统计更新装置,如果一所请求对象位于预取高速缓存中,则预取所查访消息处理器在调用一高速缓存管理器例行程序之后传递一个预取所查访消息。
本发明进一步提供一个处理系统用于增强沿网络从服务器到客户机的数据流,该处理系统包含:
与该网络关联的代理服务器;
与该网络关联的内容服务器;
被配置成与一个或多个所述代理服务器通信的代理服务器;
一个统计表被存储在该内容服务器和至少一个所述代理服务器中,该统计表存储父对象标识符和相关联的子对象标识符,该统计包含有关于父对象的第一计数,该第一计数代表父对象被客户机查访的频率,该统计表含有关于子对象的第二计数,该第二计数代表所述父对象中的选定对象被查访之后紧接着被暂时查访的相应子对象的频率;
产生装置,从统计表中接受第一计数、第二计数、子对象标识符及父对象标识符输入,该产生装置包括评估装置用于评估父对象和与它们关联的子对象之间的访问关系,如果在客户机查访相应父对象之前一些子对象被以适当的频率靠近地、依次地被查访,则评估装置把这些子对象标识符放入预取线索信息清单中;以及
预取装置,用于根据预取线索信息和被客户机实际请求的父对象预取子对象。
在一个最佳实施例中,预取装置进一步包含分配装置用于把存储优先级分配给预取线索信息清单上标识的各子对象,以及选择性存储装置用于根据存储优先级存储选定的子对象。该分配装置最好根据预取线索信息清单上的一子对象将被特定客户机访问的访问概率以及基于存储选定子对象所需存储器大小而定的子对象访问成本来分配存储优先级。
这样,在一个代理分层系统中信息能被预取以减少客户机通过网络(例如因特网)的对象访问时间。选定信息从一内容服务器中预取,以使网络中与内容服务器关联的客户机能容易地访问选定的信息。这些客户机最好与网络中的代理服务器关联。客户机从至少一个代理服务器中请求信息。内容服务器根据被客户机请求过的信息的过去数据访问模式,产生用于客户机的预取线索信息。内容服务器以预取线索信息注解所请求的信息。一个或多个代理服务器可以根据动态使用情况统计来动态地更新预取线索信息。随着对象通过代理分层系统,该预取线索信息被更新,以反映所完成的预取操作、在代理分层系统较高层次上的高速缓存状态、以及其他本地考虑,如本地查访模式。可以根据预取线索信息和所请求的信息,从内容服务器或代理服务器中的任何一个中预取选定的信息。可以根据查访访问概率和存储考虑对预取线索信息分配一个预取值。在预取线索信息清单中具有那些最高预取值的选定信息被首先高速缓存,而且可能直至预取高速缓存被充满。
现在将参考如下附图仅以举例方式详细描述本发明的一个最佳实施例:
图1是一方框图,显示内容服务器(即万维网站点)、网络(即因特网)、代理服务器分层系统、以及客户机;
图2又是一个方框图,比图1更详细地显示一内容服务器、一客户机、和一个代理服务器;
图3A是一流程图,说明经由代理服务器分层系统从一内容服务器动态预取数据的方法;
图3B是一统计表的示例;
图4是流程图,说明该内容服务器的操作;
图5是说明统计更新的流程图;
图6是说明产生预取线索信息的流程图;
图7是说明客户机操作的流程图;
图8是说明预取过程的流程图;
图9是说明一客户机对象请求处理器操作的流程图;
图10是说明代理服务器操作的流程图;
图11是说明一代理对象请求处理器操作的流程图;
图12是说明一预取所查访消息处理器操作的流程图;
图13是说明一代理对象处理器操作的流程图;以及
图14是说明一预取线索信息更新例行程序操作的流程图。
图1显示的数据处理系统包括客户机22、代理服务器分层系统24、网络25及内容服务器20。
客户机可以以父对象、子对象、所请求对象、选定对象、页面、所请求信息、和选定信息的形式请求信息。父对象与子对象相关,即这些父对象可能在历史上已着手过对相关联的一个或多个子对象的相继请求。所请求对象类似于父对象,而选定对象类似于子对象。所请求对象是被一个或多个客户机实际请求的对象。与此同时,选定对象是与所请求对象成组或与所请求对象相关的对象,即选择对象可能在所请求对象之后紧接地、暂时地被请求。所请求信息包括所请求对象、父对象、以及由客户机请求的其他形式数据。选定信息包括子对象、选定对象、以及其他形式的可能被预取的数据。
客户机22可以从内容服务器20或代理服务器24请求信息。然而,代理服务器24通常作为客户机和网络25以及内容服务器20之间的中介物。有利的是,如果代理服务器分层系统含有所请求信息或有能力完成所请求的任务,则代理服务器24可以满足客户机的信息请求而无需与内容服务器20接触。图1所示数据处理系统可以应用于因特网。例如,内容服务器20可以包含一万维网站点,而网络25可以包含因特网。
图1显示的是数据处理系统各组成部分之间的逻辑连接26,这与物理连接相反。逻辑连接26代表数据处理系统内对象和请求的信息流。逻辑连接26通常不代表各代理服务器24之间的物理连接。由于工作负载和/或诸如节点或通信链络失效等物理事件,逻辑连接26可能会改变。不同类型的对象可能沿不同的逻辑传输路径到达客户机22。
尽管在实践中实质上可使用任何数量的客户机22和代理服务器24,但在图1所示举例中以4个客户机22和4个分层级别的代理服务器24为其特征。在实践中,允许在代理服务器分层系统中有任意的分层数,而客户机22可以在逻辑上连接于代理服务器分层系统的任何层。例如,代理服务器分层系统24可以是单一的代理服务器。本发明可以以仅只单个客户机22和单个代理服务器24来实现。
如图所示,最高层代理服务器被指定为零层代理服务器30。“零层”是一种任意性指定,它只是定义图1示例中一个代理服务器相对于另一代理服务器所处的状态。最高层代理服务器可以在逻辑上与网络25相连。较高层的代理服务器21与较低层的代理服务器23相比较,逻辑上网络25的关联更近。(所以可以理解,用这里的术语,把零层代理服务器看作是代理分层系统的顶级,零层“高于”1层,而1层又“高于”2层,如此等等)。
第一1层代理服务器35和第二1层代理服务器37逻辑上与0层代理服务器30相连。第一1层代理服务器35与第一2层代理服务器40和第二2层代理服务器43相连。第一2层代理服务器40逻辑上与第一3层代理服务器50和第二3层代理服务器55相连。
客户机22包括第一客户机600、第二客户机603、第三客户机700、以及第四客户机703。第一客户机600和第二客户机603逻辑上与第一3层代理服务器50相连。第三客户机700和第四客户机703逻辑上与第二3层代理服务器55相连。
现在从第二客户机603的角度描述该数据处理系统。该第二客户机603与它的直接较高层代理服务器相连。如所示,该直接较高层代理是第一3层代理50然后第二客户机603分别与第一2层代理服务器40、第一1层代理服务器35以及0层代理服务器30相连。第二客户机603能通过网络25访问各种内容服务器20。虽然第二客户机603的通常通信路径是经由直接较高层代理服务器(即第一3层代理服务器50),但第二客户机603或较低层代理服务器可以与较高层代理服务器24或网络25直接通信。这第二客户机甚至可以有其自己的客户机代理去管理高速缓存。
从第二客户机603的角度去看,某些代理服务器不是它的代理分层系统的一部分。例如,第二3层代理服务器55和第二2层代理服务器43以及第二1层代理服务器37不是这第二客户的代理服务器分层系统的一部分。
客户机22可以包括但不限于个人计算机、工作站、机顶盒(set topbox)等。网络25可以包括但不需要包括因特网、万维网、内联网(Intranet)、局域网(LAN)等。
代理服务器24和内容服务器20可以包含各种市场上可得到的计算机。例如,代理服务器24可以以IBM公司出售的因特网连接服务器(ICS)来实现,内容服务器20可以以Lotus Go Web服务器、LotusDomino服务器等来实现(也可从IBM公司购到)。代理服务器24或内容服务器20能在任何计算节点上运行,这包括但不限于S/390SYSPLEX、SP2、或RS6000工作站等产品(也可从IBM公司购到)。总之,代理服务器24或内容服务器20可以包含任何通用计算机和能提供万维网页面访问、远程文件传输、电子邮件、以及对客户机22的事务支持的相关软件。
图1的数据处理系统可以使用传统代理分层系统的层性来维持数据传输的效率。例如,如果一个所请求的对象不能在本地的较低层代理服务器上得到,则向较高一层代理服务器发出请求请求这不能得到的对象。如果该较高层代理服务器先前已把该对象高速缓存在它的高速缓存存储器,则该较高层代理服务器经由该较低层代理服务器把所请求对向下传到该客户机。否则,该较高层代理服务器将试图从更高一层的服务器得到该对象。一旦得到了所请求的对象,它便被下传到较低层代理服务器或请求该对象的客户机。
图2更详细地描述了图1所示数据处理系统。该数据处理系统包括代理服务器24、内容服务器20、网络25及客户机22。该数据处理系统最好包括预取单元250、统计表261、统计更新单元252、主高速缓存297、以及预取高速缓存298。
预取单元250最好包括代理服务器24中的第一预取处理器248和客户机22中的第二预取处理器241。统计表261包括与代理服务器24相关联的统计表293和与内容服务器20相关联的统计表267。统计更新单元252包括用于更新第一统计表293的第一更新统计单元264和用于更新第二统计表267的第二更新统计单元269。主高速缓存297包括每个代理服务器24中的第一主高速缓存294和在每个客户机22中的第二主高速缓存246。预取高速缓存298包括代理服务器24中的第一预取高速缓存296和在客户机22中的第二预取高速缓存249。
代理服务器24是能通过网络25服务于请求的计算节点。代理服务器24包括第一处理器280、第一存储器290以及第一存储单元281。第一存储器290可以包含例如,随机存取存储器(RAM)。第一存储单元281可以包含例如直接存取存储装置(DASD)。第一存储器290存储代理服务器逻辑295,它以计算机可执行代码形式实现。代理服务器逻辑295从第一存储单元281加载到第一存储器290供第一处理器280执行。代理服务器逻辑295操作的详情示于图10。
代理服务器逻辑295包括一个代理对象请求处理器283、代理对象处理器284、第一预取处理器248、预取被查访消息处理器285、预取更新装置291、第一更新统计例行程序264、第一统计表293、第一主高速缓存294以及第一预取高速缓存296。
代理对象请求处理器283的操作详情在图11中描述。代理对象处理器284的操作详情在图13中描述。预取被查访消息处理器285的操作示于图12。统计更新单元252(即第一更新统计例行程序264)的操作详情示于图5。
预取单元250(即第一预取处理器248)的操作详情示于图8。预取更新单元291或预取线索信息更新例行程序的操作示于图14。代理服务器逻辑295维持第一主高速缓存294和第一预取高速缓存296。
内容服务器20是能通过网络25服务于请求的计算节点。内容服务器20包括第二处理器260、第二存储器263、及第二存储单元265。第二存储器263可以包含例如随机存取存储器(RAM)。第二存储单元265可以包含例如直接存取存储装置(DASD)。第二存储器263存储内容服务器逻辑268或内容服务器软件。
接下来参考图4更详细地说明内容服务器逻辑268的操作。内容服务器逻辑268作为计算机可执行代码来实现,它从第二存储单元265加载到第二存储器263供第二处理器260执行。内容服务器逻辑268包括第二统计表267、第二更新统计单元269用于更新第二统计表267、以及产生单元266用于产生预取线索信息。第二统计表267存储关于客户机所请求信息和与所请求信息关联的可能预取信息的数据。统计表261对预取线索信息的产生做贡献,预取线索信息是基于客户机的实际查询行为。图3B中给出统计表261的详情。
参考图5更详细地说明第二更新统计单元269的操作。产生单元266由第二统计表267中的信息和所请求信息产生预取线索信息。产生单元266可以作为产生预取线索信息(PHI)例行程序来实现,如图6所描述的那样。
客户机22最好包括第三处理器240、第三存储器245和第三存储单元242。第三存储器245可以包含例如随机存取存储器。第三存储单元242可以包含例如直接存取存储装置(DASD)。第三存储器245存储客户机逻辑244或客户机软件。接下来参考图7更详细地说明客户机逻辑244的操作。客户机逻辑244作为计算机可执行代码来实现,它从第三存储单元242加载到第三存储器245供第三处理器240执行。
客户机逻辑244包括客户机对象请求处理器247、第二预取处理器241、第二主高速缓存246、以及第二预取高速缓存249。客户机对象请求处理器247从第二主高速缓存246、第二预取高速缓存249、代理服务器24或内容服务器20中得到客户机所请求的对象。客户机对象请求处理器247的操作详情示于图9。
客户机逻辑244维持第二主高速缓存246和第二预取高速缓存249。第二主高速缓存246用于存储被频繁查访的对象,而第二预取高速缓存249则用于存储实际受到查访之前的对象。预取对象是尚未在新近或先前被查访过但与所查访对象有牵连的对象。在最佳实施例中,主高速缓存297由传统的LRU(最近最少使用)算法管理。本领域技术人员还会理解,任何其他替代策略可用于维持主高速缓存297。
主高速缓存297和预取高速缓存298可以在逻辑上分开。把预取对象与主高速缓存297中的实际被查访对象在逻辑上分开是为了防止预取对象占用太大的存储空间。可以有各种不同方法来实现从逻辑上分开预取高速缓存和主高速缓存。例如,单个高速缓存可以对预取对象个数加上上限和/或对预取对象所占空间加上上限。主高速缓存297和预取高速缓存298的意思是支持不同的目标。主高速缓存297是用于高速缓存那些具有被重复查访潜力的普及对象。而预取高速缓存只用于支持一次特定的浏览对话(session),作法是预取那些在该对话中接下来最有可能被查访的对象。在本最佳实施例下,如果在分层系统中的较低层节点对一较高层节点的预取高速缓存中的一个对象发出预取请求,则该对象将被下传到该较低层节点并被标记为可从该较高层节点的预取高速缓存中删除,因为预取的目的已经完成。当一预取对象实际得到查访时,它可以被移到主高速缓存297,这取决于主高速缓存297的管理策略。在本最佳实施例下,使用LRU替换策略,一个预取对象一旦被查访则被移到主高速缓存。
可以设计出另一种判据用于把对象从预取高速缓存298接纳到主高速缓存297中。在Abrams等的“高速缓存代理:限制与潜力”(第4届国际万维网会议文集,1996)中讨论了一些高速缓存替换策略,这些策略在决策过程中考虑了对象的大小。对于本领域一般技术人员而言,其他高速缓存替换策略也是公知的。
图3A的流程图说明从一内容服务器20或一代理服务器分层系统为客户机动态预取数据的方法。首先,在框100中,一客户机从一代理服务器或一内容服务器20请求信息。第二,在框102中,识别出在该内容服务器20和代理服务器中历史数据访问或数据查访的模式。在实践中,完成框100和框102的顺序可以被颠倒。
第三,在框104中,内容服务器20根据在框102中识别出的数据查访模式产生关于对所请求信息进行相关访问的预取线索信息。第四,在框105中预取线索信息可以注解所请求的信息。例如,预取线索信息可以作为与所请求信息(即对象)搭在一起的元数据被传送。对于建立或产生预取线索信息的步骤,内容服务器20从大量并发用户或客户机中追踪使用/查访模式。在实践中,内容服务器20确定哪组对象与所请求信息或所请求对象相关联。内容服务器20利用所请求对象产生和提供预取线索信息(PHI)。在预取步骤或直接在该步骤之前,代理服务器可以借助本地考虑去解释PHI,以决定要预取哪些选定对象。
第五,在框106中,随着所请求信息通过代理服务器分层系统,预取线索信息得到更新。在框106中的更新反映了所完成的预取操作和在较高的各层中的高速缓存状态,以及诸如本地查访模式等其他本地考虑。在把对象传送给下一(较低)层代理或客户相站之前,该代理服务器可以修改PHI以反映它的预取决定和各种本地考虑。随着一个对象通过代理分层系统,发送节点设置一个初始PHI,而接收节点可以从这初始PHI中导出一个最终PHI。最终PHI根据所请求对象确定哪些选定对象要预取。预取操作和决定是由接收端发起的,而不是由发送端发起的。
最后,在框108中,根据预取线索信息和所请求信息,选定信息被预取。代理服务器或客户机根据所收到对象中的PHI信息、本地保持的查访信息(如果能得到的话)和诸如可得到的存储大小等本地考虑、以及访问时间,来决定是否预取在PHI中指定的对象子集。
在框104中产生预取线索信息最好使用PICS协议或PICS兼容格式(见下文)。在框104中产生的PHI与每个被高速缓存的对象一起存储,作为其元数据部分,从而当一被高速缓存的对象被请求时,该对象的PHI能被检查以发起适当的预取操作。PHI信息可通过PICS协议提供。PICS协议提供关于每个PHI对象及其特征(如大小)的临界性信息以及分层系统较高层的高速缓存状态。
对预取线索信息的更新可通过代理服务器分层系统来完成。代理服务器可以收集本地信息并在代理分层系统中向下分配或分发预取决定。再有,关于哪个中间代理已预取了一个对象的信息能应用于较低层代理的预取决定,以优化存储和带宽的利用。
在代理服务器分层系统中的代理服务器彼此合作以提供指向接收器的预取决定。该预取决定可以由每个代理和客户机合作作出。元信息格式的预取线索信息注解(即附带)所请求对象。预取线索信息提供关于潜在预取候选者的信息。中间代理服务器可以根据本地条件修改元信息或预取线索信息,并在一对象被高速缓存时把它和元信息一起存储,所以在其后一旦查访该对象预取便能被触发。
图3B说明统计表261的数据格式。统计表261将通指第一统计表293或第二统计表267。一个或多个代理服务器24维持第一统计表293。内容服务器20可以维持第二统计表267。第一统计表293和第二统计表267的格式最好相似或相同,以促进在代理服务器分层系统中的不同代理服务器中更新统计表261。统计表261有助于根据从与统计表261相关联的代理服务器或内容服务器20的角度看到的实际观察者查询行为,提供预取线索信息(PHI)。统计表261能用于观察代理服务器分层系统中在它之下的所有通信联系的客户机的查访情况。
例如,在图1中,在第一3层代理服务器50中的第一统计表293追踪第一客户机600和第二客户机603的集合数据访问行为。与此同时,在第二3层代理服务器55中的第一统计表293追踪第三客户机700和第四客户机703的集合数据访问行为。在第一2层代理服务器40中的第一统计表追踪第一客户机600、第二客户机603、第三客户机700以及第四客户机703的集合行为。虽然较低层代理,如第一3层代理服务器50,可能会更好地跟踪客户机600的兴趣,但较低层代理可能不能从客户机的足够样本量中得到足够的查访统计来提供有意义的预取线索信息(PHI)。
在本最佳实施例中,当对象O被从内容服务器20中请求时,服务器20根据它的第二统计表267中的信息提供初始预取线索信息PHI。当对象O沿代理分层系统下传时,沿到客户机22路径的任何代理服务器24都能修改在对象标题中的预取线索信息(PHI),以使PHI符合于第一统计表293中的本地情况,如果存在对对象O足够的本地查访的话。根据诸如由较低层代理服务器编好索引的一特定客户机的兴趣或偏好,第一统计表293可以替换第二统计表267。
在本最佳实施例中,内容服务器20保持第二统计表267,它是客户机22关于所请求信息的数据访问频度数据库。该数据库可以扩展成包括请求代理服务器24的数据访问频率。类似地,一个或多个代理服务器24保持第一统计表293。例如,统计表261有具有第一数据结构304和第二数据结构306的第一数据(array)383。如图所示,第一数据结构304和第二数据结构306是记录。在统计表261中的每个记录包含若干字段,包括父对象标识符301(即ObjectID)、第一计数302(即TCount)、以及访问清单数据指针303(即Alist)。
父对象标识符字段301含有对象标识符。例如,对于因特网或相关应用,父对象标识符301含有对象的URL。第一计数字段302含有由该服务器观察到的与该父对象标识符相关联的父对象被查访的次数。就是说,第一计数字段含有所请求对象的实际请求次数。第一计数302代表父对象访问频率。访问清单数据指针303含有指向访问清单370的数据指针。
统计表261有访问清单370,它含有例如第一访问记录340、第二访问记录350、第三访问记录360以及第四访问记录380。如图所示,与第一数据结构304相关联的父对象标识符有一访问清单370,它包含第一访问记录340、第二访问记录350、以及第三访问记录360的被链接清单。下一个记录数据指针字段313含有一个指针,指向与一特定父对象标识符301关联的访问清单370上的下一个访问记录。与第二数据结构306相关联的父对象标识符301的访问清单只包含第四访问记录380。
在访问清单上的每个记录或数据结构含有若干字段,包括子对象标识符310(即AObiectID),第二计数312(即RCount)、下一个记录数据指针313(即Nxt)。数据结构可以是一般数据结构、记录或数组的格式。如图4所示,该数据结构是记录,这些记录构成访问清单370内部的一个被链接清单。
在另一个实施例中,统计表的数据格式可以包括一个原初数组,它与树结构中的多个另一种次级数组相关联。这原初数组将包含关于父对象的信息,而次级数组将包含关于相应父对象的子对象的信息。
子对象标识符310含有一对象的对象标识符(URL)。父对象标识符301与访问清单上的一个或多个子对象标识符相关联。子对象标识符310标识出潜在的预取候选对象,如果该子对象的父对象实际被查访的话。第二计数312含有子对象通过其父对象被查访的次数。换句话说,第二计数是在相关联的父对象先前查访之后接下来该子对象暂时、紧接地被查访的频率。第二计数312代表子对象访问频率。
可根据对客户机实际查访行为的观察,动态地得到访问清单370上的子对象标识符310。例如,在HTML中,一个Web页面能有到达其他Web页面的HTTP链路。由HTTP链路指出的那些Web页面是含有这些HTTP链路的(父)Web页面的潜在子对象。当该父对象在被观看时,如果在该父对象中含有的一个查访(HTTP)链路被点击,则相应的子对象得到查访。由于到该子对象的查访链路能被包括在多个其他父对象中,所以一个子对象能含有不只一个父对象。在HTTP协议下,对子对象的请求包含父URL作为其标题中的查访者信息。所以服务器能把其后的子查访动态地关联于它的父对象(通过子对象标题中的查访者信息)。如果一个客户机频繁地点击或选择一个子对象,该子对象可能变为预取候选或选定信息。
除了动态追踪观看者查访行为外,还能周期性地完成对Web日志的静态分析或挖掘(mining),以提取统计表261的对象组合信息。挖掘算法识别一起被查访的对象组,以得到潜在的预取对象组用于HPI(预取线索信息)。在Kun-lung Wu等的“Speed Tracer(高速追踪器):一种Web使用情况的挖掘和分析工具”(IBM研究文档20895,1997年5月(见IBM系统杂志V37,n1,p89-105,1998))中描述了挖掘Web日志以提取查访模式的一种方法。Speed Tracer算法提供关于在一个使用者对话中被频繁共同查访的页面组的信息和频繁往返路径的信息。Speed Tracer算法是一种深处挖掘型算法,它能发现不是立即被共同查访的相关联查访。它还能根据到给定对象的往返路径对下一组板查访对象作出较好预测。
其他类型的数据挖掘算法能被用于识别统计表261的访问模式。例如,其他数据挖掘算法包括分类和集群(clastering),它也能用于Web日志分析以得到查访模式。再有,还能由内容提供者根据它对对象关系的了解来提供PHI。例如,PHI能包括,但不限于,所请求软件下载的修补和升级、所请求JAVA小应用(applet)的Java类、以及在所请求对象内包含的各对象(例如GIF)。
在本最佳实施例中,在收集统计信息时,由客户机站对一对象的实际查访是与对一对象的预取请求区分开的。在统计表261中的第一计数302(即TCount)和第二计数310(即RCount)反映的是实际查访,而不是预取。这就是说,预取操作将不造成对第一统计表293或第二统计表267的更新,只有实际的对象查访才将造成这种更新。
预取线索信息或预取线索信息清单能使用各种数据结构来注解所请求信息或所请求对象。例如,预取线索信息可以使用搭载的元数据在请求者和服务器节点之间通信。在一个HTTP实现中,信息交换可作为元数据包括在使用现有万维网协议的对象标题中。PICS(因特网内容选择平台)指定了一种发送关于电子内容的元信息的方法。PICS可应于(a)所请求信息的注解,(b)预取选定信息、预取候选者、或子对象,以及(c)在信息被预取后确认预取操作。
PICS是作为万维网联合协议推荐(Web Consortium ProtocolRecommendation)的一种本领域周知技术。PICS最初是用于发送基于值的定额标签(rating label),如“有多少裸露(nudity)与本内容相关联”,但元信息的格式和含义是全通用的。在PICS中,关于电子内容的元信息根据该信息的“定额服务”或“产出者的预期应用”来分组,而在这样的一组内部可以传输任意多的信息类别或维数。每个类别有一个允许值范围,而对于特定的一条内容,一个特定类别可以有单一值或多个值。此外,元信息组(称作“PICS标签”)可以包含期满信息。还有一些手段允许把PICS标签应用于不只一条电子内容。用于具体的一条电子内容的每个PICS标签,能独立地加到该内容上或从该内容上去掉。
例如,可以从一服务器发送一个图像文件,它带有一个PICS标签,该标签的“定额服务”字段指出,它含有根据“Safe Surf(安全漫游)”定额系统给出的基于值的定额标签。根据本发明的最佳实施例,当该图像文件传送通过一个企业级代理时,它可能在PICS标签上得到一个新的被更新的类别值,以反映“定额服务”的本地考虑。这样,客户计算机将只看见PICS标签的新类别值。HTTP协议已被扩展,从而使其请求标题和响应标题支持PICS。规定其他公共应用协议(如NNTP)的技术团体现在也在考虑增加对PICS的支持。可以把所希望的PICS标签类型清单与请求一起包括进去,作为这些协议的组成部分。PICS还指定一个询问格式,用于从一个中央标签局(bureau)服务器请求PICS信息。
一个PICS标签实例是:
(PICS-1.1“http://the.rating.service”labels for
“http://the.content”exp“1997.07.09 T 08:15-0500”r(n4s3
v2))这里“n”、“s”和“v”是各种元信息类型的传送名,这些内容的可应用值是4(对于n)、3(对于s)和2(对于v)。只有认识标识符“http://the.rating.service”的软件才会知道如何解释这些类别和值。
在一个最佳实施例中,引入了三种不同的PICS标签。第一种PICS标签称作预取标签(即P-标签),由服务器节点用于提供PHI。第二种PICS标签称作请求标签(即R-标签),用于请求预取候选对象。第三种PICS标签称作查访标签(即X-标签),用于根据哪些预取对象实际得到查访来提供对预取有效性的反馈。
预取标签能包括,但不限于下述类别的组合,包括标识符类别、概率类别、大小类别、以及高速缓存类别。标识符类别(即ID类)有一个值,它传递预取候选者的URL。概率类别(即PROB类)有一个值,它传递预取有用性概率。在本最佳实施例中,使用一个查访概率估计值。查访概率指示该预取候选者得到查访的概率。大小类别有一个值,它传递预取候选者的大小或存储器需求。高速缓存类别有一个值,它传递关于任何较高层代理服务器的信息,该代理服务器或者在其第一主高速缓存294中或者在其第一预取高速缓存296中有该预取候选对象的副本。在本最佳实施例中,只有最靠近的较高层代理被标识出来。
请求标签能包括但不限于如下类别,包括标识符类别(即ID类别)。标识符类别的值传递要被预取对象的URL。在本最佳实施例中,当一个(代理或客户机)节点要预取一个被建议的预取候选对象时,使用请求标签传递要被查访的对象的URL,通过代理分层系统,把一个HTTP标题请求送回内容服务器。当代理服务器24从一较低层节点收到一个预取请求时,如果该对象在这个代理服务器24的主高速缓存中或其预取高速缓存中,则它将服务于该请求。否则,它把该预取请求向前送到下一个较高层代理。
查访标签可包括,但不限于如下类别,包括对象标识符类别(Object-ID类别)和查访者标识符类别(Referrer-ID类别)。对象标识符类别有一个值,它传递得到查访的预取对象的URL。查访者标识符类别有一个值,它传递一个对象的URL,该对象在其PHI中含有由对象标识符类别值指出的对象。
在本最佳实施例中,当一预取对象得到实际查访时,则用查访标签通过代理分层系统将一HTTP标题请求发送回内容服务器20,以传递被查访的预取对象及其查访者对象的URL。在后面把这种类型的HTTP标题请求称为预取被查访消息。当一代理服务器24从一较低层节点收到一预取被查访消息时,它更新其第一统计表293,并把该请求向前传送给下一个较高层代理服务器。
图4描述服务器逻辑268的一个实例,它更新内容服务器20中的第二统计表267。对第二统计表267的更新是由来自客户机22的一个对象请求触发的。内容服务器20最好在把所请求的对象发送给客户机22之前,先产生一个预取线索信息,以作为注解放入或插入到该对象的对象标题中。
在参考框405开始,内容服务器20等待输入。在决策框410中,如果所收到的输入是对请求对象O的一个对象请求,则在参考框415统计更新单元252或第二更新统计例行程序269被调用。在参考框420,用于产生预取线索信息266的产生单元266或一预取产生便行程序被调用。在下文中将参考图6描述产生单元266或PHI产生例行程序的更详细举例。在参考框425,例如PHI被插入所请求对象的对象标题内。否则,预取线索信息可以在框425中注解所请求对象或所请求信息。在本最佳实施例中,PICS协议可以用于注解所请求对象。PHI被收集在P-标签中,在那里标识符类别值反映预取候选者的URL。在框430中,所请求对象被送回到发请求的客户机或发请求的代理服务器。在决策符号435中,如果所收到的输入是一预取被查访消息(即带有X-标签的HTTP标题请求,它指出预取对象O实际得到查访),则在步骤440统计更新装置252或第二更新统计例行程序269被调用。对于其他类型输入,它们不是本发明的集中点,例如一个FTP(文件传输协议)请求,可以在参考框445中调用适当的其他处理器。
图5显示统计更新单元252如何更新所求统计表261之一。统计更新单元252是指用于更新第一统计表293的第一更新统计例行程序264,或用于更新第二统计表267的第二更新统计例行程序269,或者指第一更新统计例行程序264和第二更新统计例行程序269二者。统计表261或者指第一统计表293,或者第二统计表267,或者指第一统计表293和第二统计表267二者。统计更新单元252首先查找查访者对象中的信息。然后所请求对象被放在查访者对象的访问清单或预取清单中。
在参考框505开始,统计表261通过使第一计数递增,来反映对象O已经又被查访了一次。换句话说,在框505中TCount(O)被增1。如果对象O尚未在统计表261中,则一父对象标识符被插入统计表261,并使TCount(O)的初值为1。如果在统计表261中得不到空的位置,则新的父对象标识符替代最近最少被查访的条目。在决策符号510中,通过例如检查所请求对象的对象标题,来检查所请求对象,以得到查访者信息。例如,在HTTP协议中,在标题中提供查访者对象以指出哪个对象含有与所请求对象的HTTP链接。如果在标题中发现了一个查访者对象(R),则在步骤520统计表261被检验,看看对象O是否已在对象R的访问清单上。如果是,则在框530对所请求对象使其第二计数(即RCount(O))增加1。否则,在框525,所请求对象(即对象O)被插入父对象(即对象R)的访问清单中,并使第二计数(即RCount(O))初始化为1。
图6描述产生单元266的一例,产生单元266用于产生放入预取线索信息清单的预取线索信息。预取线索信息清单含有子对象的子对象标识符,如果第二计数与第一计数之比超过一个线索阈值的话。预取线索信息清单代表一个精炼过的或过滤过的访问清单。就是说,产生单元266从统计表261接受输入并对输入过滤,以得到预取线索信息清单。
产生预取线索信息的产生单元266代表一个预取线索信息(PHI)产生例行程序266,它在参考框610中开始。在参考框610中,一个父对象(即对象O)的访问清单被检验,看它是否为空的(即Alist(O)是否为“空(null)”)。如果访问清单不是空的,则在参考框620中令Cj为该父对象(即对象O)的访问清单上标识的下一个子对象(即子对象标识符)。
在决策符号630中,子对象Cj的查访概率与一线索阈值(即TH)比较,线索阈值(TH)是预先指定的阈值值(例如0.75)。在本最佳实施例中,Cj的查访概率被定义为第二计数与第一计数之比(即RCount(Cj)/TCount(O))。该比值是在父对象(对象O)被查访之后子对象(对象Cj)得到查访的概率的估计值。如果在决策符号630中,Cj的查访概率大于线索阈值(即TH),则在参考框640中子对象标识符(Cj)将被包括在PHI清单中。换句话说,如果该比值超过信息阈值,则该子对象标识符和相关联信息被放在预取线索信息清单上。
产生单元266可能需要软件子例行程序或软件组成部件以在参考框630中实现比较。具体地说,用于产生预取线索信息放入预取线索信息清单的产生单元266可以包括计算查访概率的计算手段和把查访概率与线索阈值进行比较的比较手段。
在本最佳实施例中,使用PICS协议,PHI信息存在P-标签中,这里子对象(Cj)的URL被取作标识符类别(即ID类别值),它的查访概率和大小被分别取为概率类别(即PROB)和大小类别值。在决策符号645中,如果对象O的访问清单尚未被完全扫描,则查访框620将被再次执行。
可有各种不同的判据用于从统计表261中选择预取候选者。例如,可把过去时间间隔的查访概率滑动平均作为判据。再有,预取候选者选择过程可以做成迭代式的。如果一个子对象(对象Cj)被选作父对象(对象O)的预取对象,则在子对象(对象Cj)的访问清单上的任何子对象(对象Cji)可以被评估,以确定是否要被包括在父对象(对象O)的预取清单中,如果尚未被包括的话。在决策符号630中,比较单元或评估单元现在可以测试RCount(Cj)/TCount(O)和RCount(Cji)/TCount(Cj)二者乘积是否大于线索阈值(TH)。
图7描述客户机逻辑244的操作举例。图7显示,一旦一个对象被请求,则客户机对象请求处理器247便被调用。否则,预取处理器241可以处理那些没有被请求但需要存储在客户机22的第二预取高速缓存249中的对象。
在框710中开始,客户机22等待输入。在决策符号720中,如果所收到的输入是一对象,则在参考框730中第二预取处理器241被调用。在框740中,客户机对象处理器被调用,以把对象回送给客户机22处发请求的应用程序。如果在决策符号750中所收到的输入是一对象请求,则客户机对象请求处理器247在参考框760处被调用。对于其他类型输入,它们不是本发明的集中点(例如推入(push)请求),在参考框770中可调用一适当的其他处理器。
图8描述预取单元250的操作举例,其包括第一预取处理器248、或第二预取处理器241、或第一预取处理器248和第二预取处理器241二者。总之,预取单元250使用图6中的产生装置266所产生的预取清单作为输入,以确定在预取线索信息清单上所查访的子对象是否有理由存储在预取高速缓存298之一中。预取单元250为预取线索信息清单上的每个预取对象候选者或子对象标识符计算一个预取值。该预取值考虑子对象的访问概率和存储子对象的访问费用。具有最高阈值值的那些子对象被首先高速缓存,直至预取高速缓存298之一中可能得到的空间被充满为止。
在参考框805开始,令L为预取候选对象的PHI清单。预取候选对象可以以预取线索信息清单上的子对象标识符形式来表示。在本地高速缓存(即预取高速缓存或主高速缓存)中出现的任何预取候选者被从L中去掉。在框810中,L中每个对象的预取值(PV)被计算出来。在本最佳实施例中,PV值被定义为查访概率乘以访问费用。访问费用是基于高速缓存预取候选对象或PHI清单上标识的子对象的最近场地而估计出来的。作为一个实践中的问题,子对象最好在PHI清单上由子对象标识符来识别而不是作为整个子对象,以节省存储空间。查访概率最好来自概率类别(PROB类别)值,而最靠近的高速缓存场地来自PICS标签的高速缓存类别值。在框820,具有最高PV值的预取候选对象被选择。在参考框830,确定为容纳该预取候选对象(即Oj)所能得到的预取缓存空间量。这一空间或者是当前没有使用的,或者被有较低PV值的对象所占据,这些较低的PV值只是被评估的当前预取候选对象(即Oj)PV值的一分数(例如一半)。在预取高速缓存298之一中被标记为可删除的对象所占有的任何存储空间被认为是当前未使用的空间。在决策符号840中,预取高速缓存298之一被检验,看看是否有足够的空间给Oj。如果是,则在参考框850中,对象Oj被预取到预取高速缓存298之一中。在框860,Oj从PHI清单(即L)中去掉。在参考框870,如果L不是空的,则重新执行与参考框820相关联的步骤。
虽然在本实施例中,每次预取一个对象,但在一个请求中能一起预取多个对象。在参考框850中,Oj可被放在一个预取清单上。在框870,如果L为空的,则以这整个预取清单发出预取请求。再有,即使在预取高速缓存中没有足够的存储空间,仍可维持一个待决预取清单,从而当存储空间变为可得到时,能发起补充的预取。
通过使用HTTP协议,在预取过程中该通信对话能保持开放,以减小通信开销。无需对每次预取重新建立对话。
图9描述客户机对象请求处理器247的操作举例。概括地说,客户机对象请求处理器247首先搜索第二主高速缓存246,然后再搜索第二预取高速缓存249。如果该对象既不在第二主高速缓存246又不在第二预取高速缓存249中,则向服务器发送一个对象请求。如果该对象是在第二预取高速缓存249中,则有一个预取被查访消息发送到服务器之一,以指出该预取对象实际被查访过。然后,这第二预取处理器241和客户机对象处理器被使用。
在决策符号905处开始,如果在第二主高速缓存246中发现了所请求的对象,则在参考框925中第二预取处理器241被调用,以根据与对象O关联的PHI发起适当的预取操作。在参考框930,客户机对象处理器被调用,以把所请求对象回送给客户机处发请求的应用程序。在决策符号910中,如果在第二预取高速缓存249中发现了所请求的对象,则在框920中向内容服务器20发送一个预取被查访消息,从而使它的第二统计表267能被更新,以包含对该预取对象的实际查访。事实上,当预取被查访消息通过代理分层系统传播到内容服务器20时,在每个中间代理中的第二统计表267也将得到更新。在框910,如果该对象不在第二预取高速缓存249中,则在参考框915中通过代理分层系统向内容服务器20发送一个对象请求。
预取被查访消息可以批处理。就是说,可以维持一个预取被查访清单,并周期性地向较高层服务器发送一个组合预取被查访消息,以确认预取被查访清单上所有对象的查访。
图10描述代理服务器逻辑295的操作举例。概括地说,对输入根据该输入是否是一个对象请求、对象传输、或预取被查访消息进行分类。根据该输入,可得到三种不同的处理器或软件例行程序:代理对象请求处理器283、代理对象处理器284、以及所预取的查访消息处理器285。
在参考框1005开始,代理服务器24等待输入。如果在决策符号1010中所收到的输入是对对象O的对象请求,则在框1015中代理服务器24检验是否已经存在一个对该对象O的待决请求。这个待决请求可能是由于由这个代理服务器24发出的对对象O的预取请求,或者是由另一个代理服务器节点在早些时候发起的对该对象O的请求,而这另一个代理服务器节点在代理服务器分层系统中是一个较低层的节点。如果在参考框1015中没有对对象O的待决请求,则在框1020中代理对象请求处理器283被调用。在决策符号1025中,如果所收到的输入是一个对象(来自较高层代理),则在参考框1030中代理对象处理器284被调用。否则,在框1040,如果所收到的输入是一个预取被查访消息,则在框1045中调用预取被查访消息处理器285。对于其他类型的输入,它们不是本发明的集中点(如FTP请求),这可在框1060中调用适当的其他处理器。
图11描述代理对象请求处理器283的操作举例。概括地说,如果对象在预取高速缓存中,则该对象被回送或发送到发请求的客户机,或发请求的代理服务器。在此之后,如果所请求的对象是一个预取请求,则所请求的对象被标记为可从代理服务器24的第一预取高速缓存296中删除的。如果对于所请求的对象未曾提供过预取请求,则把一个预取被查访消息发送给内容服务器20。然而,只有当从第一预取高速缓存296中发送出所请求对象时,才发送所预取的查访消息。如果一个所请求的对象既不在第一预取高速缓存296也不在第一主高速缓存294,则向另一代理服务器24或内容服务器20发送一个对象请求。在第一主高速缓存294中发现的所请求对象被回送或发送到发请求的客户机或代理服务器24并且第一统计表293被更新,如果该请求不曾是一个预取请求的话。
在决策符号1105中开始,如果在预取高速缓存中发现所请求对象O,则在框1130中对象O被回送到发请求的节点。在决策符号1135中,如果该请求是一个预取请求,则在框1150中把第一预取高速缓存296中的对象O标记为可删除的。从第一预取高速缓存296中删除对象为将来的预取造成了空间,因为该预取对象O现在已被代理服务器24的一些较低层节点预取了。否则,在参考框1140中,高速缓存管理器被调用,以把对象O从第一预取高速缓存296移到第一主高速缓存294,因为对象O已实际被查访。在框1160,一个预取被查访消息通过代理分层系统服务器发送到内容服务器20。在框1170,更新统计例行程序被调用,以更新本地第一统计数293,以包含该预取对象O的实际查访。在决策符号1110中,如果没有在第一主高速缓存294中发现该对象,则在参考框1125通过代理服务器分层系统向内容服务器20发送一个对象请求。在决策符号1115中,如果该对象请求不是一个预取请求,则在框1120中第一更新统计例行程序264被调用,以更新本地第一统计表293,使其包含该对象的实际查访。在框1180,对象O被回送到发请求的节点。
图12描述预取被查访消息处理器285的操作举例。预取被查访消息处理器285首先看看一个对象是否在第一预取高速缓存296中。如果该对象是在第一高速缓存296中,则在传送预取被查访消息之前先调用高速缓存管理器例行程序。如果该对象不在第一高速缓存296中,则把预取被查访消息传送出去。
在步骤1205开始,第一更新统计例行程序264被调用以更新本地第一统计表293,使其包含对预取对象(O)的实际查访。在决策符号1210中,如果对象O是在第一预取高速缓存296中,则在参考框1215中高速缓存管理器被调用,以把对象O从第一预取高速缓存296移到第一主高速缓存294,因为该对象已实际被查访。在框1220,预取被查访消息传送到下一较高层代理。
图13描述代理对象处理器284的操作举例。代理对象处理器284首先调用预取更新单元291或预取线索信息更新例行程序,对此一律进行没有例外。根据预取对象是否被较低层服务器请求过,预取对象请求被不同的处理。如果该预取对象是被一较低层服务器请求过,则把该对象回送给该较低层服务器;否则调用预取高速缓存管理器。如果一预取对象未被请求,则把该对象回送给发请求的代理服务器24或客户机,并调用第一更新统计例行程序264。
在参考框1305开始,PHI更新例行程序或预取更新手段291被调用,以更新对象O的PHI。在参考框1310,如果所收到的对象不是一个预取对象,则在步骤1315调用第一预取处理器248。在参考框1320,该对象被回送到发请求的节点(在较低层中)。在该最佳实施例下使用PICS协议,在P-标签中的高速缓存类别值被更新,如果相应的预取候选对象(由标识符类别值指示)是被这一代理服务器24预取的话。在框1325,高速缓存管理器被调用,以把该对象存储在主高速缓存中。在参考框1355中,更新统计例行程序被调用。在框1330中,如果所收到的预取对象被分层系统中的更低层节点所请求,则在参考框1350中把该对象回送给请求者。否则,它被当前节点请求,并在参考框1340中调用预取高速缓存管理器,通过进行必要的替换以给该对象造成空间,把该对象存储在预取高速缓存。
图14描述预取更新手段291或PHI更新例行程序的操作举例。PHI更新例行程序把所请求对象的本地计数与一预值计数作比较。如果所请求对象超过了第一最小阈值,则它们受第二最小阈值测试。这些阈值可根据经验结果设定。如果本地计数小于第一最小阈值,则保持原来的预取线索信息清单。如果本地计数大于第一阈值,但不大于第二阈值,则预取线索信息清单被修改。
在决策符号1405中开始,如果在本地第一统计表293中对象(O)的本地计数(即TCount)不大于第一最小阈值(即CTM),则保持该对象O标题中的原来PHI。这只是由于这样的事实,即在代理服务器较低层中对该对象没有进行过足够的查访以证明需要进行任何更新行动。在决策符号1415中,如果在本地统计表261中对象(O)的本地计数(即TCount)大于第二最小阈值(即TCH),则忽略该对象标题中的原来PHI,并在框1420中调用PHI产生例行程序以根据本地第一统计表293产生PHI。这是因为在代理服务器24的较低层中有对该对象足够的查访,从而能基于其本地行为产生PHI。否则,在参考框1425中调用PHI修改器,对查访概率本地估计值和PHI清单中每个对象标题(由较高层设置)中的概率值取平均,以此来修改概率类别值。
即使代理服务器24中有一些并没有保持第一统计表293和追踪本地查访模式,该预取方案仍然有效。非追踪的代理服务器简单地接收从较高层代理服务器或内容服务器20传下来的PHI中概率(即PROB)类别值。
该预取方案在多机种代理服务器环境中也仍然有效,在那里一些代理服务器是不理解预取协议和不参加这一合作的传统代理服务器。这些传统的代理服务器既不解释对象标题以发动预取操作,也不保持第一统计表293。传统代理服务器将只是把元数据(即标题中的PICS标签)和对象一起传送给下一层代理服务器,或者把元数据与对象一起存储起来,如果它决定本地高速缓存该对象的话。
即使不存在代理分层系统,本发明也能应用于任何网络或客户机/服务器环境。对象发送者节点能追踪查访模式,导出PHI,并将其包括在对象标题中。此外,对象接收者节点可在它的高速缓存中存储PHI和该对象。一旦查访该对象,则能基于所存储的PHI和本地因素(如前文讨论过的高速缓存大小和访问费用)来发起预取操作。
与高速缓存的对象一起存储PHI为预取提供了额外的机会。诸如有更多存储空间变为可使用、发生额外的查访、或收到预取对象的这些事件能被用于通过检验被高速缓存对象的PHI来触发额外的预取。预取操作不限于从服务器请求对象的时刻,即不象由发送者发起的过程那样。
在本最佳实施例中,已对Web和代理服务器的通用预取策略进行了描述,但本领域技术人员将会理解,本发明可适用于被预取对象具有类似特性的任何场合类型,并不一定限于因特网或万维网应用。
再有,尽管本发明的最佳实施例是针对分层系统中父代理和子代理之间的联合预取,但它能容易地适应于包括兄弟代理之间的联合。例如,如果在较高层没有代理高速缓存了所请求的对象或预取候选者,一个代理还能质询那些兄弟代理。

Claims (35)

1.一种方法,用于从内容服务器(20)预取选定信息,以使一个或多个通过通信网络(25)与该内容服务器相关联的客户机(22)以及一个或多个代理服务器(24)能容易地访问所选定信息;该方法包含如下步骤:
从至少一个代理服务器中请求(100)信息;
基于所请求信息过去被任何所述客户机检索或访问的情况,为所述客户机建立(102、104)预取线索信息;
以所述预取线索信息注解(105)所请求信息;以及
根据预取线索信息和所请求信息,从任何所述服务器中预取(108)选定信息。
2.权利要求1的方法,其中所请求信息包含所请求对象,这里选定信息包含预取候选对象。
3.权利要求2的方法,其中建立预取线索信息的步骤包括如下步骤:
追踪与所述客户机关联的数据查访模式;
把数据查访模式组织成对象标识符组,这些对象标识符组是根据所请求对象和预取候选对象之间的关系组织起来的;
确定所述组中哪些组具有的预取候选对象和所请求对象之间关系足以确认把所述预取候选对象作为选定信息进行预取是正确的。
4.权利要求3的方法,其中追踪和组织数据查访模式的步骤包括如下步骤:
建立数据库以把查访数据模式存储在代理服务器中;
在每个所述数据库内部安排字段,这些字段包括对象标识符和对象计数,对象标识符用于彼此区分所请求对象;对象计数指出被所述服务器之一观察到的所请求对象曾被请求的次数;以及
使访问清单与所述数据库关联,每个所述访问清单含有与每个所请求对象关联的一个或多个预取候选对象。
5.权利要求3或4的方法,其中追踪和组织数据查访模式的步骤进一步包含如下步骤:
建立一个定义所请求对象和预取候选对象之间关系的数据库;
追踪对所请求对象和预取候选对象的访问统计;该访问统计包括关于所请求对象的父对象访问频率和关于预取候选对象的子对象访问频率;父对象访问频率代表一个特定所请求对象被至少一个所述客户机访问的次数;子对象访问频率代表一个或多个所述预取候选对象在紧跟访问那特定对象之后被实际请求的次数。
6.权利要求5的方法,还包含一个根据子对象访问频率和与该子对象访问频率关联的父对象访问频率之比选择预取候选对象的预取清单的步骤,该预取清单只含有其比值超过一阈值概率的那些预取候选对象。
7.权利要求2至6任何一个的方法,其中预取选定信息的步骤包含如下步骤:
预取在所述代理服务器之一或所述客户机之一中已收到的预取候选对象的子集;
根据在所述代理服务器之一上能使用的存储空间大小,把预取候选对象子集选择为选定信息。
8.权利要求2至7任何一个的方法,其中预取选定信息的步骤包含如下步骤:
预取在所述代理服务器之一或所述客户机之一中已收到的预取候选对象的子集;
根据在所述代理服务器之一上的访问时间,把预取候选对象子集选择为选定信息。
9.权利要求2至8任何一个的方法,其中选定对象和所请求对象包含因特网数据,而且其中所请求的对象通过与因特网数据关联的超文本传输协议(HTTP)链路查访选定对象,代理服务器通过在所请求对象的对象标题中存储的所请求对象通用资源定位符(URL)HTTP协议来识别选定对象与所请求对象的关系。
10.权利要求2至9任何一个的方法,其中注解所请求信息的步骤包含把预取线索信息放入一预取标签的步骤,该标签有因特网内容选择平台(PICS)格式,或与PICS格式兼容的标签协议。
11.权利要求10的方法,其中因特网内容选择平台(PICS)格式包括对象标识符类别和查访者标识符类别,所述方法进一步包括一个步骤把查访者标识符类别回送到内容服务器,以标识出曾实际被查访过的任何预取候选对象。
12.权利要求1或2的方法,其中建立预取线索信息的步骤包括如下步骤:
根据对所请求信息的过去检索或先前访问情况,标识所述客户机的数据查访模式,所选择的数据查访模式代表与所述代理服务器之一相关联的所述一些不同客户机在过去检索或访问的任何共同趋势;以及
由数据查访模式定义预取线索信息。
13.前述任何权利要求条款的方法,其中有一个所述代理服务器分层系统,该分层系统含有发送节点和接收节点,所述方法进一步包含如下步骤:
从发送节点向接收节点传送预取线索信息;
把预取线索信息从初始状态修改成最终状态,初始状态是由发送节点确定的,最终状态是由接收节点确定的;处于所述最终状态的预取线索信息被指定为最终预取决定。
14.权利要求13的方法,其中预取选定信息的步骤是由接收节点发起的。
15.权利要求1至12任何一个的方法,进一步包含如下步骤:
把代理服务器组织成服务器分层系统,该分层系统具有多层代理服务器,这多个层是根据每个所述代理服务器与网络的靠近程度确定的,其最高层最靠近网络;以及
解释和更新通过该分层系统从代理服务器传送到客户机的预取线索信息。
16.权利要求15的方法,其中如果存在对所请求信息的本地查访而且本地层服务器的计数超过一最小阈值计数,则该代理服务器更新该预取线索信息。
17.权利要求15或16的方法,其中根据代理分层系统中的高速缓存状态更新预取线索信息。
18.通过网络(25)从一内容服务器(20)预取选定信息的数据处理系统,所述系统与该网络相关联的一个或多个代理服务器(24),以及若干用于通过该网络与内容服务器和一个或多个代理服务器通信客户机;所述系统包含:
从至少一个代理服务器中请求信息的装置;
根据任何所述客户机过去对所述信息的检索或访问情况,为所述客户机建立预取线索信息的装置;
以所述预取线索信息注解所请求信息的装置;以及
根据预取线索信息和所请求信息,从任何所述服务器中预取选定信息的装置。
19.权利要求18的处理系统,其中所请求信息包含所请求对象,其中选定信息包含预取候选对象,其中每个所述代理服务器和至少一个客户机有一存储器,它至少有一个在主高速缓存和预取高速缓存之间的逻辑分隔,其中被预取的选定信息存储在预取高速缓存中。
20.权利要求19的处理系统,其中预取装置根据一种优先方案预取对象并把所预取的对象存储到预取高速缓存中,优先方案首先存储具有最高预取值的对象,并考虑可能使用的预取高速缓存存储器大小,该预取值是基于一个或多个客户机对预取对象进行查访的单个查访概率或累积查访概率。
21.权利要求20的处理系统,其中该预取值基于预取线索信息清单上的预取候选对象将被一些特定客户机访问的估计访问概率,以及基于根据存储选定的预取候选对象所需存储器大小而确定的对象访问成本。
22.权利要求20或21的处理系统,其中预取装置包含一个预取处理器,后者包括计算所述预取值的计算装置和对计算装置计算出的预取值进行评估的评估装置;所述计算装置为预取线索信息清单上的每个预取对象标识符计算其预取值;所述评估装置对多个候选预取对象的预取值进行评估,并对预取线索信息清单上与那些最高预取值相关联的那些候选预取对象给予高速缓存优先。
23.权利要求22的处理系统,其中预取装置包含在至少一个所述代理服务器中的第一预取处理器和在至少一个所述客户机中的第二预取处理器。
24.权利要求19至23任何一个的处理系统,进一步包括一个存储在所述客户机之一中的客户机对象请求处理器,在从代理服务器或网络请求所请求对象之前,该客户机对象请求处理器先在主高速缓存和预取高速缓存上搜索所请求的对象,如果该对象位于预取高速缓存中,则由客户机对象请求处理器产生一个发给服务器的预取被查访消息,指出该预取对象已被该客户机实际访问过,以此来通告内容服务器或代理服务器。
25.权利要求19至24任何一个的处理系统,其中至少一个所述代理服务器包括一个预取被查访消息处理器,用于在调用一个高速缓存管理器例行程序之后传送预取被查访消息,如果所请求的对象位于该预取高速缓存中的话。
26.权利要求18至25任何一个的数据处理系统中使用的内容或代理服务器,其中所请求信息包含所请求对象,其中选定信息包含预取候选对象,所述服务器包括:
一个统计表,其存储父对象标识符和相关联的子对象标识符,该统计表含有关于父对象的第一计数,该第一计数代表父对象被客户机查访的频率,统计表含有关于子对象的第二计数,该第二计数代表选定的所述父对象被查访之后相应子对象被查访的频率;以及
产生装置,用于根据统计表中的信息产生预取线索信息清单。
27.权利要求26的服务器,其中产生装置接受第一计数和相应第二计数输入,以导出预取线索信息清单,所述产生装置包括:计算装置用于对每个所述父对象标识符计算其第二计数与第一计数的比值,以及比较装置用于把该比值与一线索阈值作比较,如果该比值超过该线索阈值,则在预取线索信息清单上把子对象和相关联的父对象组成组或者说组合起来。
28.权利要求26的服务器,其中产生装置从统计表中接受第一计数、第二计数、子对象标识符和父对象标识符输入,该产生装置包括评估装置用于评估父对象与其关联的子对象之间的访问关系,如果在客户机查访相应父对象之前一些子对象被以适当的频率靠近地、接续地被查访,则评估装置把这些子对象标识符放到预取线索信息清单上。
29.权利要求28的服务器,其中产生装置进一步包含计算装置用于根据子访问与相应父访问的比值计算这适当的频率。
30.权利要求26至29任何一个的服务器,进一步包含:
统计更新装置,用于根据实际被请求的子对象来更新统计表;该统计更新装置首先查找正在进行查访的一个所述父对象的标识,这个在查访对象(或者说查访者对象)是在子对象实际被请求之前被查访的对象,这个实际被请求的子对象使其在统计表中的相应第二计数被更新。
31.权利要求30的服务器,其中统计更新装置在一收到来自预取被查访消息处理器的预取被查访消息时立即更新该统计表。
32.权利要求26至31任何一个的服务器,其中所述服务器是一个代理服务器并进一步包含:
预取更新装置用于接收和更新预取线索信息清单,该预取更新装置把第一计数与第一本地阈值计数进行比较,对于其第一计数超过第一本地阈值计数的每个子对象标识符,所述预取更新装置调用产生装置,如果第一计数不超过第一本地阈值计数,则预取更新装置保持原来的预取线索信息清单。
33.权利要求32的服务器,这里预取更新装置把第一计数与第一和第二本地阈值计数进行比较,并且(i)如果第一计数没有超过第一本地阈值计数则保持原来的预取线索信息清单;(ii)如果第一计数超过第一本地阈值计数但没有超过第二本地阈值计数则修改原来的预取线索信息清单;以及(iii)如果第一计数超过第一和第二本地阈值计数二者,则替换原来的预取线索信息清单。
34.权利要求32或33的服务器,进一步包括一个代理对象处理器,用于把所请求对象回送给请求所请求对象的较低层代理服务器或客户机,如果所请求对象不是预取对象,则代理对象处理器回送所请求对象并相应地更新统计表。
35.权利要求34的服务器,进一步包括:
一个预取高速缓存管理器,用于管理预取高速缓存;
其中代理对象处理器把所请求对象从预取高速缓存回送给发请求的客户机或代理服务器,并把该对象标记为可从预取高速缓存删除的对象,如果该对象是遵循一个预取请求而曾被请求的话;如果所请求对象不在主高速缓存或预取高速缓存中,则代理对象处理器向另一服务器发出对象请求;如果这个所请求对象不与一预取请求相关联,而且如果所请求对象位于该预取高速缓存或主高速缓存中,则代理对象处理器相应地更新统计表。
CNB988095777A 1997-09-29 1998-09-28 预取信息的方法,系统和服务器 Expired - Fee Related CN1200378C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/939,277 1997-09-29
US08/939,277 US6085193A (en) 1997-09-29 1997-09-29 Method and system for dynamically prefetching information via a server hierarchy

Publications (2)

Publication Number Publication Date
CN1272189A true CN1272189A (zh) 2000-11-01
CN1200378C CN1200378C (zh) 2005-05-04

Family

ID=25472873

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB988095777A Expired - Fee Related CN1200378C (zh) 1997-09-29 1998-09-28 预取信息的方法,系统和服务器

Country Status (11)

Country Link
US (1) US6085193A (zh)
EP (1) EP1018085B1 (zh)
JP (1) JP3526442B2 (zh)
KR (1) KR100377715B1 (zh)
CN (1) CN1200378C (zh)
CA (1) CA2302254C (zh)
DE (1) DE69834129T2 (zh)
HU (1) HU224089B1 (zh)
IL (1) IL133251A0 (zh)
PL (1) PL192676B1 (zh)
WO (1) WO1999017227A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331333C (zh) * 2001-08-28 2007-08-08 文义善 基于对等式分布计算技术的并行信息传送方法及其系统
CN100382072C (zh) * 2002-10-10 2008-04-16 Nhn株式会社 用于提供内容的方法和系统
CN100403305C (zh) * 2003-04-04 2008-07-16 雅虎公司 包括按子域线索搜索及按子域提供赞助结果的产生搜索结果的系统
CN100505741C (zh) * 2001-12-20 2009-06-24 法国电信公司 在服务器与客户机终端之间使用缓存管理来发送对象的方法、相应的传输系统、服务器及终端
CN102289366A (zh) * 2004-05-04 2011-12-21 费舍-柔斯芒特系统股份有限公司 用于访问过程控制数据的方法和设备
CN104077296A (zh) * 2013-03-27 2014-10-01 联想(北京)有限公司 处理信息的方法和服务器
CN106873548A (zh) * 2015-10-11 2017-06-20 计算系统有限公司 具有标准资产健康状况的工厂工艺管理系统
CN110663050A (zh) * 2017-06-06 2020-01-07 国际商业机器公司 用于认知应用的边缘缓存
CN110750498A (zh) * 2018-07-19 2020-02-04 成都华为技术有限公司 对象访问方法、装置及存储介质
CN116010293A (zh) * 2022-12-30 2023-04-25 上海芷锐电子科技有限公司 数据请求处理电路、方法及其缓存电路和处理器

Families Citing this family (303)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363291B1 (en) * 2002-03-29 2008-04-22 Google Inc. Methods and apparatus for increasing efficiency of electronic document delivery to users
US7103794B2 (en) 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
WO1999008429A1 (en) * 1997-08-06 1999-02-18 Tachyon, Inc. A distributed system and method for prefetching objects
US6304894B1 (en) * 1997-09-22 2001-10-16 Hitachi, Ltd. Proxy server and recording medium storing a proxy server program
US6393526B1 (en) * 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
JP3561139B2 (ja) * 1998-01-27 2004-09-02 シャープ株式会社 ファイルオブジェクト中継方法、ファイルオブジェクト中継方法のプログラムを記録したコンピュータで読取り可能な記録媒体、およびゲートウェイ計算機
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8296396B2 (en) * 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US7007072B1 (en) * 1999-07-27 2006-02-28 Storage Technology Corporation Method and system for efficiently storing web pages for quick downloading at a remote device
US6430618B1 (en) * 1998-03-13 2002-08-06 Massachusetts Institute Of Technology Method and apparatus for distributing requests among a plurality of resources
JP3522527B2 (ja) * 1998-03-27 2004-04-26 富士通株式会社 入出力制御装置および入出力制御方法
US6385699B1 (en) * 1998-04-10 2002-05-07 International Business Machines Corporation Managing an object store based on object replacement penalties and reference probabilities
US7089331B1 (en) 1998-05-29 2006-08-08 Oracle International Corporation Method and mechanism for reducing client-side memory footprint of transmitted data
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US20020138640A1 (en) * 1998-07-22 2002-09-26 Uri Raz Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US6195696B1 (en) 1998-10-01 2001-02-27 International Business Machines Corporation Systems, methods and computer program products for assigning, generating and delivering content to intranet users
EP1018689A3 (en) * 1999-01-08 2001-01-24 Lucent Technologies Inc. Methods and apparatus for enabling shared web-based interaction in stateful servers
EP1024439B1 (en) * 1999-01-27 2009-03-11 Hitachi, Ltd. Data transfer method, apparatus and recording medium for use in a hierarchical system
US6418413B2 (en) * 1999-02-04 2002-07-09 Ita Software, Inc. Method and apparatus for providing availability of airline seats
JP3764291B2 (ja) * 1999-03-02 2006-04-05 株式会社東芝 情報配信システム、移動計算機、情報サーバ装置、キャッシュサーバ装置及び先読みキャッシュ処理方法
US6502174B1 (en) * 1999-03-03 2002-12-31 International Business Machines Corporation Method and system for managing meta data
US6631496B1 (en) * 1999-03-22 2003-10-07 Nec Corporation System for personalizing, organizing and managing web information
US7526481B1 (en) * 1999-04-19 2009-04-28 Oracle International Corporation Web servers with queryable dynamic caches
US6513062B1 (en) 1999-05-25 2003-01-28 Grischa Corporation Method, apparatus, and computer program product for efficient server response generation using intermediate state caching
WO2000076172A1 (en) * 1999-06-07 2000-12-14 Nokia Mobile Phones Limited A cellular communication terminal, a method and a system for accessing servers
US6658463B1 (en) * 1999-06-10 2003-12-02 Hughes Electronics Corporation Satellite multicast performance enhancing multicast HTTP proxy system and method
US7099914B1 (en) * 1999-06-24 2006-08-29 International Business Machines Corporation System and method for variable size retrieval of webpage data
US6622167B1 (en) * 1999-06-30 2003-09-16 International Business Machines Corporation Document shadowing intranet server, memory medium and method
US6779119B1 (en) * 1999-06-30 2004-08-17 Koninklijke Philips Electronics N.V. Actual and perceived response time, user interface, and security via usage patterns
SE521181C2 (sv) * 1999-07-01 2003-10-07 Telia Ab Förfarande och system för policystyrd distribution av strömmande media i ett IP-nät
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
US6427172B1 (en) * 1999-07-20 2002-07-30 Cyberstar, L.P. Method and apparatus for internet cache content delivery via a data distribution system
US6615235B1 (en) * 1999-07-22 2003-09-02 International Business Machines Corporation Method and apparatus for cache coordination for multiple address spaces
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
GB2362003A (en) * 1999-10-13 2001-11-07 Enjoyweb Inc Distributing information objects in a networked computer environment
US7024465B1 (en) * 1999-10-18 2006-04-04 Rose Blush Software Llc Method for queued overlap transfer of files
EP1096755A1 (en) * 1999-10-28 2001-05-02 Alcatel Method to provide information in an internet telecommunication network
US7562027B1 (en) * 1999-11-01 2009-07-14 Ita Software, Inc. Availability processing in a travel planning system
WO2001033472A2 (en) * 1999-11-01 2001-05-10 Ita Software, Inc. Method and apparatus for providing availability of airline seats
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
JP3534027B2 (ja) * 1999-12-01 2004-06-07 日本電気株式会社 コンテンツ提供装置及びプログラムを記録した機械読み取り可能な記録媒体
US6553461B1 (en) * 1999-12-10 2003-04-22 Sun Microsystems, Inc. Client controlled pre-fetching of resources
US6742023B1 (en) * 2000-04-28 2004-05-25 Roxio, Inc. Use-sensitive distribution of data files between users
US6751657B1 (en) * 1999-12-21 2004-06-15 Worldcom, Inc. System and method for notification subscription filtering based on user role
US6415368B1 (en) * 1999-12-22 2002-07-02 Xerox Corporation System and method for caching
WO2001055862A1 (en) * 2000-01-28 2001-08-02 Ibeam Broadcasting Corporation Method and system for real-time distributed data mining and analysis for networks
US7441014B1 (en) * 2000-02-09 2008-10-21 Tvworks, Llc Broadcast distribution using low-level objects and locator tables
US6947440B2 (en) 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
US7389284B1 (en) 2000-02-29 2008-06-17 Oracle International Corporation Method and mechanism for efficient processing of remote-mapped queries
WO2001065863A2 (en) * 2000-03-01 2001-09-07 Kagan Michael L Wireless communications system and method
AU2001245028A1 (en) * 2000-03-10 2001-09-24 Aether Systems, Inc. System and method for providing information based on user histories
US6622168B1 (en) * 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US7523114B2 (en) 2000-04-24 2009-04-21 Ebay Inc. Method and system for categorizing items in both actual and virtual categories
US7475404B2 (en) 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
US8086697B2 (en) 2005-06-28 2011-12-27 Claria Innovations, Llc Techniques for displaying impressions in documents delivered over a computer network
US7058691B1 (en) * 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
US20050055426A1 (en) * 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US7020709B1 (en) 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
US7152058B2 (en) 2000-07-13 2006-12-19 Biap Systems, Inc. Apparatus for and method of selectively retrieving information and enabling its subsequent display
US7313588B1 (en) 2000-07-13 2007-12-25 Biap Systems, Inc. Locally executing software agent for retrieving remote content and method for creation and use of the agent
US7216085B1 (en) * 2000-07-13 2007-05-08 Ita Software, Inc. Competitive availability tools
US7613790B2 (en) * 2000-07-13 2009-11-03 Biap Systems, Inc. Apparatus for and method of executing customized interactive computing services in a broadband network environment
JP3674471B2 (ja) * 2000-07-25 2005-07-20 日本電気株式会社 コンテンツ転送方法及びネットワークシステム並びにプログラムを記録した機械読み取り可能な記録媒体
US7039683B1 (en) 2000-09-25 2006-05-02 America Online, Inc. Electronic information caching
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi Network streaming of multi-application program code
US8799463B1 (en) 2000-10-19 2014-08-05 Ariba, Inc. Method and apparatus for processing information related to interactive web sites
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US20020087798A1 (en) * 2000-11-15 2002-07-04 Vijayakumar Perincherry System and method for adaptive data caching
JP2002169831A (ja) * 2000-12-04 2002-06-14 Sharp Corp データベースサーバ及びプログラムを記録した記録媒体
US7113935B2 (en) * 2000-12-06 2006-09-26 Epicrealm Operating Inc. Method and system for adaptive prefetching
US7451196B1 (en) 2000-12-15 2008-11-11 Stream Theory, Inc. Method and system for executing a software application in a virtual environment
US20050273514A1 (en) * 2000-12-22 2005-12-08 Ray Milkey System and method for automated and optimized file transfers among devices in a network
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6721847B2 (en) * 2001-02-20 2004-04-13 Networks Associates Technology, Inc. Cache hints for computer file access
US8214501B1 (en) 2001-03-02 2012-07-03 At&T Intellectual Property I, L.P. Methods and systems for electronic data exchange utilizing centralized management technology
EP1244016A1 (en) * 2001-03-23 2002-09-25 Hewlett-Packard Company User access pattern tracking of computer resources
US20020147770A1 (en) * 2001-04-09 2002-10-10 Timothy Tang Multicast enabled caching service
US7899911B2 (en) * 2001-06-07 2011-03-01 Intel Corporation Method and apparatus to retrieve information in a network
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US7478164B1 (en) 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US7836178B1 (en) 2001-06-20 2010-11-16 Microstrategy Incorporated Technique for limiting access to the resources of a system
US7509671B1 (en) 2001-06-20 2009-03-24 Microstrategy Incorporated Systems and methods for assigning priority to jobs in a reporting system
US7716332B1 (en) * 2001-06-20 2010-05-11 At&T Intellectual Property I, L.P. System and method for server-based predictive caching of back-end system data
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US20030004998A1 (en) * 2001-06-29 2003-01-02 Chutney Technologies, Inc. Proxy-based acceleration of dynamically generated content
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
US7092997B1 (en) * 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
US6766422B2 (en) * 2001-09-27 2004-07-20 Siemens Information And Communication Networks, Inc. Method and system for web caching based on predictive usage
US6687792B2 (en) * 2001-09-27 2004-02-03 Siemens Information & Communication Networks, Inc. Method and system for selectively caching web elements
WO2003032201A1 (en) * 2001-10-09 2003-04-17 Wildblue Communications, Inc. Performance enhancing proxy for high latency data
US7797376B1 (en) * 2001-11-13 2010-09-14 Cisco Technology, Inc. Arrangement for providing content operation identifiers with a specified HTTP object for acceleration of relevant content operations
US20030115421A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Centralized bounded domain caching control system for network edge servers
US20030115281A1 (en) * 2001-12-13 2003-06-19 Mchenry Stephen T. Content distribution network server management system architecture
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
US7689225B2 (en) * 2002-01-28 2010-03-30 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
CN1625731A (zh) * 2002-01-31 2005-06-08 Arc国际公司 具有多种长度指令集体系结构的可配置数据处理器
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7296051B1 (en) * 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
EP1393155A2 (de) * 2002-03-06 2004-03-03 Freecom Technologies GmbH Verfahren zur überwachung und zum datenaustausch einer externen datenträgereinheit
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
US7721294B2 (en) * 2002-04-05 2010-05-18 Telefonaktiebolaget L M Ericsson (Publ) Object transfer control in a communications network
US7610351B1 (en) * 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US6751709B2 (en) * 2002-05-15 2004-06-15 Sun Microsystems, Inc. Method and apparatus for prefetching objects into an object cache
US9218409B2 (en) * 2002-06-04 2015-12-22 Sap Se Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers
US7822658B2 (en) * 2002-06-04 2010-10-26 Hewlett-Packard Development Company, L.P. Dynamic prioritization of activities
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
WO2004023243A2 (en) * 2002-09-03 2004-03-18 X1 Technologies, Llc Apparatus and methods for locating data
US8856093B2 (en) * 2002-09-03 2014-10-07 William Gross Methods and systems for search indexing
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7417971B2 (en) * 2002-10-04 2008-08-26 Ntt Docomo, Inc. Method and apparatus for dormant mode support with paging
US20040088375A1 (en) * 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
US7603341B2 (en) 2002-11-05 2009-10-13 Claria Corporation Updating the content of a presentation vehicle in a computer network
DE10257773B4 (de) * 2002-12-10 2005-06-02 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Verbessern des Zugangs zu Daten- und Informationsdiensten und Einrichtung zur Durchführung des Verfahrens
US7299467B2 (en) * 2002-12-23 2007-11-20 Hewlett-Packard Development Company, L.P. Method and system for minimizing memory access latency in a computer system
GB0301034D0 (en) * 2003-01-16 2003-02-19 Dupont Teijin Films Us Ltd Polymeric film and coating
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US20040267384A1 (en) * 2003-02-07 2004-12-30 Broadon Communications, Inc. Integrated console and controller
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
US7331038B1 (en) * 2003-07-02 2008-02-12 Amazon.Com, Inc. Predictive prefetching to improve parallelization of document generation subtasks
US7165147B2 (en) * 2003-07-22 2007-01-16 International Business Machines Corporation Isolated ordered regions (IOR) prefetching and page replacement
US7853699B2 (en) * 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
JP4039488B2 (ja) * 2003-08-18 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 多頻度パターン抽出装置、多頻度パターン抽出方法、及びそのプログラムと記録媒体
US8150818B2 (en) * 2003-08-25 2012-04-03 International Business Machines Corporation Method and system for storing structured documents in their native format in a database
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US8250093B2 (en) 2003-08-25 2012-08-21 International Business Machines Corporation Method and system for utilizing a cache for path-level access control to structured documents stored in a database
US7519574B2 (en) * 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US7721289B2 (en) * 2003-08-29 2010-05-18 Microsoft Corporation System and method for dynamic allocation of computers in response to requests
US8775468B2 (en) * 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US7231496B2 (en) * 2003-09-15 2007-06-12 International Business Machines Corporation Method, system and program product for caching data objects
US7596554B2 (en) * 2003-12-09 2009-09-29 International Business Machines Corporation System and method for generating a unique, file system independent key from a URI (universal resource indentifier) for use in an index-less voicexml browser caching mechanism
US7945914B2 (en) * 2003-12-10 2011-05-17 X1 Technologies, Inc. Methods and systems for performing operations in response to detecting a computer idle condition
US20050138198A1 (en) * 2003-12-18 2005-06-23 It Works Methods, apparatuses, systems, and articles for determining and implementing an efficient computer network architecture
US8010670B2 (en) 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
KR100600862B1 (ko) * 2004-01-30 2006-07-14 김선권 인터넷상의 정보자원에 대한 접근 경로를 체계적으로수집하고 검색하는 방법, 및 이 방법을 실행할 수 있는컴퓨터 프로그램을 수록한 기록매체
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US20050261962A1 (en) * 2004-05-18 2005-11-24 Khai Gan Chuah Anonymous page recognition
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7472133B2 (en) * 2004-07-30 2008-12-30 Microsoft Corporation System and method for improved prefetching
US8255413B2 (en) 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US8078602B2 (en) 2004-12-17 2011-12-13 Claria Innovations, Llc Search engine for a computer network
US20060048136A1 (en) * 2004-08-25 2006-03-02 Vries Jeff D Interception-based resource detection system
US7694311B2 (en) * 2004-09-29 2010-04-06 International Business Machines Corporation Grammar-based task analysis of web logs
US7831612B2 (en) * 2004-09-29 2010-11-09 Business Objects Software Ltd. Apparatus and method for generating reports from shared objects
US7664751B2 (en) 2004-09-30 2010-02-16 Google Inc. Variable user interface based on document access privileges
US7603355B2 (en) * 2004-10-01 2009-10-13 Google Inc. Variably controlling access to content
US7240162B2 (en) 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
JP2008527468A (ja) * 2004-11-13 2008-07-24 ストリーム セオリー,インコーポレイテッド ハイブリッド・ローカル/リモート・ストリーミング
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7693863B2 (en) 2004-12-20 2010-04-06 Claria Corporation Method and device for publishing cross-network user behavioral data
US7313656B1 (en) * 2004-12-27 2007-12-25 Emc Corporation Pre-fetch prediction method for disk drives
US20060168151A1 (en) * 2005-01-04 2006-07-27 Umberto Caselli Method, system and computer program for retrieving information with reduced age in a periodic process
US20060200503A1 (en) * 2005-03-03 2006-09-07 Nokia Corporation Modifying back-end web server documents at an intermediary server using directives
US8073866B2 (en) 2005-03-17 2011-12-06 Claria Innovations, Llc Method for providing content to an internet user based on the user's demonstrated content preferences
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
WO2006102621A2 (en) 2005-03-23 2006-09-28 Stream Theory, Inc. System and method for tracking changes to files in streaming applications
US7694008B2 (en) * 2005-05-04 2010-04-06 Venturi Wireless Method and apparatus for increasing performance of HTTP over long-latency links
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
CA2513022A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited System and method for communicating state management between a browser user-agent and a mobile data server
CA2513016A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited A secure method of synchronizing cache contents of a mobile browser with a proxy server
CA2513018A1 (en) * 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
US20070143255A1 (en) * 2005-11-28 2007-06-21 Webaroo, Inc. Method and system for delivering internet content to mobile devices
US7725658B2 (en) * 2005-11-29 2010-05-25 Siemens Aktiengesellschaft Self-optimizing caching system and method for data records
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US7659905B2 (en) 2006-02-22 2010-02-09 Ebay Inc. Method and system to pre-fetch data in a network
US20070239747A1 (en) * 2006-03-29 2007-10-11 International Business Machines Corporation Methods, systems, and computer program products for providing read ahead and caching in an information lifecycle management system
US20070276862A1 (en) * 2006-04-27 2007-11-29 Toutonghi Michael J Organizing and sharing digital content
US20070255676A1 (en) * 2006-04-27 2007-11-01 Brown David A Methods and apparatus for performing tree-based processing using multi-level memory storage
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
JP2009535735A (ja) 2006-05-02 2009-10-01 ブロードオン コミュニケーションズ コーポレーション コンテンツ・マネージメント・システムおよび方法
US7747749B1 (en) * 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
US20080216142A1 (en) * 2006-08-17 2008-09-04 Goldberg Brett M System and method of digital media distribution
US8255457B2 (en) * 2006-09-01 2012-08-28 Microsoft Corporation Adaptive content load balancing
US7624276B2 (en) 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US20080114738A1 (en) * 2006-11-13 2008-05-15 Gerald Chao System for improving document interlinking via linguistic analysis and searching
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
JP4872650B2 (ja) 2006-12-18 2012-02-08 ソニー株式会社 配信装置、配信方法及びコンピュータプログラム
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US20080244080A1 (en) * 2007-03-29 2008-10-02 James Thomas H Prefetching Based on Streaming Hints
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US7849156B2 (en) * 2007-06-04 2010-12-07 International Business Machines Corporation Method, apparatus and computer program product for discovering and prioritizing patterns of component usage in a virtual application container for enhancing prefetching
US8549099B2 (en) * 2007-07-12 2013-10-01 Viasat, Inc. Methods and systems for javascript parsing
US8966053B2 (en) * 2007-07-12 2015-02-24 Viasat, Inc. Methods and systems for performing a prefetch abort operation for network acceleration
US8171135B2 (en) * 2007-07-12 2012-05-01 Viasat, Inc. Accumulator for prefetch abort
US9654328B2 (en) 2007-10-15 2017-05-16 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US9460229B2 (en) * 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8849838B2 (en) 2008-01-15 2014-09-30 Google Inc. Bloom filter for storing file access history
US20090193147A1 (en) * 2008-01-30 2009-07-30 Viasat, Inc. Methods and Systems for the Use of Effective Latency to Make Dynamic Routing Decisions for Optimizing Network Applications
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US20090300208A1 (en) * 2008-06-02 2009-12-03 Viasat, Inc. Methods and systems for acceleration of mesh network configurations
US20100180082A1 (en) * 2009-01-12 2010-07-15 Viasat, Inc. Methods and systems for implementing url masking
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
US20130103556A1 (en) 2009-06-25 2013-04-25 3Crowd Technologies, Inc. Crowd based content delivery
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US8230172B2 (en) 2009-12-03 2012-07-24 Intel Corporation Gather and scatter operations in multi-level memory hierarchy
US9307003B1 (en) 2010-04-18 2016-04-05 Viasat, Inc. Web hierarchy modeling
US9854055B2 (en) * 2011-02-28 2017-12-26 Nokia Technologies Oy Method and apparatus for providing proxy-based content discovery and delivery
US8775775B1 (en) * 2011-03-31 2014-07-08 Emc Corporation Dynamic prefetch throttling for multi-controller systems
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9037638B1 (en) * 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US20130103853A1 (en) 2011-07-29 2013-04-25 3Crowd Technologies, Inc. Directing clients based on communication format
US9680791B2 (en) 2011-07-29 2017-06-13 Fortinet, Inc. Facilitating content accessibility via different communication formats
EP2555128A1 (en) * 2011-08-02 2013-02-06 Alcatel Lucent Memory cache content manager and arrangement
WO2013041922A1 (en) 2011-09-23 2013-03-28 Gilat Satellite Networks, Ltd. Decentralized caching system
US10681394B2 (en) 2011-11-28 2020-06-09 Comcast Cable Communications, Llc Cache eviction during off-peak transaction time period
US8843758B2 (en) * 2011-11-30 2014-09-23 Microsoft Corporation Migrating authenticated content towards content consumer
US9167049B2 (en) 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US9239862B2 (en) * 2012-05-01 2016-01-19 Qualcomm Incorporated Web acceleration based on hints derived from crowd sourcing
US9152220B2 (en) 2012-06-29 2015-10-06 International Business Machines Corporation Incremental preparation of videos for delivery
JP6021487B2 (ja) * 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
US9298719B2 (en) * 2012-09-04 2016-03-29 International Business Machines Corporation On-demand caching in a WAN separated distributed file system or clustered file system cache
US9560127B2 (en) * 2013-01-18 2017-01-31 International Business Machines Corporation Systems, methods and algorithms for logical movement of data objects
US10375192B1 (en) 2013-03-15 2019-08-06 Viasat, Inc. Faster web browsing using HTTP over an aggregated TCP transport
US9659058B2 (en) 2013-03-22 2017-05-23 X1 Discovery, Inc. Methods and systems for federation of results from search indexing
US9880983B2 (en) 2013-06-04 2018-01-30 X1 Discovery, Inc. Methods and systems for uniquely identifying digital content for eDiscovery
US10075741B2 (en) * 2013-07-03 2018-09-11 Avago Technologies General Ip (Singapore) Pte. Ltd. System and control protocol of layered local caching for adaptive bit rate services
US10063450B2 (en) 2013-07-26 2018-08-28 Opentv, Inc. Measuring response trends in a digital television network
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
WO2015066313A1 (en) * 2013-10-30 2015-05-07 Interdigital Patent Holdings, Inc. Enabling information centric networks specialization
US9819721B2 (en) 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
US20150142874A1 (en) * 2013-11-18 2015-05-21 Qualcomm Incorporated Prioritized one-shot browsing to reduce http page download delay
CN104683387A (zh) * 2013-11-27 2015-06-03 英业达科技有限公司 预先读取执行目标功能所需目标数据的系统及其方法
RU2689439C2 (ru) * 2014-05-13 2019-05-28 Опера Софтвэар Ас Улучшение производительности веб-доступа
US9613158B1 (en) * 2014-05-13 2017-04-04 Viasat, Inc. Cache hinting systems
US10855797B2 (en) * 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
WO2016033474A1 (en) * 2014-08-28 2016-03-03 Interdigital Patent Holdings, Inc. Method and apparatus for capture caching
US10346550B1 (en) 2014-08-28 2019-07-09 X1 Discovery, Inc. Methods and systems for searching and indexing virtual environments
EP3195565A4 (en) * 2014-09-18 2018-03-07 Intel Corporation Technologies for pre-action execution
EP3018580A1 (en) * 2014-11-06 2016-05-11 Alcatel Lucent Cache server and method for serving and caching web resources
US9948709B2 (en) 2015-01-30 2018-04-17 Akamai Technologies, Inc. Using resource timing data for server push in multiple web page transactions
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11070608B2 (en) * 2015-06-17 2021-07-20 Fastly, Inc. Expedited sub-resource loading
US10320934B1 (en) 2015-08-25 2019-06-11 Instart Logic, Inc. One-time cache
AU2016317736B2 (en) 2015-08-28 2020-07-23 Viasat, Inc. Systems and methods for prefetching dynamic URLs
US10769695B2 (en) * 2015-09-02 2020-09-08 Ebay Inc. Generating titles for a structured browse page
EP3341854B1 (en) 2015-09-14 2018-12-19 ViaSat, Inc. Machine-driven crowd-disambiguation of data resources
MX2018003580A (es) 2015-09-23 2018-08-24 Viasat Inc Aceleracion de la verificacion del estado de un certificado en linea con un servicio de sugerencias de internet.
US10157240B2 (en) 2015-10-01 2018-12-18 Ebay Inc. Systems and methods to generate a concept graph
AU2015412569B2 (en) 2015-10-20 2019-09-12 Viasat, Inc. Hint model updating using automated browsing clusters
CN108780446B (zh) 2015-10-28 2022-08-19 维尔塞特公司 时间依赖的机器生成的提示
US10021220B2 (en) * 2015-11-02 2018-07-10 Adobe Systems Incorporated Object amalgamation based on categorization and protocol granularization
WO2017096269A1 (en) 2015-12-04 2017-06-08 Viasat, Inc. Accelerating connections to a host server
JP6258992B2 (ja) * 2016-02-26 2018-01-10 ヤフー株式会社 情報提供システム、情報提供方法および情報処理装置
CA3027756C (en) 2016-06-28 2021-04-13 Solano Labs, Inc. Systems and methods for efficient distribution of stored data objects
US10880396B2 (en) 2016-12-02 2020-12-29 Viasat, Inc. Pre-fetching random-value resource locators
US20180276729A1 (en) * 2017-03-27 2018-09-27 Liberation Distribution, Inc. System and method for distribution of a regulated product
LT3754520T (lt) 2017-08-28 2022-02-25 Bright Data Ltd Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
US10684950B2 (en) 2018-03-15 2020-06-16 Bank Of America Corporation System for triggering cross channel data caching
CN108804514A (zh) * 2018-04-25 2018-11-13 网宿科技股份有限公司 一种网页加载方法、服务器和网页加载系统
EP3780547B1 (en) 2019-02-25 2023-02-15 Bright Data Ltd. System and method for url fetching retry mechanism
US11411922B2 (en) 2019-04-02 2022-08-09 Bright Data Ltd. System and method for managing non-direct URL fetching service
US11893062B2 (en) * 2019-05-14 2024-02-06 Sap Se Bulk lazy loading of structured data
US11171720B1 (en) * 2019-06-28 2021-11-09 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11201939B1 (en) * 2019-06-28 2021-12-14 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11080283B1 (en) * 2020-09-29 2021-08-03 Atlassian Pty Ltd. Systems and methods for selectively prefetching data
US11265396B1 (en) 2020-10-01 2022-03-01 Bank Of America Corporation System for cross channel data caching for performing electronic activities
US11366749B2 (en) * 2020-11-10 2022-06-21 Western Digital Technologies, Inc. Storage system and method for performing random read
US11921872B2 (en) * 2020-12-16 2024-03-05 International Business Machines Corporation Access control for a data object including data with different access requirements
US11778067B2 (en) 2021-06-16 2023-10-03 Bank Of America Corporation System for triggering cross channel data caching on network nodes
US11880307B2 (en) 2022-06-25 2024-01-23 Bank Of America Corporation Systems and methods for dynamic management of stored cache data based on predictive usage information

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228859A (en) * 1990-09-17 1993-07-20 Interactive Training Technologies Interactive educational and training system with concurrent digitized sound and video output
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
US5485609A (en) * 1994-05-20 1996-01-16 Brown University Research Foundation Online background predictors and prefetchers for locality management
US5652858A (en) * 1994-06-06 1997-07-29 Hitachi, Ltd. Method for prefetching pointer-type data structure and information processing apparatus therefor
CA2194154A1 (en) * 1994-06-30 1996-01-11 Robert Adams Data pre-fetch for script-based multimedia systems
US5822749A (en) * 1994-07-12 1998-10-13 Sybase, Inc. Database system with methods for improving query performance with cache optimization strategies
US5812996A (en) * 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5603025A (en) * 1994-07-29 1997-02-11 Borland International, Inc. Methods for hypertext reporting in a relational database management system
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
US6381595B1 (en) * 1994-09-29 2002-04-30 International Business Machines Corporation System and method for compensation of functional differences between heterogeneous database management systems
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5799309A (en) * 1994-12-29 1998-08-25 International Business Machines Corporation Generating an optimized set of relational queries fetching data in an object-relational database
US5848413A (en) * 1995-01-13 1998-12-08 Ricoh Company, Ltd. Method and apparatus for accessing and publishing electronic documents
JP3377880B2 (ja) * 1995-04-19 2003-02-17 富士通株式会社 自動情報取得装置および方法
US5805809A (en) * 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5742762A (en) * 1995-05-19 1998-04-21 Telogy Networks, Inc. Network management gateway
US5706507A (en) * 1995-07-05 1998-01-06 International Business Machines Corporation System and method for controlling access to data located on a content server
JPH0981455A (ja) * 1995-09-11 1997-03-28 Toshiba Corp クライアント装置、サーバ装置及び記憶装置制御方法
JP3386964B2 (ja) * 1995-11-20 2003-03-17 シャープ株式会社 ゲートウェイ装置
US5781909A (en) * 1996-02-13 1998-07-14 Microtouch Systems, Inc. Supervised satellite kiosk management system with combined local and remote data storage
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5835718A (en) * 1996-04-10 1998-11-10 At&T Corp URL rewriting pseudo proxy server
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US5818448A (en) * 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5926179A (en) * 1996-09-30 1999-07-20 Sony Corporation Three-dimensional virtual reality space display processing apparatus, a three-dimensional virtual reality space display processing method, and an information providing medium
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1331333C (zh) * 2001-08-28 2007-08-08 文义善 基于对等式分布计算技术的并行信息传送方法及其系统
CN100505741C (zh) * 2001-12-20 2009-06-24 法国电信公司 在服务器与客户机终端之间使用缓存管理来发送对象的方法、相应的传输系统、服务器及终端
CN100382072C (zh) * 2002-10-10 2008-04-16 Nhn株式会社 用于提供内容的方法和系统
CN100403305C (zh) * 2003-04-04 2008-07-16 雅虎公司 包括按子域线索搜索及按子域提供赞助结果的产生搜索结果的系统
CN102289366A (zh) * 2004-05-04 2011-12-21 费舍-柔斯芒特系统股份有限公司 用于访问过程控制数据的方法和设备
CN102289366B (zh) * 2004-05-04 2014-03-12 费舍-柔斯芒特系统股份有限公司 用于访问过程控制数据的方法和设备
CN104077296A (zh) * 2013-03-27 2014-10-01 联想(北京)有限公司 处理信息的方法和服务器
US9614886B2 (en) 2013-03-27 2017-04-04 Lenovo (Beijing) Co., Ltd. Method for processing information and server
CN104077296B (zh) * 2013-03-27 2017-12-29 联想(北京)有限公司 处理信息的方法和服务器
CN106873548A (zh) * 2015-10-11 2017-06-20 计算系统有限公司 具有标准资产健康状况的工厂工艺管理系统
CN110663050A (zh) * 2017-06-06 2020-01-07 国际商业机器公司 用于认知应用的边缘缓存
CN110750498A (zh) * 2018-07-19 2020-02-04 成都华为技术有限公司 对象访问方法、装置及存储介质
CN110750498B (zh) * 2018-07-19 2023-01-06 成都华为技术有限公司 对象访问方法、装置及存储介质
CN116010293A (zh) * 2022-12-30 2023-04-25 上海芷锐电子科技有限公司 数据请求处理电路、方法及其缓存电路和处理器

Also Published As

Publication number Publication date
US6085193A (en) 2000-07-04
DE69834129D1 (de) 2006-05-18
CA2302254A1 (en) 1999-04-08
HUP0003680A2 (hu) 2001-02-28
JP2001518668A (ja) 2001-10-16
DE69834129T2 (de) 2006-10-12
JP3526442B2 (ja) 2004-05-17
PL339377A1 (en) 2000-12-18
CN1200378C (zh) 2005-05-04
KR100377715B1 (ko) 2003-03-26
HU224089B1 (hu) 2005-05-30
CA2302254C (en) 2006-10-24
EP1018085A1 (en) 2000-07-12
PL192676B1 (pl) 2006-11-30
KR20010023599A (ko) 2001-03-26
EP1018085B1 (en) 2006-04-05
HUP0003680A3 (en) 2003-02-28
WO1999017227A1 (en) 1999-04-08
IL133251A0 (en) 2001-04-30

Similar Documents

Publication Publication Date Title
CN1200378C (zh) 预取信息的方法,系统和服务器
CN1176432C (zh) 提供本国语言查询服务的方法和系统
CN1242337C (zh) 用于访问在一个网络上的信息的方法和系统
CN1108682C (zh) 在无状态网络协议情况下保留状态
CN1192317C (zh) 用于定位万维网页以及计算机网络文件的系统和方法
CN1327195A (zh) 用于访问在一个网络上的信息的方法和系统
US8374975B1 (en) Clustering to spread comments to other documents
US20050149496A1 (en) System and method for dynamic context-sensitive federated search of multiple information repositories
CN1451129A (zh) 自行公布的网络目录
US20080086372A1 (en) Contextual banner advertising
CN1444746A (zh) 反向内容采集器
CN1906612A (zh) 用于记录通信网络中跨一个或多个搜索引擎的搜索轨迹的方法和系统
CN101044478A (zh) 分析查询日志以用于管理类别特定的电子内容
CN1703048A (zh) 网络服务应用协议和soap处理模型
CN1755694A (zh) 将资源组织成集合以促进更有效和可靠的资源访问
KR20080106194A (ko) 쿼리의 일부에 기초하는 캐시된 쿼리 결과들의 제공 방법, 쿼리 시스템 및 쿼리 구축 방법
CN1444817A (zh) 查看者对象代理
CN101063975A (zh) 电子文本处理与检索的方法和系统
EP1993045A1 (en) Electronic document retrievel system
US9275145B2 (en) Electronic document retrieval system with links to external documents
CN1960371A (zh) 一种访问Web应用程序文件的方法及系统
US20070022082A1 (en) Search engine coverage
US20060149606A1 (en) System and method for agent assisted information retrieval
CN1457585A (zh) 客户端整体健康状况检查
CN1898638A (zh) 概念上组织和表述信息的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120503

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120503

Address after: American California

Patentee after: Google Inc.

Address before: American New York

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050504

Termination date: 20170928