專利名稱:自治網(wǎng)絡(luò)流傳輸?shù)闹谱鞣椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及自治網(wǎng)絡(luò)流傳輸。
背景技術(shù):
計(jì)算機(jī)已變得高度集成于工作、家庭、移動(dòng)設(shè)備以及許多其他地方中。計(jì)算機(jī)可快速且有效地處理大量信息。被設(shè)計(jì)成在計(jì)算機(jī)系統(tǒng)上運(yùn)行的軟件應(yīng)用允許用戶執(zhí)行包括商業(yè)應(yīng)用、學(xué)校作業(yè)、娛樂等等在內(nèi)的各種各樣的功能。軟件應(yīng)用通常被設(shè)計(jì)成執(zhí)行特定的任務(wù),諸如用于草擬文檔的文字處理器應(yīng)用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。在每ー種情況中,軟件應(yīng)用與主存計(jì)算機(jī)系統(tǒng)的不同硬件組件交互并使用這些組件。例如,軟件應(yīng)用可與諸如硬盤、DVD驅(qū)動(dòng)器或閃存驅(qū)動(dòng)器之類的本地?cái)?shù)據(jù)存儲(chǔ)交互。通常,應(yīng)用作出輸入/輸出(I/O)請(qǐng)求,所述請(qǐng)求從應(yīng)用被發(fā)送到操作系統(tǒng)的文件系統(tǒng)。文件系統(tǒng)訪問來自盤的必要數(shù)據(jù),并將其返回至應(yīng)用。在使用虛擬應(yīng)用的情況下,代替単獨(dú)地從本地硬盤檢索數(shù)據(jù),可以改為向遠(yuǎn)程數(shù)據(jù)存儲(chǔ)(通常為網(wǎng)絡(luò)文件服務(wù)器)請(qǐng)求數(shù)據(jù)的至少ー部分。隨后數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)處被接收并被存儲(chǔ)在其本地硬盤上。計(jì)算機(jī)的文件系統(tǒng)隨后將數(shù)據(jù)發(fā)送給應(yīng)用,就像它通常對(duì)于本地存儲(chǔ)的數(shù)據(jù)所操作的那樣。
發(fā)明內(nèi)容
此處描述的各實(shí)施例涉及動(dòng)態(tài)地遞送虛擬軟件應(yīng)用以及在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)建立數(shù)據(jù)輸入/輸出(I/o)過濾器,所述過濾器被配置成截取正從虛擬軟件應(yīng)用發(fā)送到操作系統(tǒng)的文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求。數(shù)據(jù)I/o過濾器截取被配置成從文件系統(tǒng)檢索指定數(shù)據(jù)文件的數(shù)據(jù)文件讀取請(qǐng)求。數(shù)據(jù)I/O過濾器將截取到的讀取請(qǐng)求轉(zhuǎn)發(fā)到被配置成返回特定數(shù)據(jù)文件的網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)。隨后,在從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到指定數(shù)據(jù)之后,I/o過濾器將指定數(shù)據(jù)文件發(fā)送給虛擬軟件應(yīng)用。以此方式,指定數(shù)據(jù)文件可由虛擬應(yīng)用使用。在另ー實(shí)施例中,計(jì)算機(jī)系統(tǒng)在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)從管理員用戶接收對(duì)于虛擬應(yīng)用的哪些指定部分要被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)中以及哪些部分要被存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)中的指示。計(jì)算機(jī)系統(tǒng)生成描述虛擬應(yīng)用的哪些指定部分被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)上的元數(shù)據(jù)的不同部分。計(jì)算機(jī)系統(tǒng)隨后從虛擬應(yīng)用接收請(qǐng)求指定數(shù)據(jù)文件的數(shù)據(jù)的數(shù)據(jù)文件請(qǐng)求,并且基于所生成的元數(shù)據(jù)來判斷指定數(shù)據(jù)文件是存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)上還是存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)上。隨后,基于所述判斷,計(jì)算機(jī)系統(tǒng)或?qū)?shù)據(jù)文件請(qǐng)求發(fā)送到本地?cái)?shù)據(jù)存儲(chǔ)或發(fā)送到遠(yuǎn)程數(shù)據(jù)存儲(chǔ)。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下具體實(shí)施方式
中進(jìn)ー步描述的ー些概念。本發(fā)明內(nèi)容并非g在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不g在用于幫助確定所要求保護(hù)的主題的范圍。附加的特征和優(yōu)點(diǎn)將在以下的描述中被闡述,并且部分地可通過該描述而對(duì)本領(lǐng)域技術(shù)人員顯而易見,或者可通過對(duì)本文中的教示的實(shí)踐來習(xí)得。本發(fā)明的實(shí)施例的特征和優(yōu)點(diǎn)可以通過在所附權(quán)利要求中特別指出的手段和組合來被實(shí)現(xiàn)并獲得。本發(fā)明的實(shí)施例的特征將從以下描述和所附權(quán)利要求書中變得完全顯而易見,或者可通過如下所述對(duì)本發(fā)明的實(shí)踐而習(xí)得。
為了進(jìn)一步闡明本發(fā)明的各實(shí)施例的以上和其他優(yōu)點(diǎn)和特征,將參考附圖來呈現(xiàn)本發(fā)明的各實(shí)施例的更具體的描述??梢岳斫?,這些附圖只描繪本發(fā)明的典型實(shí)施例,因此將不被認(rèn)為是對(duì)其范圍的限制。本發(fā)明的實(shí)施例將通過使用附圖用附加特征和細(xì)節(jié)來描述和解釋,附圖中圖1示出其中可操作本發(fā)明的各實(shí)施例的包括動(dòng)態(tài)地遞送虛擬軟件應(yīng)用的計(jì)算機(jī)體系結(jié)構(gòu)。圖2示出一種用于動(dòng)態(tài)地遞送虛擬軟件應(yīng)用的示例方法的流程圖。圖3示出一種用于在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)的示例方法的流程圖。圖4示出其中數(shù)據(jù)在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配的本發(fā)明的一個(gè)實(shí)施例。
具體實(shí)施例方式此處描述的各實(shí)施例涉及動(dòng)態(tài)地遞送虛擬軟件應(yīng)用以及在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)建立數(shù)據(jù)輸入/輸出(I/O)過濾器,所述過濾器被配置成截取正從虛擬軟件應(yīng)用發(fā)送到操作系統(tǒng)的文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求。數(shù)據(jù)I/o過濾器截取被配置成從文件系統(tǒng)檢索指定數(shù)據(jù)文件的數(shù)據(jù)文件讀取請(qǐng)求。數(shù)據(jù)I/O過濾器將截取到的讀取請(qǐng)求轉(zhuǎn)發(fā)到被配置成返回特定數(shù)據(jù)文件的網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)。隨后,在從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到指定數(shù)據(jù)之后,I/o過濾器將指定數(shù)據(jù)文件發(fā)送給虛擬軟件應(yīng)用。以此方式,指定數(shù)據(jù)文件可由虛擬應(yīng)用使用。在另ー實(shí)施例中,計(jì)算機(jī)系統(tǒng)在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)從管理員用戶接收對(duì)于虛擬應(yīng)用的哪些指定部分要被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)中以及哪些部分要被存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)中的指示。計(jì)算機(jī)系統(tǒng)生成描述虛擬應(yīng)用的哪些指定部分被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)上的元數(shù)據(jù)的不同部分。計(jì)算機(jī)系統(tǒng)隨后從虛擬應(yīng)用接收請(qǐng)求指定數(shù)據(jù)文件的數(shù)據(jù)的數(shù)據(jù)文件請(qǐng)求,并且基于所生成的元數(shù)據(jù)來判斷指定數(shù)據(jù)文件是存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)上還是存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)上。隨后,基于所述判斷,計(jì)算機(jī)系統(tǒng)或?qū)?shù)據(jù)文件請(qǐng)求發(fā)送到本地?cái)?shù)據(jù)存儲(chǔ)或發(fā)送到遠(yuǎn)程數(shù)據(jù)存儲(chǔ)。以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動(dòng)作。應(yīng)當(dāng)注意,雖然這些方法動(dòng)作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進(jìn)行的,然而并非必然需要特定的次序,除非特別聲明,或者是在ー個(gè)動(dòng)作被執(zhí)行之前因?yàn)樵搫?dòng)作依賴于另ー動(dòng)作的完成而需要的情況。本發(fā)明的各個(gè)實(shí)施例可包括或利用專用或通用計(jì)算機(jī),該專用或通用計(jì)算機(jī)包括諸如舉例而言ー個(gè)或多個(gè)處理器以及系統(tǒng)存儲(chǔ)器的計(jì)算機(jī)硬件,如在下文中更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各個(gè)實(shí)施例還包括用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理以及其他計(jì)算機(jī)可讀介質(zhì)。這種計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。以數(shù)據(jù)形式存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲(chǔ)介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各個(gè)實(shí)施例可包括至少兩種明顯不同的計(jì)算機(jī)可讀介質(zhì)計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、CD-ROM、基于RAM、閃存、相變存儲(chǔ)器(PCM)、或其它類型的存儲(chǔ)器的固態(tài)驅(qū)動(dòng)器(SSD)、或者其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或可用于以計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)形式存儲(chǔ)所期望的程序代碼裝置且可被通用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)?!熬W(wǎng)絡(luò)”被定義成允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子 數(shù)據(jù)的ー個(gè)或多個(gè)數(shù)據(jù)鏈路和/或數(shù)據(jù)交換機(jī)。當(dāng)信息通過網(wǎng)絡(luò)(硬連線、無線、或者硬連線或無線的組合)被傳輸或提供給計(jì)算機(jī)吋,該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括如下的網(wǎng)絡(luò)所述網(wǎng)絡(luò)可以用于運(yùn)送數(shù)據(jù)或計(jì)算機(jī)可執(zhí)行指令形式或數(shù)據(jù)結(jié)構(gòu)形式的所期望的程序代碼裝置,并且可以被通用或?qū)S糜?jì)算機(jī)訪問。上述的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動(dòng)傳輸?shù)接?jì)算機(jī)存儲(chǔ)介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路上接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩沖在網(wǎng)絡(luò)接ロ模塊(例如,網(wǎng)絡(luò)接ロ卡或“NIC”)內(nèi)的RAM中,然后最終被傳輸給計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。因而,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行(或計(jì)算機(jī)可解釋)指令例如包括致使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某個(gè)功能或某組功能的指令。計(jì)算機(jī)可執(zhí)行指令可以是例如ニ進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或者甚至源代碼。雖然用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但是應(yīng)當(dāng)理解,所附權(quán)利要求書中定義的主題不必限于以上所述的特征或動(dòng)作。相反,所述的特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明還可在分布式系統(tǒng)環(huán)境中實(shí)踐,在該環(huán)境中本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)通過網(wǎng)絡(luò)(經(jīng)由硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路、或者經(jīng)由硬連線和無線數(shù)據(jù)鏈路的組合)鏈接起來,每個(gè)計(jì)算機(jī)系統(tǒng)都執(zhí)行任務(wù)(例如,云計(jì)算、云服務(wù)等)。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中。圖1示出了可在其中采用本發(fā)明的原理的計(jì)算機(jī)體系結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu)100包括至少以用戶模式140和內(nèi)核模式141運(yùn)行的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)可以是任何類型的本地或分布式計(jì)算機(jī)系統(tǒng),包括云計(jì)算系統(tǒng)。每ー種運(yùn)行模式包括被配置成執(zhí)行特定類型的操作的不同模塊。這些運(yùn)行模式和計(jì)算機(jī)系統(tǒng)模塊可用于以無縫且高效的方式來部署虛擬應(yīng)用。
如此處所稱的,虛擬軟件應(yīng)用是看上去運(yùn)行在本地但實(shí)際上運(yùn)行在網(wǎng)絡(luò)應(yīng)用服務(wù)器上的應(yīng)用。網(wǎng)絡(luò)應(yīng)用服務(wù)器通過網(wǎng)絡(luò)向用戶提供應(yīng)用的數(shù)據(jù)。在此處的各實(shí)施例中,用戶可通過打開他或她通常將通過點(diǎn)擊應(yīng)用圖標(biāo)(或要由虛擬應(yīng)用打開的文件數(shù)據(jù))來打開的應(yīng)用來開始該進(jìn)程。在從用戶接收到發(fā)起信號(hào)之后,操作系統(tǒng)通過將可執(zhí)行文件讀入存儲(chǔ)器來初始化用于應(yīng)用的可執(zhí)行文件的進(jìn)程地址空間。應(yīng)該注意,術(shù)語“數(shù)據(jù)文件”如此處所使用的可以指代包括設(shè)置文件的數(shù)據(jù)文件(通常不是可執(zhí)行代碼的一部分)和/或包含應(yīng)用的可執(zhí)行ニ進(jìn)制文件的映像。因?yàn)樵O(shè)置文件和可執(zhí)行文件兩者在此處都是被預(yù)期且支持的,所以術(shù)語數(shù)據(jù)文件在此處將用于描述這兩種文件。操作系統(tǒng)隨后將指令指針設(shè)置為指向應(yīng)用的入口點(diǎn),并且運(yùn)行進(jìn)程。操作系統(tǒng)內(nèi)的虛擬化層本身在這ー啟動(dòng)階段期間進(jìn)行檢測(cè)和初始化。虛擬應(yīng)用隨后在用戶的計(jì)算機(jī)系統(tǒng)上運(yùn)行。在某些情況下,虛擬應(yīng)用數(shù)據(jù)文件在需要它們的時(shí)候進(jìn)行動(dòng)態(tài)流傳輸。當(dāng)虛擬應(yīng) 用被發(fā)布在目標(biāo)計(jì)算機(jī)系統(tǒng)上時(shí),只創(chuàng)建稀疏數(shù)據(jù)文件。稀疏數(shù)據(jù)文件“看上去”像普通數(shù)據(jù)文件,但只存在該文件的占位符。占位符包括文件名和大小。與稀疏文件相對(duì)應(yīng)的數(shù)據(jù)文件的內(nèi)容尚未被流傳輸。一旦請(qǐng)求了文件的實(shí)際數(shù)據(jù),則執(zhí)行流傳輸。在此時(shí),該文件的數(shù)據(jù)從網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)130進(jìn)行流傳輸。通常,不需要數(shù)據(jù)文件的實(shí)際數(shù)據(jù)直到操作系統(tǒng)將可執(zhí)行文件讀入存儲(chǔ)器。在其他實(shí)現(xiàn)中,文件數(shù)據(jù)將被流傳輸和復(fù)制,并且操作系統(tǒng)的讀取請(qǐng)求將由已經(jīng)被流傳輸和復(fù)制到計(jì)算機(jī)系統(tǒng)的本地硬盤驅(qū)動(dòng)器(或其他數(shù)據(jù)存儲(chǔ))的數(shù)據(jù)來滿足。然而,此處描述的各實(shí)施例不將文件內(nèi)容復(fù)制到本地硬盤驅(qū)動(dòng)器。被流傳輸?shù)膬?nèi)容在它能夠被存儲(chǔ)在盤上之前被數(shù)據(jù)輸入/輸出(I/o)過濾器截取。數(shù)據(jù)I/O過濾器將經(jīng)流傳輸?shù)臄?shù)據(jù)傳遞給應(yīng)用以滿足讀取請(qǐng)求。應(yīng)用隨后使用經(jīng)流傳輸?shù)臄?shù)據(jù)來操作,就像它通常所做的那樣,而必不將任何經(jīng)流傳輸?shù)臄?shù)據(jù)寫入盤。實(shí)際上,虛擬應(yīng)用甚至不知道(或不需要知道)它的讀取請(qǐng)求不是由本地硬盤驅(qū)動(dòng)器滿足的而是由動(dòng)態(tài)流傳輸?shù)臄?shù)據(jù)滿足的。不需要對(duì)虛擬應(yīng)用或計(jì)算機(jī)系統(tǒng)的文件系統(tǒng)作出任何變更。相反,數(shù)據(jù)I/o過濾器在中間無縫地操作以提供動(dòng)態(tài)流傳輸?shù)奶摂M應(yīng)用。這ー相同的虛擬軟件應(yīng)用(存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)上)可被提供給幾乎任意數(shù)量的其他計(jì)算機(jī)系統(tǒng)和/或虛擬機(jī)。此外,當(dāng)同一應(yīng)用跨多個(gè)不同的計(jì)算機(jī)系統(tǒng)被使用時(shí),盤空間將不會(huì)被復(fù)制,因?yàn)榉?wù)器上的應(yīng)用的單個(gè)副本可被流傳輸?shù)讲煌挠?jì)算機(jī)系統(tǒng)中的每ー個(gè)。下面,分別針對(duì)圖2和圖3的方法200和300,進(jìn)一歩解釋這些概念。考慮到以上描述的系統(tǒng)和體系結(jié)構(gòu),參考圖2和圖3的流程圖將更好地理解根據(jù)所公開的主題實(shí)現(xiàn)的方法。為了解釋簡(jiǎn)明起見,這些方法被示出和描述為一系列框。然而,應(yīng)該理解和了解,所要求保護(hù)的主題不受框的次序的限制,因?yàn)椹`些框可按不同的次序進(jìn)行和/或與此處所描繪和描述的其他框同時(shí)進(jìn)行。此外,并非全部所示的框都是實(shí)現(xiàn)下面所述的方法所必需的。圖2示出一種用于動(dòng)態(tài)遞送虛擬軟件應(yīng)用的方法200的流程圖?,F(xiàn)在將頻繁參考環(huán)境100的組件和數(shù)據(jù)來描述方法200。方法200包括建立數(shù)據(jù)輸入/輸出(I/O)過濾器的動(dòng)作,所述數(shù)據(jù)輸入/輸出(I/0)過濾器被配置成截取從虛擬軟件應(yīng)用發(fā)送給操作系統(tǒng)的文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求(動(dòng)作210)。例如,數(shù)據(jù)I/O過濾器120可在客戶機(jī)計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)內(nèi)核模式141中建立。數(shù)據(jù)I/O過濾器可截取發(fā)送自虛擬應(yīng)用110的讀取請(qǐng)求111。數(shù)據(jù)請(qǐng)求是普通應(yīng)用讀取請(qǐng)求,通常從虛擬應(yīng)用發(fā)送到文件系統(tǒng)125。在這種情況下,數(shù)據(jù)I/O過濾器截取原本將被發(fā)送到文件系統(tǒng)(隨后被發(fā)送到盤126)的讀取請(qǐng)求。I/O數(shù)據(jù)過濾器在不對(duì)軟件應(yīng)用如何請(qǐng)求數(shù)據(jù)文件作出變更的情況下實(shí)現(xiàn)。由此,傳統(tǒng)的軟件堆棧保持不修改。在某些情況下,I/O過濾器可以是作為操作系統(tǒng)進(jìn)程的一部分來運(yùn)行的驅(qū)動(dòng)器。方法200隨后包括數(shù)據(jù)I/O過濾器截取數(shù)據(jù)文件讀取請(qǐng)求的動(dòng)作(動(dòng)作220),所述數(shù)據(jù)文件讀取請(qǐng)求被配置成從文件系統(tǒng)檢索指定數(shù)據(jù)文件。例如,數(shù)據(jù)I/O過濾器120可在讀取請(qǐng)求111被發(fā)送給文件系統(tǒng)125之前截取讀取請(qǐng)求111。讀取請(qǐng)求是對(duì)虛擬應(yīng)用110正試圖訪問的數(shù)據(jù)文件的請(qǐng)求。數(shù)據(jù)文件代替被存儲(chǔ)在本地盤上改為被存儲(chǔ)在網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)130中。對(duì)于所請(qǐng)求的每ー個(gè)文件,在盤126上動(dòng)態(tài)創(chuàng)建稀疏文件127。如上文所說明的,稀疏文件是僅包括文件名和大小但不包括實(shí)際文件數(shù)據(jù)的占位符文件。占位符滿足用于確定文件是否存在的虛擬應(yīng)用初始請(qǐng)求。當(dāng)虛擬應(yīng)用滿足于文件存在(在它讀取了稀疏文件之后)時(shí),應(yīng)用在讀取請(qǐng)求111中請(qǐng)求文件的實(shí)際數(shù)據(jù)。截取讀取請(qǐng)求的這ー過程可對(duì)應(yīng)用的每ー個(gè)文件發(fā)生。由此,當(dāng)每ー個(gè)文件都需要吋,每ー個(gè)文件可被動(dòng)態(tài)流傳輸?shù)教摂M應(yīng)用。文件可單個(gè)或多個(gè)流傳輸。在某些情況下,可并行地請(qǐng)求和流傳輸多個(gè)數(shù)據(jù)文件。當(dāng)讀取請(qǐng)求在數(shù)據(jù)I/O過濾器處被接收時(shí),該請(qǐng)求被轉(zhuǎn)換成由I/o過濾器截取的內(nèi)核模式I/O請(qǐng)求。數(shù)據(jù)I/O過濾器隨后將被截取的讀取請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)130,網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)130被配置成返回特定的數(shù)據(jù)文件131 (動(dòng)作230)。在某些情況下,被截取的請(qǐng)求可被轉(zhuǎn)發(fā)給用戶模式服務(wù)115,用戶模式服務(wù)115位于網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)I/O過濾器之間。用戶模式服務(wù)可在用戶計(jì)算機(jī)系統(tǒng)上運(yùn)行或者在另ー網(wǎng)絡(luò)鏈接的計(jì)算機(jī)系統(tǒng)上運(yùn)行。系統(tǒng)從數(shù)據(jù)I/O過濾器接收數(shù)據(jù)請(qǐng)求111并將請(qǐng)求轉(zhuǎn)發(fā)到網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)上。服務(wù)還可用于從網(wǎng)絡(luò)存儲(chǔ)接收所請(qǐng)求的數(shù)據(jù)并將其傳遞到數(shù)據(jù)I/O過濾器上。在某些情況下,網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)可包括云(或因特網(wǎng)),并且由此,指定數(shù)據(jù)文件可使用超文本傳輸協(xié)議(HTTP)從云/因特網(wǎng)檢索。隨后,在從網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)接收到指定數(shù)據(jù)文件之后,I/O過濾器將指定數(shù)據(jù)文件發(fā)送給虛擬軟件應(yīng)用,以使得指定數(shù)據(jù)文件可由虛擬應(yīng)用響應(yīng)于其讀取請(qǐng)求來使用(動(dòng)作240)。因此,數(shù)據(jù)請(qǐng)求111可在被發(fā)送給盤之前被截取,并且被轉(zhuǎn)發(fā)給從本地或遠(yuǎn)程數(shù)據(jù)存儲(chǔ)130抓取數(shù)據(jù)的服務(wù)。服務(wù)將被抓取的數(shù)據(jù)131轉(zhuǎn)發(fā)回I/O過濾器,并且I/O過濾器將數(shù)據(jù)轉(zhuǎn)發(fā)給虛擬應(yīng)用110。由此,應(yīng)用文件可被動(dòng)態(tài)流傳輸?shù)接脩舻挠?jì)算機(jī)系統(tǒng)(具體地被流傳輸?shù)教摂M應(yīng)用)而不必被存儲(chǔ)在本地計(jì)算機(jī)系統(tǒng)的文件系統(tǒng)上。動(dòng)態(tài)地從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)檢索的每ー個(gè)數(shù)據(jù)文件對(duì)于虛擬軟件應(yīng)用而言看上去就像是該數(shù)據(jù)文件是從計(jì)算機(jī)系統(tǒng)的文件系統(tǒng)接收的一祥。另外地或另選地,本地計(jì)算機(jī)系統(tǒng)上的應(yīng)用服務(wù)或I/O過濾器可提供轉(zhuǎn)換或以其他方式修改接收到的數(shù)據(jù)以確保該數(shù)據(jù)可由本地計(jì)算機(jī)系統(tǒng)讀取的服務(wù)。因?yàn)閼?yīng)用數(shù)據(jù)可用任何格式、任何加密類型和任何壓縮類型被存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)上,所以應(yīng)用服務(wù)或I/0過濾器可被配置成解壓縮、解密和/或重新格式化接收到的數(shù)據(jù)以將數(shù)據(jù)改變?yōu)榭勺x形式。這一服務(wù)也可按需執(zhí)行其他操作。以此方式,系統(tǒng)可在不對(duì)應(yīng)用的本機(jī)堆棧作出任何變更的情況下實(shí)現(xiàn)。
圖3示出了一種用于在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)的方法300的流程圖?,F(xiàn)在將頻繁參照?qǐng)D4的環(huán)境400的組件和數(shù)據(jù)來描述方法300。方法300包括從管理員用戶接收對(duì)于虛擬應(yīng)用的哪些指定部分要被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)中以及哪些部分要被存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)中的指示的動(dòng)作(動(dòng)作310)。例如,數(shù)據(jù)I/O過濾器420可從管理員用戶425接收對(duì)于虛擬應(yīng)用410的哪些指定部分要被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)426中以及哪些部分要被存儲(chǔ)在網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)430中的指示423。因此,在至少某些情況下,可能需要計(jì)算機(jī)管理員指定某些文件被本地地存儲(chǔ)在用戶的本地計(jì)算機(jī)系統(tǒng)上而某些數(shù)據(jù)文件被存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)上。管理員可指定哪些文件被存儲(chǔ)在哪里,并且當(dāng)用戶正在使用虛擬應(yīng)用410的同時(shí)可更新這ー判斷。由此,存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)426上的文件431可被移除,如果管理員這么指定的話。相反,數(shù)據(jù)文件可從網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)被移動(dòng)到本地?cái)?shù)據(jù)存儲(chǔ),如果管理員這么指定的話。應(yīng)該注意,當(dāng)提及數(shù)據(jù)文件被本地存儲(chǔ)時(shí),文件被作為只包含文件名和大小信息的空稀疏文件而被本地地存儲(chǔ)并且存在于盤上稀疏。管理員還可更新網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)430上的應(yīng)用分組。隨后,下一次經(jīng)更新的文件被虛擬應(yīng)用請(qǐng)求時(shí),經(jīng)更新的文件就代替舊的版本被提供。由此,虛擬應(yīng)用可通過切換到新的應(yīng)用分組來更新。這些經(jīng)更新的文件可被提供給稍后訪問這些文件的所有用戶。新的文件在本地文件系統(tǒng)上被創(chuàng)建以代替需要更新的任何本地文件。方法300還包括生成元數(shù)據(jù)的ー個(gè)或多個(gè)部分的動(dòng)作(動(dòng)作320),所述元數(shù)據(jù)描述了虛擬應(yīng)用的哪些指定部分被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)上。本地計(jì)算機(jī)系統(tǒng)可生成元數(shù)據(jù)421,所述元數(shù)據(jù)421由數(shù)據(jù)I/O過濾器用來確定要將接收自虛擬應(yīng)用410的數(shù)據(jù)請(qǐng)求411轉(zhuǎn)發(fā)到哪里。對(duì)于每ー個(gè)文件,元數(shù)據(jù)指示數(shù)據(jù)文件被(或本地地426或遠(yuǎn)程地430)存儲(chǔ)在哪里。因此,當(dāng)數(shù)據(jù)I/O過濾器從虛擬應(yīng)用接收到數(shù)據(jù)請(qǐng)求時(shí),代替自動(dòng)將請(qǐng)求轉(zhuǎn)發(fā)到用戶模式服務(wù)115 (或直接轉(zhuǎn)發(fā)給網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)),數(shù)據(jù)I/O過濾器改為訪問元數(shù)據(jù)421以確定數(shù)據(jù)是被本地存儲(chǔ)還是被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)上。如果數(shù)據(jù)被本地存儲(chǔ),則數(shù)據(jù)請(qǐng)求被發(fā)送到本地文件系統(tǒng)。如果數(shù)據(jù)被遠(yuǎn)程存儲(chǔ),則數(shù)據(jù)請(qǐng)求被發(fā)送到網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)。因此,如上所說明的,管理員425可指示每ー個(gè)文件要被存儲(chǔ)在哪里,并且當(dāng)管理員作出選擇時(shí)將管理員的選擇通知給數(shù)據(jù)I/O過濾器(經(jīng)由指示423)。因此,當(dāng)管理員分配數(shù)據(jù)文件時(shí),元數(shù)據(jù)可被持續(xù)更新,并且數(shù)據(jù)I/O過濾器可基于經(jīng)更新的元數(shù)據(jù)來正確地轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求。因此,如上所述,數(shù)據(jù)文件請(qǐng)求411可從提出對(duì)指定數(shù)據(jù)文件的數(shù)據(jù)的請(qǐng)求的虛擬應(yīng)用接收(動(dòng)作330)。數(shù)據(jù)I/O過濾器420隨后可基于所生成的元數(shù)據(jù)421來確定指定數(shù)據(jù)文件是被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)426上還是被存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)存儲(chǔ)430上(動(dòng)作340)?;谶@ー確定,數(shù)據(jù)I/O過濾器將數(shù)據(jù)文件請(qǐng)求或發(fā)送給本地?cái)?shù)據(jù)存儲(chǔ)或發(fā)送給遠(yuǎn)程數(shù)據(jù)存儲(chǔ)(動(dòng)作350)。數(shù)據(jù)文件請(qǐng)求可單個(gè)或多個(gè)接收,并且可單個(gè)或多個(gè)被轉(zhuǎn)發(fā)到合適的數(shù)據(jù)存儲(chǔ)。類似地,數(shù)據(jù)431可作為單個(gè)文件或作為文件組被接收。在某些情況下,不同的數(shù)據(jù)請(qǐng)求可同時(shí)被發(fā)送給本地?cái)?shù)據(jù)存儲(chǔ)和遠(yuǎn)程數(shù)據(jù)存儲(chǔ)兩者。當(dāng)數(shù)據(jù)請(qǐng)求由各自數(shù)據(jù)存儲(chǔ)滿足吋,數(shù)據(jù)可被發(fā)送回?cái)?shù)據(jù)I/O過濾器,并且隨后作為單個(gè)文件或文件組被發(fā)送到虛擬應(yīng)用上。在某些情況下,數(shù)據(jù)可從本地?cái)?shù)據(jù)存儲(chǔ)和遠(yuǎn)程網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)中的任一個(gè)或兩者來流傳輸。當(dāng)接收來自遠(yuǎn)程數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)時(shí),數(shù)據(jù)被傳遞給該虛擬應(yīng)用而無需在本地?cái)?shù)據(jù)存儲(chǔ)上存儲(chǔ)任何數(shù)據(jù)。
由此,提供了動(dòng)態(tài)遞送虛擬軟件應(yīng)用的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。當(dāng)用戶使用虛擬應(yīng)用時(shí),數(shù)據(jù)文件按照虛擬應(yīng)用的需要被動(dòng)態(tài)且自動(dòng)地從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)進(jìn)行流傳輸。此外,提供了允許在本地和網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)之間的動(dòng)態(tài)數(shù)據(jù)分配的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明可體現(xiàn)為其他具體形式而不背離其精神或本質(zhì)特征。所述實(shí)施例在所有方面都應(yīng)被認(rèn)為只是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而非以上描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變都涵蓋在權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
1.一種在包括多個(gè)計(jì)算系統(tǒng)的計(jì)算機(jī)聯(lián)網(wǎng)環(huán)境中、在包括至少一個(gè)處理器和存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)處的、用于動(dòng)態(tài)遞送虛擬軟件應(yīng)用的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括建立數(shù)據(jù)輸入/輸出(I/o)過濾器的動(dòng)作,所述數(shù)據(jù)輸入/輸出(I/O)過濾器被配置成截取從虛擬軟件應(yīng)用發(fā)送給操作系統(tǒng)的文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求;數(shù)據(jù)I/o過濾器截取被配置成從所述文件系統(tǒng)檢索指定數(shù)據(jù)文件的數(shù)據(jù)文件讀取請(qǐng)求的動(dòng)作;數(shù)據(jù)I/o過濾器將被截取的讀取請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)的動(dòng)作,所述網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)被配置成返回特定的數(shù)據(jù)文件;以及在從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到所述指定數(shù)據(jù)文件之后,I/o過濾器將所述指定數(shù)據(jù)文件發(fā)送給所述虛擬軟件應(yīng)用,以使得所述指定數(shù)據(jù)文件可由所述虛擬應(yīng)用響應(yīng)于其讀取請(qǐng)求來使用的動(dòng)作。
2.如權(quán)利要求1所述的方法,其特征在于,多個(gè)數(shù)據(jù)文件被截取并流傳輸以動(dòng)態(tài)提供虛擬軟件應(yīng)用所需的每一個(gè)文件。
3.如權(quán)利要求1所述的方法,其特征在于,從所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到的所述數(shù)據(jù)文件不被存儲(chǔ)在計(jì)算機(jī)系統(tǒng)的文件系統(tǒng)上。
4.如權(quán)利要求1所述的方法,其特征在于,動(dòng)態(tài)地從所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)檢索的每一個(gè)數(shù)據(jù)文件對(duì)于所述虛擬軟件應(yīng)用而言看上去就像是所述數(shù)據(jù)文件是從所述計(jì)算機(jī)系統(tǒng)的文件系統(tǒng)接收的一樣。
5.如權(quán)利要求1所述的方法,其特征在于,所述I/O數(shù)據(jù)過濾器在不對(duì)所述軟件應(yīng)用如何請(qǐng)求數(shù)據(jù)文件作出變更的情況下實(shí)現(xiàn)。
6.如權(quán)利要求1所述的方法,其特征在于,所請(qǐng)求的數(shù)據(jù)文件從所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)被流傳輸?shù)剿鲇?jì)算機(jī)系統(tǒng)。
7.如權(quán)利要求1所述的方法,其特征在于,被截取的請(qǐng)求被發(fā)送給用戶模式服務(wù),所述用戶模式服務(wù)被配置成將所述請(qǐng)求轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)并且從所述網(wǎng)絡(luò)存儲(chǔ)接收所請(qǐng)求的數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其特征在于,所述用戶模式服務(wù)將接收到的數(shù)據(jù)轉(zhuǎn)發(fā)給 I/O過濾器,所述I/O過濾器將所述數(shù)據(jù)轉(zhuǎn)發(fā)給所述虛擬應(yīng)用。
9.如權(quán)利要求1所述的方法,其特征在于,所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)包括云,并且其中所述指定數(shù)據(jù)文件使用超文本傳輸協(xié)議從所述云檢索。
10.一種在包括多個(gè)計(jì)算系統(tǒng)的計(jì)算機(jī)聯(lián)網(wǎng)環(huán)境中、在包括至少一個(gè)處理器和存儲(chǔ)器的客戶機(jī)計(jì)算機(jī)系統(tǒng)處、用于在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括從管理員用戶接收對(duì)于虛擬應(yīng)用的哪些指定部分要被存儲(chǔ)在本地?cái)?shù)據(jù)存儲(chǔ)中以及哪些部分要被存儲(chǔ)在網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)中的指示的動(dòng)作;生成元數(shù)據(jù)的一個(gè)或多個(gè)部分的動(dòng)作,所述元數(shù)據(jù)描述了所述虛擬應(yīng)用的哪些指定部分要被存儲(chǔ)在所述本地?cái)?shù)據(jù)存儲(chǔ)上;從對(duì)指定數(shù)據(jù)文件的數(shù)據(jù)提出請(qǐng)求的虛擬應(yīng)用接收數(shù)據(jù)文件請(qǐng)求的動(dòng)作;基于所生成的元數(shù)據(jù)來確定所述指定數(shù)據(jù)文件被存儲(chǔ)在所述本地?cái)?shù)據(jù)存儲(chǔ)上還是被存儲(chǔ)在所述遠(yuǎn)程數(shù)據(jù)存儲(chǔ)上的動(dòng)作;以及基于所述確定,將所述數(shù)據(jù)文件請(qǐng)求發(fā)送給所述本地?cái)?shù)據(jù)存儲(chǔ)和所述遠(yuǎn)程數(shù)據(jù)存儲(chǔ)中的至少一個(gè)。
11.如權(quán)利要求10所述的方法,其特征在于,所述管理員用戶通過替換所述應(yīng)用分組來更新所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)上的應(yīng)用。
12.如權(quán)利要求11所述的方法,其特征在于,所述本地計(jì)算機(jī)系統(tǒng)上的本地服務(wù)被配置成執(zhí)行以下各項(xiàng)中的至少一項(xiàng)來確保所述數(shù)據(jù)能夠由所述本地計(jì)算機(jī)系統(tǒng)讀取解密所述數(shù)據(jù)文件、重新格式化所述數(shù)據(jù)文件、以及解壓縮所述數(shù)據(jù)文件。
13.一種計(jì)算機(jī)系統(tǒng),包括 一個(gè)或多個(gè)處理器; 系統(tǒng)存儲(chǔ)器; 其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由所述一個(gè)或多個(gè)處理器執(zhí)行時(shí)致使所述計(jì)算系統(tǒng)執(zhí)行一種用于動(dòng)態(tài)遞送虛擬軟件應(yīng)用的方法,所述方法包括 建立數(shù)據(jù)輸入/輸出(I/O)過濾器的動(dòng)作,所述數(shù)據(jù)輸入/輸出(I/O)過濾器被配置成截取從虛擬軟件應(yīng)用(110)發(fā)送給文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求(111); 數(shù)據(jù)I/o過濾器截取被配置成從所述文件系統(tǒng)檢索指定數(shù)據(jù)文件的數(shù)據(jù)文件讀取請(qǐng)求的動(dòng)作; 在所述文件系統(tǒng)上創(chuàng)建所請(qǐng)求的數(shù)據(jù)文件的稀疏文件的動(dòng)作,所述稀疏文件包括含有所述文件名和大小的所請(qǐng)求的數(shù)據(jù)文件的占位符信息; 向所述虛擬軟件應(yīng)用指示所述文件存在的動(dòng)作,所述指示包括所請(qǐng)求的數(shù)據(jù)文件的文件名和大??; 從所述虛擬軟件應(yīng)用接收對(duì)所請(qǐng)求的數(shù)據(jù)文件的實(shí)際數(shù)據(jù)內(nèi)容的請(qǐng)求的動(dòng)作; 將被截取的數(shù)據(jù)讀取請(qǐng)求轉(zhuǎn)發(fā)給用戶模式服務(wù)的動(dòng)作,所述用戶模式服務(wù)將所述數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給被配置成返回具體的數(shù)據(jù)文件的網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ);以及 在所述用戶模式服務(wù)處從所述網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到所述指定數(shù)據(jù)文件之后,用戶模式服務(wù)將所述數(shù)據(jù)文件內(nèi)容轉(zhuǎn)發(fā)給所述I/o過濾器的動(dòng)作,所述I/O過濾器將所述數(shù)據(jù)文件內(nèi)容發(fā)送給所述虛擬軟件應(yīng)用,以使得所述指定數(shù)據(jù)文件可由所述虛擬應(yīng)用響應(yīng)于其讀取請(qǐng)求來使用。
14.如權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其特征在于,所請(qǐng)求的數(shù)據(jù)文件被流傳輸?shù)教摂M軟件應(yīng)用而不必將任何數(shù)據(jù)文件內(nèi)容保存在所述文件系統(tǒng)上。
15.如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其特征在于,當(dāng)用戶使用虛擬軟件應(yīng)用時(shí),數(shù)據(jù)文件按照所述虛擬應(yīng)用的需要被動(dòng)態(tài)且自動(dòng)地從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)進(jìn)行流傳輸。
全文摘要
本發(fā)明涉及自治網(wǎng)絡(luò)流傳輸。各實(shí)施例涉及動(dòng)態(tài)遞送虛擬軟件應(yīng)用以及在本地和網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)之間分配應(yīng)用數(shù)據(jù)。在一種場(chǎng)景中,計(jì)算機(jī)系統(tǒng)建立數(shù)據(jù)輸入/輸出(I/O)過濾器,所述數(shù)據(jù)輸入/輸出(I/O)過濾器被配置成截取從虛擬軟件應(yīng)用發(fā)送給操作系統(tǒng)的文件系統(tǒng)的數(shù)據(jù)文件請(qǐng)求。數(shù)據(jù)I/O過濾器截取被配置成從文件系統(tǒng)檢索指定數(shù)據(jù)文件的數(shù)據(jù)文件讀取請(qǐng)求。數(shù)據(jù)I/O過濾器將被截取的讀取請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ),網(wǎng)絡(luò)可訪問的數(shù)據(jù)存儲(chǔ)被配置成返回特定的數(shù)據(jù)文件。隨后,在從網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)接收到指定數(shù)據(jù)文件之后,I/O過濾器將指定數(shù)據(jù)文件發(fā)送給虛擬軟件應(yīng)用。以此方式,指定數(shù)據(jù)文件可由虛擬應(yīng)用使用。
文檔編號(hào)G06F17/30GK103020235SQ20121054599
公開日2013年4月3日 申請(qǐng)日期2012年12月14日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者P·A·摩根 申請(qǐng)人:微軟公司