远程浏览会话管理的制作方法

文档序号:6496259阅读:173来源:国知局
远程浏览会话管理的制作方法
【专利摘要】一种浏览过程针对浏览会话在网络计算和存储提供商上的生成和管理。客户端计算设备在网络计算和存储提供商上请求远程浏览会话实例。所述浏览会话实例可对应于请求的网络内容。所述网络计算和存储提供商确定浏览配置。所述浏览配置可识别通信协议和各种处理动作。所述网络计算和存储提供商通过实例化的网络浏览会话实例检索所述请求的内容,并执行第一组处理动作以生成处理结果。所述处理结果可被提供到所述客户端计算设备以进行显示,包括在所述客户端计算设备上对所述处理结果执行第二组处理动作。
【专利说明】远程浏览会话管理
[0001]发明背景
[0002]一般描述,计算设备和通信网络可用以交换信息。在常见应用中,计算设备可通过通信网络从另一计算设备请求内容。例如,个人计算设备处的用户可利用软件浏览器应用(通常被称为浏览器软件应用)来通过互联网从服务器计算设备请求网页。在这样的实施方案中,用户计算设备可被称为客户端计算设备且服务器计算设备可被称为内容提供商。
[0003]参看说明性实例,请求的网页或原始内容可与将用网页显示的许多额外资源(诸如,图像或视频)相关。在一个特定实施方案中,网页的额外资源由例如统一资源定位符(“URL”)的许多嵌入式资源识别符识别。反过来,例如浏览器软件应用的客户端计算设备上的软件通常处理嵌入式资源识别符以生成内容的请求。因此,为了满足内容请求,一个或多个内容提供商将通常向客户端计算设备提供与网页相关的数据以及与嵌入式资源相关的数据。
[0004]一旦客户端计算设备获得网页和相关的额外资源,内容可在许多阶段被软件浏览器应用或其他客户端计算设备界面处理。例如且参看以上说明,软件浏览器应用可分析网页以处理各种HTML布局信息和对相关资源的参考,可识别并处理层叠样式表(“CSS”)信息,可处理并实例化与网页相关的各种Javascript代码,可构建本机对象模型以代表网页的一个或多个组件,且可计算各种布局并显示经处理内容的特性以向用户演示。
[0005]从利用客户端计算设备的用户的观点看来,用户体验可根据与以下相关的性能和延迟来定义:通过通信网络获得网络内容,例如获得网页;处理嵌入式资源识别符;生成请求以获得嵌入式资源;和在客户端计算设备上呈现内容。上述过程的任一个的延迟和性能限制可减小用户体验。另外,延迟和低效率可能在有限资源(诸如处理能力、内存或网络连接)的计算设备(诸如,上网本、平板计算机、智能手机等)上尤其明显。
[0006]附图简述
[0007]由于通过参考结合附图进行的以下详细描述可更好地理解本发明的上述方面和许多伴随的优势,所以所述方面和优势将变得更容易理解,在附图中:
[0008]图1是说明包括许多客户端计算设备、内容提供商、内容传递网络服务提供商和网络计算及存储提供商的内容传递环境的框图;
[0009]图2是示出生成并处理从客户端计算设备到网络计算和存储提供商的新的浏览会话请求的图1的内容传递环境的框图;
[0010]图3是示出生成并处理从网络计算和存储提供商到内容提供商的网络资源的请求的图1的内容传递环境的框图;
[0011]图4是示出生成并处理对应于从网络计算和存储提供商到内容提供商和内容传递网络的一个或多个嵌入式资源的一个或多个请求的图1的内容传递环境的框图;
[0012]图5是示出生成并处理在网络计算和存储提供商与客户端计算设备之间的浏览会话数据和用户交互数据的图1的内容传递环境的框图;
[0013]图6是示出生成并处理从客户端计算设备到网络计算和存储提供商的额外的新的浏览会话请求的图1的内容传递环境的框图;[0014]图7是描绘说明性浏览器界面和浏览会话内容的显示的用户界面图;
[0015]图8是描绘作为一系列处理子系统的说明性浏览器内容处理动作的图;
[0016]图9是说明网络计算和存储提供商实施的新的浏览会话程序的流程图;
[0017]图10是说明客户端计算设备实施的客户端新的浏览会话交互程序的流程图;和
[0018]图11是说明客户端计算设备实施的过程用户交互程序的流程图。
【具体实施方式】
[0019]一般描述,本发明针对结合网络计算和存储提供商在客户端计算设备和内容提供商之间生成并管理远程应用会话。特别说来,本公开的方面将关于以下进行描述:客户端计算设备向内容提供商进行浏览会话的请求;在客户端计算设备与网络计算和存储提供商之间建立远程浏览会话;和在客户端计算设备与网络计算和存储提供商之间传输浏览会话状态数据和客户端交互数据。虽然本发明中描述的实施方案的方面为了说明的目的将集中于管理远程浏览会话,但是本领域技术人员应理解,本文公开的技术可应用于任何数量的软件过程或应用。另外,虽然本发明的各种方面将参照说明性实例和实施方案进行描述,但是本领域技术人员应理解,公开的实施方案和实例不应理解为限制性的。
[0020]参看说明性实例,用户可使客户端计算设备加载用于访问一个或多个内容提供商提供的内容的软件浏览器应用(以下称为“浏览器”)。说明性地,访问的内容可包括一个或多个网络资源(例如,网页)、嵌入式资源(诸如图像、视频、音频、文本、可执行代码)和其它资源的集合。在一个实施方案中,除了一个或多个本地接口组件(诸如,工具栏、菜单、按钮或其它用户界面控件)之外,浏览器可具有用于显示访问的网络内容的内容显示区域或窗格。本地接口组件可由软件浏览器应用管理且控制,或由在客户端计算设备处本地执行或实施的任何其它过程来管理并控制。说明性地,本地管理用户界面控件可允许响应的用户界面,因为用户进行的交互是在客户端计算设备上本地处理的。
[0021]在加载浏览器之后,用户或自动浏览器过程可通过在专用网络或公共网络上与网络计算和存储提供商建立浏览会话来使客户端计算设备传送请求以访问来自内容提供商的内容。浏览会话请求可包括识别请求的内容的一个或多个来源的信息。识别符可呈网络资源的网络地址的形式,诸如,网站或其它网络访问的内容片段。例如,用户可选择或把URL(例如,http://www.xyzwebsite.com)输入浏览器窗口,从而使客户端计算设备把新的浏览会话的请求传送到网络计算和存储提供商,包括选择的URL。能够提供浏览会话请求的网络计算和存储提供商的地址或位置可被硬编码到浏览器;可由用户配置;可从网络地址服务获得;或可用任何其它方式来确定。
[0022]在说明性实施方案中,响应于从客户端计算设备接收的浏览会话请求,网络计算和存储提供商可实例化与将托管浏览器软件应用的网络计算和存储提供商相关的一个或多个计算组件或具有实例化的一个或多个计算组件。例如,网络计算和存储提供商可实例化包括能够从通信网络请求资源的软件浏览器应用的虚拟机的实例,或具有实例化的虚拟机的实例。说明性地,在一些情况下,与网络计算和存储提供商相关的一个或多个设备可位于数据中心或其它鲁棒性地的联网计算环境,且与客户端计算设备相比,当获得网络资源时,所述设备可经历相对较少的延迟或延时。
[0023]使用实例化的网络计算组件,网络计算和存储提供商可从一个或多个内容提供商、内容传递网络或本地或相关缓存组件请求识别网络资源。例如,实例化的网络计算组件上的浏览器软件应用可处理主要网络资源,且接着生成一个或多个嵌入式资源识别符(例如,图片、视频文件等)中识别的内容的额外的内容请求。说明性地,在其它非浏览器应用的情况下,网络资源或内容可包括本领域已知且特定软件应用支持的任何文件类型或格式。
[0024]已获得所请求的内容(例如,请求的网络资源和嵌入式资源)之后,网络计算和存储提供商可识别指定远程会话通信协议的远程会话浏览配置,该远程会话通信协议用于在客户端计算设备上执行的浏览器与在计算和存储提供商上的实例化的网络计算组件处执行的浏览器之间传送请求的内容、用户交互数据、中间处理结果和其它信息。在实例化的网络计算组件上的浏览器与客户端计算设备上的浏览器之间交换的信息可通常称为“浏览器会话信息”。
[0025]除了指定用于在客户端计算设备和实例化的网络计算组件之间传送信息的远程会话通信协议之外,在一个实施方案中,识别的远程会话浏览配置还可指定将对请求的内容执行的一个或多个处理动作将在网络计算和存储提供商上执行而不是在客户端计算设备上执行或在客户端计算设备上执行之外,还可以在网络计算和存储提供商上执行。为达说明的目的,浏览器处理网络内容可包括在内容可用合适的形式在客户端计算设备上呈现之前进行的各种处理动作。例如,可分析并处理网页来处理各种HTML布局信息和对相关资源或嵌入式内容(诸如CSS样式表和Javascript)以及嵌入的内容对象(诸如图像、视频、音频等)的参考。在可构建并进一步处理对应于网页的代表对象模型以进行布局和显示之前,可分析并处理每个对象或每段代码。根据选择的远程会话浏览配置,客户端计算设备和实例化的网络计算组件可通过浏览器会话信息(例如,代表请求的内容的状态数据或显示数据)来交换处理结果。
[0026]图1是说明用于管理并处理内容请求的联网计算环境100的框图。如图1示出,联网计算环境100包括许多客户端计算设备102 (通常称为客户端),客户端计算设备102用于从内容提供商104、CDN服务提供商106或网络计算和存储提供商107请求内容和内容处理。在说明性实施方案中,客户端计算设备102可对应于各种各样的计算设备,包括个人计算设备、膝上型计算设备、手持计算设备、终端计算设备、移动设备(例如,手机、平板计算设备等)、无线设备、各种电子设备和家电等。在说明性实施方案中,客户端计算设备102包括用于通过通信网络108 (诸如广域网或局域网)建立通信的必要的硬件和软件组件。例如,客户端计算设备102可配备有通过互联网或内联网促进通信的网络设备和浏览器软件应用。客户端计算设备102可具有各种本地计算资源,例如,中央处理单元和架构、存储器、大容量存储器、图形处理单元、通信网络可用性和带宽等。
[0027]联网计算环境100也可包括通过通信网络108与一个或多个客户端计算设备102或其它服务提供商(例如,CDN服务提供商106、网络计算和存储提供商107等)通信的内容提供商104。图1中示出的内容提供商104对应于与内容提供商相关的一个或多个计算设备的逻辑关联。具体来说,内容提供商104可包括对应于用于从客户端计算设备102或其它服务提供商获得并处理内容(例如,网页)的请求的一个或多个服务器计算设备的网络服务器组件110。内容提供商104还可包括对应于用于从⑶N服务提供商获得并处理网络资源的请求的一个或多个计算设备的原始服务器组件112和相关存储组件114。内容提供商104还可包括用于处理流内容请求的应用服务器计算设备111,例如,数据流服务器。相关领域技术人员应理解,内容提供商104可与各种额外的计算资源相关,所述计算资源例如管理内容和资源、DNS名称服务器等的额外的计算设备。例如,虽然图1中未示出,但是内容提供商104可与一个或多个DNS名称服务器组件相关,所述DNS名称服务器组件将被授权来解析对应于内容提供商的域名的客户端计算设备DNS查询。
[0028]继续参看图1,联网计算环境100还可包括通过通信网络108与一个或多个客户端计算设备102和其它服务提供商通信的CDN服务提供商106。图1中示出的CDN服务提供商106对应于与CDN服务提供商相关的一个或多个计算设备的逻辑关联。具体来说,CDN服务提供商106可包括对应于通信网络108上的节点的许多存在点(“POP”)位置116、122、128。每个⑶N P0P116、122、128都包括由用于解析来自客户端计算机102的DNS查询的许多DNS服务器计算设备组成的DNS组件118、124、130。每个CDN P0P116、122、128也包括由许多缓存服务器计算设备组成的资源缓存组件120、126、132,所述缓存服务器设备用于存储来自内容提供商的资源并把各种请求的资源传送到各种客户端计算机。DNS组件118、124和130和资源缓存组件120、126、132还可包括促进通信的额外软件和/或硬件组件,包括但不限于,负载平衡或负载共享软件/硬件组件。
[0029]在说明性实施方案中,DNS组件118、124、130和资源缓存组件120、126、132被认为是逻辑分组的,而不管组件或组件的部分是否物理上分开。另外,虽然⑶N P0P116U22、128在图1中示出为逻辑上与⑶N服务提供商106相关,但是⑶N POP将以最佳地提供客户端计算设备102的各种人口统计的方式来在整个通信网络108上地理分布。另外,相关领域技术人员应理解,CDN服务提供商106可与各种额外计算资源相关,例如用于管理内容和资源的额外计算设备等。
[0030]还继续参看图1,联网计算环境100也可包括通过通信网络108与一个或多个客户端计算设备102、CDN服务提供商106和内容提供商104通信的网络计算和存储提供商107。图1中示出的网络计算和存储提供商107也对应于与网络计算和存储提供商相关的一个或多个计算设备的逻辑关联。具体来说,网络计算和存储提供商107可包括对应于通信网络108上的节点的许多存在点(“POP”)位置134、142、148。每个P0P134、142、148都包括网络计算组件(NCC) 136、144、150,所述网络计算组件用于通过通常称为NCC的实例的许多虚拟机的实例来托管应用(诸如数据流应用)。相关领域技术人员应理解,NCC136U44、150可包括物理计算设备资源和软件以提供虚拟机的多个实例或者动态促成虚拟机的实例的创建。这样的创建可基于例如来自客户端计算设备的特定请求,或者NCC可独自开始动态创建虚拟机的实例。每个NCC P0P134、142、148也都包括由用于存储用以传递并处理网络或计算资源的任何类型的数据的许多存储设备组成的存储组件140、146、152,所述数据包括但不限于用户数据、状态信息、处理要求、历史使用数据和来自内容提供商的资源,所述资源将由NCC136、144、150的实例处理并传送到各种客户端计算机等。NCC136、144、150和存储组件140、146、152还可包括促进通信的额外软件和/或硬件组件,包括但不限于,用于选择支持请求的应用且/或提供信息到DNS名称服务器以促进请求路由的虚拟机的实例的负载平衡或负载共享软件/硬件组件。
[0031]在说明性实施方案中,NCC136、144、150和存储组件140、146、152被认为是逻辑分组的,而不管组件或组件的部分是否物理上分开。例如,网络计算和存储提供商107可维护单独的POP以提供NCC和存储组件。另外,虽然NCC P0P134、142、148在图1示出为逻辑上与网络计算和存储提供商107相关,但是NCC POP将以最佳地提供客户端计算设备102的各种人口统计的方式来在整个通信网络108上地理分布。另外,相关领域的技术人员应理解,网络计算和存储提供商107可与各种额外计算资源相关,例如用于管理内容和资源的额外的计算设备等。甚至进一步,相关领域技术人员应理解,网络计算和存储提供商107的组件和CDN服务提供商106的组件可由相同或不同实体来管理。
[0032]现参看图2-6,将示出图1的联网计算环境100的各种组件之间的交互。特别说来,图2-6示出通过网络计算和存储提供商107在客户端计算设备102和内容提供商104之间交换内容的联网计算环境100的各种组件之间的交互。然而,为了举例的目的,已简化了说明,使得未示出用以促进通信的许多组件。相关领域技术人员应理解,在不脱离本发明的精神和范围的情况下,可使用此类组件,且可相应地发生额外的交互。
[0033]参看图2,过程可始于生成并处理从客户端计算设备102到网络计算和存储提供商107的浏览会话请求。说明性地,客户端计算设备102可加载浏览器以响应于事件或用户请求查看网络内容。在加载浏览器之后,浏览器可被实施以请求新的浏览会话。从客户端计算设备的用户的观点看来,新的浏览会话的请求对应于把请求传送到一个或多个对应的内容提供商104的预期的请求。说明性地,该请求可作为浏览器加载(例如,对默认或“主页”页面的请求)的结果而自动生成,或可作为用户跟踪链接或把网络地址输入地址栏的结果而生成。如图2示出,浏览会话请求首先被传送到网络计算和存储提供商107。在说明性实施方案中,网络计算和存储提供商107利用注册应用程序接口(“API”)以从客户端计算设备102接受浏览会话请求。浏览会话请求可包括对应于请求的网络资源的可呈任何形式的网络地址信息,包括但不限于,互联网协议(“IP”)地址、URL、媒体访问控制(“MAC”)地址等。
[0034]在接收到浏览会话请求之后,网络计算和存储提供商107可选择相关的网络计算组件(以下称为“NCC”)存在点(以下称为“POP”)(例如,NCC POP142)以提供浏览会话请求。NCC POP的选择可确定实例化的虚拟机可用的处理和网络资源。在NCC POP实例中的处理和网络资源的选择和软件的提供可至少部分地进行,以便优化与内容提供商104和客户端计算设备102的通信。
[0035]参看图3,将描述生成并处理从网络计算和存储提供商107到内容提供商104的网络资源的请求的说明性交互。如图3示出,选择的NCC P0P142可基于例如以上图2描绘的说明性浏览会话请求的浏览会话请求来生成对应于一个或多个内容提供商的浏览会话。说明性地,实例化新的浏览会话实例可包括在NCC P0P142加载新的虚拟机实例和/或浏览器实例;预留或分配设备存储器、存储或缓存空间、处理器时间、网络带宽或新的浏览会话的其它计算或网络资源。
[0036]在初始化新的浏览会话实例之后,NCC P0P142可基于浏览会话请求中包括的网络地址把网络资源的请求提供到内容提供商104。例如,浏览会话请求可包括网页的URL,例如“http://www.xyzsite.com/default.htm'NCC P0P142可通过与网络计算和存储提供商(未示出)相关的DNS解析程序把URL解析到IP地址,且可在解析的IP地址处从内容提供商104请求网页。在各种实施方案中,可从内容提供商、内容传递网络(以下称为“CDN”)服务器或与网络计算和存储提供商107相关的缓存的任何组合检索网络资源。例如,网络计算和存储提供商可检查资源是存储在本地缓存中还是存储在与网络计算和存储提供商107相关的另一服务器或服务提供商中。如果网络资源存储在本地或相关位置中,那么NCCPOP142可从本地或相关位置而不是从第三方内容提供商104或⑶N服务提供商106检索网络资源。说明性地,NCC POP142可提供浏览会话请求中包括的任何数量的网络资源的请求,且可从任何数量的不同来源顺序地或并行地获得这些网络资源。
[0037]如图3示出,内容提供商104从NCC P0P142接收资源请求并相应地处理所述请求。在一个实施方案中,内容提供商104处理资源请求,如同所述资源请求最初由客户端计算设备102提供一样。例如,内容提供商104可根据发出请求的客户端计算设备102的要求来选择内容类型、内容排序或内容版本。在另一实施方案中,内容提供商104可具有提供与NCC P0P142相关的信息以用于提供请求的内容(例如,处理资源或网络带宽的可用量)的信息。
[0038]在从内容提供商104 (或内容提供商指定的其它来源)获得请求的网络资源之后,NCC P0P142可处理网络资源以提取嵌入式资源识别符并收集确定远程会话浏览配置的信息。例如,网络资源(诸如网页)可包括嵌入式CSS样式信息和Javascript以及额外资源(例如文本、图像、视频、音频、动画、可执行代码和其它HTML、CSS和Javascript文件)的嵌入式资源识别符。在提取嵌入式资源识别符的过程中,NCC P0P142可收集关于处理的网络资源的信息供后来用于对远程会话浏览配置的确定,如下文参看图4讨论。
[0039]参看图4,公开了生成并处理对应于从网络计算和存储提供商到内容提供商和内容传递网络的一个或多个嵌入式资源的一个或多个请求的说明性交互。如图4示出,选择的NCC P0P142可把资源请求提供到一个或多个内容来源(诸如,内容提供商104和⑶NP0P116)。资源请求可对应于基于如上文图3描述的从请求的网络资源(例如,网页)提取的一个或多个嵌入式资源识别符的嵌入式资源。在各种实施方案中,可从内容提供商、CDN服务器或与网络计算和存储提供商107相关的缓存的任何组合检索嵌入式资源。例如,网络计算和存储提供商可检查嵌入式资源是存储在本地缓存中还是存储在与网络计算和存储提供商107相关的另一服务器或服务提供商中。如果嵌入式资源存储在本地或相关位置中,那么NCC P0P142可从本地或相关位置而不是从第三方内容提供商或⑶N检索嵌入式资源。说明性地,NCC P0P142可提供网络资源参考的任何数量的嵌入式资源的请求,且可从任何数量的不同来源顺序或并行地获得所述嵌入式资源。在获得请求的资源之后,NCCP0P142可处理资源和请求的内容以确定处理和把内容传递到客户端计算设备102的远程会话浏览配置。
[0040]参看图5,公开了生成并处理处理结果和在网络计算和存储提供商和客户端计算设备之间的用户交互数据的说明性交互。如之前所描述,在一个实施方案中,实例化的网络计算组件和客户端计算设备102上的相应浏览器可交换关于在实例化的网络计算组件和客户端计算设备上分配并处理请求的资源的浏览器的会话信息。如图5示出,选择的NCCP0P142可通过网络108把初始处理结果提供到客户端计算设备102。初始处理结果可对应于请求的网络内容(诸如,网页)以及NCC P0P142根据如上文图4描述的选择的远程会话浏览配置处理的相关嵌入式资源。NCC P0P142也对哪些额外的过程将在NCCP0P142、在客户端计算设备102或两者上进行做出确定。在接收到初始处理结果和过程的分配之后,客户端计算设备102可对初始处理结果执行如选择的远程会话浏览配置所需的任何剩余的处理动作,且可在浏览器的内容显示区显示完全处理的内容。客户端计算设备102可在本地处理与本地接口组件或内容元素的任何本地用户交互,且可把需要远程处理的用户交互提供到网络计算和存储提供商107。网络计算和存储提供商107可响应于来自客户端计算设备的内容或远程用户交互数据的变化而把已更新的处理结果提供到客户端计算设备。
[0041]参看图6,公开了示出生成并处理从客户端计算设备到网络计算和存储提供商的额外的新的浏览会话请求的图1的内容传递环境的框图。如图6示出,第二新的浏览会话请求可通过网络108从客户端计算设备102发送到网络计算和存储提供商107。在说明性实施方案中,网络计算和存储提供商107利用注册API来从客户端计算设备102接受浏览会话请求。
[0042]额外的浏览会话请求可由客户端计算设备102响应于以下操作而生成:用户打开具有新的内容显示区的新的浏览器窗口、在现有浏览器窗口打开新的内容显示区(例如,在浏览器中打开新的标签)、在现有内容显示区中请求新的网络内容(例如,跟踪新的网络资源的链接或把新的网络地址输入浏览器)或任何其它用户交互。例如,浏览对应于第一浏览会话实例的第一网页的用户可跟踪打开新的标签或浏览器窗口的链接以查看第二网页。在一个实施方案中,获得并处理与第二网页相关的内容的任何必要步骤可由当前实例化的网络计算组件来执行,其中浏览器可处理两个资源请求的处理。在另一实施方案中,客户端计算设备102请求可被处理为网络计算和存储提供商107的新的浏览会话请求,包括第二网页的网络地址。在这个实施方案中,客户端计算设备上的浏览器可能不具体请求单独的浏览会话,且在客户端计算设备102上与浏览器的用户交互可看做是所述浏览会话的部分。如上文相对于图2和图3描述,网络计算和存储提供商107可使用于获得并处理与第二网页相关的内容的网络计算组件实例化。在其它实施方案中,新的浏览会话请求可由客户端计算设备102来生成,客户端计算设备102对应于网络资源的部分(例如,网页的帧)、个别网络资源,或嵌入式资源自身、一组内容或个别网络资源中包括的数据对象。
[0043]说明性地,额外的浏览会话请求可包括任何数量的数据或信息片,包括但不限于,与用户相关的信息、与客户端计算设备102相关的信息(例如,硬件或软件信息、设备物理或逻辑位置等)、与网络108相关的信息、用户或浏览器偏好(例如,请求的远程会话浏览协议、偏好列表、决策树或其它信息)、与网络计算和存储提供商107相关的信息、与一个或多个请求的网络内容片相关的信息(例如,网络资源的网络地址)等。请求的内容可包括任何方式的数字内容,包括网页或其它文档、文本、图像、视频、音频、可执行的脚本或代码,或任何其它类型的数字资源。
[0044]在接收到浏览会话请求之后,网络计算和存储提供商107可选择相关的网络计算组件(诸如NCC P0P142)以提供浏览会话请求。如上文参看图2讨论,网络计算和存储提供商107可基于任何数量的因素来选择NCC POP以提供浏览会话请求,所述因素包括但不限于可用NCC POP资源(例如,可用存储器、处理器负载、网络负载等)、在NCC POP提供浏览会话请求的财务成本、相对于客户端计算设备102、内容提供商112或⑶N POPl 16的NCCPOP位置、NCC POP缓存状态(例如,请求的资源是否已存储在NCC POP缓存中)等。在一个实施方案中,网络计算和存储提供商107可选择许多NCC POP以提供浏览会话请求。说明性地,虽然当选择NCC P0P142时为达说明的目的描绘了网络计算和存储提供商107,但是网络计算和存储提供商107可选择任何现有的NCC POP来提供浏览会话请求。例如,单个客户端计算设备102可同时或顺序地把三个不同浏览会话请求提供到对应于不同网络资源的网络计算和存储提供商107。网络计算和存储提供商107可为每个浏览会话请求选择不同的NCC POP、为所有这三个浏览会话请求选择相同的NCC POP,或它们的任何组合。如上文所讨论,决定是否选择与用于先前或同时浏览会话请求的NCC POP不同的NCC POP可在可用系统资源基础上进行,随机进行,或根据如上文所讨论并相对于图2所描述的任何其它因素进行。
[0045]图7是示出说明性浏览器界面和浏览会话内容的显示的用户界面图。如上文参看图5描述,浏览器700可具有内容显示区702,以及一个或多个本地接口组件。所述本地接口组件可包括工具栏、菜单、按钮、地址栏、滚动条、窗口大小调整控件或任何其它用户界面控件。说明性地,本地接口组件可显示为与内容显示区分开或可覆盖或嵌入内容显示区中。
[0046]与本地接口组件的交互可被视为本地用户交互或远程用户交互,这取决于交互所需的处理和远程会话浏览配置。例如,在浏览器菜单中选择偏好选项可被浏览器完全处理为本地用户交互。可在本地执行显示菜单、提供关于选择的视觉反馈、显示偏好窗口和处理对浏览器偏好所做的改变所需的处理。如上文所讨论,与把用户交互数据发送到NCCP0P142进行处理相比,在本地处理用户交互可在浏览器提供更大的响应。另举一例,当使用指定对NCC P0P142的广泛处理的远程会话浏览配置(例如,使用例如RDP的远程会话通信协议的远程会话浏览配置)时,在浏览器工具栏中选择内容刷新按钮可被处理为本地用户交互和远程用户交互。对应于按钮选择来提供界面反馈所需的有限的处理可在客户端计算设备102处理以提供界面响应的外观,而可能需要处理浏览器的内容显示区中显示的网络内容的刷新命令可作为用户交互数据发送到NCC P0P142进行处理。然后,NCCP0P142可把对应于已刷新的网络内容的更新处理结果传送回客户端计算设备102以进行显示。
[0047]图8是示出作为一系列处理子系统800的说明性浏览器内容处理动作的图。在许多实施方案中,浏览器可处理一系列处理动作中的多组内容(例如,例如网页的网络资源和相关嵌入式资源)。说明性地,且如上文参看图3-5描述,远程会话浏览配置可指定网络计算和存储提供商(例如,NCC POP)上执行的处理动作和客户端计算设备102上执行的处理动作之间的拆分。该拆分可指定将由NCC POP和客户端计算设备102中的每一个执行的一些处理动作,或者可把所有处理动作分配到单个设备或组件。例如,NCC POP可在浏览会话实例执行所有这些各种处理动作,并把完全处理的RDP处理结果发送到客户端计算设备102进行位图(bitmap)组装和显示。任何数量的不同远程会话浏览配置可被在NCC POP上运行的一个或多个浏览会话实例使用。
[0048]相关领域的技术人员应理解,本文示出的子系统是为了说明的目的而描述,而不旨在描述浏览器子系统的必要的顺序或明确的列表。各种浏览器软件组件可实施额外的或比本文示出少的浏览器子系统,且可以任何数量的不同方式来排序子系统或对应的处理动作。虽然本文描绘的处理子系统800为达说明的目的而用于处理网页或其它网页内容,但是相关领域的技术人员应理解,可以类似方式来分解对其它文件类型或网络资源的处理。例如,相关领域的技术人员应理解,可开发类似模式来处理图像、视频、音频、数据库信息、三维(3d)设计数据或本领域已知的任何其它文件格式或数据类型。也可开发类似模式用于任何数量的设备操作系统或软件框架处理操作,例如调度、存储器或文件管理、系统资源管理、过程或服务执行或管理等。另外,虽然本文为达举例的目的讨论了 HTML协议和RDP远程会话通信协议,但是相关领域的技术人员应理解,远程会话浏览配置可实施任何数量的远程通信协议来进行任何数量的指定处理动作,且远程会话浏览配置可制定以执行下文在客户端计算设备102和网络计算和存储提供商107的任何组合识别的动作的任何部分或组合。
[0049]说明性地,处理并显示网络内容中涉及的第一处理子系统是网络子系统802。说明性地,网络子系统802可负责浏览器和内容提供商之间的所有通信,包括网页内容的本地缓存。网络子系统通常由用户网络的性能限制。在网络子系统802拆分处理动作的远程会话浏览配置可包括利用HTML远程会话通信协议的远程会话浏览配置,其中一个或多个缓存或资源检索动作在NCC POP上执行,但是在客户端计算设备上执行内容的分析和处理。
[0050]由于网络资源(诸如HTML文档)是从服务器下载的,所以它们可被传递到HTML子系统804,HTML子系统804分析文档、在网络子系统中开始额外的下载,并创建文档的结构表示。现代浏览器也可包含用于XHTML、XML和SVG文档的相关子系统。在HTML子系统804拆分处理动作的远程会话浏览配置可包括利用HTML远程会话通信协议的远程会话浏览配置,其中在NCC POP上处理初始HTML页面以便提取嵌入式资源识别符,但是在客户端计算设备上执行对内容的额外的分析和处理。在另一实施方案中,在HTML子系统804拆分处理动作的远程会话浏览配置可执行初始处理来创建HTML文档的结构表示,并把包括结构表示的处理结果和相关嵌入式资源提供到客户端计算设备进行处理。
[0051]当遇到CSS时,不管是在HTML文档内还是嵌入式CSS文档内,它可被传递到CSS子系统806以分析样式信息并创建可供以后参考的结构表示。说明性地,在CSS子系统806拆分处理动作的远程会话浏览配置可构建包括CSS结构表示和HTML结构表示的处理结果,并把处理结果和相关嵌入式资源提供到客户端计算设备进行处理。
[0052]HTML文档通常包含元数据,例如,文档标题中描述的信息或应用于元素的属性。集合子系统808可负责存储并访问该元数据。在集合子系统808拆分处理动作的远程会话浏览配置可构建包括经处理的元数据以及上文讨论的任何其它结构表示的处理结果,并把处理结果和相关嵌入式资源提供到客户端计算设备进行处理。
[0053]当遇到Javascript时,它可被直接传递到负责执行脚本的JavaScript子系统810。多年来,已对Javascript子系统810进行全面检查,且该子系统可为本领域中最为人广知的浏览器子系统中的一个。在Javascript子系统810拆分处理动作的远程会话浏览配置可构建包括一个或多个Javascript脚本的内部表示(包括但不限于状态数据或为本机形式或中间形式的脚本的表示,以及上文讨论的任何其它处理结构或数据)的处理结果,且把处理结果和相关嵌入式资源提供到客户端计算设备进行处理。
[0054]因为许多JavaScript引擎不直接集成到浏览器,所以在浏览器和脚本引擎之间可能有包括编组子系统812的通信层。通过所述通信层传递信息可通常被称为编组。在编组子系统812拆分处理动作的远程会话浏览配置可构建包括编组数据以及任何其它处理结构、脚本或上文讨论的数据的处理结果,并把处理结果和相关嵌入式资源提供到客户端计算设备进行处理。
[0055]在一些实施方案中,JavaScript通过文档对象模型(Document Object Model)API与底层网络资源(诸如,例如Web文档)交互。这些API可通过本机对象模型子系统814来提供,本机对象模型子系统814知道如何访问并操纵文档并且是脚本引擎和浏览器之间的主要交互点。说明性地,在本机对象模型子系统814拆分处理动作的远程会话浏览配置可构建包括本机对象模型状态数据或API调用以及任何其它处理结构、脚本,或上文讨论的数据的处理结果,并把处理结果和任何其它相关嵌入式资源提供到客户端计算设备进行处理。
[0056]一旦构建文档,浏览器就可能需要在它可被显示给用户之前应用样式信息。格式化子系统816采用HTML文档并应用样式。说明性地,在格式化子系统816拆分处理动作的远程会话浏览配置可构建包括具有应用的样式的HTML表示以及任何其它处理状态数据、API调用、结构、脚本,或上文讨论的数据的处理结果,并把处理结果和任何其它相关嵌入式资源提供到客户端计算设备进行处理。
[0057]在一个实施方案中,CSS是基于方块的布局系统。在文档被样式化之后,在方块建筑子系统818的下一步骤可能是构建将显示给用户的矩形块。这个过程可确定像方块大小的事情且可与下一阶段、布局紧密集成。在方块建筑子系统818拆分处理动作的远程会话浏览配置可构建包括方块信息以及任何其它处理状态数据、API调用、结构、脚本或上文讨论的数据的处理结果,并把处理结果和任何其它相关嵌入式资源提供到客户端计算设备进行处理。
[0058]在浏览器样式化内容并构建方块之后,就可通过布局内容的过程。布局子系统820负责这个算法复杂的过程。说明性地,在布局子系统820拆分处理动作的远程会话浏览配置可处理各种状态数据、API调用、结构、脚本,或上文讨论的数据以构建包括客户端计算设备的布局信息的处理结果。说明性地,NCC POP可使用与客户端计算设备或浏览器(例如,如在初始浏览会话请求中提供)相关的各种数据或设置来生成客户端计算设备的合适的布局。例如,移动设备可向NCC POP提供屏幕分辨率和显示模式。NCC POP可使布局计算基于这个屏幕分辨率和显示模式以生成对应于适于在移动设备上运行的浏览器的内容表示的处理结果。说明性地,在各种实施方案中,由NCC POP实施的任何其它子系统可把与客户端计算设备或浏览器相关的数据用于生成客户端的处理结果。
[0059]过程的最后阶段可在显示子系统822内部发生,其中最终内容显示给用户。这个过程通常被称为绘图。在网络子系统802拆分处理动作的远程会话浏览配置可包括利用RDP远程会话通信协议的远程会话浏览配置,其中几乎所有处理都在NCC POP执行,且包括位图数据和低级别接口数据的处理结果被传递到客户端计算设备进行显示。
[0060]图9是说明图1的网络计算和存储提供商107实施的新的浏览会话程序900的流程图。新的浏览会话程序900始于框902。在框904,网络计算和存储提供商107从客户端计算设备102接收新的浏览会话请求。如之前所描述,客户端计算设备102可加载浏览器以响应于事件或用户请求查看网络内容。在加载浏览器之后,浏览器可被实施以请求新的浏览会话。从客户端计算设备的用户的观点看来,新的浏览会话的请求对应于把请求传送到一个或多个对应的内容提供商104的预期的请求。说明性地,该请求可作为浏览器加载(例如,对默认或“主页”页面的请求)的结果而自动生成,或可作为用户跟踪链接或把网络地址输入地址栏的结果而生成。这个浏览会话请求可包括一个或多个地址或对各种网络资源或客户端计算设备102请求的其它内容的参考。在说明性实施方案中,浏览会话请求是根据API来传送的。
[0061]在框906,网络计算和存储提供商107可选择相关NCC POP以基于浏览会话请求实例化新的浏览会话。如上文参看图1所讨论,网络计算和存储提供商107可包括在任何数量的物理或逻辑位置上分布的任何数量的NCC POP。网络计算和存储提供商107可基于任何数量的因素来选择NCC POP以提供浏览会话请求,所述因素包括但不限于可用NCC POP资源(例如,可用存储器、处理器负载、网络负载等)、在NCC POP提供浏览会话请求的财务成本、相对于客户端计算设备102、内容提供商104或⑶N P0P116的NCC POP位置、NCC POP缓存状态(例如,请求的资源是否已存储在NCC POP缓存中)等。
[0062]在一个实施方案中,网络计算和存储提供商107可选择许多NCCPOP来提供浏览会话请求。例如,网络计算和存储提供商107可选择在网络中具有不同逻辑位置的两个NCCPOP。每个NCC POP可代表客户端计算设备102来独立请求并处理网络内容,且客户端计算设备102可从第一 NCC POP接受数据并返回处理结果。在被网络计算和存储提供商107选择之后,NCC P0P142可获得浏览会话请求。在一个实施方案中,NCC P0P142可通过网络计算和存储提供商107的组件把浏览会话请求转发给它。在另一实施方案中,NCC P0P142或客户端计算设备102可接收连接信息,从而允许在NCC P0P142和客户端计算设备102之间建立直接通信。说明性地,NCC P0P142可具有最初提供给网络计算和存储提供商107的浏览会话请求;可具有信息的子集(例如,只有请求的内容的网络地址);或可具有原始浏览会话请求中未包括的额外的信息。
[0063]在选择NCC P0P142之后,网络计算和存储提供商107可使NCCP0P142实例化新的浏览会话。说明性地,实例化新的浏览会话实例可包括在NCC P0P142处加载新的虚拟机实例和/或浏览器实例;预留或分配设备存储器、存储或缓存空间、处理器时间、网络带宽或新的浏览会话的其它计算或网络资源。说明性地,新的浏览会话实例和/或浏览器实例的一个或多个特点可基于浏览会话请求中包括的客户端计算设备102信息。例如,浏览会话请求可包括设备类型或浏览器类型、设备屏幕分辨率、浏览器显示区或定义客户端计算设备102或浏览器的显示偏好或能力的其它信息。NCC P0P142可因此实例化具有与客户端计算设备102的能力相同或类似的能力的虚拟机实例和/或浏览器实例。说明性地,维护具有与客户端计算设备102的能力相同或类似的能力的虚拟机实例和/或浏览器可允许NCCP0P142根据特定客户端计算设备102上显示器的合适的尺寸和布局来处理网络内容。
[0064]在一些实施方案中,除了实例化新的浏览会话之外或者作为实例化新的浏览会话的替代,NCC P0P142还可使用现有的虚拟机实例和/或浏览器实例。例如,在选择NCCP0P142之后,网络计算和存储提供商107可使NCC P0P142把现有浏览器实例和/或虚拟机实例(诸如,先前在NCC P0P142处实例化的一个或多个实例)与新的浏览会话请求结合。说明性地,现有浏览器会话和/或虚拟机实例可对应于另一浏览会话、远程应用会话,或与用户或客户端计算设备102相关的其它远程过程,或可为来自不相关的浏览会话或远程过程的之前实例化的软件实例。在其它实施方案中,NCC P0P142可实例化新的浏览器或现有虚拟机实例中的其它应用过程,或可用任何数量的其它方式来组合之前实例化的软件过程和新实例化的软件过程的使用。在更进一步的实施方案中,网络计算和存储提供商或NCCP0P142可基于单个浏览会话请求来实例化任何数量的新的虚拟机实例和/或浏览器实例(或使用现有实例化的实例)。
[0065]在框908,网络计算和存储提供商107可基于浏览会话请求中包括的网络地址把一个或多个网络资源的请求提供到内容提供商或CDN服务提供商。在各种实施方案中,一个或多个网络资源可另外或替代地从NCC P0P142本地的缓存检索或者与网络计算和存储提供商107相关。本领域技术人员应理解,在其它实施方案的情况下,链接或网络地址可对应于存储在数字文件柜或其它网络存储位置或在与网络计算和存储提供商107或客户端计算设备102相关的缓存组件的文档或文件。在一些实施方案中,除了网络地址之外或作为网络地址的替代,新的会话请求还可包括文档或文件。在框910,网络计算和存储提供商107获得一个或多个网络资源。在获得请求的网络资源之后,NCC POP142可处理网络资源以提取嵌入式资源识别符。
[0066]在框912,网络计算和存储提供商107可把资源请求提供到例如内容提供商、CDN服务提供商和缓存的一个或多个内容来源。资源请求可对应于基于如上文在框910描述的从一个或多个网络资源提取的一个或多个嵌入式资源识别符的嵌入式资源。在框914,网络计算和存储提供商107可从任何数量的不同来源顺序或并行地获得所述嵌入式资源。
[0067]在框916,网络计算和存储提供商107可处理一个或多个网络资源和相关嵌入式资源以确定处理和把内容传递到客户端计算设备102的远程会话浏览配置。远程会话浏览配置可包括允许在客户端和远程服务器之间交换数据和用户交互或请求的任何所有权或公共远程协议。远程会话浏览配置可说明性地包括远程会话通信协议和把处理(或未处理)内容提供到客户端计算设备以在浏览器的内容显示区进行显示的处理模式。
[0068]说明性地,远程会话浏览配置可定义或指定远程会话通信协议,包括但不限于,网络协议、信令模式、传输机制,或在网络计算和存储提供商和客户端计算设备之间交换状态数据、用户交互,和其它数据和内容的封装格式。本领域已知的远程会话通信协议的实例包括远程桌面协议(RDP)、X_窗口协议、虚拟网络计算(VNC)协议、远程帧缓冲协议、HTML等。例如,RDP说明性地指定把客户端输入(例如,鼠标移动、键盘输入等)编码成协议数据单元以提供给远程计算设备的许多处理机制,和对应的把位图更新和低级别接口信息发送回客户端设备的机制。另举一例,HTML协议说明性地提供用于从服务器向客户端提供定义接口信息并包含资源参考的文件的机制,和对应的使客户端计算设备向服务器提供额外的文件和资源的请求的机制。在一个实施方案中,NCC P0P142可在确定远程会话通信协议之后向客户端计算设备102提供初始通信。这个初始通信可允许客户端计算设备102用选择的远程会话通信协议准备接收通信,且在像HTTP的拉远程会话通信协议的情况下,可使客户端计算设备把初始资源请求发送到在NCC P0P142上运行的浏览会话实例。
[0069]每个远程会话浏览配置可另外定义网络计算和存储服务(例如,NCC P0P142)和客户端计算设备(例如,客户端计算设备102)之间的处理动作的拆分。在一个实施方案中,处理动作的特定拆分可基于特定远程会话通信协议或由特定远程会话通信协议授权。在另一实施方案中,远程会话通信协议可取决于协议的实施或配置而允许处理动作的若干不同拆分。为了说明的目的,许多网络内容片(例如,网页、视频、Flash文档)在显示于计算设备上之前可能需要各种处理动作。例如,可分析网页以处理各种HTML布局信息和对相关资源或例如CSS样式表和Javascript的嵌入式内容,以及例如图像、视频、音频等的嵌入的内容对象的参考。HTML和每个参考的对象或一段代码将通常在可构建对应于网页的代表对象模型之前被分析和处理。这个对象模型然后可被进一步处理以在客户端计算设备102的浏览器的内容显示区布局和显示。下文参看图8更详细地描述了说明性浏览器处理动作。本领域技术人员应理解,在其它实施方案或应用的情况下,可能需要各种其它处理动作。[0070]远程会话浏览配置可指定显示在例如NCC P0P142的远程计算设备而不是在客户端计算设备102执行的网络内容片所需的各种处理动作。部分(或完全)在网络计算和存储提供商处理的网络内容可被称为处理结果。如下文所讨论,处理动作的拆分可与用于在NCC P0P142和客户端计算设备102之间交换数据和客户端输入的远程会话通信协议相关或连接到所述远程会话通信协议。
[0071]例如,例如RDP的把包括低级别接口信息和位图的处理结果传送到客户端计算设备142进行显示的远程会话通信协议可与指定在NCC P0P142执行所有或几乎所有必需的内容处理动作的远程会话浏览配置相关。当使用RDP时,NCC P0P142可例如运行NCCP0P142的浏览器的完整实例且把包括对应于显示的内容的表示的位图更新的处理结果传送到客户端计算设备102。在这个实例中,可能只需要客户端计算设备102组装传送的位图更新以在浏览器的内容显示区显示,且客户端计算设备102可能不执行处理显示说明性网络内容片所涉及的实际HTML、Javascript或数据对象中的任何一个。另举一例,使用例如HTML的远程会话通信协议的远程会话浏览配置可传送呈很大程度上未处理形式的网络内容。客户端计算设备102因此可执行显示网络内容所需的所有处理动作,而NCC P0P142执行极少处理或不执行处理。
[0072]NCC P0P142可使它的确定远程会话浏览配置基于任何数量的因素,所述因素包括但不限于请求的资源、内容提供商104或CDN服务提供商106中一个或多个的一个或多个特点;内容地址或域名的一个或多个特点;客户端计算设备102、浏览器或应用、用户的一个或多个特点;NCC P0P142的一个或多个特点;或网络或网络连接的一个或多个特点等。请求的资源的特点可包括但不限于数据格式、内容类型、大小、处理要求、资源延迟要求、互动元素的数目或类型、安全性风险、相关用户偏好、网络地址、网络域、相关内容提供商等。内容提供商104、⑶N服务提供商106、计算设备102或NCC P0P142的特点可包括但不限于处理能力、存储器、存储、网络连接(例如,可用带宽或延迟)、物理或逻辑位置、预测的稳定性或故障风险、软件或硬件配置文档、可用资源(例如,可用存储器或处理,或同时打开的软件应用的数量)等。NCC P0P142还可认为感知的安全威胁或风险与内容或域名片、客户端计算设备或内容提供商的偏好、计算或网络资源成本(例如,处理或带宽的财务成本、资源使用情况等)、预定偏好或选择信息、特定远程会话浏览配置所需的任何额外的处理开销、缓存状态(例如,特定资源是在NCC P0P142缓存、在客户端计算设备102缓存,还是在与网络计算和存储提供商相关的其它网络存储缓存)、检索请求的网络内容所需的预测延时或时间、优选内容提供商或与内容提供商的特定远程会话浏览配置或服务水平的协议、由相同的用户用于另一(或当前)浏览会话的远程会话浏览配置,或任何其它因素相关。
[0073]在一些实施方案中,NCC P0P142可使确定远程会话浏览配置基于过去的行为或做法。例如,当资源被相同(或可能不同)用户请求时,过去已确定了特定资源的远程浏览会话配置的NCC P0P142可自动选择相同的远程浏览会话配置。另举一例,具有频繁访问网站的历史和广泛处理要求的用户可被自动分配有在NCC P0P142执行大多数处理的远程会话浏览配置。在其它实施方案中,NCC P0P142可使确定远程浏览会话配置基于对未来行为的预测。例如,NCC P0P142可使它的确定特定资源的远程浏览会话配置基于对过去确定特定网站、网络域,或相关资源集的分析。历史上已提供高质量视频网页的内容提供商可与强调在客户端计算设备102的视频性能的远程会话浏览配置相关。说明性地,过去历史分析和未来预测可被认为是远程会话浏览配置确定过程所基于的许多因素中的一个或多个,或者可为确定过程中限定性的。例如,一旦NCC P0P142确定特定内容提供商的远程会话浏览配置,它就可跳过内容提供商提供的任何未来资源的远程会话浏览配置确定过程。说明性地,NCC P0P142可在固定时间段之后或NCC P0P142已识别或确定内容提供商提供的内容的变化之后再确定将与内容提供商相关的远程会话浏览配置。
[0074]在其它实施方案中,网络资源、网站、网络域、内容提供商或其它网络实体可指定或请求把特定远程浏览会话配置用于资源标签、元数据或与NCC P0P142的其它通信。NCCP0P142可把请求视为限定性的,或可把请求视为将在确定过程中考虑的多个因素中的一个。
[0075]例如,使用例如RDP的远程会话通信协议的远程会话浏览配置可指定广泛处理发生在网络计算和存储提供商107 (例如,NCC P0P142)而不是在客户端计算设备102。远程会话浏览配置因此可利用NCC P0P142的处理能力来当处理需要大量预处理的网络内容(例如,具有定义页面布局的大量CSS或Javascript信息的内容)时达成较低的延迟和演示延时。NCC P0P142因此可选择在网络计算和存储提供商107执行大量处理的远程会话浏览配置并使用RDP或类似远程会话通信协议来进行处理密集型内容的通信。相反,使用例如HTML的远程会话通信协议的远程会话浏览配置可在客户端计算设备102而不是在网络计算和存储提供商107指定广泛处理。当具有需要极少处理的简单的网络内容或在初始加载之后需要快速改变显示内容的网络内容时,远程会话通信协议因此可达成较小延时和流畅的演示。例如,具有嵌入式视频的网页可更好地在本地执行大多数处理并把HTML而不是RDP用作远程会话通信协议。指定在网络计算和存储提供商107的广泛处理的远程会话浏览配置必须在NCC P0P142处理视频并把屏幕更新(例如通过RDP)快速发送到客户端计算设备102,这可能需要大量带宽并造成浏览器中断断续续的播放,而指定本地处理的远程会话浏览配置可把原始视频信息直接提供到客户端计算设备102进行显示(例如通过HTML),从而允许客户端缓存和更流畅地播放内容。
[0076]另举一例,与具有极其有限的处理能力的客户端计算设备102通信的NCC P0P142可选择使用需要客户端计算设备进行极少处理的远程会话浏览配置,例如,使用RDP来传送NCC P0P142处理的结果。相反,提供极交互式网页的NCC P0P142可选择使用允许客户端计算设备102在本地处理用户交互以保存界面响应的远程会话浏览配置,例如,使用HTML来传送基本上未处理的数据。又举一例,NCC P0P142可使确定远程会话浏览配置基于客户端计算设备102提供的偏好。客户端计算设备102可说明性地包括初始浏览会话请求或任何其它时间的远程会话浏览配置的偏好。NCC POP142可把这些偏好用作任何其它因素或确定度量的替代或补充。说明性地,允许客户端计算设备102设置或影响选择远程会话浏览配置允许NCC P0P142在确定远程会话浏览配置时考虑用户偏好。例如,担心初始页面加载时间的用户可能喜欢用强调远程处理并使用RDP远程会话通信协议的远程会话浏览配置,而希望维持极响应界面的用户可能更喜欢使用在客户端计算设备102上执行大多数处理的远程会话浏览配置,例如,使用HTML、远程会话通信协议。
[0077]说明性地,NCC POP142可使确定远程浏览配置基于任何因素或因素的组合。例如,NCC P0P142可基于单个因素来选择远程会话浏览配置,或可把权重分配到一个或多个因素以进行确定。在一些实施方案中,NCC P0P142的确定过程可基于上文描述的一个或多个因素而改变。例如,通过具有剩余的未使用的带宽的网络与客户端计算设备102通信的NCCPOP142可把较低权重给予例如远程浏览会话的网络要求的因素,且可把较高权重给予例如页面交互的延迟的因素;而通过有限带宽网络与客户端计算设备102通信的NCC POP142可把较高权重给予处理通过网络的远程会话浏览协议的效率的因素。
[0078]在一个实施方案中,NCCP0P142可为网络内容集选择单个远程会话浏览配置。例如,NCC P0P142可为例如网页的请求的网络资源选择单个远程会话浏览配置。NCC P0P142因此可基于选择的远程浏览会话协议来处理网页以及所有嵌入式内容,并使用远程浏览会话协议来交换用户交互数据和与网页相关的所有嵌入式内容的更新的浏览会话数据。在另一实施方案中,NCC P0P142可为网络内容集的一个或多个资源选择不同的远程会话浏览配置。例如,例如网页的网络资源可参考处理密集型嵌入式Javascript或CSS资源,以及嵌入式视频资源。NCC P0P142可为网页和除了嵌入式视频资源之外的所有嵌入式资源选择第一远程会话浏览配置,并为嵌入式视频资源选择第二远程会话浏览配置。说明性地,这可使NCC P0P142使用RDP把处理结果发送到客户端计算设备102以显示网页和相关嵌入式资源,同时使用HTTP把嵌入式视频作为单独未处理的文件发送。在一个实施方案中,客户端计算设备102可执行显示对应于网页和嵌入式资源的RDP处理结果所需的最小处理,且也可执行显示嵌入式视频(例如,在显示的网页的RDP表示顶部叠加视频)所必需的额外的处理。任何数量的远程会话浏览配置可被选择以对应于网络内容集中包括的任何数量的资源或对象,而不管资源或对象是从一个或多个逻辑砖或数据结构中的内容提供商104还是⑶N服务提供商106获得的。
[0079]虽然本文把选择远程会话浏览配置说明性地描述为在NCC P0P142已获得所有网络资源和相关嵌入式内容之后发生,但是相关领域技术人员应理解,选择远程会话浏览配置可在任何时候执行。例如,NCC P0P142可在从客户端计算设备接收到新的浏览会话请求或相关信息之后选择远程会话浏览配置,可在获得网络资源之后但在获得任何相关嵌入式资源之前,或在任何其它时间选择远程会话浏览配置。在一些实施方案中,NCC P0P142可在客户端计算设备102获得初始处理结果之后的某个时间切换到新的远程会话浏览配置。说明性地,NCC P0P142选择新的远程会话浏览配置可在某个时间段或事件之后自动发生或响应于网络条件、NCC P0P142或客户端计算设备102加载或计算资源的改变,或上文描述为可能影响远程会话浏览配置的选择的任何其它因素而自动发生。说明性地,处理其它类型或格式的信息的NCC P0P142可基于任何数量的类似因素来选择远程会话协议。例如,相关领域技术人员应理解,可开发类似模式来处理图像、视频、音频、数据库信息、三维设计数据,或本领域已知的任何其它文件格式或数据类型。
[0080]在各种实施方案中,客户端计算设备102可顺序地或与远程浏览会话的请求同时地进一步实例化平行浏览过程。在一个实施方案中,除了在NCC P0P142执行的一个或多个远程浏览实例,客户端计算设备102还可实例化如本领域已知的传统本地浏览会话(例如,从浏览器提供内容请求并在本地处理获得的资源)。在另一实施方案中,客户端计算设备102可具有NCC P0P142未处理的网络资源。说明性地,网络资源可由NCC P0P142从一个或多个内容提供商、CDN或缓存组件检索。资源可被提供到客户端计算设备102以在本地与在NCC P0P142执行的远程浏览实例平行地处理。在额外的实施方案中,网络计算和存储提供商或NCC P0P142可实例化任何数量的新的虚拟机实例和/或浏览器实例(或使用现有实例化的实例)来处理资源且/或并行地把处理结果发送到客户端计算设备102。说明性地,在客户端计算设备102的本地浏览会话和在NCC POP142的远程浏览会话实例可并行执行。
[0081]在一个实施方案中,在客户端计算设备102执行的本地浏览会话可响应于浏览会话请求从NCC P0P142获得未处理的内容(例如,html网页、嵌入式内容和其它网络资源)。说明性地,内容可响应于浏览会话请求由NCC P0P142从内容提供商、CDN或缓存检索。NCCP0P142提供的未处理的内容可包括所有与浏览会话请求相关的内容或可补充客户端计算设备的缓存中存在的内容、从内容提供商或CDN检索的内容,或从某个其它来源获得的内容。在一个实施方案中,客户端计算设备102可从本地缓存获得所有请求的内容,且可能未从NCC P0P142获得任何未处理的资源或内容。在获得未处理的内容之后,客户端计算设备102可与在NCC P0P142执行的远程浏览会话平行地处理请求的内容。例如,当在客户端计算设备102执行的本地浏览会话处理请求的内容时,在NCC P0P142执行的远程浏览会话可基本上同时处理相同的内容。一旦NCC P0P142对内容执行了处理动作集以生成处理结果(例如,如由确定的远程会话浏览配置所指定),NCC P0P142就可把处理结果提供到客户端计算设备102。
[0082]为了说明的目的,客户端计算设备102可能需要比在NCC P0P142上运行的浏览会话实例更长的加载时间来获得并处理请求的网络资源。例如,由于NCC P0P142在网络上的位置和比起NCC P0P142的本地客户端计算设备的相对处理能力,所以NCC P0P142可快速获得并处理内容。即使NCC P0P142向客户端计算设备102提供了所有请求的网络内容,客户端计算设备102仍可在本地浏览会话完全完成处理请求的资源之前从NCC P0P142获得处理结果。客户端计算设备102可在完成本地处理和内容的显示之前完成任何额外的处理步骤并显示获得的处理结果。说明性地,这可允许客户端计算设备102利用NCC P0P142的相对于传统本地浏览会话较快速的内容加载时间。在本地浏览会话完成处理所有请求的资源之前,浏览器可如下文图5和11中所描述在本地和/或远程地处理任何用户交互。
[0083]一旦本地浏览会话完全获得并处理对应于请求的内容的资源,计算设备102就可确定是继续显示使用确定的远程会话浏览配置从NCC P0P142获得的结果(且在NCCPOP142处理用户交互)还是切换到在本地处理用户交互。切换到在本地处理用户交互可包括用请求的资源的本地显示来代替基于从NCC P0P142获得的处理结果的请求的资源的显示表示。例如,浏览器可显示对应于来自NCC P0P142的处理结果的网页的表示(例如,代表呈现的页面的RDP显示信息),直到浏览器完成在本地处理并呈现网页为止。浏览器然后可用网页的在本地呈现的表示来代替来自NCC P0P142的表示。说明性地,用一个表示来代替另一表示对于用户可能是透明的。例如,网页的本地和NCC P0P142表示可能相同或大致相同。在一个实施方案中,当显示网页的NCC P0P142表示时,浏览器可把与显示的页面的各种用户交互发送到NCC P0P142进行处理。当显示网页的在本地呈现的版本时,可在浏览器在本地处理用户交互。说明性地,确定显示请求的资源的哪个表示(例如,本地或来自NCC P0P142)可基于参照上文确定远程会话浏览协议描述的所述因素中的任何因素。
[0084]在一个实施方案中,客户端计算设备102可在完全加载本地资源之后就切换到在本地处理用户交互。说明性地,在NCC P0P142上运行的远程浏览会话实例可在切换到本地处理之后终止,或者远程浏览会话实例可被保持作为备份以用于本地浏览会话的无应答或失败。例如,客户端计算设备102可在本地处理用户交互,以及根据选择的远程会话浏览配置把远程用户交互数据发送到NCC POP142。远程用户交互数据可被NCC POP142用来保持远程浏览会话实例完全与在客户端计算设备102由浏览器执行的本地浏览过程平行。只要本地浏览会话继续处理用户交互,NCC POP142就可避免发送更新的处理结果,或者可发送客户端计算设备102忽略的更新的处理结果。如果在客户端计算设备102的本地浏览会话出现了问题,那么更新的处理结果可被从NCC POP142提供到客户端计算设备102以代替本地浏览会话进行处理和显示。说明性地,这个从本地浏览会话切换到远程处理对于用户可能是透明的。在一些实施方案中,客户端计算设备102可基于本地浏览器的无应答或失败之外的因素而从本地浏览会话切换到远程浏览会话实例。例如,客户端计算设备102或网络计算和存储组件107可基于相对于上文确定远程会话浏览协议列举的因素中的任何因素在远程和本地浏览会话之间选择。
[0085]在另一实施方案中,客户端计算设备102即使在本地浏览会话已完全加载请求的内容之后也可继续处理并显示来自NCC P0P142的更新的处理结果。客户端计算设备102可终止本地浏览会话或在上文提供的实例相反的实例中可平行运行本地浏览会话作为备份过程。应理解,虽然本文为了说明的目的把本地浏览会话描述为比远程浏览会话实例加载得慢,但是在一些实施方案中,本地浏览会话可比远程浏览会话加载内容更快,在这种情况下,浏览器可在本地处理用户交互直到远程浏览过程已完全加载了请求的内容为止。在一些实施方案中,客户端计算设备102可通过首先加载请求的内容的无论本地还是远程浏览会话来显示并处理用户交互。
[0086]在各种其它实施方案中,作为实例化本地浏览会话的补充或替代,网络计算和存储提供商107可实例化多个远程浏览会话实例来平行运行。说明性地,这些平行浏览会话实例可使用任何相同或不同的远程会话浏览协议,且可用上文相对于本地浏览会话描述的方式充当备份,或者可作为替代来使用并切换以最大化在客户端计算设备102上的浏览器性能。例如,响应于一个或多个浏览会话请求,网络计算和存储提供商107可实例化在第一NCC POP上运行并使用RDP协议的浏览会话实例以及在第二 NCC POP上运行并使用X-窗口协议的浏览会话实例。客户端计算设备102或网络计算和存储提供商107可基于上文相对于确定远程会话浏览协议描述的性能或资源使用情况考虑来确定应使用哪个浏览会话实例和协议。
[0087]继续参看图9,在框918,网络计算和存储提供商107可根据确定的远程会话浏览配置来处理包括一个或多个请求的网络资源和嵌入式网络资源的获得的内容,以生成初始处理结果。在框920,网络计算和存储提供商107可把初始处理结果提供给客户端以进行进一步处理并在浏览器的内容显示区进行显示。为达进一步举例的目的,下文参看图10描述了客户端计算设备102实施的说明性客户端新的浏览会话交互程序1000。在框922,开始的新的浏览会话程序900结束。
[0088]图10是说明客户端计算设备102实施的客户端新的浏览会话交互程序1000的流程图。响应于使客户端计算设备102加载浏览器以查看网络内容的事件或用户请求,新的浏览会话交互程序1000在框1002开始。在框1004,客户端计算设备在本地加载浏览器的管理组件,包括所有本地接口组件。如上文参看图5和7所描述,本地接口组件可包括工具栏、菜单、按钮或软件浏览器应用管理并控制的其它用户接口控制或在客户端计算设备在本地执行或实施的任何其它过程。在框1006,客户端计算设备102把新的浏览会话实例的请求提供到网络计算和存储提供商107。从客户端计算设备的用户的观点看来,新的浏览会话的请求对应于把请求传送到一个或多个对应的内容提供商104的预期的请求。在其它实施方案中,新的会话请求可对应于加载文件或其它文档的请求(例如,把所有图像加载到照片编辑应用的请求等)。说明性地,请求可作为浏览器加载(例如,对默认或“主页”页面的请求)的结果而自动生成,或可作为用户跟踪链接或把网络地址输入地址栏的结果而生成。如参看图2示出,浏览会话请求首先被传送到网络计算和存储提供商107。在说明性实施方案中,网络计算和存储提供商107使用注册API以从客户端计算设备102接受浏览会话请求。
[0089]浏览会话请求可包括任何数量的数据或信息片,包括但不限于,与用户相关的信息、与客户端计算设备102或客户端计算设备上的软件相关的信息(例如,硬件或软件信息、设备物理或逻辑位置等)、与网络108、用户或浏览器偏好相关的信息(例如,请求的远程会话浏览协议、偏好列表、决策树或其它信息)、与网络计算和存储提供商107相关的信息、与一个或多个请求的网络内容片相关的信息(例如,网络资源的网络地址)等。例如,来自客户端计算设备102的浏览会话请求可包括识别特定客户端计算设备硬件规格或硬件性能水平的信息、与最新的内容请求相关的延迟和带宽数据、处理不同类型的内容所需的安全级别、远程会话浏览协议的预定偏好列表,和对应于请求的网络资源的一个或多个网络地址等。在另一实例中,浏览会话请求可包括识别客户端计算设备102屏幕分辨率、宽高比的信息,或者浏览会话请求中的浏览器显示区可允许网络计算和存储提供商107定制网络内容的处理以在客户端计算设备上显示。如之前所描述,浏览会话请求可包括对应于请求的网络资源的可呈任何形式的网络地址信息,包括但不限于,互联网协议(“IP”)地址、URL、媒体访问控制(“MAC”)地址等。在一个实施方案中,新的浏览会话实例的请求可对应于在上文图9的框904接收新的浏览会话实例的请求的网络计算和存储提供商。
[0090]在框1008,客户端计算设备102从网络计算和存储提供商107获得初始处理结果。说明性地,初始处理结果中包括的格式和数据可基于网络计算和存储提供商107选择的远程会话浏览配置而改变。在一个实施方案中,初始处理结果可包括通知客户端计算设备102远程会话浏览配置的选择且/或通过对应于选择的远程会话浏览配置的远程会话通信协议建立连接的数据或在所述数据之后。如上文参看图8和9所讨论,获得的初始处理结果可包括具有由网络计算和存储提供商107执行的一个或多个处理动作的请求的内容。在获得初始处理结果之后,在框1010,客户端计算设备102可对初始处理结果执行任何剩余的处理动作。
[0091]在框1012,客户端计算设备102显示对应于处理的初始处理结果的内容。例如,客户端计算设备102可在如上文图7描述的浏览器700的内容显示区702中显示处理的客户端。在一个实施方案中,处理结果只可包括对应于浏览器显示的内容的显示数据,且可能不包括对应于例如在NCC P0P142的浏览器实例的接口控制的显示数据、对应于浏览会话的虚拟机实例的桌面,或NCC P0P142的任何其它用户接口。例如,NCC P0P142可处理网页和相关内容以通过在NCC P0P142的虚拟机实例中运行的浏览器实例中的RDP进行显示。浏览器实例除了显示的网页之外还可具有一个或多个界面元素,例如工具栏、菜单、滚动条等。NCCP0P142可发送只对应于显示的网页而没有与浏览器相关的界面元素中的任何界面元素的RDP处理结果。说明性地,包括只对应于显示的网页的RDP处理结果可允许在客户端计算实例102的浏览器通过在浏览器的内容显示区组装RDP处理结果来显示网页而不进行任何进一步的处理。在另一实施方案中,RDP处理结果可包括对应于在NCC POP142浏览会话实例显示的全接口的完全虚拟机桌面和浏览器窗口。客户端计算设备可自动识别对应于请求的内容的RDP处理结果的区域,且可只在浏览器的内容显示区显示这个区域。
[0092]在框1014,客户端计算设备102处理本地和远程用户交互。下文参看图11提供处理用户交互的说明性程序。在框1016,程序结束。说明性地,网络计算内容提供商107实例化的浏览会话实例可当浏览器窗口或内容显示区关闭时终止,可当远程会话浏览协议被在客户端计算设备102的平行过程代替时终止,或可根据计时器或其它事件终止。说明性地,如果浏览会话由于超时已自动终止但相关内容仍在客户端计算设备102的浏览器中显示,那么用户后来试图与内容交互可把新的浏览会话请求提供到网络计算和存储服务提供商107以根据终止的会话的最后状态来开始新的浏览会话。说明性地,超时之后终止远程浏览会话可允许网络计算存储提供商107在NCC POP节省计算资源。在一个实施方案中,这个过程对于在客户端计算设备102的用户可能是透明的,即使远程浏览会话已在此期间终止。
[0093]图11是说明客户端计算设备102实施的过程用户交互程序1100的流程图。响应于用户进行的交互,过程用户交互程序1100在框1102开始。说明性地,过程用户交互程序1100可在浏览器界面的内容显示区显示内容之后开始。例如,过程用户交互程序1100可对应于上文图10的框1014。
[0094]说明性地,显示的内容可具有一个或多个互动元素,例如,形式、按钮、动画等。用户与这些互动元素的交互可能需要在内容显示区处理并显示更新的内容。例如,在网页上下拉菜单中选择元素可能需要进行处理且可改变网页或嵌入式资源的配置或视觉外观。说明性地,用户与显示的内容进行交互所需的处理可取决于使用的远程会话浏览配置而在客户端计算设备102被处理为本地用户交互或者在NCC P0P142被处理为远程用户交互。例如,如果远程会话浏览配置使用大量本地处理(例如,通过HTML发送未处理的文件),那么用户与显示的内容的交互可通常在客户端计算设备102被处理为本地用户交互。说明性地,在客户端计算设备102把用户与显示的内容的交互处理为本地用户交互可允许使用简单的用户交互(例如,选择单选按钮,或把文本输入字段)进行较好的响应和较少的延时,因为对应于交互的交互数据不需要被发送到NCC P0P142进行处理。
[0095]另举一例,如果使用内容的高质量远程处理的远程会话浏览配置(例如,通过RDP发送处理的位图数据)被用作远程会话浏览配置,那么用户与显示的内容的所有交互可被处理为远程用户交互。例如,用户输入(例如,键盘输入和光标位置)可被封装在RDP协议数据单元中并通过网络108传送到NCC P0P142进行处理。说明性地,NCC P0P142可把用户交互应用到网络内容并把包括更新的位图的处理结果和对应于内容的更新的表示的界面数据传送回客户端计算设备102。说明性地,在NCC P0P142把用户与显示的内容的交互处理为远程用户交互可对界面响应具有负面影响,因为需要数据来通过网络进行传递且数据受网络延迟限制;然而,需要大量处理的用户交互被处理为远程用户交互时可执行得更好,因为处理NCC P0P142的延迟可能比处理客户端计算设备102的延迟慢得多。
[0096]除了用于显示网络内容的内容显示区,浏览器还可具有一个或多个本地接口组件,例如工具栏、菜单、按钮或其它用户接口控制。与本地接口组件的交互可取决于如在说明性图7中进一步描述的交互和远程会话浏览配置所需的处理被处理为本地用户交互或远程用户交互。例如,一些本地接口组件可在本地被在客户端计算设备上运行的浏览器代码管理,而其它本地接口组件可具有一个或多个在本地管理的方面(例如,按钮单击反馈、滚动条重绘等),和处理为远程用户交互的一个或多个远程管理的方面(例如,页面刷新、在地址栏的地址请求页面等)。
[0097]在框1104,客户端计算设备102从用户获得用户交互。这个用户交互可为如在图7和上文中描述的与本地接口组件的交互,或可为与在浏览器的内容显示区中显示的内容的例如表单字段、按钮、动画等的任何互动元素的交互。用户与这些本地接口组件或显示的内容的互动元素的交互可取决于如在图7和上文中描述的远程会话浏览配置指定的组件或元素的性质和处理拆分而需要本地和/或远程处理。在框1106,客户端计算设备102确定获得的用户交互的交互处理要求。在确定框1108,如果用户交互具有本地方面(例如,按钮单击反馈、改变到本地浏览器状态、在客户端计算设备处理的内容元素等),那么程序1102进行到框1110以在客户端计算设备102处理用户交互的本地方面然后在框1112更新本地接口组件。说明性地,且如上文所讨论,交互的方面和在本地更新接口组件和元素允许浏览器提供响应的用户界面和内容。在处理用户交互的本地方面之后,或如果用户交互不具有本地元素(例如,当在服务器侧完全使用远程会话浏览配置处理且使用RDP远程会话通信协议时,用户与内容显示区中显示的内容元素的交互),那么程序1102进行到确定框1114。如果用户交互具有需要处理的远程方面,那么程序1102进行到框1116并把远程用户交互数据提供到网络计算和存储提供商107。说明性地,在使用RDP远程会话通信协议的高质量的服务器侧远程会话浏览配置的情况下,远程用户交互数据可包括封装在一个或多个RDP协议数据单元中的例如光标位置或键盘输入的输入数据。在使用RDP或其它远程会话通信协议的远程会话浏览配置的一些实施方案中,例如光标位置的远程用户交互数据的特定方面可被连续提供到网络计算和存储提供商107,而在远程会话浏览配置的其它实施方案中,当与需要远程处理的用户交互相关时,远程用户交互数据只可被提供到网络计算和存储提供商107。
[0098]在框1118,客户端计算设备102从网络计算和存储提供商107获得更新的处理结果,其中网络计算和存储提供商107已处理了远程用户交互数据来生成内容的更新的表示。在框1120,客户端计算设备102对更新的处理结果执行所需的任何额外的处理(基于远程会话浏览配置),且在框1122,在浏览器的内容显示区显示更新的处理结果。在框1124,过程用户交互程序1102结束。说明性地,程序可响应于用户与浏览器和显示的内容的进一步交互而再执行任意次。
[0099]本发明的实施方案可由以下非限制性条款来定义:
[0100]条款1.一种用于远程会话浏览的计算机实施的方法,其包括:
[0101]基于网络的浏览器软件应用基于来自客户端计算设备的浏览会话请求中包括的网络资源的识别符从内容提供商获得所述网络资源,其中网络资源的所述识别符参考一个或多个嵌入式资源识别符且其中所述网络资源和所述一个或多个嵌入式资源识别符中的至少一个可用多个处理动作来处理;
[0102]所述基于网络的浏览器软件应用处理所述网络资源以获得所述一个或多个嵌入式资源识别符;
[0103]所述基于网络的浏览器软件应用基于所述一个或多个嵌入式资源识别符从一个或多个内容提供商获得所述一个或多个嵌入式资源;
[0104]所述基于网络的浏览器软件应用基于所述网络资源和所述一个或多个嵌入式资源中的至少一个确定对应于所述浏览会话请求的一个或多个远程会话浏览配置,其中所述一个或多个远程会话浏览配置中的每一个识别至少通信协议、将在所述网络计算组件上执行的所述多个处理动作的第一组处理动作,和将在所述客户端计算设备上执行的所述多个处理动作的第二组处理动作,且其中所述第一组处理动作和所述第二组处理动作一起包括所述多个处理动作;
[0105]所述基于网络的浏览器软件应用处理所述网络资源和所述一个或多个嵌入式资源以生成对应于所述确定的远程会话浏览配置中的每一个的至少一个处理结果,其中所述至少一个处理结果中的每一个对应于各自处理的网络资源或处理的一个或多个嵌入式资源的表示,且其中所述至少一个处理结果中的每一个通过在所述网络计算组件上执行由所述对应的确定的远程会话浏览配置识别的所述多个处理动作的所述第一组处理动作来生成;和
[0106]所述基于网络的浏览器软件应用把所述至少一个处理结果中的每一个提供到所述客户端计算设备,所述客户端计算设备被配置以显示所述网络资源和嵌入式资源识别符的所述至少一个表示,其中显示所述至少一个表示包括对所述处理结果执行所述多个处理动作中所述第二组处理动作。
[0107]条款2.如条款1所述的计算机实施的方法,其中由所述远程会话浏览配置识别的所述通信协议包括HTML协议、远程桌面协议、虚拟网络计算协议、远程帧缓冲协议和X-ffindows协议中的至少一个。
[0108]条款3.如条款1所述的计算机实施的方法,其中基于所述网络资源和所述一个或多个嵌入式资源中的至少一个确定对应于所述浏览会话请求的一个或多个远程会话浏览配置嵌入式资源包括基于资源数据格式、资源内容类型、资源大小、资源处理需求、资源延迟要求、互动元素的数目或类型、资源安全性风险、历史资源使用数据、资源使用预测、相关用户偏好、相关网络地址、相关网络域、历史内容提供商使用数据,和内容提供商配置数据中的至少一个来确定一个或多个远程会话浏览配置。
[0109]条款4.如条款1所述的计算机实施的方法,其还包括:
[0110]从所述客户端计算设备获得第二浏览会话请求,其中所述第二浏览会话请求包括第二网络资源的地址,所述第二网络资源包括第二一个或多个嵌入式资源嵌入式资源识别符;
[0111]所述网络计算组件通过所述实例化的基于网络的浏览器软件应用进行第二请求;
[0112]在所述第二基于网络的浏览器软件应用上从一个或多个内容提供商获得所述第二网络资源和所述第二一个或多个嵌入式资源嵌入式资源识别符;和
[0113]确定所述第二新的浏览会话请求的第二远程会话浏览配置。
[0114]条款5.如条款4所述的计算机实施的方法,其中来自所述第一浏览会话请求的至少一个确定的远程会话浏览配置与来自所述第二浏览会话请求的所述确定的第二远程会话浏览配置不同。
[0115]条款6.如条款1所述的计算机实施的方法,其中基于所述网络资源和所述一个或多个嵌入式资源中的至少一个确定所述新的浏览会话请求的一个或多个远程会话浏览配置嵌入式资源包括:确定第一嵌入式资源的第一远程会话浏览配置和第二嵌入式资源的第二远程会话浏览配置。
[0116]条款7.如条款1所述的计算机实施的方法,其中确定所述新的浏览会话请求的一个或多个远程会话浏览配置包括:至少部分基于确定所述客户端计算设备选择的一个或多个远程会话浏览配置来确定所述新的浏览会话请求的一个或多个远程会话浏览配置。
[0117]条款8.—种用于远程会话浏览的系统,其包括:
[0118]一个或多个计算机处理器;
[0119]至少一个计算机存储器,其可由所述一个或多个计算机处理器中的至少一个访问;
[0120]网络计算组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述网络计算组件可操作以:
[0121]确定客户端计算设备请求的一个或多个网络资源的远程会话浏览配置,其中所述远程会话浏览配置识别至少通信协议、将在所述网络计算组件上执行的多个处理动作的第一组处理动作,和将在所述网络计算组件上执行的所述多个处理动作的第二组处理动作;
[0122]把至少一个处理结果提供到所述客户端计算设备,所述至少一个处理结果中的每一个通过在所述网络计算组件上执行由所述确定的远程会话浏览配置识别的所述第一组处理动作来生成,其中所述客户端计算设备可操作以显示所述一个或多个网络资源,包括对所述处理结果执行所述多个处理动作的所述第二组处理动作。
[0123]条款9.如条款8所述的系统,其中由所述远程会话浏览配置识别的所述通信协议包括HTML协议、远程桌面协议、虚拟网络计算协议、远程巾贞缓冲协议和X-Windows协议中的至少一个。
[0124]条款10.如条款8所述的系统,其中所述网络计算组件还可操作以至少部分基于由所述客户端计算设备对一个或多个远程会话浏览配置的确定来确定一个或多个网络资源的远程会话浏览配置。
[0125]条款11.如条款8所述的系统,其中所述网络计算组件还可操作以基于网络资源数据格式、网络资源内容类型、网络资源大小、网络资源处理要求、资源延迟要求、历史资源使用数据、资源使用预测、与网络资源相关的互动元素的数目或类型、网络资源安全风险、相关用户偏好、相关网络地址、相关网络域、历史内容提供商使用数据,和内容提供商配置数据中的至少一个来确定客户端计算设备请求的一个或多个网络资源的远程会话浏览配置。
[0126]条款12.如条款11所述的系统,其中所述网络计算组件还可操作以:
[0127]从所述客户端计算设备获得第一浏览会话请求,其中所述第一浏览会话请求对应于一个或多个网络资源;和
[0128]响应于来自所述客户端计算设备的所述第一浏览会话请求获得所述一个或多个网络资源。
[0129]条款13.如条款12所述的系统,其中所述网络计算组件还可操作以:[0130]从所述客户端计算设备获得第二浏览会话请求,其中所述第二浏览会话请求对应于第二一个或多个网络资源;
[0131]响应于来自所述客户端计算设备的所述第二浏览会话请求而从一个或多个内容提供商获得所述第二一个或多个网络资源;和
[0132]确定所述第二浏览会话请求的第二远程会话浏览配置。
[0133]条款14.如条款13所述的系统,其中所述第二远程会话浏览配置与所述第一远程会话浏览配置不同。
[0134]条款15.如条款8所述的系统,其中所述一个或多个网络资源包括参考一个或多个嵌入式资源的网络资源。
[0135]条款16.如条款15所述的系统,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:确定第一嵌入式资源的第一远程会话浏览配置和第二嵌入式资源的第二远程会话浏览配置。
[0136]条款17.如条款15所述的系统,其中所述网络计算组件还可操作以:
[0137]从内容提供商获得所述网络资源;
[0138]处理所述网络资源以获得对应于与所述网络资源相关的所述一个或多个嵌入式资源的一个或多个嵌入式资源识别符;和
[0139]基于所述一个或多个嵌入式资源识别符从一个或多个内容提供商获得所述一个或多个嵌入式资源。
[0140]条款18.—种用于远程会话浏览的计算机实施的方法,其包括:
[0141]确定一个或多个网络资源的一个或多个远程会话浏览配置,其中所述一个或多个远程会话浏览配置中的每一个识别至少通信协议、将在所述网络计算组件上执行的第一组处理动作和将在所述网络计算组件上执行的第二组处理动作;
[0142]处理所述网络资源以生成对应于所述确定的远程会话浏览配置中的每一个的至少一个处理结果,其中所述至少一个处理结果中的每一个通过在所述网络计算组件上执行由所述对应的确定的远程会话浏览配置识别的所述第一组处理动作来生成;和
[0143]把所述至少一个处理结果中的每一个提供到所述客户端计算设备,所述客户端计算设备被配置以显示所述一个或多个网络资源,其中所述显示所述一个或多个网络资源包括对所述处理结果执行所述多个处理动作的所述第二组处理动作。
[0144]条款19.如条款18所述的计算机实施的方法,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:至少部分基于由所述客户端计算设备对一个或多个远程会话浏览配置的确定来确定一个或多个网络资源的一个或多个远程会话浏览配置。
[0145]条款20.如条款18所述的计算机实施的方法,其还包括:
[0146]从所述客户端计算设备获得第一浏览会话请求,其中所述第一浏览会话请求对应于一个或多个网络资源;和
[0147]响应于来自所述客户端计算设备的所述第一浏览会话请求获得所述一个或多个网络资源。
[0148]条款21.如条款20所述的计算机实施的方法,其还包括:
[0149]从所述客户端计算设备获得第二浏览会话请求,其中所述第二浏览会话请求对应于第二一个或多个网络资源;[0150]响应于来自所述客户端计算设备的所述第二浏览会话请求而从一个或多个内容提供商获得所述第二一个或多个网络资源;和
[0151]确定所述第二浏览会话请求的第二远程会话浏览配置。
[0152]条款22.如条款21所述的计算机实施的方法,其中所述第二远程会话浏览配置与所述第一远程会话浏览配置不同。
[0153]条款23.如条款18所述的计算机实施的方法,其中所述一个或多个网络资源包括参考一个或多个嵌入式资源的网络资源。
[0154]条款24.如条款23所述的计算机实施的方法,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:确定第一嵌入式资源的第一远程会话浏览配置和第二嵌入式资源的第二远程会话浏览配置。
[0155]条款25.如条款23所述的计算机实施的方法,其中所述网络计算组件还可操作以:
[0156]从内容提供商获得所述网络资源;
[0157]处理所述网络资源以获得对应于与所述网络资源相关的所述一个或多个嵌入式资源的一个或多个嵌入式资源识别符;和
[0158]基于所述一个或多个嵌入式资源识别符从一个或多个内容提供商获得所述一个或多个嵌入式资源。
[0159]条款26.—种用于远程会话浏览的系统,其包括:
[0160]一个或多个计算机处理器;
[0161]至少一个计算机存储器,其可由所述一个或多个计算机处理器中的至少一个访问;和
[0162]浏览器组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述浏览器组件可操作以:
[0163]向网络计算组件提供网络内容的请求,其中所述网络内容的请求包括识别网络资源和一个或多个嵌入式资源中的至少一个,且其中所述网络资源和所述一个或多个嵌入式资源中的至少一个可用多个处理动作来处理;
[0164]从所述网络计算组件获得第一处理结果,其中所述第一处理结果对应于所述网络资源和所述一个或多个嵌入式资源中所述至少一个,其中所述多个处理动作尚未完成;
[0165]处理所述第一处理结果以生成对应于完成所述多个处理动作中的至少一个的本地处理结果;
[0166]从所述网络计算组件获得第二处理结果,其中所述第二处理结果对应于所述网络资源和所述一个或多个嵌入式资源中所述至少一个,其中所述多个处理动作已完成;和
[0167]基于所述本地处理结果或所述第二处理结果来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0168]条款27.如条款26所述的系统,其中所述网络计算组件被配置以响应于所述网络内容的请求实例化在所述网络计算组件上执行的基于网络的浏览器过程。
[0169]条款28.如条款26所述的系统,其中所述浏览器组件基于所述本地处理结果或所述第二处理结果并基于从所述网络计算组件接收的指令来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。[0170]条款29.如条款26所述的系统,其中所述浏览器组件基于所述本地处理结果或所述第二处理结果并基于所述本地处理结果和所述第二处理结果的完成时间来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0171]条款30.如条款26所述的系统,其中所述浏览器组件基于所述本地处理结果或第二处理结果并基于关于所述处理所述网络资源和所述一个或多个嵌入式资源中所述至少一个的历史信息来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表不。
[0172]条款31.如条款26所述的系统,其中所述浏览器组件基于所述本地处理结果或所述第二处理来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示包括:基于所述本地处理结果或所述第二处理结果的组合来确定生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0173]条款32.—种用于远程会话浏览的计算机实施的方法,其包括:
[0174]向网络计算组件提供网络内容的请求,其中所述网络内容根据多个处理动作来处理;
[0175]获得其中所述多个处理动作中的至少一个尚未完成的所述网络内容;
[0176]处理所述网络内容以生成对应于完成所述多个处理动作的本地处理结果;
[0177]从所述网络计算组件获得网络处理结果,其中所述网络处理结果对应于其中所述多个处理动作已完成的所述网络内容的表示;和
[0178]基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表
/Jn ο
[0179]条款33.如条款32所述的方法,其中所述网络计算组件被配置以响应于所述网络内容的请求实例化在所述网络计算组件上执行的基于网络的浏览器过程。
[0180]条款34.如条款32所述的方法,其中基于所述本地处理结果和所述网络处理结果的所述网络内容的所述表示大致相同。
[0181]条款35.如条款32所述的方法,其中基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表示包括:基于所述本地处理结果或所述网络处理结果并基于从所述网络计算组件接收的指令来确定是否生成所述网络内容的表示。
[0182]条款36.如条款32所述的方法,其中基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表示包括:基于所述本地处理结果或所述网络处理结果并基于所述本地处理结果和所述第二处理结果的完成时间来确定是否生成所述网络内容的表不。
[0183]条款37.如条款32所述的方法,其中基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表示包括:基于所述本地处理结果或所述网络处理结果并基于关于所述处理所述网络资源和所述一个或多个嵌入式资源中所述至少一个的历史信息来确定是否生成所述网络内容的表示。
[0184]条款38.如条款32所述的方法,其中确定是否生成所述网络内容的表示基于所述本地处理结果,所述方法还包括:基于所述网络处理结果来生成所述网络的更新的表示。
[0185]条款39.如条款32所述的方法,其中基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表示包括:基于所述本地处理结果或所述网络处理结果并基于包括所述网络内容的数据格式、所述网络内容的内容类型、所述网络内容的大小、所述网络内容的处理要求、网络延迟、网络带宽、客户端计算设备处理资源、网络计算组件处理资源,或用户偏好中的至少一个的一个或多个选择因素来确定是否生成所述网络内容的表
/Jn ο
[0186]条款40.如条款32所述的方法,其中获得其中所述多个处理动作中的至少一个尚未完成的所述网络内容包括:从所述网络计算组件获得所述网络内容。
[0187]条款41.如条款32所述的方法,其中获得其中所述多个处理动作中的至少一个尚未完成的所述网络内容包括:从内容提供商获得所述网络内容。
[0188]条款42.如条款32所述的方法,其中获得其中所述多个处理动作中的至少一个尚未完成的所述网络内容包括:从与所述客户端计算设备相关的缓存组件获得所述网络内容。
[0189]条款43.—种其上编码有用于管理远程会话浏览的指令的非暂时性计算机可读介质,其中当被计算装置执行时,所述指令促使所述计算装置:
[0190]向网络计算组件提供网络内容的请求,其中所述网络内容根据多个处理动作来处理;
[0191]处理所述网络内容以生成对应于完成所述多个处理动作的本地处理结果;
[0192]从所述网络计算组件获得网络处理结果,其中所述网络处理结果对应于其中所述多个处理动作已完成的所述网络内容的表示;和
[0193]基于所述本地处理结果或所述网络处理结果来确定是否生成所述网络内容的表
/Jn ο
[0194]条款44.如条款43所述的非暂时性计算机可读介质,其中所述网络计算组件被配置以响应于所述网络内容的请求实例化在所述网络计算组件上执行的基于网络的浏览器过程。
[0195]条款45.如条款43所述的非暂时性计算机可读介质,其中所述计算装置基于所述本地处理结果或所述第二处理结果并基于从所述网络计算组件接收的指令来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0196]条款46.如条款43所述的非暂时性计算机可读介质,其中所述浏览器组件基于所述本地处理结果或所述第二处理结果并基于所述本地处理结果和所述第二处理结果的完成时间来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表
/Jn ο
[0197]条款47.如条款43所述的非暂时性计算机可读介质,其中所述浏览器组件基于所述本地处理结果或所述第二处理结果并基于关于所述处理所述网络资源和所述一个或多个嵌入式资源中所述至少一个的历史信息来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0198]条款48.如条款43所述的非暂时性计算机可读介质,其中所述浏览器组件基于所述本地处理结果或所述第二处理来确定是否生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示包括:基于所述本地处理结果或所述第二处理结果的组合来确定生成所述网络资源和所述一个或多个嵌入式资源中所述至少一个的表示。
[0199]条款49.如条款43所述的非暂时性计算机可读介质,其中所述计算装置基于所述本地处理结果生成所述网络内容的表示,所述计算装置还可操作以基于所述网络处理结果生成所述网络的更新的表示。
[0200]虽然已公开并讨论了说明性实施方案,相关领域技术人员应理解,可在本发明的精神和范围内实施另外或替代性实施方案。例如,本文描述的技术可在不脱离本发明的范围的情况下用以允许远程处理任何数量的其它软件应用和过程的管理,包括但不限于,图像或视频编辑软件、数据库软件、office办公软件、三维设计软件、音频和声音处理应用等。另外,虽然许多实施方案已指示为说明性的,但是相关领域的技术人员应理解,说明性实施方案不需要进行组合或一起实施。因此,一些说明性实施方案不需要根据本发明的变化的范围来使用或实施。
[0201]除非特别声明或在所使用的上下文中进行理解,否则条件性语言(诸如,“可”或“可能”)一般旨在传达某些实施方案包括,而其它实施方案不包括某些特征、元素和/或步骤。因此,所述条件性语言一般不旨在暗示特征、元素和/或步骤无论如何是一个或多个实施方案所需要的,或者一个或多个实施方案在有或没有用户输入或提示的情况下都必需包括用于确定的逻辑,而不管这些特征、元素和/或步骤是否包括在任何特定实施方案中或将在任何特定实施方案中执行。
[0202]本文描述且/或在附图中描述的流程图中的任何过程描述、元素或框应理解为可能代表包括用于实施过程中的特定逻辑功能或步骤的一个或多个可执行指令的模块、段,或代码部分。替代性实施包括在本文描述的实施方案的范围内,其中如本领域的技术人员应理解,元素或功能可被删除、用示出或讨论的顺序以外的顺序来执行,包括基本上同时或以相反的顺序,这取决于所涉及的功能。还应理解,上述数据和/或组件可使用与存储计算机可执行组件(诸如,⑶-R0M、DVD-R0M或网络界面)的计算机可读介质相关的驱动机制存储在计算机可读介质上且装入计算设备的存储器。另外,组件和/或数据可包括在单个设备中或以任何方式分布。因此,通用计算设备可被配置以用上述各种数据和/或组件的处理和/或执行来实施本发明的过程、算法和方法。
[0203]应强调,可对上述实施方案进行许多变化和修改,所述变化和修改的元素应理解为其它可接受的实例。本文中所有所述修改和变化旨在包括在本发明的范围内且由以下权利要求书保护。
【权利要求】
1.一种用于远程会话浏览的系统,其包括: 一个或多个计算机处理器; 至少一个计算机存储器,其可由所述一个或多个计算机处理器中的至少一个访问;网络计算组件,其包括由所述一个或多个计算机处理器执行的可执行软件模块,其中所述网络计算组件可操作以: 确定客户端计算设备请求的一个或多个网络资源的远程会话浏览配置,其中所述远程会话浏览配置识别至少通信协议、将在所述网络计算组件上执行的多个处理动作的第一组处理动作,和将在所述网络计算组件上执行的所述多个处理动作的第二组处理动作; 把至少一个处理结果提供到所述客户端计算设备,所述至少一个处理结果中的每一个通过在所述网络计算组件上执行由所述确定的远程会话浏览配置识别的所述第一组处理动作来生成,其中所述客户端计算设备可操作以使所述一个或多个网络资源显示,包括对所述处理结果执行所述多个处理动作的所述第二组处理动作。
2.如权利要求1所述的系统,其中所述网络计算组件还可操作以至少部分基于由所述客户端计算设备对一个或多个远程会话浏览配置的确定来确定一个或多个网络资源的远程会话浏览配置。
3.如权利要求1所述的系统,其中所述网络计算组件还可操作以基于网络资源数据格式、网络资源内容类型、网络资源大小、网络资源处理要求、资源延迟要求、历史资源使用数据、资源使用预测、与网络资源相关的互动元素的数目或类型、网络资源安全风险、相关用户偏好、相关网络地址、相关网络域、历史内容提供商使用数据和内容提供商配置数据中的至少一个来决定客户端计算设备请求的一个或多个网络资源的远程会话浏览配置。
4.如权利要求3所述的系统,其中所述网络计算组件还可操作以: 从所述客户端计算设备获得第一浏览会话请求,其中所述第一浏览会话请求对应于一个或多个网络资源;以及 响应于来自所述客户端计算设备的所述第一浏览会话请求获得所述一个或多个网络资源。
5.如权利要求4所述的系统,其中所述网络计算组件还可操作以: 从所述客户端计算设备获得第二浏览会话请求,其中所述第二浏览会话请求对应于第二一个或多个网络资源; 响应于来自所述客户端计算设备的所述第二浏览会话请求而从一个或多个内容提供商获得所述第二一个或多个网络资源;和 确定所述第二浏览会话请求的第二远程会话浏览配置。
6.如权利要求1所述的系统,其中所述一个或多个网络资源包括参考一个或多个嵌入式资源的网络资源。
7.如权利要求6所述的系统,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:确定第一嵌入式资源的第一远程会话浏览配置和第二嵌入式资源的第二远程会话浏览配置。
8. 如权利要求6所述的系统,其中所述网络计算组件还可操作以: 从内容提供商获得所述网络资源; 处理所述网络资源以获得对应于与所述网络资源相关的所述一个或多个嵌入式资源的一个或多个嵌入式资源识别符;和基于所述一个或多个嵌入式资源识别符从一个或多个内容提供商获得所述一个或多个嵌入式资源。
9.一种用于远程会话浏览的计算机实施的方法,其包括:确定一个或多个网络资源的一个或多个远程会话浏览配置,其中所述一个或多个远程会话浏览配置中的每一个识别至少通信协议、将在所述网络计算组件上执行的第一组处理动作,和将在所述网络计算组件上执行的第二组处理动作;处理所述网络资源以生成对应于所述确定的远程会话浏览配置中的每一个的至少一个处理结果,其中所述至少一个处理结果中的每一个通过在所述网络计算组件上执行由所述对应的确定的远程会话浏览配置识别的所述第一组处理动作来生成;和把所述至少一个处理结果中的每一个提供到所述客户端计算设备,所述客户端计算设备被配置成使所述一个或多个网络资源显示,其中使所述一个或多个网络资源显示包括对所述处理结果执行所述多个处理动作的所述第二组处理动作。
10.如权利要求9所述的计算机实施的方法,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:至少部分基于由所述客户端计算设备对一个或多个远程会话浏览配置的确定来确定一个或多个网络资源的一个或多个远程会话浏览配置。
11.如权利要求9所述的计算机实施的方法,其还包括:从所述客户端计算设备获得第一浏览会话请求,其中所述第一浏览会话请求对应于一个或多个网络资源;和响应于来自所述客户端计算设备的所述第一浏览会话请求而获得所述一个或多个网络资源。
12.如权利要求11所述的计算机实施的方法,其还包括:从所述客户端计算设备获得第二浏览会话请求,其中所述第二浏览会话请求对应于第二一个或多个网络资源;响应于来自所述客户端计算设备的所述第二浏览会话请求而从一个或多个内容提供商获得所述第二一个或多个网络资源;和确定所述第二浏览会话请求的第二远程会话浏览配置。
13.如权利要求9所述的计算机实施的方法,其中所述一个或多个网络资源包括参考一个或多个嵌入式资源的网络资源。
14.如权利要求13所述的计算机实施的方法,其中确定一个或多个网络资源的一个或多个远程会话浏览配置包括:确定第一嵌入式资源的第一远程会话浏览配置和第二嵌入式资源的第二远程会话浏览配置。
15.如权利要求13所述的计算机实施的方法,其中所述网络计算组件还可操作以:从内容提供商获得 所述网络资源;处理所述网络资源以获得对应于与所述网络资源相关的所述一个或多个嵌入式资源的一个或多个嵌入式资源识别符;和基于所述一个或多个嵌入式资源识别符从一个或多个内容提供商获得所述一个或多个嵌入式资源。
【文档编号】G06F17/30GK103748583SQ201280040594
【公开日】2014年4月23日 申请日期:2012年6月28日 优先权日:2011年6月30日
【发明者】塞缪尔·S·吉利奥蒂, 马太·L·特拉汉, 乔纳森·A·詹金斯, 布雷特·R·泰勒 申请人:亚马逊技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1