遠程瀏覽會話管理的制作方法
【專利摘要】一種瀏覽過程針對瀏覽會話在網(wǎng)絡計算和存儲提供商上的生成和管理??蛻舳擞嬎阍O備在網(wǎng)絡計算和存儲提供商上請求遠程瀏覽會話實例。所述瀏覽會話實例可對應于請求的網(wǎng)絡內容。所述網(wǎng)絡計算和存儲提供商確定瀏覽配置。所述瀏覽配置可識別通信協(xié)議和各種處理動作。所述網(wǎng)絡計算和存儲提供商通過實例化的網(wǎng)絡瀏覽會話實例檢索所述請求的內容,并執(zhí)行第一組處理動作以生成處理結果。所述處理結果可被提供到所述客戶端計算設備以進行顯示,包括在所述客戶端計算設備上對所述處理結果執(zhí)行第二組處理動作。
【專利說明】遠程瀏覽會話管理
[0001]發(fā)明背景
[0002]一般描述,計算設備和通信網(wǎng)絡可用以交換信息。在常見應用中,計算設備可通過通信網(wǎng)絡從另一計算設備請求內容。例如,個人計算設備處的用戶可利用軟件瀏覽器應用(通常被稱為瀏覽器軟件應用)來通過互聯(lián)網(wǎng)從服務器計算設備請求網(wǎng)頁。在這樣的實施方案中,用戶計算設備可被稱為客戶端計算設備且服務器計算設備可被稱為內容提供商。
[0003]參看說明性實例,請求的網(wǎng)頁或原始內容可與將用網(wǎng)頁顯示的許多額外資源(諸如,圖像或視頻)相關。在一個特定實施方案中,網(wǎng)頁的額外資源由例如統(tǒng)一資源定位符(“URL”)的許多嵌入式資源識別符識別。反過來,例如瀏覽器軟件應用的客戶端計算設備上的軟件通常處理嵌入式資源識別符以生成內容的請求。因此,為了滿足內容請求,一個或多個內容提供商將通常向客戶端計算設備提供與網(wǎng)頁相關的數(shù)據(jù)以及與嵌入式資源相關的數(shù)據(jù)。
[0004]一旦客戶端計算設備獲得網(wǎng)頁和相關的額外資源,內容可在許多階段被軟件瀏覽器應用或其他客戶端計算設備界面處理。例如且參看以上說明,軟件瀏覽器應用可分析網(wǎng)頁以處理各種HTML布局信息和對相關資源的參考,可識別并處理層疊樣式表(“CSS”)信息,可處理并實例化與網(wǎng)頁相關的各種Javascript代碼,可構建本機對象模型以代表網(wǎng)頁的一個或多個組件,且可計算各種布局并顯示經(jīng)處理內容的特性以向用戶演示。
[0005]從利用客戶端計算設備的用戶的觀點看來,用戶體驗可根據(jù)與以下相關的性能和延遲來定義:通過通信網(wǎng)絡獲得網(wǎng)絡內容,例如獲得網(wǎng)頁;處理嵌入式資源識別符;生成請求以獲得嵌入式資源;和在客戶端計算設備上呈現(xiàn)內容。上述過程的任一個的延遲和性能限制可減小用戶體驗。另外,延遲和低效率可能在有限資源(諸如處理能力、內存或網(wǎng)絡連接)的計算設備(諸如,上網(wǎng)本、平板計算機、智能手機等)上尤其明顯。
[0006]附圖簡述
[0007]由于通過參考結合附圖進行的以下詳細描述可更好地理解本發(fā)明的上述方面和許多伴隨的優(yōu)勢,所以所述方面和優(yōu)勢將變得更容易理解,在附圖中:
[0008]圖1是說明包括許多客戶端計算設備、內容提供商、內容傳遞網(wǎng)絡服務提供商和網(wǎng)絡計算及存儲提供商的內容傳遞環(huán)境的框圖;
[0009]圖2是示出生成并處理從客戶端計算設備到網(wǎng)絡計算和存儲提供商的新的瀏覽會話請求的圖1的內容傳遞環(huán)境的框圖;
[0010]圖3是示出生成并處理從網(wǎng)絡計算和存儲提供商到內容提供商的網(wǎng)絡資源的請求的圖1的內容傳遞環(huán)境的框圖;
[0011]圖4是示出生成并處理對應于從網(wǎng)絡計算和存儲提供商到內容提供商和內容傳遞網(wǎng)絡的一個或多個嵌入式資源的一個或多個請求的圖1的內容傳遞環(huán)境的框圖;
[0012]圖5是示出生成并處理在網(wǎng)絡計算和存儲提供商與客戶端計算設備之間的瀏覽會話數(shù)據(jù)和用戶交互數(shù)據(jù)的圖1的內容傳遞環(huán)境的框圖;
[0013]圖6是示出生成并處理從客戶端計算設備到網(wǎng)絡計算和存儲提供商的額外的新的瀏覽會話請求的圖1的內容傳遞環(huán)境的框圖;[0014]圖7是描繪說明性瀏覽器界面和瀏覽會話內容的顯示的用戶界面圖;
[0015]圖8是描繪作為一系列處理子系統(tǒng)的說明性瀏覽器內容處理動作的圖;
[0016]圖9是說明網(wǎng)絡計算和存儲提供商實施的新的瀏覽會話程序的流程圖;
[0017]圖10是說明客戶端計算設備實施的客戶端新的瀏覽會話交互程序的流程圖;和
[0018]圖11是說明客戶端計算設備實施的過程用戶交互程序的流程圖。
【具體實施方式】
[0019]一般描述,本發(fā)明針對結合網(wǎng)絡計算和存儲提供商在客戶端計算設備和內容提供商之間生成并管理遠程應用會話。特別說來,本公開的方面將關于以下進行描述:客戶端計算設備向內容提供商進行瀏覽會話的請求;在客戶端計算設備與網(wǎng)絡計算和存儲提供商之間建立遠程瀏覽會話;和在客戶端計算設備與網(wǎng)絡計算和存儲提供商之間傳輸瀏覽會話狀態(tài)數(shù)據(jù)和客戶端交互數(shù)據(jù)。雖然本發(fā)明中描述的實施方案的方面為了說明的目的將集中于管理遠程瀏覽會話,但是本領域技術人員應理解,本文公開的技術可應用于任何數(shù)量的軟件過程或應用。另外,雖然本發(fā)明的各種方面將參照說明性實例和實施方案進行描述,但是本領域技術人員應理解,公開的實施方案和實例不應理解為限制性的。
[0020]參看說明性實例,用戶可使客戶端計算設備加載用于訪問一個或多個內容提供商提供的內容的軟件瀏覽器應用(以下稱為“瀏覽器”)。說明性地,訪問的內容可包括一個或多個網(wǎng)絡資源(例如,網(wǎng)頁)、嵌入式資源(諸如圖像、視頻、音頻、文本、可執(zhí)行代碼)和其它資源的集合。在一個實施方案中,除了一個或多個本地接口組件(諸如,工具欄、菜單、按鈕或其它用戶界面控件)之外,瀏覽器可具有用于顯示訪問的網(wǎng)絡內容的內容顯示區(qū)域或窗格。本地接口組件可由軟件瀏覽器應用管理且控制,或由在客戶端計算設備處本地執(zhí)行或實施的任何其它過程來管理并控制。說明性地,本地管理用戶界面控件可允許響應的用戶界面,因為用戶進行的交互是在客戶端計算設備上本地處理的。
[0021]在加載瀏覽器之后,用戶或自動瀏覽器過程可通過在專用網(wǎng)絡或公共網(wǎng)絡上與網(wǎng)絡計算和存儲提供商建立瀏覽會話來使客戶端計算設備傳送請求以訪問來自內容提供商的內容。瀏覽會話請求可包括識別請求的內容的一個或多個來源的信息。識別符可呈網(wǎng)絡資源的網(wǎng)絡地址的形式,諸如,網(wǎng)站或其它網(wǎng)絡訪問的內容片段。例如,用戶可選擇或把URL(例如,http://www.xyzwebsite.com)輸入瀏覽器窗口,從而使客戶端計算設備把新的瀏覽會話的請求傳送到網(wǎng)絡計算和存儲提供商,包括選擇的URL。能夠提供瀏覽會話請求的網(wǎng)絡計算和存儲提供商的地址或位置可被硬編碼到瀏覽器;可由用戶配置;可從網(wǎng)絡地址服務獲得;或可用任何其它方式來確定。
[0022]在說明性實施方案中,響應于從客戶端計算設備接收的瀏覽會話請求,網(wǎng)絡計算和存儲提供商可實例化與將托管瀏覽器軟件應用的網(wǎng)絡計算和存儲提供商相關的一個或多個計算組件或具有實例化的一個或多個計算組件。例如,網(wǎng)絡計算和存儲提供商可實例化包括能夠從通信網(wǎng)絡請求資源的軟件瀏覽器應用的虛擬機的實例,或具有實例化的虛擬機的實例。說明性地,在一些情況下,與網(wǎng)絡計算和存儲提供商相關的一個或多個設備可位于數(shù)據(jù)中心或其它魯棒性地的聯(lián)網(wǎng)計算環(huán)境,且與客戶端計算設備相比,當獲得網(wǎng)絡資源時,所述設備可經(jīng)歷相對較少的延遲或延時。
[0023]使用實例化的網(wǎng)絡計算組件,網(wǎng)絡計算和存儲提供商可從一個或多個內容提供商、內容傳遞網(wǎng)絡或本地或相關緩存組件請求識別網(wǎng)絡資源。例如,實例化的網(wǎng)絡計算組件上的瀏覽器軟件應用可處理主要網(wǎng)絡資源,且接著生成一個或多個嵌入式資源識別符(例如,圖片、視頻文件等)中識別的內容的額外的內容請求。說明性地,在其它非瀏覽器應用的情況下,網(wǎng)絡資源或內容可包括本領域已知且特定軟件應用支持的任何文件類型或格式。
[0024]已獲得所請求的內容(例如,請求的網(wǎng)絡資源和嵌入式資源)之后,網(wǎng)絡計算和存儲提供商可識別指定遠程會話通信協(xié)議的遠程會話瀏覽配置,該遠程會話通信協(xié)議用于在客戶端計算設備上執(zhí)行的瀏覽器與在計算和存儲提供商上的實例化的網(wǎng)絡計算組件處執(zhí)行的瀏覽器之間傳送請求的內容、用戶交互數(shù)據(jù)、中間處理結果和其它信息。在實例化的網(wǎng)絡計算組件上的瀏覽器與客戶端計算設備上的瀏覽器之間交換的信息可通常稱為“瀏覽器會話信息”。
[0025]除了指定用于在客戶端計算設備和實例化的網(wǎng)絡計算組件之間傳送信息的遠程會話通信協(xié)議之外,在一個實施方案中,識別的遠程會話瀏覽配置還可指定將對請求的內容執(zhí)行的一個或多個處理動作將在網(wǎng)絡計算和存儲提供商上執(zhí)行而不是在客戶端計算設備上執(zhí)行或在客戶端計算設備上執(zhí)行之外,還可以在網(wǎng)絡計算和存儲提供商上執(zhí)行。為達說明的目的,瀏覽器處理網(wǎng)絡內容可包括在內容可用合適的形式在客戶端計算設備上呈現(xiàn)之前進行的各種處理動作。例如,可分析并處理網(wǎng)頁來處理各種HTML布局信息和對相關資源或嵌入式內容(諸如CSS樣式表和Javascript)以及嵌入的內容對象(諸如圖像、視頻、音頻等)的參考。在可構建并進一步處理對應于網(wǎng)頁的代表對象模型以進行布局和顯示之前,可分析并處理每個對象或每段代碼。根據(jù)選擇的遠程會話瀏覽配置,客戶端計算設備和實例化的網(wǎng)絡計算組件可通過瀏覽器會話信息(例如,代表請求的內容的狀態(tài)數(shù)據(jù)或顯示數(shù)據(jù))來交換處理結果。
[0026]圖1是說明用于管理并處理內容請求的聯(lián)網(wǎng)計算環(huán)境100的框圖。如圖1示出,聯(lián)網(wǎng)計算環(huán)境100包括許多客戶端計算設備102 (通常稱為客戶端),客戶端計算設備102用于從內容提供商104、CDN服務提供商106或網(wǎng)絡計算和存儲提供商107請求內容和內容處理。在說明性實施方案中,客戶端計算設備102可對應于各種各樣的計算設備,包括個人計算設備、膝上型計算設備、手持計算設備、終端計算設備、移動設備(例如,手機、平板計算設備等)、無線設備、各種電子設備和家電等。在說明性實施方案中,客戶端計算設備102包括用于通過通信網(wǎng)絡108 (諸如廣域網(wǎng)或局域網(wǎng))建立通信的必要的硬件和軟件組件。例如,客戶端計算設備102可配備有通過互聯(lián)網(wǎng)或內聯(lián)網(wǎng)促進通信的網(wǎng)絡設備和瀏覽器軟件應用??蛻舳擞嬎阍O備102可具有各種本地計算資源,例如,中央處理單元和架構、存儲器、大容量存儲器、圖形處理單元、通信網(wǎng)絡可用性和帶寬等。
[0027]聯(lián)網(wǎng)計算環(huán)境100也可包括通過通信網(wǎng)絡108與一個或多個客戶端計算設備102或其它服務提供商(例如,CDN服務提供商106、網(wǎng)絡計算和存儲提供商107等)通信的內容提供商104。圖1中示出的內容提供商104對應于與內容提供商相關的一個或多個計算設備的邏輯關聯(lián)。具體來說,內容提供商104可包括對應于用于從客戶端計算設備102或其它服務提供商獲得并處理內容(例如,網(wǎng)頁)的請求的一個或多個服務器計算設備的網(wǎng)絡服務器組件110。內容提供商104還可包括對應于用于從⑶N服務提供商獲得并處理網(wǎng)絡資源的請求的一個或多個計算設備的原始服務器組件112和相關存儲組件114。內容提供商104還可包括用于處理流內容請求的應用服務器計算設備111,例如,數(shù)據(jù)流服務器。相關領域技術人員應理解,內容提供商104可與各種額外的計算資源相關,所述計算資源例如管理內容和資源、DNS名稱服務器等的額外的計算設備。例如,雖然圖1中未示出,但是內容提供商104可與一個或多個DNS名稱服務器組件相關,所述DNS名稱服務器組件將被授權來解析對應于內容提供商的域名的客戶端計算設備DNS查詢。
[0028]繼續(xù)參看圖1,聯(lián)網(wǎng)計算環(huán)境100還可包括通過通信網(wǎng)絡108與一個或多個客戶端計算設備102和其它服務提供商通信的CDN服務提供商106。圖1中示出的CDN服務提供商106對應于與CDN服務提供商相關的一個或多個計算設備的邏輯關聯(lián)。具體來說,CDN服務提供商106可包括對應于通信網(wǎng)絡108上的節(jié)點的許多存在點(“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的各種人口統(tǒng)計的方式來在整個通信網(wǎng)絡108上地理分布。另外,相關領域技術人員應理解,CDN服務提供商106可與各種額外計算資源相關,例如用于管理內容和資源的額外計算設備等。
[0030]還繼續(xù)參看圖1,聯(lián)網(wǎng)計算環(huán)境100也可包括通過通信網(wǎng)絡108與一個或多個客戶端計算設備102、CDN服務提供商106和內容提供商104通信的網(wǎng)絡計算和存儲提供商107。圖1中示出的網(wǎng)絡計算和存儲提供商107也對應于與網(wǎng)絡計算和存儲提供商相關的一個或多個計算設備的邏輯關聯(lián)。具體來說,網(wǎng)絡計算和存儲提供商107可包括對應于通信網(wǎng)絡108上的節(jié)點的許多存在點(“POP”)位置134、142、148。每個P0P134、142、148都包括網(wǎng)絡計算組件(NCC) 136、144、150,所述網(wǎng)絡計算組件用于通過通常稱為NCC的實例的許多虛擬機的實例來托管應用(諸如數(shù)據(jù)流應用)。相關領域技術人員應理解,NCC136U44、150可包括物理計算設備資源和軟件以提供虛擬機的多個實例或者動態(tài)促成虛擬機的實例的創(chuàng)建。這樣的創(chuàng)建可基于例如來自客戶端計算設備的特定請求,或者NCC可獨自開始動態(tài)創(chuàng)建虛擬機的實例。每個NCC P0P134、142、148也都包括由用于存儲用以傳遞并處理網(wǎng)絡或計算資源的任何類型的數(shù)據(jù)的許多存儲設備組成的存儲組件140、146、152,所述數(shù)據(jù)包括但不限于用戶數(shù)據(jù)、狀態(tài)信息、處理要求、歷史使用數(shù)據(jù)和來自內容提供商的資源,所述資源將由NCC136、144、150的實例處理并傳送到各種客戶端計算機等。NCC136、144、150和存儲組件140、146、152還可包括促進通信的額外軟件和/或硬件組件,包括但不限于,用于選擇支持請求的應用且/或提供信息到DNS名稱服務器以促進請求路由的虛擬機的實例的負載平衡或負載共享軟件/硬件組件。
[0031]在說明性實施方案中,NCC136、144、150和存儲組件140、146、152被認為是邏輯分組的,而不管組件或組件的部分是否物理上分開。例如,網(wǎng)絡計算和存儲提供商107可維護單獨的POP以提供NCC和存儲組件。另外,雖然NCC P0P134、142、148在圖1示出為邏輯上與網(wǎng)絡計算和存儲提供商107相關,但是NCC POP將以最佳地提供客戶端計算設備102的各種人口統(tǒng)計的方式來在整個通信網(wǎng)絡108上地理分布。另外,相關領域的技術人員應理解,網(wǎng)絡計算和存儲提供商107可與各種額外計算資源相關,例如用于管理內容和資源的額外的計算設備等。甚至進一步,相關領域技術人員應理解,網(wǎng)絡計算和存儲提供商107的組件和CDN服務提供商106的組件可由相同或不同實體來管理。
[0032]現(xiàn)參看圖2-6,將示出圖1的聯(lián)網(wǎng)計算環(huán)境100的各種組件之間的交互。特別說來,圖2-6示出通過網(wǎng)絡計算和存儲提供商107在客戶端計算設備102和內容提供商104之間交換內容的聯(lián)網(wǎng)計算環(huán)境100的各種組件之間的交互。然而,為了舉例的目的,已簡化了說明,使得未示出用以促進通信的許多組件。相關領域技術人員應理解,在不脫離本發(fā)明的精神和范圍的情況下,可使用此類組件,且可相應地發(fā)生額外的交互。
[0033]參看圖2,過程可始于生成并處理從客戶端計算設備102到網(wǎng)絡計算和存儲提供商107的瀏覽會話請求。說明性地,客戶端計算設備102可加載瀏覽器以響應于事件或用戶請求查看網(wǎng)絡內容。在加載瀏覽器之后,瀏覽器可被實施以請求新的瀏覽會話。從客戶端計算設備的用戶的觀點看來,新的瀏覽會話的請求對應于把請求傳送到一個或多個對應的內容提供商104的預期的請求。說明性地,該請求可作為瀏覽器加載(例如,對默認或“主頁”頁面的請求)的結果而自動生成,或可作為用戶跟蹤鏈接或把網(wǎng)絡地址輸入地址欄的結果而生成。如圖2示出,瀏覽會話請求首先被傳送到網(wǎng)絡計算和存儲提供商107。在說明性實施方案中,網(wǎng)絡計算和存儲提供商107利用注冊應用程序接口(“API”)以從客戶端計算設備102接受瀏覽會話請求。瀏覽會話請求可包括對應于請求的網(wǎng)絡資源的可呈任何形式的網(wǎng)絡地址信息,包括但不限于,互聯(lián)網(wǎng)協(xié)議(“IP”)地址、URL、媒體訪問控制(“MAC”)地址等。
[0034]在接收到瀏覽會話請求之后,網(wǎng)絡計算和存儲提供商107可選擇相關的網(wǎng)絡計算組件(以下稱為“NCC”)存在點(以下稱為“POP”)(例如,NCC POP142)以提供瀏覽會話請求。NCC POP的選擇可確定實例化的虛擬機可用的處理和網(wǎng)絡資源。在NCC POP實例中的處理和網(wǎng)絡資源的選擇和軟件的提供可至少部分地進行,以便優(yōu)化與內容提供商104和客戶端計算設備102的通信。
[0035]參看圖3,將描述生成并處理從網(wǎng)絡計算和存儲提供商107到內容提供商104的網(wǎng)絡資源的請求的說明性交互。如圖3示出,選擇的NCC P0P142可基于例如以上圖2描繪的說明性瀏覽會話請求的瀏覽會話請求來生成對應于一個或多個內容提供商的瀏覽會話。說明性地,實例化新的瀏覽會話實例可包括在NCC P0P142加載新的虛擬機實例和/或瀏覽器實例;預留或分配設備存儲器、存儲或緩存空間、處理器時間、網(wǎng)絡帶寬或新的瀏覽會話的其它計算或網(wǎng)絡資源。
[0036]在初始化新的瀏覽會話實例之后,NCC P0P142可基于瀏覽會話請求中包括的網(wǎng)絡地址把網(wǎng)絡資源的請求提供到內容提供商104。例如,瀏覽會話請求可包括網(wǎng)頁的URL,例如“http://www.xyzsite.com/default.htm'NCC P0P142可通過與網(wǎng)絡計算和存儲提供商(未示出)相關的DNS解析程序把URL解析到IP地址,且可在解析的IP地址處從內容提供商104請求網(wǎng)頁。在各種實施方案中,可從內容提供商、內容傳遞網(wǎng)絡(以下稱為“CDN”)服務器或與網(wǎng)絡計算和存儲提供商107相關的緩存的任何組合檢索網(wǎng)絡資源。例如,網(wǎng)絡計算和存儲提供商可檢查資源是存儲在本地緩存中還是存儲在與網(wǎng)絡計算和存儲提供商107相關的另一服務器或服務提供商中。如果網(wǎng)絡資源存儲在本地或相關位置中,那么NCCPOP142可從本地或相關位置而不是從第三方內容提供商104或⑶N服務提供商106檢索網(wǎng)絡資源。說明性地,NCC POP142可提供瀏覽會話請求中包括的任何數(shù)量的網(wǎng)絡資源的請求,且可從任何數(shù)量的不同來源順序地或并行地獲得這些網(wǎng)絡資源。
[0037]如圖3示出,內容提供商104從NCC P0P142接收資源請求并相應地處理所述請求。在一個實施方案中,內容提供商104處理資源請求,如同所述資源請求最初由客戶端計算設備102提供一樣。例如,內容提供商104可根據(jù)發(fā)出請求的客戶端計算設備102的要求來選擇內容類型、內容排序或內容版本。在另一實施方案中,內容提供商104可具有提供與NCC P0P142相關的信息以用于提供請求的內容(例如,處理資源或網(wǎng)絡帶寬的可用量)的信息。
[0038]在從內容提供商104 (或內容提供商指定的其它來源)獲得請求的網(wǎng)絡資源之后,NCC P0P142可處理網(wǎng)絡資源以提取嵌入式資源識別符并收集確定遠程會話瀏覽配置的信息。例如,網(wǎng)絡資源(諸如網(wǎng)頁)可包括嵌入式CSS樣式信息和Javascript以及額外資源(例如文本、圖像、視頻、音頻、動畫、可執(zhí)行代碼和其它HTML、CSS和Javascript文件)的嵌入式資源識別符。在提取嵌入式資源識別符的過程中,NCC P0P142可收集關于處理的網(wǎng)絡資源的信息供后來用于對遠程會話瀏覽配置的確定,如下文參看圖4討論。
[0039]參看圖4,公開了生成并處理對應于從網(wǎng)絡計算和存儲提供商到內容提供商和內容傳遞網(wǎng)絡的一個或多個嵌入式資源的一個或多個請求的說明性交互。如圖4示出,選擇的NCC P0P142可把資源請求提供到一個或多個內容來源(諸如,內容提供商104和⑶NP0P116)。資源請求可對應于基于如上文圖3描述的從請求的網(wǎng)絡資源(例如,網(wǎng)頁)提取的一個或多個嵌入式資源識別符的嵌入式資源。在各種實施方案中,可從內容提供商、CDN服務器或與網(wǎng)絡計算和存儲提供商107相關的緩存的任何組合檢索嵌入式資源。例如,網(wǎng)絡計算和存儲提供商可檢查嵌入式資源是存儲在本地緩存中還是存儲在與網(wǎng)絡計算和存儲提供商107相關的另一服務器或服務提供商中。如果嵌入式資源存儲在本地或相關位置中,那么NCC P0P142可從本地或相關位置而不是從第三方內容提供商或⑶N檢索嵌入式資源。說明性地,NCC P0P142可提供網(wǎng)絡資源參考的任何數(shù)量的嵌入式資源的請求,且可從任何數(shù)量的不同來源順序或并行地獲得所述嵌入式資源。在獲得請求的資源之后,NCCP0P142可處理資源和請求的內容以確定處理和把內容傳遞到客戶端計算設備102的遠程會話瀏覽配置。
[0040]參看圖5,公開了生成并處理處理結果和在網(wǎng)絡計算和存儲提供商和客戶端計算設備之間的用戶交互數(shù)據(jù)的說明性交互。如之前所描述,在一個實施方案中,實例化的網(wǎng)絡計算組件和客戶端計算設備102上的相應瀏覽器可交換關于在實例化的網(wǎng)絡計算組件和客戶端計算設備上分配并處理請求的資源的瀏覽器的會話信息。如圖5示出,選擇的NCCP0P142可通過網(wǎng)絡108把初始處理結果提供到客戶端計算設備102。初始處理結果可對應于請求的網(wǎng)絡內容(諸如,網(wǎng)頁)以及NCC P0P142根據(jù)如上文圖4描述的選擇的遠程會話瀏覽配置處理的相關嵌入式資源。NCC P0P142也對哪些額外的過程將在NCCP0P142、在客戶端計算設備102或兩者上進行做出確定。在接收到初始處理結果和過程的分配之后,客戶端計算設備102可對初始處理結果執(zhí)行如選擇的遠程會話瀏覽配置所需的任何剩余的處理動作,且可在瀏覽器的內容顯示區(qū)顯示完全處理的內容??蛻舳擞嬎阍O備102可在本地處理與本地接口組件或內容元素的任何本地用戶交互,且可把需要遠程處理的用戶交互提供到網(wǎng)絡計算和存儲提供商107。網(wǎng)絡計算和存儲提供商107可響應于來自客戶端計算設備的內容或遠程用戶交互數(shù)據(jù)的變化而把已更新的處理結果提供到客戶端計算設備。
[0041]參看圖6,公開了示出生成并處理從客戶端計算設備到網(wǎng)絡計算和存儲提供商的額外的新的瀏覽會話請求的圖1的內容傳遞環(huán)境的框圖。如圖6示出,第二新的瀏覽會話請求可通過網(wǎng)絡108從客戶端計算設備102發(fā)送到網(wǎng)絡計算和存儲提供商107。在說明性實施方案中,網(wǎng)絡計算和存儲提供商107利用注冊API來從客戶端計算設備102接受瀏覽會話請求。
[0042]額外的瀏覽會話請求可由客戶端計算設備102響應于以下操作而生成:用戶打開具有新的內容顯示區(qū)的新的瀏覽器窗口、在現(xiàn)有瀏覽器窗口打開新的內容顯示區(qū)(例如,在瀏覽器中打開新的標簽)、在現(xiàn)有內容顯示區(qū)中請求新的網(wǎng)絡內容(例如,跟蹤新的網(wǎng)絡資源的鏈接或把新的網(wǎng)絡地址輸入瀏覽器)或任何其它用戶交互。例如,瀏覽對應于第一瀏覽會話實例的第一網(wǎng)頁的用戶可跟蹤打開新的標簽或瀏覽器窗口的鏈接以查看第二網(wǎng)頁。在一個實施方案中,獲得并處理與第二網(wǎng)頁相關的內容的任何必要步驟可由當前實例化的網(wǎng)絡計算組件來執(zhí)行,其中瀏覽器可處理兩個資源請求的處理。在另一實施方案中,客戶端計算設備102請求可被處理為網(wǎng)絡計算和存儲提供商107的新的瀏覽會話請求,包括第二網(wǎng)頁的網(wǎng)絡地址。在這個實施方案中,客戶端計算設備上的瀏覽器可能不具體請求單獨的瀏覽會話,且在客戶端計算設備102上與瀏覽器的用戶交互可看做是所述瀏覽會話的部分。如上文相對于圖2和圖3描述,網(wǎng)絡計算和存儲提供商107可使用于獲得并處理與第二網(wǎng)頁相關的內容的網(wǎng)絡計算組件實例化。在其它實施方案中,新的瀏覽會話請求可由客戶端計算設備102來生成,客戶端計算設備102對應于網(wǎng)絡資源的部分(例如,網(wǎng)頁的幀)、個別網(wǎng)絡資源,或嵌入式資源自身、一組內容或個別網(wǎng)絡資源中包括的數(shù)據(jù)對象。
[0043]說明性地,額外的瀏覽會話請求可包括任何數(shù)量的數(shù)據(jù)或信息片,包括但不限于,與用戶相關的信息、與客戶端計算設備102相關的信息(例如,硬件或軟件信息、設備物理或邏輯位置等)、與網(wǎng)絡108相關的信息、用戶或瀏覽器偏好(例如,請求的遠程會話瀏覽協(xié)議、偏好列表、決策樹或其它信息)、與網(wǎng)絡計算和存儲提供商107相關的信息、與一個或多個請求的網(wǎng)絡內容片相關的信息(例如,網(wǎng)絡資源的網(wǎng)絡地址)等。請求的內容可包括任何方式的數(shù)字內容,包括網(wǎng)頁或其它文檔、文本、圖像、視頻、音頻、可執(zhí)行的腳本或代碼,或任何其它類型的數(shù)字資源。
[0044]在接收到瀏覽會話請求之后,網(wǎng)絡計算和存儲提供商107可選擇相關的網(wǎng)絡計算組件(諸如NCC P0P142)以提供瀏覽會話請求。如上文參看圖2討論,網(wǎng)絡計算和存儲提供商107可基于任何數(shù)量的因素來選擇NCC POP以提供瀏覽會話請求,所述因素包括但不限于可用NCC POP資源(例如,可用存儲器、處理器負載、網(wǎng)絡負載等)、在NCC POP提供瀏覽會話請求的財務成本、相對于客戶端計算設備102、內容提供商112或⑶N POPl 16的NCCPOP位置、NCC POP緩存狀態(tài)(例如,請求的資源是否已存儲在NCC POP緩存中)等。在一個實施方案中,網(wǎng)絡計算和存儲提供商107可選擇許多NCC POP以提供瀏覽會話請求。說明性地,雖然當選擇NCC P0P142時為達說明的目的描繪了網(wǎng)絡計算和存儲提供商107,但是網(wǎng)絡計算和存儲提供商107可選擇任何現(xiàn)有的NCC POP來提供瀏覽會話請求。例如,單個客戶端計算設備102可同時或順序地把三個不同瀏覽會話請求提供到對應于不同網(wǎng)絡資源的網(wǎng)絡計算和存儲提供商107。網(wǎng)絡計算和存儲提供商107可為每個瀏覽會話請求選擇不同的NCC POP、為所有這三個瀏覽會話請求選擇相同的NCC POP,或它們的任何組合。如上文所討論,決定是否選擇與用于先前或同時瀏覽會話請求的NCC POP不同的NCC POP可在可用系統(tǒng)資源基礎上進行,隨機進行,或根據(jù)如上文所討論并相對于圖2所描述的任何其它因素進行。
[0045]圖7是示出說明性瀏覽器界面和瀏覽會話內容的顯示的用戶界面圖。如上文參看圖5描述,瀏覽器700可具有內容顯示區(qū)702,以及一個或多個本地接口組件。所述本地接口組件可包括工具欄、菜單、按鈕、地址欄、滾動條、窗口大小調整控件或任何其它用戶界面控件。說明性地,本地接口組件可顯示為與內容顯示區(qū)分開或可覆蓋或嵌入內容顯示區(qū)中。
[0046]與本地接口組件的交互可被視為本地用戶交互或遠程用戶交互,這取決于交互所需的處理和遠程會話瀏覽配置。例如,在瀏覽器菜單中選擇偏好選項可被瀏覽器完全處理為本地用戶交互??稍诒镜貓?zhí)行顯示菜單、提供關于選擇的視覺反饋、顯示偏好窗口和處理對瀏覽器偏好所做的改變所需的處理。如上文所討論,與把用戶交互數(shù)據(jù)發(fā)送到NCCP0P142進行處理相比,在本地處理用戶交互可在瀏覽器提供更大的響應。另舉一例,當使用指定對NCC P0P142的廣泛處理的遠程會話瀏覽配置(例如,使用例如RDP的遠程會話通信協(xié)議的遠程會話瀏覽配置)時,在瀏覽器工具欄中選擇內容刷新按鈕可被處理為本地用戶交互和遠程用戶交互。對應于按鈕選擇來提供界面反饋所需的有限的處理可在客戶端計算設備102處理以提供界面響應的外觀,而可能需要處理瀏覽器的內容顯示區(qū)中顯示的網(wǎng)絡內容的刷新命令可作為用戶交互數(shù)據(jù)發(fā)送到NCC P0P142進行處理。然后,NCCP0P142可把對應于已刷新的網(wǎng)絡內容的更新處理結果傳送回客戶端計算設備102以進行顯示。
[0047]圖8是示出作為一系列處理子系統(tǒng)800的說明性瀏覽器內容處理動作的圖。在許多實施方案中,瀏覽器可處理一系列處理動作中的多組內容(例如,例如網(wǎng)頁的網(wǎng)絡資源和相關嵌入式資源)。說明性地,且如上文參看圖3-5描述,遠程會話瀏覽配置可指定網(wǎng)絡計算和存儲提供商(例如,NCC POP)上執(zhí)行的處理動作和客戶端計算設備102上執(zhí)行的處理動作之間的拆分。該拆分可指定將由NCC POP和客戶端計算設備102中的每一個執(zhí)行的一些處理動作,或者可把所有處理動作分配到單個設備或組件。例如,NCC POP可在瀏覽會話實例執(zhí)行所有這些各種處理動作,并把完全處理的RDP處理結果發(fā)送到客戶端計算設備102進行位圖(bitmap)組裝和顯示。任何數(shù)量的不同遠程會話瀏覽配置可被在NCC POP上運行的一個或多個瀏覽會話實例使用。
[0048]相關領域的技術人員應理解,本文示出的子系統(tǒng)是為了說明的目的而描述,而不旨在描述瀏覽器子系統(tǒng)的必要的順序或明確的列表。各種瀏覽器軟件組件可實施額外的或比本文示出少的瀏覽器子系統(tǒng),且可以任何數(shù)量的不同方式來排序子系統(tǒng)或對應的處理動作。雖然本文描繪的處理子系統(tǒng)800為達說明的目的而用于處理網(wǎng)頁或其它網(wǎng)頁內容,但是相關領域的技術人員應理解,可以類似方式來分解對其它文件類型或網(wǎng)絡資源的處理。例如,相關領域的技術人員應理解,可開發(fā)類似模式來處理圖像、視頻、音頻、數(shù)據(jù)庫信息、三維(3d)設計數(shù)據(jù)或本領域已知的任何其它文件格式或數(shù)據(jù)類型。也可開發(fā)類似模式用于任何數(shù)量的設備操作系統(tǒng)或軟件框架處理操作,例如調度、存儲器或文件管理、系統(tǒng)資源管理、過程或服務執(zhí)行或管理等。另外,雖然本文為達舉例的目的討論了 HTML協(xié)議和RDP遠程會話通信協(xié)議,但是相關領域的技術人員應理解,遠程會話瀏覽配置可實施任何數(shù)量的遠程通信協(xié)議來進行任何數(shù)量的指定處理動作,且遠程會話瀏覽配置可制定以執(zhí)行下文在客戶端計算設備102和網(wǎng)絡計算和存儲提供商107的任何組合識別的動作的任何部分或組合。
[0049]說明性地,處理并顯示網(wǎng)絡內容中涉及的第一處理子系統(tǒng)是網(wǎng)絡子系統(tǒng)802。說明性地,網(wǎng)絡子系統(tǒng)802可負責瀏覽器和內容提供商之間的所有通信,包括網(wǎng)頁內容的本地緩存。網(wǎng)絡子系統(tǒng)通常由用戶網(wǎng)絡的性能限制。在網(wǎng)絡子系統(tǒng)802拆分處理動作的遠程會話瀏覽配置可包括利用HTML遠程會話通信協(xié)議的遠程會話瀏覽配置,其中一個或多個緩存或資源檢索動作在NCC POP上執(zhí)行,但是在客戶端計算設備上執(zhí)行內容的分析和處理。
[0050]由于網(wǎng)絡資源(諸如HTML文檔)是從服務器下載的,所以它們可被傳遞到HTML子系統(tǒng)804,HTML子系統(tǒng)804分析文檔、在網(wǎng)絡子系統(tǒng)中開始額外的下載,并創(chuàng)建文檔的結構表示?,F(xiàn)代瀏覽器也可包含用于XHTML、XML和SVG文檔的相關子系統(tǒng)。在HTML子系統(tǒng)804拆分處理動作的遠程會話瀏覽配置可包括利用HTML遠程會話通信協(xié)議的遠程會話瀏覽配置,其中在NCC POP上處理初始HTML頁面以便提取嵌入式資源識別符,但是在客戶端計算設備上執(zhí)行對內容的額外的分析和處理。在另一實施方案中,在HTML子系統(tǒng)804拆分處理動作的遠程會話瀏覽配置可執(zhí)行初始處理來創(chuàng)建HTML文檔的結構表示,并把包括結構表示的處理結果和相關嵌入式資源提供到客戶端計算設備進行處理。
[0051]當遇到CSS時,不管是在HTML文檔內還是嵌入式CSS文檔內,它可被傳遞到CSS子系統(tǒng)806以分析樣式信息并創(chuàng)建可供以后參考的結構表示。說明性地,在CSS子系統(tǒng)806拆分處理動作的遠程會話瀏覽配置可構建包括CSS結構表示和HTML結構表示的處理結果,并把處理結果和相關嵌入式資源提供到客戶端計算設備進行處理。
[0052]HTML文檔通常包含元數(shù)據(jù),例如,文檔標題中描述的信息或應用于元素的屬性。集合子系統(tǒng)808可負責存儲并訪問該元數(shù)據(jù)。在集合子系統(tǒng)808拆分處理動作的遠程會話瀏覽配置可構建包括經(jīng)處理的元數(shù)據(jù)以及上文討論的任何其它結構表示的處理結果,并把處理結果和相關嵌入式資源提供到客戶端計算設備進行處理。
[0053]當遇到Javascript時,它可被直接傳遞到負責執(zhí)行腳本的JavaScript子系統(tǒng)810。多年來,已對Javascript子系統(tǒng)810進行全面檢查,且該子系統(tǒng)可為本領域中最為人廣知的瀏覽器子系統(tǒng)中的一個。在Javascript子系統(tǒng)810拆分處理動作的遠程會話瀏覽配置可構建包括一個或多個Javascript腳本的內部表示(包括但不限于狀態(tài)數(shù)據(jù)或為本機形式或中間形式的腳本的表示,以及上文討論的任何其它處理結構或數(shù)據(jù))的處理結果,且把處理結果和相關嵌入式資源提供到客戶端計算設備進行處理。
[0054]因為許多JavaScript引擎不直接集成到瀏覽器,所以在瀏覽器和腳本引擎之間可能有包括編組子系統(tǒng)812的通信層。通過所述通信層傳遞信息可通常被稱為編組。在編組子系統(tǒng)812拆分處理動作的遠程會話瀏覽配置可構建包括編組數(shù)據(jù)以及任何其它處理結構、腳本或上文討論的數(shù)據(jù)的處理結果,并把處理結果和相關嵌入式資源提供到客戶端計算設備進行處理。
[0055]在一些實施方案中,JavaScript通過文檔對象模型(Document Object Model)API與底層網(wǎng)絡資源(諸如,例如Web文檔)交互。這些API可通過本機對象模型子系統(tǒng)814來提供,本機對象模型子系統(tǒng)814知道如何訪問并操縱文檔并且是腳本引擎和瀏覽器之間的主要交互點。說明性地,在本機對象模型子系統(tǒng)814拆分處理動作的遠程會話瀏覽配置可構建包括本機對象模型狀態(tài)數(shù)據(jù)或API調用以及任何其它處理結構、腳本,或上文討論的數(shù)據(jù)的處理結果,并把處理結果和任何其它相關嵌入式資源提供到客戶端計算設備進行處理。
[0056]一旦構建文檔,瀏覽器就可能需要在它可被顯示給用戶之前應用樣式信息。格式化子系統(tǒng)816采用HTML文檔并應用樣式。說明性地,在格式化子系統(tǒng)816拆分處理動作的遠程會話瀏覽配置可構建包括具有應用的樣式的HTML表示以及任何其它處理狀態(tài)數(shù)據(jù)、API調用、結構、腳本,或上文討論的數(shù)據(jù)的處理結果,并把處理結果和任何其它相關嵌入式資源提供到客戶端計算設備進行處理。
[0057]在一個實施方案中,CSS是基于方塊的布局系統(tǒng)。在文檔被樣式化之后,在方塊建筑子系統(tǒng)818的下一步驟可能是構建將顯示給用戶的矩形塊。這個過程可確定像方塊大小的事情且可與下一階段、布局緊密集成。在方塊建筑子系統(tǒng)818拆分處理動作的遠程會話瀏覽配置可構建包括方塊信息以及任何其它處理狀態(tài)數(shù)據(jù)、API調用、結構、腳本或上文討論的數(shù)據(jù)的處理結果,并把處理結果和任何其它相關嵌入式資源提供到客戶端計算設備進行處理。
[0058]在瀏覽器樣式化內容并構建方塊之后,就可通過布局內容的過程。布局子系統(tǒng)820負責這個算法復雜的過程。說明性地,在布局子系統(tǒng)820拆分處理動作的遠程會話瀏覽配置可處理各種狀態(tài)數(shù)據(jù)、API調用、結構、腳本,或上文討論的數(shù)據(jù)以構建包括客戶端計算設備的布局信息的處理結果。說明性地,NCC POP可使用與客戶端計算設備或瀏覽器(例如,如在初始瀏覽會話請求中提供)相關的各種數(shù)據(jù)或設置來生成客戶端計算設備的合適的布局。例如,移動設備可向NCC POP提供屏幕分辨率和顯示模式。NCC POP可使布局計算基于這個屏幕分辨率和顯示模式以生成對應于適于在移動設備上運行的瀏覽器的內容表示的處理結果。說明性地,在各種實施方案中,由NCC POP實施的任何其它子系統(tǒng)可把與客戶端計算設備或瀏覽器相關的數(shù)據(jù)用于生成客戶端的處理結果。
[0059]過程的最后階段可在顯示子系統(tǒng)822內部發(fā)生,其中最終內容顯示給用戶。這個過程通常被稱為繪圖。在網(wǎng)絡子系統(tǒng)802拆分處理動作的遠程會話瀏覽配置可包括利用RDP遠程會話通信協(xié)議的遠程會話瀏覽配置,其中幾乎所有處理都在NCC POP執(zhí)行,且包括位圖數(shù)據(jù)和低級別接口數(shù)據(jù)的處理結果被傳遞到客戶端計算設備進行顯示。
[0060]圖9是說明圖1的網(wǎng)絡計算和存儲提供商107實施的新的瀏覽會話程序900的流程圖。新的瀏覽會話程序900始于框902。在框904,網(wǎng)絡計算和存儲提供商107從客戶端計算設備102接收新的瀏覽會話請求。如之前所描述,客戶端計算設備102可加載瀏覽器以響應于事件或用戶請求查看網(wǎng)絡內容。在加載瀏覽器之后,瀏覽器可被實施以請求新的瀏覽會話。從客戶端計算設備的用戶的觀點看來,新的瀏覽會話的請求對應于把請求傳送到一個或多個對應的內容提供商104的預期的請求。說明性地,該請求可作為瀏覽器加載(例如,對默認或“主頁”頁面的請求)的結果而自動生成,或可作為用戶跟蹤鏈接或把網(wǎng)絡地址輸入地址欄的結果而生成。這個瀏覽會話請求可包括一個或多個地址或對各種網(wǎng)絡資源或客戶端計算設備102請求的其它內容的參考。在說明性實施方案中,瀏覽會話請求是根據(jù)API來傳送的。
[0061]在框906,網(wǎng)絡計算和存儲提供商107可選擇相關NCC POP以基于瀏覽會話請求實例化新的瀏覽會話。如上文參看圖1所討論,網(wǎng)絡計算和存儲提供商107可包括在任何數(shù)量的物理或邏輯位置上分布的任何數(shù)量的NCC POP。網(wǎng)絡計算和存儲提供商107可基于任何數(shù)量的因素來選擇NCC POP以提供瀏覽會話請求,所述因素包括但不限于可用NCC POP資源(例如,可用存儲器、處理器負載、網(wǎng)絡負載等)、在NCC POP提供瀏覽會話請求的財務成本、相對于客戶端計算設備102、內容提供商104或⑶N P0P116的NCC POP位置、NCC POP緩存狀態(tài)(例如,請求的資源是否已存儲在NCC POP緩存中)等。
[0062]在一個實施方案中,網(wǎng)絡計算和存儲提供商107可選擇許多NCCPOP來提供瀏覽會話請求。例如,網(wǎng)絡計算和存儲提供商107可選擇在網(wǎng)絡中具有不同邏輯位置的兩個NCCPOP。每個NCC POP可代表客戶端計算設備102來獨立請求并處理網(wǎng)絡內容,且客戶端計算設備102可從第一 NCC POP接受數(shù)據(jù)并返回處理結果。在被網(wǎng)絡計算和存儲提供商107選擇之后,NCC P0P142可獲得瀏覽會話請求。在一個實施方案中,NCC P0P142可通過網(wǎng)絡計算和存儲提供商107的組件把瀏覽會話請求轉發(fā)給它。在另一實施方案中,NCC P0P142或客戶端計算設備102可接收連接信息,從而允許在NCC P0P142和客戶端計算設備102之間建立直接通信。說明性地,NCC P0P142可具有最初提供給網(wǎng)絡計算和存儲提供商107的瀏覽會話請求;可具有信息的子集(例如,只有請求的內容的網(wǎng)絡地址);或可具有原始瀏覽會話請求中未包括的額外的信息。
[0063]在選擇NCC P0P142之后,網(wǎng)絡計算和存儲提供商107可使NCCP0P142實例化新的瀏覽會話。說明性地,實例化新的瀏覽會話實例可包括在NCC P0P142處加載新的虛擬機實例和/或瀏覽器實例;預留或分配設備存儲器、存儲或緩存空間、處理器時間、網(wǎng)絡帶寬或新的瀏覽會話的其它計算或網(wǎng)絡資源。說明性地,新的瀏覽會話實例和/或瀏覽器實例的一個或多個特點可基于瀏覽會話請求中包括的客戶端計算設備102信息。例如,瀏覽會話請求可包括設備類型或瀏覽器類型、設備屏幕分辨率、瀏覽器顯示區(qū)或定義客戶端計算設備102或瀏覽器的顯示偏好或能力的其它信息。NCC P0P142可因此實例化具有與客戶端計算設備102的能力相同或類似的能力的虛擬機實例和/或瀏覽器實例。說明性地,維護具有與客戶端計算設備102的能力相同或類似的能力的虛擬機實例和/或瀏覽器可允許NCCP0P142根據(jù)特定客戶端計算設備102上顯示器的合適的尺寸和布局來處理網(wǎng)絡內容。
[0064]在一些實施方案中,除了實例化新的瀏覽會話之外或者作為實例化新的瀏覽會話的替代,NCC P0P142還可使用現(xiàn)有的虛擬機實例和/或瀏覽器實例。例如,在選擇NCCP0P142之后,網(wǎng)絡計算和存儲提供商107可使NCC P0P142把現(xiàn)有瀏覽器實例和/或虛擬機實例(諸如,先前在NCC P0P142處實例化的一個或多個實例)與新的瀏覽會話請求結合。說明性地,現(xiàn)有瀏覽器會話和/或虛擬機實例可對應于另一瀏覽會話、遠程應用會話,或與用戶或客戶端計算設備102相關的其它遠程過程,或可為來自不相關的瀏覽會話或遠程過程的之前實例化的軟件實例。在其它實施方案中,NCC P0P142可實例化新的瀏覽器或現(xiàn)有虛擬機實例中的其它應用過程,或可用任何數(shù)量的其它方式來組合之前實例化的軟件過程和新實例化的軟件過程的使用。在更進一步的實施方案中,網(wǎng)絡計算和存儲提供商或NCCP0P142可基于單個瀏覽會話請求來實例化任何數(shù)量的新的虛擬機實例和/或瀏覽器實例(或使用現(xiàn)有實例化的實例)。
[0065]在框908,網(wǎng)絡計算和存儲提供商107可基于瀏覽會話請求中包括的網(wǎng)絡地址把一個或多個網(wǎng)絡資源的請求提供到內容提供商或CDN服務提供商。在各種實施方案中,一個或多個網(wǎng)絡資源可另外或替代地從NCC P0P142本地的緩存檢索或者與網(wǎng)絡計算和存儲提供商107相關。本領域技術人員應理解,在其它實施方案的情況下,鏈接或網(wǎng)絡地址可對應于存儲在數(shù)字文件柜或其它網(wǎng)絡存儲位置或在與網(wǎng)絡計算和存儲提供商107或客戶端計算設備102相關的緩存組件的文檔或文件。在一些實施方案中,除了網(wǎng)絡地址之外或作為網(wǎng)絡地址的替代,新的會話請求還可包括文檔或文件。在框910,網(wǎng)絡計算和存儲提供商107獲得一個或多個網(wǎng)絡資源。在獲得請求的網(wǎng)絡資源之后,NCC POP142可處理網(wǎng)絡資源以提取嵌入式資源識別符。
[0066]在框912,網(wǎng)絡計算和存儲提供商107可把資源請求提供到例如內容提供商、CDN服務提供商和緩存的一個或多個內容來源。資源請求可對應于基于如上文在框910描述的從一個或多個網(wǎng)絡資源提取的一個或多個嵌入式資源識別符的嵌入式資源。在框914,網(wǎng)絡計算和存儲提供商107可從任何數(shù)量的不同來源順序或并行地獲得所述嵌入式資源。
[0067]在框916,網(wǎng)絡計算和存儲提供商107可處理一個或多個網(wǎng)絡資源和相關嵌入式資源以確定處理和把內容傳遞到客戶端計算設備102的遠程會話瀏覽配置。遠程會話瀏覽配置可包括允許在客戶端和遠程服務器之間交換數(shù)據(jù)和用戶交互或請求的任何所有權或公共遠程協(xié)議。遠程會話瀏覽配置可說明性地包括遠程會話通信協(xié)議和把處理(或未處理)內容提供到客戶端計算設備以在瀏覽器的內容顯示區(qū)進行顯示的處理模式。
[0068]說明性地,遠程會話瀏覽配置可定義或指定遠程會話通信協(xié)議,包括但不限于,網(wǎng)絡協(xié)議、信令模式、傳輸機制,或在網(wǎng)絡計算和存儲提供商和客戶端計算設備之間交換狀態(tài)數(shù)據(jù)、用戶交互,和其它數(shù)據(jù)和內容的封裝格式。本領域已知的遠程會話通信協(xié)議的實例包括遠程桌面協(xié)議(RDP)、X_窗口協(xié)議、虛擬網(wǎng)絡計算(VNC)協(xié)議、遠程幀緩沖協(xié)議、HTML等。例如,RDP說明性地指定把客戶端輸入(例如,鼠標移動、鍵盤輸入等)編碼成協(xié)議數(shù)據(jù)單元以提供給遠程計算設備的許多處理機制,和對應的把位圖更新和低級別接口信息發(fā)送回客戶端設備的機制。另舉一例,HTML協(xié)議說明性地提供用于從服務器向客戶端提供定義接口信息并包含資源參考的文件的機制,和對應的使客戶端計算設備向服務器提供額外的文件和資源的請求的機制。在一個實施方案中,NCC P0P142可在確定遠程會話通信協(xié)議之后向客戶端計算設備102提供初始通信。這個初始通信可允許客戶端計算設備102用選擇的遠程會話通信協(xié)議準備接收通信,且在像HTTP的拉遠程會話通信協(xié)議的情況下,可使客戶端計算設備把初始資源請求發(fā)送到在NCC P0P142上運行的瀏覽會話實例。
[0069]每個遠程會話瀏覽配置可另外定義網(wǎng)絡計算和存儲服務(例如,NCC P0P142)和客戶端計算設備(例如,客戶端計算設備102)之間的處理動作的拆分。在一個實施方案中,處理動作的特定拆分可基于特定遠程會話通信協(xié)議或由特定遠程會話通信協(xié)議授權。在另一實施方案中,遠程會話通信協(xié)議可取決于協(xié)議的實施或配置而允許處理動作的若干不同拆分。為了說明的目的,許多網(wǎng)絡內容片(例如,網(wǎng)頁、視頻、Flash文檔)在顯示于計算設備上之前可能需要各種處理動作。例如,可分析網(wǎng)頁以處理各種HTML布局信息和對相關資源或例如CSS樣式表和Javascript的嵌入式內容,以及例如圖像、視頻、音頻等的嵌入的內容對象的參考。HTML和每個參考的對象或一段代碼將通常在可構建對應于網(wǎng)頁的代表對象模型之前被分析和處理。這個對象模型然后可被進一步處理以在客戶端計算設備102的瀏覽器的內容顯示區(qū)布局和顯示。下文參看圖8更詳細地描述了說明性瀏覽器處理動作。本領域技術人員應理解,在其它實施方案或應用的情況下,可能需要各種其它處理動作。[0070]遠程會話瀏覽配置可指定顯示在例如NCC P0P142的遠程計算設備而不是在客戶端計算設備102執(zhí)行的網(wǎng)絡內容片所需的各種處理動作。部分(或完全)在網(wǎng)絡計算和存儲提供商處理的網(wǎng)絡內容可被稱為處理結果。如下文所討論,處理動作的拆分可與用于在NCC P0P142和客戶端計算設備102之間交換數(shù)據(jù)和客戶端輸入的遠程會話通信協(xié)議相關或連接到所述遠程會話通信協(xié)議。
[0071]例如,例如RDP的把包括低級別接口信息和位圖的處理結果傳送到客戶端計算設備142進行顯示的遠程會話通信協(xié)議可與指定在NCC P0P142執(zhí)行所有或幾乎所有必需的內容處理動作的遠程會話瀏覽配置相關。當使用RDP時,NCC P0P142可例如運行NCCP0P142的瀏覽器的完整實例且把包括對應于顯示的內容的表示的位圖更新的處理結果傳送到客戶端計算設備102。在這個實例中,可能只需要客戶端計算設備102組裝傳送的位圖更新以在瀏覽器的內容顯示區(qū)顯示,且客戶端計算設備102可能不執(zhí)行處理顯示說明性網(wǎng)絡內容片所涉及的實際HTML、Javascript或數(shù)據(jù)對象中的任何一個。另舉一例,使用例如HTML的遠程會話通信協(xié)議的遠程會話瀏覽配置可傳送呈很大程度上未處理形式的網(wǎng)絡內容??蛻舳擞嬎阍O備102因此可執(zhí)行顯示網(wǎng)絡內容所需的所有處理動作,而NCC P0P142執(zhí)行極少處理或不執(zhí)行處理。
[0072]NCC P0P142可使它的確定遠程會話瀏覽配置基于任何數(shù)量的因素,所述因素包括但不限于請求的資源、內容提供商104或CDN服務提供商106中一個或多個的一個或多個特點;內容地址或域名的一個或多個特點;客戶端計算設備102、瀏覽器或應用、用戶的一個或多個特點;NCC P0P142的一個或多個特點;或網(wǎng)絡或網(wǎng)絡連接的一個或多個特點等。請求的資源的特點可包括但不限于數(shù)據(jù)格式、內容類型、大小、處理要求、資源延遲要求、互動元素的數(shù)目或類型、安全性風險、相關用戶偏好、網(wǎng)絡地址、網(wǎng)絡域、相關內容提供商等。內容提供商104、⑶N服務提供商106、計算設備102或NCC P0P142的特點可包括但不限于處理能力、存儲器、存儲、網(wǎng)絡連接(例如,可用帶寬或延遲)、物理或邏輯位置、預測的穩(wěn)定性或故障風險、軟件或硬件配置文檔、可用資源(例如,可用存儲器或處理,或同時打開的軟件應用的數(shù)量)等。NCC P0P142還可認為感知的安全威脅或風險與內容或域名片、客戶端計算設備或內容提供商的偏好、計算或網(wǎng)絡資源成本(例如,處理或帶寬的財務成本、資源使用情況等)、預定偏好或選擇信息、特定遠程會話瀏覽配置所需的任何額外的處理開銷、緩存狀態(tài)(例如,特定資源是在NCC P0P142緩存、在客戶端計算設備102緩存,還是在與網(wǎng)絡計算和存儲提供商相關的其它網(wǎng)絡存儲緩存)、檢索請求的網(wǎng)絡內容所需的預測延時或時間、優(yōu)選內容提供商或與內容提供商的特定遠程會話瀏覽配置或服務水平的協(xié)議、由相同的用戶用于另一(或當前)瀏覽會話的遠程會話瀏覽配置,或任何其它因素相關。
[0073]在一些實施方案中,NCC P0P142可使確定遠程會話瀏覽配置基于過去的行為或做法。例如,當資源被相同(或可能不同)用戶請求時,過去已確定了特定資源的遠程瀏覽會話配置的NCC P0P142可自動選擇相同的遠程瀏覽會話配置。另舉一例,具有頻繁訪問網(wǎng)站的歷史和廣泛處理要求的用戶可被自動分配有在NCC P0P142執(zhí)行大多數(shù)處理的遠程會話瀏覽配置。在其它實施方案中,NCC P0P142可使確定遠程瀏覽會話配置基于對未來行為的預測。例如,NCC P0P142可使它的確定特定資源的遠程瀏覽會話配置基于對過去確定特定網(wǎng)站、網(wǎng)絡域,或相關資源集的分析。歷史上已提供高質量視頻網(wǎng)頁的內容提供商可與強調在客戶端計算設備102的視頻性能的遠程會話瀏覽配置相關。說明性地,過去歷史分析和未來預測可被認為是遠程會話瀏覽配置確定過程所基于的許多因素中的一個或多個,或者可為確定過程中限定性的。例如,一旦NCC P0P142確定特定內容提供商的遠程會話瀏覽配置,它就可跳過內容提供商提供的任何未來資源的遠程會話瀏覽配置確定過程。說明性地,NCC P0P142可在固定時間段之后或NCC P0P142已識別或確定內容提供商提供的內容的變化之后再確定將與內容提供商相關的遠程會話瀏覽配置。
[0074]在其它實施方案中,網(wǎng)絡資源、網(wǎng)站、網(wǎng)絡域、內容提供商或其它網(wǎng)絡實體可指定或請求把特定遠程瀏覽會話配置用于資源標簽、元數(shù)據(jù)或與NCC P0P142的其它通信。NCCP0P142可把請求視為限定性的,或可把請求視為將在確定過程中考慮的多個因素中的一個。
[0075]例如,使用例如RDP的遠程會話通信協(xié)議的遠程會話瀏覽配置可指定廣泛處理發(fā)生在網(wǎng)絡計算和存儲提供商107 (例如,NCC P0P142)而不是在客戶端計算設備102。遠程會話瀏覽配置因此可利用NCC P0P142的處理能力來當處理需要大量預處理的網(wǎng)絡內容(例如,具有定義頁面布局的大量CSS或Javascript信息的內容)時達成較低的延遲和演示延時。NCC P0P142因此可選擇在網(wǎng)絡計算和存儲提供商107執(zhí)行大量處理的遠程會話瀏覽配置并使用RDP或類似遠程會話通信協(xié)議來進行處理密集型內容的通信。相反,使用例如HTML的遠程會話通信協(xié)議的遠程會話瀏覽配置可在客戶端計算設備102而不是在網(wǎng)絡計算和存儲提供商107指定廣泛處理。當具有需要極少處理的簡單的網(wǎng)絡內容或在初始加載之后需要快速改變顯示內容的網(wǎng)絡內容時,遠程會話通信協(xié)議因此可達成較小延時和流暢的演示。例如,具有嵌入式視頻的網(wǎng)頁可更好地在本地執(zhí)行大多數(shù)處理并把HTML而不是RDP用作遠程會話通信協(xié)議。指定在網(wǎng)絡計算和存儲提供商107的廣泛處理的遠程會話瀏覽配置必須在NCC P0P142處理視頻并把屏幕更新(例如通過RDP)快速發(fā)送到客戶端計算設備102,這可能需要大量帶寬并造成瀏覽器中斷斷續(xù)續(xù)的播放,而指定本地處理的遠程會話瀏覽配置可把原始視頻信息直接提供到客戶端計算設備102進行顯示(例如通過HTML),從而允許客戶端緩存和更流暢地播放內容。
[0076]另舉一例,與具有極其有限的處理能力的客戶端計算設備102通信的NCC P0P142可選擇使用需要客戶端計算設備進行極少處理的遠程會話瀏覽配置,例如,使用RDP來傳送NCC P0P142處理的結果。相反,提供極交互式網(wǎng)頁的NCC P0P142可選擇使用允許客戶端計算設備102在本地處理用戶交互以保存界面響應的遠程會話瀏覽配置,例如,使用HTML來傳送基本上未處理的數(shù)據(jù)。又舉一例,NCC P0P142可使確定遠程會話瀏覽配置基于客戶端計算設備102提供的偏好。客戶端計算設備102可說明性地包括初始瀏覽會話請求或任何其它時間的遠程會話瀏覽配置的偏好。NCC POP142可把這些偏好用作任何其它因素或確定度量的替代或補充。說明性地,允許客戶端計算設備102設置或影響選擇遠程會話瀏覽配置允許NCC P0P142在確定遠程會話瀏覽配置時考慮用戶偏好。例如,擔心初始頁面加載時間的用戶可能喜歡用強調遠程處理并使用RDP遠程會話通信協(xié)議的遠程會話瀏覽配置,而希望維持極響應界面的用戶可能更喜歡使用在客戶端計算設備102上執(zhí)行大多數(shù)處理的遠程會話瀏覽配置,例如,使用HTML、遠程會話通信協(xié)議。
[0077]說明性地,NCC POP142可使確定遠程瀏覽配置基于任何因素或因素的組合。例如,NCC P0P142可基于單個因素來選擇遠程會話瀏覽配置,或可把權重分配到一個或多個因素以進行確定。在一些實施方案中,NCC P0P142的確定過程可基于上文描述的一個或多個因素而改變。例如,通過具有剩余的未使用的帶寬的網(wǎng)絡與客戶端計算設備102通信的NCCPOP142可把較低權重給予例如遠程瀏覽會話的網(wǎng)絡要求的因素,且可把較高權重給予例如頁面交互的延遲的因素;而通過有限帶寬網(wǎng)絡與客戶端計算設備102通信的NCC POP142可把較高權重給予處理通過網(wǎng)絡的遠程會話瀏覽協(xié)議的效率的因素。
[0078]在一個實施方案中,NCCP0P142可為網(wǎng)絡內容集選擇單個遠程會話瀏覽配置。例如,NCC P0P142可為例如網(wǎng)頁的請求的網(wǎng)絡資源選擇單個遠程會話瀏覽配置。NCC P0P142因此可基于選擇的遠程瀏覽會話協(xié)議來處理網(wǎng)頁以及所有嵌入式內容,并使用遠程瀏覽會話協(xié)議來交換用戶交互數(shù)據(jù)和與網(wǎng)頁相關的所有嵌入式內容的更新的瀏覽會話數(shù)據(jù)。在另一實施方案中,NCC P0P142可為網(wǎng)絡內容集的一個或多個資源選擇不同的遠程會話瀏覽配置。例如,例如網(wǎng)頁的網(wǎng)絡資源可參考處理密集型嵌入式Javascript或CSS資源,以及嵌入式視頻資源。NCC P0P142可為網(wǎng)頁和除了嵌入式視頻資源之外的所有嵌入式資源選擇第一遠程會話瀏覽配置,并為嵌入式視頻資源選擇第二遠程會話瀏覽配置。說明性地,這可使NCC P0P142使用RDP把處理結果發(fā)送到客戶端計算設備102以顯示網(wǎng)頁和相關嵌入式資源,同時使用HTTP把嵌入式視頻作為單獨未處理的文件發(fā)送。在一個實施方案中,客戶端計算設備102可執(zhí)行顯示對應于網(wǎng)頁和嵌入式資源的RDP處理結果所需的最小處理,且也可執(zhí)行顯示嵌入式視頻(例如,在顯示的網(wǎng)頁的RDP表示頂部疊加視頻)所必需的額外的處理。任何數(shù)量的遠程會話瀏覽配置可被選擇以對應于網(wǎng)絡內容集中包括的任何數(shù)量的資源或對象,而不管資源或對象是從一個或多個邏輯磚或數(shù)據(jù)結構中的內容提供商104還是⑶N服務提供商106獲得的。
[0079]雖然本文把選擇遠程會話瀏覽配置說明性地描述為在NCC P0P142已獲得所有網(wǎng)絡資源和相關嵌入式內容之后發(fā)生,但是相關領域技術人員應理解,選擇遠程會話瀏覽配置可在任何時候執(zhí)行。例如,NCC P0P142可在從客戶端計算設備接收到新的瀏覽會話請求或相關信息之后選擇遠程會話瀏覽配置,可在獲得網(wǎng)絡資源之后但在獲得任何相關嵌入式資源之前,或在任何其它時間選擇遠程會話瀏覽配置。在一些實施方案中,NCC P0P142可在客戶端計算設備102獲得初始處理結果之后的某個時間切換到新的遠程會話瀏覽配置。說明性地,NCC P0P142選擇新的遠程會話瀏覽配置可在某個時間段或事件之后自動發(fā)生或響應于網(wǎng)絡條件、NCC P0P142或客戶端計算設備102加載或計算資源的改變,或上文描述為可能影響遠程會話瀏覽配置的選擇的任何其它因素而自動發(fā)生。說明性地,處理其它類型或格式的信息的NCC P0P142可基于任何數(shù)量的類似因素來選擇遠程會話協(xié)議。例如,相關領域技術人員應理解,可開發(fā)類似模式來處理圖像、視頻、音頻、數(shù)據(jù)庫信息、三維設計數(shù)據(jù),或本領域已知的任何其它文件格式或數(shù)據(jù)類型。
[0080]在各種實施方案中,客戶端計算設備102可順序地或與遠程瀏覽會話的請求同時地進一步實例化平行瀏覽過程。在一個實施方案中,除了在NCC P0P142執(zhí)行的一個或多個遠程瀏覽實例,客戶端計算設備102還可實例化如本領域已知的傳統(tǒng)本地瀏覽會話(例如,從瀏覽器提供內容請求并在本地處理獲得的資源)。在另一實施方案中,客戶端計算設備102可具有NCC P0P142未處理的網(wǎng)絡資源。說明性地,網(wǎng)絡資源可由NCC P0P142從一個或多個內容提供商、CDN或緩存組件檢索。資源可被提供到客戶端計算設備102以在本地與在NCC P0P142執(zhí)行的遠程瀏覽實例平行地處理。在額外的實施方案中,網(wǎng)絡計算和存儲提供商或NCC P0P142可實例化任何數(shù)量的新的虛擬機實例和/或瀏覽器實例(或使用現(xiàn)有實例化的實例)來處理資源且/或并行地把處理結果發(fā)送到客戶端計算設備102。說明性地,在客戶端計算設備102的本地瀏覽會話和在NCC POP142的遠程瀏覽會話實例可并行執(zhí)行。
[0081]在一個實施方案中,在客戶端計算設備102執(zhí)行的本地瀏覽會話可響應于瀏覽會話請求從NCC P0P142獲得未處理的內容(例如,html網(wǎng)頁、嵌入式內容和其它網(wǎng)絡資源)。說明性地,內容可響應于瀏覽會話請求由NCC P0P142從內容提供商、CDN或緩存檢索。NCCP0P142提供的未處理的內容可包括所有與瀏覽會話請求相關的內容或可補充客戶端計算設備的緩存中存在的內容、從內容提供商或CDN檢索的內容,或從某個其它來源獲得的內容。在一個實施方案中,客戶端計算設備102可從本地緩存獲得所有請求的內容,且可能未從NCC P0P142獲得任何未處理的資源或內容。在獲得未處理的內容之后,客戶端計算設備102可與在NCC P0P142執(zhí)行的遠程瀏覽會話平行地處理請求的內容。例如,當在客戶端計算設備102執(zhí)行的本地瀏覽會話處理請求的內容時,在NCC P0P142執(zhí)行的遠程瀏覽會話可基本上同時處理相同的內容。一旦NCC P0P142對內容執(zhí)行了處理動作集以生成處理結果(例如,如由確定的遠程會話瀏覽配置所指定),NCC P0P142就可把處理結果提供到客戶端計算設備102。
[0082]為了說明的目的,客戶端計算設備102可能需要比在NCC P0P142上運行的瀏覽會話實例更長的加載時間來獲得并處理請求的網(wǎng)絡資源。例如,由于NCC P0P142在網(wǎng)絡上的位置和比起NCC P0P142的本地客戶端計算設備的相對處理能力,所以NCC P0P142可快速獲得并處理內容。即使NCC P0P142向客戶端計算設備102提供了所有請求的網(wǎng)絡內容,客戶端計算設備102仍可在本地瀏覽會話完全完成處理請求的資源之前從NCC P0P142獲得處理結果??蛻舳擞嬎阍O備102可在完成本地處理和內容的顯示之前完成任何額外的處理步驟并顯示獲得的處理結果。說明性地,這可允許客戶端計算設備102利用NCC P0P142的相對于傳統(tǒng)本地瀏覽會話較快速的內容加載時間。在本地瀏覽會話完成處理所有請求的資源之前,瀏覽器可如下文圖5和11中所描述在本地和/或遠程地處理任何用戶交互。
[0083]一旦本地瀏覽會話完全獲得并處理對應于請求的內容的資源,計算設備102就可確定是繼續(xù)顯示使用確定的遠程會話瀏覽配置從NCC P0P142獲得的結果(且在NCCPOP142處理用戶交互)還是切換到在本地處理用戶交互。切換到在本地處理用戶交互可包括用請求的資源的本地顯示來代替基于從NCC P0P142獲得的處理結果的請求的資源的顯示表示。例如,瀏覽器可顯示對應于來自NCC P0P142的處理結果的網(wǎng)頁的表示(例如,代表呈現(xiàn)的頁面的RDP顯示信息),直到瀏覽器完成在本地處理并呈現(xiàn)網(wǎng)頁為止。瀏覽器然后可用網(wǎng)頁的在本地呈現(xiàn)的表示來代替來自NCC P0P142的表示。說明性地,用一個表示來代替另一表示對于用戶可能是透明的。例如,網(wǎng)頁的本地和NCC P0P142表示可能相同或大致相同。在一個實施方案中,當顯示網(wǎng)頁的NCC P0P142表示時,瀏覽器可把與顯示的頁面的各種用戶交互發(fā)送到NCC P0P142進行處理。當顯示網(wǎng)頁的在本地呈現(xiàn)的版本時,可在瀏覽器在本地處理用戶交互。說明性地,確定顯示請求的資源的哪個表示(例如,本地或來自NCC P0P142)可基于參照上文確定遠程會話瀏覽協(xié)議描述的所述因素中的任何因素。
[0084]在一個實施方案中,客戶端計算設備102可在完全加載本地資源之后就切換到在本地處理用戶交互。說明性地,在NCC P0P142上運行的遠程瀏覽會話實例可在切換到本地處理之后終止,或者遠程瀏覽會話實例可被保持作為備份以用于本地瀏覽會話的無應答或失敗。例如,客戶端計算設備102可在本地處理用戶交互,以及根據(jù)選擇的遠程會話瀏覽配置把遠程用戶交互數(shù)據(jù)發(fā)送到NCC POP142。遠程用戶交互數(shù)據(jù)可被NCC POP142用來保持遠程瀏覽會話實例完全與在客戶端計算設備102由瀏覽器執(zhí)行的本地瀏覽過程平行。只要本地瀏覽會話繼續(xù)處理用戶交互,NCC POP142就可避免發(fā)送更新的處理結果,或者可發(fā)送客戶端計算設備102忽略的更新的處理結果。如果在客戶端計算設備102的本地瀏覽會話出現(xiàn)了問題,那么更新的處理結果可被從NCC POP142提供到客戶端計算設備102以代替本地瀏覽會話進行處理和顯示。說明性地,這個從本地瀏覽會話切換到遠程處理對于用戶可能是透明的。在一些實施方案中,客戶端計算設備102可基于本地瀏覽器的無應答或失敗之外的因素而從本地瀏覽會話切換到遠程瀏覽會話實例。例如,客戶端計算設備102或網(wǎng)絡計算和存儲組件107可基于相對于上文確定遠程會話瀏覽協(xié)議列舉的因素中的任何因素在遠程和本地瀏覽會話之間選擇。
[0085]在另一實施方案中,客戶端計算設備102即使在本地瀏覽會話已完全加載請求的內容之后也可繼續(xù)處理并顯示來自NCC P0P142的更新的處理結果??蛻舳擞嬎阍O備102可終止本地瀏覽會話或在上文提供的實例相反的實例中可平行運行本地瀏覽會話作為備份過程。應理解,雖然本文為了說明的目的把本地瀏覽會話描述為比遠程瀏覽會話實例加載得慢,但是在一些實施方案中,本地瀏覽會話可比遠程瀏覽會話加載內容更快,在這種情況下,瀏覽器可在本地處理用戶交互直到遠程瀏覽過程已完全加載了請求的內容為止。在一些實施方案中,客戶端計算設備102可通過首先加載請求的內容的無論本地還是遠程瀏覽會話來顯示并處理用戶交互。
[0086]在各種其它實施方案中,作為實例化本地瀏覽會話的補充或替代,網(wǎng)絡計算和存儲提供商107可實例化多個遠程瀏覽會話實例來平行運行。說明性地,這些平行瀏覽會話實例可使用任何相同或不同的遠程會話瀏覽協(xié)議,且可用上文相對于本地瀏覽會話描述的方式充當備份,或者可作為替代來使用并切換以最大化在客戶端計算設備102上的瀏覽器性能。例如,響應于一個或多個瀏覽會話請求,網(wǎng)絡計算和存儲提供商107可實例化在第一NCC POP上運行并使用RDP協(xié)議的瀏覽會話實例以及在第二 NCC POP上運行并使用X-窗口協(xié)議的瀏覽會話實例??蛻舳擞嬎阍O備102或網(wǎng)絡計算和存儲提供商107可基于上文相對于確定遠程會話瀏覽協(xié)議描述的性能或資源使用情況考慮來確定應使用哪個瀏覽會話實例和協(xié)議。
[0087]繼續(xù)參看圖9,在框918,網(wǎng)絡計算和存儲提供商107可根據(jù)確定的遠程會話瀏覽配置來處理包括一個或多個請求的網(wǎng)絡資源和嵌入式網(wǎng)絡資源的獲得的內容,以生成初始處理結果。在框920,網(wǎng)絡計算和存儲提供商107可把初始處理結果提供給客戶端以進行進一步處理并在瀏覽器的內容顯示區(qū)進行顯示。為達進一步舉例的目的,下文參看圖10描述了客戶端計算設備102實施的說明性客戶端新的瀏覽會話交互程序1000。在框922,開始的新的瀏覽會話程序900結束。
[0088]圖10是說明客戶端計算設備102實施的客戶端新的瀏覽會話交互程序1000的流程圖。響應于使客戶端計算設備102加載瀏覽器以查看網(wǎng)絡內容的事件或用戶請求,新的瀏覽會話交互程序1000在框1002開始。在框1004,客戶端計算設備在本地加載瀏覽器的管理組件,包括所有本地接口組件。如上文參看圖5和7所描述,本地接口組件可包括工具欄、菜單、按鈕或軟件瀏覽器應用管理并控制的其它用戶接口控制或在客戶端計算設備在本地執(zhí)行或實施的任何其它過程。在框1006,客戶端計算設備102把新的瀏覽會話實例的請求提供到網(wǎng)絡計算和存儲提供商107。從客戶端計算設備的用戶的觀點看來,新的瀏覽會話的請求對應于把請求傳送到一個或多個對應的內容提供商104的預期的請求。在其它實施方案中,新的會話請求可對應于加載文件或其它文檔的請求(例如,把所有圖像加載到照片編輯應用的請求等)。說明性地,請求可作為瀏覽器加載(例如,對默認或“主頁”頁面的請求)的結果而自動生成,或可作為用戶跟蹤鏈接或把網(wǎng)絡地址輸入地址欄的結果而生成。如參看圖2示出,瀏覽會話請求首先被傳送到網(wǎng)絡計算和存儲提供商107。在說明性實施方案中,網(wǎng)絡計算和存儲提供商107使用注冊API以從客戶端計算設備102接受瀏覽會話請求。
[0089]瀏覽會話請求可包括任何數(shù)量的數(shù)據(jù)或信息片,包括但不限于,與用戶相關的信息、與客戶端計算設備102或客戶端計算設備上的軟件相關的信息(例如,硬件或軟件信息、設備物理或邏輯位置等)、與網(wǎng)絡108、用戶或瀏覽器偏好相關的信息(例如,請求的遠程會話瀏覽協(xié)議、偏好列表、決策樹或其它信息)、與網(wǎng)絡計算和存儲提供商107相關的信息、與一個或多個請求的網(wǎng)絡內容片相關的信息(例如,網(wǎng)絡資源的網(wǎng)絡地址)等。例如,來自客戶端計算設備102的瀏覽會話請求可包括識別特定客戶端計算設備硬件規(guī)格或硬件性能水平的信息、與最新的內容請求相關的延遲和帶寬數(shù)據(jù)、處理不同類型的內容所需的安全級別、遠程會話瀏覽協(xié)議的預定偏好列表,和對應于請求的網(wǎng)絡資源的一個或多個網(wǎng)絡地址等。在另一實例中,瀏覽會話請求可包括識別客戶端計算設備102屏幕分辨率、寬高比的信息,或者瀏覽會話請求中的瀏覽器顯示區(qū)可允許網(wǎng)絡計算和存儲提供商107定制網(wǎng)絡內容的處理以在客戶端計算設備上顯示。如之前所描述,瀏覽會話請求可包括對應于請求的網(wǎng)絡資源的可呈任何形式的網(wǎng)絡地址信息,包括但不限于,互聯(lián)網(wǎng)協(xié)議(“IP”)地址、URL、媒體訪問控制(“MAC”)地址等。在一個實施方案中,新的瀏覽會話實例的請求可對應于在上文圖9的框904接收新的瀏覽會話實例的請求的網(wǎng)絡計算和存儲提供商。
[0090]在框1008,客戶端計算設備102從網(wǎng)絡計算和存儲提供商107獲得初始處理結果。說明性地,初始處理結果中包括的格式和數(shù)據(jù)可基于網(wǎng)絡計算和存儲提供商107選擇的遠程會話瀏覽配置而改變。在一個實施方案中,初始處理結果可包括通知客戶端計算設備102遠程會話瀏覽配置的選擇且/或通過對應于選擇的遠程會話瀏覽配置的遠程會話通信協(xié)議建立連接的數(shù)據(jù)或在所述數(shù)據(jù)之后。如上文參看圖8和9所討論,獲得的初始處理結果可包括具有由網(wǎng)絡計算和存儲提供商107執(zhí)行的一個或多個處理動作的請求的內容。在獲得初始處理結果之后,在框1010,客戶端計算設備102可對初始處理結果執(zhí)行任何剩余的處理動作。
[0091]在框1012,客戶端計算設備102顯示對應于處理的初始處理結果的內容。例如,客戶端計算設備102可在如上文圖7描述的瀏覽器700的內容顯示區(qū)702中顯示處理的客戶端。在一個實施方案中,處理結果只可包括對應于瀏覽器顯示的內容的顯示數(shù)據(jù),且可能不包括對應于例如在NCC P0P142的瀏覽器實例的接口控制的顯示數(shù)據(jù)、對應于瀏覽會話的虛擬機實例的桌面,或NCC P0P142的任何其它用戶接口。例如,NCC P0P142可處理網(wǎng)頁和相關內容以通過在NCC P0P142的虛擬機實例中運行的瀏覽器實例中的RDP進行顯示。瀏覽器實例除了顯示的網(wǎng)頁之外還可具有一個或多個界面元素,例如工具欄、菜單、滾動條等。NCCP0P142可發(fā)送只對應于顯示的網(wǎng)頁而沒有與瀏覽器相關的界面元素中的任何界面元素的RDP處理結果。說明性地,包括只對應于顯示的網(wǎng)頁的RDP處理結果可允許在客戶端計算實例102的瀏覽器通過在瀏覽器的內容顯示區(qū)組裝RDP處理結果來顯示網(wǎng)頁而不進行任何進一步的處理。在另一實施方案中,RDP處理結果可包括對應于在NCC POP142瀏覽會話實例顯示的全接口的完全虛擬機桌面和瀏覽器窗口??蛻舳擞嬎阍O備可自動識別對應于請求的內容的RDP處理結果的區(qū)域,且可只在瀏覽器的內容顯示區(qū)顯示這個區(qū)域。
[0092]在框1014,客戶端計算設備102處理本地和遠程用戶交互。下文參看圖11提供處理用戶交互的說明性程序。在框1016,程序結束。說明性地,網(wǎng)絡計算內容提供商107實例化的瀏覽會話實例可當瀏覽器窗口或內容顯示區(qū)關閉時終止,可當遠程會話瀏覽協(xié)議被在客戶端計算設備102的平行過程代替時終止,或可根據(jù)計時器或其它事件終止。說明性地,如果瀏覽會話由于超時已自動終止但相關內容仍在客戶端計算設備102的瀏覽器中顯示,那么用戶后來試圖與內容交互可把新的瀏覽會話請求提供到網(wǎng)絡計算和存儲服務提供商107以根據(jù)終止的會話的最后狀態(tài)來開始新的瀏覽會話。說明性地,超時之后終止遠程瀏覽會話可允許網(wǎng)絡計算存儲提供商107在NCC POP節(jié)省計算資源。在一個實施方案中,這個過程對于在客戶端計算設備102的用戶可能是透明的,即使遠程瀏覽會話已在此期間終止。
[0093]圖11是說明客戶端計算設備102實施的過程用戶交互程序1100的流程圖。響應于用戶進行的交互,過程用戶交互程序1100在框1102開始。說明性地,過程用戶交互程序1100可在瀏覽器界面的內容顯示區(qū)顯示內容之后開始。例如,過程用戶交互程序1100可對應于上文圖10的框1014。
[0094]說明性地,顯示的內容可具有一個或多個互動元素,例如,形式、按鈕、動畫等。用戶與這些互動元素的交互可能需要在內容顯示區(qū)處理并顯示更新的內容。例如,在網(wǎng)頁上下拉菜單中選擇元素可能需要進行處理且可改變網(wǎng)頁或嵌入式資源的配置或視覺外觀。說明性地,用戶與顯示的內容進行交互所需的處理可取決于使用的遠程會話瀏覽配置而在客戶端計算設備102被處理為本地用戶交互或者在NCC P0P142被處理為遠程用戶交互。例如,如果遠程會話瀏覽配置使用大量本地處理(例如,通過HTML發(fā)送未處理的文件),那么用戶與顯示的內容的交互可通常在客戶端計算設備102被處理為本地用戶交互。說明性地,在客戶端計算設備102把用戶與顯示的內容的交互處理為本地用戶交互可允許使用簡單的用戶交互(例如,選擇單選按鈕,或把文本輸入字段)進行較好的響應和較少的延時,因為對應于交互的交互數(shù)據(jù)不需要被發(fā)送到NCC P0P142進行處理。
[0095]另舉一例,如果使用內容的高質量遠程處理的遠程會話瀏覽配置(例如,通過RDP發(fā)送處理的位圖數(shù)據(jù))被用作遠程會話瀏覽配置,那么用戶與顯示的內容的所有交互可被處理為遠程用戶交互。例如,用戶輸入(例如,鍵盤輸入和光標位置)可被封裝在RDP協(xié)議數(shù)據(jù)單元中并通過網(wǎng)絡108傳送到NCC P0P142進行處理。說明性地,NCC P0P142可把用戶交互應用到網(wǎng)絡內容并把包括更新的位圖的處理結果和對應于內容的更新的表示的界面數(shù)據(jù)傳送回客戶端計算設備102。說明性地,在NCC P0P142把用戶與顯示的內容的交互處理為遠程用戶交互可對界面響應具有負面影響,因為需要數(shù)據(jù)來通過網(wǎng)絡進行傳遞且數(shù)據(jù)受網(wǎng)絡延遲限制;然而,需要大量處理的用戶交互被處理為遠程用戶交互時可執(zhí)行得更好,因為處理NCC P0P142的延遲可能比處理客戶端計算設備102的延遲慢得多。
[0096]除了用于顯示網(wǎng)絡內容的內容顯示區(qū),瀏覽器還可具有一個或多個本地接口組件,例如工具欄、菜單、按鈕或其它用戶接口控制。與本地接口組件的交互可取決于如在說明性圖7中進一步描述的交互和遠程會話瀏覽配置所需的處理被處理為本地用戶交互或遠程用戶交互。例如,一些本地接口組件可在本地被在客戶端計算設備上運行的瀏覽器代碼管理,而其它本地接口組件可具有一個或多個在本地管理的方面(例如,按鈕單擊反饋、滾動條重繪等),和處理為遠程用戶交互的一個或多個遠程管理的方面(例如,頁面刷新、在地址欄的地址請求頁面等)。
[0097]在框1104,客戶端計算設備102從用戶獲得用戶交互。這個用戶交互可為如在圖7和上文中描述的與本地接口組件的交互,或可為與在瀏覽器的內容顯示區(qū)中顯示的內容的例如表單字段、按鈕、動畫等的任何互動元素的交互。用戶與這些本地接口組件或顯示的內容的互動元素的交互可取決于如在圖7和上文中描述的遠程會話瀏覽配置指定的組件或元素的性質和處理拆分而需要本地和/或遠程處理。在框1106,客戶端計算設備102確定獲得的用戶交互的交互處理要求。在確定框1108,如果用戶交互具有本地方面(例如,按鈕單擊反饋、改變到本地瀏覽器狀態(tài)、在客戶端計算設備處理的內容元素等),那么程序1102進行到框1110以在客戶端計算設備102處理用戶交互的本地方面然后在框1112更新本地接口組件。說明性地,且如上文所討論,交互的方面和在本地更新接口組件和元素允許瀏覽器提供響應的用戶界面和內容。在處理用戶交互的本地方面之后,或如果用戶交互不具有本地元素(例如,當在服務器側完全使用遠程會話瀏覽配置處理且使用RDP遠程會話通信協(xié)議時,用戶與內容顯示區(qū)中顯示的內容元素的交互),那么程序1102進行到確定框1114。如果用戶交互具有需要處理的遠程方面,那么程序1102進行到框1116并把遠程用戶交互數(shù)據(jù)提供到網(wǎng)絡計算和存儲提供商107。說明性地,在使用RDP遠程會話通信協(xié)議的高質量的服務器側遠程會話瀏覽配置的情況下,遠程用戶交互數(shù)據(jù)可包括封裝在一個或多個RDP協(xié)議數(shù)據(jù)單元中的例如光標位置或鍵盤輸入的輸入數(shù)據(jù)。在使用RDP或其它遠程會話通信協(xié)議的遠程會話瀏覽配置的一些實施方案中,例如光標位置的遠程用戶交互數(shù)據(jù)的特定方面可被連續(xù)提供到網(wǎng)絡計算和存儲提供商107,而在遠程會話瀏覽配置的其它實施方案中,當與需要遠程處理的用戶交互相關時,遠程用戶交互數(shù)據(jù)只可被提供到網(wǎng)絡計算和存儲提供商107。
[0098]在框1118,客戶端計算設備102從網(wǎng)絡計算和存儲提供商107獲得更新的處理結果,其中網(wǎng)絡計算和存儲提供商107已處理了遠程用戶交互數(shù)據(jù)來生成內容的更新的表示。在框1120,客戶端計算設備102對更新的處理結果執(zhí)行所需的任何額外的處理(基于遠程會話瀏覽配置),且在框1122,在瀏覽器的內容顯示區(qū)顯示更新的處理結果。在框1124,過程用戶交互程序1102結束。說明性地,程序可響應于用戶與瀏覽器和顯示的內容的進一步交互而再執(zhí)行任意次。
[0099]本發(fā)明的實施方案可由以下非限制性條款來定義:
[0100]條款1.一種用于遠程會話瀏覽的計算機實施的方法,其包括:
[0101]基于網(wǎng)絡的瀏覽器軟件應用基于來自客戶端計算設備的瀏覽會話請求中包括的網(wǎng)絡資源的識別符從內容提供商獲得所述網(wǎng)絡資源,其中網(wǎng)絡資源的所述識別符參考一個或多個嵌入式資源識別符且其中所述網(wǎng)絡資源和所述一個或多個嵌入式資源識別符中的至少一個可用多個處理動作來處理;
[0102]所述基于網(wǎng)絡的瀏覽器軟件應用處理所述網(wǎng)絡資源以獲得所述一個或多個嵌入式資源識別符;
[0103]所述基于網(wǎng)絡的瀏覽器軟件應用基于所述一個或多個嵌入式資源識別符從一個或多個內容提供商獲得所述一個或多個嵌入式資源;
[0104]所述基于網(wǎng)絡的瀏覽器軟件應用基于所述網(wǎng)絡資源和所述一個或多個嵌入式資源中的至少一個確定對應于所述瀏覽會話請求的一個或多個遠程會話瀏覽配置,其中所述一個或多個遠程會話瀏覽配置中的每一個識別至少通信協(xié)議、將在所述網(wǎng)絡計算組件上執(zhí)行的所述多個處理動作的第一組處理動作,和將在所述客戶端計算設備上執(zhí)行的所述多個處理動作的第二組處理動作,且其中所述第一組處理動作和所述第二組處理動作一起包括所述多個處理動作;
[0105]所述基于網(wǎng)絡的瀏覽器軟件應用處理所述網(wǎng)絡資源和所述一個或多個嵌入式資源以生成對應于所述確定的遠程會話瀏覽配置中的每一個的至少一個處理結果,其中所述至少一個處理結果中的每一個對應于各自處理的網(wǎng)絡資源或處理的一個或多個嵌入式資源的表示,且其中所述至少一個處理結果中的每一個通過在所述網(wǎng)絡計算組件上執(zhí)行由所述對應的確定的遠程會話瀏覽配置識別的所述多個處理動作的所述第一組處理動作來生成;和
[0106]所述基于網(wǎng)絡的瀏覽器軟件應用把所述至少一個處理結果中的每一個提供到所述客戶端計算設備,所述客戶端計算設備被配置以顯示所述網(wǎng)絡資源和嵌入式資源識別符的所述至少一個表示,其中顯示所述至少一個表示包括對所述處理結果執(zhí)行所述多個處理動作中所述第二組處理動作。
[0107]條款2.如條款1所述的計算機實施的方法,其中由所述遠程會話瀏覽配置識別的所述通信協(xié)議包括HTML協(xié)議、遠程桌面協(xié)議、虛擬網(wǎng)絡計算協(xié)議、遠程幀緩沖協(xié)議和X-ffindows協(xié)議中的至少一個。
[0108]條款3.如條款1所述的計算機實施的方法,其中基于所述網(wǎng)絡資源和所述一個或多個嵌入式資源中的至少一個確定對應于所述瀏覽會話請求的一個或多個遠程會話瀏覽配置嵌入式資源包括基于資源數(shù)據(jù)格式、資源內容類型、資源大小、資源處理需求、資源延遲要求、互動元素的數(shù)目或類型、資源安全性風險、歷史資源使用數(shù)據(jù)、資源使用預測、相關用戶偏好、相關網(wǎng)絡地址、相關網(wǎng)絡域、歷史內容提供商使用數(shù)據(jù),和內容提供商配置數(shù)據(jù)中的至少一個來確定一個或多個遠程會話瀏覽配置。
[0109]條款4.如條款1所述的計算機實施的方法,其還包括:
[0110]從所述客戶端計算設備獲得第二瀏覽會話請求,其中所述第二瀏覽會話請求包括第二網(wǎng)絡資源的地址,所述第二網(wǎng)絡資源包括第二一個或多個嵌入式資源嵌入式資源識別符;
[0111]所述網(wǎng)絡計算組件通過所述實例化的基于網(wǎng)絡的瀏覽器軟件應用進行第二請求;
[0112]在所述第二基于網(wǎng)絡的瀏覽器軟件應用上從一個或多個內容提供商獲得所述第二網(wǎng)絡資源和所述第二一個或多個嵌入式資源嵌入式資源識別符;和
[0113]確定所述第二新的瀏覽會話請求的第二遠程會話瀏覽配置。
[0114]條款5.如條款4所述的計算機實施的方法,其中來自所述第一瀏覽會話請求的至少一個確定的遠程會話瀏覽配置與來自所述第二瀏覽會話請求的所述確定的第二遠程會話瀏覽配置不同。
[0115]條款6.如條款1所述的計算機實施的方法,其中基于所述網(wǎng)絡資源和所述一個或多個嵌入式資源中的至少一個確定所述新的瀏覽會話請求的一個或多個遠程會話瀏覽配置嵌入式資源包括:確定第一嵌入式資源的第一遠程會話瀏覽配置和第二嵌入式資源的第二遠程會話瀏覽配置。
[0116]條款7.如條款1所述的計算機實施的方法,其中確定所述新的瀏覽會話請求的一個或多個遠程會話瀏覽配置包括:至少部分基于確定所述客戶端計算設備選擇的一個或多個遠程會話瀏覽配置來確定所述新的瀏覽會話請求的一個或多個遠程會話瀏覽配置。
[0117]條款8.—種用于遠程會話瀏覽的系統(tǒng),其包括:
[0118]一個或多個計算機處理器;
[0119]至少一個計算機存儲器,其可由所述一個或多個計算機處理器中的至少一個訪問;
[0120]網(wǎng)絡計算組件,其包括由所述一個或多個計算機處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述網(wǎng)絡計算組件可操作以:
[0121]確定客戶端計算設備請求的一個或多個網(wǎng)絡資源的遠程會話瀏覽配置,其中所述遠程會話瀏覽配置識別至少通信協(xié)議、將在所述網(wǎng)絡計算組件上執(zhí)行的多個處理動作的第一組處理動作,和將在所述網(wǎng)絡計算組件上執(zhí)行的所述多個處理動作的第二組處理動作;
[0122]把至少一個處理結果提供到所述客戶端計算設備,所述至少一個處理結果中的每一個通過在所述網(wǎng)絡計算組件上執(zhí)行由所述確定的遠程會話瀏覽配置識別的所述第一組處理動作來生成,其中所述客戶端計算設備可操作以顯示所述一個或多個網(wǎng)絡資源,包括對所述處理結果執(zhí)行所述多個處理動作的所述第二組處理動作。
[0123]條款9.如條款8所述的系統(tǒng),其中由所述遠程會話瀏覽配置識別的所述通信協(xié)議包括HTML協(xié)議、遠程桌面協(xié)議、虛擬網(wǎng)絡計算協(xié)議、遠程巾貞緩沖協(xié)議和X-Windows協(xié)議中的至少一個。
[0124]條款10.如條款8所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以至少部分基于由所述客戶端計算設備對一個或多個遠程會話瀏覽配置的確定來確定一個或多個網(wǎng)絡資源的遠程會話瀏覽配置。
[0125]條款11.如條款8所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以基于網(wǎng)絡資源數(shù)據(jù)格式、網(wǎng)絡資源內容類型、網(wǎng)絡資源大小、網(wǎng)絡資源處理要求、資源延遲要求、歷史資源使用數(shù)據(jù)、資源使用預測、與網(wǎng)絡資源相關的互動元素的數(shù)目或類型、網(wǎng)絡資源安全風險、相關用戶偏好、相關網(wǎng)絡地址、相關網(wǎng)絡域、歷史內容提供商使用數(shù)據(jù),和內容提供商配置數(shù)據(jù)中的至少一個來確定客戶端計算設備請求的一個或多個網(wǎng)絡資源的遠程會話瀏覽配置。
[0126]條款12.如條款11所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以:
[0127]從所述客戶端計算設備獲得第一瀏覽會話請求,其中所述第一瀏覽會話請求對應于一個或多個網(wǎng)絡資源;和
[0128]響應于來自所述客戶端計算設備的所述第一瀏覽會話請求獲得所述一個或多個網(wǎng)絡資源。
[0129]條款13.如條款12所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以:[0130]從所述客戶端計算設備獲得第二瀏覽會話請求,其中所述第二瀏覽會話請求對應于第二一個或多個網(wǎng)絡資源;
[0131]響應于來自所述客戶端計算設備的所述第二瀏覽會話請求而從一個或多個內容提供商獲得所述第二一個或多個網(wǎng)絡資源;和
[0132]確定所述第二瀏覽會話請求的第二遠程會話瀏覽配置。
[0133]條款14.如條款13所述的系統(tǒng),其中所述第二遠程會話瀏覽配置與所述第一遠程會話瀏覽配置不同。
[0134]條款15.如條款8所述的系統(tǒng),其中所述一個或多個網(wǎng)絡資源包括參考一個或多個嵌入式資源的網(wǎng)絡資源。
[0135]條款16.如條款15所述的系統(tǒng),其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:確定第一嵌入式資源的第一遠程會話瀏覽配置和第二嵌入式資源的第二遠程會話瀏覽配置。
[0136]條款17.如條款15所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以:
[0137]從內容提供商獲得所述網(wǎng)絡資源;
[0138]處理所述網(wǎng)絡資源以獲得對應于與所述網(wǎng)絡資源相關的所述一個或多個嵌入式資源的一個或多個嵌入式資源識別符;和
[0139]基于所述一個或多個嵌入式資源識別符從一個或多個內容提供商獲得所述一個或多個嵌入式資源。
[0140]條款18.—種用于遠程會話瀏覽的計算機實施的方法,其包括:
[0141]確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置,其中所述一個或多個遠程會話瀏覽配置中的每一個識別至少通信協(xié)議、將在所述網(wǎng)絡計算組件上執(zhí)行的第一組處理動作和將在所述網(wǎng)絡計算組件上執(zhí)行的第二組處理動作;
[0142]處理所述網(wǎng)絡資源以生成對應于所述確定的遠程會話瀏覽配置中的每一個的至少一個處理結果,其中所述至少一個處理結果中的每一個通過在所述網(wǎng)絡計算組件上執(zhí)行由所述對應的確定的遠程會話瀏覽配置識別的所述第一組處理動作來生成;和
[0143]把所述至少一個處理結果中的每一個提供到所述客戶端計算設備,所述客戶端計算設備被配置以顯示所述一個或多個網(wǎng)絡資源,其中所述顯示所述一個或多個網(wǎng)絡資源包括對所述處理結果執(zhí)行所述多個處理動作的所述第二組處理動作。
[0144]條款19.如條款18所述的計算機實施的方法,其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:至少部分基于由所述客戶端計算設備對一個或多個遠程會話瀏覽配置的確定來確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置。
[0145]條款20.如條款18所述的計算機實施的方法,其還包括:
[0146]從所述客戶端計算設備獲得第一瀏覽會話請求,其中所述第一瀏覽會話請求對應于一個或多個網(wǎng)絡資源;和
[0147]響應于來自所述客戶端計算設備的所述第一瀏覽會話請求獲得所述一個或多個網(wǎng)絡資源。
[0148]條款21.如條款20所述的計算機實施的方法,其還包括:
[0149]從所述客戶端計算設備獲得第二瀏覽會話請求,其中所述第二瀏覽會話請求對應于第二一個或多個網(wǎng)絡資源;[0150]響應于來自所述客戶端計算設備的所述第二瀏覽會話請求而從一個或多個內容提供商獲得所述第二一個或多個網(wǎng)絡資源;和
[0151]確定所述第二瀏覽會話請求的第二遠程會話瀏覽配置。
[0152]條款22.如條款21所述的計算機實施的方法,其中所述第二遠程會話瀏覽配置與所述第一遠程會話瀏覽配置不同。
[0153]條款23.如條款18所述的計算機實施的方法,其中所述一個或多個網(wǎng)絡資源包括參考一個或多個嵌入式資源的網(wǎng)絡資源。
[0154]條款24.如條款23所述的計算機實施的方法,其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:確定第一嵌入式資源的第一遠程會話瀏覽配置和第二嵌入式資源的第二遠程會話瀏覽配置。
[0155]條款25.如條款23所述的計算機實施的方法,其中所述網(wǎng)絡計算組件還可操作以:
[0156]從內容提供商獲得所述網(wǎng)絡資源;
[0157]處理所述網(wǎng)絡資源以獲得對應于與所述網(wǎng)絡資源相關的所述一個或多個嵌入式資源的一個或多個嵌入式資源識別符;和
[0158]基于所述一個或多個嵌入式資源識別符從一個或多個內容提供商獲得所述一個或多個嵌入式資源。
[0159]條款26.—種用于遠程會話瀏覽的系統(tǒng),其包括:
[0160]一個或多個計算機處理器;
[0161]至少一個計算機存儲器,其可由所述一個或多個計算機處理器中的至少一個訪問;和
[0162]瀏覽器組件,其包括由所述一個或多個計算機處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述瀏覽器組件可操作以:
[0163]向網(wǎng)絡計算組件提供網(wǎng)絡內容的請求,其中所述網(wǎng)絡內容的請求包括識別網(wǎng)絡資源和一個或多個嵌入式資源中的至少一個,且其中所述網(wǎng)絡資源和所述一個或多個嵌入式資源中的至少一個可用多個處理動作來處理;
[0164]從所述網(wǎng)絡計算組件獲得第一處理結果,其中所述第一處理結果對應于所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個,其中所述多個處理動作尚未完成;
[0165]處理所述第一處理結果以生成對應于完成所述多個處理動作中的至少一個的本地處理結果;
[0166]從所述網(wǎng)絡計算組件獲得第二處理結果,其中所述第二處理結果對應于所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個,其中所述多個處理動作已完成;和
[0167]基于所述本地處理結果或所述第二處理結果來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0168]條款27.如條款26所述的系統(tǒng),其中所述網(wǎng)絡計算組件被配置以響應于所述網(wǎng)絡內容的請求實例化在所述網(wǎng)絡計算組件上執(zhí)行的基于網(wǎng)絡的瀏覽器過程。
[0169]條款28.如條款26所述的系統(tǒng),其中所述瀏覽器組件基于所述本地處理結果或所述第二處理結果并基于從所述網(wǎng)絡計算組件接收的指令來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。[0170]條款29.如條款26所述的系統(tǒng),其中所述瀏覽器組件基于所述本地處理結果或所述第二處理結果并基于所述本地處理結果和所述第二處理結果的完成時間來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0171]條款30.如條款26所述的系統(tǒng),其中所述瀏覽器組件基于所述本地處理結果或第二處理結果并基于關于所述處理所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的歷史信息來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表不。
[0172]條款31.如條款26所述的系統(tǒng),其中所述瀏覽器組件基于所述本地處理結果或所述第二處理來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示包括:基于所述本地處理結果或所述第二處理結果的組合來確定生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0173]條款32.—種用于遠程會話瀏覽的計算機實施的方法,其包括:
[0174]向網(wǎng)絡計算組件提供網(wǎng)絡內容的請求,其中所述網(wǎng)絡內容根據(jù)多個處理動作來處理;
[0175]獲得其中所述多個處理動作中的至少一個尚未完成的所述網(wǎng)絡內容;
[0176]處理所述網(wǎng)絡內容以生成對應于完成所述多個處理動作的本地處理結果;
[0177]從所述網(wǎng)絡計算組件獲得網(wǎng)絡處理結果,其中所述網(wǎng)絡處理結果對應于其中所述多個處理動作已完成的所述網(wǎng)絡內容的表示;和
[0178]基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表
/Jn ο
[0179]條款33.如條款32所述的方法,其中所述網(wǎng)絡計算組件被配置以響應于所述網(wǎng)絡內容的請求實例化在所述網(wǎng)絡計算組件上執(zhí)行的基于網(wǎng)絡的瀏覽器過程。
[0180]條款34.如條款32所述的方法,其中基于所述本地處理結果和所述網(wǎng)絡處理結果的所述網(wǎng)絡內容的所述表示大致相同。
[0181]條款35.如條款32所述的方法,其中基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表示包括:基于所述本地處理結果或所述網(wǎng)絡處理結果并基于從所述網(wǎng)絡計算組件接收的指令來確定是否生成所述網(wǎng)絡內容的表示。
[0182]條款36.如條款32所述的方法,其中基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表示包括:基于所述本地處理結果或所述網(wǎng)絡處理結果并基于所述本地處理結果和所述第二處理結果的完成時間來確定是否生成所述網(wǎng)絡內容的表不。
[0183]條款37.如條款32所述的方法,其中基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表示包括:基于所述本地處理結果或所述網(wǎng)絡處理結果并基于關于所述處理所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的歷史信息來確定是否生成所述網(wǎng)絡內容的表示。
[0184]條款38.如條款32所述的方法,其中確定是否生成所述網(wǎng)絡內容的表示基于所述本地處理結果,所述方法還包括:基于所述網(wǎng)絡處理結果來生成所述網(wǎng)絡的更新的表示。
[0185]條款39.如條款32所述的方法,其中基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表示包括:基于所述本地處理結果或所述網(wǎng)絡處理結果并基于包括所述網(wǎng)絡內容的數(shù)據(jù)格式、所述網(wǎng)絡內容的內容類型、所述網(wǎng)絡內容的大小、所述網(wǎng)絡內容的處理要求、網(wǎng)絡延遲、網(wǎng)絡帶寬、客戶端計算設備處理資源、網(wǎng)絡計算組件處理資源,或用戶偏好中的至少一個的一個或多個選擇因素來確定是否生成所述網(wǎng)絡內容的表
/Jn ο
[0186]條款40.如條款32所述的方法,其中獲得其中所述多個處理動作中的至少一個尚未完成的所述網(wǎng)絡內容包括:從所述網(wǎng)絡計算組件獲得所述網(wǎng)絡內容。
[0187]條款41.如條款32所述的方法,其中獲得其中所述多個處理動作中的至少一個尚未完成的所述網(wǎng)絡內容包括:從內容提供商獲得所述網(wǎng)絡內容。
[0188]條款42.如條款32所述的方法,其中獲得其中所述多個處理動作中的至少一個尚未完成的所述網(wǎng)絡內容包括:從與所述客戶端計算設備相關的緩存組件獲得所述網(wǎng)絡內容。
[0189]條款43.—種其上編碼有用于管理遠程會話瀏覽的指令的非暫時性計算機可讀介質,其中當被計算裝置執(zhí)行時,所述指令促使所述計算裝置:
[0190]向網(wǎng)絡計算組件提供網(wǎng)絡內容的請求,其中所述網(wǎng)絡內容根據(jù)多個處理動作來處理;
[0191]處理所述網(wǎng)絡內容以生成對應于完成所述多個處理動作的本地處理結果;
[0192]從所述網(wǎng)絡計算組件獲得網(wǎng)絡處理結果,其中所述網(wǎng)絡處理結果對應于其中所述多個處理動作已完成的所述網(wǎng)絡內容的表示;和
[0193]基于所述本地處理結果或所述網(wǎng)絡處理結果來確定是否生成所述網(wǎng)絡內容的表
/Jn ο
[0194]條款44.如條款43所述的非暫時性計算機可讀介質,其中所述網(wǎng)絡計算組件被配置以響應于所述網(wǎng)絡內容的請求實例化在所述網(wǎng)絡計算組件上執(zhí)行的基于網(wǎng)絡的瀏覽器過程。
[0195]條款45.如條款43所述的非暫時性計算機可讀介質,其中所述計算裝置基于所述本地處理結果或所述第二處理結果并基于從所述網(wǎng)絡計算組件接收的指令來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0196]條款46.如條款43所述的非暫時性計算機可讀介質,其中所述瀏覽器組件基于所述本地處理結果或所述第二處理結果并基于所述本地處理結果和所述第二處理結果的完成時間來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表
/Jn ο
[0197]條款47.如條款43所述的非暫時性計算機可讀介質,其中所述瀏覽器組件基于所述本地處理結果或所述第二處理結果并基于關于所述處理所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的歷史信息來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0198]條款48.如條款43所述的非暫時性計算機可讀介質,其中所述瀏覽器組件基于所述本地處理結果或所述第二處理來確定是否生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示包括:基于所述本地處理結果或所述第二處理結果的組合來確定生成所述網(wǎng)絡資源和所述一個或多個嵌入式資源中所述至少一個的表示。
[0199]條款49.如條款43所述的非暫時性計算機可讀介質,其中所述計算裝置基于所述本地處理結果生成所述網(wǎng)絡內容的表示,所述計算裝置還可操作以基于所述網(wǎng)絡處理結果生成所述網(wǎng)絡的更新的表示。
[0200]雖然已公開并討論了說明性實施方案,相關領域技術人員應理解,可在本發(fā)明的精神和范圍內實施另外或替代性實施方案。例如,本文描述的技術可在不脫離本發(fā)明的范圍的情況下用以允許遠程處理任何數(shù)量的其它軟件應用和過程的管理,包括但不限于,圖像或視頻編輯軟件、數(shù)據(jù)庫軟件、office辦公軟件、三維設計軟件、音頻和聲音處理應用等。另外,雖然許多實施方案已指示為說明性的,但是相關領域的技術人員應理解,說明性實施方案不需要進行組合或一起實施。因此,一些說明性實施方案不需要根據(jù)本發(fā)明的變化的范圍來使用或實施。
[0201]除非特別聲明或在所使用的上下文中進行理解,否則條件性語言(諸如,“可”或“可能”)一般旨在傳達某些實施方案包括,而其它實施方案不包括某些特征、元素和/或步驟。因此,所述條件性語言一般不旨在暗示特征、元素和/或步驟無論如何是一個或多個實施方案所需要的,或者一個或多個實施方案在有或沒有用戶輸入或提示的情況下都必需包括用于確定的邏輯,而不管這些特征、元素和/或步驟是否包括在任何特定實施方案中或將在任何特定實施方案中執(zhí)行。
[0202]本文描述且/或在附圖中描述的流程圖中的任何過程描述、元素或框應理解為可能代表包括用于實施過程中的特定邏輯功能或步驟的一個或多個可執(zhí)行指令的模塊、段,或代碼部分。替代性實施包括在本文描述的實施方案的范圍內,其中如本領域的技術人員應理解,元素或功能可被刪除、用示出或討論的順序以外的順序來執(zhí)行,包括基本上同時或以相反的順序,這取決于所涉及的功能。還應理解,上述數(shù)據(jù)和/或組件可使用與存儲計算機可執(zhí)行組件(諸如,⑶-R0M、DVD-R0M或網(wǎng)絡界面)的計算機可讀介質相關的驅動機制存儲在計算機可讀介質上且裝入計算設備的存儲器。另外,組件和/或數(shù)據(jù)可包括在單個設備中或以任何方式分布。因此,通用計算設備可被配置以用上述各種數(shù)據(jù)和/或組件的處理和/或執(zhí)行來實施本發(fā)明的過程、算法和方法。
[0203]應強調,可對上述實施方案進行許多變化和修改,所述變化和修改的元素應理解為其它可接受的實例。本文中所有所述修改和變化旨在包括在本發(fā)明的范圍內且由以下權利要求書保護。
【權利要求】
1.一種用于遠程會話瀏覽的系統(tǒng),其包括: 一個或多個計算機處理器; 至少一個計算機存儲器,其可由所述一個或多個計算機處理器中的至少一個訪問;網(wǎng)絡計算組件,其包括由所述一個或多個計算機處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述網(wǎng)絡計算組件可操作以: 確定客戶端計算設備請求的一個或多個網(wǎng)絡資源的遠程會話瀏覽配置,其中所述遠程會話瀏覽配置識別至少通信協(xié)議、將在所述網(wǎng)絡計算組件上執(zhí)行的多個處理動作的第一組處理動作,和將在所述網(wǎng)絡計算組件上執(zhí)行的所述多個處理動作的第二組處理動作; 把至少一個處理結果提供到所述客戶端計算設備,所述至少一個處理結果中的每一個通過在所述網(wǎng)絡計算組件上執(zhí)行由所述確定的遠程會話瀏覽配置識別的所述第一組處理動作來生成,其中所述客戶端計算設備可操作以使所述一個或多個網(wǎng)絡資源顯示,包括對所述處理結果執(zhí)行所述多個處理動作的所述第二組處理動作。
2.如權利要求1所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以至少部分基于由所述客戶端計算設備對一個或多個遠程會話瀏覽配置的確定來確定一個或多個網(wǎng)絡資源的遠程會話瀏覽配置。
3.如權利要求1所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以基于網(wǎng)絡資源數(shù)據(jù)格式、網(wǎng)絡資源內容類型、網(wǎng)絡資源大小、網(wǎng)絡資源處理要求、資源延遲要求、歷史資源使用數(shù)據(jù)、資源使用預測、與網(wǎng)絡資源相關的互動元素的數(shù)目或類型、網(wǎng)絡資源安全風險、相關用戶偏好、相關網(wǎng)絡地址、相關網(wǎng)絡域、歷史內容提供商使用數(shù)據(jù)和內容提供商配置數(shù)據(jù)中的至少一個來決定客戶端計算設備請求的一個或多個網(wǎng)絡資源的遠程會話瀏覽配置。
4.如權利要求3所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以: 從所述客戶端計算設備獲得第一瀏覽會話請求,其中所述第一瀏覽會話請求對應于一個或多個網(wǎng)絡資源;以及 響應于來自所述客戶端計算設備的所述第一瀏覽會話請求獲得所述一個或多個網(wǎng)絡資源。
5.如權利要求4所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以: 從所述客戶端計算設備獲得第二瀏覽會話請求,其中所述第二瀏覽會話請求對應于第二一個或多個網(wǎng)絡資源; 響應于來自所述客戶端計算設備的所述第二瀏覽會話請求而從一個或多個內容提供商獲得所述第二一個或多個網(wǎng)絡資源;和 確定所述第二瀏覽會話請求的第二遠程會話瀏覽配置。
6.如權利要求1所述的系統(tǒng),其中所述一個或多個網(wǎng)絡資源包括參考一個或多個嵌入式資源的網(wǎng)絡資源。
7.如權利要求6所述的系統(tǒng),其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:確定第一嵌入式資源的第一遠程會話瀏覽配置和第二嵌入式資源的第二遠程會話瀏覽配置。
8. 如權利要求6所述的系統(tǒng),其中所述網(wǎng)絡計算組件還可操作以: 從內容提供商獲得所述網(wǎng)絡資源; 處理所述網(wǎng)絡資源以獲得對應于與所述網(wǎng)絡資源相關的所述一個或多個嵌入式資源的一個或多個嵌入式資源識別符;和基于所述一個或多個嵌入式資源識別符從一個或多個內容提供商獲得所述一個或多個嵌入式資源。
9.一種用于遠程會話瀏覽的計算機實施的方法,其包括:確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置,其中所述一個或多個遠程會話瀏覽配置中的每一個識別至少通信協(xié)議、將在所述網(wǎng)絡計算組件上執(zhí)行的第一組處理動作,和將在所述網(wǎng)絡計算組件上執(zhí)行的第二組處理動作;處理所述網(wǎng)絡資源以生成對應于所述確定的遠程會話瀏覽配置中的每一個的至少一個處理結果,其中所述至少一個處理結果中的每一個通過在所述網(wǎng)絡計算組件上執(zhí)行由所述對應的確定的遠程會話瀏覽配置識別的所述第一組處理動作來生成;和把所述至少一個處理結果中的每一個提供到所述客戶端計算設備,所述客戶端計算設備被配置成使所述一個或多個網(wǎng)絡資源顯示,其中使所述一個或多個網(wǎng)絡資源顯示包括對所述處理結果執(zhí)行所述多個處理動作的所述第二組處理動作。
10.如權利要求9所述的計算機實施的方法,其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:至少部分基于由所述客戶端計算設備對一個或多個遠程會話瀏覽配置的確定來確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置。
11.如權利要求9所述的計算機實施的方法,其還包括:從所述客戶端計算設備獲得第一瀏覽會話請求,其中所述第一瀏覽會話請求對應于一個或多個網(wǎng)絡資源;和響應于來自所述客戶端計算設備的所述第一瀏覽會話請求而獲得所述一個或多個網(wǎng)絡資源。
12.如權利要求11所述的計算機實施的方法,其還包括:從所述客戶端計算設備獲得第二瀏覽會話請求,其中所述第二瀏覽會話請求對應于第二一個或多個網(wǎng)絡資源;響應于來自所述客戶端計算設備的所述第二瀏覽會話請求而從一個或多個內容提供商獲得所述第二一個或多個網(wǎng)絡資源;和確定所述第二瀏覽會話請求的第二遠程會話瀏覽配置。
13.如權利要求9所述的計算機實施的方法,其中所述一個或多個網(wǎng)絡資源包括參考一個或多個嵌入式資源的網(wǎng)絡資源。
14.如權利要求13所述的計算機實施的方法,其中確定一個或多個網(wǎng)絡資源的一個或多個遠程會話瀏覽配置包括:確定第一嵌入式資源的第一遠程會話瀏覽配置和第二嵌入式資源的第二遠程會話瀏覽配置。
15.如權利要求13所述的計算機實施的方法,其中所述網(wǎng)絡計算組件還可操作以:從內容提供商獲得 所述網(wǎng)絡資源;處理所述網(wǎng)絡資源以獲得對應于與所述網(wǎng)絡資源相關的所述一個或多個嵌入式資源的一個或多個嵌入式資源識別符;和基于所述一個或多個嵌入式資源識別符從一個或多個內容提供商獲得所述一個或多個嵌入式資源。
【文檔編號】G06F17/30GK103748583SQ201280040594
【公開日】2014年4月23日 申請日期:2012年6月28日 優(yōu)先權日:2011年6月30日
【發(fā)明者】塞繆爾·S·吉利奧蒂, 馬太·L·特拉漢, 喬納森·A·詹金斯, 布雷特·R·泰勒 申請人:亞馬遜技術有限公司