專利名稱:池組件配置的管理的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)的披露涉及多個(gè)計(jì)算裝置構(gòu)成的池(pool),尤其涉及管理與使用這種池內(nèi)的池組件的個(gè)人用戶相關(guān)聯(lián)的持久性。
背景技術(shù):
大型機(jī)構(gòu)(organization)通常包括多個(gè)臺(tái)式電腦的池,每個(gè)臺(tái)式電腦在這里均被稱為“池組件(pool member)”。員工一進(jìn)入工作就登入這些池組件中的一個(gè)。然而,不能保證特定員工總是登入同一個(gè)池組件。機(jī)構(gòu)的信息技術(shù)(IT)設(shè)施(infrastructure)可支持各種級(jí)別的計(jì)算裝置。在企業(yè)層面,機(jī)構(gòu)的IT設(shè)施可支持具有專用功能的服務(wù)器計(jì)算裝置,例如網(wǎng)絡(luò)服務(wù)器、打印服務(wù)器以及數(shù)據(jù)庫(kù)服務(wù)器。在終端用戶層面,機(jī)構(gòu)的IT設(shè)施可支持實(shí)體用戶計(jì)算裝置(例如臺(tái)式電腦、手提電腦、上網(wǎng)本、平板電腦和手提電腦)以及虛擬用戶計(jì)算裝置(如在共享服務(wù)器計(jì)算裝置上執(zhí)行的虛擬機(jī))。在本說(shuō)明書中,術(shù)語(yǔ)“池組件”一般指的是可由機(jī)構(gòu)的IT設(shè)施內(nèi)的終端用戶(如機(jī)構(gòu)的員工)操作的任意用戶計(jì)算裝置(實(shí)體或虛擬)。在某些情況下,池組件是標(biāo)準(zhǔn)配置的實(shí)體計(jì)算裝置,其配備有一套已經(jīng)安裝并配置為以某些標(biāo)準(zhǔn)方式運(yùn)行的程序。在其它一些情況下,池組件指的是例如在用戶會(huì)話(session)之前或之后可隨意具體呈現(xiàn)和毀掉的虛擬計(jì)算裝置。在另一些情況下,池組件是從共享主圖像和特定用戶的個(gè)人數(shù)據(jù)文件所生成的實(shí)體或虛擬計(jì)算裝置。在其它再一些情況下,瘦客戶端(thin client)及其相應(yīng)虛擬機(jī)計(jì)算裝置的組合可共同稱作“池組件”。池組件經(jīng)常通過(guò)網(wǎng)絡(luò)彼此交互和/或通過(guò)網(wǎng)絡(luò)與一個(gè)或多個(gè)服務(wù)器計(jì)算裝置交互。每個(gè)池組件被認(rèn)為符合“基線圖像”,該“基線圖像”可以本地方式在實(shí)體用戶計(jì)算裝置中或在遠(yuǎn)程服務(wù)器處的虛擬用戶計(jì)算裝置中具體呈現(xiàn)。使用統(tǒng)一的“基線圖像”能夠相當(dāng)大地簡(jiǎn)化軟件維護(hù)和故障排除任務(wù)。每個(gè)池組件維持相同基線圖像的池被認(rèn)為是“同質(zhì)池,,(homogeneous pool)。不同的員工可能具有不同的工作職責(zé),其相應(yīng)需要接入不同的應(yīng)用程序和數(shù)據(jù)。 例如,客戶服務(wù)員工可能具有與客戶賬戶數(shù)據(jù)的接口,該數(shù)據(jù)將對(duì)技術(shù)支持員工不可用。反之,技術(shù)支持員工可能具有對(duì)他負(fù)責(zé)支持的軟件應(yīng)用程序的所有較早版本的接口,從而他可以更好的再創(chuàng)作調(diào)用者的經(jīng)驗(yàn)。因此,顯然不同的用戶將具有不同的軟件需求。然而,由于每個(gè)池組件執(zhí)行相同的基線圖像,從而保證不同用戶僅具有與他們需要的應(yīng)用程序的接口存在困難。
4
在使用特定池組件的過(guò)程中,第一用戶可對(duì)他們的環(huán)境做出某些變化。在某些情況下,保存這些變化,從而登入同一實(shí)體池組件的第二用戶將經(jīng)歷這些變化的效果。在這種情況下,將第一用戶所做出的變化判定為“持久性的”。在其它情況下,當(dāng)?shù)谝挥脩敉顺鰰r(shí)丟棄這些變化。將第一用戶所做出的這種變化判定為“非持久性的”。持久性的變化可導(dǎo)致由特定池組件所執(zhí)行的基線圖像的變化。當(dāng)此情況發(fā)生時(shí), 池中所有池組件的圖像將不再是統(tǒng)一的。結(jié)果是,池不再是“同質(zhì)”池。代替地,其變?yōu)椤爱愘|(zhì)”池。對(duì)于這些負(fù)責(zé)軟件維護(hù)和故障排除的基線圖像,異質(zhì)池更為棘手。在維護(hù)池的同質(zhì)的努力過(guò)程中,已知的方式是使任意用戶變化是非持久性的。在這種情況下,當(dāng)用戶退出時(shí)用戶做出的任意變化是白做的(undone)。這使得計(jì)算機(jī)的池保持同質(zhì),因此更容易維護(hù)。另一方面,可能有應(yīng)使得某些用戶的變化是持久性的情況。因此可期望使得某些用戶能夠變?yōu)槌志眯缘亩粫?huì)在軟件維護(hù)上施加不必要的困難,這些困難可能是臺(tái)式電腦具有非均質(zhì)池所引起的。由于現(xiàn)在電腦操作系統(tǒng)包括復(fù)雜的文件系統(tǒng)模式,從而經(jīng)常引起維護(hù)的困難。例如,微軟視窗(Microsoft Windows)的各種體現(xiàn)例如通過(guò)使用環(huán)境變量來(lái)使用包括與各種其它文件夾前后關(guān)聯(lián)的特定文件夾名稱的文件夾路徑。某些操作系統(tǒng)還使用配置數(shù)據(jù)庫(kù)。 例如,微軟視窗的大多數(shù)變量使用用于附加數(shù)據(jù)的注冊(cè),包括配置細(xì)節(jié)。應(yīng)用程序?qū)捎玫奈募到y(tǒng)模式做出不同的使用。當(dāng)在單個(gè)計(jì)算環(huán)境中安裝多個(gè)應(yīng)用程序時(shí),多個(gè)應(yīng)用程序之間的文件系統(tǒng)應(yīng)用可能會(huì)重疊。這導(dǎo)致沖突和意外覆寫。在應(yīng)用程序的簡(jiǎn)單安裝過(guò)程中,將單個(gè)可執(zhí)行文件放置在文件系統(tǒng)中。而不需要附加的準(zhǔn)備。在更復(fù)雜的安裝過(guò)程中,可能需要將附加文件放置在文件系統(tǒng)中,并且可能需要其它配置和準(zhǔn)備步驟。例如,當(dāng)執(zhí)行某些可執(zhí)行文件時(shí),將附加文件裝載到操作存儲(chǔ)器 (例如,動(dòng)態(tài)鏈接庫(kù),或“DLL”)中。這些庫(kù)中的某些庫(kù)可含在操作系統(tǒng)中并通常在安裝過(guò)程中共享。其它庫(kù)可以是為應(yīng)用程序所寫的標(biāo)準(zhǔn)庫(kù)并包括在可執(zhí)行文件中。使用大量靜態(tài)數(shù)據(jù)(如語(yǔ)言詞典或圖形的集合)的可執(zhí)行文件可使用與可執(zhí)行文件分離的附加數(shù)據(jù)文件。 某些可執(zhí)行文件可引用附加可執(zhí)行文件,例如用于處理后臺(tái)任務(wù)或提高嵌套支持。安裝過(guò)程還可生成新的文件。例如,處理可能生成包含標(biāo)準(zhǔn)化信息或文件庫(kù)地址的文件,用于伴隨任意操作標(biāo)志和配置元數(shù)據(jù)可適當(dāng)?shù)膱?zhí)行文件。這種處理的一實(shí)例是微軟視窗快捷方式。 這種安裝過(guò)程可能使得快捷方式文件放置在共享位置中,例如用于向菜單上的用戶顯示的快捷方式的目錄。具有多種還可包括在安裝過(guò)程中的附加類型的文件。復(fù)雜的應(yīng)用程序安裝可包括大量寫給各種不同位置的文件。某些位置可與其它安裝過(guò)程共享。這增加了文件可能被另一安裝過(guò)程覆寫的可能性。除了放置文件之外,安裝過(guò)程例如還可通過(guò)放置微軟視窗操作表中的信息來(lái)修改操作系統(tǒng)表與數(shù)據(jù)庫(kù)。在某些應(yīng)用程序中,例如使用微軟視窗安裝程序(“MSI”)對(duì)安裝和準(zhǔn)備處理加注了腳本,這取決于知道在何處放置文件并更新注冊(cè)的安裝包。MSI安裝數(shù)據(jù)還包括用于卸載包的信息;也通過(guò)操作系統(tǒng)來(lái)存儲(chǔ)此信息。微軟安裝程序存在不完善的做法。不是所有的應(yīng)用程序都使用該系統(tǒng)。一旦安裝了應(yīng)用程序,則如果例如用戶手動(dòng)移動(dòng)了文件,該應(yīng)用程序可從卸載信息中取消同步。
發(fā)明內(nèi)容
在一個(gè)方案中,本發(fā)明主要描述了一種用于從池向池組件的用戶提供虛擬桌面圖像的系統(tǒng)。這種系統(tǒng)包括服務(wù)器子系統(tǒng),與多個(gè)池組件進(jìn)行數(shù)據(jù)通信。所述服務(wù)器子系統(tǒng)被配置為從用戶接收由所述池登入第一池組件的請(qǐng)求;取來(lái)虛擬桌面圖像以供所述第一池組件使用;檢查與所述用戶相應(yīng)的用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。在另一方案中,本發(fā)明主要描述了一種計(jì)算機(jī)實(shí)施的方法,該方法綁定于特定計(jì)算機(jī)系統(tǒng),從而使得計(jì)算機(jī)系統(tǒng)向池組件的用戶提供虛擬桌面圖像。該計(jì)算機(jī)實(shí)施方法包括從用戶接收由所述池登入第一池組件的請(qǐng)求;取來(lái)虛擬桌面圖像以供所述第一池組件使用;檢查用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。在某些替代實(shí)踐中,該方法還包括從所述用戶接收登入第二池組件的請(qǐng)求。所述第二池組件與所述第一池組件不同。該方法還包括取來(lái)虛擬桌面圖像以供所述第一池組件使用;檢查所述用戶策略;將所述虛擬桌面修改為與所述用戶策略一致;以及向所述第二池組件提供所述虛擬桌面。其它替代實(shí)踐包括如下內(nèi)容其中修改所述虛擬桌面包括基于各種原因拒絕所述用戶接入應(yīng)用程序。示例性原因包括登入時(shí)間、所述用戶基于嘗試登入的位置、以及用戶身份。另一些替代實(shí)踐包括如下內(nèi)容其中修改所述虛擬桌面包括合并由所述用戶于在前的會(huì)話時(shí)做出的所選擇的變化。可在與用戶當(dāng)前使用的池組件相同的池組件處或在與用戶當(dāng)前使用的池組件不同的池組件處發(fā)生在前的會(huì)話。其它實(shí)踐包括實(shí)施持久性策略,在該持久性策略中某些用戶變化被視為持久性的并且某些其它用戶變化被視為非持久性的。另一些實(shí)踐包括如下內(nèi)容其中修改所述虛擬桌面圖像包括封裝所選擇的在所述圖像中可用的應(yīng)用程序。在本發(fā)明的實(shí)踐中,包括如下內(nèi)容在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)多個(gè)用戶檔案,每個(gè)用戶檔案包括表示由用戶對(duì)虛擬桌面圖像做出的配置變化的元數(shù)據(jù)。在另一方案中,本發(fā)明主要描述了一種制品,包括計(jì)算機(jī)實(shí)施介質(zhì),該計(jì)算機(jī)實(shí)施介質(zhì)具有其上編程的軟件,使得計(jì)算機(jī)系統(tǒng)向池組件的用戶提供虛擬桌面圖像,所述軟件包括用于如下功能的計(jì)算機(jī)可執(zhí)行指令從用戶接收由所述池登入第一池組件的請(qǐng)求;取來(lái)虛擬桌面圖像以供所述第一池組件使用;檢查用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。在某些替代實(shí)施例中,在制品上編程的軟件還包括用于如下功能的指令從所述用戶接收登入第二池組件的請(qǐng)求。所述第二池組件與所述第一池組件不同。該制品還包括取來(lái)所述虛擬桌面圖像以供所述第二池組件使用;檢查所述用戶策略;將所述虛擬桌面修改為與所述用戶策略一致;以及向所述第二池組件提供所述虛擬桌面。其它實(shí)施例包括如下內(nèi)容其中用于修改所述虛擬桌面的指令包括用于基于各種原因拒絕所述用戶接入應(yīng)用程序的指令。示例性原因包括登入時(shí)間、所述用戶基于嘗試登入的位置、以及用戶身份。
另一些實(shí)施例包括如下內(nèi)容其中用于修改所述虛擬桌面的指令包括用于合并由所述用戶于在前的會(huì)話時(shí)做出的所選擇的變化的指令。可在與用戶當(dāng)前使用的池組件相同的池組件處或在與用戶當(dāng)前使用的池組件不同的池組件處發(fā)生在前的會(huì)話。其它實(shí)施例包括如下內(nèi)容其中軟件包括用于實(shí)施持久性策略的指令,在該持久性策略中某些用戶變化被視為持久性的并且某些其它用戶變化被視為非持久性的。另一些實(shí)施例包括如下內(nèi)容其中用于修改所述虛擬桌面圖像的指令包括用于封裝所選擇的在所述圖像中可用的應(yīng)用程序的指令。在本發(fā)明的實(shí)施例中包括如下內(nèi)容其中在制品上編程的軟件包括用于在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)多個(gè)用戶檔案的指令,每個(gè)用戶檔案包括表示由用戶對(duì)虛擬桌面圖像做出的配置變化的元數(shù)據(jù)。從下文的描述中以及從權(quán)利要求中,本發(fā)明的其它特征和優(yōu)點(diǎn)是顯然地。
圖1是連接到服務(wù)器計(jì)算裝置的池組件的示意圖;圖2是示出用于用戶登入圖1的池組件的用戶指定策略的實(shí)施方式的示意圖;圖3是在來(lái)自圖1所示的池的池組件上執(zhí)行運(yùn)行時(shí)間軟件(run-timesoftware) 的方框圖;圖4是文件系統(tǒng)層級(jí)樹的線型圖;圖5是示出用于特定文件分配的囊(capsule)的示例圖的方框圖;圖6是一組文件系統(tǒng)層級(jí)樹的線型圖;圖7是示出截取文件或注冊(cè)請(qǐng)求之后的處理步驟的流程圖;以及圖8是連接到池組件的多個(gè)服務(wù)器的示意圖。
具體實(shí)施例方式用于管理用戶計(jì)算裝置的池中的一個(gè)或多個(gè)特定池組件的配置的一個(gè)計(jì)算機(jī)實(shí)施方法是基于用戶的身份來(lái)進(jìn)行管理。這種方法綁定于(tied to) 一個(gè)或多個(gè)特定池組件或一個(gè)特定服務(wù)器計(jì)算裝置,該方法包括控制什么應(yīng)用程序(application)可以被特定用戶看到或使用,以及控制由該用戶做出的什么變化將被認(rèn)為是持久性的(persistent)。能夠通過(guò)向每個(gè)用戶維持對(duì)池組件選擇性部署的應(yīng)用程序或成套軟件的各部件 (element)之間的聯(lián)系以及關(guān)于所選擇的、由用戶做出的變化的信息,來(lái)執(zhí)行這種配置控制。這種部件包括可執(zhí)行文件、DLL、配置文件、注冊(cè)項(xiàng)(registry entry)、用戶生成的文件、 以及應(yīng)用程序所使用的任意其它文件或系統(tǒng)狀態(tài)。作為一個(gè)整體進(jìn)行管理的應(yīng)用程序部件的集合在本說(shuō)明書中稱為“囊(capsule)”。集合應(yīng)用程序部件的處理在本說(shuō)明書中稱為 “應(yīng)用程序封裝(application encapsulation) ”或簡(jiǎn)稱為“封裝”,其生成的狀態(tài)稱為“封裝的應(yīng)用程序”。在某些情況下,多個(gè)應(yīng)用程序作為單個(gè)囊進(jìn)行管理。這種封裝的一個(gè)結(jié)果一方面是應(yīng)用程序、配置和用戶變化之間的分離,以及它們與底層操作系統(tǒng)之間的分離。這種分離使得當(dāng)特定用戶通過(guò)根據(jù)包括用戶身份的因素以基線圖像(baseline image)開始并遮蔽該基線圖像的選擇部分而開始在用戶會(huì)話中使用池組件時(shí),特定用戶的虛擬桌面能夠在特定池組件處“即時(shí)(on the fly)”重建。這使得用戶僅可接入所選擇的應(yīng)用程序和數(shù)據(jù)。這些準(zhǔn)許的應(yīng)用程序和數(shù)據(jù)被認(rèn)為是用戶配置的“持久性的”部分,而在重建的圖像中不可用的其它應(yīng)用程序和數(shù)據(jù)被認(rèn)為是“非持久性的”。哪些應(yīng)用程序、設(shè)置以及數(shù)據(jù)文件是持久性的而哪些是非持久性的的選擇存儲(chǔ)在該用戶的用戶策略(user policy)中。在用戶策略中所表現(xiàn)的持久性級(jí)別可跨越全部持久性、全部非持久性以及部分持久性之間的整個(gè)范圍,在全部持久性中在會(huì)話期間由用戶執(zhí)行的所有配置變化在該會(huì)話之后持續(xù),在全部非持久性中在特定會(huì)話期間由用戶執(zhí)行的任何變化都不會(huì)持續(xù)超出該會(huì)話,在部分持久性中維持選擇的應(yīng)用程序和數(shù)據(jù)而隱藏或放棄了其它應(yīng)用程序和數(shù)據(jù)。部分持久性策略可包括如下情況,在該情況下僅在所選擇的時(shí)間或僅從所選擇的位置,所選擇的應(yīng)用程序是可用的。圖1示出不同用戶使用的類似池組件711的池710。所有的池組件711通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)713與特定服務(wù)器機(jī)器712(在下文中將其稱為“服務(wù)器”)進(jìn)行通信。聯(lián)系圖3來(lái)討論與單個(gè)池組件711相關(guān)聯(lián)的軟件的邏輯結(jié)構(gòu)以及其配置的方式。綁定于服務(wù)器712的是這樣一種軟件,其包括計(jì)算機(jī)可執(zhí)行指令以使其與存儲(chǔ)基線圖像716和用戶檔案718i、7182、718n的外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714進(jìn)行通信。每個(gè)用戶檔案 718,包括關(guān)于與特定用戶U-i關(guān)聯(lián)的臺(tái)式電腦711的配置的信息。一般而言,服務(wù)器712 可管理多個(gè)池210,每個(gè)池具有其自己的基線圖像以及相應(yīng)池組件711。如在此處所使用的,如附圖中所使用的下標(biāo)“i”意圖指明確示出的多個(gè)結(jié)構(gòu)中的任意一個(gè)結(jié)構(gòu)。一般而言,每個(gè)池組件711相應(yīng)于登入該池組件的用戶Ul,U2,. . . Un來(lái)執(zhí)行圖像 11,12,... In0圖像可存儲(chǔ)并具體呈現(xiàn)(instantiate)在池組件711自身處,如相應(yīng)于用戶 Ul的圖像Il的情況。或者,在池組件711包括瘦客戶組件(或遠(yuǎn)程終端組件)的情況下, 圖像可存儲(chǔ)在外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中并在服務(wù)器712上具體呈現(xiàn),如圖像12和h的情況。在任一種情況下,圖像II、12、. . . In基于基線圖像716以及存儲(chǔ)在用于特定用戶 U-i的用戶檔案718,中的信息而“即時(shí)”構(gòu)成。用于特定用戶U-i的用戶檔案718i包括用于生成該用戶的虛擬桌面的信息。由服務(wù)器代理(server agent) 132 (其是基線圖像716的一部分)收集此信息。結(jié)果是,服務(wù)器代理132在池710中的每個(gè)池組件711上是標(biāo)準(zhǔn)的。一旦檢測(cè)到軟件包(例如由管理員預(yù)配置為包括所選擇應(yīng)用程序的包,或包括用戶指定應(yīng)用程序的包)的安裝開始,服務(wù)器代理132就識(shí)別被安裝的包。接著,其監(jiān)測(cè)系統(tǒng)的變化,并將任意這種變化記錄到基線圖像。這些變化包括新文件以及刪除的文件,對(duì)現(xiàn)存的應(yīng)用程序以及文件的變化,以及對(duì)用戶個(gè)人設(shè)置的變化。當(dāng)在基于MS-視窗(MS-Windows)的系統(tǒng)上安裝軟件包時(shí),服務(wù)器代理132監(jiān)測(cè)文件系統(tǒng)和注冊(cè)表兩者的任意變化。當(dāng)這樣做時(shí),其生成元數(shù)據(jù)以歸納對(duì)文件系統(tǒng)和注冊(cè)表兩者所做出的變化。為了執(zhí)行這些功能,服務(wù)器代理132典型包括注冊(cè)表驅(qū)動(dòng)器以及微篩選器文件系統(tǒng)驅(qū)動(dòng)器(mini-filterfile system driver)。一經(jīng)出現(xiàn)觸發(fā)事件,服務(wù)器代理132就將元數(shù)據(jù)發(fā)送回服務(wù)器712。這使得在外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中更新用戶檔案718i,所更新的是關(guān)于新安裝的應(yīng)用程序的信息,和/或關(guān)于安裝在基線圖像中的應(yīng)用程序的個(gè)人終端用戶設(shè)置、關(guān)于這種應(yīng)用程序的數(shù)據(jù)文件以及OS個(gè)人設(shè)置(例如打印機(jī)、收藏夾、桌面項(xiàng)、映射驅(qū)動(dòng)器等)的信息。此外,在外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中復(fù)制已經(jīng)認(rèn)為具有持久性的任意新文件或注冊(cè)信息。在某些情況下,新安裝的軟件還被發(fā)送到服務(wù)器712以包括在基線圖像716中。用于觸發(fā)元數(shù)據(jù)傳輸?shù)倪m當(dāng)觸發(fā)事件是會(huì)話的結(jié)束,其由用戶的退出(logoff) 進(jìn)行標(biāo)記。然而,其它觸發(fā)事件也是可以的。例如,在安裝完成時(shí)或在會(huì)話內(nèi)的規(guī)律間隔處, 一經(jīng)退出應(yīng)用程序、保存數(shù)據(jù)文件或變化應(yīng)用程序/視窗設(shè)置,則可發(fā)生元數(shù)據(jù)傳輸。此外,可由人工干預(yù)(例如通過(guò)池組件自身或通過(guò)系統(tǒng)管理員)來(lái)生成觸發(fā)事件。當(dāng)用戶U-i下一次登入池710內(nèi)的任意一個(gè)池組件711(其可與用戶之前登入的池組件相同或不同)時(shí),參考(consult)用戶檔案718”基于存儲(chǔ)在用戶檔案718i中的信息,執(zhí)行或具體呈現(xiàn)用戶的虛擬桌面Ii,并且合并了用戶先前對(duì)圖像的變化,至少到使用戶做出的任意變化根據(jù)該策略而被認(rèn)為是持久性的程度。參見圖2,在某些情況下,可期望控制用戶的圖像。例如,可能希望向某些用戶提供接入在基線圖像716上可用的某些(而不是所有)應(yīng)用程序。或者,可能希望容許使得某些(而不是所有)用戶執(zhí)行的變化成為持久性的?;陉P(guān)聯(lián)用戶身份的用戶策略80 ,做出對(duì)特定應(yīng)用程序的可接入性和變化的持久性兩者的這種控制。用戶策略80 存儲(chǔ)在外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中,用于由在服務(wù)器712上執(zhí)行的圖像管理器803實(shí)施。圖像管理器803能夠通過(guò)識(shí)別容許選擇的用戶或用戶群看到的這些應(yīng)用程序和數(shù)據(jù),哪些將被篩選,并識(shí)別容許什么變化為持久性的,來(lái)將用戶策略80 施加于用戶。反之,圖像管理器803能夠通過(guò)識(shí)別容許看到特定應(yīng)用程序和/或數(shù)據(jù)的這些用戶, 來(lái)將用戶策略80 施加于應(yīng)用程序和/或數(shù)據(jù)上。除了具有個(gè)人維度之外,用戶策略80 還能夠具有時(shí)間和/或空間維度。例如,用戶策略80 可限定某些應(yīng)用程序?qū)τ脩鬠-i不可用的時(shí)間。或者,用戶策略可限定個(gè)人OS 設(shè)置,以控制哪些資源(如打印機(jī)、映射驅(qū)動(dòng)器以及掃描儀)對(duì)特定用戶可用以及這些資源何時(shí)可用?;蛘?,用戶策略80 可限定某些應(yīng)用程序和/或資源對(duì)用戶U-i不可用的位置。 此外,用戶策略80 可具有網(wǎng)絡(luò)維度。這包括可用性取決于服務(wù)器712和池組件711之間的網(wǎng)絡(luò)連接的某些特性的情況。例如,如果網(wǎng)絡(luò)連接缺乏足夠的安全性,則用戶策略80 可拒絕接入一個(gè)、某些或所有選擇的資源和/或應(yīng)用程序。為了實(shí)施用戶策略80 ,如下文所述并聯(lián)系圖3等,可封裝所選擇的應(yīng)用程序和數(shù)據(jù),接著限定使得對(duì)特定用戶可用的這些囊。接著,根據(jù)用戶身份,圖像管理器803導(dǎo)致能夠使得適當(dāng)遮蔽的圖像Ii對(duì)該用戶可用,而不論該用戶曾登入的特定池組件711。用戶一經(jīng)登入特定池組件711,圖像管理器803識(shí)別用戶策略80 或與該用戶相關(guān)和/或與在該池組件中存在的應(yīng)用程序相關(guān)的策略。接著,圖像管理器803向特定池組件上執(zhí)行或綁定于特定池組件的服務(wù)器代理132提供這些用戶策略80^。接著,服務(wù)器代理132使此處描述的封裝系統(tǒng)通過(guò)生成適當(dāng)?shù)恼诒螆D像Ii來(lái)實(shí)施所識(shí)別的策略。與不變地(constantly)將軟件添加到基線圖像716,之后對(duì)選擇的用戶選擇性地隱藏所選擇的軟件相關(guān)的困難在于,基線圖像716會(huì)變大且難以使用(unwieldy)。這相應(yīng)地會(huì)在登入過(guò)程期間趨于增加等待時(shí)間(latency)。在克服這一困難的努力過(guò)程中,某些實(shí)施方式構(gòu)成“基于要求(on-demandbasis) ”的虛擬桌面的部分。在這種實(shí)施方式中,僅當(dāng)用戶實(shí)際需要軟件或數(shù)據(jù)時(shí),才在虛擬桌面圖像中包括該數(shù)據(jù)或軟件。實(shí)施這種方案的一個(gè)方式是提供用戶文件名與位于外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714處的實(shí)際文件之間的鏈接。結(jié)果是,期望接入文件的用戶可以以通常方式來(lái)執(zhí)行接入,而不需要知道該文件事實(shí)上是位于外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中。響應(yīng)于對(duì)文件的請(qǐng)求, 外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714能夠?qū)⑽募髯?stream)給用戶??商娲兀词乖诮邮盏矫鞔_的請(qǐng)求之前,外部數(shù)據(jù)存儲(chǔ)系統(tǒng)也能夠預(yù)期用戶對(duì)文件的需求并在后臺(tái)流注該文件。一旦用戶登入池710中的任意池組件711,不論該用戶的位置在哪里,囊管理器 130都自動(dòng)實(shí)施用于該用戶的用戶策略80&。圖3示出圖1中所示的池710中的示例性池組件100。在示例性池組件100中, 在硬件110上執(zhí)行的操作系統(tǒng)120管理用戶、軟件以及硬件之間的交互。在硬件上存駐 (hosted)的文件系統(tǒng)190提供硬件上的數(shù)據(jù)的排列,用于存儲(chǔ)與每個(gè)用戶賬戶相關(guān)聯(lián)的安裝應(yīng)用程序文件與用戶文件。典型的操作系統(tǒng)包括系統(tǒng)應(yīng)用程序122(例如管理設(shè)備、執(zhí)行工具以及簡(jiǎn)單的文本和圖像編輯器)、共享系統(tǒng)文件124(例如硬件驅(qū)動(dòng)器)、以及操作系統(tǒng)配置數(shù)據(jù)125(例如存儲(chǔ)在注冊(cè)表中的設(shè)置)。在示例性池組件100中,能夠在單個(gè)實(shí)體計(jì)算機(jī)中具體呈現(xiàn)各種組成軟件部件。 可替代地,例如在池組件100為瘦客戶端的情況下,可能存在用于具體呈現(xiàn)遠(yuǎn)程服務(wù)器(例如圖1中的服務(wù)器71 上的一個(gè)或多個(gè)組成軟件部件的虛擬桌面設(shè)施。因此,圖3意圖為用于與操作池組件100相關(guān)聯(lián)的軟件部件的構(gòu)成的邏輯表示,而不表示軟件部件的實(shí)例的
物理位置。示例性池組件100還包括生成并管理囊的囊管理器130。囊管理器130管理系統(tǒng)囊140、用于每個(gè)應(yīng)用程序或成套應(yīng)用程序的應(yīng)用程序囊(例如用于應(yīng)用程序X的囊150和用于應(yīng)用程序Y的囊160)、以及與用戶賬戶相關(guān)聯(lián)的用于每個(gè)用戶的個(gè)人設(shè)置囊(例如個(gè)人設(shè)置囊180)。此處描述的封裝方案使得用戶能夠登入任意池組件711并重新生成如同在他最后一次登入另一池組件711時(shí)所存在的他的環(huán)境的一些或全部,而不論該用戶的位置在哪里。有效地,在此處描述的封裝方案使得用戶的計(jì)算機(jī)能夠和他一起“在云端(on the cloud)”旅行。用戶的計(jì)算機(jī)隨用戶一起“在云端”旅行的程度(extent)取決于系統(tǒng)管理員所創(chuàng)建的策略。根據(jù)這些策略,將再生成用戶的個(gè)人環(huán)境的某些方面,而可省略其它方面。囊管理器130生成囊、管理應(yīng)用程序及其囊之間的關(guān)系、管理應(yīng)用程序之間的交互、以及提供通過(guò)使用封裝而使能的(enabled)附加特征。囊管理器130所執(zhí)行的動(dòng)作對(duì)于應(yīng)用程序而言一般是透明的(transparent)。即,每個(gè)應(yīng)用程序的存在是以文件系統(tǒng)為目的(with a view ofthe file system),如果存在的話,則注冊(cè)表與不具有囊管理器130而存在的的普通視圖相一致。不需要以適應(yīng)囊管理器130的使用的方式來(lái)修改或開發(fā)應(yīng)用程序。封裝應(yīng)用程序包括將涉及應(yīng)用程序的文件和設(shè)置關(guān)聯(lián)到相關(guān)聯(lián)的囊。封裝文件管理系統(tǒng)封裝了應(yīng)用程序并將應(yīng)用程序與底層操作系統(tǒng)分離。與操作系統(tǒng)和其它應(yīng)用程序之間的交互相分離地管理每個(gè)應(yīng)用程序或應(yīng)用程序組。每個(gè)囊包括應(yīng)用程序可執(zhí)行文件以及任意關(guān)聯(lián)文件。某些囊包括多個(gè)應(yīng)用程序可執(zhí)行文件(例如軟件套裝),以適于應(yīng)用程序或應(yīng)用程序組。同時(shí),系統(tǒng)容許并能夠在不同封裝的(和/或未封裝的)應(yīng)用程序之間共享文件。以修改后的形式在第二囊內(nèi)封裝了來(lái)自第一囊(或根本不在囊中)的文件,該文件被第二囊內(nèi)的應(yīng)用程序所修改。這樣在第一囊內(nèi)留下了在第一囊內(nèi)未經(jīng)修改的最初版本。 由囊管理器130追蹤文件版本,從而在某些實(shí)例中,文件的后續(xù)使用總是來(lái)自最近的版本, 而不論囊是哪一個(gè)。系統(tǒng)囊140例如以增量文件(delta file) 144以及操作系統(tǒng)日志文件145的形式來(lái)封裝對(duì)初始操作系統(tǒng)安裝的改變。系統(tǒng)囊140還可包括某些類型的系統(tǒng)應(yīng)用程序,并將其他系統(tǒng)應(yīng)用程序看作放置在囊中的孤立應(yīng)用程序。例如,微軟 公司通常用它們的操作系統(tǒng)來(lái)打包(bundle)文本編輯器(not印ad. exe)。在某些實(shí)施例中,分離的囊用于管理某些打包應(yīng)用程序(例如用于微軟 的打包文本編輯器的記事簿囊)的活性(activity)。個(gè)人設(shè)置囊180管理用戶文件182。這種文件182能夠包括與當(dāng)用戶一經(jīng)登入他的賬戶與對(duì)他可用的封裝應(yīng)用程序不關(guān)聯(lián)的文件。這種用戶文件包括由用戶復(fù)制到系統(tǒng)中的文件以及用戶指定的操作系統(tǒng)設(shè)置184(例如打印機(jī)配置和顯示器設(shè)置)。實(shí)際上,囊管理器130可用于使得某些用戶能夠僅僅看到某些所選擇的應(yīng)用程序。這使得囊管理器130能夠限定用戶的類別,每個(gè)類別能夠接入不同的應(yīng)用程序。—般而言,并未保證重建圖像所需的軟件和數(shù)據(jù)在特定計(jì)算機(jī)上可用。結(jié)果是,當(dāng)限定了與位置無(wú)關(guān)的圖像時(shí),如上文所述,能夠變?yōu)樾枰焖賯鬟f所選擇的軟件和其它數(shù)據(jù),以避免在登入期間的等待時(shí)間。為了減少等待時(shí)間,囊管理器130檢查元數(shù)據(jù)以確定特定軟件或數(shù)據(jù)在計(jì)算機(jī)中是否為不可用的。如果任意這種軟件或數(shù)據(jù)是不可用的,則囊管理器130根據(jù)需要使得某些軟件和數(shù)據(jù)被提供給計(jì)算機(jī)。這避免了對(duì)預(yù)安裝數(shù)據(jù)或軟件的需求。上述方法和用于執(zhí)行這種方法的系統(tǒng),與跟重復(fù)數(shù)據(jù)刪除(de-duplication)相關(guān)聯(lián)使用的相應(yīng)方法和系統(tǒng)不同。在重復(fù)數(shù)據(jù)刪除系統(tǒng)中,要搜索重復(fù)塊。反之,囊管理器 130搜索重復(fù)應(yīng)用程序。在某些情況下,登入他的賬戶的用戶還能夠使用一個(gè)應(yīng)用程序(如應(yīng)用程序X)來(lái)與來(lái)自另一應(yīng)用程序(如應(yīng)用程序Y)的應(yīng)用程序文件一起操作。在這種情況下,由應(yīng)用程序χ所讀取的任意文件巧5保留在應(yīng)用程序Y囊中。由應(yīng)用程序X修改的任意文件158保存在應(yīng)用程序X囊150內(nèi)。留下這些文件的初始版本(例如應(yīng)用程序Y用戶文件155)不加以修改。由于僅當(dāng)修改時(shí)復(fù)制文件,將其稱為“寫時(shí)拷貝”??赏ㄟ^(guò)首先拷貝文件接著變化拷貝件,或者更有效的是通過(guò)將修改寫入新版本的文件而不需要拷貝文件,來(lái)處理對(duì)寫時(shí)拷貝策略中的修改。以與文件接入相同的方式來(lái)管理特定用戶賬戶內(nèi)的注冊(cè)接入,且根據(jù)需要復(fù)制注冊(cè)表鍵(registry key)。在某些實(shí)施例中,囊管理器130從每個(gè)請(qǐng)求處理截取每個(gè)注冊(cè)或文件系統(tǒng)請(qǐng)求, 并用來(lái)自適于請(qǐng)求的應(yīng)用程序的封裝文件系統(tǒng)圖式(schema)的注冊(cè)表鍵和文件路徑來(lái)取代請(qǐng)求中的注冊(cè)表鍵和文件路徑。囊管理器130確定用于請(qǐng)求的處理的正確的囊視圖,并且作為請(qǐng)求的文件或注冊(cè)表鍵、請(qǐng)求的處理以及適當(dāng)系統(tǒng)視圖的函數(shù)(function)。囊管理器130進(jìn)一步確定用于在置換中使用的本地(native)文件路徑或注冊(cè)表鍵。替代請(qǐng)求被傳送到操作系統(tǒng)120或存儲(chǔ)硬件110。接著請(qǐng)求響應(yīng)能夠發(fā)送到初始處理(originating process)。在某些實(shí)施方式中,使用內(nèi)核級(jí)驅(qū)動(dòng)器來(lái)截取請(qǐng)求。在另一些實(shí)施方式中,請(qǐng)求響應(yīng)通過(guò)囊管理器130。在再一些實(shí)施方式中,囊管理器130與硬件110直接交互,而并未使用操作系統(tǒng)120。參見圖4,單個(gè)卷標(biāo)200上的典型操作系統(tǒng)文件系統(tǒng)圖式開始于根目錄四0,例如 “C:\”。在根目錄組中具有多個(gè)目錄以及相關(guān)的子目錄。典型配置包括操作系統(tǒng)樹四2 (例如“C:\WIND0WS\”)和一個(gè)或多個(gè)應(yīng)用程序樹四4 (例如“C:\Program Files\”)。大多數(shù)操作系統(tǒng)包括附加軟件,例如配置設(shè)備(utility)、系統(tǒng)監(jiān)測(cè)器以及其它基礎(chǔ)應(yīng)用程序。本軟件典型被收集到“bin”目錄中或擴(kuò)展到多個(gè)目錄中(例如分到OS樹292和應(yīng)用程序樹 294之間)。在本實(shí)例中,在設(shè)備目錄222中的OS樹292中將這種附加軟件收集到一起。在 OS樹四2中還存在用于附加庫(kù)224(例如DLL)的目錄以及用于配置數(shù)據(jù)225的目錄。某些系統(tǒng)還包括用戶文件樹四5 (例如“C:\Documents and SettingS\,,)。支持多個(gè)用戶的系統(tǒng)典型包括用于每個(gè)用戶(例如用戶285和另一用戶觀8)的用戶文件樹中的目錄。當(dāng)應(yīng)用程序安裝在不具有囊管理器130的系統(tǒng)中時(shí),安裝處理典型生成應(yīng)用程序樹294中的目錄并把文件加入到OS樹292中的文件夾中(例如把附加DLL加入庫(kù)目錄2 中)。在某些情況下,安裝還將文件或特殊子目錄加入到每個(gè)用戶賬戶的文件樹中。例如, 通過(guò)增加包括可執(zhí)行文件252和附加應(yīng)用程序文件253的應(yīng)用程序X目錄251,從而應(yīng)用程序X的安裝擴(kuò)張了應(yīng)用程序樹四4。應(yīng)用程序X的安裝還在庫(kù)目錄224中加入了 DLL 254, 在配置目錄225中加入了配置數(shù)據(jù)255,并在每個(gè)用戶目錄中加入了用戶文件(顯示為初始實(shí)例用戶285下的文件255以及另一用戶288下的文件258)。這些文件一般對(duì)于登入任意用戶賬戶的任意用戶可用。應(yīng)用程序的每個(gè)后續(xù)安裝還增大了目錄結(jié)構(gòu)并將文件加入OS樹292中的目錄中。 例如,通過(guò)加入包括可執(zhí)行文件252和附加應(yīng)用程序文件253的應(yīng)用程序Y目錄251,應(yīng)用程序Y的安裝擴(kuò)張了應(yīng)用程序樹四4。應(yīng)用程序Y的安裝還在庫(kù)目錄224中加入了 DLL 254,在配置目錄225中加入了配置數(shù)據(jù)255,并在每個(gè)用戶目錄中加入了用戶文件(顯示為初始實(shí)例用戶285下的文件255以及另一用戶288下的文件258)。當(dāng)在具有囊管理器130的系統(tǒng)中安裝應(yīng)用程序時(shí),本地目錄結(jié)構(gòu)維持為用于用戶調(diào)用的處理的文件系統(tǒng)的視圖。然而,囊管理器130截取每個(gè)文件系統(tǒng)請(qǐng)求。一經(jīng)這么做, 囊管理器130記錄(journal)該請(qǐng)求從而對(duì)存儲(chǔ)于外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714中的數(shù)據(jù)執(zhí)行任意文件接入操作??商娲兀夜芾砥?30用適于請(qǐng)求的應(yīng)用程序的封裝文件系統(tǒng)圖式的路徑和文件位置取代了請(qǐng)求中的路徑和文件位置,如上文所述。由囊管理器130來(lái)管理路程變更(rerouting),其對(duì)于每個(gè)應(yīng)用程序(包括如用戶外殼)存在囊指定文件系統(tǒng)視圖, 例如用戶一經(jīng)登入他的賬戶就可看到的視圖。如下文所解釋的,為了確定視圖的目的具有兩種囊獨(dú)立(isolated)囊和通用(general)囊。獨(dú)立囊中的應(yīng)用程序僅具有存儲(chǔ)在囊內(nèi)的文件的視圖以及不在獨(dú)立囊內(nèi)的文件的最新版本。通用囊中的應(yīng)用程序具有不在獨(dú)立囊內(nèi)的每個(gè)文件的最新版本的統(tǒng)一視圖(unified view)。不在囊中管理的應(yīng)用程序存在相同的統(tǒng)一視圖,好像應(yīng)用程序在通用囊中一樣。將視圖轉(zhuǎn)化為囊圖式,通過(guò)囊管理器130將文件放置在下層本地文件系統(tǒng)中。在某些實(shí)施方式中,囊管理器130生成囊樹230以用作囊圖式(capsuleschema) 的根目錄。在系統(tǒng)囊240中捕獲對(duì)操作系統(tǒng)做出的修改和/或使用工具目錄222中的軟件做出的修改。生成的所有文件或關(guān)于應(yīng)用程序的所有文件位于與應(yīng)用程序相關(guān)聯(lián)的囊中。例如,安裝應(yīng)用程序X生成應(yīng)用程序X囊250。將對(duì)存儲(chǔ)在應(yīng)用程序樹\應(yīng)用程序X 251中的文件的接入進(jìn)行路程變更210,以替代性地接入應(yīng)用程序X囊250中的文件。此外,用戶級(jí)別上的操作系統(tǒng)配置存儲(chǔ)在個(gè)人設(shè)置囊280中。配置數(shù)據(jù)被存儲(chǔ)到經(jīng)由文件系統(tǒng)不能接入的注冊(cè)表中時(shí),使用注冊(cè)項(xiàng)的特殊囊樹以相同方式管理注冊(cè)表接入。其它實(shí)施例和實(shí)施方式以其它格式存儲(chǔ)囊內(nèi)容和數(shù)據(jù)。例如,在替代實(shí)施方式中, 代替使用特殊目錄,使數(shù)據(jù)位于數(shù)據(jù)庫(kù)中。在另一實(shí)例中,使用特殊存檔文件。在某些實(shí)施方式中,囊管理器130使用記錄途徑(journalingapproach)以歸檔管理。在記錄途徑中, 囊管理器130使用本地目錄圖式結(jié)合囊記錄。能夠在本地機(jī)處或者在維持多個(gè)本地機(jī)的基線圖像的服務(wù)器處維持囊記錄。在為囊維持的記錄中記錄囊中的文件的參考。一個(gè)囊中的文件名與另一囊中的文件名沖突時(shí),囊管理器130對(duì)一個(gè)文件或這兩個(gè)文件供應(yīng)假名。例如,由應(yīng)用程序X修改的文件“sample, dat”可被命名為“sample, dat. CapSule_X”。應(yīng)用程序Y做出的后來(lái)的修改可被命名為“sample, dat. CapSule_Y”。在某些實(shí)例中,版本信息還被并入文件名中。配置數(shù)據(jù)被存儲(chǔ)到經(jīng)由文件系統(tǒng)不能接入的注冊(cè)表中時(shí),使用囊命名注冊(cè)表項(xiàng)以相同方式管理注冊(cè)表接入。參見圖5,在某些實(shí)施方式中,同一文件的不同版本存儲(chǔ)在不同位置。五個(gè)實(shí)例文件使用三個(gè)文件位置302足以示范文件視圖觀點(diǎn)。在未封裝的目錄中,具有文件1. 0、文件 2. 0、文件3. 0的初始文件版本,其中“文件N. M”是“文件N,版本M”的縮寫。在囊A的囊目錄下,具有文件4. 0和文件5. 0的初始文件版本,以及修改后的文件版本文件2. 1和文件 3.1。在囊B的囊目錄下,具有修改后的文件版本文件3.2和文件5.1。示出每個(gè)文件最新版本的這些文件的統(tǒng)一視圖304包括文件1.0、文件2. 1、文件3. 2、文件4.0以及文件5. 1。獨(dú)立囊(isolated capsule)具有存儲(chǔ)在囊內(nèi)的文件的視圖,以及不具有存儲(chǔ)在囊內(nèi)的版本的文件的僅最新版本。例如,囊A的視圖,其中囊A是獨(dú)立囊306,包括文件1.0、 文件2. 1、文件3. 1、文件4. 0以及文件5. 0。從而獨(dú)立囊可能夠用于根據(jù)特定用戶策略802i 封裝僅從該特定用戶賬戶能接入的應(yīng)用程序,并隱藏不期望對(duì)此用戶賬戶可用的那些應(yīng)用程序。通用囊(general capsule)具有跨過(guò)所有通用囊和未封裝文件的統(tǒng)一視圖,包括在獨(dú)立囊中不具有的每個(gè)文件的最新版本。例如,囊A的外部的統(tǒng)一視圖(其中囊A為獨(dú)立囊308)包括文件1. 0、文件2. 0、文件3. 2以及文件5. 1。包括文件2. 0來(lái)代替存儲(chǔ)在獨(dú)立囊A中的文件2. 1,這是由于文件2. 0是未存儲(chǔ)在獨(dú)立囊中的最新版本。類似的,不包括僅存儲(chǔ)在獨(dú)立囊A中的文件4.0,這是由于在獨(dú)立囊的外部不存在該文件的版本。通用囊 (例如囊B)具有統(tǒng)一視圖。所有的通用囊具有相同視圖。從而,通用囊適于封裝意圖可從所有用戶賬戶接入的應(yīng)用程序。囊內(nèi)的應(yīng)用程序接入到囊外部的文件并未改變外部文件。每個(gè)囊使用用于修改的文件的本地拷貝。在某些實(shí)施例中,當(dāng)具有囊的應(yīng)用程序打開用于寫入接入的文件以及在囊中不存在文件時(shí),文件首先被拷貝到囊中。接著,這種內(nèi)囊拷貝被打開以用于修改。在某些情況下,在囊中寫新的文件比拷貝文件更有效。例如,在整個(gè)文件將被覆寫的情況下寫入新的文件。以相同方式處理注冊(cè)表接入。在囊內(nèi)維持所有文件或注冊(cè)表的變化。然而,要注意的是,該操作系統(tǒng)文件和存儲(chǔ)器管理文件(如頁(yè)面文件)留在操作系統(tǒng)囊中。對(duì)于為只讀接入打開的文件,打開在囊視圖內(nèi)可用的版本。結(jié)果是,當(dāng)多個(gè)版本可能存在于文件系統(tǒng)內(nèi)時(shí),每個(gè)版本與相同文件路徑相關(guān)聯(lián),之前解釋的視圖系統(tǒng)僅揭示了最新版本,并打開最新版本以用于讀取。參見圖7,通過(guò)截取請(qǐng)求510開始解決注冊(cè)表接入或文件系統(tǒng)請(qǐng)求的處理。接著確定請(qǐng)求可執(zhí)行文件520。例如其可以通過(guò)使用視窗的PSAPI.DLL功能 GetProcessImageFiIeName ()來(lái)完成。如果封裝了應(yīng)用程序,則可執(zhí)行路徑將指示囊524。 如果找到囊530,則該囊用于解決請(qǐng)求532。如果沒有找到囊,則生成囊534。請(qǐng)求應(yīng)用程序的囊確定應(yīng)用程序可執(zhí)行文件所使用的視圖。如果囊為獨(dú)立的M0, 則使用獨(dú)立視圖M2。否則使用通用的統(tǒng)一視圖M4。上文討論了多個(gè)視圖之間的差別。使用適當(dāng)?shù)囊晥D,來(lái)放置請(qǐng)求的目標(biāo)M5?;谡?qǐng)求是讀取請(qǐng)求還是寫入請(qǐng)求對(duì)搜索的結(jié)果進(jìn)行處理550。如果請(qǐng)求是讀取請(qǐng)求或是非修改請(qǐng)求,則處理取決于找到目標(biāo)560。如果沒有找到目標(biāo),則返回錯(cuò)誤562。如果找到目標(biāo),則其用于滿足請(qǐng)求,即讀取目標(biāo)564。如果請(qǐng)求是寫入請(qǐng)求,或修改請(qǐng)求,則處理取決于目標(biāo)的囊狀態(tài)570。如果在囊中不存在目標(biāo),則在囊中生成目標(biāo)572。接著根據(jù)請(qǐng)求修改囊內(nèi)的目標(biāo)574。在某些情況下, 通過(guò)復(fù)制囊外部的目標(biāo)來(lái)生成目標(biāo)572。例如,基于修改數(shù)據(jù)庫(kù)中的部件的請(qǐng)求,可完成此內(nèi)容。在其它情況下,例如如果修改將會(huì)覆寫目標(biāo),則不需要復(fù)制目標(biāo)。在這種情況下,生成目標(biāo)意味著生成新文件或注冊(cè)表鍵。當(dāng)接收到刪除不具有其它版本的文件的指令時(shí),刪除文件。如果存在其它版本,則某些特殊處理用于維持文件刪除的記錄。在該情況下,刪除被視作本地化到囊的修改。例如,將刪除的文件記錄保留在囊內(nèi)。由于記錄是最新版本的文件,從而其將從系統(tǒng)的名稱空間有效刪除。在某些實(shí)施例中,沒有實(shí)際刪除文件的最后版本。在類似情況下,當(dāng)存在文件的多個(gè)版本并由囊對(duì)文件重新命名時(shí),將文件的舊名稱版本標(biāo)記為刪除的,并生成具有新名稱的文件的新版本。以相同方式來(lái)處理注冊(cè)表修改。囊管理器130存在的文件系統(tǒng)視圖并不包括已經(jīng)停用或刪除的囊。停用囊與刪除囊并不相同。當(dāng)停用囊時(shí),仍保留了常駐數(shù)據(jù),但是囊終止了參與到文件系統(tǒng)中。當(dāng)停用囊時(shí),終止囊內(nèi)的運(yùn)行可執(zhí)行文件的所有處理,并且文件變對(duì)文件系統(tǒng)視圖不可見,就如同囊被隔離。然而,囊的內(nèi)容保留在存儲(chǔ)器中并且之后可被重新激活。在某些實(shí)施方式中,基于自動(dòng)觸發(fā)器來(lái)激活囊或停用囊。例如,管理器可配置計(jì)算機(jī)系統(tǒng),從而某些應(yīng)用程序囊僅在某些時(shí)間內(nèi)可用,停用如使在工作時(shí)間期間使用大量網(wǎng)絡(luò)帶寬的用用程序的囊?;蛘?,例如,僅當(dāng)機(jī)器連接到安全企業(yè)數(shù)據(jù)網(wǎng)絡(luò)時(shí),可激活存儲(chǔ)在特定機(jī)器上的靈敏的囊。以類似方式,關(guān)聯(lián)圖2進(jìn)行討論的用戶指定用戶策略80 還可包括能夠如上所述進(jìn)行加強(qiáng)的臨時(shí)元件。當(dāng)刪除囊時(shí),也刪除了囊的內(nèi)容。隨著所有的應(yīng)用程序文件、配置數(shù)據(jù)以及囊中包含的任意其它內(nèi)容也刪除了囊中的任意應(yīng)用程序。在某些實(shí)施方式中,在刪除囊的內(nèi)容之前,將某些文件(例如用戶文件)復(fù)制到另一囊或復(fù)制到文件的視圖明顯位置處的本地文件系統(tǒng)。以此方式融合文件降低了刪除囊時(shí)的數(shù)據(jù)損失。為了刪除囊而不會(huì)刪除其內(nèi)容,即為了不封裝應(yīng)用程序,則囊中的所有文件融入到另一囊中或融入到本地文件系統(tǒng)中,從而僅刪除了空囊。實(shí)際上,刪除了囊但是將囊的內(nèi)容移動(dòng)到其本地位置,正如同安裝了應(yīng)用程序并在計(jì)算機(jī)中使用了應(yīng)用程序而并未封裝。在每個(gè)囊內(nèi),每個(gè)文件與本地文件系統(tǒng)地址相關(guān)聯(lián)。獨(dú)立囊可包括映射到相同外部地址的文件,如圖5示出的和上文描述的不同文件版本所示。類似地,在某些實(shí)施方式中,一個(gè)囊可包括映射到同一地址的多個(gè)文件版本。觸發(fā)事件使得囊的內(nèi)容是只讀的,從而囊內(nèi)的將來(lái)寫入嘗試指的是囊內(nèi)的新位置。在某些實(shí)施方式中,將對(duì)只讀文件的修改保存為具有適當(dāng)映射文件(例如對(duì)部分大的數(shù)據(jù)庫(kù)文件的修改)的文件塊。實(shí)例的觸發(fā)包括 系統(tǒng)重啟;具體呈現(xiàn)應(yīng)用程序;如果文件之前的版本在囊外生成則修改囊內(nèi)的文件;計(jì)劃好的事件;安裝完成;囊輸入或輸出(在下文中更詳細(xì)披露);或與另一囊融合。參見圖6,在一個(gè)實(shí)例中,囊內(nèi)的多個(gè)子目錄用于分離只讀文件,其中一個(gè)目錄分配用于激活寫入而其它目錄分配用于只讀囊的之前版本。具有根目錄囊T 470的初始囊樹 402具有包含可寫入文件的激活目錄(activedirectory)472,例如文件1 410、文件2 420 以及文件3 430。這些文件是對(duì)應(yīng)用程序可見的文件,如箭頭所示。觸發(fā)事件導(dǎo)致激活寫入目錄變?yōu)橹蛔x,并且還導(dǎo)致建立用于進(jìn)一步激活寫入的新的目錄。例如,第一事件404之后的囊樹具有包括之前在激活目錄472中的文件的初始版本的只讀目錄474。激活目錄472包括這些文件的任意修改(例如文件2 421以及文件3 431)以及任意新的文件(如文件4 440)。囊的視圖仍示出每個(gè)文件的最新版本,而不論其子目錄為何,如箭頭所示??梢灾貜?fù)進(jìn)行前述處理。例如,第二事件406之后的囊樹具有包括之前在激活目錄472中的文件的版本的初始只讀目錄474以及新的只讀目錄476。激活目錄472包括任意文件修改(例如文件3 432)以及任意新的文件。囊的視圖仍示出每個(gè)文件的最新版本, 而不論其子目錄為何,如箭頭所示。囊能夠回退到任意觸發(fā)事件的時(shí)間。在合并描述的子目錄路徑的一個(gè)實(shí)施方式中,將在目標(biāo)觸發(fā)事件之后填入的只讀和激活目錄從囊視圖中排除。從而系統(tǒng)管理器能夠通過(guò)囊的歷史經(jīng)由排除和/或包括目錄進(jìn)行回退并前進(jìn)。新的激活目錄用于在前向修改。在某些實(shí)施方式中,操作系統(tǒng)修改和配置與用戶文件分離,例如,操作系統(tǒng)使用注冊(cè)表。在這些實(shí)施方式中,每個(gè)囊合并用于囊的注冊(cè)表樹。注冊(cè)表樹包括用于在囊內(nèi)進(jìn)行使用的鍵/值對(duì)。與用文件相同的方式來(lái)管理此數(shù)據(jù),包括生成只讀組鍵的能力以及回退的能力。在某些實(shí)施方式中,在注冊(cè)表內(nèi)回退與在用戶文件中回退相分離。這允許完成一個(gè)回退,無(wú)論是否具有另一個(gè)回退。在某些實(shí)施方式中,對(duì)應(yīng)用程序的管理明顯與應(yīng)用程序數(shù)據(jù)不同,其配置可包括注冊(cè)表項(xiàng)與配置文件的混合體。在這些實(shí)施方式中,能夠與數(shù)據(jù)回退相分離地處理配置的回退。在某些實(shí)施方式中,每個(gè)囊包括用于關(guān)聯(lián)的應(yīng)用程序的所有組件,并未對(duì)操作系統(tǒng)做出外部修改。封裝的應(yīng)用程序能夠干凈地并完整地從系統(tǒng)移除。如上文所述,刪除囊完整地移除了所有文件,如果可用,則可移除囊內(nèi)的注冊(cè)表項(xiàng)。這包括對(duì)文件系統(tǒng)和/或注冊(cè)表引起的囊內(nèi)的應(yīng)用程序的所有變化。類似地,重新存儲(chǔ)囊完整地重新存儲(chǔ)了應(yīng)用程序。 囊的備份拷貝能夠用于重新存儲(chǔ)囊的每個(gè)部件,包括設(shè)置、可執(zhí)行文件以及數(shù)據(jù)文件。這還能夠用于調(diào)配應(yīng)用程序的拷貝以通過(guò)拷貝應(yīng)用程序囊來(lái)使計(jì)算機(jī)系統(tǒng)多樣化。例如,參見圖1,能夠通過(guò)拷貝存儲(chǔ)在外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714上的適當(dāng)應(yīng)用程序囊來(lái)在池710的所有池組件711之間調(diào)配應(yīng)用程序的拷貝。在下文中關(guān)聯(lián)圖8來(lái)更詳細(xì)地描述這一進(jìn)程。應(yīng)用程序的不同版本能夠在單個(gè)計(jì)算機(jī)系統(tǒng)中共存,每個(gè)版本在其自己的囊中。 例如,分離囊內(nèi)的應(yīng)用程序的第一版本對(duì)分離囊中的應(yīng)用程序的第二版本不可見?;蛘咴诹硪粚?shí)例中,停用的囊內(nèi)的應(yīng)用程序的第一版本對(duì)分離囊中的應(yīng)用程序的第二版本不可見。從而系統(tǒng)管理器能夠測(cè)試新的安裝而不需要移除之前的安裝。多個(gè)囊的用戶文件能夠之后被融合。在某些情況下,能夠移除應(yīng)用程序安裝,隨著通過(guò)拷貝囊將其關(guān)聯(lián)的配置數(shù)據(jù)和用戶文件從一個(gè)計(jì)算機(jī)到另一個(gè)計(jì)算機(jī)。封裝的應(yīng)用程序能夠被網(wǎng)絡(luò)驅(qū)動(dòng)、USB驅(qū)動(dòng)或任意其它便攜式介質(zhì)轉(zhuǎn)移,并由網(wǎng)絡(luò)驅(qū)動(dòng)、USB驅(qū)動(dòng)或任意其它便攜式介質(zhì)使用或經(jīng)由網(wǎng)絡(luò)713 由接入的外部數(shù)據(jù)存儲(chǔ)系統(tǒng)714使用,如圖1所示。囊可被經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)(如因特網(wǎng))流動(dòng)到連接的數(shù)據(jù)服務(wù)器,或從數(shù)據(jù)服務(wù)器流動(dòng)到囊。在某些實(shí)施方式中,囊管理器130不下載整個(gè)囊。替代地,例如當(dāng)接入部分囊時(shí),管理器根據(jù)需要下載這些部分。能夠遷移應(yīng)用程序以及應(yīng)用程序設(shè)置和用戶數(shù)據(jù),而不需要在每個(gè)激活的囊系統(tǒng)中運(yùn)行應(yīng)用程序安裝設(shè)備。參見圖8,裝備有網(wǎng)絡(luò)囊管理器620的實(shí)例計(jì)算系統(tǒng)610將囊數(shù)據(jù)680a與其經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)690所連接到的網(wǎng)絡(luò)囊服務(wù)器650a交換。囊服務(wù)器650a儲(chǔ)存可接入囊服務(wù)器 650a的存儲(chǔ)器660a上的囊數(shù)據(jù)。安裝在計(jì)算系統(tǒng)610上的囊管理器620將囊數(shù)據(jù)680a流動(dòng)到網(wǎng)絡(luò)囊服務(wù)器650a并從網(wǎng)絡(luò)囊服務(wù)器650a流動(dòng)囊數(shù)據(jù)680a。囊數(shù)據(jù)680a包括一個(gè)或多個(gè)完整的囊或囊的一部分。能夠流動(dòng)任意種類的囊,包括操作系統(tǒng)囊和用戶指定囊。具有網(wǎng)絡(luò)囊管理器620的計(jì)算機(jī)510的用戶能夠從網(wǎng)絡(luò)囊服務(wù)器650a流動(dòng)應(yīng)用程序,使用位于計(jì)算機(jī)610中的應(yīng)用程序,并將修改上傳到囊返回網(wǎng)絡(luò)囊管理器650a,例如發(fā)送回用戶文件修改。在某些實(shí)施方式中,管理器能夠修改存儲(chǔ)在網(wǎng)絡(luò)存儲(chǔ)器660a中的囊,例如激活管理器以更新應(yīng)用程序軟件、安裝補(bǔ)丁或?qū)嵤┯脩舨呗?01。在某些實(shí)施方式中,網(wǎng)絡(luò)囊管理器620使用囊緩存630以降低網(wǎng)絡(luò)使用。僅對(duì)流動(dòng)的囊的更新在隨后的使用中流動(dòng)。在某些實(shí)施方式中,僅根據(jù)需要流動(dòng)囊的更新或丟失部分。囊緩存(capsule cache)630以及關(guān)聯(lián)的囊數(shù)據(jù)存儲(chǔ)在位于計(jì)算系統(tǒng)610中的存儲(chǔ)器640中。在某些實(shí)施方式中,應(yīng)用程序使用兩個(gè)囊,一個(gè)囊用于相對(duì)溫度的應(yīng)用程序數(shù)據(jù) (如可執(zhí)行行及其關(guān)聯(lián)的庫(kù)),并且第二個(gè)囊用于更頻繁地更改的數(shù)據(jù)(如用戶文件)。在某些實(shí)施方式中,使用多個(gè)囊服務(wù)器650a_c,如可分配一個(gè)服務(wù)器650a用于服務(wù)操作系統(tǒng)囊(其可為只讀的),可分配另一服務(wù)器650b用于應(yīng)用程序囊(其可為只讀的),以及可分配第三服務(wù)器650c用于用戶囊(其可支持上傳修改)。使用多個(gè)囊服務(wù)器, 計(jì)算系統(tǒng)610能夠?qū)⒛覕?shù)據(jù)680a與第一囊服務(wù)器650a相交換,且將其它囊數(shù)據(jù)580_c與第三囊服務(wù)器650c相交換。使用用于囊分配的網(wǎng)絡(luò)化做法,多個(gè)計(jì)算機(jī)能夠存在對(duì)用戶的相同或類似的計(jì)算環(huán)境。例如,使用囊的辦公設(shè)置中的計(jì)算機(jī)用戶也能夠?qū)⒛覀魉偷降诙?jì)算機(jī)(如家庭計(jì)算機(jī))。能由便攜式介質(zhì)(如便攜式存儲(chǔ)卡)經(jīng)由網(wǎng)絡(luò)(如因特網(wǎng))或以任意其它可用方式來(lái)傳送囊??蓚魉驼麄€(gè)囊或可僅傳送部分囊。在某些實(shí)施例中,一個(gè)或多個(gè)囊服務(wù)器存儲(chǔ)操作系統(tǒng)囊、個(gè)人設(shè)置囊以及應(yīng)用程序囊。用戶啟動(dòng)本地計(jì)算機(jī)系統(tǒng),該系統(tǒng)接著從囊服務(wù)器傳輸一個(gè)或多個(gè)操作系統(tǒng)。這些操作系統(tǒng)囊接著用作本地計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)。還從服務(wù)器傳遞個(gè)人設(shè)置和應(yīng)用程序并本地使用個(gè)人設(shè)置和應(yīng)用程序。在某些實(shí)施方式中,將在本地計(jì)算機(jī)系統(tǒng)修改的囊傳遞回主機(jī)。在某些實(shí)施方式中,使變化同步以解決囊的多個(gè)實(shí)例之間的變化沖突。例如,能夠在用戶會(huì)話的起始或結(jié)束時(shí)發(fā)生同步。在某些實(shí)施方式中,本地系統(tǒng)僅為瘦客戶端,并且僅根
16據(jù)需要從服務(wù)器流動(dòng)圖像(如屏幕圖像)。例如,可從服務(wù)器流動(dòng)操作系統(tǒng)本身。在某些實(shí)施例中使用流動(dòng)做法,整個(gè)操作系統(tǒng)還駐留在本地計(jì)算機(jī)以支持離線工作。一旦機(jī)器被重新引入網(wǎng)絡(luò),則執(zhí)行用戶囊的同步。在某些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)能從安裝有應(yīng)用程序而不具有囊的系統(tǒng)轉(zhuǎn)換成每個(gè)應(yīng)用程序在關(guān)聯(lián)的囊中的封裝系統(tǒng)。在一個(gè)實(shí)例中,當(dāng)安裝有囊管理器時(shí),例如可通過(guò) MSI的分析(視窗安裝程序,也成為微軟安裝程序或達(dá)爾文(Darwin))安裝記錄來(lái)列舉并分析所有存在的之前安裝的應(yīng)用程序?;诖朔治觯夜芾砥?30能夠?qū)γ總€(gè)應(yīng)用程序組成在安裝期間生成/更新的文件列表和注冊(cè)表值。能夠根據(jù)此列表來(lái)執(zhí)行應(yīng)用程序封裝。 然而,MIS記錄不總是完整的,例如不包括在應(yīng)用程序運(yùn)行時(shí)間(相對(duì)于安裝時(shí)間)更新的文件/注冊(cè)表值。在某些實(shí)施例中,轉(zhuǎn)換成封裝系統(tǒng)并不移動(dòng)之前存在的文件或注冊(cè)表項(xiàng)。 更進(jìn)一步,之前存在的應(yīng)用程序文件和注冊(cè)表項(xiàng)羽新的囊相關(guān)聯(lián),并且囊僅包括在封裝后生成或修改的文件和注冊(cè)表項(xiàng)。在另一實(shí)例中,囊管理器能夠模擬應(yīng)用程序不安裝的過(guò)程,而并未實(shí)際變化本地文件系統(tǒng)或注冊(cè)表。例如,能夠捕捉文件和注冊(cè)表請(qǐng)求的模塊(例如部分囊管理器)捕捉不安裝請(qǐng)求并模擬不安裝的正確響應(yīng)。在此過(guò)程期間所請(qǐng)求的文件/注冊(cè)表值的列表用作應(yīng)用程序封裝的基礎(chǔ)。過(guò)程是用戶難以追蹤的,這是由于安裝對(duì)話框保持不可見并清理了安裝程序日志。生成的囊包括本應(yīng)被卸載程序移除的所有文件和注冊(cè)表裝置。在另一實(shí)例中,在預(yù)安裝的應(yīng)用程序是公知的情況下,囊管理器使用知識(shí)基庫(kù) (base)來(lái)決定囊中所包括的文件和注冊(cè)表設(shè)置。此做法考慮了計(jì)算機(jī)系統(tǒng)的環(huán)境(例如操作系統(tǒng)、服務(wù)包或補(bǔ)丁級(jí)別以及其它應(yīng)用程序上的附屬物)。知識(shí)基庫(kù)能夠包括已知用于在應(yīng)用程序運(yùn)行時(shí)間更新的配置單元。在另一實(shí)例中,其中封裝了操作系統(tǒng),具有每個(gè)空間均填充有一個(gè)或多個(gè)囊的三個(gè)空間操作系統(tǒng)空間、應(yīng)用程序空間以及用戶空間。通過(guò)從每個(gè)空間選擇一個(gè)或多個(gè)囊來(lái)生成計(jì)算環(huán)境。在某些實(shí)施方式中,從一個(gè)計(jì)算機(jī)到另一個(gè)計(jì)算機(jī)流動(dòng)操作系統(tǒng)囊和/或應(yīng)用程序囊。將流動(dòng)的囊看作只讀的,限制對(duì)用戶囊的用戶修改。在某些情況下,用戶囊還從一個(gè)計(jì)算機(jī)流動(dòng)到另一個(gè)計(jì)算機(jī),例如存儲(chǔ)能夠從其它計(jì)算機(jī)系統(tǒng)接入的數(shù)據(jù)服務(wù)器上的用戶囊。在流動(dòng)源上執(zhí)行維持并修改操作系統(tǒng)囊和/或應(yīng)用程序囊,從而簡(jiǎn)化打補(bǔ)丁或升級(jí)。能夠以多種方式來(lái)完成對(duì)這種系統(tǒng)的實(shí)施,包括基于虛擬機(jī)的實(shí)施方式,以及基于將地送到操作系統(tǒng)的桌面分離圖像的驅(qū)動(dòng)器的實(shí)施方式。在另一實(shí)例中,能夠以多種模式來(lái)配置系統(tǒng)。例如,以兩種模式來(lái)配備手提電腦, 一種模式用于“工作”而另一種模式用于“家庭”?!肮ぷ鳌蹦J酵S弥С址巧虡I(yè)應(yīng)用程序(例如游戲)的囊并激活工作應(yīng)用程序(例如用于接入公司網(wǎng)絡(luò)的軟件)?!凹彝ァ蹦J綄⒓せ畹罐D(zhuǎn),激活非商業(yè)應(yīng)用程序并停用工作專用應(yīng)用程序(例如限制未授權(quán)的接入公司網(wǎng)絡(luò))。 在某些實(shí)例中,可通過(guò)管理器遠(yuǎn)程激活/停用這些模式。在另一實(shí)例中,可通過(guò)由管理器采取的遠(yuǎn)程行為來(lái)分別激活或禁能一個(gè)或多個(gè)囊。如上文所述為實(shí)施具有時(shí)間維度的用戶策略的實(shí)例。例如,系統(tǒng)可為便攜式的(例如膝上型電腦或筆記本電腦),并配置有一系列授權(quán)的商業(yè)囊。當(dāng)便攜式系統(tǒng)連接到企業(yè)網(wǎng)絡(luò)時(shí)(如當(dāng)其登入虛擬私人網(wǎng)絡(luò)VPN時(shí)),僅激活授權(quán)的商業(yè)囊。當(dāng)便攜式系統(tǒng)不連接到企業(yè)網(wǎng)絡(luò)時(shí),用戶能夠激活其它囊,這些囊在便攜式
17系統(tǒng)位于企業(yè)網(wǎng)絡(luò)上時(shí)可能是失效的。以此方式,使用企業(yè)手提電腦的人可在斷開連接時(shí) (即在家時(shí)或在開會(huì)時(shí))安裝應(yīng)用程序,但是當(dāng)系統(tǒng)連接到企業(yè)網(wǎng)絡(luò)時(shí)系統(tǒng)操作為好像從未安裝這些未授權(quán)的應(yīng)用程序。通過(guò)刪除未授權(quán)的應(yīng)用程序囊還可容易地移除未授權(quán)的應(yīng)用程序。如上所述,這些為實(shí)施具有網(wǎng)絡(luò)維度的用戶策略的實(shí)例。在另一實(shí)例中,計(jì)算機(jī)系統(tǒng)可被配置為例如通過(guò)在一個(gè)或多個(gè)只讀囊中放置操作系統(tǒng)和/或其配置來(lái)防止用戶修改環(huán)境設(shè)置。期望對(duì)計(jì)算機(jī)的管理權(quán)的應(yīng)用程序(包括變化操作系統(tǒng)或其配置的能力)放置在具有操作系統(tǒng)本地化視圖的囊中。在囊內(nèi)做出的修改并未反映囊的外部,并且能夠通過(guò)恢復(fù)到較早快照(如初始優(yōu)選狀態(tài)快照或“基線狀態(tài)”) 而并未完成。在某些實(shí)施方式中,應(yīng)用程序具有管理許可,但是應(yīng)用程序修改系統(tǒng)的能力受限。在某些實(shí)施方式中,囊在每次使用的開始或結(jié)束時(shí)總是恢復(fù)到基線狀態(tài)??蓪⒛夜芾砥鲗?shí)施為抗撞擊。例如,囊管理器可通過(guò)使用文件系統(tǒng)檢查點(diǎn)來(lái)維持囊活性的記錄。在失敗之后,系統(tǒng)可回轉(zhuǎn)到之前的檢查點(diǎn)(例如最近的檢查點(diǎn)),以已知的穩(wěn)定狀態(tài)來(lái)放置系統(tǒng),或能夠完成進(jìn)行中的業(yè)務(wù)。在囊管理器與網(wǎng)絡(luò)化囊主機(jī)通信的實(shí)施方式中,記錄還可包括網(wǎng)絡(luò)激活。這保證了僅完成的囊變化對(duì)系統(tǒng)的沖擊并簡(jiǎn)化了撞擊的恢復(fù)。在說(shuō)明書中,有時(shí)將應(yīng)用程序描述為提出被囊管理器130所截取的請(qǐng)求。要知道, 在某些實(shí)例中,通過(guò)可執(zhí)行文件的處理(其的可執(zhí)行文件與封裝的應(yīng)用程序相關(guān)聯(lián)),生成被囊管理器截取的請(qǐng)求??蓪?shí)施囊管理器130以基于一組映射(如從PID到可執(zhí)行文件、 從可執(zhí)行文件到應(yīng)用程序以及從應(yīng)用程序到囊)來(lái)解決到囊標(biāo)識(shí)號(hào)的請(qǐng)求過(guò)程的過(guò)程標(biāo)識(shí)號(hào)(PID)。能夠在數(shù)字電路中或在計(jì)算機(jī)硬件、固件、軟件或這些的組合中實(shí)施此處描述的技術(shù)??蓪⒓夹g(shù)實(shí)施為在信息載體中,如在機(jī)器可讀存儲(chǔ)裝置(例如磁盤或磁帶或光盤) 或計(jì)算機(jī)可讀介質(zhì)中,切實(shí)體現(xiàn)的計(jì)算機(jī)可執(zhí)行指令,用于由數(shù)據(jù)處理設(shè)備(如可編程處理器、計(jì)算機(jī)、或多臺(tái)電腦)執(zhí)行或用于控制數(shù)據(jù)處理設(shè)備的操作。能夠以任意形式的編程語(yǔ)言(包括編譯語(yǔ)言和解釋型語(yǔ)言)來(lái)寫入計(jì)算機(jī)程序,可能夠以任意形式(包括作為獨(dú)立程序或作為模塊、組件、子程序或適合在計(jì)算環(huán)境中使用的其它單元)來(lái)配置計(jì)算機(jī)程序。可由一個(gè)特定計(jì)算機(jī)或在一個(gè)站點(diǎn)處的多個(gè)特定計(jì)算機(jī)上或分布在多個(gè)站點(diǎn)處的多個(gè)特定計(jì)算機(jī)上進(jìn)行配置、限制或執(zhí)行計(jì)算機(jī)程序,并通過(guò)通信網(wǎng)絡(luò)進(jìn)行相互連接。應(yīng)可理解執(zhí)行計(jì)算機(jī)可讀指令導(dǎo)致對(duì)計(jì)算機(jī)中的存儲(chǔ)器位置的實(shí)際和有形的變化。這些變化包括電荷和電流的移動(dòng)、和因而導(dǎo)致的對(duì)裝置附近的電磁場(chǎng)的扭曲和變化。能夠通過(guò)適當(dāng)測(cè)量裝置(包括示波器、現(xiàn)場(chǎng)探頭和電壓表)來(lái)測(cè)量這種變化。在某些情況下, 此處描述的計(jì)算機(jī)執(zhí)行軟件指令能夠?qū)е屡c附近裝載的電磁干擾并使周圍的區(qū)域變熱。這種變化均體現(xiàn)了物質(zhì)的切實(shí)與可測(cè)量變化。能夠由一個(gè)或多個(gè)可編程處理器執(zhí)行計(jì)算機(jī)程序來(lái)執(zhí)行此處描述的技術(shù)的方法步驟,以通過(guò)操作輸入數(shù)據(jù)并生成輸出來(lái)執(zhí)行本發(fā)明的功能。還能夠由特定目的邏輯電路, 如FPGA (現(xiàn)場(chǎng)可編程門陣列)或ASIC (專用集成電路)來(lái)執(zhí)行方法步驟,并且能夠?qū)⒈景l(fā)明的設(shè)備實(shí)施為特定目的邏輯電路。模塊能夠指實(shí)施該功能性的計(jì)算機(jī)程序和/或處理器 /特定電路的部分。通過(guò)實(shí)例的方式,適于執(zhí)行計(jì)算機(jī)程序的處理器包括通用和專用目的微處理器兩
18項(xiàng)以及任意種類數(shù)字計(jì)算機(jī)中的一個(gè)或多個(gè)處理器。通常而言,處理器將從只讀存儲(chǔ)器或從隨機(jī)存取存儲(chǔ)器或從這兩者中接收指令和數(shù)據(jù)。計(jì)算機(jī)的基本部件為用于執(zhí)行指令的處理器與用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器裝置。通常而言,計(jì)算機(jī)還將包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)裝置(如磁盤、磁光盤或光盤),或可操作地耦接至一個(gè)或多個(gè)大容量存儲(chǔ)裝置以從一個(gè)或多個(gè)大容量存儲(chǔ)裝置接收數(shù)據(jù)或?qū)?shù)據(jù)發(fā)送到一個(gè)或多個(gè)大容量存儲(chǔ)裝置或接收和發(fā)送數(shù)據(jù)兩者。適于具體體現(xiàn)計(jì)算機(jī)程序指令和數(shù)據(jù)的信息載體包括所有形式的非易失存儲(chǔ)器,包括實(shí)例半導(dǎo)體存儲(chǔ)器裝置(如EPR0M、EEPR0M以及閃存裝置)、磁盤(如內(nèi)置硬盤或移動(dòng)盤)、磁光盤以及⑶-ROM和DVD-ROM盤的方式。能夠通過(guò)特定目的邏輯電路來(lái)補(bǔ)充處理器和存儲(chǔ)器或能夠?qū)⑻幚砥骱痛鎯?chǔ)器與特定目的邏輯電路集成。為了提供與用戶的交互,此處描述的技術(shù)能夠在具有用于對(duì)用戶顯示信息的顯示裝置(如CRT(陰極射線管)或LCD(液晶顯示器)屏幕)、鍵盤、以及用戶能夠向計(jì)算機(jī)提供輸入(例如,如通過(guò)點(diǎn)按定點(diǎn)裝置(pointingdevice)上的按鈕與用戶界面部件交互)的這種定點(diǎn)裝置(如鼠標(biāo)或追蹤球)的計(jì)算機(jī)上實(shí)施。其它種類的裝置還能夠用于提供與用戶的交互;如,提供到用戶的反饋能夠?yàn)槿我庑问降母泄俜答?如視覺反饋或觸覺反饋); 以及能夠以任意形式(包括聲學(xué)、講話或觸覺輸入)接收從用戶的輸入。能夠在包括后端組件(如應(yīng)用程序服務(wù)器)、和/或前端組件(如具有圖形用戶接口的客戶端計(jì)算機(jī)和/或用戶能夠與本發(fā)明的實(shí)施方式相交互的網(wǎng)絡(luò)服務(wù)器)、或這種后端、中間、或前端組件的任意組合的分布式計(jì)算系統(tǒng)中實(shí)施此處描述的技術(shù)。系統(tǒng)的組件能夠通過(guò)任意形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(如通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的實(shí)例包括本地局域網(wǎng)(“LAN”)以及例如因特網(wǎng)的廣域網(wǎng)(“WAN”),并包括有線網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)兩種。計(jì)算系統(tǒng)能夠包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般彼此相隔較遠(yuǎn),并典型地經(jīng)由通信網(wǎng)絡(luò)進(jìn)行交互??蛻舳撕头?wù)器的關(guān)系是靠在各計(jì)算機(jī)上運(yùn)行并彼此具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序引起的。要知道,前述的描述意圖示出本發(fā)明的范圍而不限于此,本發(fā)明的范圍由所附權(quán)利要求的范圍所限定。其它實(shí)施例在所附權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)施的方法,用于使計(jì)算機(jī)系統(tǒng)向池組件的用戶提供虛擬桌面圖像,所述方法包括如下步驟從用戶接收由池登入第一池組件的請(qǐng)求; 取來(lái)虛擬桌面圖像以供所述第一池組件使用; 檢查用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。
2.根據(jù)權(quán)利要求1所述的方法,還包括如下步驟從所述用戶接收登入第二池組件的請(qǐng)求,所述第二池組件與所述第一池組件不同; 取來(lái)所述虛擬桌面圖像以供所述第二池組件使用; 檢查所述用戶策略;將所述虛擬桌面修改為與所述用戶策略一致;以及向所述第二池組件提供所述虛擬桌面。
3.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括基于用戶的身份拒絕所述用戶接入應(yīng)用程序。
4.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括基于登入的時(shí)間拒絕所述用戶接入應(yīng)用程序。
5.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括基于嘗試登入的位置拒絕所述用戶接入應(yīng)用程序。
6.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括合并所選擇的、由所述用戶于在前的會(huì)話時(shí)在池組件上做出的變化。
7.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括合并所選擇的、由所述用戶于在前的會(huì)話時(shí)在與所述第一池組件不同的池組件上做出的變化。
8.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面包括實(shí)施持久性策略,在該持久性策略中某些用戶變化被視為持久性的并且某些其它用戶變化被視為非持久性的。
9.根據(jù)權(quán)利要求1所述的方法,還包括在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)多個(gè)用戶檔案,每個(gè)用戶檔案包括表示由用戶對(duì)虛擬桌面圖像做出的配置變化的元數(shù)據(jù)。
10.根據(jù)權(quán)利要求1所述的方法,其中修改所述虛擬桌面圖像包括封裝所選擇的在所述圖像中可用的應(yīng)用程序。
11.一種制品,包括計(jì)算機(jī)實(shí)施介質(zhì),該計(jì)算機(jī)實(shí)施介質(zhì)上編碼有軟件,用于使計(jì)算機(jī)系統(tǒng)向池組件的用戶提供虛擬桌面圖像,所述軟件包括用于如下功能的計(jì)算機(jī)可執(zhí)行指令從用戶接收由池登入第一池組件的請(qǐng)求; 取來(lái)虛擬桌面圖像以供所述第一池組件使用; 檢查用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。
12.根據(jù)權(quán)利要求11所述的制品,其中所述軟件還包括用于如下功能的指令 從所述用戶接收登入第二池組件的請(qǐng)求,所述第二池組件與所述第一池組件不同;取來(lái)所述虛擬桌面圖像以供所述第二池組件使用; 檢查所述用戶策略;將所述虛擬桌面修改為與所述用戶策略一致;以及向所述第二池組件提供所述虛擬桌面。
13.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于基于用戶的身份拒絕所述用戶接入應(yīng)用程序的指令。
14.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于基于登入的時(shí)間拒絕所述用戶接入應(yīng)用程序的指令。
15.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于基于嘗試登入的位置拒絕所述用戶接入應(yīng)用程序的指令。
16.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于合并所選擇的、由所述用戶于在前的會(huì)話時(shí)在池組件上做出的變化的指令。
17.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于合并所選擇的、由所述用戶于在前的會(huì)話時(shí)在與所述第一池組件不同的池組件上做出的變化的指令。
18.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面的指令包括用于實(shí)施持久性策略的指令,在該持久性策略中某些用戶變化被視為持久性的并且某些其它用戶變化被視為非持久性的。
19.根據(jù)權(quán)利要求11所述的制品,其中該軟件還包括用于在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)系統(tǒng)中存儲(chǔ)多個(gè)用戶檔案的指令,每個(gè)用戶檔案包括表示由用戶對(duì)虛擬桌面圖像做出的配置變化的元數(shù)據(jù)。
20.根據(jù)權(quán)利要求11所述的制品,其中用于修改所述虛擬桌面圖像的指令包括用于封裝所選擇的在所述圖像中可用的應(yīng)用程序的指令。
21.一種用于從池向池組件的用戶提供虛擬桌面圖像的系統(tǒng),所述方法包括服務(wù)器子系統(tǒng),與多個(gè)池組件進(jìn)行數(shù)據(jù)通信,所述服務(wù)器子系統(tǒng)具有至少一個(gè)處理器, 以及可操作地耦接至所述處理器的存儲(chǔ)器部件,所述子系統(tǒng)被配置為 從用戶接收由池登入第一池組件的請(qǐng)求; 取來(lái)虛擬桌面圖像以供所述第一池組件使用; 檢查與所述用戶相應(yīng)的用戶策略; 將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。
全文摘要
本發(fā)明涉及池組件配置的管理,以及一種用于從池向池組件的用戶提供虛擬桌面圖像的系統(tǒng),包括服務(wù)器子系統(tǒng),與多個(gè)池組件進(jìn)行數(shù)據(jù)通信,所述服務(wù)器子系統(tǒng)被配置為從用戶接收由所述池登入第一池組件的請(qǐng)求;取來(lái)虛擬桌面圖像以供所述第一池組件使用;檢查與所述用戶相應(yīng)的用戶策略;將所述虛擬桌面圖像修改為與所述用戶策略一致;以及向所述第一池組件提供所述虛擬桌面。
文檔編號(hào)H04L29/06GK102158526SQ20111000820
公開日2011年8月17日 申請(qǐng)日期2011年1月10日 優(yōu)先權(quán)日2010年1月8日
發(fā)明者德米特里·巴伯伊, 米哈伊爾·亞夫尼洛維奇, 羅曼·利史蒂耶夫, 里奧尼德·史蒂爾曼, 阿納托利·卡爾達(dá)什 申請(qǐng)人:未友芬尼蒂有限公司