用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的方法和系統(tǒng)的制作方法【專利摘要】用于在組合的計算環(huán)境中修改具有個性化桌面環(huán)境的機器基本映像的方法和系統(tǒng),包括執(zhí)行與基盤相關(guān)聯(lián)的操作系統(tǒng);由過濾驅(qū)動器攔截來自多個資源的至少一個的指令來修改在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置,所述多個資源在隔離環(huán)境內(nèi)部執(zhí)行,在增量盤上存儲經(jīng)修改的設(shè)置的副本;重啟操作系統(tǒng),使用在增量盤上所存儲的經(jīng)修改的設(shè)置的副本替換在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置;以及重啟包含經(jīng)修改的設(shè)置的至少一個操作系統(tǒng)進程?!緦@f明】用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的方法和系統(tǒng)[0001]本申請為申請?zhí)枮?00980141951.8、申請日為2009年10月23日、發(fā)明名稱為“用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的方法和系統(tǒng)”的申請的分案申請。[0002]相關(guān)串請[0003]本申請要求2008年10月24日提交的美國臨時專利申請N0.61/108,166的優(yōu)先權(quán),其內(nèi)容通過引用包含于此?!?br>技術(shù)領(lǐng)域:
】[0004]本發(fā)明涉及用于提供對用戶文件的訪問的方法和系統(tǒng)。尤其地,本發(fā)明涉及用于在組合計算環(huán)境中給可修改的虛擬機基本映像提供個性化桌面環(huán)境的方法和系統(tǒng)。【
背景技術(shù):
】[0005]在新興的虛擬桌面架構(gòu)(VDI)空間中,個人計算機桌面(包括其應(yīng)用、文件和數(shù)據(jù))與物理機器相分開。典型地,用戶使用先進的終端(被稱為桌面設(shè)備)連接到遠程或“虛擬化”桌面。特別地,桌面設(shè)備是允許用戶通過諸如CitrixICA,MicrosoftRDP、VNC或Xll的網(wǎng)絡(luò)顯示協(xié)議訪問由遠程計算機提供的資源的機器。而且,桌面設(shè)備可執(zhí)行本地操作系統(tǒng)來處理基本的功能,諸如接收用戶輸入和提供由遠程計算機提供的資源所產(chǎn)生的輸出數(shù)據(jù)。遠程桌面被存儲在遠程中央服務(wù)器上而不是本地個人計算機(例如桌面設(shè)備)的硬盤驅(qū)動器上。因此,遠程桌面可執(zhí)行諸如WindowsXP或WindowVista的單用戶操作系統(tǒng),或者可執(zhí)行諸如WindowsServer2003或2008的多用戶操作系統(tǒng),多用戶操作系統(tǒng)允許到不同虛擬桌面的多個獨立連接,這些獨立連接的不同用戶能夠具有不同級別的授權(quán)權(quán)限。[0006]因此,桌面設(shè)備遠程地提供對呈現(xiàn)桌面模式的計算環(huán)境的訪問。S卩,當用戶從桌面設(shè)備工作時,桌面所使用的所有程序、應(yīng)用、進程和數(shù)據(jù)被集中地保存和運行,這允許用戶在能夠顯示桌面的任何設(shè)備上遠程地訪問他們的桌面,這些設(shè)備諸如,例如,PC、筆記本、智能電話或瘦客戶機。[0007]盡管桌面設(shè)備通常被稱為“啞終端”(dumb),但它們通常是高可配置的并且執(zhí)行大部分的本地處理,諸如,例如本地屏幕和鍵盤的管理、本地所連接的設(shè)備的管理和特定鍵和/或鍵組合的處理。然而,既然VDI提供桌面設(shè)備僅僅是遠程桌面的延伸的直覺,那么對用戶而言對本地設(shè)備和虛擬桌面都進行配置通常是不方便的且令人困惑的。[0008]此外,新式計算環(huán)境的管理員在向用戶提供對資源的訪問時面臨很多挑戰(zhàn)。一個這樣的挑戰(zhàn)出現(xiàn)在當管理員使用給管理員提供從單個共享基本映像(baseimage)向物理機或虛擬機提供多個桌面的能力的產(chǎn)品時。這類型的產(chǎn)品通常簡化管理體驗,因為管理員只需要維護被部署到眾多用戶的少量的映像。然而,通常地,被部署到用戶的映像是暫時的-當運行該映像的機器關(guān)閉或重啟時,在映像的使用期內(nèi)所作的任何改變會被丟失。如果用戶要在這些傳統(tǒng)環(huán)境中安裝個性化應(yīng)用,諸如,例如,iTunes或Skype,在機器重啟時該應(yīng)用將會丟失,那么用戶將不得不在每次登錄機器或給機器加電時重新安裝任何個性化應(yīng)用。因而,在這樣的安排下,終端用戶的體驗是次優(yōu)的,因為用戶的環(huán)境不是穩(wěn)定的。而且,提供給用戶的機器不提供正常機器的功能。因此,終端用戶和管理員的體驗在這樣的安排下是沖突的-管理員有經(jīng)簡化的映像管理,但是以用戶不能維持他們所定制的環(huán)境為代價的。[0009]嘗試分開用戶定制與基本機器映像的解決方案通常試圖在磁盤塊級來執(zhí)行這樣的工作。例如,來自VMWare的鏈接克隆(linkedclone)在磁盤塊級操作,提供固定的基本映像并創(chuàng)建存儲用戶所作的磁盤塊的改變的增量盤映像。盡管在磁盤塊級操作允許映像的快速部署,但一旦鏈接克隆被制成,僅能對增量盤進行修改。但如果是基盤發(fā)生變化,將與增量盤上的文件分配相沖突,因而有損維護共享映像的好處。然而,操作在磁盤塊級的實施例通常不提供改變基盤映像的功能,因為,在這些實施例中,這樣的變化將會與增量盤上文件分配相沖突。因而,改善的終端用戶體驗通常發(fā)生在以犧牲管理員體驗為代價的情況下,特別是有關(guān)易于管理和維護。[0010]相應(yīng)地,需要一種系統(tǒng)和方法,即提供制備服務(wù)器所提供的經(jīng)簡化的映像管理的管理益處,同時給用戶提供相當于或超過由共享基本映像所提供的體驗。【
發(fā)明內(nèi)容】[0011]本發(fā)明描述了用于通過遠程機器所產(chǎn)生的用戶接口控制與桌面設(shè)備的屬性相關(guān)聯(lián)的配置數(shù)據(jù)的系統(tǒng)和方法。另外,本發(fā)明所描述的方法和系統(tǒng)從機器的使用期間用戶所作的變化中分離基本機器映像到單獨的磁盤。然后,系統(tǒng)給本地用戶提供磁盤的統(tǒng)一視圖,將基本數(shù)據(jù)和用戶數(shù)據(jù)組合在一起。[0012]在一個實施例中,用于修改具有個性化桌面環(huán)境的機器基本映像(machinebaseimage)的方法包括:執(zhí)行由服務(wù)器部署的基盤所提供的操作系統(tǒng),所述基盤具有機器基本映像;由過濾驅(qū)動器捕獲來自多個資源的至少一個的指令來修改在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置,所述多個資源在隔離環(huán)境中執(zhí)行;由過濾驅(qū)動器重定向經(jīng)修改的設(shè)置的副本到用戶增量盤,所述經(jīng)修改的設(shè)置被保存在用戶增量盤中;以及由過濾驅(qū)動器合并和存儲機器基本映像和用戶增量盤以便創(chuàng)建統(tǒng)一的環(huán)境,其中所述經(jīng)修改的設(shè)置對用戶增量盤是持續(xù)的。該方法還包括重啟與機器基本映像相關(guān)聯(lián)的至少一個操作系統(tǒng),其中統(tǒng)一的環(huán)境被還原,以及由過濾驅(qū)動器記錄在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置的每次修改,其中,所述過濾驅(qū)動器周期性地向用戶增量盤報告所述修改。[0013]在又一個實施例中,用于在組合的環(huán)境中修改具有個性化桌面環(huán)境的機器基本映像的方法包括:執(zhí)行與基盤相關(guān)聯(lián)的操作系統(tǒng);由過濾驅(qū)動器攔截來自多個資源的至少一個的指令來修改在文件系統(tǒng)和注冊表的一個中所存儲的設(shè)置,所述多個資源在隔離環(huán)境中執(zhí)行;在增量盤存儲經(jīng)修改的設(shè)置的副本;重啟操作系統(tǒng);用增量盤所存儲的經(jīng)修改的設(shè)置的副本替換在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置;以及重啟至少一個包含經(jīng)修改的設(shè)置的操作系統(tǒng)進程。該方法還包括將所存儲的經(jīng)修改的設(shè)置的副本與用戶數(shù)據(jù)合并以便創(chuàng)建個性化桌面環(huán)境,以及由過濾驅(qū)動器記錄在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置的每次修改,其中所述過濾驅(qū)動器周期性地向增量盤報告所述修改。在一個實施例中,文件系統(tǒng)或注冊表中所存儲的設(shè)置的修改被保存在增量盤中。在又一個實施例中,當所述設(shè)置與只讀請求相關(guān)聯(lián)時,文件系統(tǒng)或注冊表中所存儲的該設(shè)置的修改被放棄。另夕卜,增量盤包括對基盤內(nèi)容的任何修改。而且,過濾驅(qū)動器包括用于記錄發(fā)生的任何注冊表操作的注冊表過濾驅(qū)動器。在一個實施例中,過濾驅(qū)動器包括用于向基盤和增量盤的至少一個發(fā)送所述修改的可執(zhí)行文件系統(tǒng)過濾驅(qū)動器。在又一個實施例中,過濾驅(qū)動器包括用于記錄對注冊表的任何修改的注冊表過濾驅(qū)動器。[0014]在又一個實施例中,在組合的計算環(huán)境中具有個性化桌面環(huán)境可修改的機器基本映像包括:具有多個作業(yè)文件的基盤,所述基盤由服務(wù)器部署;至少一個用戶增量盤,所述增量盤具有由用戶指定的且在隔離環(huán)境中操作的多個應(yīng)用,所述多個應(yīng)用相應(yīng)于對與基盤相關(guān)聯(lián)的文件和注冊表的至少一個所作的改變;和過濾驅(qū)動器,所述過濾驅(qū)動器用于將所述基盤和所述至少一個用戶增量盤合并到一個統(tǒng)一的磁盤,所述統(tǒng)一的磁盤具有多個作業(yè)文件和多個應(yīng)用,其中,所述過濾驅(qū)動器在至少一個用戶增量盤中記錄和保存多個作業(yè)文件和多個應(yīng)用。經(jīng)修改的機器基本映像還包括與基盤相關(guān)聯(lián)的可執(zhí)行的基本機器映像,其中對基本機器映像的修改不會傳播到所述至少一個用戶增量盤,和在隔離環(huán)境中執(zhí)行的與用戶增量盤相關(guān)聯(lián)的多個資源。在一個實施例中,過濾驅(qū)動器被連接到多個資源,所述過濾驅(qū)動器捕獲來自多個資源的指令以修改在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置;以及用戶增量盤存儲經(jīng)修改的設(shè)置的副本。在一個具體實施例中,經(jīng)修改的設(shè)置被存儲在增量盤中,且對增量盤是持續(xù)的。在又一個實施例中,機器基本映像還包括注冊表過濾驅(qū)動器,用于記錄用戶對注冊表的修改,所述注冊表過濾器保存所述修改到用戶增量盤。在又一個實施例中,機器基本映像還包括用于隔離和記錄每次修改的文件系統(tǒng)驅(qū)動器,和被連接到所述文件系統(tǒng)過濾驅(qū)動器的文件系統(tǒng)隔離驅(qū)動器,所述文件系統(tǒng)隔離驅(qū)動器用于記錄對多個應(yīng)用所作的修改。[0015]其他方面,通過下面結(jié)合附圖的以示例的方式來說明本發(fā)明的系統(tǒng)和方法的詳細描述,本發(fā)明所公開的用于給可修改的機器基本映像提供個性化桌面環(huán)境的系統(tǒng)和方法的特征和優(yōu)點將更充分地清晰可見。【專利附圖】【附圖說明】[0016]圖1A是描述包括與遠程機器通信的本地機器的網(wǎng)絡(luò)環(huán)境的實施例的框圖;[0017]圖1B和IC是描述可用于此處描述的方法和系統(tǒng)有關(guān)的計算設(shè)備的實施例的框圖;[0018]圖2說明描述在其上提供基本機器磁盤和用戶增量盤的執(zhí)行機器的一個實施例的框圖;[0019]圖3A是根據(jù)本發(fā)明的一個實施例,說明用于在組合的計算環(huán)境中給可修改機器基盤提供個性化桌面環(huán)境的系統(tǒng)的框圖;[0020]圖3B是圖3A的詳細的框圖;[0021]圖4是根據(jù)本發(fā)明的一個實施例,描述用于在組合的計算環(huán)境中給可修改機器基盤提供個性化桌面環(huán)境的方法的流程圖;[0022]圖5是根據(jù)本發(fā)明,描述用于使用在遠程機器上所存儲的選項同步與桌面設(shè)備的顯示相關(guān)聯(lián)的配置數(shù)據(jù)的系統(tǒng)的一個實施例的示例框圖;[0023]圖6是根據(jù)本發(fā)明,說明用于通過遠程機器所產(chǎn)生的用戶接口控制與桌面設(shè)備的屬性相關(guān)聯(lián)的配置數(shù)據(jù)的方法的一個實施例的示例流程圖?!揪唧w實施方式】[0024]現(xiàn)參考圖1A,描述了網(wǎng)絡(luò)環(huán)境的實施例。總的來說,網(wǎng)絡(luò)環(huán)境包括經(jīng)由一個或者多個網(wǎng)絡(luò)104與一個或者多個服務(wù)器106a-106n(總的還稱為服務(wù)器106或者遠程機器106)通信的一個或者多個客戶機102a-102n(總的還稱為本地機器102、客戶機102、客戶節(jié)點102、客戶機器102、客戶計算機102、客戶設(shè)備102、端點102或端點節(jié)點102)。在一些實施例中,客戶機102既有作為客戶節(jié)點尋求訪問服務(wù)器所提供資源的能力,也有作為服務(wù)器向其他客戶機102a-102n提供對其寄載的資源的訪問的能力。[0025]雖然圖1A示出了在客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)104和網(wǎng)絡(luò)104’,客戶機102和服務(wù)器106可以位于相同的網(wǎng)絡(luò)104上。網(wǎng)絡(luò)104和/或104’可為局域網(wǎng)(LAN)例如公司內(nèi)網(wǎng),城域網(wǎng)(MAN),或者廣域網(wǎng)(WAN)例如因特網(wǎng)或萬維網(wǎng)。在一些實施例中,在客戶機102和服務(wù)器106之間可以有多個網(wǎng)絡(luò)104。在這些實施例的一個中,網(wǎng)絡(luò)104’(未示出)可為專用網(wǎng)并且網(wǎng)絡(luò)104可為公網(wǎng)。在這些實施例的另一個中,網(wǎng)絡(luò)104’可為專用網(wǎng)并且網(wǎng)絡(luò)104’可為公網(wǎng)。仍在另一個實施例中,網(wǎng)絡(luò)104和104’可都為專用網(wǎng)。[0026]網(wǎng)絡(luò)104和/或104’可以是任何類型和/或形式的網(wǎng)絡(luò),并且可包括任意下述網(wǎng)絡(luò):點對點網(wǎng)絡(luò),廣播網(wǎng)絡(luò),廣域網(wǎng),局域網(wǎng),電信網(wǎng)絡(luò),數(shù)據(jù)通信網(wǎng)絡(luò),計算機網(wǎng)絡(luò),ATM(異步傳輸模式)網(wǎng)絡(luò),SONET(同步光纖網(wǎng)絡(luò))網(wǎng)絡(luò),SDH(同步數(shù)字體系)網(wǎng)絡(luò),無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在一些實施例中,網(wǎng)絡(luò)104可以包括無線鏈路,諸如紅外信道或者衛(wèi)星頻帶。網(wǎng)絡(luò)104和/或104’的拓撲可為總線型、星型或環(huán)型網(wǎng)絡(luò)拓撲。網(wǎng)絡(luò)104和/或104’以及網(wǎng)絡(luò)拓撲可以是對于本領(lǐng)域普通技術(shù)人員所熟知的、可以支持此處描述的操作的任何這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓撲。網(wǎng)絡(luò)可包括利用用于移動設(shè)備間通信的任一或一些協(xié)議的移動電話網(wǎng)絡(luò),這些協(xié)議包括:AMPS、TDMA,CDMA、GSM、GPRS或UMTS。在一些實施例中,不同類型的數(shù)據(jù)可以通過不同協(xié)議傳輸。在其他實施例中,同一類型的數(shù)據(jù)可通過不同協(xié)議傳輸。[0027]在一些實施例中,系統(tǒng)可包括多個邏輯分組的服務(wù)器106。在這些實施例的一個中,服務(wù)器的邏輯分組可以被稱為服務(wù)器群38。在其中一些實施例中,服務(wù)器106可為地理上分散的。在其他實施例中,群38可以作為單個實體被管理。仍在其他實施例中,服務(wù)器群38包括多個服務(wù)器群38。每個服務(wù)器群38內(nèi)的服務(wù)器106可能是異構(gòu)的一一個或多個服務(wù)器106可根據(jù)一種類型的操作系統(tǒng)平臺(例如,由Washington,Redmond的Microsoft公司制造的WINDOWSNT)操作,而一個或多個其它服務(wù)器106可根據(jù)另一類型的操作系統(tǒng)平臺(例如,Unix或Linux)操作。[0028]每個服務(wù)器群38的服務(wù)器106不必與同一服務(wù)器群38中的另一個服務(wù)器106在物理上接近。因此,邏輯上分組為服務(wù)器群38的服務(wù)器106組可以是使用廣域網(wǎng)(WAN)或城域網(wǎng)(MAN)連接來互聯(lián)的。例如,群38可包括物理上位于不同大陸或大陸、國家、州、城市、校園或房間的不同區(qū)域的服務(wù)器106。如果服務(wù)器106使用局域網(wǎng)(LAN)連接或一些直連形式進行連接,則可增加群38中的服務(wù)器106間的數(shù)據(jù)傳送速度。[0029]服務(wù)器106可以是文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器、設(shè)備、網(wǎng)絡(luò)設(shè)備、網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)、網(wǎng)關(guān)服務(wù)器、虛擬化服務(wù)器、部署服務(wù)器、SSLVPN服務(wù)器,或防火墻。在一些實施例中,服務(wù)器106提供遠程認證撥入用戶服務(wù),并且可被稱為RADIUS服務(wù)器。在其他實施例中,服務(wù)器106可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。仍在其他實施例中,服務(wù)器106是刀片服務(wù)器。仍在其他實施例中,服務(wù)器106執(zhí)行向用戶或客戶計算機102提供對計算環(huán)境訪問的虛擬機。[0030]在一個實施例中,服務(wù)器106可包括活動目錄。服務(wù)器106可以是應(yīng)用加速設(shè)備。對于其中服務(wù)器106是應(yīng)用加速設(shè)備的實施例,服務(wù)器106可提供包括防火墻功能、應(yīng)用防火墻功能,或負載平衡功能的功能。在一些實施例中,服務(wù)器106包括諸如由位于CA,SanJose的Citrix應(yīng)用網(wǎng)絡(luò)組、位于CA,MountainView,的SilverPeakSystems公司、位于CA,SanFrancisco的RiverbedTechnology公司、位于WA,Seattle的F5Networks公司或位于CA,Sunnyvale的JuniperNetworks公司制造的設(shè)備線中的一個的設(shè)備。[0031]在一些實施例中,服務(wù)器106代表客戶機102的用戶執(zhí)行應(yīng)用。在其他實施例中,服務(wù)器106執(zhí)行虛擬機,該虛擬機提供執(zhí)行會話,在該執(zhí)行會話中應(yīng)用代表用戶或客戶機102來執(zhí)行。在這些實施例的一個中,該執(zhí)行會話是所寄載的桌面會話。在這些實施例的又一個中,該執(zhí)行會話提供對計算環(huán)境的訪問,該計算環(huán)境包括如下的一個或多個:應(yīng)用、多個應(yīng)用、桌面應(yīng)用、和在其中執(zhí)行一個或多個應(yīng)用的桌面會話。[0032]在一些實施例中,客戶機102與服務(wù)器106通信。在一個實施例中,客戶機102可與群38中的服務(wù)器106之一直接通信。在另一個實施例中,客戶機102執(zhí)行程序鄰近應(yīng)用Caprogramneighborhoodapplication)以與群38內(nèi)的服務(wù)器106通信。在另一個實施例中,服務(wù)器106提供主節(jié)點的功能。在一些實施例中,客戶機102通過網(wǎng)絡(luò)104與群38中的服務(wù)器106通信。例如通過網(wǎng)絡(luò)104,客戶機102可以請求執(zhí)行群38中的服務(wù)器106a_106n所寄載的各種應(yīng)用,并接收應(yīng)用執(zhí)行結(jié)果的輸出進行顯示。在一些實施例中,只有主節(jié)點提供這樣的功能,即識別和提供與服務(wù)器106b相關(guān)的地址信息所需的功能,所述服務(wù)器106b寄載所請求的應(yīng)用。[0033]在一個實施例中,服務(wù)器106提供網(wǎng)web服務(wù)器的功能。在另一個實施例中,服務(wù)器106a接收來自客戶機102的請求,將該請求轉(zhuǎn)發(fā)到第二服務(wù)器106b,并用服務(wù)器106b對該請求的響應(yīng)來對客戶機102的請求進行響應(yīng)。在又一個實施例中,服務(wù)器106獲得對客戶機102可用的應(yīng)用的列舉,和與服務(wù)器106’相關(guān)聯(lián)的地址信息,的所述服務(wù)器106’寄載該應(yīng)用的列舉所識別的應(yīng)用。在又一個實施例中,服務(wù)器106使用web接口提供對客戶機102的請求的響應(yīng)。在一個實施例中,客戶機102直接與服務(wù)器106通信以訪問所識別的應(yīng)用。在另一個實施例中,客戶機102接收諸如顯示數(shù)據(jù)的輸出數(shù)據(jù),該輸出數(shù)據(jù)由服務(wù)器106上所識別的應(yīng)用的執(zhí)行而產(chǎn)生。[0034]在一些實施例中,服務(wù)器106或服務(wù)器群38可運行一個或多個應(yīng)用,例如提供瘦客戶機計算的應(yīng)用或遠程顯示表示應(yīng)用。在一個實施例中,服務(wù)器106或服務(wù)器群38作為一個應(yīng)用來執(zhí)行CitrixSystems公司的CITRIXACCESSSHTE的任一部分(例如METAFRAM或CITRIXPRESENTATIONSERVER),和/或微軟公司開發(fā)的MICROSOFTWINDOWS終端服務(wù)中的任意一個。在又一個實施例中,該應(yīng)用是由位于Florida,FortLauderdale的CitrixSystems公司開發(fā)的ICA客戶機。仍在又一個實施例中,服務(wù)器106可以運行應(yīng)用,該應(yīng)用,例如,可以是提供諸如由位于Washington,Redmond的微軟公司制造的MICROSOFTEXCHANGE的電子郵件服務(wù)的應(yīng)用服務(wù)器、web或Internet服務(wù)器,或桌面共享服務(wù)器,或協(xié)同服務(wù)器。仍在又一個實施例中,任一應(yīng)用可以包括任一類型的所寄載的服務(wù)或產(chǎn)品,例如位于California,SantaBarbara的CitrixOnlineDivision公司提供的GOTOMEETING,位于California,SantaClara的WebEx公司提供的WEBEX,或者位于Washington,Redmond的微軟公司提供的MicrosoftOfficeLIVEMEETING。[0035]客戶機102可以執(zhí)行、操作或者以其它方式提供應(yīng)用,應(yīng)用可為任何類型和/或形式的軟件、程序或者可執(zhí)行指令,例如任何類型和/或形式的web瀏覽器、基于web的客戶機、客戶機一服務(wù)器應(yīng)用、瘦客戶端計算客戶機、ActiveX控件、或者Java程序、或者可以在客戶機102上執(zhí)行的任意其它類型和/或形式的可執(zhí)行指令。在一些實施例中,應(yīng)用可以是代表客戶機102在服務(wù)器106上執(zhí)行的基于服務(wù)器或者基于遠程的應(yīng)用。在一個實施例中,服務(wù)器106可以使用任意瘦-客戶端或遠程顯示協(xié)議來顯示輸出到客戶機102,所述遠程顯示協(xié)議例如由位于Ft.Lauderdale,Florida的CitrixSystems公司出品的獨立計算架構(gòu)(ICA)協(xié)議或由位于Redmond,Washington的微軟公司出品的遠程桌面協(xié)議(RDP)。應(yīng)用可使用任何類型的協(xié)議,并且它可為,例如,HTTP客戶端、FTP客戶端、Oscar客戶端或Telnet客戶端。在其它實施例中,應(yīng)用包括和VoIP通信相關(guān)的任何類型的軟件,例如軟IP電話。在進一步的實施例中,應(yīng)用包括涉及到實時數(shù)據(jù)通信的任一應(yīng)用,例如用于流式傳輸視頻和/或首頻的應(yīng)用。[0036]客戶機102和服務(wù)器106可以布署為和/或執(zhí)行在任意類型和形式的計算設(shè)備上,諸如能夠在任意類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計算機、網(wǎng)絡(luò)設(shè)備或者設(shè)備。[0037]圖1B和IC描述了可用于實施客戶機102、服務(wù)器106的實施例的計算設(shè)備100的框圖。如圖1B和IC所示,每個計算設(shè)備100包括中央處理單元110和主存儲器單元112。如圖1B所示,計算設(shè)備100可包括存儲設(shè)備114、安裝設(shè)備116、網(wǎng)絡(luò)接口140、1/0控制器120、顯示設(shè)備122a-n、鍵盤124和諸如鼠標的定位設(shè)備126。存儲設(shè)備114可包括但不限于操作系統(tǒng)、軟件和客戶機代理128。如圖1C所示,每個計算設(shè)備100也可包括其它可選擇的部件,例如存儲器端口130、橋132、一個或多個輸入/輸出設(shè)備134a—134η(總的使用標號134表示),以及與中央處理單元110通信的高速緩存存儲器136。[0038]中央處理單元110是響應(yīng)并處理從主存儲器單元112取出的指令的任意邏輯電路。在許多實施例中,中央處理單元Iio由微處理器單元提供,例如:由California,MountainView的Intel公司制造的微處理器單兀;由Illinois,Schaumburg的Motorola公司制造的微處理器單元;由Califirnia,SantaClara的Transmeta公司制造的微處理器單兀;由NewYork,WhitePlains的InternationalBusinessMachines公司制造的RS/6000處理器;或者由California,Sunnyvale的AdvancedMicroDevices公司制造的微處理器單元。計算設(shè)備100可以基于這些處理器中的任意一種,或者能夠按照這里所說明的那樣運行的任意其它處理器。[0039]主存儲器單元112可以是能夠存儲數(shù)據(jù)并允許微處理器110直接訪問任意存儲位置的一個或多個存儲器芯片,例如靜態(tài)隨機訪問存儲器(SRAM)、Burst(脈沖串)SRAM或SynchBurstSRAM(BSRAM)、動態(tài)隨機訪問存儲器DRAM、快速頁模式DRAM(FPMDRAM)、增強DRAM(EDRAM)、擴展數(shù)據(jù)輸出RAM(EDORAM)、擴展數(shù)據(jù)輸出DRAM(EDODRAM)、脈沖串擴展數(shù)據(jù)輸出DRAM(BED0DRAM)、增強型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PC100SDRAM、雙數(shù)據(jù)傳輸率SDRAM(DDRSDRAM)、增強SRAM(ESDRAM)、同步鏈路DRAM(SLDRAM)、直接RambusDRAM(DRDRAM)或鐵電RAM(FRAM)0主存儲器112可以基于上述存儲芯片的任意一種,或者能夠像這里所說明的那樣運行的任意其它可用存儲芯片。在圖1B中所示的實施例中處理器110通過系統(tǒng)總線138(在下面進行更詳細的描述)與主存儲器112進行通信。圖1C描述了在其中處理器通過存儲器端口130直接與主存儲器單元112通信的計算設(shè)備100的實施例。例如,在圖1C中主存儲器112可以是DRDRAM。[0040]圖1C描述在其中主處理器110通過有時被稱為背側(cè)總線的次級總線直接與高速緩存存儲器136通信的實施例。其他實施例中,主處理器110使用系統(tǒng)總線138與高速緩沖存儲器136通信。高速緩沖存儲器136通常有比主存儲器112更快的響應(yīng)時間,并且通常由SRAM、BSRAM或EDRAM提供。在圖1C中所示的實施例中處理器110通過本地系統(tǒng)總線138與多個I/O設(shè)備130進行通信??梢允褂酶鞣N不同的總線將中央處理單元110連接到任意I/O設(shè)備130,包括VESAVL總線、ISA總線、EISA總線、微通道體系結(jié)構(gòu)(MCA)總線、PCI總線、PC1-X總線、PC1-Express總線或NuBus。對于I/O設(shè)備是視頻顯示器122的實施例,處理器110可以使用加速圖形接口(AGP)與顯示器122通信。圖1C描述了在其中主處理器通過HYPERTRANSPORT,RAPID10,或INFINIBAND通信技術(shù)直接與I/O設(shè)備134b通信的計算機100的實施例。圖1C也描述了在其中本地總線和直接通信相混合的實施例:處理器110使用本地互相總線與I/O設(shè)備134a通信同時直接與I/O設(shè)備134b通信。[0041]各式各樣的I/O設(shè)備134a_134n可以存在于計算設(shè)備100中。輸入設(shè)備包括鍵盤、鼠標、觸控板、軌跡球、話筒和繪圖板。輸出設(shè)備包括視頻顯示器、揚聲器、噴墨打印機、激光打印機和熱升華打印機。如圖1B所示,I/O設(shè)備可以由I/O控制器120控制。I/O控制器可以控制一個或多個I/O設(shè)備,例如鍵盤124和定位設(shè)備126(如鼠標或光筆)。此外,I/O設(shè)備還可以為計算設(shè)備100提供存儲和/或安裝介質(zhì)116。仍在其它實施例中,計算設(shè)備100可以提供USB連接(未示出)以接收手持USB存儲設(shè)備,例如由位于LosAlamitos,California的TwintechIndustry公司生產(chǎn)的設(shè)備的USB閃存驅(qū)動器線。[0042]再次參考圖1B,計算設(shè)備100可以支持任意適當?shù)陌惭b設(shè)備116,例如用于接收像3.5英寸、5.25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動器、⑶-ROM驅(qū)動器、⑶-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、多種格式的磁帶驅(qū)動器、USB設(shè)備、硬盤驅(qū)動器或適于安裝像任意客戶機代理120或其部分的軟件和程序的任意其它設(shè)備。計算設(shè)備100還可以包括存儲設(shè)備,諸如一個或者多個硬盤驅(qū)動器或者獨立磁盤冗余陣列,用于存儲操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲諸如涉及客戶機代理128的任意程序的應(yīng)用軟件程序?;蛘撸梢允褂冒惭b設(shè)備116的任意一種作為存儲設(shè)備。此外,操作系統(tǒng)和軟件可從例如可引導(dǎo)CD的可引導(dǎo)介質(zhì)運行,諸如ΚΝ0ΡΡΙΧ,一種用于GNU/Linux的可引導(dǎo)⑶,該可引導(dǎo)⑶可自knoppix.net作為GNU/Linux分發(fā)獲得。[0043]此外,計算設(shè)備100可以包括網(wǎng)絡(luò)接口140以通過多種連接,包括但不限于標準電話線路、LAN或WAN鏈路(例如802.11,Tl,T3、56kb、X.25、SNA、DECNET)、寬帶連接(如ISDN、幀中繼、ATM、千兆以太網(wǎng)、SONET上以太網(wǎng)(Ethernet-over-SONET))、無線連接、或上述任意或全部的一些組合,來與網(wǎng)絡(luò)104對接。使用多種通信協(xié)議(例如TCP/IP、IPX、SPX、NetVIOS,Ehernet,ARCNET、SONET、SIDH、光纖分布數(shù)據(jù)接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.llaIEEE802.lib、IEEE802.llg、CDMA、GSM、WiMax和直接異步連接)也可建立連接。在一個實施例中,計算設(shè)備100可以通過任意類型和/或形式的網(wǎng)關(guān)或諸如安全套接字層(SSL)或傳輸層安全(TLS),或CitrixSystems公司制造的Gitrix網(wǎng)關(guān)協(xié)議的隧道協(xié)議來與其他計算設(shè)備100’通信。網(wǎng)絡(luò)接口140可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計算設(shè)備100連接到能夠通信并執(zhí)行這里所說明的操作的任意類型的網(wǎng)絡(luò)的任意其它設(shè)備。[0044]在一些實施例中,計算設(shè)備100可以包括多個顯示設(shè)備122a_122n或與其相連,這些顯示設(shè)備各自可以是相同或不同的類型和/或形式。因而,任意一種I/O設(shè)備134a-134n和/或I/O控制器120可以包括任一類型和/或形式的適當?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許或提供通過計算設(shè)備100連接和使用多個顯示設(shè)備122a-122n。例如,計算設(shè)備100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動器和/或庫,以與顯示設(shè)備122a-122n對接、通信、連接或以其他方式使用顯示設(shè)備122a_122n。在一個實施例中,視頻適配器可以包括多個連接器以與多個顯示設(shè)備122a-122n對接。在其它實施例中,計算設(shè)備100可以包括多個視頻適配器,每個視頻適配器與顯示設(shè)備122a-122n中的一個或多個連接。在一些實施例中,計算設(shè)備100的操作系統(tǒng)的任一部分都可以被配置用于使用多個顯示器122a-122n。在其它實施例中,顯示設(shè)備122a_122n中的一個或多個可以由一個或多個其它計算設(shè)備提供,諸如(例如通過網(wǎng)絡(luò))與計算設(shè)備100連接的計算設(shè)備IOOa和100b。這些實施例可以包括被設(shè)計和構(gòu)造的任一類型的軟件,以使用另一個計算機的顯示設(shè)備作為計算設(shè)備100的第二顯示設(shè)備122a。本領(lǐng)域的普通技術(shù)人員會認識和意識到可以將計算設(shè)備100配置成擁有多個顯示設(shè)備122a-122n的各種方式和實施例。[0045]在進一步的實施例中,I/O設(shè)備134可以是系統(tǒng)總線138和外部通信總線(如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire800總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線或串行SCSI總線)之間的橋。[0046]圖1B和IC中所描述的類型的計算設(shè)備100典型地在操作系統(tǒng)的控制下運行,操作系統(tǒng)控制任務(wù)的調(diào)度和對系統(tǒng)資源的訪問。計算設(shè)備100可執(zhí)行任一操作系統(tǒng),諸如任一版本的MICROSOFTWINDOWS的操作系統(tǒng);不同發(fā)行版本的Unix和Linux操作系統(tǒng);由蘋果計算機出品的MACOS的任意版本;任意嵌入式操作系統(tǒng);任意實時操作系統(tǒng);任意開源操作系統(tǒng);任意專有操作系統(tǒng);任意用于移動計算設(shè)備的操作系統(tǒng),或者能夠在計算設(shè)備上運行且執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。典型的操作系統(tǒng)包括,但不限于:WIND0WS3.X、WIND0WS95、WIND0WS98、WIND0WS2040、WINDOWSNT3.51、WINDOWSNT4.0、WINDOWSCE和WINDOWSXP,和WINDOWSVISTA,所有這些均由位于Redmond,Washington的微軟公司出品;由位于Cupertino,California的蘋果計算機出品的MacOS;由位于Armonk,NewYork的國際商業(yè)機器公司出品的OS/2;以及由位于SaltLakeCity,Utah的Caldera公司發(fā)布的可免費使用的Linux操作系統(tǒng)或者任意類型和/或形式的Unix操作系統(tǒng),以及其它。[0047]計算機系統(tǒng)100可以是任意工作站、桌面計算機、膝上型或筆記本計算機、服務(wù)器、手持計算機、移動電話或其他便攜電信通信設(shè)備、媒體播放設(shè)備、游戲系統(tǒng)、移動計算設(shè)備,或能夠通信并有足夠的處理器能力和存儲容量以執(zhí)行此處所述的操作的任意其它類型和/或形式的計算、電信或者媒體設(shè)備。例如,計算機系統(tǒng)100可包括由位于California,Cupertino的蘋果計算機公司出品的IPOD系列設(shè)備、由位于日本東京的索尼公司出品的PLAYSTAT10N2、PLAYSTAT10N3或PERSONALPLAYSTATIONPORTABLE(PSP)設(shè)備,由位于日本Kyoto的Nintendo有限公司出品的NINTENDODS,NINTENDOGAMEBOY,NINTENDOGAMEBOYADVANCED或NINTENDOREVOLUTION設(shè)備,或者由位于WashingtonRemond的微軟公司出品的XBOX或XB0X360設(shè)備。[0048]在一些實施例中,計算設(shè)備100可以有不同的處理器、操作系統(tǒng)以及與該設(shè)備一致的輸入設(shè)備。例如,在一個實施例中,計算設(shè)備100是由Palm公司出品的Treol80、270、600、650、680、700p、700w/wx、750、755p、800w、Centra、或Pro智能電話。在這些實施例的一些中,TERO智能電話是在PalmOS操作系統(tǒng)的控制下操作并且包括筆輸入設(shè)備以及五向?qū)Ш皆O(shè)備。[0049]在其他實施例中,計算設(shè)備100是移動設(shè)備,例如,JAVA使能蜂窩電話(JAVA-enabledcellulartelephone)或個人數(shù)據(jù)助理(PDA),諸如i55sr,i58sr,i85s,i88s,i90c,i95cl,?335,?365,?570,?576,?580,?615,?760,?836,?850,?870,?880,?920,i930,ic502,ic602,ic902,i776或imllOO,以上這些均由位于Illinois,Schaumburg的摩托羅拉公司制造;由位于日本東京的Kyocera公司制造的6035或7135;或者由位于韓國Seoul的Samsung電子有限公司制造的i300或i330。在一些實施例中,計算設(shè)備100是由位于芬蘭的諾基亞公司制造或由位于瑞典Lund的索尼愛立信移動通信AB公司制造的移動設(shè)備。[0050]仍在其他實施例中,計算設(shè)備100是黑莓(Blackberry)手持或智能電話,諸如由ResearchInMotion有限公司制造的設(shè)備,包括黑莓7100系列、7700系列、黑莓7520、黑莓PERAL8100、8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve8900和黑莓PearlFlip。仍在其他實施例中,計算設(shè)備100是支持MicrosftWindowsMobileSoftware的智能電話、PocketPC,PocketPC電話,或其它手持移動設(shè)備。此外,計算設(shè)備100可以是任意工作站、桌面計算機、膝上型或筆記本計算機、服務(wù)器、手持計算機、移動電話、任意其它計算機、或能夠通信并有足夠的處理器能力和存儲容量以執(zhí)行此處所述的操作的其它形式的計算或者電信設(shè)備。[0051]在一些實施例中,設(shè)備100是數(shù)字音頻播放器。在這些實施例的一個中,計算設(shè)備100是諸如由位于CaliforniaCupertino的蘋果計算機公司制造的AppleIPOD、IPODTouch、IPODNANO和IPODSHUFFLE系列設(shè)備的數(shù)字音頻播放器。在這些實施例的又一個中,數(shù)字音頻播放器可作為便攜媒體播放器和作為大容量存儲設(shè)備來工作。在其他實施例中,計算設(shè)備100是諸如由位于NJ,RidgefieldPark的SanmsungElectronicsAmerica公司制造的DigitalAudioPlayerSelectMP3播放器,或由位于IL.Schaumburg的Motorola公司制造的Motorolam500或m2roigitalAudioPlayers的數(shù)字音頻播放器。仍在其他實施例中,計算設(shè)備100是便攜媒體播放器,諸如ZenVisionW、ZenVision系列、ZenPortableMediaCenter設(shè)備或由CreativeTechnologies有限公司制造的MP3播放器的DigitalMP3系列。仍在其他實施例中,計算設(shè)備100是支持以下文件格式的媒體播放器或數(shù)字音頻播放器,這些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMAProtectedAAC,AIFF、Audible音頻書、AppleLossless音頻文件格式和.mov、.m4v和.mp4MPEG_4(H.264/MPEG-4AVC)視頻文件格式。[0052]在一些實施例中,計算設(shè)備100包括設(shè)備的組合,例如與數(shù)字音頻播放器或便攜媒體播放器相組合的移動電話。在這些實施例的一個中,計算設(shè)備100是組合數(shù)字音頻播放器和移動電話的MotorolaRAZR或MotorolaROKR系列。在這些實施例的又一個中,計算設(shè)備100是由位于California,Cupertino的蘋果計算機公司制造的iPhone智能電話。[0053]在一個實施例中,服務(wù)器106包括策略引擎,所述策略引擎用于控制和管理對資源的訪問、對訪問資源的執(zhí)行方法的選擇以及資源的傳送。在又一個實施例中,服務(wù)器106與策略引擎通信。在一些實施例中,策略引擎識別用戶或者客戶機102可以訪問的一個或者多個資源。在其他實施例中,策略引擎確定資源應(yīng)該如何被傳送到用戶或者客戶機102,例如執(zhí)行的方法。仍在其他實施例中,響應(yīng)于由策略引擎所做的確定,服務(wù)器106提供多個傳送技術(shù),從中選擇執(zhí)行的方法,例如基于服務(wù)器的計算、應(yīng)用流式傳輸或本地地遞送應(yīng)用給客戶機102以用于本地執(zhí)行。仍在其他實施例中,策略引擎響應(yīng)于關(guān)于本地機器是否能訪問以及如何訪問資源的確定,提供對客戶機102可利用的多個資源的列舉。策略引擎可在做出該確定之前收集關(guān)于客戶機102的信息。[0054]對于在其中資源是計算環(huán)境的實施例,策略可允許在客戶機102上安裝計算環(huán)境。在這些實施例的又一個中,策略可使客戶機102能夠訪問在服務(wù)器106上的虛擬機中執(zhí)行的計算環(huán)境的副本。仍在這些實施例的又一個中,策略可使客戶機102能夠訪問在客戶機102上的虛擬機中執(zhí)行的計算環(huán)境的副本。在一些實施例中,服務(wù)器106識別這樣一個執(zhí)行機器,在該執(zhí)行機器上配備用于提供對所請求的計算環(huán)境的訪問的虛擬機。在這些實施例的一個中,執(zhí)行機器是客戶機102。在這些實施例的又一個中,執(zhí)行機器是服務(wù)器106。仍在這些實施例的又一個中,執(zhí)行機器是第二服務(wù)器106b。在這些實施例的又一個中,其中執(zhí)行機器是服務(wù)器106,執(zhí)行機器可向客戶機102提供輸出數(shù)據(jù),所述輸出數(shù)據(jù)由計算環(huán)境的執(zhí)行所產(chǎn)生并根據(jù)表示層協(xié)議傳輸?shù)娇蛻魴C102。[0055]在一些實施例中,服務(wù)器106可選擇提供對所請求資源訪問的方法,該方法要求資源在執(zhí)行機器上的隔離環(huán)境內(nèi)執(zhí)行。隔離環(huán)境可由能提供文件系統(tǒng)虛擬化、注冊表系統(tǒng)虛擬化和命名對象(namedobject)虛擬化的核心系統(tǒng)組成。隔離環(huán)境可以用注冊表過濾驅(qū)動器來重定向資源請求以用于注冊表和命名對象的虛擬化,用文件系統(tǒng)過濾器來重定向資源請求以用于文件系統(tǒng)虛擬化。[0056]在一些實施例中,用戶隔離環(huán)境為每個訪問執(zhí)行機器的用戶提供隔離范圍。在其他實施例中,用戶隔離環(huán)境給一組用戶提供隔離范圍,該用戶組可由組織內(nèi)的角色定義或可由管理員預(yù)先確定。在其他實施例中,用戶隔離環(huán)境可以用于多用戶計算機中,所述多用戶計算機支持不同用戶的應(yīng)用程序的并發(fā)執(zhí)行。在其他實施例中,用戶隔離環(huán)境也可被用在單用戶計算機中。在其他實施例中,虛擬機在執(zhí)行機器的隔離環(huán)境內(nèi)執(zhí)行。在進一步的實施例中,虛擬機在執(zhí)行機器的隔離環(huán)境之外執(zhí)行并且執(zhí)行機器所提供的所有其他資源在隔離環(huán)境內(nèi)執(zhí)行。[0057]圖2-6描述了將基本機器映像與在機器的使用期間用戶所做的任何變化分開的系統(tǒng)和方法,同時向用戶提供磁盤(具有基本映像和用戶數(shù)據(jù))的統(tǒng)一視圖。尤其是,本發(fā)明的系統(tǒng)和方法將硬盤分成基本部分和用戶增量盤部分,所述基本部分包含供應(yīng)服務(wù)器所部署的基本映像,所述用戶增量部分包含用戶環(huán)境。從而,本發(fā)明所描述的系統(tǒng)在文件級從基本系統(tǒng)分離用戶增量信息。這與現(xiàn)有技術(shù)(例如VMware的鏈接克隆)所描述的系統(tǒng)有相當大的不同,現(xiàn)有技術(shù)所描述的系統(tǒng)操作在磁盤塊級。通過在文件級操作,此處所描述的本發(fā)明允許合并來自基本映像和用戶增量盤的文件以便給用戶提供統(tǒng)一的視圖。因此,本發(fā)明允許獨立地更新基本映像,其中可使用對基本映像的任何改變而不必將這些變化傳播到用戶增量盤。[0058]在本發(fā)明的方法和系統(tǒng)的一個具體實施例中,系統(tǒng)被描述為用于根據(jù)對遠程桌面所做的任何改變來自動配置桌面設(shè)備。尤其是,系統(tǒng)被描述為用于通過遠程桌面所產(chǎn)生的用戶接口來控制與桌面設(shè)備的屬性相關(guān)聯(lián)的配置數(shù)據(jù)。更甚至,提供用于顯示在遠程桌面上執(zhí)行的資源所產(chǎn)生的用戶接口的桌面設(shè)備。用戶交互組件在桌面設(shè)備上執(zhí)行。這個用戶交互組件接收所攔截的用戶通過用戶接口修改桌面設(shè)備的屬性的請求。接著,它重定向所攔截的修改到在桌面設(shè)備上執(zhí)行的操作系統(tǒng)。然后,在桌面設(shè)備上執(zhí)行的操作系統(tǒng)應(yīng)用所攔截的修改。[0059]參考圖2,示例框圖描述用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的系統(tǒng)200。系統(tǒng)200包括在執(zhí)行機器204上執(zhí)行的存儲元件202。存儲元件202被分為基盤206和用戶增量盤208,其中在文件級將用戶增量數(shù)據(jù)與基盤數(shù)據(jù)相分離。通過在文件級操作,系統(tǒng)200允許合并來自基盤206和用戶增量盤208的文件以便給用戶提供統(tǒng)一的視圖。另外,在文件級操作允許管理員獨立于用戶增量盤208來更新基盤206。從而,管理員可實現(xiàn)對基盤206的改變而不必將該變化傳播到用戶增量盤206。[0060]在一個實施例中,基盤206存儲虛擬機映像,其中虛擬機映像被存儲在存儲區(qū)域網(wǎng)(SAN)或,可替代地,存儲在網(wǎng)絡(luò)附屬存儲(NAS)中。與SAN通信的文件服務(wù)器使虛擬機映像就像位于NAS上一樣可以被訪問。執(zhí)行機器204可檢索用于執(zhí)行的虛擬機映像。或者,執(zhí)行機器204可檢索存儲虛擬機映像的基盤206。在一個具體實施例中,執(zhí)行機器204可檢索附加的配置和數(shù)據(jù)文件,所述附加的配置和數(shù)據(jù)文件包含與用戶相關(guān)聯(lián)的用戶定制計算環(huán)境。在又一個實施例中,用戶增量盤208存儲附加的配置和數(shù)據(jù)文件并且被執(zhí)行機器204所檢索。[0061]在又一個實施例中,基盤206是執(zhí)行機器204上的物理盤?;蛘?,基盤206提供對操作系統(tǒng)的訪問。特別地,基盤206是具有系統(tǒng)盤映像的文件,其中尤其包含由管理員建立的操作系統(tǒng)、應(yīng)用、數(shù)據(jù)和設(shè)置。根據(jù)本發(fā)明,管理員可獨立于多個多個用戶增量盤來更新和增加基盤206的內(nèi)容。物理機器(諸如,例如,執(zhí)行機器204)或虛擬機(諸如,例如,由執(zhí)行機器204提供的虛擬機)可掛載系統(tǒng)盤映像,以及加載和執(zhí)行其上的操作系統(tǒng)。[0062]用戶增量盤208包含對用戶所訪問的資源所請求的基盤206的內(nèi)容的任何改變。根據(jù)本發(fā)明公開的一個實施例,此處所描述的方法和系統(tǒng)執(zhí)行寫時復(fù)制(copy-onirite)策略,使得如果識別到修改基盤206上的文件的請求,該文件首先被復(fù)制到增量盤208,在增量盤208上進行修改。如果用戶所訪問的資源創(chuàng)建新的文件或改變基盤206所提供的注冊表,這些變化也被保存到用戶增量盤208。另外,當用戶安裝新的應(yīng)用、驅(qū)動程序或其他資源(諸如資源304(圖3A)),這些變化被捕獲為文件和注冊表變化,并且也被存儲到用戶增量盤208。[0063]用戶增量盤208可包括對基盤206所提供的操作系統(tǒng)的定制。或者,用戶增量盤208包括允許用戶定制應(yīng)用的應(yīng)用配置文件,或者可包括臨時存儲的Internet文件。在一個具體實施例中,用戶增量盤208識別與用戶相關(guān)聯(lián)的個人文件夾所存儲的項目,這些文件夾包括但不限于存儲cookies、Internet上最喜歡的網(wǎng)站的URLs、具有桌面可見的快捷方式的資源、具有經(jīng)由特定菜單(諸如開始菜單或最近所訪問應(yīng)用的菜單)可訪問的快捷方式的資源的文件夾、存儲模板的文件夾或“我的文檔”文件夾。在又一個實施例中,用戶增量盤208包括在與執(zhí)行機器204所提供的資源交互期間用戶所產(chǎn)生的數(shù)據(jù)文件。[0064]在一個具體實施例中,系統(tǒng)200支持多個用戶增量盤208的使用,其中系統(tǒng)200在特定增量盤中存儲多個先前的用戶增量盤208,或一特定增量盤的檢查點或時間戳。每次用戶關(guān)閉機器,用戶增量盤208的副本將被存儲。因此,用戶被允許“回到從前”(gobackintime)來使用處于過去的多個會話中的狀態(tài)中的機器(例如,過去的5次重啟)。另外,給用戶提供其他的功能(例如,取消用戶想要取消任何改變的能力)。[0065]如上所述,用戶增量盤208存儲與用戶相關(guān)聯(lián)的多個設(shè)置。在一個實施例中,用戶增量盤208存儲與用戶相關(guān)聯(lián)的注冊表鍵。在又一個實施例中,用戶增量盤208包括配置文件(例如與用戶相關(guān)聯(lián)的用于應(yīng)用處理的數(shù)據(jù)文件)。在又一個實施例中,用戶增量盤208包括可執(zhí)行文件,例如用戶增量盤208可存儲用戶所安裝的應(yīng)用程序。在這個具體實施例中,用戶增量盤208可包括與所安裝的應(yīng)用程序相關(guān)聯(lián)的注冊表設(shè)置(諸如,例如,桌面設(shè)置、資源配置、應(yīng)用設(shè)置或安全配置文件)。[0066]從而,也可以設(shè)想與一個用戶或一組用戶相關(guān)聯(lián)的用戶簡檔。當用戶指定選項(preference)時,例如通過重設(shè)缺省字體來識別用于在本地機器的操作系統(tǒng)初始化時執(zhí)行的進程,或改變諸如主題、延伸或背景圖的圖形顯示元素來指定選項,用戶簡檔中的設(shè)置被更新以便反映該選項。而且,當用戶指定選項時,產(chǎn)生用戶簡檔中的設(shè)置。例如,資源可產(chǎn)生注冊表鍵,數(shù)據(jù)文件或配置文件以存儲用戶指定的選項的標識。從而,這些選項和設(shè)置給用戶提供從會話到會話的、定制的、用戶指定的環(huán)境。[0067]用戶增量盤208可包括用于共同定義與用戶相關(guān)聯(lián)的個性化環(huán)境的多個設(shè)置和文件。用戶增量盤208也可包括包含用戶選項和配置設(shè)置的集合,所述配置設(shè)置包含,但不限于,屏幕顏色,應(yīng)用指定的配置選項,與網(wǎng)絡(luò)連接相關(guān)聯(lián)的選項,與打印機連接相關(guān)聯(lián)的選項,輸入/輸出設(shè)備設(shè)置以及窗口大小和位置選項。而且,在又一個實施例中,用戶增量盤208可包括MICROSOFTWINDOWS用戶簡檔。[0068]在一個實施例中,用戶增量盤208包括為用戶和計算機存儲設(shè)置的注冊表數(shù)據(jù)庫。注冊表數(shù)據(jù)庫的各部分可被存放在被稱為蜂巢文件(hivefile)的多個文件中。在又一個實施例中,用戶增量盤208包括存儲在文件系統(tǒng)中的多個簡檔夾。簡檔夾存儲數(shù)據(jù)和配置文件、用戶指定的快捷方式的標識,桌面圖片、文檔和其他用戶指定的數(shù)據(jù)。[0069]用戶增量盤208包括特定于執(zhí)行機器204上的操作系統(tǒng)的文件和注冊表鍵。在一個具體實施例中,用戶增量盤208包括用于執(zhí)行WINDOWS操作系統(tǒng)的本地機器的用戶的簡檔。在又一個具體實施例中,用戶增量盤208包括用于執(zhí)行MACOS操作系統(tǒng)的本地機器的用戶的配置設(shè)置、應(yīng)用和數(shù)據(jù)文件。在又一個實施例中,用戶增量盤208包括用于執(zhí)行UNIX或LINUX操作系統(tǒng)的本地機器的用戶的配置設(shè)置、應(yīng)用和數(shù)據(jù)文件。在又一個實施例中,用戶增量盤208包括在一個環(huán)境中所產(chǎn)生的簡檔,其可以被訪問或應(yīng)用到在第二個環(huán)境中執(zhí)行的資源。在這個具體實施例中,簡檔可產(chǎn)生于執(zhí)行WINDOWSXPSPl操作系統(tǒng)的本地機器上并且被在WINDOWSXPSP3操作系統(tǒng)上執(zhí)行的應(yīng)用所訪問。在其他實施例中,用戶增量盤208包括特定于通過執(zhí)行機器204訪問的虛擬機所提供的操作系統(tǒng)的文件和注冊表鍵。[0070]參考圖3A和3B,并首先參考圖3A,用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的系統(tǒng)300包括隔離環(huán)境302、至少一個資源304和注冊表過濾驅(qū)動器306。所述至少一個資源304可以是程序、應(yīng)用、文檔、文件、多個應(yīng)用、多個文件、可執(zhí)行程序文件、桌面環(huán)境、計算環(huán)境或?qū)?zhí)行機器204的用戶可利用的其他資源。在一個具體實施例中,可執(zhí)行資源(未示出)被執(zhí)行以便給用戶提供對所請求資源304的訪問。例如,用戶可以請求訪問執(zhí)行機器204上的文件以及在執(zhí)行機器204上執(zhí)行的能夠處理所請求的文件的可執(zhí)行資源。在又一個實施例中,用戶可以請求訪問單個資源304并且接收對多個應(yīng)用、桌面或計算環(huán)境的訪問。在一些實施例中,系統(tǒng)300可以通過流傳輸資源的方法與提供對資源的訪問的服務(wù)器通信。[0071]如圖3A所示,執(zhí)行機器204在隔離環(huán)境302內(nèi)執(zhí)行至少一個資源304。在一個實施例中,請求訪問所述至少一個資源304的用戶與執(zhí)行機器204直接交互,執(zhí)行機器204可以是客戶機102a(圖1A)。在又一個實施例中,請求訪問至少一個資源304的用戶與客戶機102a交互,客戶機102a接收由執(zhí)行機器204上至少一個資源304的執(zhí)行所產(chǎn)生的輸出數(shù)據(jù)。在又一個實施例中,在執(zhí)行機器204上執(zhí)行的所有資源在隔離環(huán)境302之內(nèi)執(zhí)行。在又一個實施例中,由基本機器磁盤206的執(zhí)行所產(chǎn)生的虛擬機在隔離環(huán)境310之外執(zhí)行而所有其他資源在隔離環(huán)境302之內(nèi)執(zhí)行。[0072]在一個實施例中,隔離環(huán)境302包括高速緩存存儲器元件(未示出)。在又一個實施例中,隔離環(huán)境302可以訪問高速緩存存儲器元件。在又一個實施例中,隔離環(huán)境302存儲經(jīng)修改的設(shè)置的副本,所述經(jīng)修改的設(shè)置的副本反映對執(zhí)行機器204上的文件系統(tǒng)或注冊表的用戶定制。[0073]執(zhí)行機器204上的代理(未示出)在執(zhí)行機器204上創(chuàng)建隔離環(huán)境302。該代理使用隔離環(huán)境應(yīng)用編程接口來創(chuàng)建隔離環(huán)境302。另外,該代理在隔離環(huán)境302中存儲多個應(yīng)用文件。該代理也可通過提供對隔離環(huán)境內(nèi)的文件、應(yīng)用和其他資源的訪問來修改由在隔離環(huán)境302之外執(zhí)行的虛擬機所提供的操作系統(tǒng)。[0074]繼續(xù)參考圖3A,注冊表過濾驅(qū)動器306被采用以捕獲在會話期間對在執(zhí)行機器204上執(zhí)行的操作系統(tǒng)所包含的注冊表所作的每次改變。注冊表過濾驅(qū)動器306重定向在會話期間對在執(zhí)行機器204上執(zhí)行的操作系統(tǒng)所包含的注冊表所作的任何改變。系統(tǒng)300還包括存儲組件(未示出),該存儲組件允許這些改變留存并且當用戶在隨后的會話中重新連接到該機器時使這些改變可被使用。應(yīng)注意,在一些實施例中,不使用注冊表過濾驅(qū)動器306,因為注冊表組件對某些操作系統(tǒng)(諸如,例如,基于Linux和基于UNIX的環(huán)境)不是必須的。[0075]在一個實施例中,注冊表過濾驅(qū)動器306攔截類似csrss.exe的對內(nèi)核組件和操作系統(tǒng)組件的注冊表操作,和其他不允許引入鉤子動態(tài)鏈接庫的進程。在又一個實施例中,注冊表數(shù)據(jù)被記錄到用戶增量盤208,而不是基盤206,從而當還原環(huán)境時,注冊表過濾驅(qū)動器306再現(xiàn)用戶注冊表的變化。在又一個實施例中,注冊表過濾驅(qū)動器306通過逐步修改基盤206中的數(shù)據(jù)以便包含來自用戶增量盤208所存儲的注冊表數(shù)據(jù)來再現(xiàn)變化。[0076]系統(tǒng)300提供整機虛擬化,在其中執(zhí)行的或由基盤206提供的操作系統(tǒng)所提供的所有資源在隔離環(huán)境中執(zhí)行。至少一個運行進程可以被隔離,或者,所有運行進程可以被隔離。另外,由資源所作的多個文件請求(諸如打開文件或?qū)懳募埱?可被捕獲并且重定向到用戶增量盤208。每個文件訪問請求被重定向到用戶增量盤208,而不是基盤206。如果文件以只讀方式打開,則不發(fā)生重定向。從應(yīng)用的角度和操作系統(tǒng)的角度來看,文件駐留在系統(tǒng)盤,因為文件系統(tǒng)隔離驅(qū)動器以對調(diào)用進程透明的方式來處理文件的重定向和合并。[0077]在一個具體實施例中,注冊表驅(qū)動器306使用MICROSOFTWINDOWS注冊表過濾驅(qū)動器模型。通過使用這個模型,注冊表過濾驅(qū)動器306被告知用戶請求的每次注冊表的修改,從而使該修改對用戶增量盤是可被留存的?;蛘撸员磉^濾驅(qū)動器306被告知用戶請求的至少一次注冊表的修改,從而使該修改對用戶增量盤是可被留存的。然而,在其他實施例中,只讀注冊表請求對用戶增量盤208不是可被留存的。注冊表過濾模型允許修改注冊表調(diào)用,從而使注冊表操作發(fā)生在運行時(runtime)。[0078]眾所周知,注冊表的操作模型不同于文件系統(tǒng)的操作模型。例如,注冊表過濾驅(qū)動模型在不同的MICROSOFTWINDOWS操作系統(tǒng)版本上提供不同的能力。例如在WINDOWSXP上,注冊表過濾驅(qū)動器306記錄注冊表修改的操作到該注冊表的另一部分,并且周期性地將該記錄的結(jié)果寫出到用戶增量盤208。在WINDOWSVISTA平臺上,注冊表過濾模型允許重定向注冊表操作并且注冊表過濾驅(qū)動器306重定向該操作到用戶增量盤208。[0079]當數(shù)據(jù)被捕獲到用戶增量盤208時,在基盤206的隨后重新啟動時,可能將所有的用戶數(shù)據(jù)與由基盤206的執(zhí)行所提供的操作系統(tǒng)相合并。呈現(xiàn)給用戶的計算環(huán)境對用戶而言看上去是與在其中做出改變的先前會話同樣的環(huán)境,而該計算環(huán)境是基本機器(例如基盤206)所提供的操作系統(tǒng)和用戶增量盤208中所存儲的定制的組合。[0080]因此,根據(jù)本發(fā)明,用戶增量數(shù)據(jù)被存儲在持久性存儲元件中,以便在執(zhí)行機器204重啟后用戶增量數(shù)據(jù)可被使用。在一個具體實施例中,用戶增量數(shù)據(jù)被存儲在與虛擬機相關(guān)聯(lián)的第二硬盤驅(qū)動器中,其可被映射到網(wǎng)絡(luò)位置。在又一個實施例中,用戶增量數(shù)據(jù)被存儲在虛擬硬盤文件中,所述虛擬硬盤文件駐留于被掛載到虛擬機或物理機上表現(xiàn)為象硬盤樣的服務(wù)器信息塊(SMB)共享上。在又一個實施例中,用戶增量數(shù)據(jù)被存儲在執(zhí)行機器204的SMB共享中。在一些實施例中,執(zhí)行機器204被配置為:所有注冊表操作請求重定向的目的地是用戶增量盤208。通過重定向所捕獲的注冊表操作請求到用戶增量盤208,用戶注冊表數(shù)據(jù)成為可被留存的。[0081]參考圖3B,框圖說明了用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的系統(tǒng)的一個實施例。該系統(tǒng)包括注冊表過濾驅(qū)動器306、文件系統(tǒng)過濾驅(qū)動器308、記錄存儲310和文件系統(tǒng)312。[0082]注冊表過濾驅(qū)動器306是與圖3A有關(guān)的上文所描述的注冊表過濾驅(qū)動器。當機器啟動時,執(zhí)行一個服務(wù),該服務(wù)監(jiān)控用戶登錄事件。在一個實施例中,該服務(wù)作為WINDOWS服務(wù)提供。在又一個實施例中,執(zhí)行機器204初始化由基盤206所提供的虛擬機。在又一個實施例中,執(zhí)行機器204執(zhí)行由基盤206所提供的操作系統(tǒng)。[0083]在用戶登錄事件(包括,例如,用戶初始化執(zhí)行進程)之后,執(zhí)行機器204產(chǎn)生組合的計算環(huán)境。在一個具體實施例中,用戶執(zhí)行“ctxhvminit”進程。在又一個實施例中,用戶執(zhí)行代替“userinit.exe”進程的進程,該進程確保用戶的個性化環(huán)境被還原。根據(jù)本發(fā)明,用戶個性化環(huán)境在其他登錄事件完成之前被還原。此外,還原用戶的個性化環(huán)境引起殼功能(諸如開始菜單、快捷方式和由殼提供的其他功能)和在用戶登錄時所執(zhí)行的其他定制的啟動代碼的執(zhí)行。[0084]在一個實施例中,該服務(wù)啟動一進程以產(chǎn)生隔離環(huán)境302,其他資源將在隔離環(huán)境302中執(zhí)行。而且,該服務(wù)執(zhí)行注冊表過濾驅(qū)動器306,提示注冊表過濾驅(qū)動器306開始記錄注冊表操作。在一個具體實施例中,注冊表過濾驅(qū)動器修改執(zhí)行機器204上的注冊表以包含用戶增量盤208中的數(shù)據(jù)所識別的定制。在又一個實施例中,注冊表過濾驅(qū)動器306訪問用戶增量盤208內(nèi)的記錄存儲310。[0085]在第二實施例中,該服務(wù)執(zhí)行文件系統(tǒng)過濾驅(qū)動器308。文件系統(tǒng)過濾驅(qū)動器308訪問隔離環(huán)境的定義以便為文件系統(tǒng)API調(diào)用攔截(APIcallinterception)在執(zhí)行機器204上配置文件系統(tǒng)。在一個具體實施例中,執(zhí)行機器204被配置為:所有文件系統(tǒng)的請求重定向的目的地是用戶增量盤208。通過重定向文件請求和所攔截的文件系統(tǒng)API調(diào)用到用戶增量盤208,用戶的數(shù)據(jù)成為可被留存的。[0086]文件系統(tǒng)312是基盤206和用戶增量盤208的組合。文件系統(tǒng)312也可以是基盤206和用戶增量盤208二者的合并版本,其在操作系統(tǒng)的較低層被視為兩個分開的驅(qū)動器,物理的或虛擬的。文件系統(tǒng)過濾驅(qū)動器利用了基盤和用戶增量盤。在一個具體實施例中,用戶增量盤208中的數(shù)據(jù)被合并到基盤206的數(shù)據(jù)中以便提供組合的計算環(huán)境。如果文件在基盤206和用戶增量盤208上都存在,則提供較新的文件。在一個實施例中,注冊表過濾驅(qū)動器306合并基盤206和用戶增量盤208。在其他實施例中,文件系統(tǒng)過濾驅(qū)動器308合并基盤206和用戶增量盤208。[0087]該服務(wù)訪問注冊表并執(zhí)行與用戶相關(guān)聯(lián)的個性化服務(wù)。與所述個性化服務(wù)相關(guān)聯(lián)的數(shù)據(jù)取自注冊表并被提供給服務(wù)控制管理器組件(未示出),以確保合適的依賴關(guān)系生效以及服務(wù)被正確地注冊;服務(wù)器控制管理器組件由執(zhí)行機器102(圖1A)上的操作系統(tǒng)提供。服務(wù)控制管理器組件也包括處理不是標準形式(例如,不包括諸如標準用戶名的證書,例如LocalSystem和LocalService)的服務(wù)證書的功能。服務(wù)控制管理器組件啟動在指定證書下啟動的服務(wù),該服務(wù)要求密碼。在一個實施例中,托盤應(yīng)用被調(diào)用并給用戶提供通知,告知其環(huán)境已經(jīng)被還原。[0088]在一個實施例中,對文件系統(tǒng)生命周期和列舉API(類似打開、關(guān)閉、刪除、目錄等)的調(diào)用是由用戶模式進程或其他內(nèi)核組件所發(fā)出的,并且這些調(diào)用的至少一個被文件系統(tǒng)過濾驅(qū)動器所攔截。在這些實施例的一個中,如果不能在基盤206上找到文件,或者文件將被修改,那么系統(tǒng)中的每個進程的文件打開或關(guān)閉操作將被攔截和重定向。當基盤206上的文件被修改,該文件被復(fù)制到用戶增量盤208,接著被打開并返回到調(diào)用進程。復(fù)制經(jīng)修改的文件到用戶增量盤208確保了在機器的使用期間的所作的變化在用戶增量盤上被留存。對基盤206做暫時性的修改?;蛘撸鰰簳r的修改不被存留并且基盤不受用戶對磁盤的改變的影響。[0089]對注冊表API的調(diào)用是由用戶模式進程或內(nèi)核組件所發(fā)出的。在一個實施例中,至少一個調(diào)用被注冊表過濾驅(qū)動器306攔截。在這些實施例的一個中,當注冊表鍵或值被改變時,該操作被記錄到該注冊表的另一部分。不同于對文件系統(tǒng)調(diào)用的處理,調(diào)用進程所使用的實際的鍵不被重定向。所攔截的注冊表調(diào)用被存儲在該注冊表的另一部分,其可被看作是注冊表數(shù)據(jù)差異的根,并且所存儲的注冊表增量被周期性地作為文件寫出到用戶增量盤208。當機器啟動和用戶增量數(shù)據(jù)與基盤206數(shù)據(jù)合并時,注冊表過濾驅(qū)動器306從用戶增量盤208讀出所存儲的注冊表增量,并將注冊表增量文件中所包含的數(shù)據(jù)填充到正在運行的VM的注冊表中。在這些實施例的又一個中,調(diào)用進程所使用的鍵被重定向。[0090]結(jié)合圖2-3參考圖4,圖示了用于在組合的計算環(huán)境中給可修改的虛擬機基本映像提供個性化的桌面環(huán)境的方法。通常,在第一會話中用戶訪問機器所提供的至少一個資源304。根據(jù)本發(fā)明,該方法包括:攔截來自至少一個資源304的請求來修改執(zhí)行機器204上的設(shè)置,其中,所述至少一個資源在隔離環(huán)境302內(nèi)部執(zhí)行(402);(404)復(fù)制經(jīng)修改的設(shè)置到用戶增量盤208,所述修改是對執(zhí)行機器204的文件系統(tǒng)和注冊表的至少一個所作的修改;存儲包含經(jīng)修改的設(shè)置的用戶增量盤映像(406);以及訪問所述經(jīng)修改的設(shè)置的副本來定制用戶和機器之間的第二會話的計算環(huán)境(408)。所存儲的修改被用于定制用戶和虛擬機之間后續(xù)會話中的計算環(huán)境。[0091]在一個實施例中,文件系統(tǒng)過濾驅(qū)動器308攔截訪問文件或者修改文件的請求。在又一個實施例中,注冊表過濾驅(qū)動器306捕獲對設(shè)置的修改并將該修改存儲到用戶增量盤映像208。在又一個實施例中,文件系統(tǒng)過濾驅(qū)動器308和注冊表過濾驅(qū)動器306的至少一個使用自用戶增量盤208檢索的數(shù)據(jù)來響應(yīng)請求。注冊表過濾驅(qū)動器306可從經(jīng)合并的注冊表檢索數(shù)據(jù)。文件系統(tǒng)過濾驅(qū)動器308將從基盤208或者用戶增量盤208中具有最新文件的那個盤中檢索文件數(shù)據(jù)。在一個具體實施例中,過濾驅(qū)動器306和308所訪問的基盤206和增量盤208的至少一個被寄載在網(wǎng)絡(luò)104(圖1A)中的NAS或SAN上。[0092]所攔截的請求可以被重定向到第二機器106b,其中,第二機器106b上的代理接收該請求,并響應(yīng)于該請求傳輸數(shù)據(jù)到執(zhí)行機器204?;蛘?,文件系統(tǒng)過濾驅(qū)動308和注冊表過濾驅(qū)動器306的至少一個使用從基盤206檢索的數(shù)據(jù)來響應(yīng)請求。在一些實施例中,請求是只讀請求。[0093]本發(fā)明所描述的方法和系統(tǒng)實現(xiàn)了注冊表過濾驅(qū)動器,而不是鉤子組件,來攔截注冊表變化。也設(shè)想了用于提供在其中機器上所有用戶資源在隔離環(huán)境內(nèi)執(zhí)行的環(huán)境的方法和系統(tǒng)。在一個具體實施例中,此處的方法和系統(tǒng)實現(xiàn)了一種環(huán)境,其中所有資源(包括服務(wù)、驅(qū)動程序、數(shù)據(jù)和其他非應(yīng)用編程組件)在單個隔離環(huán)境中執(zhí)行,而不使應(yīng)用之間互相分離。用戶對基盤206所提供的數(shù)據(jù)和在隔離環(huán)境302內(nèi)的資源304所訪問的數(shù)據(jù)的任何變化被保存到用戶增量盤208。根據(jù)本發(fā)明,在隔離環(huán)境302內(nèi)執(zhí)行所有進程以及將自用戶增量盤檢索的數(shù)據(jù)與只讀基本數(shù)據(jù)合并(而不是在分開的隔離環(huán)境中隔離應(yīng)用)的方法稱為整機虛擬化。[0094]在又一個實施例中,用于在組合的計算環(huán)境中給可修改的機器基本映像提供個性化桌面環(huán)境的方法包括執(zhí)行由基盤所提供的操作系統(tǒng);用位于增量盤208上的第一設(shè)置的經(jīng)修改的副本來替換與所述操作系統(tǒng)相關(guān)聯(lián)的文件系統(tǒng)和注冊表的至少一個中所存儲的第一設(shè)置;由注冊表過濾驅(qū)動器306攔截來自多個資源304中的資源的指令來修改在文件系統(tǒng)和注冊表的至少一個中所存儲的第二設(shè)置,所述多個資源304在隔離環(huán)境320內(nèi)部執(zhí)行;在增量盤208中存儲經(jīng)修改的第二設(shè)置的副本。在一個實施例中,該方法包括向與用戶增量盤208相關(guān)聯(lián)的用戶提供對經(jīng)修改的操作系統(tǒng)的訪問。在一個具體實施例中,該方法包括由文件系統(tǒng)過濾驅(qū)動器308攔截來自多個資源的資源的指令,來修改文件系統(tǒng)和注冊表的至少一個中所存儲的第二設(shè)置,所述多個資源在隔離環(huán)境320內(nèi)部執(zhí)行,以及包括在增量盤208存儲經(jīng)修改的第二設(shè)置的副本。[0095]該方法還包括重啟操作系統(tǒng),例如,執(zhí)行機器204、執(zhí)行操作系統(tǒng)的虛擬機或至少一個后臺進程。[0096]該方法還包括用所存儲的經(jīng)修改的第二設(shè)置的副本來替換第二設(shè)置。在一個具體實施例中,諸如文件系統(tǒng)過濾驅(qū)動器308或注冊表過濾驅(qū)動器306的過濾驅(qū)動器修改文件系統(tǒng)和注冊表的至少一個以包含經(jīng)修改的第二設(shè)置。[0097]該方法還包括重啟包含經(jīng)修改的第二設(shè)置的至少一個后臺進程。所述至少一個后臺進程可以是服務(wù)、守護進程或設(shè)備驅(qū)動程序。該后臺進程在執(zhí)行期間訪問經(jīng)修改的第二設(shè)置。另外,該后臺進程在與操作系統(tǒng)重啟的時間基本相同的時間開始執(zhí)行?;蛘?,該后臺進程在將經(jīng)修改的設(shè)置并入文件系統(tǒng)或注冊表之前開始執(zhí)行。重啟后臺進程允許后臺進程訪問更新的經(jīng)修改的設(shè)置,而不是操作系統(tǒng)重啟時系統(tǒng)上的設(shè)置的版本。[0098]此處所描述的方法和系統(tǒng)提供下面的功能:克服系統(tǒng)不允許用戶修改他或她的計算環(huán)境的限制,同時保留了只需維護少量的映像的管理的好處。從而,此處所描述的方法和系統(tǒng)提供了從用戶環(huán)境中分離由管理員所管理的基盤的功能。因為基盤和用戶增量盤的分離,管理員有可能根據(jù)需要更新基本映像而不必修改增量盤。[0099]結(jié)合圖1-4參考圖5,描述了系統(tǒng)和方法200,300的一個具體實施例且被稱為系統(tǒng)500。系統(tǒng)500包括具有桌面設(shè)備502,該桌面設(shè)備502包括用戶接口504、用戶交互組件506和操作系統(tǒng)508。桌面設(shè)備502用于連接到“虛擬化”桌面或者被遠程地提供的計算環(huán)境,諸如,例如桌面主機或服務(wù)器510。[0100]桌面主機510可以是遠程機器或者服務(wù)器106,正如與圖1A-1C相關(guān)的上文所描述的。在又一個實施例中,桌面主機510是位于公司網(wǎng)的物理PC、數(shù)據(jù)中心的物理服務(wù)器(例如,刀片PC)或數(shù)據(jù)中心的虛擬機。[0101]在一個實施例中,桌面設(shè)備502是如與圖1A-1B相關(guān)的上文所描述的客戶機102。在又一個實施例中,桌面設(shè)備502是用戶可與其交互的具有本地計算能力的任何設(shè)備。在又一個實施例中,桌面設(shè)備502是專用于通過表示層協(xié)議提供對遠程機器所提供的資源的訪問的設(shè)備,這種方式使用戶察覺不到他們正在使用的機器實際上是遠程的。在又一個實施例中,桌面設(shè)備502是多功能的瘦客戶端設(shè)備,該設(shè)備能提供對遠程機器所提供的各種服務(wù)和資源的訪問,諸如,例如,表示服務(wù)器,終端服務(wù)和web應(yīng)用。在又一個實施例中,桌面設(shè)備502執(zhí)行操作系統(tǒng),該操作系統(tǒng)提供安全警告序列(SecureAttentionSequence)(通常為,控制鍵、換檔鍵和刪除鍵的組合,Ctrl+Alt+Del)可靠的本地攔截。[0102]在一個具體實施例中,桌面設(shè)備502是位于PA.KingofPrussia的DevonIT公司制造的SAFEB00K。在又一個實施例中,桌面設(shè)備是由位于USA.TX.1SraelandIrving,TiratCarmel的ChipPC技術(shù)公司制造的ChipPCPlugPC。在又一個實施例中,桌面設(shè)備502是位于CA.PaloAlto的Hewlett-Packard公司制造的HPCompaq2533t或6720移動瘦客戶機(MobileThinClient),或HPCompaqt5133或t5730,或HPCompaqt5530或t5735瘦客戶機。在又一個實施例中,桌面設(shè)備505是由位于FL.FortLauderdale的IGEL技術(shù)公司制造的IGELCompact系列設(shè)備。在一些實施例中,桌面設(shè)備502是客戶機102,在該客戶機102中,用戶具有有限權(quán)限或沒有權(quán)限訪問本地操作系統(tǒng)所提供的功能。[0103]在一些實施例中,桌面設(shè)備502執(zhí)行多個軟件組件,所述軟件組件是桌面設(shè)備操作系統(tǒng)的一部分或者被注冊在在桌面設(shè)備操作系統(tǒng)中。在這些實施例的一個中,軟件組件能夠與代理服務(wù)和遠程桌面主機通信。在這些實施例的又一個中,軟件組件能夠以本地產(chǎn)生用戶接口屏幕和保護用戶輸入焦點的方式來支持與用戶的直接的無干擾的交互。在一些實施例中,所使用的多個軟件組件依賴于由桌面設(shè)備502所執(zhí)行的操作系統(tǒng)。[0104]在一個實施例中,用戶交互組件506控制對用戶所顯示的信息并接收來自用戶的輸入。在又一個實施例中,用戶交互組件506是在桌面設(shè)備502上執(zhí)行的操作系統(tǒng)508的一部分。在又一個實施例中,用戶交互組件506是表示層協(xié)議客戶機代理的一部分,或者與表示層協(xié)議客戶機代理通信。[0105]繼續(xù)參考圖5,桌面設(shè)備502存儲與連接到其上的顯示設(shè)備(例如,顯示器)相關(guān)的本地配置。通常,用戶負責改變桌面設(shè)備502的配置以便匹配所連接的顯示器。類似地,遠程桌面或桌面主機510也包括其試圖驅(qū)動的多個顯示器相關(guān)的配置,包括每個顯示器的各種屬性諸如,例如,顏色、深度和性能。本發(fā)明的一個目的是提供協(xié)調(diào)這兩種配置的系統(tǒng)和方法。[0106]根據(jù)本發(fā)明,使用遠程桌面510所提供的標準工具(例如,WINDOWS中的顯示屬性),用戶將被允許對遠程桌面510做出改變。當做出改變時,這些改變被應(yīng)用到遠程桌面510并且也反映在桌面設(shè)備502中。接著,桌面設(shè)備502改變其本地顯示器設(shè)置來進行匹配,以及,可選地,存儲這些設(shè)置以便當其下次連接到遠程桌面510時,將保留這些設(shè)置。相應(yīng)地,桌面設(shè)備502的顯示器設(shè)置是可配置的,從而使用戶不必管理兩套配置,也不需理解桌面設(shè)備502的配置工具。[0107]在一個具體實施例中,當桌面設(shè)備502不能/不愿存儲配置時,遠程桌面510在初始化連接期間,將發(fā)送用于桌面設(shè)備502的唯一標識符以及指示顯示設(shè)置何時被最后一次本地設(shè)置的時間戳。接著,遠程桌面510維護數(shù)據(jù)庫,所述數(shù)據(jù)庫將桌面設(shè)備502的標識映射到顯示器設(shè)置等。如果顯示器設(shè)置被改變,其將被反映到桌面設(shè)備502并被存儲在數(shù)據(jù)庫中。當隨后的連接發(fā)生時,如果數(shù)據(jù)庫存儲了用于連接桌面設(shè)備502的更及時的信息,那么桌面設(shè)備502被配置來匹配同一設(shè)置。[0108]在又一個實施例中,遠程桌面510可被用于對配置做出其他改變以便反映回到桌面設(shè)備502。例如,在一個具體實施例中,如果新設(shè)備被接附到桌面設(shè)備502,可能需要配置桌面設(shè)備502以便識別和配置該新設(shè)備。在又一個實施例中,對諸如,例如,鍵盤的輸入設(shè)備的改變也可以在遠程桌面510中作出并被反映回到桌面設(shè)備502中。例如,如果鍵盤被改變,或用戶希望當前的鍵盤提供不同的動作。在又一個例子中,在遠程桌面510和桌面設(shè)備502上的屏幕保護程序可被配置為一致地工作,例如被配置為用于空白顯示和/或顯示動畫。而且桌面設(shè)備502的屏幕保護程序可被用于初始化顯示設(shè)備上的節(jié)能模式。[0109]在操作中,桌面設(shè)備502顯示由資源512所產(chǎn)生的用戶接口。資源512在遠程桌面510中執(zhí)行,且可從各種配置中選擇,諸如,例如用于配置顯示設(shè)備的顯示管理、鍵盤配置、驅(qū)動程序同步和屏幕保護程序,其中可在遠程桌面510的上下文中對桌面設(shè)備502的作出改變。在桌面設(shè)備502中執(zhí)行的用戶交互組件506接收所攔截的用戶通過用戶接口504來修改桌面設(shè)備502的屬性的請求。用戶交互組件506將重定向所攔截的請求到桌面設(shè)備502的操作系統(tǒng)508。然后,操作系統(tǒng)508將所攔截的修改應(yīng)用到桌面設(shè)備502的屬性。[0110]在一個實施例中,用戶交互組件506用于在操作系統(tǒng)508中存儲所攔截的修改的標識。在又一個實施例中,遠程桌面510存儲所攔截的修改的標識。而且,遠程桌面510也可將修改請求應(yīng)用到桌面510的屬性。[0111]在又一個實施例中,系統(tǒng)500可包括用于建立到遠程桌面510的會話的請求的第二桌面設(shè)備。在這個實施例中,第二桌面設(shè)備將終止對先前資源512的訪問。[0112]因此,本發(fā)明允許用戶在不了解桌面設(shè)備的本地配置接口的情況下配置該桌面設(shè)備502。另外,允許本地和遠程特性的最佳組合的自動優(yōu)化,從而確保它們工作一致,例如確保顯示分辨率的同步,或者使用本地/遠程驅(qū)動程序的最優(yōu)選擇。而且,本發(fā)明允許桌面設(shè)備502的配置和即插即用的能力以便有效地更新遠程桌面510的設(shè)置。[0113]結(jié)合圖5參考圖6,圖示了用于通過遠程桌面510所產(chǎn)生的用戶接口504來控制與桌面設(shè)備502的屬性相關(guān)聯(lián)的配置數(shù)據(jù)的示例方法的流程圖。首先,在步驟602,桌面設(shè)備502顯示在遠程桌面510上執(zhí)行的資源512所產(chǎn)生的用戶接口。在步驟604,桌面設(shè)備502傳輸用戶與所顯示的用戶接口504交互的數(shù)據(jù)表示到遠程桌面510。在步驟606,桌面設(shè)備502傳輸用戶與所顯示的用戶接口交互的數(shù)據(jù)表示到遠程桌面510。在步驟608,用戶交互組件506接收用戶修改桌面設(shè)備502的屬性的請求,其中,該請求在所傳輸?shù)臄?shù)據(jù)中被識別。在步驟610,用戶交互組件506將所攔截的對桌面設(shè)備502的屬性的修改重定向到操作系統(tǒng)508。最后,在步驟612,操作系統(tǒng)508將所攔截的修改應(yīng)用到桌面設(shè)備502的屬性。[0114]在一個實施例中,桌面設(shè)備終止由資源512所產(chǎn)生的用戶接口504的顯示。然后,桌面設(shè)備502接收來自用戶的建立對資源512的訪問的請求。接著,用戶交互組件506從遠程桌面510檢索所存儲的對桌面設(shè)備502的屬性的修改的標識。最后,用戶交互組件506將所識別的修改應(yīng)用到桌面設(shè)備502的屬性。[0115]在又一個實施例中,桌面設(shè)備502終止對資源512的訪問。然后,第二桌面設(shè)備接收來自用戶的建立到遠程桌面510的會話的請求。接著,用戶交互組件506從遠程機器510來確定是否應(yīng)用所存儲的對桌面設(shè)備502的屬性修改的標識。最后,用戶交互組件506將第二經(jīng)識別的修改應(yīng)用到桌面設(shè)備的屬性。[0116]在又一個實施例中,在遠程桌面510執(zhí)行的代理從用戶交互組件506接收與桌面設(shè)備502的屬性相關(guān)聯(lián)的操作系統(tǒng)信息。然后,該代理攔截在遠程桌面510執(zhí)行的資源512對與遠程桌面510相關(guān)聯(lián)的操作系統(tǒng)信息的請求。最后,該代理響應(yīng)于所攔截的請求,向資源512提供所接收的操作系統(tǒng)信息。該代理還可攔截用戶通過用戶接口504修改桌面設(shè)備502的屬性的請求。[0117]或者,該代理可攔截用戶通過用戶接口504修改連接到桌面設(shè)備502的鍵盤的屬性的請求。另外,該代理可攔截用戶通過用戶接口504修改桌面設(shè)備所顯示的屏幕保護程序的屬性的請求。此外,該代理可攔截用戶通過用戶接口504修改連接到桌面設(shè)備502的輸出設(shè)備的屬性的請求。最后,該代理可攔截用戶通過用戶接口504修改連接到桌面設(shè)備502的顯示設(shè)備的屬性的請求。[0118]上文所描述的系統(tǒng)和方法可作為一件或多件產(chǎn)品上所體現(xiàn)的或其中的一個或多個計算機可讀程序而被提供。所述產(chǎn)品可以是軟盤、硬盤、CD-ROM,閃存卡、PROM、RAM、ROM或磁帶。通常,計算機可讀程序可以任何編程語言來實現(xiàn),如LISP、PERL、C、C++、C#、PROLOG,或者諸如JAVA的任何字節(jié)碼語言。軟件程序可以作為目標代碼被存儲在一件或多件產(chǎn)品上或其中。[0119]應(yīng)該理解,此處描述的系統(tǒng)可提供多個組件或每個組件并且這些組件可以在單獨機器上提供,或者在一些實施例中,可在分布式系統(tǒng)的多個機器上提供。此外,上述系統(tǒng)和方法可作為一件或多件產(chǎn)品上所體現(xiàn)的或在其中的一個或多個計算機可讀程序而被提供。[0120]已經(jīng)描述了用于在組合的計算環(huán)境中給可修改的機器基盤提供個性化桌面環(huán)境的方法和系統(tǒng)的某些實施例,使用包含本發(fā)明的概念的其他實施例對本領(lǐng)域技術(shù)人員而言將是顯而易見的?!緳?quán)利要求】1.一種使用個性化桌面環(huán)境修改機器基本映像的方法,所述方法包括:在基盤執(zhí)行操作系統(tǒng);由注冊表過濾驅(qū)動器攔截來自多個資源中至少一個資源的指令來修改在文件系統(tǒng)和注冊表的至少一個中所存儲的設(shè)置,所述多個資源在隔離環(huán)境內(nèi)部執(zhí)行;在增量盤存儲經(jīng)修改的設(shè)置的副本;重啟操作系統(tǒng);使用所述增量盤所存儲的經(jīng)修改的設(shè)置的副本來替換在文件系統(tǒng)和注冊表的至少一個中所存儲的至少一個設(shè)置;以及重啟包含所述經(jīng)修改的設(shè)置的操作系統(tǒng)進程以創(chuàng)建統(tǒng)一的環(huán)境。2.權(quán)利要求1的方法,還包括重啟與機器基本映像相關(guān)聯(lián)的至少一個操作系統(tǒng),以及還原所述統(tǒng)一的環(huán)境。3.權(quán)利要求1的方法,還包括將所述經(jīng)修改的設(shè)置的所存儲的副本與用戶數(shù)據(jù)合并以便創(chuàng)建個性化桌面環(huán)境。4.權(quán)利要求1的方法,還包括由過濾驅(qū)動器記錄在所述文件系統(tǒng)和所述注冊表的至少一個中所存儲的設(shè)置的每次修改,并且所述過濾驅(qū)動器周期性地向增量盤報告每次修改。5.權(quán)利要求1的方法,其中在所述文件系統(tǒng)和所述注冊表的至少一個中所存儲的設(shè)置的修改被保留在所述增量盤中。6.權(quán)利要求1的方法,其中在所述設(shè)置與只讀請求相關(guān)聯(lián)時,在所述文件系統(tǒng)和所述注冊表的至少一個中所存儲的設(shè)置的修改被放棄。7.權(quán)利要求1的方法,其中所述增量盤包括對所述基盤的內(nèi)容的任何修改。8.權(quán)利要求1的方法,其中所述過濾驅(qū)動器包括注冊表過濾驅(qū)動器,所述注冊表過濾驅(qū)動器用于記錄發(fā)生的任何注冊表操作。9.權(quán)利要求1的方法,其中所述過濾驅(qū)動器包括可執(zhí)行文件系統(tǒng)過濾驅(qū)動器,所述文件系統(tǒng)過濾驅(qū)動器用于將經(jīng)修改的設(shè)置發(fā)送到所述基盤和所述增量盤的至少一個。10.權(quán)利要求1的方法,其中所述過濾驅(qū)動器包括記錄對注冊表的任何修改的注冊表過濾驅(qū)動器。11.一種在組合的計算環(huán)境中的具有個性化桌面環(huán)境的可修改的機器基本映像,包括:具有多個作業(yè)文件的基盤,所述基盤由服務(wù)器部署;具有由用戶指定的多個應(yīng)用的至少一個用戶增量盤,所述用戶增量盤在隔離的環(huán)境中操作,所述多個應(yīng)用對應(yīng)于對與所述基盤相關(guān)聯(lián)的文件和注冊表的至少一個所做的改變;以及過濾驅(qū)動器,用于合并基盤和至少一個用戶增量盤到一個統(tǒng)一的盤,所述統(tǒng)一的盤具有多個作業(yè)文件和多個應(yīng)用,其中所述過濾驅(qū)動器在所述至少一個用戶增量盤中記錄和保留多個作業(yè)文件和多個應(yīng)用。12.權(quán)利要求11的機器基本映像,還包括用于記錄由用戶對注冊表所作的修改的注冊表過濾驅(qū)動器,所述注冊表過濾驅(qū)動器保留所述修改到所述用戶增量盤。13.權(quán)利要求12的機器基本映像,還包括用于隔離和記錄對注冊表所作的修改的文件系統(tǒng)驅(qū)動器。14.權(quán)利要求13的機器基本映像,還包括被連接到文件系統(tǒng)過濾驅(qū)動器的文件系統(tǒng)隔離驅(qū)動器,所述文件系統(tǒng)隔離驅(qū)動器用于記錄對多個應(yīng)用所作的修改?!疚臋n編號】G06F9/445GK103810012SQ201410076009【公開日】2014年5月21日申請日期:2009年10月23日優(yōu)先權(quán)日:2008年10月24日【發(fā)明者】A·印尼斯,R·哈頓,A·鮑茲克,A·E·勞,M·沃克申請人:思杰系統(tǒng)有限公司