CN103650518B - 预测性的多层高速缓存体系结构 - Google Patents

预测性的多层高速缓存体系结构 Download PDF

Info

Publication number
CN103650518B
CN103650518B CN201280033410.5A CN201280033410A CN103650518B CN 103650518 B CN103650518 B CN 103650518B CN 201280033410 A CN201280033410 A CN 201280033410A CN 103650518 B CN103650518 B CN 103650518B
Authority
CN
China
Prior art keywords
image
group
server
proxy server
cache
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.)
Active
Application number
CN201280033410.5A
Other languages
English (en)
Other versions
CN103650518A (zh
Inventor
W·朱
Z·李
R·R·莫利纳利
H·李
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN103650518A publication Critical patent/CN103650518A/zh
Application granted granted Critical
Publication of CN103650518B publication Critical patent/CN103650518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • 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
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

可使用预测性的多层高速缓存体系结构来预测用户在与预定义的布局相关联的元素集合中最有可能导航到哪些元素,并且作为响应,提高这些元素对于用户的客户机设备的可访问性。例如,这些技术可使用预测性的多层高速缓存体系结构来存储这些预测到的元素,以便减少在用户以所预测的方式在元素集合内导航的情况下呈现这些图像的等待时间。该元素集合可包括图像(例如,三维模型、地图等)、视频文件、音频文件、文本文件或可以在客户机设备上消费的任何其它类型的文件。

Description

预测性的多层高速缓存体系结构
背景
特定软件应用分析来自特定场景的数字照片并生成该场景的三维(3D)重构或模型。这一应用的用户因此能够使用该软件来生成模型并且然后将该模型上传至网站,以供该用户或该网站的其它用户稍后查看。例如,用户可使用相机来捕捉巴黎埃菲尔铁塔的一系列照片并且稍后可将这些照片传送到该用户的个人计算机。一旦这些照片驻留在个人计算机上,该用户就可生成这些照片的3D模型并且然后将该3D模型上传至指定网站。该用户或其它用户然后可经由该指定网站来查看该埃菲尔铁塔的3D模型。
为了在客户机计算设备上查看该示例3D模型,该客户机设备首先请求指定与共同定义该3D模型的多个图像相关联的布局的文件。该客户机设备还可请求供在该设备的显示器上呈现以作为该3D模型的起始点的一个或多个图像。之后,当该用户在该3D模型的不同部分中导航或导航到该不同部分时,该客户机设备请求与用户导航到的位置相关联的图像。然而,因为客户机设备在用户请求查看这些图像之后请求所需图像,所以在客户机设备请求并等待接收这些图像时用户经常经历不合意的等待时间。此外,当用户正通过高等待时间网络或者在具有有限存储器或计算能力的设备(例如,移动电话)上查看该集合时,用户经历的等待时间可能是显著的。
发明内容
本文档部分地描述了这样的技术,所述技术用于预测用户最可能导航到与预定义的布局相关联的图像集合中的哪些图像,并且响应于此,提高这些图像对于用户的客户机设备的可访问性。例如,所述技术可以使用预测性的多层高速缓存体系结构来存储这些预测的图像,以便减少在用户以预测的方式在图像集合内导航时呈现这些图像的等待时间。
在一些示例中,下述技术可以将图像集合中的图像存储在与预测服务器连接的存储服务器上。预测服务器又可连接到代理服务器,后者又与呈现图像集合的一部分的客户机设备相连。响应于确定设备的用户正在客户机设备上查看图像集合中的特定图像,预测服务器可以检索以下内容并将其发送到代理服务器:(1)与当前正在呈现的特定图像直接相邻的第一组图像;以及(2)与所述直接相邻的图像直接相邻的第二组图像。响应于接收这两组图像,代理服务器可以将第一组图像发送至客户机设备以供存储在客户机设备的高速缓存中,而将第二组图像存储在代理服务器本身的高速缓存中。响应于用户导航到集合内的另一图像,预测服务器可以再次重复预测以确保客户机设备和代理服务器将所预测的图像存储在各自的高速缓存中。通过将所预测的图像分发到较接近于客户机设备,所述技术可以减少用户在图像集合内导航时所经历的等待时间。
提供本发明内容以便引入与为在具有预定义布局的图像集合内导航的用户减少等待时间有关的概念。这些技术将在以下具体实施方式中进一步描述。本发明内容并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
参考附图来描述具体实施方式。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在各附图中,使用相同的数字来指示类似的特征和组件。
图1示出一示例计算体系结构,其包括操作客户机设备来呈现与预定义的布局相关联的图像集合的一部分的用户,所述集合通过网络并且从图像服务器处对于客户机设备可用。在该体系结构中,预测服务器可以预测用户接下来最有可能查看集合中的哪些图像,并且响应于此,将这些所预测的图像分发到较接近于客户机(例如,在客户机设备的高速缓存上和/或在代理服务器的高速缓存上)。
图2A-2E示出图1的体系结构内的示例操作流程。这里,用户导航到所呈现的图像集合内的新图像,并且响应于此,预测服务器预测用户现在最有可能导航到集合内的哪些图像。此外,预测服务器发送这些所预测的图像以供存储在代理服务器和/或客户机设备的高速缓存上。
图3A-3C示出一示例过程的流程图,其中由预测服务器预测客户机设备的用户最有可能导航到哪些图像,并且响应于此跨客户机设备的高速缓存和代理服务器的高速缓存而存储这些图像,所述代理服务器驻留在客户机设备和预测服务器之间。
图4是可驻留在图1的代理服务器上的高速缓存逻辑的示例。
图5是可驻留在图1的预测服务器上的高速缓存逻辑的示例。
图6示出可驻留在图1的客户机设备、站点服务器、存储服务器、预测服务器和/或代理服务器上的几个示例组件。
具体实施方式
本文档部分地描述了这样的技术,所述技术用于预测用户最可能导航到与预定义的布局相关联的元素集合中的哪些元素,并且响应于此,提高这些元素对于用户的客户机设备的可访问性。例如,所述技术可以使用预测性的多层高速缓存体系结构来存储这些预测的元素,以便减少在用户以预测的方式在集合内导航时呈现这些元素的等待时间。尽管以下示例参考图像集合描述了这些技术,但所述技术可类似地用于其他元素集合。在该方面,元素集合可包括图像(例如三维(3D)模型、在线地图、视频游戏等)、视频文件、音频文件、文本文件、或可在客户机设备上消费并具有预定义布局的任何其他类型的文件。
例如,用户可以操作客户机设备以便呈现地图(例如在线地图)、场景的三维模型、或者与预定义布局相关联的任何其他图像集合。在这些实例的每一个中,客户机设备可以通过网络并且从存储该集合的图像服务处访问图像。在一些实例中,现有的技术可以在客户机设备的用户首次请求查看图像集合时将整个图像集合提供给该设备。然而,由于网络约束,图像集合的大小以及一些实例中的客户机设备的有限能力,其他现有的技术可以根据需要向客户机设备提供图像。也就是说,客户机设备可以在设备的用户导航到集合内的相应图像后请求图像,并因此接收和呈现这些图像。然而,如上所述,以此方式检索图像会导致在客户机设备等待通过网络接收来自图像服务的图像时、对用户而言不期望的等待时间。
与这些传统的方法相反,本文档描述了允许将图像集合的图像高速缓存至较接近于客户机设备以便减少与在图像集合内导航相关联的等待时间的体系结构。例如,一示例体系结构可以包括这样的图像服务,所述图像服务包括:用于将图像集合整个存储的存储服务器、用于基于当前查看的图像来预测用户最有可能导航到哪些图像的预测服务器、以及用于存储这些所预测的图像的一部分的代理服务器。除了图像服务以外,该体系结构还可包括客户机设备,客户机设备既用于呈现集合的一部分还存储这些所预测的图像的一个不同部分。在一些实例中,代理服务器驻留在客户机设备以及预测和存储服务器之间,使得和存储在存储服务器上的图像相比,存储在代理服务器上的图像更接近于客户机设备。
为了说明,构想移动电话的用户导航到一网站,并且请求查看三维模型、地图或具有预定义布局的另一图像集合。响应于该请求,网站可以从存储服务器检索布局文件(例如JavaScript对象记法(JSON)文件),并且可以将该文件提供给客户机设备。该布局文件可以描述集合中的图像相对于彼此的位置,并且指定集合中的每个图像位于存储服务器上的何处。在一些实例中,与客户机设备的这一通信和每一随后通信可以通过预测服务器和代理服务器两者,而在其他实例,这些通信可在存储服务器和客户机设备之间直接进行,或者以任何其他方式进行。
除了接收布局文件以外,图像服务还可以提供集合的一个或多个初始图像以供在客户机设备上呈现。此外,图像服务可以提供与所呈现的图像直接相邻的一个或多个图像。客户机设备可以将直接相邻的图像存储在客户机的高速缓存中,使得在用户在图像集合内导航到这些相邻图像时,这些图像可由客户机设备容易地检索和呈现。
而且,当用户作出接收和呈现图像集合的初始请求时,图像服务还可向代理服务器提供一个或多个图像。例如,图像服务的预测服务器可以从存储服务器中检索与客户机设备的高速缓存中存储的直接相邻的图像直接相邻的一个或多个图像。因为代理服务器驻留在存储服务器和客户机设备之间,因此,和存储在存储服务器上的图像相比,客户机设备可以更快地访问存储在代理服务器上的图像。
在客户机设备已经开始呈现具有预定义布局的图像集合之后,设备的用户可以在该集合内导航。例如,如果图像集合包括三维模型,则用户可以导航到模型的不同部分。或者,如果图像集合包括地图,则用户可以导航到地图的不同部分。在这些实例的每一个中,用户通常可以在和用户在图像集合内的当前位置直接相邻的方向上导航。例如,在三维模型和地图这两个例子中,用户可以向左、向右、向前或向后移动。
在这些实例中,客户机设备可以从高速缓存中检索适当的直接相邻的图像,并且可以呈现该所检索的图像。由于客户机之前已经将该图像存储在高速缓存中,因此和客户机原本要跨网络向图像服务请求图像相比,客户机能够快得多地呈现该图像。由此,用户经历较短的等待时间。
此外,当用户以此方式在图像集合内导航时,客户机设备可以向代理服务器发送导航的指示。响应于接收到客户机设备正在呈现新图像的指示,代理服务器可以检索代理服务器的高速缓存中存储的一些或全部图像并且将它们发送至客户机设备。此时,由于用户已经导航到新图像,从代理服务器的高速缓存被发送到客户机的这些图像现在是“直接相邻的图像”,因为如预定义布局中指定的,这些图像与当前呈现的图像直接相邻。
除了将这些图像发送到客户机设备以供存储在客户机的高速缓存中之外,代理服务器可以将接收到的指示传递给预测服务器。响应于此,预测服务器可以在预定义布局内标识当前被呈现的图像的位置。根据这一信息,预测服务器可以标识以下两组图像:(1)与当前被呈现的图像直接相邻的图像,以及(2)与第一组的图像直接相邻的图像。预测服务器然后可以标识(如果有的话)预测服务器之前已经将这两组图像中的哪一组提供给代理服务器和/或客户机设备,然后可以向代理服务器发送第一和第二组中预测服务器还需要发送的那些图像。
在该例中,预测服务器会确定它之前已经将第一组的图像发送给代理服务器,但没有发送第二组的每一个图像。由此,预测服务器会从预测服务器检索这些图像,并且会将它们提供给代理服务器。响应于接收到这些图像,代理服务器会将图像存储在其高速缓存中。
通过使用两层高速缓存体系结构(经由客户机设备和代理服务器),上述示例体系结构能够在用户在图像集合内导航时支持图像集合的较快呈现。也就是说,由于用户接下来最有可能导航到的图像(即直接相邻的图像)被存储在客户机的高速缓存中,客户机设备可以在用户以预测方式导航时快速地呈现这些图像。
此外,由于在第一预测的导航之后用户最有可能导航到的图像被存储在代理服务器的高速缓存中(即,和直接相邻的图像直接相邻的图像),因此客户机设备能够在呈现来自客户机的高速缓存的“直接相邻的图像”之后,快速地重新填充其高速缓存。最后,由于预测服务器继续基于用户的过去导航来预测该用户的导航,因此预测服务器确保代理服务器的高速缓存和客户机设备的高速缓存两者都继续接收和存储所预测的图像。总而言之,即使用户以高频率改变图像集合内的视图,该体系结构也减少了用户在图像集合内导航时所经历的等待时间。此外,由于该体系结构跟踪用户如何在图像集合内导航,因此提供图像集合的实体可以获悉用户一般如何与这些集合交互。也就是说,这些实体可以获悉用户一般如何在三维模型中、在地图内等导航。然后,这些实体可以使用该信息,通过提供推荐、加强图像集合的某些方面等等,来改进用户体验,
以下详细讨论从题为“示例计算体系结构”的章节开始,该章节详细描述用于实现这里所述技术的示例的预测性的多层高速缓存体系结构。该章节还描述了在用户在具有预定义布局的示例图像集合内导航时,该体系结构内的示例操作流程。接下来是题为“示例图像-预测过程”的第二章节,然后讨论继续到题为“示例高速缓存逻辑”的章节。后一章节详细描述了图1的代理服务器可采用的示例高速缓存逻辑,以及图1的预测服务器可采用的示例高速缓存逻辑。接着是题为“示例计算-设备组件”的章节,之后简要结论结束该讨论。
本简介,包括章节标题和对应的概述,是出于方便读者的目的而提供的,而非旨在限制权利要求或其后章节的范围。
示例计算体系结构
图1示出了可实现所描述的用于以下的技术的示例计算体系结构100:(1)预测用户最可能导航到与预定义的布局相关联的图像集合中的哪些图像,以及(2)响应于此,提高这些图像对于用户的客户机设备的可访问性。
在该例中,体系结构100包括用户102操作客户机计算设备(即“客户机设备”)104以在设备104的显示器108上呈现图像集合106。例如,图像集合106可以包括地图、已经从一系列数字照片创建的场景的三维(3D)模型、或者包括具有预定义布局的图像集合的任何其他类型的视觉文件。在该例中,图像集合106包括可能用微软公司的软件创建的场景的三维模型,场景包括法国巴黎的埃菲尔铁塔。尽管示出为移动电话,但是客户机计算设备104可以包括任何其他种类的计算设备,诸如台式机、膝上型计算机、便携式音乐播放器、游戏控制台、平板计算设备、或者任何其它类型的移动或非移动计算设备。
如图所示,客户机设备104当前呈现图像集合的特定图像110(1)。在该例中,客户机设备104还在高速缓存114或设备104的其他存储中存储图像110(2)、110(3)、110(4)和110(5)。如图所示,根据由之前获得并被存储在设备104上的布局文件112所指定的图像集合106的预定义布局,图像110(2)-(5)中的每一个可以与当前呈现的图像直接相邻。而且,如下进一步详细讨论的,通过将直接相邻的图像110(2)-(5)存储在设备104的高速缓存114中,设备104能够在用户102在显示器108当前呈现的三维模型中向左、向右、向前或向后导航时,快速地呈现这些图像中的一个。
如上简要讨论的,布局文件112指示图像集合106中的每一图像相对于彼此的位置,使得客户机设备能够正确地请求并呈现集合106的图像。此外,布局文件112可以(例如,经由统一资源定位符(URL))指示图像集合106中的每一图像驻留在存储服务器126上的何处。客户机设备104、代理服务器130和/或预测服务器128可以使用该信息,根据用户102在图像集合106内的导航来请求图像。
为了呈现三维模型(即,示例图像集合106),客户机设备104可以存储查看器应用116,查看器应用本身可以存储或以其他方式引用高速缓存逻辑118。查看器应用(即“查看器app”)116可以包括浏览器、之前被下载到设备104以查看集合106的专用应用、或者对于设备104而言为本机或非本机的任何其他应用。同时,高速缓存逻辑118标识当前被呈现的图像110(1)、以及与当前呈现的图像直接相邻的图像110(2)-(5)。此外,如下更详细讨论的,在用户102在图像集合106内导航时,高速缓存逻辑118更新哪些图像当前正被呈现、以及哪些图像与当前正被呈现的图像直接相邻。此外,如果新标记的、直接相邻的图像在被设为“直接相邻的图像”时被存储在设备104的不同于高速缓存114的存储上,则高速缓存逻辑118将这些图像置于客户机设备104的高速缓存114中。
为了最初呈现图像集合106,用户102可以使用查看器应用116、浏览器或另一应用来请求或以其他方式访问图像服务120上的图像集合106。如图所示,图像服务120可以包括站点服务器124、存储服务器126、预测服务器128以及代理服务器130,其中站点服务器120主存图像服务120的站点(例如网站),存储服务器125用于存储诸如图像集合106这样的不同的图像集合,预测服务器128用于预测在某一时刻用户最有可能导航到集合中的哪些图像,代理服务器130用于存储所预测的图像的至少一部分。尽管以单数(例如预测服务器128)列出了上述每一个服务器,但是应当理解,存储在这些服务器中的一些或每一个上的功能可以跨多个分开的服务器而分布。此外,在一些实例中,体系结构100可包括各自与图像服务120的预测服务器128交互的多个不同的代理服务器。这些代理服务器可以基于地理位置和/或等待时间而专用于不同的客户机设备。例如,和一特定客户机设备最接近的代理服务器可以充当该特定客户机的代理服务器。
返回上例,出于访问和呈现图像集合106的目的,用户102可以最初使用浏览器应用来访问由站点服务器124所主存的图像服务120的网站。例如,在导航到站点服务器124所主存的网站后,用户可以选择与特定图像集合106相关联的URL。响应于此,URL可以指示站点服务器将与图像集合106相关联的布局文件112提供给客户机计算设备104。此外,在一些实例中,这一选择可以启动查看器应用116来查看图像集合106。尽管图1示出与图像集合相关联的布局文件可以被存储在站点服务器的存储132上,但在其他实例中,这些布局文件可以被存储在存储服务器或另一实体的存储134上或可由存储134访问。
在任一实例中,在选择与布局文件112和图像集合106相关联的URL后,图像服务120可以将布局文件112提供给客户机设备104。此外,图像服务120可以提供一个或多个初始或起始图像,用于在第一位置处呈现图像集合106。例如,在所示例子中,图像服务120可以提供图像110(1)-(5)以及布局文件112。图像110(1)可以是供呈现的初始图像,而图像服务120可以提供(与图像110(1)直接相邻的)图像110(2)-(5)以供存储在客户机设备104的高速缓存114中。如图所描绘的,用于初始呈现的图像110(1)包括所示例子中法国巴黎埃菲尔铁塔的中心视图。
在接收到布局文件112和图像110(1)-(5)后,客户机设备104可以解析布局文件112以标识所接收的图像110(1)-(5)的位置。例如,客户机设备104的高速缓存逻辑118可以解析布局文件112以便在用户102导航到图像集合106内的这些直接相邻的图像之一时,标识图像110(1)要被最初呈现,而图像110(2)-(5)要被存储在高速缓存114中。
在一些实例中,图像服务120(例如,预测服务器128)还可以在用户102要呈现图像集合106的初始请求后,向代理服务器130提供布局文件112和一个或多个图像。例如,图像服务可以通过使用与图像集合106相关联的布局文件112,来标识与图像110(2)-(5)直接相邻的图像,并且可以提供这些图像以及图像110(1)-(5)以供存储在代理服务器130的高速缓存136或其他存储中。也就是说,图像服务120可以提供与最初由客户机设备104呈现的图像110(1)直接相邻的图像的直接相邻的图像。
如图所述,由于代理服务器130和存储服务器126相比驻留在较接近于客户机设备(或者在地理上、按等待时间、或两者),因此将这些图像提供给代理服务器130增加了这些图像对于客户机设备104的可访问性。在所示例子中,图像服务120已经提供了图像138(1)-(N)以供存储在代理服务器130的高速缓存136中,这些图像与图像110(2)-(5)直接相邻(并且可能包括图像110(2)-(5))。响应于接收这些图像,代理服务器130可以使用具有键和值的词典数据结构来将它们存储在高速缓存136中,使得代理服务器130可以响应于接收到用户已导航到图像集合106内的新图像的指示,快速地检索和提供这些图像。
在客户机设备104解析布局文件112和呈现起始图像110(1)之后,用户102可以开始导航到图像集合106的其它部分。例如,构想用户102请求导航“到左边”。响应于此,客户机设备104可以从设备104的高速缓存114检索图像110(5),并且可以在显示器108上呈现该图像110(5)。由于该图像被存储在高速缓存114中,因此客户机设备104能够快速地检索和呈现该图像110(5),而用户102不会经历过度的等待时间。
在该导航后,高速缓存逻辑118此后可以指示图像110(5)是当前被呈现的图像,并且可以标识和指示与图像110(5)直接相邻的那些图像。此外,高速缓存逻辑118可以将这些新的直接相邻的图像存储在高速缓存114中。在一些实例中,高速缓存逻辑还可以从高速缓存114中移除不与图像110(5)直接相邻的任何其他图像。例如,高速缓存逻辑118可以将这些其他图像存储在客户机设备104的不同存储中,或者可以从设备104的存储器中删除所述图像。
而且,在该导航后,高速缓存逻辑118可以通过网络122向代理服务器130发送导航的指示。该指示可以采用将附加图像存储在客户机设备104的高速缓存114中的请求的形式。此外,该指示可以标识客户机设备104以及客户机设备104当前呈现的特定图像集合106。在接收到指示后,代理服务器上存储的或者可访问的高速缓存逻辑140可以标识客户机设备104上当前呈现的图像(这里是图像110(5)),并且可以用布局文件112来标识现在与图像110(5)直接相邻的一个或多个图像。在该例中,代理服务器130的高速缓存136中之前存储的图像138(1)-(N)的一部分会包括与图像110(5)直接相邻的图像。由此,代理服务器130可以将图像138(1)-(N)的该部分发送到客户机设备104以供存储在设备104的高速缓存114中。
在一些实例中,代理服务器130可以维持表142,该表142指示代理服务器130(和/或图像服务120的另一实体)之前已经将哪些图像发送到客户机设备104。通过这样做,代理服务器130可以制止将图像不止一次地发送至客户机设备。例如,在该例中,代理服务器可以发送与图像110(5)直接相邻的图像减去任何之前发送的图像。例如,代理服务器130可以制止发送图像110(1),因为表142可以指示在最初请求呈现图像集合106后客户机设备104已经接收到该图像。通过制止发送客户机设备已经存储的图像,高速缓存逻辑140降低通过网络122被发送到客户机设备104的包的尺寸,进一步减少了用户所经历的等待时间。
在从代理服务器130接收图像后,高速缓存逻辑118可以标识这些图像与当前被呈现的图像(图像110(5))直接相邻,并且可以相应地将这些图像存储在高速缓存114中。通过这样做,客户机设备104现在准备好在用户102在图像集合内导航到和图像110(5)直接相邻的图像时,快速地检索和呈现适当的图像。
返回代理服务器130,除了标识直接相邻的图像并将其发送到客户机设备104之外,代理服务器的高速缓存逻辑140可尝试用与刚被发送到客户机设备104的图像直接相邻的图像来重新填充其高速缓存136。由此,高速缓存逻辑140可以将导航的指示发送到预测服务器128。图像服务120内的每一服务器和/或组件可以通过一个或多个网络彼此通信,所述一个或多个网络可以与客户机设备104在其上与代理服务器130通信的网络122相同或不同。在每一实例中,这些网络可以包括多种不同类型的网络的任一个或组合,所述多种不同类型的网络诸如因特网、电缆网络、蜂窝网络、无线网络和有线网络。在客户机设备104包括移动电话或其他移动计算设备的例子中,网络122可以包括蜂窝网络或其他无线网络。
在从代理服务器130接收导航的指示后,预测服务器128上存储或可访问的高速缓存逻辑144可以标识客户机设备104以及客户机设备104当前呈现的图像集合106。更有甚者,高速缓存逻辑144可以基于所接收的指示来标识客户机设备104当前呈现的特定图像(这里是图像110(5))。此外,高速缓存逻辑144可以引用布局文件112来标识预测服务器128可以向代理服务器和/或客户机设备104发送的一组或多组图像。
例如,高速缓存逻辑144可以标识供存储在客户机设备104的高速缓存114中的第一组图像以及供存储在代理服务器130的高速缓存136中的第二组图像。在一例中,第一组图像包括图像集合106中与当前被呈现的图像110(5)直接相邻的图像,而第二组图像是集合106内与第一组图像直接相邻的图像。
在标识这两组图像中的一组或两组后,高速缓存逻辑144可以引用表146,表146存储之前由预测服务器128和/或图像服务120的任一其他实体发送给代理服务器和/或客户机设备104的图像的指示。之后,高速缓存逻辑144可以从存储服务器126的存储134中检索第一组和第二组中之前未被发送到代理服务器和/或客户机设备104的那些图像,并且可以将这些图像(暂时或永久地)存储在预测服务器128的存储148中。然后,高速缓存逻辑144可以将这些图像发送到代理服务器130和/或客户机设备104。
例如,在该例中,高速缓存逻辑144可以标识客户机设备104当前正在呈现图像110(5)。此外,高速缓存逻辑144可以从表146标识,代理服务器130之前已经接收到集合106中与图像110(5)直接相邻的图像。由此,高速缓存逻辑144可以制止将这些直接相邻的图像提供给代理服务器。然而,接下来,高速缓存逻辑可以标识与所述直接相邻的图像直接相邻的一部分图像尚未被发送到代理服务器130。由此,高速缓存逻辑144可以从存储服务器126检索这些图像并且将这些图像发送到代理服务器130。此外,预测服务器128可以更新表146以指示这些图像现在已被发送给代理服务器130。
在从预测服务器128接收这些图像后,代理服务器130可以将图像存储在高速缓存136中,而同时制止在没有接收到用户又一次在图像集合内导航的另一指示时将这些图像发送至客户机设备104。通过这样做,代理服务器130在可容易访问的高速缓存中存储这样的图像,所述图像与和客户机设备104当前呈现的图像110(5)直接相邻的图像直接相邻。由此,如果用户要在图像集合106内导航,代理服务器130中存储的图像可能成为与用户102导航至的新图像直接相邻,并且由此,代理服务器130可以提供这些图像以供存储在客户机设备104的高速缓存114中。
总而言之,体系结构100提供了一种多层高速缓存系统,该系统能预测用户最有可能导航至图像集合中的哪些图像,并且以智能方式跨该体系结构而分发这些图像。例如,体系结构100可以将第一组所预测的图像存储在呈现图像集合的客户机设备104的高速缓存中,而将第二组所预测的图像存储在比存储服务器126较接近于客户机设备104的代理服务器130的高速缓存中。因此,以此方式存储图像可以减少在用户102在客户机设备104上的图像集合106内导航时用户102所经历的等待时间。
当然,尽管已经示出和描述了一个示例体系结构100,但应当理解,多个其他体系结构可实现这里所述的技术。
图2A-2E示出在用户102已请求查看图像集合106之后图1的体系结构内的示例操作流程200。由此,操作流程在以下之后发生:客户机104已接收和解析布局文件112、在设备104的显示器108上呈现了初始图像110(1)、并且在高速缓存114中存储了与图像110(1)直接相邻的图像110(2)-(5)。此外,预测服务器128已向代理服务器130提供了与图像110(2)-(5)直接相邻的图像以供存储在高速缓存136中。
图2A首先说明用户102操作客户机设备以便从初始图像110(1)导航至和图像110(1)直接相邻的后续图像110(5),如箭头202所示。响应于此,客户机设备104从高速缓存114中检索所请求的图像110(5)并将图像110(5)呈现在显示器上。此外,客户机设备104可以向代理服务器130发送该导航的指示204。
图2B示出在代理服务器130从客户机设备104接收指示204之后的操作200。响应于此,代理服务器首先标识客户机设备104、图像集合106、以及用户102已在图像集合106内导航至的图像110(5)。而且,代理服务器130可以标识布局内与图像110(5)直接相邻的一组图像、以及该组图像中之前已被发送至客户机设备104的图像。在该实例中,代理服务器130确定所标识的组中的四个图像中有三个尚未被发送到客户机设备104。由此,代理服务器130向客户机设备104发送包括这三个图像的包206以供存储在高速缓存114中。此外,代理服务器130可以联同指示204一起发送给预测服务器128。
图2C示出在客户机设备104从代理服务器130接收图像之后以及在预测服务器128从代理服务器130接收指示之后的操作流程200。如图所述,响应于从代理服务器130接收包206,客户机设备104已经将该包206中的三个图像存储在高速缓存114中。当这三个图像与初始的且之前呈现的图像110(1)组合时,客户机设备104的高速缓存114现在存储和当前被呈现的图像110(5)直接相邻的每一个图像。由此,如果用户102导航到另一个直接相邻的图像,客户机设备104将能从高速缓存114快速地检索该图像,并将该图像呈现在显示器108上。
同时,响应于从代理服务器130接收指示204,预测服务器128已经标识了客户机设备104、客户机正在呈现的图像集合106、以及用户102已导航到的图像110(5)。根据这一信息,预测服务器128已经标识了包括与图像110(5)直接相邻的图像的第一组图像、以及与第一组的图像直接相邻的第二组图像。此外,预测服务器已经标识了第一和第二组中的哪些图像之前已由代理服务器130和/或客户机设备104接收。然后,预测服务器128生成对第一和第二组的图像减去任何之前发送的图像的请求208。所示请求208代表预测服务器128向存储服务器126发送对图像的请求,或仅仅代表预测服务器128从存储服务器126检索期望的图像。
在该实例中,预测服务器128将确定客户机设备104已经接收到第一组图像(即,直接相邻的图像)的每一个图像,以及代理服务器130已经接收到第二组图像(即,与第一组的图像直接相邻的图像)的一部分图像。由此,预测服务器128将向存储服务器126发送对第二组的其余图像的请求。
图2D示出,响应于发送请求208,预测服务器128可以接收一个包210,包210包括第二组的图像(减去代理服务器130已经拥有的图像)。图2D还示出预测服务器128将该包210发送到代理服务器130。如上所述,该包210的图像供存储在代理服务器130的高速缓存136中,和存储服务器126相比,代理服务器130驻留在较接近于客户机设备104的位置(地理上和/或按等待时间)。
图2E示出代理服务器130接收包210之后的操作流程200。如图所示,代理服务器130将该包210的图像存储在高速缓存中。此外,当与之前存储在高速缓存136中的图像组合时,代理服务器130现在存储每个图像,该图像或者是:(1)与当前呈现的图像110(5)直接相邻,或者(2)与这些直接相邻的图像直接相邻。因此,如果且当用户102在图像集合106内导航到和图像110(5)直接相邻的图像时,代理服务器130可以向客户机设备104发送现在直接相邻的图像的包以供存储在客户机设备104的高速缓存114中。
示例图像-预测过程
图3A-3C包括示例过程300的流程图,该过程用于预测用户最可能导航到与预定义的布局相关联的图像集合中的哪些图像,并且响应于此,提高这些图像对于用户的客户机设备的可访问性。该过程300可以在客户机计算设备104的用户102已经请求并且开始呈现具有预定义布局的图像集合之后发生,所述具有预定义布局的图像集合诸如一系列照片的三维(3D)模型、地图等等。
过程300被示为逻辑流程图中的动作的集合,其表示可以用硬件、软件、或其组合来实现的操作的序列。在软件的上下文中,这些框表示存储在一个或多个计算机可读介质上的计算机指令,这些指令在由一个或多个处理器执行时执行既定操作。注意,描述过程的次序并不旨在解释为限制,并且任何数目的所述动作可以按任何次序组合以实现本过程或替换过程。另外,在不背离此处所述的主题的精神和范围的情况下,个别框可彼此并行地实现,或者可从过程中删除个别框。最后,客户机计算设备104、代理服务器130和预测服务器128下示出的操作可取决于实现由这些相应的行动者、或由其他行动者来执行。
图3A首先示出,在302,客户机设备104接收要呈现具有预定义布局的图像集合中的特定图像的请求。例如,操作客户机设备104的用户102从第一图像导航到在布局中和第一图像直接相邻的第二图像。应当理解,尽管正在呈现的“图像”可包括单个图像(例如三维模型的单个数字照片),然而在其他实例中,“图像”或“特定图像”可以包括在一起的多个图像。例如,在三维模型的例子中,特定图像可包括一起在显示器上呈现的多个不同数字照片的合并。在这些实例中,合并可共同地作为“图像”或“特定图像”来对待。
在304,客户机设备104可以从设备的高速缓存114检索与请求相关联的特定图像。如上所述,由于特定图像与用户从中导航的图像直接相邻,因此特定图像可能已被存储在客户机的高速缓存114中。
同时,在306,客户机设备104可以在设备的显示器上呈现该特定图像。由于客户机设备104从客户机的高速缓存114检索了该图像,因此这一呈现会比客户机设备104原本如传统技术所执行的通过网络并且向图像服务120发送对特定图像的请求的情况快得多地发生。
在308,客户机设备104还向代理服务器130发送对呈现特定图像的请求的指示。如上所述,该指示可以通过任何种类的无线网络、有线网络或其组合来发送。
在310,代理服务器130接收该指示。代理服务器130还可以解析该指示以标识客户机设备104、正在呈现的图像集合、以及用户102在集合内导航到的特定图像。
在312,代理服务器130使用该信息和布局文件112来标识和用户102导航到的特定图像直接相邻的图像。例如,代理服务器130可以引用与图像集合相关联的布局文件112来标识用户102可以用单个用户输入从特定图像导航到的那些图像(即,在布局中距特定图像在单跳内的那些图像)。
在314,代理服务器130标识直接相邻的图像中的哪些之前已被发送至客户机设备。例如,代理服务器130可以引用与客户机设备104相关联的表142来确定客户机设备已经将哪些图像存储在客户机设备104的高速缓存114中或存储在客户机的不同存储中。
图3B继续过程300的说明,并且包括,在316,代理服务器130向客户机计算设备104发送直接相邻的图像减去之前发送的图像。此外,代理服务器130还可以更新表142以指示所发送的图像,以避免稍后重发这些相同的图像。
在318,客户机设备104从代理服务器接收附加的图像。设备104可以通过网络接收这些图像,作为单个包或作为多个包。
在320,客户机设备104可以将所接收的图像存储在客户机设备的高速缓存114中。通过这样做,客户机设备104现在已经拥有和设备当前呈现的图像直接相邻的每一个图像。因此,如果用户102导航到这些直接相邻的图像中的一个,设备104将能够快速地检索和呈现该图像,而不使用户102经历大量等待时间。
同时,在322,代理服务器130可以将原始接收到的指示传递给预测服务器128。代理服务器130可以通过和用于在客户机设备104和代理服务器130之间通信的网络相同或不同的网络来发送该指示。在一些实例中,图像服务120的各服务器通过这样的网络进行通信,该网络和客户机设备104在其间与代理服务器130通信所用的网络相比,具有更高的带宽和更少的等待时间。
在324,预测服务器128接收图像请求的指示。如同上面的代理服务器130,预测服务器128可以解析该请求来标识客户机设备104、正在呈现的图像集合、以及正在呈现的集合中的特定图像。
在326,预测服务器128可以标识和该特定图像相邻的图像。如上面讨论的,这第一组图像可以是供存储在客户机设备104的高速缓存114上的图像。预测服务器128可以使用布局文件112来进行这一标识。
在328,预测服务器128还可以标识和直接相邻的图像直接相邻的图像。同样如上面讨论的,这第二组图像可以是供存储在代理服务器130的高速缓存136上的图像。同样,预测服务器128可以使用布局文件112来进行这一标识。
在330,预测服务器可以标识第一和第二组中的哪些图像之前已分别被提供给代理服务器130和客户机设备104。在该例中,预测服务器128确定客户机设备104已经接收到(或应当已接收到)第一组的每个图像,但代理服务器130还需要接收第二组的一部分图像。在一些实例中,预测服务器128可以引用与客户机设备104相关联的表146来作出这一确定。
图3C使过程300的说明结束。在332,预测服务器128向代理服务器130发送代理服务器130还需要接收的第二组的图像。
在334,代理服务器130从预测服务器128接收这些附加的图像。同样,这些图像可以包括与和客户机设备104上正在呈现的特定图像直接相邻的图像直接相邻的图像中的一些或全部。
在336,代理服务器130将这些附加图像存储在代理服务器130的高速缓存136中。通过这样做,图像服务120(经由代理服务器130)可以在用户102继续导航到与当前被呈现的图像直接相邻的图像时快速地将这些图像提供给客户机设备104。
尽管未示出,但在一些实例中,预测服务器128可以确定第一组图像中的图像应被发送至客户机设备104。例如,构想用户102从图像集合中的第一图像导航到集合中的第二图像,所述第二图像在集合的预定义布局内距离第一图像超过一个跳。在该实例中,预测服务器128可以确定客户机设备104和代理服务器130均不存储和第二图像直接相邻的图像。由此,预测服务器128可以发送第一组的图像(即,直接相邻的图像)以供存储在客户机设备的高速缓存114中。为此,预测服务器128可以将这些图像直接发送至客户机设备104、发送至代理服务器130以供递送至客户机设备104、或以任何其他方式发送。此外,预测服务器128可以确定代理服务器130未存储第二组中的任何图像(即,与第一组的图像直接相邻的图像)。由此,预测服务器128也可以将该第二组图像发送至代理服务器130。
示例高速缓存逻辑
图4是可驻留在代理服务器130上的高速缓存逻辑140的示例400。同时,图5是可驻留在预测服务器128上的高速缓存逻辑144的示例500。如同上面的过程300,该示例逻辑可以包括存储在一个或多个计算机可读介质上的计算机可执行指令,所述指令在被执行时配置一个或多个处理器来执行所述操作的一些或每一个。而且,尽管下面提供了高速缓存逻辑140和144的每一个的一个例子,但是应当理解,高速缓存逻辑140和144可以采用多种其他形式。
在402,代理服务器130的示例高速缓存逻辑400接收对一个或多个图像的客户机请求。在404,逻辑400查询所请求的图像是否被存储在代理服务器130的高速缓存136中。如果是,则在406,高速缓存逻辑400将所请求的图像发送至客户机设备。然而,如果不是,高速缓存逻辑就在408查询图像是否已被存储在向预测服务器128请求的图像队列中。如果否,则在410,逻辑400将该图像添加到队列。在这样做之后(或者如果图像已经在队列中),代理服务器130在412从预测服务器获得图像,并且在414,代理服务器130将这些图像存储在代理服务器130的高速缓存136中。然后,在406,代理服务器130将图像发送至客户机设备。
在416,示例逻辑400查询所请求的一个或多个图像是否在“T+2”组中,其中“T”表示客户机设备当前呈现的图像,“T+1”表示与“T”直接相邻的图像,“T+2”表示与“T+1”图像直接相邻的图像。如果否,则在418,该逻辑查询代理服务器的高速缓存136是否是满的(即,有少于阈值存储空间量剩余)。如果否,则在420,示例高速缓存逻辑400继续监听附加的客户机请求。然而,如果高速缓存136是满的,则在422,高速缓存逻辑400在继续在420监听客户机请求之前,在422根据预定义的图像替换策略来删除高速缓存内的特定图像。
返回判决框416,如果示例逻辑400确定所请求的图像是在“T+2”组中,则逻辑400在424向预测服务器128发送通知消息。在426,并且作为响应,示例高速缓存逻辑400从预测服务器128接收图像,并且在428将图像存储在高速缓存136中。同样,示例高速缓存逻辑400然后确定高速缓存136是否是满的,并且相应地操作,最终在420继续监听附加的客户机请求。
图5示出预测服务器128的示例高速缓存逻辑500。在502,预测服务器128可能从代理服务器130接收客户机请求。在504,逻辑500查询该请求是否是对布局文件(例如布局文件112)的请求。如果是,则逻辑500在506查询所请求的布局文件是否被存储在预测服务器128的高速缓存中。如果是,则在508,预测服务器128在508将布局文件发送至代理服务器130。然而,如果不是,则在508将文件发送至代理服务器130之前,在510,示例高速缓存逻辑500获得布局文件并将该文件存储在预测服务器的高速缓存中。
返回判决框504,如果示例高速缓存逻辑500确定客户机请求不是对布局文件的请求(并因此是对图像集合的一个或多个图像的请求),则在512,示例逻辑500预测用户可导航至的一个或多个可能的图像。例如,示例高速缓存逻辑500可以标识与客户机设备当前呈现的图像直接相邻的第一组图像和/或和第一组的图像直接相邻的第二组图像。在514,示例高速缓存逻辑500可以将所预测的图像的一些或每一个发送至代理服务器130。这些图像中的一些可供存储在代理服务器130的高速缓存136中,一些可供存储在客户机设备的高速缓存114中,以及/或者一些可供存储在这两个高速缓存中。而且,如上面所讨论的,在一些实例中,预测服务器128可以将第一组图像中的图像直接发送至客户机设备或以任一其他方式发送至客户机设备,而不是通过代理服务器130。
示例计算-设备组件
图6示出可驻留在图1的客户机设备104、站点服务器124、存储服务器126、预测服务器128和/或代理服务器130上的几个示例组件。尽管这一说明描绘了少数示例组件,但本领域的普通技术人员应当理解,这些计算设备可包括多个其他组件,包括上面描述和示出的组件。
如图所示,所描绘的计算设备的每一个包括一个或多个处理器602和存储器604。存储器604(和此处描述的其它存储器)可包括计算机可读介质。该计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。
计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可用于存储信息以供计算设备访问的任何其他非传输介质。
相反,通信介质可在诸如载波的已调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所限定的,计算机存储介质不包括通信介质。
而且,存储器604可以存储操作系统(OS)606,以及在OS606之上运行的许多应用和数据608。设备的每一个还可以包括通过网络与其他设备通信的一个或多个网络接口610。最后,每个设备可以包括用于操作相应设备的一个或多个输入/输出(I/O)组件612。例如,客户机计算设备104可以包括键盘或键区、触摸屏和/或任一其他类型的输入设备。此外,客户机计算设备可以包括显示器、扬声器和/或任一其他类型的输出组件。本领域的普通技术人员能理解,图6所示的服务器可以类似地包括适用于操作这些设备的其他I/O组件612。
结论
尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但要理解,所附权利要求书中定义的主题不必限于所描述的具体特征或动作。相反地,这些具体特征和动作是作为实现该权利要求的示例性形式而公开的。

Claims (8)

1.一种呈现图像集合的三维模型的方法,所述方法至少部分地由驻留在预测服务器和移动计算设备之间的代理服务器来实现,所述方法包括:
从所述代理服务器接收图像请求,所述图像请求标识出表示地图或场景的三维模型的图像集合中的、所述移动计算设备的用户已导航至的特定图像;
在所述预测服务器处,根据所述图像请求标识所述图像集合中的第一组图像以供储存在所述移动计算设备的高速缓存中,标识所述图像集合中的第二组图像以供储存在所述代理服务器的高速缓存中,其中所述第一组图像包括所述图像集合中与所述特定图像直接相邻的图像,而所述第二组图像包括所述图像集合中与所述第一组图像中的图像直接相邻的图像;以及
将所述第一组图像和所述第二组图像从所述预测服务器发送至所述代理服务器,其中所述代理服务器高速缓存所述第二组图像,并且进一步将所述第一组图像发送给所述移动计算设备。
2.如权利要求1所述的方法,其特征在于,所述图像请求至少部分地响应于所述移动计算设备在所述地图或3D模型内导航来从所述代理服务器接收。
3.如权利要求1所述的方法,其特征在于,将所述第一组图像和所述第二组图像从所述预测服务器发送至所述代理服务器包括:
引用与所述移动计算设备相关联的表以标识所述预测服务器先前已向所述代理服务器发送了所述第一组图像和所述第二组图像中的哪些图像;以及
向所述代理服务器发送所述第一组图像和所述第二组图像减去任何先前已发送至所述代理服务器的图像。
4.如权利要求1所述的方法,其特征在于,进一步包括在所述发送之后,更新与所述移动计算设备相关联的表以指示所述图像集合中的哪些图像已被发送至所述代理服务器。
5.一种或多种计算设备,包括:
一个或多个处理器;
存储器;以及
存储在所述存储器中并且能够在所述一个或多个处理器上执行的逻辑,所述逻辑用于执行以下动作,包括:
从驻留在预测服务器和客户机计算设备之间的代理服务器接收图像请求,所述图像请求标识出表示地图或场景的三维模型的图像集合中的、所述客户机计算设备的用户已导航至的特定图像;
在所述预测服务器处,根据所述图像请求标识所述图像集合中的第一组图像以供储存在所述客户机计算设备的高速缓存中,标识所述图像集合中的第二组图像以供储存在所述代理服务器的高速缓存中,其中所述第一组图像包括所述图像集合中与所述特定图像直接相邻的图像,而所述第二组图像包括所述图像集合中与所述第一组图像中的图像直接相邻的图像;以及
将所述第一组图像和所述第二组图像从所述预测服务器发送至所述代理服务器,其中所述代理服务器高速缓存所述第二组图像,
并且进一步将所述第一组图像发送给所述客户机计算设备。
6.如权利要求5所述的一种或多种计算设备,其特征在于,所述图像请求至少部分地响应于所述客户机计算设备在所述地图或3D模型内导航来从所述代理服务器接收。
7.如权利要求5所述的一种或多种计算设备,其特征在于,将所述第一组图像和所述第二组图像从所述预测服务器发送至所述代理服务器包括:
引用与所述客户机计算设备相关联的表以标识所述预测服务器先前已向所述代理服务器发送了所述第一组图像和所述第二组图像中的哪些图像,
向所述代理服务器发送所述第一组图像和所述第二组图像减去任何先前已发送至所述代理服务器的图像。
8.如权利要求5所述的一种或多种计算设备,其特征在于,所执行的动作进一步包括在所述发送之后,更新与所述客户机计算设备相关联的表以指示所述图像集合中的哪些图像已被发送至所述代理服务器。
CN201280033410.5A 2011-07-06 2012-07-06 预测性的多层高速缓存体系结构 Active CN103650518B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/177,058 2011-07-06
US13/177,058 US8850075B2 (en) 2011-07-06 2011-07-06 Predictive, multi-layer caching architectures
PCT/US2012/045777 WO2013006802A1 (en) 2011-07-06 2012-07-06 Predictive, multi-layer caching architectures

Publications (2)

Publication Number Publication Date
CN103650518A CN103650518A (zh) 2014-03-19
CN103650518B true CN103650518B (zh) 2017-04-12

Family

ID=47437472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280033410.5A Active CN103650518B (zh) 2011-07-06 2012-07-06 预测性的多层高速缓存体系结构

Country Status (6)

Country Link
US (2) US8850075B2 (zh)
EP (1) EP2730095A4 (zh)
JP (1) JP6007246B2 (zh)
KR (1) KR101885408B1 (zh)
CN (1) CN103650518B (zh)
WO (1) WO2013006802A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112013010661A2 (pt) * 2010-11-05 2020-10-06 Koninklijke Philips Electronics N.V. controlador de cache para uso em um sistema, cliente de imagens, servidor de imagens, estação de trabalho, parelho de formação de iamgem, método de armazenamento e produto de progama de computador.
US8961302B2 (en) 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Game browsing
US20140045475A1 (en) * 2012-08-08 2014-02-13 International Business Machines Corporation Techniques for Improving Cache Effectiveness of Caches with Low User Population
US9381432B2 (en) 2012-08-24 2016-07-05 Microsoft Technology Licensing, Llc Game migration
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
US9717982B2 (en) 2012-12-21 2017-08-01 Microsoft Technology Licensing, Llc Client rendering of latency sensitive game features
CN103905496A (zh) * 2012-12-27 2014-07-02 腾讯科技(深圳)有限公司 一种图片下载方法及装置
US9694277B2 (en) 2013-03-14 2017-07-04 Microsoft Technology Licensing, Llc Client side processing of character interactions in a remote gaming environment
US9564102B2 (en) * 2013-03-14 2017-02-07 Microsoft Technology Licensing, Llc Client side processing of player movement in a remote gaming environment
US20150113367A1 (en) * 2013-10-17 2015-04-23 International Business Machines Corporation Image transitioning and error detection for online presentations
US9756375B2 (en) * 2015-01-22 2017-09-05 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US9740635B2 (en) * 2015-03-12 2017-08-22 Intel Corporation Computing method and apparatus associated with context-aware management of a file cache
US10554713B2 (en) 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
FI127677B (en) 2016-02-26 2018-11-30 Valmet Technologies Oy Industrial textiles and their use
CN106528772B (zh) * 2016-11-07 2019-10-22 王昱淇 一种集群服务器端的网络地图多层次缓存方法
US10924525B2 (en) * 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
US11170777B2 (en) * 2019-05-06 2021-11-09 Google Llc Proactive caching of assistant action content at a client device to enable on-device resolution of spoken or typed utterances
WO2022003966A1 (ja) * 2020-07-03 2022-01-06 日本電信電話株式会社 遠隔レンダリングシステム、画像処理方法、サーバ装置及びプログラム
US20240171645A1 (en) * 2022-11-17 2024-05-23 Hyland Software, Inc. Systems, methods, and devices for hub, spoke and edge rendering in a picture archiving and communication system (pacs)

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3621572B2 (ja) * 1997-12-11 2005-02-16 文雄 溝口 地図データの先読み方法及び地図スクロール方法
JP2000285006A (ja) 1999-03-31 2000-10-13 Toshiba Corp 情報取得制御装置及び情報取得制御方法
US7340499B1 (en) 1999-12-03 2008-03-04 Sun Microsystems, Inc. Dynamic embedding of literal object data in supplied instance of information object
AU2001275453A1 (en) 2000-06-09 2001-12-17 Imove Inc. Streaming panoramic video
US6671424B1 (en) * 2000-07-25 2003-12-30 Chipworks Predictive image caching algorithm
US6724382B2 (en) * 2000-12-04 2004-04-20 Wildtangent, Inc. Method and apparatus for distributing and displaying maps electronically
US20020067379A1 (en) * 2000-12-04 2002-06-06 Kenyon Jeremy A. Method and apparatus for distributing and displaying maps electronically
JP3691405B2 (ja) * 2001-04-25 2005-09-07 ドリームテクノロジーズ株式会社 データ管理装置及び地図表示システム
US7133905B2 (en) * 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US9342459B2 (en) * 2002-08-06 2016-05-17 Qualcomm Incorporated Cache management in a mobile device
US7668536B2 (en) * 2002-08-06 2010-02-23 Hewlett-Packard Development Company, L.P. Retrieving media items to a mobile device
US8176186B2 (en) * 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US7797064B2 (en) 2002-12-13 2010-09-14 Stephen Loomis Apparatus and method for skipping songs without delay
US7467356B2 (en) * 2003-07-25 2008-12-16 Three-B International Limited Graphical user interface for 3d virtual display browser using virtual display windows
KR101011134B1 (ko) 2004-06-07 2011-01-26 슬링 미디어 인코퍼레이티드 퍼스널 미디어 브로드캐스팅 시스템
US20060058953A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7437509B2 (en) 2004-09-29 2008-10-14 Sap Ag Mobile adaptive cache
US20060200308A1 (en) * 2005-03-03 2006-09-07 Arutunian Ethan B Server-based interactive enhanced map imagery engine
US20060200382A1 (en) * 2005-03-03 2006-09-07 Arutunian Ethan B Notifications using enhanced map-based imagery
JP2008535098A (ja) * 2005-03-29 2008-08-28 マイクロソフト コーポレーション ウェブページデータを転送するシステムおよび方法
EA200702639A1 (ru) 2005-05-31 2008-06-30 Менторуэйв Текнолоджиз Лтд. Способ и система отображения интерактивного кинофильма через сеть
US9041744B2 (en) * 2005-07-14 2015-05-26 Telecommunication Systems, Inc. Tiled map display on a wireless device
US7315259B2 (en) * 2005-08-11 2008-01-01 Google Inc. Techniques for displaying and caching tiled map data on constrained-resource services
US20080082549A1 (en) * 2006-10-02 2008-04-03 Vic Baker Multi-Dimensional Web-Enabled Data Viewer
US8554625B2 (en) 2006-12-08 2013-10-08 Samsung Electronics Co., Ltd. Mobile advertising and content caching mechanism for mobile devices and method for use thereof
US7675549B1 (en) * 2006-12-08 2010-03-09 Itt Manufacturing Enterprises, Inc. Imaging architecture for region and time of interest collection and dissemination
US8180735B2 (en) * 2006-12-29 2012-05-15 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway at user premises
WO2008092104A2 (en) * 2007-01-25 2008-07-31 Skyfire Labs, Inc. Dynamic client-server video tiling streaming
WO2009006632A2 (en) * 2007-07-05 2009-01-08 Purdue Research Foundation Nuclear detection via a system of widly distributed low cost detectors
WO2009038149A1 (ja) * 2007-09-20 2009-03-26 Nec Corporation 映像提供システム、および映像提供方法
US8244770B2 (en) * 2007-09-26 2012-08-14 Telecommunication Systems, Inc. Image tile server
US20090183083A1 (en) 2007-10-01 2009-07-16 Hedges Jason D Method and system for displaying information on a map
US8947421B2 (en) * 2007-10-29 2015-02-03 Interman Corporation Method and server computer for generating map images for creating virtual spaces representing the real world
US11187541B2 (en) * 2008-05-09 2021-11-30 Blackberry Limited Predictive downloading of map data
US20090317062A1 (en) * 2008-06-24 2009-12-24 Samsung Electronics Co., Ltd. Image processing method and apparatus
US8103441B2 (en) * 2008-06-26 2012-01-24 Microsoft Corporation Caching navigation content for intermittently connected devices
US8112475B2 (en) * 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US20100021013A1 (en) * 2008-07-25 2010-01-28 Gale William N Open area maps with guidance
US8825387B2 (en) * 2008-07-25 2014-09-02 Navteq B.V. Positioning open area maps
US9037972B2 (en) * 2009-09-25 2015-05-19 Thomson Licensing Apparatus and method for grid navigation
EP2513799B1 (en) 2009-12-16 2014-03-12 Telefonaktiebolaget L M Ericsson (PUBL) A method, server and computer program for caching
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment

Also Published As

Publication number Publication date
EP2730095A4 (en) 2014-06-25
WO2013006802A1 (en) 2013-01-10
KR20140041681A (ko) 2014-04-04
US20130014064A1 (en) 2013-01-10
JP2014521150A (ja) 2014-08-25
US20150081779A1 (en) 2015-03-19
CN103650518A (zh) 2014-03-19
JP6007246B2 (ja) 2016-10-12
KR101885408B1 (ko) 2018-08-03
EP2730095A1 (en) 2014-05-14
US9785608B2 (en) 2017-10-10
US8850075B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
CN103650518B (zh) 预测性的多层高速缓存体系结构
KR102510316B1 (ko) 프로그램을 기록한 기록 매체, 정보 처리 방법 및 정보 처리 단말
CN104782138B (zh) 缩略图图像选择系统、方法及计算机可读介质
CN103024045B (zh) 一种高速缓存服务器中的方法、服务器和系统
JP7307712B2 (ja) 端末、端末の制御方法、及びプログラム
CN107992530A (zh) 信息推荐方法及电子设备
US9727587B2 (en) Previewing search results
CN109791680A (zh) 在线社交网络上的视频关键帧显示
US20110258575A1 (en) Displaying large datasets in a browser environment
KR101985714B1 (ko) 유연한 이미지 레이아웃
CN106462582A (zh) 批处理优化渲染和获取架构
KR20150031331A (ko) 세트 내의 컨텐트 아이템들 사이에서의 네비게이팅
US11526546B2 (en) Mechanism to handle interrupted playback experience for media items in playlists
US20150288748A1 (en) Method and apparatus for processing web intent message and event in terminal using cloud server
CN106714920A (zh) 对媒体内容的智能流传输
US20170187822A1 (en) Content prefetching and cache management
US9824151B2 (en) Providing a portion of requested data based upon historical user interaction with the data
US11475002B1 (en) Machine learning system for dynamic generation of computer-implemented policies
CN108959450A (zh) 一种热门评论确定系统、方法、装置和可读介质
CN107615789A (zh) 基于下游用户参与的通知定向
CN108885621A (zh) 用于加快加载时间的内容缓存
US11869240B1 (en) Semantic video segmentation
KR20220120419A (ko) 웹페이지 표시 방법 및 브라우저 디스플레이 시스템
CN118691362A (zh) 旅游出行产品评论图像展示方法及装置
CN116886989A (zh) 媒体内容的生成方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 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: 20150729

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

Effective date of registration: 20150729

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant