CN102202050A - 预期响应预高速缓存 - Google Patents

预期响应预高速缓存 Download PDF

Info

Publication number
CN102202050A
CN102202050A CN2011100815117A CN201110081511A CN102202050A CN 102202050 A CN102202050 A CN 102202050A CN 2011100815117 A CN2011100815117 A CN 2011100815117A CN 201110081511 A CN201110081511 A CN 201110081511A CN 102202050 A CN102202050 A CN 102202050A
Authority
CN
China
Prior art keywords
data
action
response
speed cache
client requests
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
CN2011100815117A
Other languages
English (en)
Other versions
CN102202050B (zh
Inventor
N·A·艾伦
K·D·沃尔夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102202050A publication Critical patent/CN102202050A/zh
Application granted granted Critical
Publication of CN102202050B publication Critical patent/CN102202050B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

预期响应预高速缓存。客户机与服务之间的交互,其中该服务对来自该客户机的请求作出响应。除对特定客户机请求作出响应之外,该服务还预测或推测客户机在将来可能请求什么。并非等待客户机请求(该请求最终可能作出或不作出),服务在与对各特定客户机请求作出实际响应的响应数据相同的数据流中将未请求的预期数据提供给客户机。如果该客户机确实作出了服务所预测的请求,则该客户机随后可以使用该预期数据来完全或部分地对来自该客户机的请求作出响应。因此,在一些情况下,在对其中提供了预期数据的请求作出响应时,可以缩短等待时间。该服务可给予实际请求的数据优先级,并且给予预期数据第二优先级。

Description

预期响应预高速缓存
技术领域
本发明涉及客户机与服务之间的交互,尤其涉及预测客户机的将来请求并对预期响应进行预高速缓存。
背景技术
在联网计算系统中,一个计算系统可以对另一计算系统进行请求。计算系统发出该请求的时刻到该计算系统接收到响应的时刻之间所花的时间被称为“等待时间”。等待时间越短,响应性能越好。
高速缓存是通过使用历史数据来为一些请求进行服务以提高这样的请求的某一子集的响应性能的一种方法。例如,web浏览器可以记录先前访问的页面。如果用户在网页仍然被高速缓存时浏览到该页面,则该页面可能从本地高速缓存中拉出,而非必须通过网络重新请求该页面。这样的高速缓存在现代联网系统中被广泛使用。然而,高速缓存的效力主要由向后看模型确定,在该模型中请求可由响应于先前请求而被高速缓存的信息来满足。
web浏览器最近引入了非标准的“链路预取”机制,用于根据对将来用户请求的预测而推测性地检索资源。然而,这一形式的预高速缓存依赖于客户机来发起该请求并只可对受限的一组请求执行。例如,客户机只可选择预高速缓存在对原始请求的响应中指示的固定的一组资源,并且必须在没有进一步帮助的情况下决定推测性地执行这些请求是否安全(请求资源,例如,可不合需要地改变服务器状态)。
发明内容
本文描述的至少一个实施例涉及客户机与服务之间的交互,其中该服务对来自该客户机的请求作出响应。除对特定客户机请求作出响应之外,该服务还预测或推测客户机在将来可能请求什么。并非等待可能作出或不作出的请求,该服务在与对各特定客户机请求的各响应的至少一部分相同的数据流中将未请求的预期数据提供给客户机。如果该客户机确实作出了服务所预测的请求,则该客户机随后可以使用该预期数据来完全或部分地对来自该客户机的请求作出响应。因此,在一些情况下,在对其中提供了预期数据的请求作出响应时,可以缩短等待时间。
在一个实施例中,该服务给予实际请求的数据优先级,并且给予预期数据第二优先级。这样,实际客户机请求没有因服务向客户机提供预期数据而被显著延迟。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,下面将通过参考附图来呈现对各实施例的更具体的描述。可以理解,这些附图只描绘了样本实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加属性和细节来描述和解释各实施例,在附图中:
图1示出了可用于采用此处所描述的实施例的示例计算系统;
图2描绘客户机和服务进行交互以获得预取或预期数据的方法的流程图,该预取或预期数据不是响应于客户机请求的而是在服务对将来请求的预测中作出的;
图3是客户机应对该客户机所生成的进一步请求的方法的流程图;
图4示出可根据本文描述的原理来使用的客户机-服务体系结构;以及
图5示出其中队列具有准备好从服务发出的各帧的队列环境。
具体实施方式
根据本文描述的各实施例,描述了客户机与服务之间的交互,其中服务不仅对来自客户机的实际请求作出响应,并且还预测或推测该客户机将来可能请求什么。并非等待客户机的所预测的请求(该请求最终可能作出或不作出),服务在与对各特定客户机请求的各实际响应中的至少一个相同的数据流中将未请求的预期数据提供给客户机。如果该客户机确实作出了服务所预测的请求,则该客户机随后可以使用该预期数据来完全或部分地对来自该客户机的请求作出响应。因此,在一些情况下,在对其中提供了预期数据的请求作出响应时,可以缩短等待时间。首先,关于计算系统的某些介绍性讨论将参考图1来描述。随后,客户机/服务交互的各种实施例将参考图2至5来描述。
首先,参考图1来描述关于计算系统的介绍性讨论。计算系统现在越来越多地采用各种形式。计算系统可以例如是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括包含至少一个处理器以及其上能含有可由处理器执行的计算机可执行指令的存储器的任何设备或系统(或其组合)。存储器可以采取任何形式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个组成计算系统。
如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令,引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。
计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。通信信道108是通信介质的示例。通信介质通常以诸如载波或其它传输机制等“已调制数据信号”来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传递介质。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、无线电、红外线及其他无线介质之类的无线介质。如此处所用的术语“计算机可读介质”既包括存储介质又包括通信介质。
本发明的范围内的实施例还包括具有用于携带或其上储存有计算机可执行指令或数据结构的计算机可读介质的计算机程序产品。这样的计算机可读介质(或机器可读介质)可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括诸如RAM、ROM、EEPROM、CD-ROM、DVD-ROM之类的物理存储器和/或存储介质或其他光盘存储、磁盘存储或其他磁存储设备、或可用于携带或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。上述的组合也应被包括在计算机可读介质的范围内。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于此处所描述的具体特征或动作。相反,此处所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。计算机可执行指令使得计算机或处理设备执行功能或功能组,因为该计算机可执行指令具有特定结构。如果被数字地表示,例如,这样的结构可以表示一个或多个信息位。在例如磁存储介质的情况下,这样的结构可以是该磁存储介质的预定部分处的、该介质上的磁力的水平和/或定向。在光存储介质的情况下,这样的结构可以是该光介质的特定预定部分处的、该介质的反射率水平。
图2描绘客户机和服务进行交互以获得预取或预期数据的方法200的流程图,该预取或预期数据不是响应于客户机请求的而是在服务对将来请求的预测中作出的。只要客户机以后在预期数据仍被高速缓存时作出该将来请求,则在本地高速缓存的预期数据就可被用来生成对客户机的响应,而不必再次下载所有预期数据。这可能缩短响应等待时间,尤其是在服务相当准确地预测了将来客户机行为的情况下。此外,实际响应数据和预期数据可由服务通过单个数据流来提供给客户机,同时对实际响应数据给出超过预期数据的优先级,从而减少与将预期数据传递给客户机相关联的开销。
参考图2的方法200,方法200的动作中的一些是由客户机计算系统(或简言之,“客户机”)执行的,并且在图2的左栏中在标题“客户机”下方列出。其他动作是由对客户机请求作出响应的服务执行的,如在图2中的右栏在标题“服务”下方表示的。
客户机通过生成并向服务发出一个或多个客户机请求来与该服务进行交互(动作211),并且在每一请求从客户机发出时,该服务接收这一请求(动作221)。响应于这些请求,服务生成响应于该一个或多个请求的实际响应数据(动作222),其中响应数据被提供给客户机(动作223),于是客户机接收该实际响应数据(动作212)。这一实际响应数据可被认为是对于将来客户机请求而言的“历史响应数据”,因为历史响应数据是响应于从客户机到服务器的实际请求的历史来提供的。交互可以是单个请求和单个响应,或可以有多个客户机请求和对应的诸响应作为交互的一部分。在接收到历史响应数据时可以将它高速缓存起来(动作213)。
然而,服务不只发送实际响应数据。相反,服务还尝试预测一个或多个将来客户机请求(动作224)。服务随后生成将对这些将来客户机请求作出响应的预期数据(动作225),并且即使客户机没有请求,服务也同样将这一预期数据发送到客户机(动作226)。客户机随后也接收该预期数据(动作214)。在一个实施例中,该预期数据是在与实际响应数据相同的数据流230中从服务发送到客户机的。客户机一旦接收到该预期数据,客户机就可以将该预期数据高速缓存起来(动作215)。
作为示例,假定服务是向客户机提供排序数据项的列表的数据服务。现在假定客户机请求了该列表中的前10个数据项——项1到10。该服务可以用响应于该请求的实际响应数据来对实际客户机请求数据作出响应。具体而言,该服务将提供所请求的数据项1到10。然而,该服务可能知道,客户机可能正在可滚动窗口中查看数据项并且下一可能的动作可能是用户向下滚动列表,或翻到该列表的下一页以达到接下来的10个数据项。如果客户机的用户这样做,则这意味着客户机将请求数据项10之上的又一些数据项。因此,并非等待该请求,该服务可以在同一数据流中也提供数据项11到20,但其优先级低于包括数据项1到10的实际响应数据。
作为另一示例,假定该服务是向客户机提供图像(可能是世界地形图)的图像服务。现在假定客户机通过请求以用户的住宅为中心1英里范围的地形视图来开始该应用。因此,客户机请求呈现用户的住宅的1英里范围视图所需的所有图像细节。在这一阶段,客户机的用户可以做多个事情。例如,用户可以将镜头右移、左移、上移、下移、放大、缩小、或查看所查看区域中的吸引人的事物。在对可能的下一请求进行预测时,该服务可以下载预测这些请求中的一个或多个的预期数据,并下载将允许客户机更即时地对请求作出响应的适当数据。
该服务可以使用来自客户机的用户的过去行为的统计数据,或可以使用关于用户在遇到类似情况时一般如何表现的统计数据。例如,如果基于该统计数据,该服务确定用户缩小的机会是40%,用户放大的机会是40%,并且任何其他单个动作的机会小于10%,则该服务可能下载用于可能的缩小请求的预期数据和用于可能的放大请求的预期数据。然而,该服务还可决定小于10%的机会的摇镜头操作不是足以保证发送预期数据的机会。该阈值还可取决于当前情况。例如,如果该服务与客户机之间的数据流在当时未被充分利用,则该服务可能将提供用于摇镜头操作的预期数据。
在图2的交互之后,客户机可能高速缓存了历史响应数据和预期数据之一或两者。图3是客户端解决该客户端所生成的进一步请求的方法300的流程图。在一些情况下,客户机可以基于所高速缓存的历史数据和/或所高速缓存的预期数据来生成其自己的对客户机请求的响应。方法300在每次作出客户机请求时执行。对于初始的客户机请求,可能没有所高速缓存的历史响应数据,也没有任何预期数据。然而,随着作出越来越多的请求,所高速缓存的历史响应数据和/或所高速缓存的预期数据可以累积。
在客户机访问对服务的请求时(动作301),方法300启动。客户机自身评估客户机请求(动作302)。客户机基于这一评估来确定所高速缓存的历史响应数据中的任一个是否会有助于制定对该请求的响应(判定框303)。如果所高速缓存的历史响应数据将会有帮助(判定框303中的“是”),则客户机将确认该历史响应数据是否仍然有效(判定框304)。客户机可以通过与服务进行通信或实施客户机和服务所理解的某一其他有效性确定机制来做到这一点。如果历史数据仍然有效(判定框304中的“是”),则经确认的历史数据可被用来制定对该请求的响应的至少一部分(动作305)。
在任一情况下,方法300随后确定所高速缓存的预期数据是否可帮助满足该请求的至少一部分(判定框306)。如果所高速缓存的历史响应数据将会有帮助(判定框306中的“是”),则客户机将确认该预期响应数据是否仍然有效(判定框307)。客户机可以通过与服务进行通信或实施客户机和服务所理解的某一其他有效性确定机制来做到这一点。在一种情况下,如果服务使客户机从其高速缓存中删除不再有效的预期数据,则客户机能更安全地假定仍被高速缓存的任何预期数据都是有效的。至少在这种情况下,不必作出有关有效性的单独判定。如果预期数据仍然有效(判定框307中的“是”),则预期数据可被用来制定对该请求的响应的至少一部分(动作308)。
在这一阶段,客户机从所高速缓存的历史响应数据和所高速缓存的预期数据获得像客户机打算要执行来生成该响应其自己的部分那么多的信息。如果所高速缓存的数据足以生成对客户机请求的整个响应(判定框309中的“否”),则客户机生成对该客户机请求的响应(动作310),而不必向服务请求任何附加数据。如果所高速缓存的数据不足以生成对客户机请求的整个响应(判定框309中的“是”),则客户机发出对该客户机不能从该客户机的高速缓存获得的那个数据的请求(动作311)。具体而言,客户机向服务请求新响应数据,该新响应数据结合所高速缓存的预期数据的至少一部分和/或结合所高速缓存的历史响应数据,起到完全足以提供对客户机请求的完整响应的作用。在接收到这样的新数据时,客户机可以生成该响应(动作310)。
注意,对来自服务的附加数据的请求表示服务预测其他将来请求的附加机会,从而在与对实际请求的响应相同的数据流中提供进一步的预期数据。此外,如果该服务确定该请求或其他中间事件使先前提供给客户机的预期数据中的一些过期,则该服务可以提供用于更改或删除先前提供的预期数据的控制指令。
现在将提供从所示示例之一扩展而来的几个示例。假定客户机在历史上对服务作出了两次请求:对数据项1到10的第一请求,并且随后响应于在客户机处的向下翻页,对数据项11到20的第二请求。随后,假定虽然未被请求,但数据项21到25作为预期数据也被提供。
现在假定客户机跳转到数据项101到110。这是碰巧没有有助于生成该响应的所高速缓存的历史响应数据(即,数据项1到20)也没有任何所高速缓存的预期响应数据(即,数据项21到25)的情况。因此,客户机将只能简单地向服务请求数据项101到110。
现在假定并非跳转到数据项101到110,客户机改为向上滚动回数据项5到14。在这种情况下,情况是:假定数据项5到14仍然有效,所高速缓存的历史响应数据(即,数据项1到20)将完全足以生成客户机响应而不必从服务再次下载数据项5到14。
作为第三示例,假定用户要向下滚动到数据项15-24。在这种情况下,客户机请求可由历史响应数据来部分地满足(对于数据项5到20而言)并且部分地由预期数据来满足(对于数据项21到24而言)。
作为最后示例,如上所述,假定情况是:数据项1到20是所高速缓存的历史响应数据,并且数据项21到25是所高速缓存的预期数据。现在假定用户滚动到数据项18-27。在这种情况下,数据项18到20可从所高速缓存的历史响应数据来满足,并且数据项21到25可从所高速缓存的预期数据来满足。然而,仍然缺少数据项26和27。因此,并非向服务请求数据项18到27,客户机可改为只请求数据项26和27。
图4示出可根据本文描述的原理来使用的客户机-服务体系结构400。体系结构400只是示例。所示出的各组件可以是分开的模块,但它们也可以只是功能性的,并且不与任何类型的模块边界相关。现在将描述体系结构400的各组件的功能。
客户机组件411是生成原始客户机请求并期望对该客户机请求的响应的客户机。例如,如在上述示例中,客户机请求可以是对数据项18到27的请求。客户机411可任选地与更高层客户机组件412进行交互,该交互使得该客户机提交对数据项18到27的请求。作为示例,更高层客户机组件412可以是与客户机411进行交互的任何事物,如用户或者另一模块或组件。
请求管理器组件413提供对所提交的每一应用程序请求的应用程序响应。例如,请求管理器413组件可以通过实际地提供数据项18到27作为响应,以对来自客户机411的对数据项18到27的客户机请求作出响应,这些数据项正是客户机组件411所期望的。
历史高速缓存的数据组件414存储关于应用程序请求和响应的历史信息。在该示例中,假定客户机411向服务作出了两个先前请求,一个请求针对数据项1到10,并且另一请求针对数据项11到20。在这种情况下,历史高速缓存的数据组件414可能具有数据项1到20的所高速缓存的版本。
请求控制器组件415从预期预高速缓存的数据和控制指令产生应用程序响应或响应的一部分。
预高速缓存数据组件416存储服务421所提供的用于对将来应用程序请求进行服务的预期数据。在该示例中,假定预高速缓存数据组件416高速缓存了数据项21到25,即使这些数据项先前未被客户机411请求。因而,在下文中讨论的示例中,历史高速缓存的数据414包括数据项1到20,而预高速缓存数据组件416包括数据项21到25。
连接多路分解器组件417将预期数据与控制指令从协议流420上的实际应用程序响应中分离。
现在将描述应用程序请求的发起。客户机411制定它想要服务421处理的应用程序请求。例如,在该示例中,客户机411作出对数据项18到27的请求。客户机411随后将该客户机请求发送到请求管理器413。
请求管理器413可能通过访问历史高速缓存的数据组件414来尝试使用历史数据提供应用程序响应。如果请求管理器413能够提供应用程序响应,则请求管理器413提供该应用程序响应,并且随后对该客户机请求的处理完成。例如,假定该客户机请求是对数据项5到14的请求。这些数据项全被高速缓存在历史高速缓存的数据组件414中。因此,在这种情况下,请求管理器413在确认所高速缓存的项5到14仍然通用(current)(可能通过与服务421的简单通信)之后,将能够提供对该请求的完整响应。
然而,在客户机请求是对数据项18到27的请求的示例情况下,请求管理器413不能生成对该客户机请求的完整响应。因此,在该实施例中,请求管理器413将该客户机请求连同请求管理器413能够从历史高速缓存数据组件414获得的数据项18到20传递给请求控制器415。
请求控制器415访问预高速缓存数据组件416以获取可被用来提供响应的任何预高速缓存的数据。例如,在该示例中,预高速缓存的预期数据项21到25都可结合数据项18到20被用来提供响应的一部分。余下要获取的是数据项26和27。服务可偶尔向预高速缓存数据组件416发送控制指令。例如,如果数据项24在服务处改变,则该服务可指令预高速缓存的数据项24不再有效。在这种情况下,请求控制器415将从服务获取数据项24、26和27。
请求控制器415与服务421协商以完成用于产生应用程序响应的处理的其余部分。例如,在该示例中,请求控制器415将发出对数据项26和27的请求(并且在存在指示先前预高速缓存的数据项24不再有效的控制指令的情况下还请求数据项24)。如果预高速缓存数据组件416没有预高速缓存数据项21到25,则请求控制器415将改为从服务421请求数据项21到27。
协议流组件420在通信介质上提供双向排序的字节序列。连接多路复用器组件422将预高速缓存数据(本文中也被称为预期数据)和控制指令与实际应用程序响应一起组合在协议流420上。
预高速缓存控制器组件423响应于所交换的应用程序请求和响应来产生预高速缓存数据和控制指令。
服务组件421处理实际应用程序请求并制定应用程序响应。在该示例中,服务组件421将接收请求控制器415所生成并发出的对数据项26和27的应用程序请求。
更高层服务组件424可以与服务组件421进行交互以帮助处理应用程序请求并制定应用程序响应。
现在将描述应用程序响应的发起。服务组件421接收客户机组件415希望处理的应用程序请求并处理该请求以产生应用程序响应。在该示例中,服务组件421接收对数据项26和27的应用程序请求,并生成包括数据项26和27的响应。
服务组件421随后将该应用程序响应发送到连接多路复用器组件422。服务组件421还将该应用程序请求和响应发送到预高速缓存控制器组件423。
预高速缓存控制器423检查该应用程序请求和响应以确定客户机是否应当接收推测或预期数据,或是否应当接收对先前发出的推测数据的调整。例如,这种情况下,预高速缓存控制器423可以在预测到客户机可能不久就要请求数据项28到37之后,决定这些数据项也应当作为预期数据被提供给预高速缓存数据组件416。
预高速缓存控制器423向连接多路复用器422发送一个或多个预高速缓存数据和预高速缓存控制消息。例如,在这种情况下,预高速缓存控制器423可以向连接多路复用器422发送预期数据项28到37。另外,预高速缓存控制器423也可以发送控制指令。例如,这样的控制指令可以指示要被重新表征为历史数据的一些预期数据,可以使先前下载到客户机的一些预期数据无效,或可以使先前下载到客户机的一些历史响应数据无效。
连接多路复用器422维护要发送的应用程序响应、预高速缓存数据、以及预高速缓存控制消息的优先次序队列,通过协议流422周期性地传送来自该队列的消息。连接多路复用器422将消息分割成一个或多个通信帧来进行传输,并且将每一通信帧编码成要被附加到协议流的字节序列。连接多路复用器422基于生成通信帧的消息的优先级来选择要传送的下一通信帧。
连接多路分解器417接收实际响应、预高速缓存数据、以及预高速缓存控制消息。连接多路分解器417从协议流420中拉出各字节,直至字节序列组成可识别的通信帧。连接多路分解器417将各通信帧进行组装以重构原始消息,并随后将应用程序响应路由到请求管理器413且将预高速缓存数据和控制消息路由到请求控制器415。例如,在该示例中,响应包括数据项26和27,它们被路由到请求控制器415,于是请求控制器415可以制定对客户机请求的包括数据项18到27的完整响应。另外,请求控制器415接收预期数据项28-37,它们作为对将来客户机请求的预测而被高速缓存在预高速缓存数据组件416中。最后,请求控制器415可以从连接多路分解器417接收控制指令,并相应地作出响应。例如,响应于从预期数据删除数据项的控制指令,请求控制器415执行该删除。
图5示出队列环境500,其中队列501具有准备好从服务发出的各帧。环境500包括队列501,其中服务421、连接多路复用器422以及预高速缓存控制器423在队列501中进行交互。图5示出用预高速缓存对应用程序响应进行多路复用的示例,它使用了三种类型的帧:应用程序数据帧、预高速缓存数据帧、以及预高速缓存控制指令帧。
响应于第一应用程序请求,服务421传送第一应用程序响应521A并且预高速缓存控制器423传送第一预高速缓存响应521B和521C。每一预高速缓存控制器响应包括预高速缓存数据(即,预期数据)和控制消息。例如,第一预高速缓存响应521B包括第一预高速缓存数据521BA和第一控制消息521BB。第二预高速缓存响应521C包括第二预高速缓存数据521CA和第二控制消息521CB。在图5中,现在忽略应用程序响应522A介于第二预高速缓存数据521CA的第一部分521CA(1)和第二预高速缓存数据521CA的第二部分521CA(2)之间的事实。因此,到现在为止,以下数据按以下优先级次序处于队列中:1)第一应用程序响应521A,2)第一预高速缓存数据521BA,3)第一控制消息521BB,4)第二预高速缓存数据521CA,以及5)第二控制消息521CB。
连接多路复用器422将第一应用程序响应521A分割成一个或多个应用程序数据帧并传送它们。连接多路复用器422随后将第一预高速缓存数据521BA分割成一个或多个预高速缓存数据帧并传送它们。连接多路复用器422接着将第一控制消息521BA分割成一个或多个控制消息帧并传送它们。连接多路复用器422然后将预高速缓存数据521CA的第一部分521CA(1)分割成一个或多个预高速缓存数据帧并传送它们。
在传送了第二预高速缓存数据521CA的部分521CA(1)的预高速缓存数据帧之后,连接多路复用器422从服务接收第二应用程序响应522A。连接多路复用器422将第二应用程序响应522A的优先级排在预高速缓存数据521CA的剩余部分521CA(2)之前。
连接多路复用器422将第二应用程序响应522A分割成一个或多个应用程序数据帧并传送它们。连接多路复用器随后继续传输第二预高速缓存响应521C的预高速缓存数据帧521CA(2)以及预高速缓存控制消息帧521CB。
连接多路复用器422可以通过即使在协议流420空闲时也避免传送通信帧来对协议流420进行节流。例如,服务421可被配置成在使用了协议流420的超过一半带宽的情况下不传送预高速缓存响应。作为另一示例,服务421可被配置成不向特定客户机传送超过特定数量的字节的预高速缓存响应或可能根本不传送预高速缓存响应。
连接多路复用器的配置可来自服务器管理员或对于特定连接而言来自客户机。例如,请求控制器415可以向连接多路复用器422和预高速缓存控制器423发送控制指令,通知它们客户机希望对预高速缓存响应的使用进行限制或希望服务更慢或较不频繁地传送预高速缓存响应。客户机可能希望限制预高速缓存的使用,因为例如客户机会按网络通信的字节量而被收费,且因此即使在带宽可用时,最小化所交换的数据的量的价值也比缩短请求等待时间的价值大。
第二应用程序请求的处理可影响先前排入队列中的第二预高速缓存响应。例如,第二应用程序请求可以是对其进行预测而创建了第二预高速缓存响应的应用程序请求。除发送预高速缓存响应之外,预高速缓存控制器可以发送用于先前预高速缓存响应的控制指令。预高速缓存控制器可以在将第二预高速缓存响应的一部分与第二应用程序响应一起传送时发送用于该内容的丢弃指令。
连接多路复用器可以例如通过丢弃不再需要的未传送的通信帧或通过向客户机发送控制指令,例如以通知客户机它所存储的预高速缓存数据的一部分不再有用并且可被丢弃,来将控制命令应用于其当前状态。
通过向实际响应给出超过预期数据和控制指令的优先级,实际响应数据未被显著延迟,同时仍然允许在协议流可用的情况下提供预期数据。实际响应数据在队列中被给予优先级,并且跳转到该队列中的任何预期数据和/或控制指令之前。
因此,本文描述的原理准许服务在对实际请求的数据的响应时间有很少影响的情况下向客户机提供预期数据。在作出将来请求时,增加了已经可在客户机上获得数据的机会,从而在将来请求被准确地预测的情况下可能缩短响应等待时间。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (15)

1.一种包括其上具有计算机可执行指令的一个或多个物理计算机可读介质(104)的计算机程序产品,所述计算机可执行指令在由计算系统(100)的一个或多个处理器(102)执行时,使得客户机计算系统,即客户机(411),在与服务进行交互时,通过执行以下动作来获取来自所述服务的预取数据,以缩短等待时间:
所述客户机(411)通过向所述服务(421)作出一个或多个请求来与所述服务进行交互(211、221)的动作;
所述客户机响应于在所述交互动作中作出的一个或多个请求,从所述服务接收(212)历史响应数据的动作;
也作为与所述服务进行所述交互的动作的结果,所述客户机接收(214)预取数据(416)的动作,所述服务所提供的预取数据不是为了满足所述交互动作中的所述一个或多个请求,而是由所述服务对针对该服务的可能的将来客户机请求进行预测而提供的,其中所接收到的预取数据的至少一部分是由所述服务连同所述一个或多个响应中的至少一个一起在单个数据流(230,420)中提供的;
在所述交互动作之后,在将所接收到的预取数据的至少一部分被高速缓存在所述客户机处时,访问(301)针对所述服务的客户机请求的动作;
评估(302)所述客户机请求以确定所述客户机请求的至少一部分可由所高速缓存的预取数据的至少一部分来满足的动作;以及
所述客户机至少使用所高速缓存的预取数据的满足所述客户机请求的一部分的所述至少一部分来提供(306,310)响应的动作。
2.如权利要求1所述的计算机程序产品,其特征在于,所述客户机请求是在所述历史响应数据的至少一部分仍然被高速缓存时访问的,
其中评估所述客户机请求的动作包括:评估所述客户机请求以确定所述客户机请求的至少一部分能够由所高速缓存的预取数据的至少一部分来满足,并且所述客户机请求的至少一部分能够由所高速缓存的历史响应数据的至少一部分来满足的动作,以及
其中提供所述响应的动作包括:所述客户机至少使用满足所述客户机请求的至少一部分的所高速缓存的预取数据的所述至少一部分,并至少使用满足所述客户机请求的所述至少一部分的所高速缓存的历史响应数据的所述至少一部分,来提供响应的动作。
3.如权利要求1所述的计算机程序产品,其特征在于,所接收到的预取数据包括从所述服务接收到的一个或多个控制指令。
4.如权利要求3所述的计算机程序产品,其特征在于,所述一个或多个控制指令中的至少一个向所述客户机指示关于所接收到的预取数据的至少一部分的布置。
5.如权利要求1所述的计算机程序产品,其特征在于,评估所述客户机请求以确定所述客户机请求的至少一部分可由所高速缓存的预取数据的至少一部分来满足的动作包括:
所述客户机与所述服务进行通信以确认所高速缓存的预取数据的所述至少一部分仍然有效的动作。
6.如权利要求5所述的计算机程序产品,其特征在于,所述客户机与所述服务进行通信以进行确认的动作包括:
所述客户机制定对所高速缓存的预取数据的所述至少一部分的有条件请求的动作,所述有条件请求是以所高速缓存的预取数据的所述至少一部分的有效性为基础的来预测的;
所述客户机向所述服务传送所述有条件请求的动作;以及
所述客户机接收有条件请求响应的动作,所述有条件请求响应包括以下各项之一:对所高速缓存的预取数据的所述至少一部分仍然有效的确认或满足所述客户机请求的所述至少一部分的新响应数据,所述有条件请求响应是响应于对所述有条件请求的预测的。
7.如权利要求6所述的计算机程序产品,其特征在于,所高速缓存的预取数据的所述至少一部分不完全足以提供对所述客户机请求的完整响应,并且其中所述客户机传送所述有条件请求的动作包括,所述客户机将所述有条件请求与对不能由所高速缓存的预取数据的所述至少一部分满足的所述客户机请求中的至少一部分的请求一起传送的动作。
8.如权利要求1所述的计算机程序产品,其特征在于,所高速缓存的预取数据的所述至少一部分完全足以提供对所述客户机请求的完整响应。
9.如权利要求1所述的计算机程序产品,其特征在于,所述客户机请求是在所述历史响应数据的至少一部分仍然被高速缓存时访问的,其中所高速缓存的预取数据的所述至少一部分与所高速缓存的历史响应数据的至少一部分相结合来完全足以提供对所述客户机请求的完整响应。
10.如权利要求1所述的计算机程序产品,其特征在于,所述客户机请求是在所述历史响应数据的至少一部分仍然被高速缓存时访问的,
其中所述客户机请求的至少一部分由所高速缓存的预取数据的至少一部分满足;
其中所述客户机请求的至少一部分由所高速缓存的历史响应数据的至少一部分满足,
其中所高速缓存的预取数据的所述至少一部分结合所高速缓存的历史响应数据的所述至少一部分不完全足以提供对所述客户机请求的完整响应,其中提供所述响应的动作包括:
所述客户机向所述服务请求新响应数据,该新响应数据结合所高速缓存的预取数据的所述至少一部分并结合所高速缓存的历史响应数据的所述至少一部分,起到完全足以提供对所述客户机请求的完整响应的作用;
所述客户机从所述服务接收所述新响应数据的动作;以及
使用所述新响应数据、所述所高速缓存的预取数据的所述至少一部分,以及所高速缓存的历史响应数据的所述至少一部分,来制定对所述客户机请求的完整响应的动作。
11.如权利要求1所述的计算机程序产品,其特征在于,
其中所述客户机请求的至少一部分由所高速缓存的预取数据的至少一部分满足;
其中所高速缓存的预取数据的所述至少一部分不完全足以提供对所述客户机请求的完整响应,其中提供所述响应的动作包括:
所述客户机从所述服务请求新响应数据的动作,该新响应数据结合所高速缓存的预取数据的所述至少一部分,起到完全足以提供对所述客户机请求的完整响应的作用;
所述客户机从所述服务接收所述新响应数据的动作;以及
使用所述新响应数据和所高速缓存的预取数据的所述至少一部分来制定对所述客户机请求的完整响应的动作。
12.一种包括其上具有计算机可执行指令的一个或多个物理计算机可读介质(104)的计算机程序产品,所述计算机可执行指令在由计算系统(100)的一个或多个处理器(102)执行时,使得服务计算系统,即服务(421),通过执行以下动作作为对客户机的将来客户机请求的预测来向所述客户机提供未请求的预取数据:
所述服务(421)从客户机接收(221)一个或多个客户机请求的动作;
响应于所述一个或多个客户机请求,生成(222)作为所述一个或多个客户机请求的响应的响应数据的动作;
尝试预测(224)将来客户机请求的动作;
生成(225)预期数据的动作,所述预期数据不是响应于所述一个或多个客户机请求,而是对所预测的将来客户机请求作出响应;以及
按以下方式提供所生成的响应数据(223)和所生成的预期数据(226)的动作:给予所生成的响应数据高于所生成的预期数据的优先级,并使得所生成的响应数据的至少一部分和所生成的预期数据的至少一部分在单个数据流(230,420)中提供。
13.如权利要求12所述的计算机程序产品,其特征在于,尝试预测将来客户机请求的动作是至少使用从所述客户机接收到的一个或多个客户机请求来执行的。
14.如权利要求13所述的计算机程序产品,其特征在于,所述提供动作还包括:
向所述客户机提供一个或多个控制指令的动作,所述控制指令向所述客户机指示关于所提供的预期数据的至少一部分的布置。
15.如权利要求12所述的计算机程序产品,其特征在于,提供所生成的响应数据和所生成的预期数据的动作包括以下动作:
响应于第一客户机请求来生成所生成的响应数据的第一部分的动作;
响应于第一客户机请求来生成所述预期数据的第一部分的动作;
将所生成的响应数据的第一部分插入与所述数据流相对应的传输队列,并将所生成的预期数据的第一部分插入所述传输队列排在所生成的预期数据的第一部分之后的动作;
通过首先向所述客户机传送所生成的响应数据的第一部分来开始从所述传输队列向所述客户机提供所述数据的动作,
其中响应于所述服务接收到的第二客户机请求,所述服务执行以下动作:
响应于第二客户机请求来生成所生成的响应数据的第二部分的动作。
CN201110081511.7A 2010-03-26 2011-03-25 预期响应预高速缓存 Active CN102202050B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/748,103 2010-03-26
US12/748,103 US8473688B2 (en) 2010-03-26 2010-03-26 Anticipatory response pre-caching

Publications (2)

Publication Number Publication Date
CN102202050A true CN102202050A (zh) 2011-09-28
CN102202050B CN102202050B (zh) 2016-04-06

Family

ID=44657657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110081511.7A Active CN102202050B (zh) 2010-03-26 2011-03-25 预期响应预高速缓存

Country Status (2)

Country Link
US (3) US8473688B2 (zh)
CN (1) CN102202050B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104220996A (zh) * 2012-05-24 2014-12-17 三菱电机株式会社 通信系统、客户端终端以及服务器装置
CN105279105A (zh) * 2014-07-17 2016-01-27 三星电子株式会社 用于调整预取流的程度的自适应机制
CN106464669A (zh) * 2014-03-31 2017-02-22 华为技术有限公司 基于访问模式的智能文件预取
CN108701159A (zh) * 2016-12-13 2018-10-23 谷歌有限责任公司 用于预取内容项的系统和方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473688B2 (en) 2010-03-26 2013-06-25 Microsoft Corporation Anticipatory response pre-caching
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
EP2616955A2 (en) * 2010-09-17 2013-07-24 Oracle International Corporation Method and apparatus for polymorphic serialization
US9275165B2 (en) 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
US9741060B2 (en) 2010-09-17 2017-08-22 Oracle International Corporation Recursive navigation in mobile CRM
US8725849B1 (en) * 2011-04-11 2014-05-13 Google Inc. Browser cache pre-population
US9274694B2 (en) * 2011-05-17 2016-03-01 Next Issue Media Device, system and method for image-based content delivery
US9215269B2 (en) * 2012-08-23 2015-12-15 Amazon Technologies, Inc. Predictive caching for content
US10594808B2 (en) * 2013-04-23 2020-03-17 Facebook, Inc. Pre-fetching newsfeed stories from a social networking system for presentation to a user
US9430775B2 (en) 2013-09-17 2016-08-30 Responsys, Inc. System and method for analyzing and tuning a marketing program
WO2015153677A1 (en) * 2014-03-31 2015-10-08 Open Garden Inc. System and method for improving webpage loading speeds
US9544388B1 (en) 2014-05-09 2017-01-10 Amazon Technologies, Inc. Client-side predictive caching for content
US10169776B2 (en) * 2014-05-12 2019-01-01 Adobe Systems Incorporated Obtaining profile information for future visitors
US9613158B1 (en) 2014-05-13 2017-04-04 Viasat, Inc. Cache hinting systems
WO2016010932A1 (en) * 2014-07-14 2016-01-21 Oracle International Corporation Age-based policies for determining database cache hits
US10277414B2 (en) 2014-07-18 2019-04-30 Oracle International Corporation Communication gateway services in a networked message distribution system
JP6476685B2 (ja) * 2014-09-24 2019-03-06 富士ゼロックス株式会社 情報処理装置、情報処理システム、表示装置及びプログラム
US9621536B2 (en) * 2014-11-12 2017-04-11 Lenovo (Singapore) Pte. Ltd. Anticipatory single sign-on (SSO) for proxied web applications
US9858191B2 (en) * 2014-12-31 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with data management mechanism and method of operation thereof
US9326046B1 (en) 2015-03-19 2016-04-26 Amazon Technologies, Inc. Uninterrupted playback of video streams using lower quality cached files
US20180143816A1 (en) * 2016-11-18 2018-05-24 Google Inc. Reducing latency between clicking media content and landing on a resulting application installation page
US11176556B2 (en) * 2018-11-13 2021-11-16 Visa International Service Association Techniques for utilizing a predictive model to cache processing data
US10979525B1 (en) 2020-01-06 2021-04-13 International Business Machines Corporation Selective preemptive cache population based on data quality for rapid result retrieval

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050154781A1 (en) * 2004-01-13 2005-07-14 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
CN1653453A (zh) * 2002-03-11 2005-08-10 捷讯研究有限公司 用于将数据推到移动设备的系统和方法
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
CN101110819A (zh) * 2007-08-03 2008-01-23 中国网络通信集团公司 一种加快浏览页面切换速度的方法
CN101539911A (zh) * 2008-03-18 2009-09-23 盛大计算机(上海)有限公司 加快浏览器网页显示的装置及方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
US5305389A (en) 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
EP0781432B1 (en) 1994-09-14 2006-12-06 Intel Corporation Multimedia editing system using pre-caching data utilizing thread lists
US5978841A (en) 1996-03-08 1999-11-02 Berger; Louis Look ahead caching process for improved information retrieval response time by caching bodies of information before they are requested by the user
US5918013A (en) 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
DE69827638T2 (de) * 1997-08-06 2005-12-01 Tachyon, Inc., San Diego Verteiltes system und verfahren zum objektvorabholen
US6047363A (en) * 1997-10-14 2000-04-04 Advanced Micro Devices, Inc. Prefetching data using profile of cache misses from earlier code executions
US6393526B1 (en) 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6215483B1 (en) * 1998-06-17 2001-04-10 Webtv Networks, Inc. Combining real-time and batch mode logical address links
US6574618B2 (en) 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
JP3789244B2 (ja) * 1998-07-28 2006-06-21 富士通株式会社 ハイパーテキスト表示装置およびハイパーテキスト表示システム
US6539382B1 (en) 1999-04-29 2003-03-25 International Business Machines Corporation Intelligent pre-caching algorithm for a directory server based on user data access history
US6473832B1 (en) 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
US7047485B1 (en) 1999-11-10 2006-05-16 International Business Machines Corporation Intelligent pre-caching on a network
US8291007B2 (en) 2000-02-22 2012-10-16 Flash Networks Ltd System and method to accelerate client/server interactions using predictive requests
US6581138B2 (en) * 2000-02-29 2003-06-17 Stmicroelectronics, Inc. Branch-prediction driven instruction prefetch
US6643743B1 (en) * 2000-03-31 2003-11-04 Intel Corporation Stream-down prefetching cache
US6742033B1 (en) 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US6799251B1 (en) 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
US7162588B2 (en) * 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
US6938146B2 (en) * 2002-12-19 2005-08-30 International Business Machines Corporation Memory power management using prefetch buffers
US20070112973A1 (en) 2005-11-16 2007-05-17 Harris John M Pre-cached streaming content method and apparatus
US8473688B2 (en) 2010-03-26 2013-06-25 Microsoft Corporation Anticipatory response pre-caching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993591B1 (en) * 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
CN1653453A (zh) * 2002-03-11 2005-08-10 捷讯研究有限公司 用于将数据推到移动设备的系统和方法
US20050154781A1 (en) * 2004-01-13 2005-07-14 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
CN101110819A (zh) * 2007-08-03 2008-01-23 中国网络通信集团公司 一种加快浏览页面切换速度的方法
CN101539911A (zh) * 2008-03-18 2009-09-23 盛大计算机(上海)有限公司 加快浏览器网页显示的装置及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104220996A (zh) * 2012-05-24 2014-12-17 三菱电机株式会社 通信系统、客户端终端以及服务器装置
CN104220996B (zh) * 2012-05-24 2017-03-22 三菱电机株式会社 通信系统、客户端终端以及服务器装置
US9680719B2 (en) 2012-05-24 2017-06-13 Mitsubishi Electric Corporation Communication system, client terminal, and server
CN106464669A (zh) * 2014-03-31 2017-02-22 华为技术有限公司 基于访问模式的智能文件预取
CN106464669B (zh) * 2014-03-31 2020-02-21 华为技术有限公司 基于访问模式的智能文件预取
CN105279105A (zh) * 2014-07-17 2016-01-27 三星电子株式会社 用于调整预取流的程度的自适应机制
CN105279105B (zh) * 2014-07-17 2020-05-15 三星电子株式会社 用于调整预取流的程度的自适应机制
CN108701159A (zh) * 2016-12-13 2018-10-23 谷歌有限责任公司 用于预取内容项的系统和方法
CN108701159B (zh) * 2016-12-13 2022-05-13 谷歌有限责任公司 用于预取内容项的系统和方法

Also Published As

Publication number Publication date
US8856454B2 (en) 2014-10-07
CN102202050B (zh) 2016-04-06
US20110238921A1 (en) 2011-09-29
US20130282986A1 (en) 2013-10-24
US8473688B2 (en) 2013-06-25
US20130290469A1 (en) 2013-10-31
US8806142B2 (en) 2014-08-12

Similar Documents

Publication Publication Date Title
CN102202050A (zh) 预期响应预高速缓存
CN110765365B (zh) 分布式边云协同缓存策略的实现方法、装置、设备和介质
KR100791628B1 (ko) 이동망 시스템의 능동적 캐쉬 제어 방법, 그 기록 매체 및그 시스템
US8078729B2 (en) Media streaming with online caching and peer-to-peer forwarding
US7769863B2 (en) Network accelerator for controlled long delay links
CN102439578A (zh) 动态可变速率媒体传送系统
JP2008518508A (ja) 予測ストリーミングのためのシステム及び方法
CN109348264B (zh) 视频资源共享方法、装置、存储介质及电子设备
JP4589391B2 (ja) ハイブリッドマルチメディアの提示のための方法および装置
EP2928197B1 (en) Method of video streaming, corresponding device and system
WO2015149644A1 (en) Intelligent file pre-fetch based on access patterns
CN101841557B (zh) 一种基于十字链表的p2p流媒体下载方法和系统
JP2018110387A (ja) リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム
US9866652B2 (en) Method, apparatus and computer program for providing a data object from a content server to a client device over a radio access network (RAN)
Al-Hilo et al. Vehicle-assisted RSU caching using deep reinforcement learning
CN109639813B (zh) 视频文件传输处理方法及装置、电子设备和存储介质
EP4013006A1 (en) Method for playing on a player of a client device a content streamed in a network
JP5192506B2 (ja) ファイルキャッシュの管理方法、装置、及び、プログラム
JP2010257148A (ja) サーバ装置、サーバベース・コンピューティング・システム、およびサーバ制御プログラム
Vasilakos et al. Mobility-based proactive multicast for seamless mobility support in cellular network environments
KR102235622B1 (ko) IoT 환경에서의 협력 에지 캐싱 방법 및 그를 위한 장치
CN114301848B (zh) 基于cdn的通信方法、系统、设备及存储介质
JP4646931B2 (ja) サーバ装置およびリクエスト整理方法
CN114025184A (zh) 一种视频直播方法及电子设备
JP6333369B2 (ja) 展開予測装置、展開予測方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150717

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

Effective date of registration: 20150717

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant