遠(yuǎn)程進(jìn)程執(zhí)行管理的制作方法
【專利摘要】本發(fā)明公開了一種遠(yuǎn)程執(zhí)行管理進(jìn)程,其涉及網(wǎng)絡(luò)計算供應(yīng)商處的軟件進(jìn)程實例的各個方面的執(zhí)行和管理??蛻舳擞嬎阊b置可以例證軟件進(jìn)程實例??蛻舳擞嬎阊b置確定軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,包括識別在網(wǎng)絡(luò)計算供應(yīng)商處執(zhí)行的軟件進(jìn)程實例的至少一個子進(jìn)程。客戶端計算裝置可以將遠(yuǎn)程會話配置信息提供給網(wǎng)絡(luò)計算供應(yīng)商?;谶h(yuǎn)程會話配置信息,網(wǎng)絡(luò)計算供應(yīng)商可以例證對應(yīng)于所述至少一個子進(jìn)程的遠(yuǎn)程會話。網(wǎng)絡(luò)計算供應(yīng)商可以由遠(yuǎn)程會話將處理結(jié)果傳輸返回到與所述至少一個子進(jìn)程的執(zhí)行相關(guān)聯(lián)的客戶端計算裝置。
【專利說明】遠(yuǎn)程進(jìn)程執(zhí)行管理
[0001]發(fā)明背景
[0002]一般描述計算裝置執(zhí)行由多個計算機(jī)可讀指令組成的進(jìn)程,從而使計算裝置執(zhí)行多種功能或動作。通常,操作系統(tǒng)管理與計算裝置相關(guān)聯(lián)的許多基本功能或功能性,通常被稱作“低級操作”。一方面,基本功能性的管理可包括與計算裝置(諸如裝置存儲器、數(shù)據(jù)存儲裝置和輸入/輸出)相關(guān)聯(lián)的資源的管理。另一方面,基本功能性的管理可包括與計算裝置上被例證并請求執(zhí)行指令(通常被稱作進(jìn)程或線程)的一個或多個軟件應(yīng)用程序相關(guān)聯(lián)的指令的管理。例如,操作系統(tǒng)可以確定裝置資源的分配和裝置上例證的各個應(yīng)用程序、月艮務(wù)和其它進(jìn)程之間的執(zhí)行次序。
[0003]在一些情況下,對計算裝置執(zhí)行的進(jìn)程的資源需求可能超過可用計算裝置資源的容量。在這些情況下,用戶可能經(jīng)歷響應(yīng)延遲或缺失。參考說明性實例,可以命令計算裝置經(jīng)由對計算裝置執(zhí)行的圖形編輯應(yīng)用程序加載并顯示大的圖像文件。如果計算裝置不具有可用于處理請求的足夠多的裝置存儲器,那么操作系統(tǒng)可將裝置存儲器和圖像文件的一個或多個段加載到諸如硬碟或快閃存儲器的較長延時存儲裝置中。此后,操作系統(tǒng)可更換存儲在裝置存儲器和較長延時存儲裝置中的信息(通常被稱作更換)。在許多情況下,更換存儲器可能是緩慢又耗時的過程。繼續(xù)說明性實例,用戶還可以請求圖形編輯應(yīng)用程序?qū)D像文件執(zhí)行圖形操控操作。因此,圖形編輯應(yīng)用程序可能使執(zhí)行由對應(yīng)于圖像操控操作的可執(zhí)行指令系列組成的子進(jìn)程。如果圖像文件大,如果計算裝置的可用計算資源有限,或如果變換在計算上較為復(fù)雜,那么完成子進(jìn)程可能要消耗大量時間,且可能影響其它程序(諸如同時對裝置執(zhí)行的應(yīng)用程序和操作系統(tǒng))的執(zhí)行。
[0004]從用戶使用客戶端計算裝置的觀點來看,可就與對計算裝置執(zhí)行各個軟件進(jìn)程相關(guān)聯(lián)的性能和延時來定義用戶經(jīng)歷。上述進(jìn)程中的任何一個的延時和性能限制可以減少用戶經(jīng)歷。此外,計算裝置(諸如筆記本、平板電腦、智能手機(jī)等)由于資源有限(諸如處理能力、存儲器或網(wǎng)絡(luò)連接性)而尤其可能出現(xiàn)延時和低效。
[0005]附圖簡述
[0006]前文方面和本發(fā)明的許多隨附優(yōu)勢在通過結(jié)合附圖參考下列詳細(xì)描述加以更好地理解之后將會讓人更加容易明白,其中:
[0007]圖1是示出了包括客戶端計算裝置和網(wǎng)絡(luò)計算供應(yīng)商的聯(lián)網(wǎng)計算環(huán)境的方框圖;
[0008]圖2是圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了新的軟件進(jìn)程和客戶端計算裝置與網(wǎng)絡(luò)計算供應(yīng)商之間的遠(yuǎn)程會話的例證;
[0009]圖3是圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了網(wǎng)絡(luò)計算供應(yīng)商與客戶端計算裝置之間的應(yīng)用程序數(shù)據(jù)的處理;
[0010]圖4是圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了客戶端計算裝置與網(wǎng)絡(luò)計算供應(yīng)商之間的新遠(yuǎn)程會話的例證;
[0011]圖5是圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了遠(yuǎn)程會話配置信息的確定和網(wǎng)絡(luò)計算供應(yīng)商處的新遠(yuǎn)程會話的例證;
[0012]圖6是示出了由客戶端計算裝置實施的客戶端新遠(yuǎn)程會話常式的流程圖;[0013]圖7是示出了由網(wǎng)絡(luò)計算供應(yīng)商實施的新遠(yuǎn)程會話常式的流程圖;且
[0014]圖8是示出了由客戶端計算裝置實施的遠(yuǎn)程會話用戶交互常式的流程圖。
[0015]詳述
[0016]一般描述,本公開涉及客戶端計算裝置與一個或多個遠(yuǎn)程網(wǎng)絡(luò)計算供應(yīng)商之間的軟件進(jìn)程遠(yuǎn)程會話的生成和管理。具體來說,將關(guān)于軟件進(jìn)程根據(jù)遠(yuǎn)程會話配置信息生成客戶端計算裝置與網(wǎng)絡(luò)計算供應(yīng)商之間的進(jìn)程數(shù)據(jù)和處理結(jié)果的處理來描述本公開的各個方面。雖然本公開中描述的實施方案的各個方面可以為了說明目的而描述對應(yīng)于軟件應(yīng)用程序的一個或多個遠(yuǎn)程會話的管理,但是本領(lǐng)域一般技術(shù)人員應(yīng)明白,本文中公開的技術(shù)可以應(yīng)用于任何數(shù)量的軟件進(jìn)程,包括(但不限于)操作系統(tǒng)進(jìn)程和服務(wù)。此外,雖然將關(guān)于說明性實例和實施方案描述本公開的各個方面,但是本領(lǐng)域一般技術(shù)人員應(yīng)明白,所公開的實施方案和實例不應(yīng)被解釋為有所限制。
[0017]參考特定說明性實例,用戶可以請求客戶端計算裝置加載軟件進(jìn)程實例,諸如軟件應(yīng)用程序(下文中稱作“應(yīng)用程序”)。在一個實施方案中,在加載之后,應(yīng)用程序可以對應(yīng)于被設(shè)計在客戶端計算裝置處執(zhí)行的多個計算機(jī)可執(zhí)行指令。通過說明可知,計算機(jī)可執(zhí)行指令集可以稱作“子進(jìn)程”且可以與特定功能性或動作的實施方式相關(guān)聯(lián)。
[0018]為了特定實例的目的,假設(shè)圖形編輯應(yīng)用程序可以將圖像加載到存儲器中以供處理。用戶可以請求將圖像過濾器應(yīng)用于存儲器中的圖像。根據(jù)這個實例,圖像過濾器可以對應(yīng)于根據(jù)過濾器的配置操控存儲器中的圖像的子進(jìn)程(例如,調(diào)整顏色值或移除視覺假像)。
[0019]在接收到請求之后,客戶端計算裝置獲取與選定子進(jìn)程的執(zhí)行相關(guān)聯(lián)的軟件進(jìn)程配置信息。在一個實施方案中,軟件進(jìn)程配置信息可以包括識別與應(yīng)用程序相關(guān)聯(lián)的一個或多個子進(jìn)程的信息和規(guī)定子進(jìn)程資源使用量或處理需求的信息??蛻舳擞嬎阊b置還可以獲取與裝置狀態(tài)有關(guān)的各種信息,包括(但不限于)裝置資源的當(dāng)前或未來可用性(例如,處理能力、存儲器、存儲裝置、網(wǎng)絡(luò)使用量等)。
[0020]使用軟件進(jìn)程配置信息和與裝置狀態(tài)或資源可用性相關(guān)聯(lián)的信息,客戶端計算裝置可以識別于在網(wǎng)絡(luò)計算供應(yīng)商處執(zhí)行的一個或多個遠(yuǎn)程會話中遠(yuǎn)程執(zhí)行的應(yīng)用程序的一個或多個子進(jìn)程,其可被具體實施為遠(yuǎn)程會話配置信息。遠(yuǎn)程會話配置信息可以識別用于封裝并傳送網(wǎng)絡(luò)計算供應(yīng)商處的遠(yuǎn)程會話與客戶端計算裝置處的應(yīng)用程序?qū)嵗g的進(jìn)程數(shù)據(jù)和處理結(jié)果的一個或多個通信協(xié)議。
[0021 ] 在由客戶端計算裝置確定遠(yuǎn)程會話配置信息之后,客戶端計算裝置可以對應(yīng)用程序的一個或多個組件進(jìn)行本地例證。客戶端計算裝置還可以將遠(yuǎn)程會話配置信息提供給網(wǎng)絡(luò)計算供應(yīng)商?;谶h(yuǎn)程會話配置信息,網(wǎng)絡(luò)計算供應(yīng)商可以例證或已例證一個或多個遠(yuǎn)程會話,諸如與將執(zhí)行應(yīng)用程序的子常式的至少某個部分的網(wǎng)絡(luò)計算供應(yīng)商相關(guān)聯(lián)的計算組件。例如,網(wǎng)絡(luò)計算供應(yīng)商可以例證計算組件以托管對應(yīng)于在客戶端計算裝置處例證的應(yīng)用程序的子進(jìn)程的一個或多個軟件進(jìn)程。在另一實例中,在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商可例證或已例證包括客戶機(jī)計算裝置處例證的應(yīng)用程序的并行副本的虛擬機(jī)的實例。
[0022]網(wǎng)絡(luò)計算供應(yīng)商可以從客戶端計算裝置獲取初始進(jìn)程數(shù)據(jù)以供在所述一個或多個遠(yuǎn)程會話下處理。所述一個或多個遠(yuǎn)程會話可以處理初始進(jìn)程數(shù)據(jù),且可以將處理結(jié)果傳輸返回到客戶端計算裝置。所例證網(wǎng)絡(luò)計算組件上的遠(yuǎn)程會話與客戶端計算裝置上的應(yīng)用程序之間交換的信息(包括(但不限于)進(jìn)程數(shù)據(jù)和處理結(jié)果)一般可稱作“遠(yuǎn)程會話信息”。當(dāng)接收到處理結(jié)果時,客戶端計算裝置可以將處理結(jié)果提供給應(yīng)用程序以供用戶處理和/或呈現(xiàn)給用戶。在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商處的進(jìn)程數(shù)據(jù)的傳輸和處理對于在客戶端計算裝置處執(zhí)行的應(yīng)用程序來說可能是透明的。然而,從客戶端的用戶的觀點來看,處理結(jié)果似乎可能已由在客戶端計算裝置處本地執(zhí)行的子進(jìn)程而生成。
[0023]圖1是示出了包括客戶端計算裝置102和網(wǎng)絡(luò)計算供應(yīng)商106的聯(lián)網(wǎng)計算環(huán)境100的方框圖。如圖1中示出,聯(lián)網(wǎng)計算環(huán)境100包括用于運行諸如軟件應(yīng)用程序122和操作系統(tǒng)108的軟件進(jìn)程的客戶端計算裝置102。在說明性實施方案中,客戶端計算裝置102可對應(yīng)于多種計算裝置,包括個人計算裝置、膝上型計算裝置、手持計算裝置、終端計算裝置、移動裝置(例如,移動電話、平板計算裝置等)、無線裝置、各種電子裝置和電器等。在說明性實施方案中,客戶端計算裝置102包括用于通過通信網(wǎng)絡(luò)104 (諸如廣域網(wǎng)或局域網(wǎng))建立通信的必要硬件和軟件組件。例如,客戶端計算裝置102可以裝備聯(lián)網(wǎng)設(shè)備和促進(jìn)經(jīng)由互聯(lián)網(wǎng)或以太網(wǎng)進(jìn)行的通信的瀏覽器軟件應(yīng)用程序??蛻舳擞嬎阊b置102可以具有不同的本地計算資源,諸如中央處理單元和架構(gòu)、存儲器、大容量存儲裝置、圖形處理單元、通信網(wǎng)絡(luò)可用性和帶寬等。
[0024]在一個實施方案中,客戶端計算裝置102可以運行由一個或多個操作系統(tǒng)程序(諸如圖形管理器110、輸入/輸出管理器(“I/O管理器”)112、進(jìn)程管理器114、存儲器管理器116和文件系統(tǒng)管理器)組成的操作系統(tǒng)108。通過說明可知,圖形管理器110可以處置圖形處理和顯示在輸出裝置上的數(shù)據(jù)和內(nèi)容的輸出。I/O管理器112可以處置輸入和輸出功能性并管理客戶端計算裝置102與跨通信網(wǎng)絡(luò)104的其它聯(lián)網(wǎng)裝置之間的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)使用和訪問。存儲器管理器116可以管理軟件進(jìn)程之間的存儲器的分配,且可以處置虛擬存儲器和客戶端計算裝置上緩存的存儲器。文件系統(tǒng)管理器118可以管理存儲組件120(包括(但不限于)硬碟、快閃存儲器、網(wǎng)絡(luò)驅(qū)動器或其它本地或遠(yuǎn)程存儲組件)上的文件和數(shù)據(jù)的存儲和檢索。在各個其它實施方案中,操作系統(tǒng)108可以包括如這里描繪用于說明目的的操作系統(tǒng)程序的更少、更多或任何組合。
[0025]進(jìn)程管理器114可以管理可對客戶端計算裝置102執(zhí)行的一個或多個軟件應(yīng)用程序進(jìn)程122的執(zhí)行、加載和調(diào)度。通過說明可知,每個軟件應(yīng)用程序進(jìn)程122可以包括由多個邏輯相關(guān)裝置可執(zhí)行指令組成的任何數(shù)量的子進(jìn)程。
[0026]進(jìn)一步繼續(xù)參考圖1,聯(lián)網(wǎng)計算環(huán)境100還可包括經(jīng)由通信網(wǎng)絡(luò)104與客戶端計算裝置102通信的網(wǎng)絡(luò)計算供應(yīng)商106。圖1中示出的網(wǎng)絡(luò)計算供應(yīng)商106還對應(yīng)于與網(wǎng)絡(luò)計算供應(yīng)商相關(guān)聯(lián)的一個或多個計算裝置的邏輯相關(guān)。具體來說,網(wǎng)絡(luò)計算供應(yīng)商106可包括對應(yīng)于通信網(wǎng)絡(luò)104上的節(jié)點的多個接入點(“POP”)位置138、144。每個P0P138、144包括用于經(jīng)由虛擬機(jī)的多個實例(一般被稱作網(wǎng)絡(luò)計算組件(NCC)的實例)托管諸如軟件應(yīng)用程序進(jìn)程122或其子進(jìn)程的應(yīng)用程序的NCC140、146。本領(lǐng)域一般技術(shù)人員應(yīng)明白,NCC140、146將包括物理計算裝置資源和軟件以提供虛擬機(jī)的多個實例或動態(tài)地使創(chuàng)建虛擬機(jī)的實例。這樣的創(chuàng)建可基于諸如來自客戶端計算裝置的特定請求,或NCC可自身起始虛擬機(jī)的實例的動態(tài)創(chuàng)建。每個NCC POP138、144還包括由多個存儲裝置構(gòu)成的存儲組件142、148,其用于存儲用于傳遞并處理網(wǎng)絡(luò)或計算資源的任何類型的數(shù)據(jù),包括(但不限于)來自內(nèi)容供應(yīng)商且將由NCC140U46的實例處理并被傳輸?shù)礁鱾€客戶端計算機(jī)的用戶數(shù)據(jù)、狀態(tài)信息、處理需求、歷史使用數(shù)據(jù)和資源等。在一些實施方案中,網(wǎng)絡(luò)計算供應(yīng)商107可以被視為網(wǎng)絡(luò)計算和存儲裝置供應(yīng)商。NCC140、146和存儲組件142、148還可以包括促進(jìn)通信的額外軟件和/或硬件組件,包括(但不限于)用于選擇支持所請求應(yīng)用程序的虛擬機(jī)的實例和/或?qū)⑿畔⑻峁┙oDNS域名服務(wù)器以促進(jìn)請求路由的負(fù)載平衡或負(fù)載共享軟件/硬件組件。
[0027]在說明性實施方案中,無論NCC138、146和存儲組件142、148或組件的部分是否物理分離,其均被視為邏輯分組。例如,網(wǎng)絡(luò)計算供應(yīng)商106可以維持用于提供NCC和存儲組件的單獨POP。此外,雖然NCC P0P136U44在圖1中被示為在邏輯上與網(wǎng)絡(luò)計算供應(yīng)商106相關(guān)聯(lián),但是NCC POP在地理位置上將會以最佳地供應(yīng)客戶端計算裝置102的各種人口統(tǒng)計的方式分布在通信網(wǎng)絡(luò)104中。此外,本領(lǐng)域一般技術(shù)人員應(yīng)明白,網(wǎng)絡(luò)計算供應(yīng)商106可與各種額外計算資源、用于管理內(nèi)容和資源的額外計算裝置等相關(guān)聯(lián)。
[0028]現(xiàn)參考圖2-5,將示出圖1的聯(lián)網(wǎng)計算環(huán)境100的各個組件之間的交互。具體來說,圖2-5示出了用于遠(yuǎn)程處理客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的進(jìn)程數(shù)據(jù)的聯(lián)網(wǎng)計算環(huán)境100的各個組件之間的交互。然而,為了實例目的,已簡化說明使得沒有示出用以促進(jìn)通信的許多組件。本領(lǐng)域一般技術(shù)人員應(yīng)明白,可使用這些組件且因此在不違背本發(fā)明的精神和范圍的情況下發(fā)生額外交互。
[0029]參考圖2,程序可開始于新軟件進(jìn)程和客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的遠(yuǎn)程會話的例證。通過說明可知,客戶端計算裝置102可以響應(yīng)于事件或用戶請求而開始加載軟件應(yīng)用程序進(jìn)程122。在一個實施方案中,加載軟件應(yīng)用程序122可以包括將可執(zhí)行代碼從存儲裝置120復(fù)制到裝置存儲器中。由于加載軟件應(yīng)用程序進(jìn)程122,客戶端計算裝置102可以識別應(yīng)用程序122的一個或多個子進(jìn)程。通過說明可知,每個子進(jìn)程可以由執(zhí)行應(yīng)用程序122功能性的某個方面的多個邏輯相關(guān)可執(zhí)行指令組成。在各個實施方案中,客戶端計算裝置可以基于與應(yīng)用程序122相關(guān)聯(lián)的所存儲軟件進(jìn)程配置信息、應(yīng)用程序122執(zhí)行的先前或當(dāng)前監(jiān)控、一個或多個相關(guān)應(yīng)用程序(例如,應(yīng)用程序122的不同但類似版本)的執(zhí)行的監(jiān)控或基于任何其它因素或信息片段來識別一個或多個子進(jìn)程。在識別應(yīng)用程序122的子進(jìn)程之后,客戶端計算裝置102可以確定定義將遠(yuǎn)程執(zhí)行的子進(jìn)程集和用于在客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商之間進(jìn)行數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議的遠(yuǎn)程會話配置信息。然后客戶端計算裝置可以例證客戶端計算裝置處的應(yīng)用程序122的任何本地組件。在一個實施方案中,客戶端計算裝置102可以阻止執(zhí)行或加載識別為本地應(yīng)用程序122內(nèi)的遠(yuǎn)程類似應(yīng)用程序的候選的一個或多個子進(jìn)程的一個或多個方面,因為這些子進(jìn)程的功能是或?qū)⒂删W(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話來執(zhí)行。
[0030]在確定遠(yuǎn)程會話配置信息之后,客戶端計算裝置102可以將要處理的遠(yuǎn)程會話配置信息和/或初始進(jìn)程數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)計算供應(yīng)商106。在一個實施方案中,從被加載到客戶端計算裝置上的應(yīng)用程序122的觀點來說,例證遠(yuǎn)程會話以處置子進(jìn)程的執(zhí)行可能呈現(xiàn)為正如對本地裝置例證并執(zhí)行子進(jìn)程一樣。
[0031]在接收遠(yuǎn)程會話配置信息之后,網(wǎng)絡(luò)計算供應(yīng)商106可以選擇一個或多個相關(guān)網(wǎng)絡(luò)計算組件(在下文中“NCC”)接入點(在下文中“POP”)(諸如NCC P0P138)以為任何所請求的新遠(yuǎn)程會話服務(wù)。NCC POP的選擇可以確定可用于所例證虛擬機(jī)的處理和網(wǎng)絡(luò)資源。可以至少部分選擇處理和網(wǎng)絡(luò)資源和在NCC POP實例提供軟件以最佳化處理資源和與客戶端計算裝置102進(jìn)行的通信。選定NCC P0P138可以生成對應(yīng)于如遠(yuǎn)程會話配置信息中識別的應(yīng)用程序122的一個或多個子進(jìn)程的遠(yuǎn)程會話。通過說明可知,例證新遠(yuǎn)程會話可以包括在NCC POP138處加載新虛擬機(jī)實例、可執(zhí)行指令集和/或應(yīng)用程序?qū)嵗?、預(yù)留或分配裝置存儲器、存儲裝置或緩存空間、處理器時間、網(wǎng)絡(luò)帶寬或新遠(yuǎn)程會話的其它計算或網(wǎng)絡(luò)資源。
[0032]參考圖3,將描述用于處理網(wǎng)絡(luò)計算供應(yīng)商106與客戶端計算裝置102之間的應(yīng)用程序數(shù)據(jù)的說明性交互。如圖3中示出,選定NCC P0P138可能已基于遠(yuǎn)程會話配置信息(諸如上文圖2中描繪的遠(yuǎn)程會話配置信息)例證對應(yīng)于應(yīng)用程序122的一個或多個遠(yuǎn)程會話。
[0033]在初始化新遠(yuǎn)程會話實例之后,NCC POP138可以由客戶端計算裝置102對網(wǎng)絡(luò)計算供應(yīng)商106處理具有遠(yuǎn)程會話配置信息的任何初始進(jìn)程數(shù)據(jù),諸如上文圖2中描繪的初始進(jìn)程數(shù)據(jù)。在于NCC POP138處處理初始進(jìn)程數(shù)據(jù)的同時、之前或之后,客戶端計算裝置102可以執(zhí)行對應(yīng)于在客戶端計算裝置122處本地執(zhí)行的應(yīng)用程序122的任何子進(jìn)程的本地處理。由于NCC POP138完成其對初始進(jìn)程數(shù)據(jù)的處理,其可以通過網(wǎng)絡(luò)104將處理結(jié)果傳輸返回到在客戶端計算裝置102上運行的應(yīng)用程序122。在一個實施方案中,可以根據(jù)遠(yuǎn)程會話配置信息中識別的通信協(xié)議傳輸這些處理結(jié)果。從應(yīng)用程序122的觀點來看,由NCCP0P138提供的處理結(jié)果可能呈現(xiàn)為已由在客戶端計算裝置處本地執(zhí)行的線程或其它子進(jìn)程生成。
[0034]由于應(yīng)用程序122本地處理數(shù)據(jù)并從客戶端裝置102處的用戶接收到交互,應(yīng)用程序122可以將與對應(yīng)于遠(yuǎn)程會話的一個或多個子進(jìn)程相關(guān)聯(lián)的額外進(jìn)程數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)計算供應(yīng)商106。在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以如上所述般處理這個進(jìn)程數(shù)據(jù)并將額外處理結(jié)果傳輸返回到客戶端計算裝置102處的應(yīng)用程序122??梢哉?zhí)行在客戶端計算裝置102處執(zhí)行的應(yīng)用程序122的任何子進(jìn)程。
[0035]參考圖4,公開了圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的新遠(yuǎn)程會話的例證。如圖2和圖3中示出,可以在對應(yīng)于對客戶端計算裝置102執(zhí)行的應(yīng)用程序122的網(wǎng)絡(luò)計算供應(yīng)商106處例證第一遠(yuǎn)程會話。
[0036]新遠(yuǎn)程會話的例證可以開始于應(yīng)用程序122開始在客戶端計算裝置102處加載或執(zhí)行新子進(jìn)程。通過說明可知,由于應(yīng)用程序122開始對應(yīng)用程序內(nèi)容進(jìn)行新處理操作而可能發(fā)生加載或執(zhí)行新子進(jìn)程。例如,圖形編輯應(yīng)用程序可以開始對大圖像文件執(zhí)行由圖像操控操作組成的新子進(jìn)程。在另一實施方案中,加載或執(zhí)行新子進(jìn)程可以對應(yīng)于加載應(yīng)用程序內(nèi)容的新片段的請求。例如,新的視頻編輯應(yīng)用子進(jìn)程可以對應(yīng)于用于編輯的新視頻剪輯的加載。通過說明可知,可以響應(yīng)于用戶交互或請求、系統(tǒng)或應(yīng)用程序事件或任何其它觸發(fā)事件或原因而發(fā)生新子進(jìn)程的加載或執(zhí)行。
[0037]在客戶端計算裝置102識別新子進(jìn)程之后,客戶端計算裝置102可以如上文參考圖2論述確定新子進(jìn)程的遠(yuǎn)程會話配置信息。如上文所述,遠(yuǎn)程會話配置信息可以規(guī)定所識別子進(jìn)程的遠(yuǎn)程會話執(zhí)行和/或交換遠(yuǎn)程會話與在客戶端計算裝置102處執(zhí)行的應(yīng)用程序122之間的數(shù)據(jù)的通信協(xié)議??蛻舳擞嬎阊b置102可以將遠(yuǎn)程會話配置信息和/或用于處理的初始進(jìn)程數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)計算供應(yīng)商106。如上文參考圖2論述,網(wǎng)絡(luò)計算供應(yīng)商106可以確定NCC POP138處置新遠(yuǎn)程會話請求,且可以使在NCC POP138處例證對應(yīng)于新子進(jìn)程的新遠(yuǎn)程會話。
[0038]如上文參考圖2論述,網(wǎng)絡(luò)計算供應(yīng)商106可以基于任何數(shù)量的因素(包括(但不限于)可用NCC POP資源(例如,可用存儲器、處理器負(fù)載、網(wǎng)絡(luò)負(fù)載等)、將遠(yuǎn)程會話托管在NCC POP處的經(jīng)濟(jì)成本、客戶端計算裝置102、內(nèi)容供應(yīng)商各自的NCC POP位置、⑶N或NCCPOP緩存狀態(tài)(例如,無論NCC POP緩存中是否已存儲所請求資源)等)選擇NCC POP以例證新遠(yuǎn)程會話。通過說明可知,雖然網(wǎng)絡(luò)計算供應(yīng)商106由于說明目的而在這里被描繪為選擇NCC P0P138,但是網(wǎng)絡(luò)計算供應(yīng)商106可以選擇任何現(xiàn)有NCC POP以例證新遠(yuǎn)程會話。例如,單個客戶端計算裝置102可以將遠(yuǎn)程會話配置信息同時或循序提供給對應(yīng)于用于遠(yuǎn)程會話的三個不同請求的網(wǎng)絡(luò)計算供應(yīng)商106。網(wǎng)絡(luò)計算供應(yīng)商106可以選擇不同NCC POP以例證每個遠(yuǎn)程會話、所有三個遠(yuǎn)程會話的相同NCC POP或其任何組合。如上文所述,可以基于可用系統(tǒng)資源隨機(jī)地或根據(jù)如上文且關(guān)于圖2論述的任何其它因素來決定是否選擇不同于用于先前或同時遠(yuǎn)程會話的NCC POP。在一個實施方案中,因為新子進(jìn)程的功能是或?qū)⒂蒒CC POP138處的新遠(yuǎn)程會話而執(zhí)行,客戶端計算裝置102可以在本地應(yīng)用程序122內(nèi)阻止執(zhí)行或加載子進(jìn)程的一個或多個方面。
[0039]參考圖5,公開了圖1的聯(lián)網(wǎng)計算環(huán)境的方框圖,其示出了遠(yuǎn)程會話配置信息的確定和網(wǎng)絡(luò)計算供應(yīng)商106處的新遠(yuǎn)程會話的例證。如圖2-4中示出,可以在對應(yīng)于對客戶端計算裝置102執(zhí)行的應(yīng)用程序122的網(wǎng)絡(luò)計算供應(yīng)商106處例證一個或多個遠(yuǎn)程會話。
[0040]在一個實施方案中,客戶端計算裝置102可以監(jiān)控一個或多個應(yīng)用程序122或在客戶端計算裝置102處執(zhí)行的其它進(jìn)程的操作。例如,客戶端計算裝置可以監(jiān)控存儲器使用量、網(wǎng)絡(luò)量、處理器使用量等。客戶端計算裝置102此外可以監(jiān)控任何數(shù)量的進(jìn)程的總體性能和計算需求以確定總體資源可用性、優(yōu)先化執(zhí)行進(jìn)程、維持操作系統(tǒng)108的響應(yīng)等?;诒O(jiān)控,客戶端計算裝置102可以識別用于遠(yuǎn)程執(zhí)行的應(yīng)用程序122的子進(jìn)程。作為特定實例,客戶端計算裝置102可以識別消耗大量系統(tǒng)資源且可以容易移動到遠(yuǎn)程會話的本地子進(jìn)程,諸如子進(jìn)程2。
[0041]在識別可以移動到遠(yuǎn)程會話的子進(jìn)程之后,客戶端計算裝置102可以更新應(yīng)用程序的遠(yuǎn)程會話配置信息。如參考圖2-4描述,遠(yuǎn)程會話配置信息可以包括關(guān)于所識別子進(jìn)程的信息和對對應(yīng)于所識別子進(jìn)程的新遠(yuǎn)程會話的請求和用于封裝并傳輸客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的信息的通信協(xié)議??蛻舳擞嬎阊b置102可以將所更新遠(yuǎn)程會話配置信息和/或由新遠(yuǎn)程會話處理的任何初始進(jìn)程數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)計算供應(yīng)商106。
[0042]網(wǎng)絡(luò)計算供應(yīng)商可以選擇NCC POP144且使在NCC POP144處例證對應(yīng)于應(yīng)用程序122的子進(jìn)程的新遠(yuǎn)程會話。如上文參考圖3論述,由于網(wǎng)絡(luò)計算供應(yīng)商托管與客戶端計算裝置102或應(yīng)用程序122相關(guān)聯(lián)的任何其它遠(yuǎn)程會話,網(wǎng)絡(luò)計算供應(yīng)商可以選擇相同或不同NCC P0P144中的任何一個。在一個實施方案中,由于來自存儲器的先前本地子進(jìn)程是在NCC P0P144處由遠(yuǎn)程會話執(zhí)行,客戶端計算裝置102可以執(zhí)行或卸載所述子進(jìn)程的一個或多個方面。
[0043]圖6是示出了由圖1的客戶端計算裝置102實施的客戶端新遠(yuǎn)程進(jìn)程常式的流程圖??蛻舳诵逻h(yuǎn)程會話常式600開始于方框602處。在方框604處,客戶端計算裝置102獲取例證新軟件應(yīng)用程序122或其它軟件進(jìn)程的請求。在一個實施方案中,獲取例證新軟件應(yīng)用程序122的請求可以是由客戶端計算裝置102處的用戶作出的請求或交互的結(jié)果。例如,用戶可以開放客戶端計算裝置102上的應(yīng)用程序122。在另一實施方案中,獲取例證新軟件進(jìn)程的請求可以是在客戶端計算裝置102處執(zhí)行的自動進(jìn)程或事件的結(jié)果。雖然新軟件進(jìn)程由于說明目的而在本文中被稱作應(yīng)用程序122,但是本領(lǐng)域一般技術(shù)人員應(yīng)明白,任何軟件進(jìn)程包括(但不限于)操作系統(tǒng)進(jìn)程、服務(wù)、后臺程序或可對客戶端計算裝置102執(zhí)行的任何其它類型的軟件進(jìn)程。雖然客戶端計算裝置102在這里由于說明目的而被描述為確定軟件進(jìn)程配置信息、遠(yuǎn)程會話配置信息和與遠(yuǎn)程進(jìn)程有關(guān)的其它方面的信息,但是應(yīng)了解,可以由網(wǎng)絡(luò)計算供應(yīng)商106和/或任何其它第三方服務(wù)、裝置或?qū)嶓w執(zhí)行這些確定中的一個或多個。
[0044]在獲取例證新軟件進(jìn)程的請求之后,在方框606處客戶端計算裝置102可以獲取與應(yīng)用程序122或其它軟件進(jìn)程相關(guān)聯(lián)的軟件進(jìn)程配置信息。通過說明可知,軟件進(jìn)程配置信息可以包括關(guān)于應(yīng)用程序122的任何種類的信息,包括(但不限于)關(guān)于處理、存儲器或帶寬需求的信息、關(guān)于線程和執(zhí)行調(diào)度的信息、關(guān)于數(shù)據(jù)、應(yīng)用程序或子進(jìn)程安全的信息、關(guān)于應(yīng)用程序執(zhí)行歷史和/或用戶交互歷史或行為的信息或關(guān)于應(yīng)用程序的任何其它信息。在一個實施方案中,軟件進(jìn)程配置信息的一個或多個方面可以由應(yīng)用程序開發(fā)者預(yù)定義且包括在與應(yīng)用程序的存儲位置處的應(yīng)用程序122相關(guān)聯(lián)且可獲自與應(yīng)用程序相關(guān)聯(lián)的網(wǎng)絡(luò)存儲位置的數(shù)據(jù)中、由用戶、操作系統(tǒng)或其它第三方實體預(yù)定義或獲自任何其它源。在另一實施方案中,可以基于與資源占用、執(zhí)行行為或程序和/或一個或多個子進(jìn)程的任何其它執(zhí)行特征相關(guān)聯(lián)的程序執(zhí)行數(shù)據(jù)來確定軟件進(jìn)程配置信息的一個或多個方面。通過說明可知,可以基于應(yīng)用程序的執(zhí)行的監(jiān)控和/或當(dāng)前或之前觀察或基于用戶與應(yīng)用程序122的交互來生成程序執(zhí)行數(shù)據(jù)。在一個實施方案中,來自運行應(yīng)用程序122的任何數(shù)量的裝置的數(shù)據(jù)可以聚集在網(wǎng)絡(luò)組件處以獲取或確定進(jìn)程執(zhí)行數(shù)據(jù)。通過說明可知,組合來自應(yīng)用程序的多個實例的數(shù)據(jù)可以幫助提供應(yīng)用程序122的充分定義或總體特征化。進(jìn)程執(zhí)行數(shù)據(jù)可以基于應(yīng)用程序122的一個或多個實例的監(jiān)控和/或可以基于相關(guān)應(yīng)用程序(例如,應(yīng)用程序122的相同、不同或類似版本)的一個或多個實例的監(jiān)控。在另一實施方案中,可以由應(yīng)用程序開發(fā)者或第三方應(yīng)用進(jìn)程數(shù)據(jù)供應(yīng)商基于所觀察到或期望的資源占用、執(zhí)行行為或其它特征來提供進(jìn)程執(zhí)行數(shù)據(jù)。
[0045]在方框608處,客戶端計算裝置102識別與應(yīng)用程序122相關(guān)聯(lián)的一個或多個子進(jìn)程。在一個實施方案中,客戶端計算裝置102可以基于包括在軟件進(jìn)程配置信息中的信息識別子進(jìn)程。通過說明可知,子進(jìn)程可以由多個邏輯相關(guān)可執(zhí)行指令組成。例如,應(yīng)用程序122可以包括在客戶端計算裝置102處執(zhí)行的任何數(shù)量的裝置指令。子進(jìn)程可以由一起執(zhí)行應(yīng)用程序功能性的某個方面的這些裝置指令的邏輯相關(guān)組而組成。在一個實施方案中,一個或多個子進(jìn)程可以形成用于處理數(shù)據(jù)的離散功能,且因此在更大或更小程度上可以與軟件應(yīng)用程序進(jìn)程122分離。為了特定實例的目的,圖形編輯應(yīng)用程序可以將圖像加載到存儲器中以供處理。用戶可以請求應(yīng)用圖像過濾器于存儲器中的圖像。在一個實施方案中,圖像過濾器可以由諸如操控存儲器中的圖像數(shù)據(jù)的一系列可執(zhí)行指令的子進(jìn)程組成。在一個實施方案中,圖像過濾器子進(jìn)程在邏輯上可以與一起構(gòu)成圖形編輯應(yīng)用程序的一個或多個子進(jìn)程(例如,界面組件管理、文件管理、其它圖像或數(shù)據(jù)處理進(jìn)程等)分離。
[0046]在方框608處識別一個或多個子進(jìn)程之后,在方框610處客戶端計算裝置可以確定遠(yuǎn)程會話配置信息。通過說明可知,遠(yuǎn)程會話配置信息可以對應(yīng)于遠(yuǎn)程會話配置,其說明地包括識別方框608處識別以在網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話中執(zhí)行的子進(jìn)程中的一個或多個的信息。在一個實施方案中,遠(yuǎn)程會話配置信息可以定義將在遠(yuǎn)程會話中執(zhí)行的一個或多個子進(jìn)程的多個方面和客戶端計算裝置102或網(wǎng)絡(luò)計算供應(yīng)商106處所需的任何數(shù)據(jù)轉(zhuǎn)換界面。例如,由客戶端計算裝置102接收且對應(yīng)于由遠(yuǎn)程會話處理的數(shù)據(jù)的處理結(jié)果可能必須被進(jìn)一步處理、轉(zhuǎn)換和/或置于存儲器、處理器寄存器、緩存或數(shù)據(jù)存儲位置中的適當(dāng)位置以能夠為應(yīng)用程序122所用。如下文論述,處理動作的劃分可以與用于交換網(wǎng)絡(luò)計算供應(yīng)商106與客戶端計算裝置102之間的進(jìn)程數(shù)據(jù)和處理結(jié)果的通信協(xié)議相關(guān)聯(lián)或聯(lián)系。遠(yuǎn)程會話配置信息還可以包括關(guān)于每個預(yù)期遠(yuǎn)程會話的期望計算需求(諸如處理需求、存儲器需求、網(wǎng)絡(luò)需求等)的信息。通過說明可知,這個信息可以允許網(wǎng)絡(luò)計算供應(yīng)商106選擇適當(dāng)?shù)腘CC POP以托管每個遠(yuǎn)程會話。
[0047]遠(yuǎn)程會話配置信息仍然還可以包括關(guān)于定義客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的數(shù)據(jù)封裝和傳輸?shù)耐ㄐ艆f(xié)議(包括(但不限于)網(wǎng)絡(luò)協(xié)議、信令模型、傳輸機(jī)制或用于交換網(wǎng)絡(luò)計算供應(yīng)商106與客戶端計算裝置102之間的狀態(tài)數(shù)據(jù)、用戶交互和其它數(shù)據(jù)和內(nèi)容的封裝格式)的信息。用于交換數(shù)據(jù)的通信協(xié)議可以包括本領(lǐng)域中已知的任何通信協(xié)議,包括(但不限于)HTTP、FTP、遠(yuǎn)程桌面協(xié)議(RDP)、X-Windows協(xié)議、虛擬網(wǎng)絡(luò)計算(VNC)協(xié)議、X-Windows協(xié)議、遠(yuǎn)程幀緩沖協(xié)議或任何其它專用或公共通信協(xié)議。例如,RDP說明性地規(guī)定用于將客戶端輸入(例如,鼠標(biāo)移動、鍵盤輸入等)編碼到協(xié)議數(shù)據(jù)單元中以提供給遠(yuǎn)程計算裝置的多種處理機(jī)制和用于將位圖更新和低級界面信息發(fā)送返回到客戶端裝置的對應(yīng)機(jī)制。作為另一實例,HTML協(xié)議說明性地提供用于將定義界面信息且包括資源參考的文件從服務(wù)器提供到客戶端的機(jī)制和用于使客戶端計算裝置將對額外文件和資源的請求提供給服務(wù)器的對應(yīng)機(jī)制。
[0048]通過說明可知,遠(yuǎn)程會話配置信息此外可以規(guī)定在客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106或其它裝置之間傳送的進(jìn)程數(shù)據(jù)、處理結(jié)果和其它信息的一個或多個編碼或數(shù)據(jù)格式。在各個實施方案 中,數(shù)據(jù)可以任何數(shù)量種格式(包括(但不限于)一個或多個編碼或壓縮格式、文本格式、代碼格式、標(biāo)記格式(例如,可擴(kuò)展標(biāo)記語言、超文本標(biāo)記語言等)、數(shù)據(jù)互換格式(例如,可擴(kuò)展標(biāo)記語言、Javascript對象表示法、數(shù)據(jù)互換格式)、可執(zhí)行二進(jìn)制格式、圖像格式(例如,jpeg、gif、tiff、bitmap等)、視頻格式(例如,11^168、3¥;[、1]10¥等)、音頻格式(例如,aiff、mp3等)或本領(lǐng)域中已知的任何其它二進(jìn)制、文獻(xiàn)或其它數(shù)據(jù)格式)傳送。例如,在一個實施方案中,遠(yuǎn)程會話配置信息可以規(guī)定以本文格式存儲的軟件代碼被作為進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商106,且網(wǎng)絡(luò)計算供應(yīng)商106將包括對應(yīng)于編譯軟件代碼的可執(zhí)行二進(jìn)制的處理結(jié)果傳送返回到客戶端計算裝置102。
[0049]如上文所述,遠(yuǎn)程會話配置信息可以規(guī)定上文方框608中識別的子進(jìn)程中的一個或多個的遠(yuǎn)程配置。通過說明可知,遠(yuǎn)程會話配置信息可以規(guī)定本地執(zhí)行、全部遠(yuǎn)程執(zhí)行或以本地和遠(yuǎn)程處理(例如,發(fā)生在網(wǎng)絡(luò)計算供應(yīng)商106處的大部分處理,但是客戶端計算裝置102執(zhí)行本地轉(zhuǎn)換組件以轉(zhuǎn)換并顯示所接收到的處理結(jié)果)的某個組合執(zhí)行子進(jìn)程。在一個實施方案中,可以在客戶端計算裝置102處由應(yīng)用程序122本身或操作系統(tǒng)進(jìn)程或服務(wù)或在客戶端計算裝置處執(zhí)行的任何其它程序來對所述應(yīng)用程序的一個或多個子進(jìn)程的遠(yuǎn)程配置執(zhí)行確定。在其它實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以執(zhí)行或輔助執(zhí)行所述確定。如本文中描述,為了說明目的,客戶端計算裝置將被論述成對應(yīng)用程序的所識別子進(jìn)程的遠(yuǎn)程配置執(zhí)行確定;然而,這可以根據(jù)替代實施方案而改變。[0050]客戶端計算裝置102可以使其對方框608中識別的子進(jìn)程中的一個或多個的遠(yuǎn)程配置的確定基于任何數(shù)量種因素,包括(但不限于)應(yīng)用進(jìn)程數(shù)據(jù)的一個或多個特征、子進(jìn)程的計算配置文件(例如,存儲器使用量、處理器使用量、存儲器使用量、網(wǎng)絡(luò)使用量)、客戶端計算裝置102的一個或多個特征或配置、客戶端計算裝置處的當(dāng)前資源使用量、網(wǎng)絡(luò)計算供應(yīng)商106或NCC P0P138的特征、資源使用量或配置、網(wǎng)絡(luò)或網(wǎng)絡(luò)連接的一個或多個特征、與用戶相關(guān)聯(lián)的配置或優(yōu)先級、預(yù)定義配置或優(yōu)先級等。應(yīng)用進(jìn)程數(shù)據(jù)的特征可以包括(但不限于)數(shù)據(jù)格式、內(nèi)容類型、大小、處理需求、資源延時需求、交互元件的數(shù)量或類型、安全風(fēng)險、相關(guān)用戶優(yōu)先級、存儲位置或遠(yuǎn)程存儲網(wǎng)絡(luò)地址、相關(guān)網(wǎng)絡(luò)域名、相關(guān)內(nèi)容供應(yīng)商等??蛻舳擞嬎阊b置102、網(wǎng)絡(luò)計算供應(yīng)商106、NCC POP138和其它相關(guān)服務(wù)或裝置的特征可以包括(但不限于)處理能力、存儲器、存儲裝置、網(wǎng)絡(luò)連接性(例如,可用帶寬、延時或一致性)、物理或邏輯位置、預(yù)測穩(wěn)定性或失敗風(fēng)險、軟件或硬件配置文件、當(dāng)前、之前或預(yù)測未來可用資源(例如,可用存儲器或處理或多個同時打開的軟件應(yīng)用程序)等。應(yīng)用程序122的特征可以包括(但不限于)預(yù)定義遠(yuǎn)程配置(例如,由應(yīng)用程序開發(fā)者、用戶、操作系統(tǒng)、遠(yuǎn)程服務(wù)等定義的遠(yuǎn)程配置)、應(yīng)用程序的交互性、應(yīng)用程序122的之前、當(dāng)前或預(yù)測資源使用量、應(yīng)用程序122的大小和/或復(fù)雜度、關(guān)于與應(yīng)用程序122相關(guān)聯(lián)的代碼分配的授權(quán)或版權(quán)問題。
[0051]客戶端計算裝置102還可以考慮與內(nèi)容或定義域片段相關(guān)聯(lián)的安全威脅或風(fēng)險、客戶端計算裝置102或網(wǎng)絡(luò)計算供應(yīng)商106的優(yōu)先級、計算成本(例如,處理或帶寬的經(jīng)濟(jì)成本、資源使用量等)、預(yù)定優(yōu)先級或選擇信息、特定遠(yuǎn)程會話所需要的任何額外處理開銷、緩存狀態(tài)(例如,是否在NCC NOP138處、客戶端計算裝置102處或與網(wǎng)絡(luò)計算供應(yīng)商106相關(guān)聯(lián)的其它網(wǎng)絡(luò)存儲組件處緩存特定資源)、檢索應(yīng)用程序代碼或進(jìn)程數(shù)據(jù)所需的預(yù)測延遲或時間、優(yōu)選網(wǎng)絡(luò)計算供應(yīng)商或與特定計算供應(yīng)商對特定遠(yuǎn)程會話或服務(wù)水平達(dá)成的協(xié)議(無論與應(yīng)用程序、用戶、客戶端計算裝置或網(wǎng)絡(luò)計算供應(yīng)商相關(guān)聯(lián)的遠(yuǎn)程會話當(dāng)前是否作用)或任何其它因素。
[0052]在一些實施方案中,客戶端計算裝置102可以基于之前的行為或?qū)嵺`來確定特定子進(jìn)程的遠(yuǎn)程會話。例如,當(dāng)由相同(或可能不同)用戶加載應(yīng)用程序時,之前已確定特定子進(jìn)程的遠(yuǎn)程配置的客戶端計算裝置102可以自動選擇相同遠(yuǎn)程配置。作為另一實例,具有以需要擴(kuò)展處理的方式使用應(yīng)用程序的歷史的用戶可能使確定規(guī)定執(zhí)行遠(yuǎn)程會話中的大多數(shù)子進(jìn)程的遠(yuǎn)程進(jìn)程配置信息。在其它實施方案中,客戶端計算裝置102可以基于未來行為的預(yù)測來確定遠(yuǎn)程進(jìn)程配置信息。例如,客戶端計算裝置102可以基于分析對特定應(yīng)用程序作出的之前確定來確定遠(yuǎn)程進(jìn)程配置信息。可以在網(wǎng)絡(luò)計算供應(yīng)商106處在遠(yuǎn)程會話中部分或完全執(zhí)行應(yīng)用程序中以往需要大量計算資源的子進(jìn)程。通過說明可知,之前歷史分析和未來預(yù)測可以被視為作為遠(yuǎn)程進(jìn)程配置信息的基礎(chǔ)的多種因素中的一個或多個或可以在決定作出程序中具有決定性。通過說明可知,如上文參考圖5描述,客戶端計算裝置可以在運行應(yīng)用程序時監(jiān)控應(yīng)用程序處理和資源的使用,且可以在任何時刻再確定所更新的遠(yuǎn)程進(jìn)程配置信息。通過說明可知,這種所更新的遠(yuǎn)程進(jìn)程配置信息可以將子進(jìn)程或子進(jìn)程的各個方面從本地執(zhí)行移動到遠(yuǎn)程會話,從遠(yuǎn)程會話移動到本地執(zhí)行或其任何組
口 ο
[0053]在其它實施方案中,應(yīng)用程序內(nèi)容、應(yīng)用程序或與應(yīng)用程序相關(guān)聯(lián)的信息的片段可以規(guī)定或請求遠(yuǎn)程處理特定子進(jìn)程或以資源標(biāo)簽、元數(shù)據(jù)或其它形式使用特定遠(yuǎn)程進(jìn)程配置信息??蛻舳擞嬎阊b置102可以將所述請求當(dāng)作決定或可以將所述請求視為決定作出程序中要考慮的多種因素之一。
[0054]通過說明可知,客戶端計算裝置102可以基于任何因素或因素組合來確定遠(yuǎn)程會話配置信息。例如,客戶端計算裝置102可以基于單個因素來確定遠(yuǎn)程會話配置信息,或可以在作出確定時將比重指派給一種或多種因素。在一些實施方案中,客戶端計算裝置102的確定進(jìn)程可以基于上述一種或多種因素而改變。例如,通過未被使用帶寬有所剩余的網(wǎng)絡(luò)與網(wǎng)絡(luò)計算供應(yīng)商106通信的客戶端計算裝置102可以給諸如遠(yuǎn)程會話的網(wǎng)絡(luò)需求的因素賦予低比重,且可以給與應(yīng)用程序進(jìn)行的用戶交互的延時的因素賦予較高比重。在另一實施方案中,通過有限帶寬網(wǎng)絡(luò)或間歇性網(wǎng)絡(luò)連接性與網(wǎng)絡(luò)計算供應(yīng)商106通信的客戶端計算裝置102可以給處置通過網(wǎng)絡(luò)與遠(yuǎn)程會話通信的效率的因素賦予較高比重。通過說明可知,可以由客戶端計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106、替代計算裝置和/或任何其它裝置、組件或?qū)嶓w來確定遠(yuǎn)程會話配置信息的任何一個或多個方面或部分。遠(yuǎn)程會話配置信息的確定可以完全或部分基于從客戶端計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106、替代計算裝置和/或任何其它裝置、組件或?qū)嶓w的任何組合接收、獲取或收集的數(shù)據(jù)。
[0055]在方框612處,客戶端計算裝置102可以由遠(yuǎn)程會話配置信息例證識別為本地組件的任何組件或子進(jìn)程??蛻舳擞嬎阊b置102還可以例證任何本地組件,諸如處理、轉(zhuǎn)換和/或顯示由遠(yuǎn)程會話返回的處理結(jié)果所需要的數(shù)據(jù)轉(zhuǎn)換或顯示界面。作為特定實例,遠(yuǎn)程會話配置可能已將應(yīng)用程序的用戶界面和有關(guān)的處理識別為本地子進(jìn)程,且可能已將應(yīng)用程序的內(nèi)容面板中的圖像的顯示和處理識別為遠(yuǎn)程子進(jìn)程。根據(jù)這個實例,客戶端計算裝置102可以將與應(yīng)用程序相關(guān)聯(lián)的界面組件對象和有關(guān)代碼加載到客戶端計算裝置處的存儲器中。為了繼續(xù)這個實例,客戶端計算裝置102還可以加載鏈接到所加載的本地對象和代碼的數(shù)據(jù)轉(zhuǎn)換界面或組件。數(shù)據(jù)轉(zhuǎn)換界面或組件可以處置接收自網(wǎng)絡(luò)計算供應(yīng)商106的處理結(jié)果(諸如對應(yīng)于圖像表示的RDP顯示數(shù)據(jù))的處理和顯示。
[0056]在方框614處,客戶端計算裝置102可以將遠(yuǎn)程會話配置信息提供給網(wǎng)絡(luò)計算供應(yīng)商106??蛻舳擞嬎阊b置102還可以將初始進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商106。在說明性實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106使用注冊API以從客戶端計算裝置102接收遠(yuǎn)程會話配置信息。
[0057]如上文參考方框610和612論述,遠(yuǎn)程會話配置信息可以將程序的一個或多個應(yīng)用程序子進(jìn)程識別為遠(yuǎn)程會話。在一個實施方案中,遠(yuǎn)程會話配置信息可以包括對應(yīng)于用于在網(wǎng)絡(luò)計算供應(yīng)商106處執(zhí)行的所識別子進(jìn)程的一個或多個方面的可執(zhí)行代碼。在另一實施方案中,遠(yuǎn)程會話配置信息可以包括對與用于執(zhí)行為遠(yuǎn)程進(jìn)程的所識別子進(jìn)程相關(guān)聯(lián)的可執(zhí)行代碼的一個或多個參考。例如,網(wǎng)絡(luò)計算供應(yīng)商106可以在本地或聯(lián)網(wǎng)存儲組件中的客戶端計算裝置102處運行應(yīng)用程序的副本。在這個實例中,遠(yuǎn)程會話配置信息可以在應(yīng)用程序內(nèi)提供與遠(yuǎn)程會話相關(guān)聯(lián)的子進(jìn)程(例如,指令集和/或?qū)ο?的參考或識別。在另一實施方案中,遠(yuǎn)程會話配置信息可以包括對應(yīng)于用于例證網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話的子進(jìn)程的可執(zhí)行代碼、對象和/或數(shù)據(jù)的實際副本。
[0058]在一個特定實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以在NCC POP138處例證應(yīng)用程序的完整實例。例如,網(wǎng)絡(luò)計算供應(yīng)商106可以例證與在客戶端計算裝置102處執(zhí)行的應(yīng)用程序并行運行的應(yīng)用程序。在另一實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以例證并執(zhí)行一個或多個遠(yuǎn)程會話,每個對應(yīng)于在客戶端計算裝置處執(zhí)行的應(yīng)用程序的子進(jìn)程。
[0059]提供給網(wǎng)絡(luò)計算供應(yīng)商106的遠(yuǎn)程會話配置信息可以伴隨或跟隨有用于在網(wǎng)絡(luò)計算供應(yīng)商106處例證的所述一個或多個遠(yuǎn)程會話處進(jìn)行處理的初始進(jìn)程數(shù)據(jù)。通過說明可知,初始進(jìn)程數(shù)據(jù)可以包括數(shù)據(jù)集、對數(shù)據(jù)的一個或多個參考或其任何組合。例如,可以響應(yīng)于用戶對編輯特定圖像的請求而加載客戶端計算裝置102處的應(yīng)用程序。為了特定實例的目的,我們將假設(shè)與應(yīng)用程序相關(guān)聯(lián)的遠(yuǎn)程會話配置信息規(guī)定在網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話中執(zhí)行應(yīng)用程序的圖像操控子進(jìn)程。通過說明可知,遠(yuǎn)程會話可能需要基于特定圖像的副本來進(jìn)行操作。在一個實施方案中,如果圖像本地存儲在客戶端計算裝置102處,那么客戶端計算裝置102可以將包括圖像的副本的數(shù)據(jù)集作為初始進(jìn)程數(shù)據(jù)傳輸?shù)娇蛻舳擞嬎愎?yīng)商和存儲器供應(yīng)商。通過說明可知,在各個實施方案中,客戶端計算裝置可以根據(jù)網(wǎng)絡(luò)計算供應(yīng)商106處的API或根據(jù)如遠(yuǎn)程會話配置信息中規(guī)定的一個或多個通信協(xié)議傳輸圖像。
[0060]為了繼續(xù)上述特定實例,在另一實施方案中,我們可假設(shè)圖像存儲在遠(yuǎn)程存儲位置(例如與網(wǎng)絡(luò)計算供應(yīng)商106相關(guān)聯(lián)或可訪問網(wǎng)絡(luò)計算供應(yīng)商106的存儲組件)處、客戶端計算裝置102可以給網(wǎng)絡(luò)計算供應(yīng)商106提供包括網(wǎng)絡(luò)地址和/或其它信息的初始進(jìn)程數(shù)據(jù),從而允許網(wǎng)絡(luò)計算供應(yīng)商106獲取和/或加載圖像。在一個實施方案中,圖像可以本地存儲在客戶端計算裝置102處,且可以緩存或反射在一個或多個網(wǎng)絡(luò)存儲組件處。通過說明可知,關(guān)于這個實施方案,客戶端計算裝置102可發(fā)送存儲在緩存中的圖像的參考和/或檢驗和或散列值以確定所緩存的圖像是否是最新或正確的副本。通過說明可知,如果所緩存的圖像不是圖像的最新版本,那么網(wǎng)絡(luò)計算供應(yīng)商106可從客戶端計算裝置102請求新圖像而不是從緩存獲取過時圖像。
[0061]在各個實施方案中,可以由客戶端計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106或任何其它裝置或組件來確定是否將來自客戶端計算裝置102的數(shù)據(jù)或?qū)嶋H數(shù)據(jù)的參考提供給網(wǎng)絡(luò)計算供應(yīng)商106。通過說明可知,可以單獨或組合地基于多種因素來確定是否提供數(shù)據(jù)或?qū)嶋H數(shù)據(jù)的參考。這些因素包括(但不限于)連接性或裝置與存儲數(shù)據(jù)的數(shù)據(jù)存儲裝置或網(wǎng)絡(luò)組件之間的連接性的一個或多個特征、數(shù)據(jù)特征、計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106或其它裝置之間的連接特征、計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106或其它裝置處的資源使用等。例如,假設(shè)客戶端計算裝置102只具有間歇性通信網(wǎng)絡(luò)連接性。網(wǎng)絡(luò)計算供應(yīng)商106可以希望在連接性可用或預(yù)期連接性丟失時接收實際數(shù)據(jù)的副本。數(shù)據(jù)可以存儲在任何共享或本地存儲裝置、網(wǎng)絡(luò)組件或與網(wǎng)絡(luò)計算供應(yīng)商106、客戶端計算裝置102或任何其它裝置、實體或組件相關(guān)聯(lián)的其它數(shù)據(jù)存儲裝置處。
[0062]在提供遠(yuǎn)程會話配置信息和初始進(jìn)程數(shù)據(jù)之后,網(wǎng)絡(luò)計算供應(yīng)商106可以例證對應(yīng)于應(yīng)用程序的子進(jìn)程的一個或多個遠(yuǎn)程會話。下文參考圖7更詳細(xì)地論述說明性服務(wù)器端新遠(yuǎn)程會話常式。
[0063]在方框616處,客戶端計算裝置102可以和網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話交換進(jìn)程數(shù)據(jù)和處理結(jié)果。通過說明可知,網(wǎng)絡(luò)計算供應(yīng)商106可以將對應(yīng)于已由遠(yuǎn)程會話處理的進(jìn)程數(shù)據(jù)的結(jié)果的處理結(jié)果提供給客戶端計算裝置102。通過說明可知,處理結(jié)果可以以本領(lǐng)域中已知的任何形式或格式被提供給客戶端計算裝置102。在一個實施方案中,可以由被確定用于遠(yuǎn)程會話配置信息中的遠(yuǎn)程會話的通信協(xié)議來確定處理結(jié)果的形式。
[0064]例如,與圖形處理應(yīng)用程序相關(guān)聯(lián)的遠(yuǎn)程會話配置信息可以規(guī)定:對應(yīng)于處置包括用于顯示的大圖像的數(shù)據(jù)集的處理的子進(jìn)程的遠(yuǎn)程會話使用RDP協(xié)議以將處理結(jié)果傳送到客戶端計算裝置102。通過說明可知,處理結(jié)果可能只對應(yīng)于將在客戶端計算裝置處顯示的圖像的段或分辨率,且因此傳送的速度可能更加快于需要整個圖像文件時的傳送速度。在另一實施方案中,與數(shù)據(jù)庫查看器應(yīng)用程序相關(guān)聯(lián)的遠(yuǎn)程會話配置信息可以規(guī)定:對應(yīng)于處置返回大量數(shù)據(jù)庫表的搜索的執(zhí)行的子進(jìn)程的遠(yuǎn)程會話可以規(guī)定通過FTP協(xié)議傳送由壓縮的逗號分離值(CSV)格式組成的處理結(jié)果。如上所述,處理結(jié)果可能只對應(yīng)于將在客戶端計算裝置處顯示的數(shù)據(jù)集的段,且因此可能只包括所返回的所有結(jié)果的少量子段。通過說明可知,客戶端計算裝置102處的用戶向下滾屏并看見更多結(jié)果的請求將使對應(yīng)于將顯示的額外結(jié)果的所更新的處理結(jié)果被發(fā)送到客戶端計算裝置102。通過說明可知,只返回對應(yīng)于已處理的數(shù)據(jù)集的子集的處理結(jié)果可以允許客戶端計算裝置102通過無需管理完整的數(shù)據(jù)集來節(jié)省存儲器或其它計算資源。
[0065]在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以提供與包括安全或?qū)S脭?shù)據(jù)的數(shù)據(jù)集相關(guān)聯(lián)的處理結(jié)果。通過說明可知,安全或?qū)S脭?shù)據(jù)可以存儲在網(wǎng)絡(luò)計算供應(yīng)商106處以防止在不安全客戶端計算裝置102處進(jìn)行未經(jīng)授權(quán)傳播或存儲。通過說明可知,處理結(jié)果可以只對應(yīng)于所請求數(shù)據(jù)的非敏感方面的表示,且網(wǎng)絡(luò)計算供應(yīng)商106可以不發(fā)送安全或?qū)S脭?shù)據(jù)的表示,或可以發(fā)送安全或?qū)S脭?shù)據(jù)的有限表示。
[0066]作為特定實例,在一個實施方案中,處理結(jié)果可以包括對應(yīng)于與應(yīng)用程序122相關(guān)聯(lián)的界面或應(yīng)用程序內(nèi)容的顯示數(shù)據(jù)。例如,NCCP0P138可以處理在遠(yuǎn)程會話中運行的應(yīng)用程序的并行實例中的進(jìn)程數(shù)據(jù),且可以生成包括將經(jīng)由諸如遠(yuǎn)程桌面協(xié)議(RDP)的通信協(xié)議發(fā)送到客戶端計算裝置102的應(yīng)用程序的并行實例的顯示內(nèi)容或界面的處理結(jié)果。在一個實施方案中,NCC P0P138可以發(fā)送對應(yīng)于應(yīng)用程序中的界面和內(nèi)容的布局和顯示的RDP處理結(jié)果。在另一實施方案中,NCC POP138可以只發(fā)送包括任何顯示應(yīng)用程序和內(nèi)容的RDP處理結(jié)果,而不會發(fā)送包括與應(yīng)用程序相關(guān)聯(lián)的界面元件中的任何一個的RDP處理結(jié)果。通過說明可知,只包括對應(yīng)于顯示應(yīng)用程序內(nèi)容的RDP處理結(jié)果可以允許客戶端計算實例102處的應(yīng)用程序通過將RDP處理結(jié)果聚集在應(yīng)用程序的內(nèi)容顯示區(qū)域中來顯示所述內(nèi)容且無需任何進(jìn)一步處理。
[0067]客戶端計算裝置102可以獲取由所述一個或多個遠(yuǎn)程會話提供的處理結(jié)果且可以通過數(shù)據(jù)轉(zhuǎn)換服務(wù)或組件或其它手段將處理結(jié)果提供給應(yīng)用程序122。在一個實施方案中,在客戶端計算裝置102處執(zhí)行的應(yīng)用程序122可以被具體寫入或配置用于遠(yuǎn)程會話處理,且可以具有一個或多個組件以處置與進(jìn)程數(shù)據(jù)相關(guān)聯(lián)的處理結(jié)果的處理、轉(zhuǎn)換和顯示。例如,被寫入用于遠(yuǎn)程會話處理的圖形應(yīng)用程序可以具有從網(wǎng)絡(luò)計算供應(yīng)商106接受對應(yīng)于圖像文件的表示的RDP處理結(jié)果的組件,且可以使用圖像的所述表示更新應(yīng)用程序122中的內(nèi)容顯示面板。在另一實施方案中,可以不對遠(yuǎn)程會話處理寫入在客戶端計算裝置102處執(zhí)行的應(yīng)用程序122,且客戶端計算裝置102可以獲取應(yīng)用程序122的處理結(jié)果、處理所述處理結(jié)果以提取信息,且將所提取的信息置于與應(yīng)用程序122相關(guān)聯(lián)的適當(dāng)存儲器位置、緩存位置、寄存器或存儲位置中。從應(yīng)用程序122的觀點來看,處理結(jié)果因此看起來可能已由在客戶端計算裝置處本地執(zhí)行的線程或其它子進(jìn)程而生成。[0068]客戶端計算裝置102還可以將額外進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話。在一個實施方案中,將數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商106可以包括提供如上文參考方框614論述的數(shù)據(jù)、參考等。例如,在各個實施方案中,客戶端計算裝置102可以提供數(shù)據(jù)或?qū)?shù)據(jù)的參考(包括文件、用戶交互數(shù)據(jù)、操作系統(tǒng)或邏輯對象結(jié)構(gòu)、可變數(shù)據(jù)、二進(jìn)制或結(jié)構(gòu)化應(yīng)用進(jìn)程數(shù)據(jù)或用于在遠(yuǎn)程會話下處理的任何其它種類或格式的數(shù)據(jù))。通過說明可知,一個或多個遠(yuǎn)程會話可以處理這個數(shù)據(jù)并如上所述般返回處理結(jié)果。
[0069]可以繼續(xù)交換數(shù)據(jù)和處理結(jié)果直到網(wǎng)絡(luò)計算供應(yīng)商106處的遠(yuǎn)程會話結(jié)束、應(yīng)用程序122結(jié)束或網(wǎng)絡(luò)計算供應(yīng)商106與客戶端計算裝置102之間的連接中斷為止。常式600結(jié)束于方框618。
[0070]圖7是示出了由圖1的網(wǎng)絡(luò)計算供應(yīng)商106實施的新遠(yuǎn)程會話常式700的流程圖。新遠(yuǎn)程會話常式700開始于方框702。在方框704處,網(wǎng)絡(luò)計算供應(yīng)商106從客戶端計算裝置102獲取遠(yuǎn)程會話配置信息。如上文參考圖6描述,在一個實施方案中,遠(yuǎn)程會話配置信息可以識別和/或描述在應(yīng)例證遠(yuǎn)程會話的客戶端計算裝置102處執(zhí)行的應(yīng)用程序的一個或多個子進(jìn)程。通過說明可知,遠(yuǎn)程會話配置信息可以伴隨有初始進(jìn)程數(shù)據(jù)以供遠(yuǎn)程會話進(jìn)行處理。
[0071]在方框706處,網(wǎng)絡(luò)計算供應(yīng)商106可以基于遠(yuǎn)程會話配置信息選擇相關(guān)NCC POP以例證新遠(yuǎn)程會話。如上文參考圖1論述,網(wǎng)絡(luò)計算供應(yīng)商106可以包括跨任何數(shù)量的物理或邏輯位置分布的任何數(shù)量的NCC POP。網(wǎng)絡(luò)計算供應(yīng)商106可以基于任何數(shù)量的因素(包括(但不限于)可用NCC POP資源(例如,可用存儲器、處理器負(fù)載、網(wǎng)絡(luò)負(fù)載等)、將遠(yuǎn)程會話托管在NCC POP處的經(jīng)濟(jì)成本、客戶端計算裝置102各自的NCC POP位置、NCC POP緩存狀態(tài)(例如,應(yīng)用程序?qū)嵗?、?yīng)用進(jìn)程數(shù)據(jù)或另一資源是否已存儲在NCC POP緩存中)等)選擇NCC POP以托管遠(yuǎn)程會話。
[0072]在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106可以選擇多個NCC POP以托管遠(yuǎn)程會話。例如,網(wǎng)絡(luò)計算供應(yīng)商106可以在網(wǎng)絡(luò)中選擇具有不同邏輯位置的兩個NCC POP。每個NCCPOP可以獨立例證代表客戶端計算裝置102的遠(yuǎn)程會話,且客戶端計算裝置102可以從第一NCC POP接受數(shù)據(jù)以返回處理結(jié)果。在由網(wǎng)絡(luò)計算供應(yīng)商106選擇之后,NCCP0P138可以獲取與將托管的遠(yuǎn)程會話相關(guān)聯(lián)的遠(yuǎn)程會話配置信息和任何相關(guān)初始進(jìn)程數(shù)據(jù)的一個或多個方面。在一個實施方案中,NCCP0P138可以由網(wǎng)絡(luò)計算供應(yīng)商106的組件將遠(yuǎn)程會話配置信息轉(zhuǎn)發(fā)到NCC POP138ο在另一實施方案中,NCC POP138或客戶端計算裝置102可以接收連接信息,從而允許在NCC POP138與客戶端計算裝置102之間建立直接通信。通過說明可知,NCC POP138可以具有遠(yuǎn)程會話配置信息和/或最初提供給網(wǎng)絡(luò)計算供應(yīng)商106的初始進(jìn)程數(shù)據(jù),可以具有信息子集(例如,只具有描述對應(yīng)于遠(yuǎn)程會話請求的應(yīng)用程序的特定子進(jìn)程的信息)或可以被提供原始遠(yuǎn)程會話配置信息中沒有包括的額外信息。
[0073]在方框708處,在選擇NCC POP138之后,網(wǎng)絡(luò)計算供應(yīng)商106可以使NCC POP138例證新遠(yuǎn)程會話。通過說明可知,例證新遠(yuǎn)程會話可以包括在NCC POP138加載新虛擬機(jī)實例和/或應(yīng)用程序?qū)嵗?、預(yù)留或分配裝置存儲器、存儲裝置或緩存空間、進(jìn)程或時間、網(wǎng)絡(luò)帶寬或新遠(yuǎn)程會話的其它計算或網(wǎng)絡(luò)資源。通過說明可知,新遠(yuǎn)程會話的一個或多個特征可以基于包括在遠(yuǎn)程會話配置信息中的信息。例如,遠(yuǎn)程會話配置信息可以包括可執(zhí)行代碼和/或可執(zhí)行代碼的參考、用于由可執(zhí)行代碼處理的一個或多個對象或?qū)ο竽P?、框架或用于?shù)據(jù)轉(zhuǎn)換和/或處理的框架的識別、客戶端計算裝置類型或應(yīng)用程序類型、裝置操作系統(tǒng)、裝置屏幕分辨率或顯示面積、應(yīng)用程序配置信息或設(shè)置和/或定義應(yīng)用程序122、應(yīng)用程序子進(jìn)程或客戶端計算裝置102的處理、優(yōu)先級或能力的任何其它信息。
[0074]在一個實施方案中,NCC POP138可以使用與應(yīng)用程序122相同或類似的能力例證應(yīng)用程序?qū)嵗?。通過說明可知,使用與應(yīng)用程序122相同或類似的能力維持并行應(yīng)用程序可以允許NCC POP138在運行于特定客戶端計算裝置102上的特定應(yīng)用程序122的整個背景下處理進(jìn)程數(shù)據(jù)。在另一實施方案中,NCCP0P138可以使用與計算裝置102相同或類似的能力例證虛擬機(jī)實例。通過說明可知,使用與客戶端計算裝置102相同或類似的能力維持虛擬機(jī)實例可以允許NCCP0P138根據(jù)顯示在特定客戶端計算裝置102上的適當(dāng)維度和布局來處理進(jìn)程數(shù)據(jù)。
[0075]在一些實施方案中,除了發(fā)布新遠(yuǎn)程會話以外或作為發(fā)布新遠(yuǎn)程會話的替代,NCCPOP138可以使用現(xiàn)有虛擬機(jī)實例和/或應(yīng)用程序或遠(yuǎn)程會話實例。例如,在選擇NCC POP138之后,網(wǎng)絡(luò)計算供應(yīng)商106可以造成NCC P0P138使遠(yuǎn)程會話的實例(例如,對應(yīng)于應(yīng)用程序122的子進(jìn)程的現(xiàn)有遠(yuǎn)程會話或應(yīng)用程序122的現(xiàn)有并行實例)和/或虛擬機(jī)實例(諸如之前在NCC POP138處例證的一個或多個實例)與遠(yuǎn)程會話配置信息內(nèi)的遠(yuǎn)程會話請求相關(guān)聯(lián)。通過說明可知,現(xiàn)有遠(yuǎn)程會話和/或虛擬機(jī)實例可以對應(yīng)于與應(yīng)用程序和客戶端計算裝置102或用戶相關(guān)聯(lián)的另一遠(yuǎn)程會話(諸如并行應(yīng)用程序或其它遠(yuǎn)程子常式),或可以是與不同客戶端計算裝置、用戶或應(yīng)用程序?qū)嵗嚓P(guān)聯(lián)的之前例證遠(yuǎn)程會話。在其它實施方案中,NCC P0P138可以例證新遠(yuǎn)程會話或現(xiàn)有虛擬機(jī)實例中的其它應(yīng)用程序進(jìn)程,或可以以任何數(shù)量的其它方式組合之前例證軟件進(jìn)程和最近例證軟件進(jìn)程的使用。在其它實施方案中,網(wǎng)絡(luò)計算供應(yīng)商或NCC P0P138可以基于遠(yuǎn)程會話配置信息中定義的單個子常式來例證任何數(shù)量的新虛擬機(jī)實例和/或遠(yuǎn)程會話(或充分使用現(xiàn)有例證實例)。
[0076]在方框710處,網(wǎng)絡(luò)計算供應(yīng)商106可以處理上文方框704中或之后提供的任何初始進(jìn)程數(shù)據(jù)。本領(lǐng)域一般技術(shù)人員應(yīng)明白,在各個實施方案中,進(jìn)程數(shù)據(jù)(例如,文件數(shù)據(jù)、應(yīng)用程序或操作系統(tǒng)對象、變量值等)可以對應(yīng)于由客戶端計算裝置102提供的原始二進(jìn)制數(shù)據(jù)、壓縮或加密數(shù)據(jù)、存儲在數(shù)字文件柜或其它網(wǎng)絡(luò)存儲位置中或與網(wǎng)絡(luò)計算供應(yīng)商106或客戶端計算裝置102相關(guān)聯(lián)的緩存組件處的數(shù)據(jù)等。通過說明可知,網(wǎng)絡(luò)計算供應(yīng)商106可以將基于包括在進(jìn)程數(shù)據(jù)中的任何參考的資源請求提供給一個或多個內(nèi)容源(諸如內(nèi)容供應(yīng)商、內(nèi)容傳遞網(wǎng)絡(luò)(CDN)服務(wù)供應(yīng)商和緩存)。
[0077]繼續(xù)方框710,網(wǎng)絡(luò)計算供應(yīng)商106可以處理初始進(jìn)程數(shù)據(jù)以生成將提供給客戶端計算裝置102的處理結(jié)果。如上所述,在一個實施方案中,NCC P0P138處的遠(yuǎn)程會話可以包括與應(yīng)用程序的子進(jìn)程相關(guān)聯(lián)的可執(zhí)行代碼。通過說明可知,如果對應(yīng)于遠(yuǎn)程會話的可執(zhí)行代碼是由少于應(yīng)用程序的所有代碼組成,那么NCC P0P138可以例證執(zhí)行代碼的執(zhí)行環(huán)境或測試用具。通過說明可知,例證執(zhí)行環(huán)境可以包括將一個或多個對象或變量加載到虛擬機(jī)實例的存儲器或與遠(yuǎn)程實例相關(guān)聯(lián)的裝置存儲器中。例如,NCC POP138例證對應(yīng)于用于處理圖像的子進(jìn)程的代碼段可以加載將由子進(jìn)程使用的任何變量和將圖像文件加載到存儲器中,且此外可以初始化特殊存儲器或存儲位置以采集代碼執(zhí)行的結(jié)果。從遠(yuǎn)程會話內(nèi)執(zhí)行的子進(jìn)程的觀點來看,似乎看起來所述代碼在客戶端計算裝置102處的應(yīng)用程序內(nèi)正常執(zhí)行。[0078]在一個實施方案中,網(wǎng)絡(luò)計算供應(yīng)商106還可以循序或同時例證包括并行應(yīng)用程序進(jìn)程的遠(yuǎn)程會話和在客戶端計算裝置102處運行的應(yīng)用程序?qū)嵗?。通過說明可知,除了在客戶端計算裝置處執(zhí)行的應(yīng)用程序以外,還可以在任何數(shù)量的NCC POP處的遠(yuǎn)程會話中加載并行應(yīng)用程序。每個遠(yuǎn)程會話可以例證相同或不同于任何其它遠(yuǎn)程會話的應(yīng)用程序代碼的方面或范圍,且每個遠(yuǎn)程會話可以使用相同或不同于任何其它遠(yuǎn)程會話的通信協(xié)議。提供給NCC P0P138的進(jìn)程數(shù)據(jù)可以包括來自用戶與客戶端計算裝置的應(yīng)用程序的實例進(jìn)行的交互的用戶交互數(shù)據(jù)和使應(yīng)用程序維持并行操作所必需的任何其它系統(tǒng)、應(yīng)用程序或裝置事件。通過說明可知,維持并行應(yīng)用程序可以允許在執(zhí)行代碼的碎片不需要特殊執(zhí)行環(huán)境或測試用具的情況下在NCC P0P138處執(zhí)行并處理應(yīng)用程序功能性。
[0079]在一個實施方案中,可以在客戶端計算裝置102處執(zhí)行且同時在NCC POP138處正常執(zhí)行的并行應(yīng)用程序?qū)嵗帟和;蛐遁d識別用于由遠(yuǎn)程進(jìn)程配置信息進(jìn)行遠(yuǎn)程執(zhí)行的子進(jìn)程。在NCC P0P138處的并行應(yīng)用程序完成子進(jìn)程處理的某個方面之后,可以將處理結(jié)果提供給客戶端計算裝置處的并行應(yīng)用程序,且并行實例可以進(jìn)行并行執(zhí)行。在一些實施方案中,在客戶端計算裝置102處暫停或卸載子進(jìn)程和等待來自NCC P0P138的處理結(jié)果可以允許客戶端計算裝置102避免提交計算資源于客戶端計算裝置102處的處理。在另一實施方案中,客戶端計算裝置102處的并行應(yīng)用程序?qū)嵗梢詫CC P0P138執(zhí)行相關(guān)于與遠(yuǎn)程會話處的子進(jìn)程的執(zhí)行并行的子進(jìn)程執(zhí)行的處理。通過說明可知,客戶端計算裝置102可以產(chǎn)生子進(jìn)程的結(jié)果集,且從NCC P0P138接收對應(yīng)于子進(jìn)程的結(jié)果的處理結(jié)果。在各個實施方案中,客戶端可以使用這個結(jié)果復(fù)制品來核對處理結(jié)果的精確度,或可以(例如,從本地子進(jìn)程或并行執(zhí)行遠(yuǎn)程會話的任何數(shù)量的NCC POP之一)接受將返回的第一結(jié)果,且取消較慢程序的進(jìn)一步執(zhí)行。通過說明可知,并行運行程序和接受將返回的第一結(jié)果可以確??蛻舳擞嬎阊b置102盡快將結(jié)果提供給用戶。
[0080]如上文參考圖3論述,NCC P0P138處執(zhí)行的遠(yuǎn)程會話可以直接從客戶端計算裝置102獲取進(jìn)程數(shù)據(jù)。在其它實施方案中,可以響應(yīng)于遠(yuǎn)程會話配置信息而由NCC POP138從內(nèi)容供應(yīng)商CDN或緩存檢索進(jìn)程數(shù)據(jù)。由客戶端計算裝置102提供的進(jìn)程數(shù)據(jù)可以包括與遠(yuǎn)程會話相關(guān)聯(lián)的所有數(shù)據(jù)或內(nèi)容,或可以補(bǔ)充存在于NCC P0P138中的緩存中、檢索自內(nèi)容供應(yīng)商或CDN或獲取自某個其它源的內(nèi)容。在一個實施方案中,NCC POP138可以從本地緩存獲取所有請求內(nèi)容,且可以不從客戶端計算裝置102獲取任何未處理資源或內(nèi)容。通過說明可知,每當(dāng)需要處理時NCC P0P138可以從客戶端計算裝置102獲取進(jìn)程數(shù)據(jù),或可以維持應(yīng)用進(jìn)程數(shù)據(jù)和/或內(nèi)容的并行集以供處理。
[0081]繼續(xù)參考圖7,在方框702處,網(wǎng)絡(luò)計算供應(yīng)商106可以將初始處理結(jié)果提供給客戶端計算裝置102以供進(jìn)一步處理和顯示。在方框714處,網(wǎng)絡(luò)計算供應(yīng)商可以繼續(xù)與客戶端交換數(shù)據(jù)和處理結(jié)果。為了另一實例的目的,下文參考圖8描述由客戶端計算裝置102實施的說明性遠(yuǎn)程會話用戶交互常式800。在方框716處,新遠(yuǎn)程會話常式700結(jié)束。
[0082]通過說明可知,在一個實施方案中,可以由任何其它計算裝置或計算裝置集執(zhí)行這里被描述為由網(wǎng)絡(luò)計算供應(yīng)商106執(zhí)行的功能性的一個或多個方面。例如,在一個實施方案中,可以由與客戶端計算裝置102的用戶或任何其它用戶或?qū)嶓w相關(guān)聯(lián)的一個或多個計算裝置(諸如個人計算機(jī)、平板電腦、智能手機(jī)等)執(zhí)行這里被描述為由網(wǎng)絡(luò)計算供應(yīng)商106執(zhí)行的功能性。在一個實施方案中,所述一個或多個計算裝置可以物理或邏輯近距客戶端計算裝置102。所述一個或多個計算裝置可以由廣域網(wǎng)或局域網(wǎng)通過有線或無線連接而鏈接,或可以由任何數(shù)量的傳輸機(jī)構(gòu)或通信協(xié)議(包括藍(lán)牙、紅外線等)鏈接。例如,在一個實施方案中,諸如智能手機(jī)的客戶端計算裝置102可以通過藍(lán)牙將遠(yuǎn)程會話配置信息提供給第二計算裝置(諸如附近個人計算機(jī))?;谶h(yuǎn)程配置信息,第二計算裝置可以例證對應(yīng)于在客戶端計算裝置102上運行的應(yīng)用程序的各個子進(jìn)程的一個或多個遠(yuǎn)程會話,且可以以與上文論述的網(wǎng)絡(luò)計算供應(yīng)商106相同的方式將處理結(jié)果返回到客戶端計算裝置102。通過說明可知,在本地機(jī)器上例證遠(yuǎn)程會話可以允許當(dāng)只使用本地裝置的處理能力時網(wǎng)絡(luò)計算供應(yīng)商106上的遠(yuǎn)程處理的許多優(yōu)勢。在一個實施方案中,客戶端計算裝置102可以將第一遠(yuǎn)程會話配置信息提供給替代計算裝置以使替代計算裝置例證對應(yīng)于應(yīng)用程序122的第一子進(jìn)程的第一遠(yuǎn)程會話,且還可以將第二遠(yuǎn)程會話配置信息提供給網(wǎng)絡(luò)計算供應(yīng)商106以使網(wǎng)絡(luò)計算供應(yīng)商106例證對應(yīng)于應(yīng)用程序122的第二子進(jìn)程的第二遠(yuǎn)程會話。通過說明可知,任何數(shù)量的替代計算裝置或網(wǎng)絡(luò)計算供應(yīng)商106均可以例證與在客戶端計算裝置102處運行的應(yīng)用程序122的一個或多個子進(jìn)程相關(guān)聯(lián)的遠(yuǎn)程會話。
[0083]在另一實施方案中,客戶端計算裝置102可以在遠(yuǎn)程會話配置信息中規(guī)定:如果某些條件是真,那么諸如個人計算機(jī)的本地裝置只例證應(yīng)用程序的特定子進(jìn)程的遠(yuǎn)程會話。如果不滿足條件,那么本地裝置無法例證遠(yuǎn)程會話和/或可以將遠(yuǎn)程會話配置信息遞交給網(wǎng)絡(luò)計算供應(yīng)商106以反而或此外請求網(wǎng)絡(luò)計算供應(yīng)商106例證遠(yuǎn)程會話。通過說明可知,遠(yuǎn)程會話例證存在可以存在任何數(shù)量的轉(zhuǎn)向級別。例如,遠(yuǎn)程會話配置信息可以規(guī)定,如果滿足某些第一條件,那么第一本地裝置例證遠(yuǎn)程會話,且如果不滿足,那么如果滿足某些第二條件,那么第二本地裝置例證遠(yuǎn)程會話,且如果不滿足,那么網(wǎng)絡(luò)計算供應(yīng)商106例證遠(yuǎn)程會話。在另一實施方案中,遠(yuǎn)程會話配置信息可以規(guī)定,第一網(wǎng)絡(luò)計算供應(yīng)商106例證遠(yuǎn)程會話,且如果否,那么第二網(wǎng)絡(luò)計算供應(yīng)商例證遠(yuǎn)程會話等。在其它實施方案中,一個或多個裝置或一個或多個網(wǎng)絡(luò)計算供應(yīng)商106可以并行例證遠(yuǎn)程會話。例如,客戶端計算裝置102可以將遠(yuǎn)程會話配置信息提供給替代計算裝置和網(wǎng)絡(luò)計算供應(yīng)商106。通過說明可知,遠(yuǎn)程會話配置信息可以使替代計算裝置和網(wǎng)絡(luò)計算供應(yīng)商106均例證與應(yīng)用程序122的相同子進(jìn)程相關(guān)聯(lián)的遠(yuǎn)程會話。在一個實施方案中,替代計算裝置102和網(wǎng)絡(luò)計算供應(yīng)商106均可以處理與子進(jìn)程相關(guān)聯(lián)的指令,且均可以將處理結(jié)果提供給客戶端計算裝置??蛻舳擞嬎阊b置可以接受將提供的第一處理結(jié)果,或可以基于預(yù)定義或動態(tài)確定的優(yōu)先級接受特定處理結(jié)果。
[0084]雖然這里將落在另一裝置或網(wǎng)絡(luò)計算計算供應(yīng)商以外的指令(S卩,遞交關(guān)于應(yīng)用程序的子進(jìn)程的遠(yuǎn)程會話的例證的請求或信息)描述為包括在由客戶端計算裝置102生成的遠(yuǎn)程會話配置數(shù)據(jù)中,但是應(yīng)了解可以由如上所述的任何數(shù)量的裝置或網(wǎng)絡(luò)計算供應(yīng)商106動態(tài)確定落在替代裝置或網(wǎng)絡(luò)計算供應(yīng)商之外的決定,且指令可以包括或附屬在遠(yuǎn)程會話配置信息中或被編碼和/或由任何其它手段遞交給其它裝置或網(wǎng)絡(luò)計算供應(yīng)商。
[0085]圖8是示出了由客戶端計算裝置102實施的遠(yuǎn)程會話用戶交互常式800的流程圖。遠(yuǎn)程會話用戶交互常式800開始于方框802。通過說明可知,遠(yuǎn)程會話用戶交互常式800可以開始于例證NCC POP138處的新遠(yuǎn)程會話之后。例如,程序用戶交互常式800可以對應(yīng)于上文圖7的方框714。
[0086]通過說明可知,客戶端計算裝置102處的應(yīng)用程序可以具有一個或多個交互元件,諸如表單、按鈕、動畫等。與這些交互元件進(jìn)行的用戶交互可能需要由一個或多個子進(jìn)程處理并顯示數(shù)據(jù)。例如,選擇應(yīng)用程序中的下拉菜單中的元件可能需要處理且可以改變應(yīng)用程序的配置或視覺外觀。在其它實施方案中,任何其它系統(tǒng)或應(yīng)用程序事件或其它觸發(fā)程序均可能需要處理。例如,完成應(yīng)用程序中的數(shù)據(jù)處理子進(jìn)程可以觸發(fā)執(zhí)行數(shù)據(jù)格式化并顯示子進(jìn)程。通過說明可知且如上文參考圖6和圖7論述,取決于遠(yuǎn)程會話配置信息,可以在客戶端計算裝置102處本地處置處理或可以將處理處置為在NCC POP138處執(zhí)行的遠(yuǎn)程會話。例如,如果遠(yuǎn)程會話配置信息規(guī)定進(jìn)行大量本地處理,那么可以在客戶端計算裝置102處本地處置各種用戶交互和其它處理。通過說明可知,在一些情況下,在客戶端計算裝置102處本地處置用戶交互可以允許得到更好的響應(yīng)和更少的延遲。例如,因為對應(yīng)于簡單的用戶交互(例如,選擇收音機(jī)按鈕或?qū)⑽淖执蛴〉侥硞€欄中)的進(jìn)程數(shù)據(jù)無需被發(fā)送到NCC P0P138以供處理,所以所述交互可以更快執(zhí)行。
[0087]作為另一實例,如果遠(yuǎn)程會話配置信息規(guī)定內(nèi)容的大量遠(yuǎn)程處理,那么可以將與顯示內(nèi)容進(jìn)行的所有用戶交互處置為在各個NCC POP上例證的一個或多個遠(yuǎn)程會話處的遠(yuǎn)程用戶交互。例如,在一個實施方案中,如上文參考圖7所述,NCC POP138可以運行包括在客戶端計算裝置102處執(zhí)行的應(yīng)用程序122的并行實例的遠(yuǎn)程會話。通過說明可知,用戶輸入(例如,鍵盤輸入和光標(biāo)位置)可以被封裝在RDP協(xié)議數(shù)據(jù)單元中且跨網(wǎng)絡(luò)104傳輸?shù)絅CC POP138處的遠(yuǎn)程會話中的并行應(yīng)用程序。通過說明可知,NCCP0P138可以將用戶交互應(yīng)用于并行應(yīng)用程序并將由對應(yīng)于應(yīng)用程序和應(yīng)用程序內(nèi)容的更新表示的更新位圖和界面數(shù)據(jù)組成的處理結(jié)果傳輸返回到客戶端計算裝置102。通過說明可知,因為必須通過網(wǎng)絡(luò)遞交數(shù)據(jù)且數(shù)據(jù)受限于網(wǎng)絡(luò)延時,在NCC P0P138處遠(yuǎn)程處置與應(yīng)用程序的用戶交互可以對界面響應(yīng)產(chǎn)生負(fù)面影響;然而,因為NCC POP138的處理延時可能基本上低于客戶端計算裝置102的處理延時,需要進(jìn)行大量處理的程序在被處置為遠(yuǎn)程用戶交互時可以更好地執(zhí)行。
[0088]在方框804處,客戶端計算裝置102獲取子進(jìn)程事件。通過說明可知,子進(jìn)程事件可以包括任何系統(tǒng)或用戶交互、應(yīng)用程序或系統(tǒng)事件或觸發(fā)程序或執(zhí)行應(yīng)用程序122的子進(jìn)程的一個或多個方面的其它類型的數(shù)據(jù)。這個事件可以包括與如上所述的本地界面組件或內(nèi)容進(jìn)行的交互,或可以是由應(yīng)用程序的另一子進(jìn)程或操作系統(tǒng)生成的事件。取決于如圖6和圖7和上文描述的組件或元件的本質(zhì)和由遠(yuǎn)程會話配置信息規(guī)定的處理劃分,由子進(jìn)程處理這個事件可能需要進(jìn)行本地和/或遠(yuǎn)程處理。在方框806處,客戶端計算裝置102(例如,基于遠(yuǎn)程會話配置信息)確定子進(jìn)程的交互處理需求。
[0089]在決定方框808處,如果完全本地處理子進(jìn)程或子進(jìn)程具有本地處理的任何方面(例如,簡單界面反饋、將提供給遠(yuǎn)程會話的進(jìn)程數(shù)據(jù)的準(zhǔn)備等),那么常式800移動到方框810以在客戶端計算裝置102處處理子進(jìn)程的本地方面。通過說明可知且如上所述,處理諸如本地更新界面組件和其它元件的方面可以允許應(yīng)用程序提供各自用戶界面和內(nèi)容。在處理子進(jìn)程的任何本地方面之后或如果子進(jìn)程不具有任何本地元件(例如,使用RDP通信協(xié)議以接收并顯示處理結(jié)果的位圖的應(yīng)用程序),那么常式800移動到?jīng)Q定方框812。如果完全遠(yuǎn)程處理子進(jìn)程或子進(jìn)程具有需要處理的遠(yuǎn)程方面,那么常式800移動到方框814并將進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商106。在一個實施方案中,在大量服務(wù)器端遠(yuǎn)程會話配置信息的情況下,進(jìn)程數(shù)據(jù)可以包括用戶交互數(shù)據(jù),諸如輸入數(shù)據(jù)、光標(biāo)位置或鍵盤輸入(例如,封裝在RDP或類似協(xié)議中)。在一些實施方案中,包括諸如光標(biāo)位置的遠(yuǎn)程用戶交互數(shù)據(jù)的進(jìn)程數(shù)據(jù)可以不斷提供給網(wǎng)絡(luò)計算供應(yīng)商106,而在其它實施方案中,包括遠(yuǎn)程用戶交互數(shù)據(jù)的進(jìn)程數(shù)據(jù)在與特定事件或子進(jìn)程執(zhí)行相關(guān)聯(lián)時只可以被提供給網(wǎng)絡(luò)計算供應(yīng)商106。
[0090]在方框816處,客戶端計算裝置102從網(wǎng)絡(luò)計算供應(yīng)商106獲取更新處理結(jié)果,網(wǎng)絡(luò)計算供應(yīng)商106已處理任何提供的進(jìn)程數(shù)據(jù)。在方框818處,客戶端計算裝置102對處理結(jié)果執(zhí)行所需的任何額外處理和/或在方框810中執(zhí)行的本地處理(例如,基于遠(yuǎn)程會話配置信息)。在一個實施方案中,這可以包括轉(zhuǎn)換或準(zhǔn)備處理結(jié)果以整合返回到應(yīng)用程序122的流程中。在方框820處,程序用戶交互常式800結(jié)束。通過說明可知,可以響應(yīng)于其它事件觸發(fā)應(yīng)用程序122的一個或多個子進(jìn)程的執(zhí)行而再次將常式執(zhí)行任何次數(shù)。
[0091]通過說明可知,由網(wǎng)絡(luò)計算供應(yīng)商106例證的遠(yuǎn)程會話可以終止于應(yīng)用程序或應(yīng)用程序的某個方面結(jié)束或終止時或可以終止于遠(yuǎn)程會話由在客戶端計算裝置102處執(zhí)行的子進(jìn)程取代時(例如,如果更新遠(yuǎn)程進(jìn)程配置信息規(guī)定應(yīng)本地執(zhí)行之前遠(yuǎn)程進(jìn)程)或可以根據(jù)計時器或其它事件而終止。通過說明可知,可以由客戶端計算裝置102、網(wǎng)絡(luò)計算供應(yīng)商106、NCC P0P138或其任何組合來決定終止遠(yuǎn)程會話。在一個實施方案中,如果遠(yuǎn)程會話由于超時而自動終止但是應(yīng)用程序?qū)嵗员4嬖诳蛻舳擞嬎阊b置102處(例如,如果用戶已停止與應(yīng)用程序交互且沒有更多進(jìn)程數(shù)據(jù)被發(fā)送到遠(yuǎn)程會話),那么隨后用戶與內(nèi)容交互的嘗試可以使網(wǎng)絡(luò)計算供應(yīng)商106根據(jù)終止會話的最后狀態(tài)來例證新遠(yuǎn)程會話。通過說明可知,在超時之后終止遠(yuǎn)程會話可以允許網(wǎng)絡(luò)計算供應(yīng)商106節(jié)省NCC POP處的計算資源。在一個實施方案中,即使在干預(yù)周期期間已終止遠(yuǎn)程會話,這個進(jìn)程對于應(yīng)用程序122和/或客戶端計算裝置102處的用戶來說仍是透明的。
[0092]在另一實施方案中,即使在丟失客戶端計算裝置102與網(wǎng)絡(luò)計算供應(yīng)商106之間的連接(例如,應(yīng)用程序122已終止于客戶端計算裝置102或客戶端計算裝置102丟失網(wǎng)絡(luò)連接性)之后,網(wǎng)絡(luò)計算供應(yīng)商106仍可以維持與應(yīng)用程序122相關(guān)聯(lián)的應(yīng)用程序和/或系統(tǒng)狀態(tài)。通過說明可知,在客戶端計算裝置102處開始進(jìn)行應(yīng)用程序122的第二實例或再建立網(wǎng)絡(luò)連接性可以使應(yīng)用程序連接到網(wǎng)絡(luò)計算供應(yīng)商106、獲取與應(yīng)用程序的最后狀態(tài)(本文中其可以稱作“應(yīng)用程序背景”)相關(guān)聯(lián)的狀態(tài)數(shù)據(jù)和/或處理結(jié)果,且從應(yīng)用程序停止之處恢復(fù)本地/遠(yuǎn)程執(zhí)行。通過說明可知,從網(wǎng)絡(luò)計算供應(yīng)商檢索狀態(tài)數(shù)據(jù)和/或處理結(jié)果可以給用戶提供他的早期應(yīng)用程序會話的無縫連續(xù)性的經(jīng)歷。
[0093]在另一實施方案中,即使在客戶端計算裝置102和網(wǎng)絡(luò)計算供應(yīng)商106執(zhí)行的應(yīng)用程序122之間的連接丟失之后,網(wǎng)絡(luò)計算供應(yīng)商106仍可以繼續(xù)處理數(shù)據(jù)或執(zhí)行與應(yīng)用程序122相關(guān)聯(lián)的指令。例如,可以在網(wǎng)絡(luò)計算供應(yīng)商106處由客戶端計算裝置102處的用戶開始應(yīng)用程序122的復(fù)雜或資源密集型子進(jìn)程。為了這個實例的目的,在網(wǎng)絡(luò)計算供應(yīng)商106處開始子進(jìn)程之后,用戶可以切斷客戶端計算裝置102的電源、終止在客戶端計算裝置102處運行的應(yīng)用程序122的實例或丟失網(wǎng)絡(luò)計算供應(yīng)商106的網(wǎng)絡(luò)連接性。即使客戶端計算裝置102和網(wǎng)絡(luò)計算供應(yīng)商106處的應(yīng)用程序122之間的連接不再作用,網(wǎng)絡(luò)計算供應(yīng)商106仍可以繼續(xù)執(zhí)行與子進(jìn)程相關(guān)聯(lián)的處理。在這個實例中,當(dāng)用戶在隨后時刻恢復(fù)使用應(yīng)用程序122時,客戶端計算裝置102可以連接到網(wǎng)絡(luò)計算供應(yīng)商106且獲取當(dāng)應(yīng)用程序122沒有與網(wǎng)絡(luò)計算供應(yīng)商106通信時處理的任何處理結(jié)果。應(yīng)用程序122可以執(zhí)行任何進(jìn)一步處理并向客戶端計算裝置102處的用戶顯示這些結(jié)果。通過說明可知,當(dāng)網(wǎng)絡(luò)計算供應(yīng)商106沒有與客戶端計算裝置102通信時網(wǎng)絡(luò)計算供應(yīng)商106處的處理結(jié)果可以允許客戶端計算裝置102處的用戶開始計算復(fù)雜或密集型程序并在隨后時刻恢復(fù)檢索結(jié)果,且不要求客戶端計算裝置102持續(xù)處理或運行應(yīng)用程序122或維持與網(wǎng)絡(luò)計算供應(yīng)商106持續(xù)通信。
[0094]在各個其它實施方案中,多個應(yīng)用程序背景可以維持在對應(yīng)于與應(yīng)用程序的用戶交互的之前狀態(tài)或條件的網(wǎng)絡(luò)計算供應(yīng)商106處。因此,特定應(yīng)用程序背景可以在加載所述應(yīng)用程序的實例之后由用戶或客戶端計算裝置102選擇以繼續(xù)在之前應(yīng)用程序背景下工作。例如,可以向用戶呈現(xiàn)促進(jìn)一個或多個之前狀態(tài)的選擇的圖形界面。此外,在另一實施方案中,用戶可由之前應(yīng)用程序背景創(chuàng)建允許進(jìn)行并行(或基本上并行)分支的交互。
[0095]可由下列條款尤其描述所述公開的各個實施方案:
[0096]條款1.一種用于遠(yuǎn)程執(zhí)行管理的計算機(jī)實施方法,其包括:
[0097]初始化軟件進(jìn)程實例;
[0098]獲取與所述軟件進(jìn)程實例相關(guān)聯(lián)的軟件進(jìn)程配置信息,所述軟件進(jìn)程配置信息識別所述軟件進(jìn)程實例的一個或多個子進(jìn)程,其中所述軟件進(jìn)程實例的所述一個或多個子進(jìn)程中的每個包括多個可執(zhí)行指令;
[0099]至少部分基于所述軟件進(jìn)程配置信息確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別在網(wǎng)絡(luò)計算供應(yīng)商處進(jìn)行遠(yuǎn)程操作的所述軟件進(jìn)程實例的所述一個或多個子進(jìn)程中的子進(jìn)程,且其中所述遠(yuǎn)程進(jìn)程配置識別用于交換數(shù)據(jù)的通信協(xié)議;
[0100]根據(jù)所述通信協(xié)議將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商以供處理,其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集和與將在所述網(wǎng)絡(luò)計算供應(yīng)商處執(zhí)行的所述子進(jìn)程相關(guān)聯(lián)的一個或多個可執(zhí)行指令;
[0101]根據(jù)所述通信協(xié)議從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果對應(yīng)于所述網(wǎng)絡(luò)計算組件和存儲組件處的所述進(jìn)程數(shù)據(jù)的處理結(jié)果,包括所述一個或多個可執(zhí)行指令的執(zhí)行;和
[0102]處理所獲取的一個或多個處理結(jié)果以供所述軟件進(jìn)程實例使用。
[0103]條款2.根據(jù)條款I(lǐng)所述的計算機(jī)實施方法,其中所述通信協(xié)議包括超文本傳輸協(xié)議(HTTP )、文本傳輸協(xié)議(FTP )、遠(yuǎn)程桌面協(xié)議(RDP )、虛擬網(wǎng)絡(luò)計算(VNC)協(xié)議、X-Windows協(xié)議、遠(yuǎn)程幀緩沖協(xié)議中的至少一個。
[0104]條款3.根據(jù)條款I(lǐng)所述的計算機(jī)實施方法,其中確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置包括基于以下各項確定遠(yuǎn)程進(jìn)程配置:與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)特征、所述軟件進(jìn)程實例的計算配置文件、所述軟件進(jìn)程實例的子進(jìn)程的計算配置文件、軟件進(jìn)程實例存儲器使用量、軟件進(jìn)程實例處理器使用量、軟件進(jìn)程實例數(shù)據(jù)存儲裝置使用量、軟件進(jìn)程實例網(wǎng)絡(luò)使用量、所述客戶端計算裝置的特征、所述網(wǎng)絡(luò)計算供應(yīng)商的特征、所述客戶端計算裝置的配置、所述客戶端計算裝置處的當(dāng)前資源使用量、所述網(wǎng)絡(luò)計算供應(yīng)商處的當(dāng)前資源使用量、網(wǎng)絡(luò)連接的特征、與用戶相關(guān)聯(lián)的優(yōu)先級或預(yù)定義配置。
[0105]條款4.一種用于遠(yuǎn)程進(jìn)程執(zhí)行的系統(tǒng),其包括:
[0106]一個或多個計算機(jī)處理器;
[0107]至少一個計算機(jī)存儲器,其可由所述至少一個或多個計算機(jī)處理器中的至少一個訪問;和[0108]遠(yuǎn)程執(zhí)行管理組件,其包括由所述一個或多個計算機(jī)處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述遠(yuǎn)程執(zhí)行管理組件可被操作來:
[0109]確定用于軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程以進(jìn)行遠(yuǎn)程操作;
[0110]將與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商,其中所述進(jìn)程數(shù)據(jù)至少識別與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的多個指令;
[0111]從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,所述一個或多個處理結(jié)果與所述網(wǎng)絡(luò)計算供應(yīng)商處的所述多個指令中的一個或多個的執(zhí)行相關(guān)聯(lián);且
[0112]根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果。
[0113]條款5.根據(jù)條款4所述的系統(tǒng),其中所述遠(yuǎn)程進(jìn)程配置識別用于與所述網(wǎng)絡(luò)計算和存儲組件交換數(shù)據(jù)的通信協(xié)議。
[0114]條款6.根據(jù)條款5所述的系統(tǒng),其中所述進(jìn)程數(shù)據(jù)和所述一個或多個處理結(jié)果中的至少一個是以包括以下至少一個的格式來編碼:文本、可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、JavaScript對象表示法(JSON)、可執(zhí)行二進(jìn)制、壓縮格式、加密格式、軟件代碼格式、圖像格式、視頻格式和音頻格式。
[0115]條款7.根據(jù)條款4所述的系統(tǒng),其中所述客戶端計算裝置將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商并通過網(wǎng)絡(luò)連接從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果。
[0116]條款8.根據(jù)條款7所述的系統(tǒng),其中所述網(wǎng)絡(luò)連接是間歇性網(wǎng)絡(luò)連接。
[0117]條款9.根據(jù)條款4所述的系統(tǒng),其中所述至少一個子進(jìn)程包括第一子進(jìn)程和第二子進(jìn)程。
[0118]條款10.根據(jù)條款9所述的系統(tǒng),其中所述第一子進(jìn)程與第一通信協(xié)議相關(guān)聯(lián)且所述第二子進(jìn)程與第二通信協(xié)議相關(guān)聯(lián)。
[0119]條款11.根據(jù)條款4所述的系統(tǒng),其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集。
[0120]條款12.根據(jù)條款11所述的系統(tǒng),其中所述一個或多個處理結(jié)果至少對應(yīng)于與所述軟件進(jìn)程實例相關(guān)聯(lián)的所述數(shù)據(jù)集的表示。
[0121]條款13.根據(jù)條款12所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來顯示所述數(shù)據(jù)集的表示。
[0122]條款14.根據(jù)條款13所述的系統(tǒng),其中所述數(shù)據(jù)集的所述表示包括少于所有所述數(shù)據(jù)集。
[0123]條款15.根據(jù)條款4所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來至少部分基于軟件進(jìn)程執(zhí)行數(shù)據(jù)確定軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置。
[0124]條款16.根據(jù)條款15所述的系統(tǒng),其中所述軟件進(jìn)程執(zhí)行數(shù)據(jù)是基于所述軟件進(jìn)程實例的執(zhí)行的監(jiān)控。
[0125]條款17.根據(jù)條款16所述的系統(tǒng),其中所述軟件進(jìn)程執(zhí)行數(shù)據(jù)是基于與一個或多個第三方計算裝置處的所述軟件進(jìn)程實例有關(guān)的一個或多個軟件進(jìn)程的執(zhí)行的監(jiān)控。
[0126]條款18.根據(jù)條款15所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來基于所述軟件進(jìn)程執(zhí)行數(shù)據(jù)識別在所述網(wǎng)絡(luò)計算供應(yīng)商處進(jìn)行遠(yuǎn)程執(zhí)行的所述軟件進(jìn)程實例的子進(jìn)程。
[0127]條款19.根據(jù)條款15所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來基于所述軟件進(jìn)程執(zhí)行數(shù)據(jù)使通信協(xié)議與所述軟件進(jìn)程實例的子進(jìn)程相關(guān)聯(lián)。
[0128]條款20.根據(jù)條款4所述的系統(tǒng),其中所述遠(yuǎn)程進(jìn)程配置是基于獲取自所述網(wǎng)絡(luò)計算供應(yīng)商的信息。
[0129]條款21.—種用于遠(yuǎn)程進(jìn)程執(zhí)行的計算機(jī)實施方法,其包括:
[0130]初始化軟件進(jìn)程實例;
[0131]確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程;
[0132]將進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商,其中所述進(jìn)程數(shù)據(jù)識別與所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述至少一個子進(jìn)程相關(guān)聯(lián)的多個可執(zhí)行裝置指令;
[0133]從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果相關(guān)聯(lián)于與所述至少一個子進(jìn)程相關(guān)聯(lián)的所述多個可執(zhí)行裝置指令中的一個或多個的執(zhí)行;和
[0134]根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果。
[0135]條款22.根據(jù)條款21所述的計算機(jī)實施方法,其中所述客戶端計算裝置將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商并通過網(wǎng)絡(luò)連接從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處
理結(jié)果。
[0136]條款23.根據(jù)條款21所述的計算機(jī)實施方法,其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集。
[0137]條款24.根據(jù)條款23所述的計算機(jī)實施方法,其中所述一個或多個處理結(jié)果至少對應(yīng)于與所述軟件進(jìn)程實例相關(guān)聯(lián)的所述數(shù)據(jù)集的表示。
[0138]條款25.根據(jù)條款24所述的計算機(jī)實施方法,其中根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果包括造成所述數(shù)據(jù)集的所述表示的顯示。
[0139]條款26.根據(jù)條款25所述的計算機(jī)實施方法,其中所述數(shù)據(jù)集的所述表示包括少于所有所述數(shù)據(jù)集。
[0140]條款27.根據(jù)條款21所述的計算機(jī)實施方法,其還包括:
[0141]在所述客戶端計算裝置處終止所述軟件進(jìn)程實例;
[0142]在述客戶端計算裝置處初始化第二軟件進(jìn)程實例;和
[0143]從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果與終止于所述客戶端計算裝置處之前的所述軟件進(jìn)程實例的最后狀態(tài)相關(guān)聯(lián)。
[0144]條款28.根據(jù)條款27所述的計算機(jī)實施方法,其中從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果是基于所述客戶端計算裝置與網(wǎng)絡(luò)計算供應(yīng)商之間的有限網(wǎng)絡(luò)連接性。
[0145]條款29.根據(jù)條款27所述的計算機(jī)實施方法,其還包括在所述客戶端計算裝置處終止所述軟件進(jìn)程實例,其中從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果包括在所述軟件進(jìn)程實例終止之前獲取一個或多個處理結(jié)果。
[0146]條款30.根據(jù)條款21所述的計算機(jī)實施方法,其還包括將第二進(jìn)程數(shù)據(jù)提供給第一計算裝置以供處理,其中所述第二進(jìn)程數(shù)據(jù)識別與將在所述第一計算裝置處執(zhí)行的所述至少一個子進(jìn)程相關(guān)聯(lián)的第二多個可執(zhí)行指令。[0147]條款31.根據(jù)條款30所述的計算機(jī)實施方法,其還包括基于與所述計算裝置相關(guān)聯(lián)的計算資源利用量確定是否將處理數(shù)據(jù)提供給所述第一計算裝置或所述網(wǎng)絡(luò)計算供應(yīng)商。
[0148]條款32.—種用于遠(yuǎn)程執(zhí)行管理的計算機(jī)實施方法,其包括:
[0149]由客戶端計算裝置初始化軟件進(jìn)程實例;
[0150]由所述客戶端計算裝置獲取與所述軟件進(jìn)程實例相關(guān)聯(lián)的軟件進(jìn)程配置信息,所述軟件進(jìn)程配置信息識別所述軟件進(jìn)程實例的一個或多個子進(jìn)程,其中所述軟件進(jìn)程實例的所述一個或多個子進(jìn)程中的每個包括多個可執(zhí)行指令;
[0151]由所述客戶端計算裝置至少部分基于所述軟件進(jìn)程配置信息確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別在網(wǎng)絡(luò)計算供應(yīng)商處進(jìn)行遠(yuǎn)程操作的所述軟件進(jìn)程實例的所述一個或多個子進(jìn)程中的子進(jìn)程,且其中所述遠(yuǎn)程進(jìn)程配置識別用于交換數(shù)據(jù)的通信協(xié)議;
[0152]由所述客戶端計算裝置根據(jù)所述通信協(xié)議將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商以供處理,其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集和與將在所述網(wǎng)絡(luò)計算供應(yīng)商處執(zhí)行的所述子進(jìn)程相關(guān)聯(lián)的一個或多個可執(zhí)行指令;
[0153]在所述客戶端計算裝置處根據(jù)所述通信協(xié)議從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果對應(yīng)于所述網(wǎng)絡(luò)計算組件和存儲組件處的所述進(jìn)程數(shù)據(jù)的處理結(jié)果,包括所述一個或多個可執(zhí)行指令的執(zhí)行;和
[0154]由所述客戶端計算裝置處理所獲取的一個或多個處理結(jié)果以供所述軟件進(jìn)程實例使用。
[0155]條款33.根據(jù)條款32所述的計算機(jī)實施方法,其中所述通信協(xié)議包括超文本傳輸協(xié)議(HTTP )、文本傳輸協(xié)議(FTP )、遠(yuǎn)程桌面協(xié)議(RDP )、Χ-ffindows協(xié)議、虛擬網(wǎng)絡(luò)計算(VNC)協(xié)議、X-Windows協(xié)議、遠(yuǎn)程巾貞緩沖協(xié)議中的至少一個。
[0156]條款34.根據(jù)條款32所述的計算機(jī)實施方法,其中確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置包括基于以下至少一個確定遠(yuǎn)程進(jìn)程配置:與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)特征、所述軟件進(jìn)程實例的計算配置文件、所述軟件進(jìn)程實例的子進(jìn)程的計算配置文件、軟件進(jìn)程實例網(wǎng)絡(luò)使用量需求、所述客戶端計算裝置的特征、所述替代計算裝置的特征、所述客戶端計算裝置的配置、所述客戶端計算裝置處的資源可用性、所述替代計算裝置處的資源可用性、網(wǎng)絡(luò)連接的特征、與用戶相關(guān)聯(lián)的優(yōu)先級或預(yù)定義配置。
[0157]條款35.根據(jù)條款32所述的計算機(jī)實施方法,其中所述替代計算裝置包括個人計算機(jī)、膝上型計算機(jī)、平板電腦、個人數(shù)字助手(PDA)、智能手機(jī)、游戲機(jī)和主服務(wù)器中的至少一個。
[0158]條款36.根據(jù)條款32所述的計算機(jī)實施方法,其中將進(jìn)程數(shù)據(jù)提供給所述替代計算裝置以供處理包括通過藍(lán)牙連接、紅外線連接、無線網(wǎng)絡(luò)連接和有線網(wǎng)絡(luò)連接中的至少一個提供進(jìn)程數(shù)據(jù)。
[0159]條款37.—種用于遠(yuǎn)程進(jìn)程執(zhí)行的系統(tǒng),其包括:
[0160]一個或多個計算機(jī)處理器;
[0161]至少一個計算機(jī)存儲器,其可由所述至少一個或多個計算機(jī)處理器中的至少一個訪問;和[0162]遠(yuǎn)程執(zhí)行管理組件,其包括由所述一個或多個計算機(jī)處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述遠(yuǎn)程執(zhí)行管理組件可被操作來:
[0163]確定用于軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程;
[0164]將與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的進(jìn)程數(shù)據(jù)提供給第一計算裝置,其中所述進(jìn)程數(shù)據(jù)識別與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的多個指令;
[0165]從第二計算裝置獲取一個或多個處理結(jié)果,所述一個或多個處理結(jié)果與所述第二計算裝置處的所述多個指令中的一個或多個的執(zhí)行相關(guān)聯(lián);且
[0166]根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果。
[0167]條款38.根據(jù)條款37所述的系統(tǒng),其中確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置包括基于以下至少一個確定遠(yuǎn)程進(jìn)程配置:與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)特征、所述軟件進(jìn)程實例的計算配置文件、所述軟件進(jìn)程實例的子進(jìn)程的計算配置文件、軟件進(jìn)程實例網(wǎng)絡(luò)使用量需求、所述客戶端計算裝置的特征、所述第一計算裝置的特征、所述第二計算裝置的特征、所述客戶端計算裝置的配置、所述客戶端計算裝置處的資源可用性、所述第一計算裝置處的資源可用性、網(wǎng)絡(luò)連接的特征、與用戶相關(guān)聯(lián)的優(yōu)先級或預(yù)定義配置。
[0168]條款39.根據(jù)條款37所述的系統(tǒng),其中所述第一計算裝置和所述第二計算裝置是相同計算裝置。
[0169]條款40.根據(jù)條款37所述的系統(tǒng),其中將與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的進(jìn)程數(shù)據(jù)提供給所述第一計算裝置包括將與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的多個指令提供給所述第一計算裝置。
[0170]條款41.根據(jù)條款37所述的系統(tǒng),其中所述第二計算裝置包括個人計算機(jī)、膝上型計算機(jī)、平板電腦、個人數(shù)字助手(PDA)、智能手機(jī)、游戲機(jī)和主服務(wù)器中的至少一個。
[0171]條款42.根據(jù)條款37所述的系統(tǒng),其中所述執(zhí)行管理組件還可被操作來將進(jìn)程數(shù)據(jù)提供給所述第一計算裝置并通過至少一個網(wǎng)絡(luò)連接從所述第二計算裝置獲取一個或多個處理結(jié)果。
[0172]條款43.根據(jù)條款42所述的系統(tǒng),其中所述至少一個網(wǎng)絡(luò)連接有限且其中所述執(zhí)行管理組件還可被操作來基于所述有限網(wǎng)絡(luò)連接性確定提供給所述第一計算裝置的數(shù)據(jù)量。
[0173]條款44.根據(jù)條款37所述的系統(tǒng),其中所述軟件進(jìn)程實例的所述至少一個子進(jìn)程包括第一子進(jìn)程且所述遠(yuǎn)程進(jìn)程配置信息識別在網(wǎng)絡(luò)計算供應(yīng)商處遠(yuǎn)程操作的所述軟件進(jìn)程實例的第二子進(jìn)程。
[0174]條款45.根據(jù)條款44所述的系統(tǒng),其中所述執(zhí)行管理組件還可被操作來確定與所述第一子進(jìn)程相關(guān)聯(lián)的第一通信協(xié)議和與所述第二子進(jìn)程相關(guān)聯(lián)的第二通信協(xié)議。
[0175]條款46.根據(jù)條款37所述的系統(tǒng),其中所述執(zhí)行管理組件還可被操作來通過藍(lán)牙連接、紅外線連接、無線網(wǎng)絡(luò)連接和有線網(wǎng)絡(luò)連接中的至少一個將進(jìn)程數(shù)據(jù)提供給所述第一計算裝置以供處理。
[0176]條款47.根據(jù)條款37所述的系統(tǒng),其中所述進(jìn)程數(shù)據(jù)是由所述第一計算裝置提供給所述第二計算裝置。
[0177]條款48.根據(jù)條款47所述的系統(tǒng),其中所述第一計算裝置被配置來確定是否在所述第一計算裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述程序提供給所述第二計算裝置以供處理。
[0178]條款49.根據(jù)條款48所述的系統(tǒng),其中由所述第一計算裝置作出是否在所述第一計算裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述程序提供給所述第二計算裝置以供處理的確定是基于以下至少一個:與所述子進(jìn)程相關(guān)聯(lián)的處理需求、所述第一計算裝置處的資源可用性、所述第二計算裝置處的資源可用性和所述進(jìn)程數(shù)據(jù)的特征。
[0179]條款50.根據(jù)條款38所述的系統(tǒng),其中所述執(zhí)行管理組件還被操作來確定是否在所述第一處理裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述進(jìn)程數(shù)據(jù)提供給所述第二計算裝置以供處理。
[0180]款51.—種用于遠(yuǎn)程進(jìn)程執(zhí)行的計算機(jī)實施方法,其包括:
[0181]在客戶端計算裝置處初始化軟件進(jìn)程實例;
[0182]確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程;
[0183]將進(jìn)程數(shù)據(jù)提供給第一計算裝置,其中所述進(jìn)程數(shù)據(jù)識別與所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述至少一個子進(jìn)程相關(guān)聯(lián)的多個可執(zhí)行裝置指令;
[0184]從第二計算裝置獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果關(guān)聯(lián)于與所述至少一個子進(jìn)程相關(guān)聯(lián)的所述多個可執(zhí)行裝置指令中的一個或多個的執(zhí)行;和
[0185]根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果。
[0186]條款52.根據(jù)條款51所述的計算機(jī)實施方法,其中所述進(jìn)程數(shù)據(jù)和所述一個或多個處理結(jié)果中的至少一個是以包括以下至少一個的格式來編碼:文本、可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、JavaScript對象表示法(JS0N)、可執(zhí)行二進(jìn)制、壓縮格式、加密格式、軟件代碼格式、圖像格式、視頻格式和音頻格式。
[0187]條款53.根據(jù)條款52所述的計算機(jī)實施方法,其中所述第一計算裝置和所述第二計算裝置是相同計算裝置。
[0188]條款54.根據(jù)條款51所述的計算機(jī)實施方法,其中將進(jìn)程數(shù)據(jù)提供給所述第一計算裝置包括將與所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和所述至少一個子進(jìn)程相關(guān)聯(lián)的多個指令提供給所述第一計算裝置。
[0189]條款55.根據(jù)條款51所述的計算機(jī)實施方法,其中所述客戶端計算裝置將進(jìn)程數(shù)據(jù)提供給所述第一計算裝置并通過至少一個網(wǎng)絡(luò)連接從所述第二計算裝置獲取一個或多個處理結(jié)果。
[0190]條款56.根據(jù)條款55所述的計算機(jī)實施方法,其中所述至少一個網(wǎng)絡(luò)連接有限且其中所述執(zhí)行管理組件還可被操作來基于所述有限網(wǎng)絡(luò)連接性確定提供給所述第一計算裝置的數(shù)據(jù)量。
[0191]條款57.根據(jù)條款52所述的計算機(jī)實施方法,其中所述軟件進(jìn)程實例的所述至少一個子進(jìn)程包括第一子進(jìn)程且所述遠(yuǎn)程進(jìn)程配置信息識別在網(wǎng)絡(luò)計算供應(yīng)商處遠(yuǎn)程操作的所述軟件進(jìn)程實例的第二子進(jìn)程。
[0192]條款58.根據(jù)條款52所述的計算機(jī)實施方法,其中所述進(jìn)程數(shù)據(jù)是由所述第一計算裝置提供給所述第二計算裝置。
[0193]條款59.根據(jù)條款58所述的計算機(jī)實施方法,其中所述第一計算裝置被配置來確定是否在所述第一計算裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述程序提供給所述第二計算裝置以供處理。
[0194]條款60.根據(jù)條款59所述的計算機(jī)實施方法,其中由所述第一計算裝置作出是否在所述第一計算裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述程序提供給所述第二計算裝置以供處理的確定是基于以下至少一個:與所述子進(jìn)程相關(guān)聯(lián)的處理需求、所述第一計算裝置處的資源可用性、所述第二計算裝置處的資源可用性和所述進(jìn)程數(shù)據(jù)的特征。
[0195]條款61.根據(jù)條款52所述的計算機(jī)實施方法,其還包括確定是否在所述第一處理裝置處處理所述進(jìn)程數(shù)據(jù)或是否將所述進(jìn)程數(shù)據(jù)提供給所述第二計算裝置以供處理。
[0196]雖然已公開并論述說明性實施方案,但是本領(lǐng)域一般技術(shù)人員應(yīng)明白,可以在本發(fā)明的精神和范圍內(nèi)實施額外或替代性實施方案。例如,可以在不違背本發(fā)明的范圍的情況下使用本文中描述的技術(shù)以允許在任何數(shù)量的其它軟件應(yīng)用程序和程序(包括(但不限于)圖像或視頻編輯軟件、數(shù)據(jù)庫軟件、辦公軟件、3d設(shè)計軟件、音頻和聲音處理應(yīng)用程序等)中進(jìn)行遠(yuǎn)程處理管理。此外,雖然已將許多實施方案指示為說明性,但是本領(lǐng)域一般技術(shù)人員應(yīng)明白,無需組合或一起實施說明性實施方案。因此,無需根據(jù)本發(fā)明的變化范圍來使用或?qū)嵤┮恍┱f明性實施方案。
[0197]除非另有具體說明或在所使用背景下理解,否則條件語言(尤其諸如“可(can)”、“可(could)”、“可能(might)”或“可以(may)”)一般旨在表達(dá)某些實施方案包括某些特征、元件和/或步驟,而其它實施方案不包括某些特征、元件和/或步驟。因此,這種條件語言一般不旨在暗示一個或多個實施方案以任何方式需要某些特征、元件和/或步驟或一個或多個實施方案必須包括用于在用戶輸入或提示的情況下或沒有用戶輸入或提示的情況下決定任何特定實施方案中是否包括或執(zhí)行這些特征、元件和/或步驟的邏輯。
[0198]本文中描述和/或附圖中描繪的流程圖中的任何進(jìn)程描述、元件或方框應(yīng)被視為可能表示包括用于實施所述程序中的特定邏輯功能或步驟的模塊、分段或部分。如將由本領(lǐng)域一般技術(shù)人員了解,本文中描述的實施方案的范圍內(nèi)包括替代實施方案,其中可以取決于所涉及的功能性從示出或論述的元件或功能中無序地(包括基本上同時或相反次序)刪除、執(zhí)行元件或功能。還應(yīng)明白,上述數(shù)據(jù)和/或組件可以存儲在計算機(jī)可讀媒介上且使用與計算機(jī)可讀媒介相關(guān)聯(lián)的驅(qū)動機(jī)構(gòu)加載到計算裝置的存儲器中、可以存儲在任何數(shù)量的計算機(jī)可執(zhí)行組件(諸如CD-ROM、DVD-ROM)中或經(jīng)由網(wǎng)絡(luò)接口提供或獲取;此外,組件和/或數(shù)據(jù)可包括在單個裝置中或以任何其它方式分布。因此,通用計算裝置可以被配置來在處理和/或執(zhí)行上述各個數(shù)據(jù)和/或組件的情況下實施本公開的程序、算法和方法論。
[0199]應(yīng)強(qiáng)調(diào)可以對上述實施方案(其中的元件尤其被視為可接受實例)作出許多改變和修改。本文所有這些修改和改變旨在包括在本公開的范圍內(nèi)且受下列權(quán)利要求保護(hù)。
【權(quán)利要求】
1.一種用于遠(yuǎn)程進(jìn)程執(zhí)行的系統(tǒng),其包括: 一個或多個計算機(jī)處理器; 至少一個計算機(jī)存儲器,其可由所述一個或多個計算機(jī)處理器中的至少一個訪問;和遠(yuǎn)程執(zhí)行管理組件,其包括由所述一個或多個計算機(jī)處理器執(zhí)行的可執(zhí)行軟件模塊,其中所述遠(yuǎn)程執(zhí)行管理組件可被操作來: 確定用于軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程以進(jìn)行遠(yuǎn)程操作; 將與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商,其中所述進(jìn)程數(shù)據(jù)至少識別與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述軟件進(jìn)程實例的所述至少一個子進(jìn)程相關(guān)聯(lián)的多個指令; 從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,所述一個或多個處理結(jié)果與所述網(wǎng)絡(luò)計算供應(yīng)商處的所述多個指令中的一個或多個的執(zhí)行相關(guān)聯(lián);且根據(jù)所述軟件進(jìn)程實例處理所獲取 的一個或多個處理結(jié)果。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述遠(yuǎn)程進(jìn)程配置識別用于與所述網(wǎng)絡(luò)計算和存儲組件交換數(shù)據(jù)的通信協(xié)議。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述客戶端計算裝置通過網(wǎng)絡(luò)連接將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商并從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述至少一個子進(jìn)程包括第一子進(jìn)程和第二子進(jìn)程。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來至少部分基于軟件進(jìn)程執(zhí)行數(shù)據(jù)確定軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來基于所述軟件進(jìn)程執(zhí)行數(shù)據(jù)識別在所述網(wǎng)絡(luò)計算供應(yīng)商處進(jìn)行遠(yuǎn)程執(zhí)行的所述軟件進(jìn)程實例的子進(jìn)程。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述遠(yuǎn)程執(zhí)行管理組件還可被操作來基于所述軟件進(jìn)程執(zhí)行數(shù)據(jù)使通信協(xié)議與所述軟件進(jìn)程實例的子進(jìn)程相關(guān)聯(lián)。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述遠(yuǎn)程進(jìn)程配置是基于獲取自所述網(wǎng)絡(luò)計算供應(yīng)商的信息。
10.一種用于遠(yuǎn)程進(jìn)程執(zhí)行的計算機(jī)實施方法,其包括: 初始化軟件進(jìn)程實例; 確定所述軟件進(jìn)程實例的遠(yuǎn)程進(jìn)程配置,其中所述遠(yuǎn)程進(jìn)程配置識別所述軟件進(jìn)程實例的至少一個子進(jìn)程; 將進(jìn)程數(shù)據(jù)提供給網(wǎng)絡(luò)計算供應(yīng)商,其中所述進(jìn)程數(shù)據(jù)識別與所述至少一個子進(jìn)程相關(guān)聯(lián)的數(shù)據(jù)中的至少一個和與所述至少一個子進(jìn)程相關(guān)聯(lián)的多個可執(zhí)行裝置指令; 從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果相關(guān)聯(lián)于與所述至少一個子進(jìn)程相關(guān)聯(lián)的所述多個可執(zhí)行裝置指令中的一個或多個的執(zhí)行;和根據(jù)所述軟件進(jìn)程實例處理所獲取的一個或多個處理結(jié)果。
11.根據(jù)權(quán)利要求10所述的計算機(jī)實施方法,其中所述客戶端計算裝置通過網(wǎng)絡(luò)連接將進(jìn)程數(shù)據(jù)提供給所述網(wǎng)絡(luò)計算供應(yīng)商并從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果O
12.根據(jù)權(quán)利要求10所述的計算機(jī)實施方法,其中所述進(jìn)程數(shù)據(jù)包括與所述軟件進(jìn)程實例相關(guān)聯(lián)的數(shù)據(jù)集。
13.根據(jù)權(quán)利要求10所述的計算機(jī)實施方法,其還包括: 在所述客戶端計算裝置處終止所述軟件進(jìn)程實例; 在所述客戶端計算裝置處初始化第二軟件進(jìn)程實例;和 從所述網(wǎng)絡(luò)計算供應(yīng)商獲取一個或多個處理結(jié)果,其中所述一個或多個處理結(jié)果與終止于所述客戶端計算裝置處之前的所述軟件進(jìn)程實例的最后狀態(tài)相關(guān)聯(lián)。
14.根據(jù)權(quán)利要求10所述的計算機(jī)實施方法,其還包括將第二進(jìn)程數(shù)據(jù)提供給第一計算裝置以供處理,其中所述第二進(jìn)程數(shù)據(jù)識別與將在所述第一計算裝置處執(zhí)行的所述至少一個子進(jìn)程相關(guān)聯(lián)的第二多個可執(zhí)行指令。
15.根據(jù)權(quán)利要求14所述的計算機(jī)實施方法,其還包括基于與所述計算裝置相關(guān)聯(lián)的計算資源利用量確定是否 將處理數(shù)據(jù)提供給所述第一計算裝置或所述網(wǎng)絡(luò)計算供應(yīng)商。
【文檔編號】G06F9/50GK103999052SQ201280046251
【公開日】2014年8月20日 申請日期:2012年9月19日 優(yōu)先權(quán)日:2011年9月21日
【發(fā)明者】喬納森·A·詹金斯, 布雷特·R·泰勒 申請人:亞馬遜技術(shù)有限公司