專利名稱::用于在應(yīng)用程序的預(yù)定數(shù)量的執(zhí)行方法之間選擇的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及用于執(zhí)行應(yīng)用程序的方法,具體而言,涉及用于在應(yīng)用程序的預(yù)定數(shù)量的執(zhí)行方法之間進行選擇的方法。
背景技術(shù):
:現(xiàn)代企業(yè)環(huán)境的管理員在提供對應(yīng)用程序的訪問時可能面對很多挑戰(zhàn)。其中的一項挑戰(zhàn)涉及向最終執(zhí)行應(yīng)用的環(huán)境提供并維護(即更新)應(yīng)用的問題,因為大量的機器具有不同的執(zhí)行環(huán)境,所述的不同的執(zhí)行環(huán)境又具有對多個公司網(wǎng)的不同類型的訪問。第二項挑戰(zhàn)涉及在目標(biāo)機上提供某種環(huán)境,從而在不干擾其他可能存在抵觸要求的應(yīng)用程序的情況下實現(xiàn)應(yīng)用程序的執(zhí)行,或者使應(yīng)用程序能夠在并非被設(shè)計為運行所述應(yīng)用程序的環(huán)境下得到執(zhí)行(即,使單用戶應(yīng)用在多用戶操作系統(tǒng)中隔離運行)。大量應(yīng)用程序的提供和更新給信息技術(shù)(IT)部門帶來了很多困擾。一種困擾包括怎樣為不同的執(zhí)行環(huán)境提供應(yīng)用,所述執(zhí)行環(huán)境包括個人計算機(執(zhí)行很多種不同類型的操作系統(tǒng))、服務(wù)器、刀片機或虛擬機。另一種困擾包括如何更新已經(jīng)交付的應(yīng)用。對于更新頻繁的企業(yè)應(yīng)用而言,在不同類型的目標(biāo)機上安裝應(yīng)用的升級版本可能即昂貴又耗時。另一項挑戰(zhàn)是針對訪問請求進行集中開發(fā)和應(yīng)用的企業(yè)策略。典型的企業(yè)環(huán)境中的另一項困擾是在采用了大量的具有不同要求的應(yīng)用的環(huán)境中應(yīng)用之間的兼容性。IT部門在向支持不同執(zhí)行環(huán)境的目標(biāo)機部署應(yīng)用程序時,以及在每一應(yīng)用程序具有不同的、可能存在抵觸的安裝要求的情況下執(zhí)行可用應(yīng)用程序的不同子集時可能面臨很多挑戰(zhàn)。確保與各種企業(yè)策略的順應(yīng)性又給典型企業(yè)環(huán)境的管理員帶來了更多的困擾。針對各個應(yīng)用,對目標(biāo)機上的具體應(yīng)用程序進行評估和授權(quán)可能是不切實際的。我們希望能夠獲得一種集中式系統(tǒng),其能夠在安裝或執(zhí)行具體的應(yīng)用程序之前實現(xiàn)目標(biāo)機的自動評估,以判斷與(例如)安全策略或?qū)@褂迷S可的順應(yīng)性。還希望獲得這樣一種方法,其能將應(yīng)用一次性安裝到代表性目標(biāo)機上,并且夠響應(yīng)于具體目標(biāo)機的應(yīng)用訪問請求將應(yīng)用交付給各種目標(biāo)環(huán)境。我們還希望使策略的集中應(yīng)用能夠提供對應(yīng)用的水平不一的訪問,包括響應(yīng)于應(yīng)用程序的要求或本地機的特征來選擇執(zhí)行應(yīng)用的不同方法。
發(fā)明內(nèi)容本發(fā)明涉及一種用于在應(yīng)用程序的預(yù)定數(shù)量執(zhí)行方法之間進行選擇的方法。在一個方面中,本發(fā)明涉及一種通過遠程機進行選擇的方法,一種執(zhí)行應(yīng)用程序的方法。接收與本地機關(guān)聯(lián)的信任狀(credential)。響應(yīng)于所接收的信任狀提供本地機可用的多個應(yīng)用的枚舉,接收請求以執(zhí)行被枚舉的應(yīng)用。響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于所述被枚舉的應(yīng)用的應(yīng)用流傳輸?shù)姆椒āT谝粋€實施例中,所述方法包括選擇將所述被枚舉的應(yīng)用流傳輸?shù)剿霰镜貦C的方法。在另一個實施例中,所述方法包括選擇用于將被枚舉的應(yīng)用流傳輸?shù)竭h程機的方法,舉的應(yīng)用而產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。在另一個方面中,用于在本地對文件元數(shù)據(jù)請求做出響應(yīng)而無須從遠程位置下載文件的方法包括從遠程機接收表示所述遠程機存儲的應(yīng)用程序的目錄結(jié)構(gòu)以及與包括所存儲應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù)。存儲所述目錄和元數(shù)據(jù)。接收至少一個訪問與目錄結(jié)構(gòu)中特定文件相關(guān)聯(lián)的元數(shù)據(jù)的請求。使用所存儲的元數(shù)據(jù)以對至少一個請求做出響應(yīng)。在一個實施例中,接收枚舉與本地應(yīng)用程序相關(guān)聯(lián)的目錄結(jié)構(gòu)的請求。用所存儲的目錄結(jié)構(gòu)對枚舉請求做出響應(yīng)。在另一個實施例中,元數(shù)據(jù)包括文件的文件名和文件的別名(alternatename)之間的映射。在另一個實施例中,利用所接收的元數(shù)據(jù)滿足標(biāo)識目錄結(jié)構(gòu)中的根節(jié)點的請求。在又一個實施例中,接收確定本地是否有包括所存儲的應(yīng)用程序的文件拷貝的請求。訪問所存儲的元數(shù)據(jù)并給出偽裝指示,表示本地沒有文件拷貝。在又一個方面中,用于在本地對文件元數(shù)據(jù)請求做出響應(yīng)而無須從遠程位置下栽文件的系統(tǒng)包括目錄結(jié)構(gòu)、高速緩沖存儲器元件和文件系統(tǒng)過濾器驅(qū)動程序。目錄結(jié)構(gòu)標(biāo)識與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件并包括與所述多個文件中的至少一個相關(guān)聯(lián)的文件元數(shù)據(jù),所述多個文件中的至少一個駐留在遠程機上。高速緩沖存儲器元件存儲目錄結(jié)構(gòu)。文件系統(tǒng)過濾器驅(qū)動程序攔截訪問與至少一個遠程存儲的文件相關(guān)聯(lián)的元數(shù)據(jù)的請求,訪問高速緩沖存儲器元件并利用所存儲的目錄結(jié)構(gòu)對至少一個請求做出響應(yīng)。在一個實施例中,所述目錄結(jié)構(gòu)包括與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件,所述多個文件駐留在遠程機上。在另一個實施例中,文件元數(shù)據(jù)包括用于對標(biāo)識目錄結(jié)構(gòu)中的根節(jié)點的請求做出響應(yīng)的信息。在又一個方面中,用于訪問與應(yīng)用相關(guān)聯(lián)的目錄結(jié)構(gòu)中的文件的方法包括攔截應(yīng)用訪問文件的請求的步驟。將該請求重定向到第一隔離環(huán)境。做出第一隔離環(huán)境中不存在所請求文件的判斷。響應(yīng)于在包括駐留在遠程機上的多個應(yīng)用文件的目錄結(jié)構(gòu)枚舉中標(biāo)識該文件的判斷,將所述請求重定向到第二隔離環(huán)境。響應(yīng)于所述第二隔離環(huán)境不含所述文件且在枚舉中標(biāo)識該文件的判斷,從文件服務(wù)器檢索所請求的文件。在一個實施例中,請求訪問文件的應(yīng)用是能夠接收流傳輸?shù)膽?yīng)用文件的應(yīng)用。在另一個實施例中,請求訪問文件的應(yīng)用是本地機的用戶所請求的應(yīng)用。在又一個實施例中,在第一隔離環(huán)境中存儲所請求的文件。在又一個實施例中,在第二隔離環(huán)境中存儲所請求的文件。在一些實施例中,攔截應(yīng)用訪問可執(zhí)行文件的請求。在其他實施例中,拄截應(yīng)用訪問文件的請求,在本地機上執(zhí)行所述應(yīng)用的一部分。在一個實施例中,攔截由第三隔離環(huán)境中執(zhí)行的另一應(yīng)用提出的請求。響應(yīng)于在所述枚舉中枚舉該文件且所述第二隔離環(huán)境不含所述文件的判斷,將所述請求重定向到所述第二隔離環(huán)境。第二隔離環(huán)境為應(yīng)用提供對文件的訪問。在另一個實施例中,該文件為可執(zhí)行文件。在一些實施例中,多個應(yīng)用文件包括第二應(yīng)用。在其他實施例中,該應(yīng)用是應(yīng)用流傳輸客戶端。在其他實施例中,應(yīng)用流傳輸客戶端請求并執(zhí)行可執(zhí)行文件以在本地機上執(zhí)行第二應(yīng)用的實例。在一個方面中,一種用于訪問與應(yīng)用相關(guān)聯(lián)的目錄結(jié)構(gòu)中的文件的系統(tǒng)包括第一隔離環(huán)境、第二隔離環(huán)境、過濾器驅(qū)動程序和收發(fā)器。在第一隔離環(huán)境中,應(yīng)用執(zhí)行并請求訪問文件。第二隔離環(huán)境存儲與安裝在遠程機上的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)的枚舉。過濾器驅(qū)動程序響應(yīng)于在目錄結(jié)構(gòu)枚舉中標(biāo)識該文件的判斷,攔截訪問文件的請求,將該請求重定向到第一隔離環(huán)境,判定所請求的文件不存在于第一隔離環(huán)境中并將該請求重定向到第二隔離環(huán)境。與所述過濾器驅(qū)動程序通信的收發(fā)器,所述收發(fā)器響應(yīng)于所述過濾器驅(qū)動程序做出的所述第二隔離環(huán)境不含所述文件且在所述枚舉中標(biāo)識該文件的判斷,向文件服務(wù)器發(fā)送所述重定向的請求并響應(yīng)于所述請求接收包括所請求的文件的流。在一個方面中,一種用于由本地機訪問包括應(yīng)用程序的多個文件的方法包括本地機接收包括訪問信息的文件的步驟,該訪問信息用于訪問多個應(yīng)用文件并執(zhí)行能夠接收應(yīng)用流的第一客戶端。響應(yīng)于所述文件檢索所述多個應(yīng)用文件的標(biāo)識。響應(yīng)于所述文件檢索執(zhí)行所述多個應(yīng)用所需的至少一個特征。做出本地機是否包括至少一個特征的判斷。響應(yīng)于所述本地機缺少所述至少一個特征的判斷執(zhí)行第二客戶端,所述第二客戶端請求在遠程機上執(zhí)行所述多個應(yīng)用文件。在一個實施例中,響應(yīng)于所檢索的多個應(yīng)用文件的標(biāo)識檢索至少一個特征。在另一個實施例中,響應(yīng)于對本地機的評估做出本地機是否包括至少一個特征的判斷。在又一個實施例中,本地機評估本地機。在又一個實施例中,響應(yīng)于被評估的本地機缺少接收多個應(yīng)用文件以在本地執(zhí)行的授權(quán)這一判斷,做出決定,執(zhí)行第二客戶端而非第一客戶端。在另一個方面中,一種用于訪問包括應(yīng)用程序的多個文件的系統(tǒng)包括文件、第一客戶端和第二客戶端。該文件包括用于訪問多個應(yīng)用文件的訪問信息。能夠接收應(yīng)用流的第一客戶端接收所述文件、響應(yīng)至少二個特征,并判斷所述本地機是否包括所述至少l個特征。第二客戶端響應(yīng)于所述第一客戶端做出的所述本地機缺少所述至少一個特征的判斷從第一客戶端接收該文件并請求在遠程機上執(zhí)行所述多個應(yīng)用文件。在一個實施例中,第一客戶端評估本地機以判斷本地機是否包括至少一個特征。在另一個實施例中,第一客戶端向本地機采用策略以做出判斷。在又一個實施例中,第二客戶端接收在遠程機上執(zhí)行多個應(yīng)用文件所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。在又一個實施例中,第二客戶端包括在本地機上顯示從遠程機接收的應(yīng)用輸出數(shù)據(jù)的功能。通過下文的詳細說明和附圖,本發(fā)明的這些和其他方面將變得顯而易見,其中,所述附圖的作用在于對本發(fā)明進行舉例說明,而不是限制本發(fā)明,其中圖1A是示出了適于實現(xiàn)本發(fā)明的示范性實施例的環(huán)境的方框圖;圖1B和1C是示出了可以結(jié)合本發(fā)明使用的計算機的實施例的方框圖;圖1D是示出了利用本發(fā)明的服務(wù)器農(nóng)場(serverfarm)的實施例的方框圖;圖IE是示出了用于通過在web服務(wù)目錄中公布GUI來提供可以為本地機所使用的多個應(yīng)用程序的系統(tǒng)的一個實施例的方框圖;圖2是示出了選擇應(yīng)用程序的執(zhí)行方法所采用的步驟的一個實施例的流程圖;圖3A是示出了本地機通過萬維網(wǎng)(WorldwideWeb)啟動執(zhí)行程序鄰域應(yīng)用的一個實施例的方框圖;圖3B是示出了本地機利用web服務(wù)目錄訪問枚舉的應(yīng)用程序所采取的步驟的一個實施例的流程圖;圖4A是為本地機提供對應(yīng)用程序的基于策略的訪問的網(wǎng)絡(luò)實施例的方框圖;圖4B是示出了策略引擎更詳細實施例的方框圖;圖4C是示出了策略引擎基于所接收到的關(guān)于本地機的信息做出訪問控制決定所采取的步驟的一個實施例的流程圖;圖4D是示出了其中提供對多個應(yīng)用會話的授權(quán)遠程訪問的計算機網(wǎng)絡(luò)實施例的方框圖;圖4E是示出了會話服務(wù)器將本地機與其相關(guān)應(yīng)用會話連接起來所采取的步驟的一個實施例的流程圖;圖5是示出了會話服務(wù)器將客戶端節(jié)點與其相關(guān)應(yīng)用會話連接起來所采取的步驟的一個實施例的流程圖;圖6是示出了包括管理服務(wù)、提供應(yīng)用枚舉的遠程機的一個實施例的方框圖;圖7是示出了訪問包括應(yīng)用程序的多個文件所采取的步驟的一個實施例的流程圖;圖8A是示出了在操作系統(tǒng)控制下運行的計算機的一個實施例的方框圖,該操作系統(tǒng)具有應(yīng)用兼容性和應(yīng)用交際性降低的問題;圖8B是示出了具有應(yīng)用兼容性和應(yīng)用交際性降低的問題的多用戶計算機的方框圖;圖8C是示出了用于將過程與隔離范圍相關(guān)聯(lián)的方法中所采取的步驟的一個實施例的流程圖;圖9是示出了在執(zhí)行應(yīng)用程序的方法中采取的步驟的一個實施例的流程圖;圖IO是示出了駐留在遠程機上的多個應(yīng)用文件的一個實施例的流程圖;圖ll是示出了對與遠程存儲的文件相關(guān)的文件元數(shù)據(jù)的請求在本地做出響應(yīng)的方法中采取的步驟的一個實施例的流程圖;圖12是示出了對與遠程存儲的文件相關(guān)的文件元數(shù)據(jù)的請求在本地做出響應(yīng)的系統(tǒng)的一個實施例的方框圖;圖13是示出了用于訪問目錄結(jié)構(gòu)中與本地執(zhí)行的應(yīng)用程序相關(guān)的遠程文件的方法中采取的步驟的一個實施例的流程圖;圖14是示出了用于訪問與應(yīng)用相關(guān)的目錄結(jié)構(gòu)中的文件的系統(tǒng)的一個實施例的方框圖;圖15是包括許可管理子系統(tǒng)的遠程機的一個實施例的方框圖;圖16是示出了遠程機上的管理服務(wù)中的部件的一個實施例的方框圖;圖17是示出了從遠程機請求和維持許可所采取的步驟的一個實施例的流程圖;圖18是示出了可能與管理服務(wù)監(jiān)測的會話相關(guān)的狀態(tài)的一個實施例的方框圖;圖19是示出了包括兩個目標(biāo)的程序包(package)的方框圖,每個目標(biāo)包括多個包括應(yīng)用的應(yīng)用文件;圖20是示出了用于無須重新引導(dǎo)操作系統(tǒng)來安裝應(yīng)用程序的基于策略的方法中采取的步驟的一個實施例的流程圖;圖21是示出了用于無須重新引導(dǎo)操作系統(tǒng)來安裝應(yīng)用程序的基于策略的方法中采取的步驟的一個實施例的流程圖;圖22是示出了枚舉腳本以在本地機上執(zhí)行的一個實施例的屏幕快照;圖23是示出了包括打包機構(gòu)(packagingmechanism)的系統(tǒng)實施例的方框圖,該打包機構(gòu)將安裝程序執(zhí)行到隔離環(huán)境中;圖24是示出了其中執(zhí)行安裝程序需要重新引導(dǎo)操作系統(tǒng)的環(huán)境中采取的步驟的一個實施例的流程圖;圖25是示出了打包機構(gòu)向其上安裝應(yīng)用程序的遠程機的一個實施例的方框圖;以及圖26是示出了在應(yīng)用隔離環(huán)境中安裝應(yīng)用所采取的步驟的一個實施例的^危程圖。具體實施方式本發(fā)明的示范性實施例適用于分布式連網(wǎng)環(huán)境,其中,本地機的用戶請求訪問存儲在遠程機上的應(yīng)用。在討論本發(fā)明的細節(jié)之前,首先來討論一下可以采用本發(fā)明的示范性實施例的一些網(wǎng)絡(luò)環(huán)境.圖1A是示出了適于實現(xiàn)本發(fā)明的示范性實施例的環(huán)境的方框圖。本地機10或20的用戶能夠連接至遠程機,例如遠程機30、30'、30"或30〃'(下文統(tǒng)稱為遠程機30)。盡管圖1A所示的實施例中僅示出了兩個本地機10和20,以及四個遠程機30,但是應(yīng)當(dāng)理解,對于這些部件中的任何一種或每一種,所述系統(tǒng)都可以提供多個。例如,在一個實施例中,所述系統(tǒng)可以包括多個邏輯分組的遠程機30,可以采用其中的一個或多個代表本地機10、20執(zhí)行應(yīng)用。在這些實施例中,可以將遠程機的邏輯組稱為"服務(wù)器農(nóng)場(serverfarm),,,在圖1A中將其表示為農(nóng)場38。在一些實施例中,遠程機30在地理上可以是分散的。可以將農(nóng)場38作為一個整體進行管理。每一農(nóng)場38中的遠程機30可以是不同種類的。也就是iJL,遠程可以按照某種類型的操作系統(tǒng)平臺(例如,由華盛頓雷德蒙的微軟公司制造的WINDOWSNT)工作,而其他遠程機30中的一個或多個可以根據(jù)另一種類型的操作系統(tǒng)平臺(例如,Unix或Linux)工作。構(gòu)成每一農(nóng)場38的遠程機30沒有必要在其農(nóng)場38內(nèi)彼此實際相鄰。因而,可以利用廣域網(wǎng)(WAN)連接或中等區(qū)域網(wǎng)(MAN)連接使在邏輯上組合成農(nóng)場38的由遠程機30構(gòu)成的組互連。例如,農(nóng)場38可以包括實際上處于不同的州、城市、學(xué)?;蚍块g的遠程機30。如果利用局域網(wǎng)(LAN)連接或某種形式的直接連接來連接遠程機30,那么可以提高農(nóng)場38內(nèi)的遠程機30之間的數(shù)據(jù)傳輸速度??梢詫⑦h程機30稱為服務(wù)器、文件服務(wù)器、應(yīng)用服務(wù)器或遠程機。在一些實施例中,遠程機30可以具有起著應(yīng)用服務(wù)器或主應(yīng)用服務(wù)器的作用的能力。在一個實施例中,遠程機30可以包括現(xiàn)用目錄(ActiveDirectory)。也可以將本地機10、20稱為客戶端節(jié)點或端點。在一些實施例中,本地機IO、20所具有的能力既能夠使其充當(dāng)尋求對應(yīng)用的訪問的客戶端節(jié)點,又能夠使其充當(dāng)為其他本地機提供對其持有的(hosted)應(yīng)用的訪問的應(yīng)用月艮務(wù)器。在一個實施例中,本地機10與農(nóng)場38中的遠程機30之一直接通信。在另一實施例中,本地機10通過執(zhí)行程序鄰域(neighborhood)應(yīng)用與農(nóng)場38中的遠程機30通信。在另一實施例中,遠程機30提供主節(jié)點的功能性。在一些實施例中,本地機10通過通信鏈路與農(nóng)場38中的遠程機30通信。本地機10可以通過通信線路150(例如)請求執(zhí)行農(nóng)場38中的遠程機30、3(K、30"和30"'所持有的各種應(yīng)用,并接收所述應(yīng)用的執(zhí)行結(jié)果的輸出,以供顯示。通信鏈路150可以是同步或非同步的,并且其可以是LAN連接、MAN(中等區(qū)域網(wǎng))連接或WAN連接。此外,通信鏈路150可以是無線鏈路,例如紅外信道或衛(wèi)星頻帶。在一些實施例中,只有主節(jié)點提供識別和提供與持有所請求的應(yīng)用的遠程機30'相關(guān)的地址信息所需的功能。在一些實施例中,本地才凡10與遠程機3(K"通信。在這些實施例之一中,遠程機3(T"提供web服務(wù)器的功能。在這些實施例的另一個當(dāng)中,遠程機3(K"接收來自本地機10的請求,將所述請求發(fā)送至遠程機30,并采用來自遠程機30的對所述請求的響應(yīng)來回應(yīng)所述的本地機10的請求。在這些實施例的另一個當(dāng)中的應(yīng)用的枚舉和與持有所述應(yīng)用枚舉所標(biāo)識的應(yīng)用的遠程機30'相關(guān)的地址信息。在這些實施例的另一個當(dāng)中,遠程機30'"利用web接口向本地機10提供對所述請求的響應(yīng)。在一個實施例中,本地機10與遠程機30'直接通信,以訪問所標(biāo)識的應(yīng)用。在另一實施例中,本地機IO接收來自遠程機30'"的應(yīng)用輸出數(shù)據(jù),所述應(yīng)用輸出數(shù)據(jù)是通過執(zhí)行遠程機3(K上的所標(biāo)識的應(yīng)用而得到的。在多個實施例中,將遠程機30以及本地機10和20設(shè)為個人計算機或計算機服務(wù)器,其可以具有加利福尼亞庫佩蒂諾的蘋果計算機公司、紐約白原市的IBM公司、加利福尼亞帕洛阿爾托的惠普公司或者得克薩斯州RoundRock的戴爾公司制造的類型。在一些實施例中,遠程機30可以是運行于諸如刀片服務(wù)器的服務(wù)器上的虛擬機。在這些實施例中,單個實際的服務(wù)器可以提供兩個或更多的應(yīng)用服務(wù)器。圖1B和1C示出了在這些實施例中可以被用作遠程機30或本地機10、20的典型計算機100的方框圖。如圖1B和1C所示,每一計算機100包括中央處理單元102和主存儲器l(M。每一計算機100還可以包括其他任選元件,例如,一個或多個輸入/輸出裝置130a-130n(統(tǒng)一采用附圖標(biāo)記130表示)和與中央處理單元102通信的高速緩沖存儲器140。中央處理單元102是對從主存儲器l(M中取出的指令作出響應(yīng)并處理所述指令的任何邏輯電路。在多個實施例中,通過微處理器單元提供所述中央處理單元,其中,所述微處理器單元可以是加利福尼亞芒廷維尤的Intel公司、伊利諾斯州紹姆堡的摩托羅拉公司、紐約白原市的IBM公司或者加利福尼亞桑尼維爾的AMD公司制造的。主存儲器104可以是能夠存儲數(shù)據(jù)并且允許通過微處理器102直接訪問任何存儲位置的一個或多個存儲芯片,例如,其可以是靜態(tài)隨機存取存儲器(SRAM)、脈沖串(burst)SRAM或同步脈沖串SRAM(BSRAM)、動態(tài)隨機存取存儲器(DRAM)、快速頁面式DRAM(FPMDRAM)、增強型DRAM(EDRAM)、擴展數(shù)據(jù)輸出RAM(EDORAM)、擴展數(shù)據(jù)輸出DRAM(EDODRAM)、脈沖串?dāng)U展數(shù)據(jù)輸出DRAM(BEDODRAM)、擴展DRAM(EDRAM)、同步DRAM(SDRAM)、JEDECSRAM、PC100SDRAM、雙數(shù)據(jù)率SDRAM(DDRSDRAM)、增強型SDRAM(ESDRAM)、同步鏈接DRAM(SLDRAM)、直接存儲器總線DRAM(DRDRAM)或鐵電RAM(FRAM)。在圖1B所示的實施例中,處理器102通過系統(tǒng)總線120(在下文中將對其給出更為詳細的說明)與主存儲器104通信。圖1C示出了計算機系統(tǒng)100的實施例,其中,處理器通過存儲器端口與主存儲器104直接通信。例如,在圖1C中,主存儲器104可以是DRDRAM。圖1B和圖1C示出了主處理器102通過次級總線與高速緩沖存儲器140直接通信,其中有時將次級總線稱為"后側(cè),,總線。在其他實施例中,主處理器102利用系統(tǒng)總線120與高速緩沖存儲器140通信.高速緩沖存儲器140通常具有比主存儲器104更快的響應(yīng)時間,并且通常通過SRAM、BSRAM或EDRAM實現(xiàn)。在圖1B所示的實施例中,處理器102通過局部系統(tǒng)總線120與各種I/O裝置130通信??梢圆捎酶鞣N總線將中央處理單元102連接至所述1/0裝置130,所述總線包括VESAVL總線、ISA總線、EISA總線、微信道架構(gòu)(MCA)總線、PCI總線、PCI-X總線、PCI-Express總線或NuBus。對于所述1/0裝置為視頻顯示器的實施例而言,處理器102可以采用加速圖形接口(AGP)與顯示器通信。圖1C示出了計算機系統(tǒng)100的實施例,其中,主處理器102通過HyperTransport、RapidI/O或InfiniBand與I/O裝置130b直接通信。圖1C還示出了混合了局域總線和直接通信的實施例處理器102在與1/0裝置130b直接通信的同時利用局域互連總線與1/0裝置130a通信。在計算機系統(tǒng)100中可以存在各種各樣的I/O裝置130。輸入裝置包括鍵盤、鼠標(biāo)、跟蹤板、跟蹤球、傳聲器和圖形輸入板。輸出裝置包體視頻顯示器、揚聲器、噴墨打印機、激光打印機和染料升華打印機。所述I/O裝置還可以為計算機系統(tǒng)100提供大容量存儲器,例如硬盤驅(qū)動器、用于接收諸如3.5寸盤、5.25寸盤或ZIP盤的軟盤的軟盤驅(qū)動器、CD-ROM驅(qū)動器、CD-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、各種格式的磁帶驅(qū)動器和USB存儲裝置,例如,所述USB存儲裝置可以是加利福尼亞LosAlamitos的TwintechIndustry公司制造的裝置的USBFlashDrive線或加利福尼亞庫佩蒂諾的蘋果計算機公司制造的裝置的iPodShuffle線。在其他實施例中,1/0裝置130可以是系統(tǒng)總線120和外部通信總線之間的橋梁,例如,所述外部通信總線可以是USB總線、AppleDesktop總線、RS-232串聯(lián)、SCSI總線、FireWire總線、FireWire800總線、以太網(wǎng)總線、AppleTalk總線、吉比特以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級HIPPI總線、SerialPlus總線、SCI/LAMP總線、FibreChannel總線或者串行附加小型計算機系統(tǒng)接口總線。具有圖1B和圖1C所示的類型的通用臺式計算機通常在操作系統(tǒng)的控制下工作,其中,操作系統(tǒng)控制著任務(wù)進程和對系統(tǒng)資源的訪問。典型的操作系統(tǒng)包括華盛頓雷德蒙的微軟公司制造的MICROSOFTWIND0WS、加利福尼亞庫佩蒂諾的蘋果計算機公司制造的MacOS、紐約Armonk的IBM公司制造的OS/2以及猶他州鹽湖城的Caldera公司免費發(fā)布的操作系統(tǒng)Linux,等等。本地機10和20可以是任何個人計算機(例如Macintosh計算機或者基于處理器的計算機,例如,所述處理器可以是286、386、486、Pentium、PentiumII、PentiumIII、PentiumIV、PentiumM、Celeron或Xeon處理器,所有的這些處理器都是由加利福尼亞芒廷維尤的Intel公司制造的)、基于Windows的終端、網(wǎng)絡(luò)計算機、無線裝置、信息設(shè)備、RISC、PowerPC、X裝置、工作站、小型計算機、主機計算機、個人數(shù)字助理或者其他具有基于Windows的桌面和足夠的用于執(zhí)行小的直觀顯示程序的持久存儲器(persistentstore)的計算裝置。直觀顯示程序利用通過通信信道發(fā)送給它的命令和數(shù)據(jù)實現(xiàn)圖形顯示。本地機10和20所支持的面向Windows的平臺可以包括但不限于Windows3.x、Windows95、Windows98、WindowsNT3.51、WindowsNT4.0、Windows2000、Windows2003、WindowsCE、WindowsXP、Windowsvista、MAC/0S、Java、Linux和UNIX。本地機10和20可以包括視覺顯示裝置(例如,計算機監(jiān)視器)、數(shù)據(jù)輸入裝置(例如,鍵盤)、用于存儲下載的應(yīng)用程序的持久或易失存儲器(例如,計算機存儲器)、處理器和鼠標(biāo)。小的直觀顯示程序的執(zhí)行允許本地機10和20參與分布式計算機系統(tǒng)模型(即,基于服務(wù)器的計算模型)。對于本地機10或20是移動裝置的實施例而言,所述裝置可以是能夠?qū)崿F(xiàn)JAVA的蜂窩電話,例如,由伊利諾斯州紹姆堡的摩托羅拉公司、日本京都的Kyocera、韓國漢城的三星電子公司制造的蜂窩電話。在本地機10或20可移動的其他實施例中,其可以是在PalmOS操作系統(tǒng)的控制下工作的個人數(shù)字助理(PDA),例如,其可以是由加利福尼亞米爾皮塔斯的palmOne公司制造的裝置。在其他實施例中,本地機10或20可以是在PocketPC操作系統(tǒng)的控制下工作的個人數(shù)字助理(PDA),例如,由加利福尼亞帕洛阿爾托的惠普公司制造的iPAQ裝置、加利福尼亞Walnut的ViewSonic制造的裝置或者紐約的美國東芝公司制造的裝置。在另一些實施例中,客戶端節(jié)點是PDA/電話裝置的組合,例如,由加利福尼亞米爾皮塔斯的palmOne公司制造的Treo裝置。在另一些實施例中,本地機10或20是在PocketPC操作系統(tǒng)的控制下工作的蜂窩電話,例如,由摩托羅拉公司制造的蜂窩電話。在一個實施例中,本地機10與農(nóng)場38中的遠程機30之一直接通信。在一些實施例中,本地機10通過通信鏈路150與農(nóng)場38中的遠程機30通信。本地機10可以通過通信線路150(例如)請求執(zhí)行農(nóng)場38中的遠程機30、30'、30"和30"所持有的各種應(yīng)用,并接收所述應(yīng)用的執(zhí)行結(jié)果的輸出,以供顯示。通信鏈路150可以是同步或非同步的,并且其可以是LAN連接、MAN(中等區(qū)域網(wǎng))連接或WAN連接。此外,通信鏈路150可以是無線鏈路,例如紅外信道或衛(wèi)星頻帶。在一些實施例中,本地機10與遠程機30通信。在這些實施例的一個當(dāng)中,遠程機30為本地機10提供本地機10能夠執(zhí)行的應(yīng)用的枚舉。在這些實施例的另一個當(dāng)中,遠程機30為本地機10提供與持有所述應(yīng)用枚舉所標(biāo)識的應(yīng)用的遠程機3(K相關(guān)的地址信息。在這些實施例的另一個當(dāng)中,本地機10與遠程機3(K通信,以訪問所標(biāo)識的應(yīng)用。在一個實施例中,本地機IO通過執(zhí)行程序鄰域應(yīng)用與遠程機30和3(K通信。在一些實施例中,每一遠程機30提供識別和提供與持有所請求的應(yīng)用的遠程機3(K相關(guān)的地址信息所需的功能。在一些實施例中,本地機10與遠程機30'"通信。在這些實施例中的一個當(dāng)中,遠程機30"提供web服務(wù)器或文件服務(wù)器的功能。在所述的實施例的另一個當(dāng)中,遠程機30'"接收來自本地機10的請求,將所述請求發(fā)送至遠程機30,并采用來自遠程機30的對所述請求的響應(yīng)來回應(yīng)所述的本地機10的請求。在這些實施例的另一個當(dāng)中,遠程機30獲取本地機10可用的應(yīng)用的枚舉和與提供對所述應(yīng)用枚舉所標(biāo)識的應(yīng)用程序的訪問的遠程機3(K相關(guān)的地址信息。在這些實施例的另一個當(dāng)中,遠程機3(V"利用web接口向本地機10提供對所述請求的響應(yīng)。在一個實施例中,本地才幾10與遠程機30'直接通信,以訪問所標(biāo)識的應(yīng)用。在另一實施例中,本地機IO接收來自遠程機3(K"的應(yīng)用輸出數(shù)據(jù),所述應(yīng)用輸出數(shù)據(jù)是通過執(zhí)行遠程機30'上的所標(biāo)識的應(yīng)用而得到的?,F(xiàn)在參考圖1D,構(gòu)成農(nóng)場38的遠程機30均包括網(wǎng)絡(luò)端接口202和農(nóng)場端接口204。遠程機30的網(wǎng)絡(luò)端接口可以與一個或多個本地機10、20或與網(wǎng)絡(luò)210通信。網(wǎng)絡(luò)210可以是WAN、LAN或者諸如因特網(wǎng)或萬維網(wǎng)的國際網(wǎng).本地機IO、20可以利用210與遠程機30建立連接。遠程機30的農(nóng)場端接口204通過通信鏈路相互連接,從而使遠程機30能夠相互通信。在每一遠程機30上,農(nóng)場端接口204與網(wǎng)絡(luò)端接口202通信。農(nóng)場端接口204還與持久存儲器230,以及一些實施例中的動態(tài)存儲器240通信(由箭頭220表示)。將遠程機30、持久存儲器230和動態(tài)存儲器240(在提供時)的組合統(tǒng)稱為農(nóng)場38。在一些實施例中,遠程機30與持久存儲器230通信,另一遠程機3(K與遠程機30通信,以訪問存儲在所述持久存儲器內(nèi)的信息。實際上,可以將所述持久存儲器230實現(xiàn)到磁盤、特大容量磁盤、廉價磁盤冗余陣列、可寫光盤或者任何其他允許數(shù)據(jù)讀寫并且在存儲裝置斷電后能夠保持寫入的數(shù)據(jù)的裝置上。單個實際裝置可以提供實現(xiàn)多個持久存儲器的存儲器,即,可以采用單個實際裝置為一個以上的農(nóng)場38提供持久存儲器230。持久存儲器230保持與農(nóng)場38中的每一遠程機30相關(guān)的靜態(tài)數(shù)據(jù)和農(nóng)場38內(nèi)的所有遠程機30采用的全局數(shù)據(jù)。在一個實施例中,持久存儲器230可以按照低權(quán)(Lightweight)目錄訪問協(xié)議(LDAP)數(shù)據(jù)模型保持遠程機數(shù)據(jù)。在其他實施例中,持久存儲器230將遠程機數(shù)據(jù)存儲到順應(yīng)ODBC的數(shù)據(jù)庫中。出于本說明書的目的,"靜態(tài)數(shù)據(jù)"是指不發(fā)生頻繁改變的額數(shù)據(jù),即,僅在小時、天或周的基礎(chǔ)上發(fā)生變化的數(shù)據(jù)或者根本不發(fā)生變化的數(shù)據(jù)。每一遠程機采用持久存儲器子系統(tǒng)從持久存儲器230讀取數(shù)據(jù)或向其內(nèi)寫入數(shù)據(jù)。出于在物理或邏輯上的可靠性的目的,可以復(fù)制持久存儲器230所存儲的數(shù)據(jù)。例如,可以采用一組冗余的鏡像盤提供物理冗余,其中,每一冗余鏡像盤提供一個數(shù)據(jù)副本。在其他實施例中,可以采用標(biāo)準數(shù)據(jù)庫技術(shù)復(fù)制數(shù)據(jù)庫自身,從而提供對所述數(shù)據(jù)庫的多重復(fù)制。在其他實施例中,可以同時采用物理和邏輯復(fù)制??梢酝ㄟ^各種方式實現(xiàn)動態(tài)存儲器240(即,所有記錄表格的集合)。在一個實施例中,動態(tài)存儲器240是集中式的;也就是說,將所有的運行時間數(shù)據(jù)存儲到農(nóng)場38中的一個遠程機30的存儲器內(nèi)。所述遠程機起著主網(wǎng)絡(luò)節(jié)點的作用,農(nóng)場38中的所有其他遠程機30在尋求對所述運行時間數(shù)據(jù)的訪問時都要與所述主網(wǎng)絡(luò)節(jié)點通信。在另一實施例中,農(nóng)場38中的每一遠程機30保持動態(tài)存儲器240的整個副本。這里,每一遠程機30與每一其他遠程機30通信,從而使它的動態(tài)存儲器240的副本保持更新。在另一實施例中,每一遠程機30保持其自身的運行時間數(shù)據(jù),并在試圖獲得來自每一其他遠程機30的運行時間數(shù)據(jù)時與它們通信。因而,例如,試圖找到本地機10所請求的應(yīng)用程序的遠程機30可以直接與農(nóng)場38中的每一其他遠程機30通信,從而找到持有所請求的應(yīng)用的一個或多個遠程機。對于具有大量遠程機30的農(nóng)場38而言,由這些實施例產(chǎn)生的網(wǎng)絡(luò)流量可能變得非常沉重。其中的一個實施例通過將農(nóng)場38中的遠程機30的子集(通常具有兩個或更多的遠程機)指定為"收集點,,來緩解沉重的網(wǎng)絡(luò)流量。通常,收集點是指收集運行時間數(shù)據(jù)的遠程機。每一收集點存儲從農(nóng)場38中的某一其他遠程機30收集的運行時間數(shù)據(jù)。農(nóng)場38中的每一遠程機30均能夠作為收集點工作,因而均能夠被指定為收集點。在一個實施例中,每一收集點存儲整個動態(tài)存儲器240的副本。在另一實施例中,每一收集點存儲動態(tài)存儲器240的一部分,即,其保持具有特定數(shù)據(jù)類型的運行時間數(shù)據(jù)??梢愿鶕?jù)一種或多種標(biāo)準預(yù)先確定遠程機30存儲的數(shù)據(jù)類型。例如,遠程機30可以基于其引導(dǎo)程序順序存儲不同類型的數(shù)據(jù)?;蛘?,可以由管理員利用管理工具140設(shè)置遠程機30存儲的數(shù)據(jù)的類型。在這些實施例中,動態(tài)存儲器240分布在農(nóng)場38中的兩個或更多遠程機30當(dāng)中。未被指定為收集點的遠程機30知曉農(nóng)場38中被指定為收集點的遠程機30。未被指定為收集點的遠程機180在發(fā)出和請求運行時間數(shù)據(jù)時可以與特定收集點通信。因而,收集點減輕了網(wǎng)絡(luò)流量,因為農(nóng)場38中的每一遠程機30在尋求對運行時間數(shù)據(jù)的訪問時都與單個收集點遠程才幾30通信,而不是與每一其他遠程機30通信。每一遠程機30可以作為針對一種以上的數(shù)據(jù)類型的收集點工作。例如,遠程機30"可以作為針對許可信息和針對加載信息的收集點工作。在這些實施例中,每一收集點可以收集不同類型的運行時間數(shù)據(jù)。例如,為了對這種情況舉例說明,遠程機3(K"可以收集許可信息,而遠程機30"可以收集加載信息。在一些實施例中,每一收集點存儲在農(nóng)場38中的所有遠程機30之間共享的數(shù)據(jù)。在這些實施例中,每一特定類型的數(shù)據(jù)的收集點與農(nóng)場38中的針對該種類型的數(shù)據(jù)的每一其他收集點交換該收集點收集的數(shù)據(jù)。因而,在完成了所述數(shù)據(jù)的交換的同時,每一收集點30"和30都擁有了相同的數(shù)據(jù)。而且,在這些實施例中,每一收集點30和30"還能夠使每一其他收集點始終跟上對所述運行時間數(shù)據(jù)的更新。瀏覽(browsing)能夠使本地機10查看農(nóng)場38、遠程機30和農(nóng)場38中的應(yīng)用,并訪問可用信息,例如整個農(nóng)場38中的會話。每一遠程機30包括ICA瀏覽子系統(tǒng)260,從而為本地機IO提供瀏覽功能。在本地機10建立與遠程機30中的任何一個的ICA瀏覽器子系統(tǒng)260的連接之后,所述瀏覽器子系統(tǒng)將支持各種本地機請求。所述本地機請求包括(1)枚舉農(nóng)場中的遠程機的名稱,(2)枚舉農(nóng)場中公布的應(yīng)用的名稱,(3)將遠程機名稱和/或應(yīng)用名稱解析成本地機10可用的遠程機地址。ICA瀏覽器子系統(tǒng)260還支持由運行程序鄰域應(yīng)用的本地機10所發(fā)出的請求,其根據(jù)請求為所述本地機10提供對該用戶得到了授權(quán)的農(nóng)場38中的應(yīng)用的查看。ICA瀏覽器子系統(tǒng)260將所有的上述本地機請求發(fā)送給遠程機30中的適當(dāng)?shù)淖酉到y(tǒng)。在一個實施例中,農(nóng)場38中的每一具有程序鄰域子系統(tǒng)的遠程機30可以為本地機10的用戶提供對農(nóng)場38中的應(yīng)用的查看。所述程序鄰域子系統(tǒng)270可以限制對那些所述本地機10的用戶得到了訪問授權(quán)的應(yīng)用的查看。典型地,這一程序鄰域服務(wù)將應(yīng)用作為列表或圖符組提供給用戶。程序鄰域子系統(tǒng)270所提供的功能可以為兩種類型的本地機所使用(1)能夠直接從本地機桌面訪問功能的能夠啟用程序鄰域的本地機,(2)能夠通過運行遠程機上的能夠啟用程序鄰域的桌面來訪問所述功能的不能啟用程序鄰域的本地才幾(例如,遺留本地機(legacylocalmachine))。可以在建立于ICA虛擬信道的頂部的專用虛擬信道上進行能夠啟用程序鄰域的本地機和程序鄰域子系統(tǒng)270之間的通信。在其他實施例中,可以利用XML服務(wù)實施所述通信。在這些實施例的一個當(dāng)中,能夠啟用程序鄰域的本地機與XML子系統(tǒng)通信,例如,所述XML子系統(tǒng)可以是下文結(jié)合圖6說明的XML服務(wù)516,其提供了遠程機30上的程序鄰域功能。在一個實施例中,能夠啟用程序鄰域的本地機不具有與帶有程序鄰域子系統(tǒng)270的遠程機的連接。對于這一實施例而言,本地機10向ICA瀏覽器子系統(tǒng)260發(fā)送請求,以建立與遠程機30的ICA連接,從而識別出本地機10可用的應(yīng)用。之后,本地機10運行獲取用戶的信任狀的客戶端側(cè)對話。所述信任狀被ICA瀏覽器子系統(tǒng)260接收,并被發(fā)送至程序鄰域子系統(tǒng)270。在一個實施例中,程序鄰域子系統(tǒng)270向用戶管理子系統(tǒng)發(fā)送所述信任狀,以實現(xiàn)對其的鑒定。用戶管理子系統(tǒng)可以返回一組存在區(qū)分的名稱,其表示所述用戶所屬的帳戶的列表。在鑒定的同時,程序鄰域子系統(tǒng)270建立程序鄰域虛擬信道。這一信道一直保持打開狀態(tài),直到完成應(yīng)用過濾為止。之后,程序鄰域子系統(tǒng)270從與這些帳戶相關(guān)的公共應(yīng)用子系統(tǒng)524請求程序鄰域信息。公共應(yīng)用子系統(tǒng)524從持久存儲器230獲得程序鄰域信息。在接收到所述程序鄰域信息的同時,程序鄰域子系統(tǒng)270為所述程序鄰域信息設(shè)置格式并將其通過所述程序鄰域虛擬信道返回給所述本地機。之后關(guān)閉部分ICA連接。對于能夠啟用程序鄰域的本地機建立了與遠程機的局部ICA連接的另一個例子而言,考慮選擇了農(nóng)場38的本地機10的用戶。對農(nóng)場38的選擇將來自本地機10的請求發(fā)送至ICA瀏覽器子系統(tǒng)260,從而建立起與所選的農(nóng)場38的遠程機30中的一個的ICA連接。ICA瀏覽器子系統(tǒng)260向程序鄰域子系統(tǒng)270發(fā)送選擇農(nóng)場38中的遠程機30的請求。通過ICA瀏覽器子系統(tǒng)260識別與遠程機30相關(guān)的地址信息,并將其返回給本地機IO。接下來,可以將本地機IO連接至對應(yīng)于所接收到的地址信息的遠程機30。在另一實施例中,能夠啟用程序鄰域的本地機10建立ICA連接,在所述ICA連接上建立程序鄰域虛擬信道,只要所述ICA連接存在就使所述程序虛擬信道保持暢通。通過這一程序鄰域虛擬信道,程序鄰域子系統(tǒng)270將程序鄰域信息更新發(fā)送給本地機10。為了獲得更新,程序鄰域子系統(tǒng)270預(yù)訂來自公共應(yīng)用子系統(tǒng)524的事件,從而允許程序鄰域子系統(tǒng)270檢測到所/〉布的應(yīng)用的變化。參考圖1E,其示出了用于通過在web服務(wù)目錄中公布GUI來提供可以為本地機所使用的多個應(yīng)用程序的系統(tǒng)架構(gòu)的另一個實施例的方框圖。所述系統(tǒng)包括本地機10和多個遠程機30。一個遠程機30起著內(nèi)容服務(wù)器的作用。遠程機3(K提供web服務(wù)器功能。遠程機30"提供用于提供對應(yīng)用文件的訪問的功能,并且起著應(yīng)用服務(wù)器或文件服務(wù)器的作用。本地機10能夠通過網(wǎng)絡(luò)155從內(nèi)容服務(wù)器30、web服務(wù)器30'和應(yīng)用服務(wù)器30"上下載內(nèi)容。在一個實施例中,本地機10能夠通過客戶端-應(yīng)用服務(wù)器通信信道150從應(yīng)用服務(wù)器30"下栽內(nèi)容(例如,應(yīng)用)。在一個實施例中,本地機10上的web瀏覽器11采用加密套接字協(xié)議層(SSL)支持來實現(xiàn)與內(nèi)容服務(wù)器30和/或web服務(wù)器30'的通信。SSL是由加利福尼亞芒廷維尤的Netscape通信公司開發(fā)的安全協(xié)議,現(xiàn)在已經(jīng)成為了因特網(wǎng)工程任務(wù)組頒布的標(biāo)準?;蛘?,可以利用其他安全協(xié)議將網(wǎng)瀏覽程序11連接至內(nèi)容服務(wù)器30和/或web服務(wù)器30、例如,所述安全協(xié)議可以是但不限于由加利福尼亞州的洛斯阿爾托斯的TerisaSystems開發(fā)的加密超級文本傳輸協(xié)議(SHTTP)、HTTPoverSSL(HTTPS)、由華盛頓雷德蒙的微軟公司開發(fā)的專用通信技術(shù)(PCT)和IETF頒布的傳送級安全(TLS)標(biāo)準。在其他實施例中,web瀏覽器11利用不存在加密的通信協(xié)議,例如超級文本傳輸協(xié)議(HTTP)與服務(wù)器30通信。此外,本地機10包括用于通過客戶端-應(yīng)用服務(wù)器通信信道150與應(yīng)用服務(wù)器30"建立和交換通信的應(yīng)用客戶端13。在一個實施例中,應(yīng)用客戶端13為GUI應(yīng)用。在一些實施例中,應(yīng)用客戶端13是由佛羅里達州FortLauderdale的CitrixSystems公司開發(fā)的獨立計算架構(gòu)(ICA)客戶端,在下文中又將其稱為ICA客戶端13。應(yīng)用客戶端13的其他實施例包括由華盛頓雷德蒙的微軟公司開發(fā)的遠程顯示協(xié)議(RDP)客戶端、X-Windows客戶端13、能夠執(zhí)行多媒體應(yīng)用、email、Java或.NET代碼的客戶端側(cè)播放器、解釋器或模擬器。此外,在一個實施例中,可以通過ICA客戶端13在本地機10上顯示在應(yīng)用服務(wù)器30"上執(zhí)行的應(yīng)用的輸出。在一些實施例中,應(yīng)用客戶端13是諸如應(yīng)用流動客戶端552的應(yīng)用客戶端,在下文中將參考圖5更詳細地說明應(yīng)用流動客戶端552。本地機10通過搜索web服務(wù)目錄160來尋找web服務(wù)。在一個實施例中,所述搜索是人工搜索?;蛘?,所述搜索是自動搜索。所述web服務(wù)目錄160還可以提供基于服務(wù)的視圖,例如,白頁或黃頁,從而在web服務(wù)目錄中搜索web服務(wù)。在另一實施例中,瀏覽。在一個實施例中,web服務(wù)目錄160在獨立于內(nèi)容服務(wù)器30的遠程機上,例如,在目錄服務(wù)器上運行。在其他實施例中,所述web服務(wù)目錄160在多個服務(wù)器上運行。在一些實施例中,內(nèi)容服務(wù)器30能夠通過在web服務(wù)目錄160中提供信息或分析使本地機10能夠基于所述的額外的分析或信息選擇web服務(wù)。所述web服務(wù)目錄160所能列舉的服務(wù)信息的例子包括但不限于提供服務(wù)的商家的名稱、服務(wù)類型、服務(wù)的文字描述、一個或多個訪問點(SAP)、網(wǎng)絡(luò)類型、使用路徑(例如,TCP或HTTPS)和服務(wù)質(zhì)量(QoS)信息。此外,所述服務(wù)信息可以是客戶端裝置類型或用戶(例如職責(zé))的詳細說明。因而,服務(wù)選擇可以以一個或多個上述屬性為基礎(chǔ)。在一個實施例中,服務(wù)類型表示本地機10必須用來訪問所述web服務(wù)的編程接口。例如,所述服務(wù)類型可以表明通過接口描述語言對所述服務(wù)進行了編碼,例如所述接口描述語言可以是web服務(wù)描述語言(WSDL)。所述服務(wù)訪問點或SAP是應(yīng)用的唯一地址。所迷SAP能夠使計算機系統(tǒng)在本地才幾10和每一遠程機30上支持多個應(yīng)用。例如,應(yīng)用服務(wù)器30"可以支持電子郵件(即,e-mail)應(yīng)用、文件傳輸應(yīng)用和/或GUI應(yīng)用。在一個實施例中,這些應(yīng)用均具有SAP,其在應(yīng)用服務(wù)器30"內(nèi)是唯一的。在一個實施例中,所述SAP是web或因特網(wǎng)地址(例如,域名系統(tǒng)(DNS)名、IP/端口或資源定位碼(URL))。因而,在一個實施例中,SAP將web服務(wù)器3(T的地址識別成存儲在web服務(wù)器30'上的應(yīng)用的地址的一部分。在一些實施例中,SAP將公布服務(wù)器插件程序165的地址識別成存儲在web服務(wù)器30'上的應(yīng)用的地址的一部分,如下文所述。在一個實施例中,所述SAP是來自UDDI注冊的"接入點(accessPoint),,。為了準備用于在web服務(wù)目錄160中公布的項目,內(nèi)容服務(wù)器30包括web公布工具170。在一個實施例中,web公布工具170是一種軟件模塊?;蛘?,web發(fā)布工具170是另一種服務(wù)器,其可以位于內(nèi)容服務(wù)器30的外部或內(nèi)部。在一個實施例中,網(wǎng)絡(luò)服務(wù)器30'向本地機10提交web頁。Web服務(wù)器3(K可以是能夠向本地機105提供web頁的任何遠程機30。在另一實施例中,web服務(wù)器3(K是企業(yè)信息門戶(例如,企業(yè)內(nèi)聯(lián)網(wǎng)或加密的企業(yè)對企業(yè)外聯(lián)網(wǎng))。企業(yè)門戶是公司的網(wǎng)站,其匯集了各種應(yīng)用、數(shù)據(jù)和內(nèi)容,使其個性化并將其提供給用戶,同時提供用于更為有效地組織和使用信息的管理工具。在一些公司內(nèi),其門戶已經(jīng)采用對虛擬工作位置的基于瀏覽器的訪問替代了常規(guī)的桌面軟件。Web服務(wù)器W還包括用于實現(xiàn)圖形用戶界面(GUI)應(yīng)用的公布的公布服務(wù)器插件程序165。更準確地說,所述公布服務(wù)器插件程序165將新的web服務(wù)項URL轉(zhuǎn)換為GUI應(yīng)用服務(wù),從而能夠通過web服務(wù)目錄160訪問GUI。在一個實施例中,公布服務(wù)器插件程序165是公共網(wǎng)關(guān)接口(CGI)腳本,這是一種被設(shè)計為接受和返回符合CGI規(guī)約的數(shù)據(jù)的程序。可以通過任何程序設(shè)計語言,例如C、Perl、Java或VisualBasic編寫所述程序。在另一實施例中,所述公布服務(wù)器插件程序165是Java服務(wù)器頁(JSP)。利用公布服務(wù)器插件程序I65促進遠程GUI應(yīng)用的公布,本地機10能夠由此通過整個GUI接口,例如,Citrix的ICA或Microsoft的RDP而并非通過編考呈接口或web頁訪問web月艮務(wù)。應(yīng)用服務(wù)器30"持有一個或多個本地機10可用的應(yīng)用。所述應(yīng)用的例子包括由雷德蒙的微軟公司制造的諸如MICROSOFTWORD的字處理程序和諸如MICROSOFTEXCEL的電子表格程序、財務(wù)報表程序、客戶注冊程序、提供技術(shù)支持信息的程序、客戶數(shù)據(jù)庫程序或應(yīng)用集管理程序。在一些實施例中,在不同的網(wǎng)絡(luò)上建立一個或多個通信鏈路150。例如,客戶端-內(nèi)容服務(wù)器通信信道150'可以屬于第一網(wǎng)絡(luò)(例如,萬維網(wǎng)),客戶端-web服務(wù)器通信信道150"可以屬于第二網(wǎng)絡(luò)(例如,加密外聯(lián)網(wǎng)或虛擬專用網(wǎng)(VPN))。在一個實施例中,web公布工具170存儲與web公布工具l了0在持久大容量存儲器225中的web服務(wù)目錄160內(nèi)公布的應(yīng)用有關(guān)的信息。在一個實施例中,所述信息是動態(tài)公布服務(wù)器插件程序165的URL。持久大容量存儲器225可以是磁盤或磁光驅(qū)動器。在一個實施例中,所述持久大容量存儲器225為數(shù)據(jù)庫服務(wù)器,其將與所公布的應(yīng)用相關(guān)的數(shù)據(jù)存儲到一個或多個局部服務(wù)數(shù)據(jù)庫內(nèi)。所述持久大容量存儲器225可以是處于任何或所有遠程機30之內(nèi)或之外的部件。在其他實施例中,內(nèi)容服務(wù)器30或web服務(wù)器30'與農(nóng)場38中的遠程機通信,以檢索應(yīng)用列表。在這些實施例之一中,內(nèi)容服務(wù)器30或web服務(wù)器3(K與農(nóng)場38通信,而不是和持久大容量存儲器225通信.現(xiàn)在參考圖2,流程圖示出了選擇應(yīng)用程序的執(zhí)行方法所采取的步驟的一個實施例。簡而言之,接收與本地機相關(guān)聯(lián)或與本地機的用戶相關(guān)聯(lián)的信任狀,請求枚舉可以由本地機執(zhí)行的應(yīng)用(步驟202)。響應(yīng)于所接收的信任狀提供對本地機可用的多個應(yīng)用程序的枚舉(步驟204)。接收請求以執(zhí)行被枚舉的應(yīng)用(步驟206)。響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于被枚舉的應(yīng)用的應(yīng)用流傳輸?shù)姆椒?步驟208)。接收與本地機相關(guān)聯(lián)或與本地機的用戶相關(guān)聯(lián)的信任狀,請求枚舉可以由本地機執(zhí)行的應(yīng)用(步驟202)。在一個實施例中,遠程機利用信任狀從本地機IO接收枚舉可用應(yīng)用的請求。在另一個實施例中,遠程機30上的XML服務(wù)接收請求和信任狀并將請求和信任狀傳輸?shù)竭h程機30上的管理服務(wù)。在一些實施例中,起到web服務(wù)器功能的遠程機30從本地機10接收通信并將通信轉(zhuǎn)發(fā)到遠程機30'。在這些實施例之一中,Web服務(wù)器將通信轉(zhuǎn)發(fā)到遠程機3tK上的XML服務(wù)。在這些實施例的另一個中,Web服務(wù)器位于本地機上。在由web服務(wù)器將來自本地機10的通信路由到遠程機30'的其他實施例中,可以響應(yīng)于本地機10的網(wǎng)際協(xié)議(IP)地址選擇遠程機30。在一些實施例中,本地機10請求訪問遠程機30上駐留的應(yīng)用。在這些實施例之一中,本地機10請求由遠程機30執(zhí)行駐留在遠程機30上的應(yīng)用。在這些實施例的另一個中,本地機IO請求檢索包括應(yīng)用的多個應(yīng)用文件。在一些實施例中,用戶經(jīng)由遠程機30提供給本地機10的圖形用戶界面向遠程機30提供信任狀。在其他實施例中,具有web服務(wù)器功能的遠程機30'"向本地機IO提供圖形用戶界面。在其他實施例中,由遠程機30發(fā)送給本地機10的收集代理收集來自本地機10的信任狀。在一個實施例中,信任狀是指用戶名和口令。在另一個實施例中,信任狀不限于用戶名和口令,而是包括,但不限于本地機10的機器ID、操作系統(tǒng)類型、操作系統(tǒng)補丁的存在、已安裝網(wǎng)卡的MAC地址、客戶端裝置上的數(shù)字水印、活動目錄中的成員身份、病毒掃描器的存在、個人防火墻的存在、HTTP報頭、瀏覽器類型、裝置類型、諸如網(wǎng)際協(xié)議地址或地址范圍的網(wǎng)絡(luò)連接信息、遠程機30的機器ID、包括改變時區(qū)的調(diào)節(jié)的訪問請求的日期或時間以及授權(quán)信任狀。在一些實施例中,與本地機相關(guān)聯(lián)的信任狀是與本地機的用戶相關(guān)聯(lián)的。在這些實施例之一中,信任狀是用戶所有的信息。在這些實施例的另一個中,信任狀是用戶身份驗證信息。在其他實施例中,與本地機相關(guān)聯(lián)的信任狀是與網(wǎng)絡(luò)相關(guān)聯(lián)的.在這些實施例之一中,信任狀是與本地機可以連接到的網(wǎng)絡(luò)相關(guān)聯(lián)的信息。在這些實施例的另一個中,信任狀是與收集本地機信息的網(wǎng)絡(luò)相關(guān)的信息。在其他實施例中,與本地機相關(guān)聯(lián)的信任狀是本地機的特征。響應(yīng)于所接收的信任狀提供對本地機可用的多個應(yīng)用程序的枚舉(步驟204)。在一個實施例中,本地機10的用戶可能知道網(wǎng)絡(luò)40中的遠程機30所持有的應(yīng)用程序的可用性,但不知道在哪里找到這種應(yīng)用,并沒有鏈接到這種應(yīng)用所需的技術(shù)信息。這些可用的應(yīng)用程序構(gòu)成用戶的"程序鄰域"。用于為本地機判斷程序鄰域的系統(tǒng)包括應(yīng)用程序(下文稱為"程序鄰域"應(yīng)用)、用于存儲應(yīng)用程序部件的存儲器以及用于執(zhí)行應(yīng)用程序的處理器。如下所述,可以在本地機10和/或遠程機30的存儲器中安裝程序鄰域(PN)應(yīng)用。根據(jù)程序鄰域應(yīng)用而運行的遠程機30從農(nóng)場38中的每臺遠程機30收集與應(yīng)用相關(guān)的信息。用于每個所持有的應(yīng)用的與應(yīng)用相關(guān)的信息可以是各種信息,例如包括持有應(yīng)用的遠程機地址、應(yīng)用名稱、被授權(quán)使用應(yīng)用的用戶或用戶組以及在建立連接之前為了運行應(yīng)用本地機10所需的最低能力。例如,應(yīng)用可能對視頻數(shù)據(jù)進行流傳輸,因此所需的最低能力可以是本地機支持視頻數(shù)據(jù)。其他實例為本地機支持音頻數(shù)據(jù)或具有處理加密數(shù)據(jù)的能力。與應(yīng)用相關(guān)的信息可以存儲在數(shù)據(jù)庫中。當(dāng)本地機10連接到網(wǎng)絡(luò)40時,本地機10的用戶提供用戶信任狀。用戶信任狀可以包括本地機10的用戶的用戶名、用戶的口令以及用戶被授權(quán)的域名?;蛘?,可以從智能卡、時基令牌、社會保障號碼、用戶口令、個人身份(PIN)號碼、基于對稱密鑰或橢圓曲線密碼術(shù)的數(shù)字證書、用戶的計量生物學(xué)特征或任何通過其能夠獲得本地機10的用戶身份并提交進行驗證的其他方式獲得用戶信任狀。對本地機10響應(yīng)的遠程機30可以基于用戶信任狀對用戶進行認證。可以在執(zhí)行程序鄰域應(yīng)用的任何地方存儲用戶信任狀.對于本地機10執(zhí)行程序鄰域應(yīng)用的實施例而言,可以在本地機10上存儲用戶信任狀。對于遠程機30執(zhí)行程序鄰域的實施例而言,可以在該遠程機30上存儲用戶信任狀。遠程機30從用戶信任狀和與應(yīng)用相關(guān)的信息還可以判斷出遠程機30所持有的哪些應(yīng)用程序是可以由本地機10的用戶使用的。遠程機30向本地機10發(fā)送表明可用應(yīng)用程序的信息。該過程消除了本地機10的用戶建立應(yīng)用連接的必要。此外,遠程機30的管理員可以在本地機10的多個用戶之間控制對應(yīng)用的訪問。在一些實施例中,遠程機30執(zhí)行的用戶認證可以足以授權(quán)使用提供給本地機10的每個所持有應(yīng)用程序,盡管這樣的應(yīng)用可能駐留在另一遠程機30上。因此,當(dāng)本地機10啟動(即開始執(zhí)行)所持有應(yīng)用之一時,可以不必認證本地機IO再次輸入的用戶信任狀來認證應(yīng)用的使用。于是,單獨一項用戶信任狀可以用于判斷可用應(yīng)用并授權(quán)啟動這種應(yīng)用,而無須用戶進行額外的人工登錄認證過程。本地機10或遠程才幾30的任一個都可以啟動程序鄰域應(yīng)用。在本地機IO、20的顯示屏12、22上顯示結(jié)果。在基于圖形窗口的實現(xiàn)中,可以在程序鄰域圖形窗口中顯示結(jié)果,并可以在該窗口中用圖形符號表示每個授權(quán)的應(yīng)用程序。在一個實施例中,程序鄰域應(yīng)用濾除掉未授權(quán)本地機IO執(zhí)行的應(yīng)用程序,僅顯示授權(quán)的(即可用的)程序。在其他實施例中,程序鄰域應(yīng)用可以顯示授權(quán)和未授權(quán)的應(yīng)用。在不濾除未授權(quán)應(yīng)用而加以顯示的時候,可以提供通知,表明這種應(yīng)用是不可用的。或者,程序鄰域應(yīng)用可以向本地機10、20的用戶報告遠程機30所持有的所有應(yīng)用,而不標(biāo)明授權(quán)或未授權(quán)本地機10、20執(zhí)行哪些應(yīng)用。隨后可以在本地機IO、20試圖運行這些應(yīng)用之一時決定授權(quán)情況。本地機10可以請求從遠程機30進行應(yīng)用枚舉。應(yīng)用枚舉使本地機10的用戶能夠看到每個發(fā)布的應(yīng)用的名稱。在一個實施例中,無論用戶是否有執(zhí)行應(yīng)用的授權(quán),本地機10的用戶都可以看到應(yīng)用名稱。在另一個實施例中,用戶僅看到授權(quán)用戶執(zhí)行的那些應(yīng)用的名稱。根據(jù)本地機10運行的具體過程,應(yīng)用枚舉請求傳送到ICA瀏覽器子系統(tǒng)260、到程序鄰域子系統(tǒng)270或到/>共應(yīng)用子系統(tǒng)524。例如,當(dāng)本地機IO在運行程序鄰域應(yīng)用時,將應(yīng)用枚舉請求發(fā)送到遠程機30上的程序鄰域子系統(tǒng)270。當(dāng)本地機10通過網(wǎng)頁提出枚舉請求時,該請求傳送到公共訪問點子系統(tǒng)524。對這些實施例而言,在本地機10希望枚舉應(yīng)用時,公共應(yīng)用子系統(tǒng)524充當(dāng)著程序鄰域子系統(tǒng)270、ICA瀏覽器子系統(tǒng)260和公共應(yīng)用子系統(tǒng)的初始訪問點。在一些實施例中,當(dāng)本地機IO通過網(wǎng)頁提出枚舉請求時,托管web服務(wù)器的中間遠程機30接收該請求并將請求轉(zhuǎn)發(fā)到遠程機3(K。在接收到枚舉請求時,公共應(yīng)用子系統(tǒng)524向持久存儲器230查詢所有應(yīng)用的列表。對于從程序鄰域子系統(tǒng)270和公共訪問點645子系統(tǒng)接收的請求,根據(jù)本地機10的用戶的信任狀對這一應(yīng)用列表進行過濾(即用戶僅看到用戶被授權(quán)的那些應(yīng)用)。本地機10還可以請求遠程機枚舉。遠程機枚舉使本地機10的用戶能夠看到農(nóng)場38中的遠程機列表。在一個實施例中,可以根據(jù)遠程機類型對遠程機列表進4亍過濾,這是由該遠程機上的專用遠程機子系統(tǒng)決定的。根據(jù)本地機120運行的具體過程,將遠程機枚舉請求傳送到ICA瀏覽器子系統(tǒng)260或公共訪問點子系統(tǒng)645。例如,當(dāng)本地機120通過網(wǎng)頁提出遠程機枚舉請求時,該請求傳送到公共訪問點子系統(tǒng)645。對這些實施例而言,公共遠程機子系統(tǒng)300充當(dāng)著ICA瀏覽器子系統(tǒng)260和公共訪問點645子系統(tǒng)的初始訪問點。在接收到遠程機枚舉請求時,公共遠程機子系統(tǒng)從持久存儲器230查詢所有遠程機列表。任選地,根據(jù)遠程機類型過濾該遠程機列表。圖3A是示出了本地機10啟動執(zhí)行程序鄰域應(yīng)用的過程的另一實施例的方框圖,在該實例中是通過萬維網(wǎng)啟動的。本地機10執(zhí)行網(wǎng)絡(luò)34利福尼亞MountainView的NETSCAPECommunications,Inc.制造的NETSCAPENAVIGATOR,或者由華盛頓Redmond的MicrosoftCorporation制造的MICROSOFTINTERNETEXPLORER,或者由加利福尼亞MountainView的MozillaFoundation制造的FIREFOX,或者由挪威奧斯陸的OPERASoftwareASA制造的OPERA,或者由加利福尼亞Cupertino的AppleComputer,Inc.制造的SAFARI,本地機IO通過網(wǎng)絡(luò)瀏覽器80發(fā)出請求82,希望訪問對應(yīng)于遠程機30上駐留的HTML頁面的統(tǒng)一資源定位符(URL)地址。在一些實施例中,由遠程機30向本地機IO返回的第一個HTML頁面84是視圖識別本地機10的認證頁面。仍然參考圖3A,一旦本地機IO獲得遠程機30的認證,遠程機30準備并向本地機10發(fā)送HTML頁面88,該頁面包括程序鄰域窗口58,該窗口中給出了表明本地機IO已經(jīng)訪問過的應(yīng)用程序的圖形符號57、57'。本地機10的用戶通過點擊該圖符57來啟用圖符57表示的應(yīng)用的執(zhí)行。在一些實施例中,遠程機30代表本地機10的用戶執(zhí)行程序鄰域應(yīng)用。在這些實施例之一中,遠程機30是位于本地機10和遠程機30'之間的中間遠程機。參考圖3B,流程圖示出了通過在web服務(wù)目錄中的GUI發(fā)布提供本地機可用的多個應(yīng)用程序所采取的步驟的一個實施例。Web發(fā)布工具170接收要發(fā)布的應(yīng)用(例如GUI應(yīng)用)的web服務(wù)描述和訪問信息(步驟300)。在一個實施例中,Web服務(wù)描述包括上述服務(wù)信息(例如,提供web服務(wù)的單位名稱、服務(wù)類型、服務(wù)的文本描述和SAP)。訪問信息例如可以包括發(fā)布的應(yīng)用名稱、傳輸控制協(xié)議(TCP)瀏覽服務(wù)器農(nóng)場地址和MetaFrame服務(wù)器IP地址。在一些實施例中,訪問信息指定穿過網(wǎng)絡(luò)或安全網(wǎng)關(guān)或網(wǎng)橋裝置所用的地址和權(quán)證。然后web發(fā)布工具170構(gòu)建服務(wù)發(fā)布請求以請求發(fā)布web服似例如GUI應(yīng)用)(步驟305)。在一個實施例中,服務(wù)發(fā)布請求包括SAP。在一些實施例中,SAP是一種包括web服務(wù)器3(T的web地址和發(fā)布服務(wù)器插件165的URL。此外,web地址可以是通用資源標(biāo)識符(URI),這是引用web上目標(biāo)的名稱和地址類型的通用術(shù)語。URL是一種URI。URI的實例為web月艮務(wù)器3(K的名稱(例如"web-server")和用于發(fā)布服務(wù)器插件165的CGI腳本名稱(例如"dynamic-component"),Web發(fā)布工具170在持久大容量存儲器225中存儲與SAP相關(guān)聯(lián)的SAP項(步驟310)。在一些實施例中,Web發(fā)布工具170還將所發(fā)布的應(yīng)用信息(例如ICA-published-app-info)與GUI應(yīng)用關(guān)聯(lián)起來。在其他實施例中,web發(fā)布工具170還包括服務(wù)發(fā)布請求中的密鑰,以標(biāo)識內(nèi)容服務(wù)器30在持久大容量存儲器225中存儲的SAP項。例如,該密鑰可以具有值"123456677"。標(biāo)識web服務(wù)器3(K的SAP、發(fā)布服務(wù)器插件165的CGI腳本名稱和上述密鑰的實例為"http://web-server/dynamic-component/app=123456677."'與上述SAP相關(guān)聯(lián)的SAP項的實例為"密鑰=123456677,值=ICA-published-app-info"。該密鑰可以是任意長度(例如56比特密鑰,128比特密鑰)。在一個實施例中,該密鑰為密碼隨機數(shù)。該密鑰還可以提供對密鑰持有者的訪問權(quán)。雖然用密鑰進行示例,但可以使用任何手段來為持久大容量存儲器225中存儲的SAP項提供一種形式的安全措施。Web發(fā)布工具170向內(nèi)容服務(wù)器30提供服務(wù)發(fā)布請求,希望在web服務(wù)目錄160中進行發(fā)布(步驟315)。此外,在一個實施例中,內(nèi)容服務(wù)器30向本地機10發(fā)送SAP的密鑰,請求特定web服務(wù),以便在隨后定位SAP項時使用。在一個實施例中,發(fā)布服務(wù)發(fā)布請求使本地機10的用戶能夠訪問該服務(wù)。在一個實施例中,利用弗羅里達FortLauderdale的CitrixSystems,Inc.開發(fā)的訓(xùn)SE在web月良務(wù)目錄160上發(fā)布GUI應(yīng)用。在一些實施例中,GUI應(yīng)用的發(fā)布者利用ApplicationLaunchingAndEmbedding(ALE)定余J在web月艮務(wù)目錄160上對GUI應(yīng)用的發(fā)布,ALE也是由CitrixSystems,Inc.開發(fā)的。ALE使得能夠從HTML頁面啟動GUI應(yīng)用,或者能夠?qū)?yīng)用嵌入到HTML頁面中。本地機10然后從web服務(wù)目錄160查詢服務(wù)名稱(步驟320)。內(nèi)容服務(wù)器30從本地機IO接收查詢(步驟325)并在web服務(wù)目錄160中找到所請求的服務(wù)名稱。在另一個實施例中,本地機IO的用戶在web服務(wù)目錄160中瀏覽,直到定位出本地機10的用戶正在尋找的特定服務(wù)名稱為止。雖然以本地機IO進行了示例,其實任何web服務(wù)目錄客戶端(例如UDDI客戶端或LDAP瀏覽器)都可以查詢或瀏覽web服務(wù)目錄160以發(fā)現(xiàn)所發(fā)布的web服務(wù)。在定位出與所接收的查詢相關(guān)聯(lián)的SAP時,內(nèi)容服務(wù)器30向本地機10發(fā)送SAP(步驟330)。本地機10接收SAP(步驟335)并從該SAP判定發(fā)布服務(wù)器插件165的地址。本地機10隨后向web服務(wù)器30'發(fā)送對GUI應(yīng)用的請求(步驟340)。在一些實施例中,來自本地機10的請求是從網(wǎng)絡(luò)瀏覽器11傳輸?shù)絯eb服務(wù)器3(K的HTTP請求。在其他實施例中,在本地機10上執(zhí)行的應(yīng)用(例如通常的目錄瀏覽器或HTMLUl)從內(nèi)容服務(wù)器30接收SAP并將SAP作為要旨提供給網(wǎng)絡(luò)瀏覽器11。網(wǎng)絡(luò)瀏覽器1然后可以自動地向web服務(wù)器30'發(fā)送(對GUI應(yīng)用的)HTTP請求。根據(jù)前述實例,發(fā)給web服務(wù)器30'的應(yīng)用請求的具體實例為"http://web-server/dynamic-component/app=123456677."。Web服務(wù)器30',尤其是發(fā)布服務(wù)器插件165接收與SAP相關(guān)的應(yīng)用請求(步驟345)并確定與該請求相關(guān)的SAP項(步驟350)。在一個實施例中,發(fā)布服務(wù)器插件165從本地機IO接收請求并檢索與已經(jīng)(作為SAP項的一部分)存儲在持久大容量存儲器225中的請求相關(guān)聯(lián)的所發(fā)布的應(yīng)用信息。在一些實施例中,發(fā)布服務(wù)器插件165使用本地機10從內(nèi)容服務(wù)器30接收的SAP(或SAP的一部分)作為密鑰來訪問存儲在持久大容量存儲器225中的適當(dāng)服務(wù)項(例如已發(fā)布的應(yīng)用信息)。發(fā)布服務(wù)器插件165然后構(gòu)建具有已發(fā)布的應(yīng)用信息(例如應(yīng)用服務(wù)器30"的HTTP地址)的文件或文檔(步驟352)并將該文檔發(fā)送到本地機10(步驟355)。發(fā)布服務(wù)器插件165構(gòu)建該文件,使得該文件具有與應(yīng)用客戶端13兼容的格式。在一個實施例中,該文檔為多用網(wǎng)絡(luò)郵件擴展(MIME)或安全MIME(S/MIME)文檔。在另一個實施例中,該文檔為含有ICAweb客戶端嵌入對象HTML標(biāo)記的HTML文檔。在又一個實施例中,該文檔為含有應(yīng)用流傳輸客戶端嵌入對象HTML標(biāo)記的HTML文檔。網(wǎng)絡(luò)瀏覽器11隨后接收該文檔并視圖打開該文檔。在一個實施例中,如果應(yīng)用客戶端13未安裝在本地機IO上,則本地機IO與應(yīng)用服務(wù)器30"通信以下載并安裝該用客戶端13。在安裝應(yīng)用客戶端13時,或者,如果應(yīng)用客戶端13已經(jīng)安裝在本地機10上了,本地機10啟動應(yīng)用客戶端13以查看從web服務(wù)器30'接收的文檔(步驟360)。一旦在本地機10上安裝并執(zhí)行應(yīng)用客戶端13,應(yīng)用服務(wù)器30"則執(zhí)行該應(yīng)用并在應(yīng)用客戶端13上顯示該應(yīng)用(步驟365)。在替換實施例中,應(yīng)用服務(wù)器30"向應(yīng)用客戶端13發(fā)送包括該應(yīng)用的多個應(yīng)用文件以在本地機10上執(zhí)行,如下文參考圖7要進一步詳述的。在另一個實施例中,本地機10查看該文檔(即使在啟動應(yīng)用客戶端13之前)并使用文檔中的信息來從應(yīng)用服務(wù)器30"獲得GUI應(yīng)用。在本實施例中,GUI應(yīng)用的顯示包括應(yīng)用客戶端30',的安裝和執(zhí)行情況。此外,文檔的查看可以是對本地機10的用戶透明的。例如,本地機10可以從web服務(wù)器30'接收文檔并在自動從應(yīng)用服務(wù)器30"請求GUI應(yīng)用之前解釋該文檔。于是,應(yīng)用客戶端13向已發(fā)布的應(yīng)用、桌面、桌面文檔和應(yīng)用客戶端13支持的任何其他應(yīng)用提供基于服務(wù)的訪問。應(yīng)用客戶端13能夠向其提供訪問的應(yīng)用實例包括但不限于WINDOWS桌面、均由華盛頓Redmond的MicrosoftCorporation開發(fā)的諸如MICR0S0FTEXCEL、W0RD和POWERPOINT的WINDOWS文檔、諸如由加利福尼亞PaloAlto的SUNMicrosystems開發(fā)的SUNSOLARIS的Unix桌面以及由北卡羅來納Durham的RedHat,Inc.銷售的GNU/Linux等。在一些實施例中,響應(yīng)于策略引擎對本地機是否可以以及如何訪問應(yīng)用的判斷,提供本地機10可用的多個應(yīng)用程序的枚舉(步驟204)。策略引擎可以在做出決定之前收集有關(guān)本地機的信息?,F(xiàn)在參考圖4A,示出了根據(jù)本發(fā)明構(gòu)建的計算機網(wǎng)絡(luò)的一個實施例,其包括本地機10、收集代理404、策略引擎406、策略數(shù)據(jù)庫408、農(nóng)場38和應(yīng)用服務(wù)器3(K。在一個實施例中,策略引擎406為遠程機30。在另一個實施例中,應(yīng)用服務(wù)器3(K為遠程機30'。盡管在圖4A所示的實施例中僅示出了一個本地機10、收集代理404、策略引擎406、農(nóng)場38和應(yīng)用服務(wù)器30、但應(yīng)當(dāng)理解,該系統(tǒng)可以對這些部件中任一種或每種提供多個。簡而言之,當(dāng)本地機10向策略引擎406發(fā)送訪問應(yīng)用的請求410時,收集代理404與本地機10通信,檢索關(guān)于本地機10的信息,并將本地機信息412發(fā)送到策略引擎406。策略引擎406通過將來自策略數(shù)據(jù)庫408的策略施加到所接收的信息412上來做出訪問控制決定。更詳細地講,本地機10向策略引擎406發(fā)送對資源的請求410。在一個實施例中,策略引擎406駐留在應(yīng)用服務(wù)器30'上。在另一個實施例中,策略引擎406為遠程機30。在又一個實施例中,應(yīng)用服務(wù)器30'從本地機10接收請求410并將請求410發(fā)送到策略引擎406。在又一個實施例中,本地機向遠程機30〃'發(fā)送對資源的請求410,遠程機3(K''將請求410發(fā)送到策略引擎406。在一些實施例中,本地機10通過網(wǎng)絡(luò)連接發(fā)送請求410。該網(wǎng)絡(luò)可以是局域網(wǎng)(LAN)、城域網(wǎng)(MAN)或諸如因特網(wǎng)的廣域網(wǎng)(WAN)。本地機10和策略引擎406可以通過各種連接連接到網(wǎng)絡(luò),各種連接包括標(biāo)準電話線、LAN或WAN鏈接(例如Tl、T3、56kb、X.25)、寬帶連接(ISDN、幀中繼、ATM)和無線連接。本地機10和策略引擎10之間的連接可以使用各種數(shù)據(jù)鏈路層通信協(xié)議(例如TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、以太網(wǎng)、ARCNET、光纖分布式數(shù)據(jù)接口(FDDI)、RS232、IEEE802.11、IEEE802.lla、IEE802.llb、IEEE802.llg和直接異步連接)。該連接也可以是上述通信鏈路150。在接收到請求時,策略引擎406啟動由收集代理404進行的信息收集。收集代理404收集有關(guān)本地機10的信息并將信息412發(fā)送到策略引擎406。在一些實施例中,收集代理404通過網(wǎng)絡(luò)連接收集并發(fā)送信息412。在一些實施例中,收集代理404包括字節(jié)碼,例如以字節(jié)碼程序設(shè)計語言JAVA編寫的應(yīng)用。在一些實施例中,收集代理404包括至少一個腳本。在這些實施例中,收集代理404通過在本地機10上運行至少一個腳本來收集信息。在一些實施例中,收集代理包括本地機10上的活動X控件。活動X控件是一種實現(xiàn)一組界面的專用部件對象模型(COM)的對象,所述界面使其看起來和運行起來像控件。在一個實施例中,策略引擎406向本地機10發(fā)送收集代理404。在一個實施例中,策略引擎406在收集代理404已經(jīng)向策略引擎406發(fā)送過信息412之后要求第二次執(zhí)行收集代理404。在本實施例中,策略引擎406可能沒有充分的信息412來判斷本地機10是否滿足特定的條件。在其他實施例中,策略引擎406響應(yīng)于所接收的信息412要求多次執(zhí)行收集代理404。在一些實施例中,策略引擎406向收集代理404發(fā)送指令,確定39收集代理404收集的信息類型。在這些實施例中,系統(tǒng)管理員可以配置從策略引擎406發(fā)送到收集代理404的指令。這對所收集的信息類型提供了更大控制。由于對所收集的信息類型更大的控制,這也擴展了策略引擎406能夠做出的訪問控制決定的類型。收集代理404所收集的信息412包括但不限于本地機10的機器ID、操作系統(tǒng)類型、操作系統(tǒng)補丁的存在、已安裝網(wǎng)卡的MAC地址、客戶端裝置上的數(shù)字水印、活動目錄中的成員身份、病毒掃描器的存在、個人防火墻的存在、HTTP報頭、瀏覽器類型、裝置類型、諸如網(wǎng)際協(xié)議地址或地址范圍的網(wǎng)絡(luò)連接信息、遠程機30的機器ID、包括改變時區(qū)的調(diào)節(jié)的訪問請求的日期或時間以及授權(quán)信任狀。在一些實施例中,裝置類型為個人數(shù)字助理。在其他實施例中,裝置類型為蜂窩電話。在其他實施例中,裝置類型為膝上電腦。在其他實施例中,裝置類型為臺式計算機。在其他實施例中,裝置類型為因特網(wǎng)信息站。在一些實施例中,數(shù)字水印包括數(shù)據(jù)嵌入。在一些實施例中,水印包括插入到文件中的圖案以提供有關(guān)文件的源信息。在其他實施例中,水印包括數(shù)據(jù)散列文件以提供竄改檢測。在其他實施例中,水印提供有關(guān)文件的版權(quán)信息。在一些實施例中,網(wǎng)絡(luò)連接信息涉及到帶寬能力。在其他實施例中,網(wǎng)絡(luò)連接信息涉及到網(wǎng)際協(xié)議地址。在其他實施例中,網(wǎng)絡(luò)連接信息由網(wǎng)際協(xié)議地址構(gòu)成。在一個實施例中,網(wǎng)絡(luò)連接信息包括標(biāo)識本地機向其提供認證信任狀的登錄代理的網(wǎng)絡(luò)分區(qū)。在一些實施例中,授權(quán)信任狀包括多個類型的認證信息,包括但不限于用戶名、客戶端名稱、客戶端地址、口令、PIN、語音示例、一次性通過代碼、計量生物學(xué)數(shù)據(jù)、數(shù)字證書、權(quán)證等以及其組合。在接收到所收集的信息412之后,策略引擎406基于所接收的信息412做出訪問控制決定?,F(xiàn)在參考圖4B,方框圖示出了策略引擎406的一個實施例,包括第一部件420,第一部件包括條件數(shù)據(jù)庫422和登錄代理424,還包括第二部件430,第二部件包括策略數(shù)據(jù)庫432。第一部件420將來自條件數(shù)據(jù)庫422的條件施加到所接收的關(guān)于本地機10的信息并判斷所接收的信息是否滿足該條件。在一些實施例中,條件可以要求本地機io執(zhí)行特定的操作系統(tǒng)以滿足該條件。在一些實施例中,條件可以要求本地機10執(zhí)行特定的操作系統(tǒng)補丁以滿足該條件。在其他實施例中,條件可以要求本地機10為每個安裝的網(wǎng)卡提供MAC地址以滿足該條件。在一些實施例中,條件可以要求本地機10表明在特定活動目錄中的成員身份以滿足該條件。在另一個實施例中,條件可以要求本地機10執(zhí)行病毒掃描器以滿足該條件。在其他實施例中,條件可以要求本地機10執(zhí)行個人防火墻以滿足該條件。在一些實施例中,條件可以要求本地機10包括特定的裝置類型以滿足該條件。在其他實施例中,條件可以要求本地機10建立特定類型的網(wǎng)絡(luò)連接以滿足該條件。如果所接收的信息滿足條件,第一部件420在數(shù)據(jù)集426中存儲該條件的標(biāo)識符。在一個實施例中,如果該信息使條件為真,則所接收的信息滿足條件。例如,條件可以要求安裝特定的操作系統(tǒng)。如果本地機10具有該操作系統(tǒng),則條件為真且得到滿足。在另一個實施例中,如果該信息使條件為假,則所接收的信息滿足條件。例如,條件可以查詢本地機10上是否存在間諜軟件。如果本地機10不含有間諜軟件,該條件為假且得到滿足。在一些實施例中,登錄代理424駐留在策略引擎406之外。在其他實施例中,登錄代理424駐留在策略引擎406上。在一個實施例中,第一部件420包括登錄代理424,登錄代理424啟動對有關(guān)本地機10的信息收集。在一些實施例中,登錄代理424還包括數(shù)據(jù)存儲器。在這些實施例中,數(shù)據(jù)存儲器包括收集代理可以搜集信息的條件。該數(shù)據(jù)存儲器與條件數(shù)據(jù)庫422不同。在一些實施例中,登錄代理424通過執(zhí)行收集代理404啟動信息搜集。在其他實施例中,登錄代理424通過將收集代理404發(fā)送到本地機10以在本地機10上執(zhí)行來啟動信息搜集。在其他實施例中,登錄代理424在接收到信息412之后啟動額外的信息收集。在一個實施例中,登錄代理424還接收信息412。在本實施例中,登錄代理424基于所接收的信息412生成數(shù)據(jù)集426。在一些實施例中,登錄代理424通過將來自數(shù)據(jù)庫422的條件施加到從收集代理404接收的信息來生成數(shù)據(jù)集426。在另一個實施例中,第一部件420包括多個登錄代理424。在本實施例中,多個登錄代理424中的至少一個位于本地機IO可以從其發(fā)送資源請求的每個網(wǎng)域上。在本實施例中,本地機10向特定的登錄代理424發(fā)送資源請求'在一些實施例中,登錄代理424向策略引擎406發(fā)送本地機IO從其訪問登錄代理424的網(wǎng)域。在一個實施例中,本地機IO從其訪問登錄代理424的網(wǎng)域被稱為本地機10的網(wǎng)絡(luò)分區(qū)。條件數(shù)據(jù)庫422存儲第一部件420施加到所接收的信息上的條件。策略數(shù)據(jù)庫432存儲第二部件430施加到所接收的數(shù)據(jù)集426上的策略。在一些實施例中,條件數(shù)據(jù)庫422和策略數(shù)據(jù)庫432在與ODBC兼容的數(shù)據(jù)庫中存儲數(shù)據(jù)。例如,條件數(shù)據(jù)庫422和策略數(shù)據(jù)庫432可以被提供為由加利福尼亞RedwoodShores的ORACLECorporation制造的ORACLE數(shù)據(jù)庫。在其他實施例中,條件數(shù)據(jù)庫422和策略數(shù)據(jù)庫432可以是華盛頓Redmond的MicrosoftCorporation制造的MicrosoftACCESS數(shù)據(jù)庫或MicrosoftSQLserver數(shù)據(jù)庫。在第一部件420向條件數(shù)據(jù)庫422中的每個條件施加所接收的信息之后,第一部件向第二部件430發(fā)送數(shù)據(jù)集426。在一個實施例中,第一部件420向第二部件430僅發(fā)送數(shù)據(jù)集426。因此,在本實施例中,第二部件430不接收信息412,僅接收所滿足的條件的標(biāo)識符.第二部件430接收數(shù)據(jù)集426并通過基于數(shù)據(jù)集426內(nèi)標(biāo)識的條件施加來自策略數(shù)據(jù)庫432的策略來做出訪問控制決定。在一個實施例中,策略數(shù)據(jù)庫432存儲被施加到所接收的信息412的策略。在一個實施例中,由系統(tǒng)管理員至少部分地指定策略數(shù)據(jù)庫432中存儲的策略。在另一個實施例中,用戶執(zhí)行策略數(shù)據(jù)庫432中存儲的策略中的至少一些。將用戶指定的策略存儲為優(yōu)選項。策略數(shù)據(jù)庫432可以存儲在易失性或非易失性存儲器中,或者,例如通過多個服務(wù)器分布。在一個實施例中,僅當(dāng)滿足一個或多個條件時策略才允許訪問資源。在另一個實施例中,策略允許訪問資源但禁止將資源傳輸?shù)奖镜貦C10。另一種策略可以根據(jù)請求訪問的本地機10位于安全網(wǎng)絡(luò)之內(nèi)而建立連接。在一些實施例中,該資源為應(yīng)用程序,且本地機10已請求執(zhí)行應(yīng)用程序。在這些實施例之一中,策略可以允許在本地機10上執(zhí)行應(yīng)用程序。在這些實施例的另一個中,策略可以使本地機10能夠接收包括應(yīng)用程序的文件流。在本實施例中,可以在隔離環(huán)境中存儲并執(zhí)行文件流。在這些實施例中的又一個中,策略可以僅允許在諸如應(yīng)用服務(wù)器的遠程機上執(zhí)行應(yīng)用程序,并要求遠程機向本地機IO發(fā)送應(yīng)用輸出數(shù)據(jù)。現(xiàn)在參考圖4C,流程圖示出了策略引擎406基于所接收的有關(guān)本地機10的信息做出訪問控制決定所采取的步驟的一個實施例。在接收所收集的有關(guān)本地機10的信息時(步驟450),策略引擎406基于信息生成數(shù)據(jù)集(步驟452)。數(shù)據(jù)集426包含所接收的信息412所滿足的每個條件的標(biāo)識符.策略引擎406將策略施加到數(shù)據(jù)集426中的每個標(biāo)識的條件上。該應(yīng)用產(chǎn)生出本地機IO可以訪問的資源枚舉(步驟454)。策略引擎406然后向本地機10提供枚舉。在一些實施例中,策略引擎406生成用于向本地機提供枚舉的超級文本標(biāo)志語言(HTML)文檔。參考圖4D,示出了根據(jù)本發(fā)明構(gòu)建的網(wǎng)絡(luò)的一個實施例,其包括本地機IO、收集代理404、策略引擎406、策略數(shù)據(jù)庫408、條件數(shù)據(jù)庫410、本地機20、會話服務(wù)器420、所存儲應(yīng)用數(shù)據(jù)庫422、遠程機30'、第一數(shù)據(jù)庫428、遠程機30"和第二數(shù)據(jù)庫432。筒而言之,當(dāng)本地機10向訪問控制服務(wù)器406發(fā)送訪問應(yīng)用程序的請求412時,收集代理404與本地機10通信,檢索關(guān)于本地機10的信息,并將本地機信息414發(fā)送到策略引擎406。如以上在圖4A和4B中所述,策略引擎406做出訪問控制決定。本地機IO接收對與本地機IO相關(guān)聯(lián)的可用應(yīng)用的枚舉。在一些實施例中,會話服務(wù)器420在本地機10和與本地機10相關(guān)聯(lián)的多個應(yīng)用會話之間建立連接.在其他實施例中,策略引擎406序的授權(quán)。在這些實施例之一中,遠程機30'存儲應(yīng)用會話數(shù)據(jù)和包括應(yīng)用程序的多個應(yīng)用文件。在這些實施例的另一個中,本地機10與存儲應(yīng)用會話數(shù)據(jù)和包括應(yīng)用程序的多個應(yīng)用文件的遠程機30'建立應(yīng)用流傳輸會話?,F(xiàn)在參考圖4E,流程圖示出了會話服務(wù)器420為本地機IO提供對其相關(guān)聯(lián)應(yīng)用會話的訪問所采取的步驟的一個實施例。會話服務(wù)器420從含有策略引擎406所做出的訪問控制決定的策略引擎406接收有關(guān)本地機10的信息(步驟480)。會話服務(wù)器420生成相關(guān)應(yīng)用枚舉(步驟482)。會話服務(wù)器420可以將本地機10連接到相關(guān)應(yīng)用(步驟484)。在一個實施例中,該信息還包括本地機信息414。在另一個實施例中,該信息包括對在本地執(zhí)行應(yīng)用程序的授權(quán)。會話服務(wù)器420生成相關(guān)應(yīng)用枚舉(步驟482)。在一些實施例中,策略引擎406標(biāo)識已經(jīng)與本地機10相關(guān)聯(lián)的多個應(yīng)用會話。在其他實施例中,會話服務(wù)器420標(biāo)識與本地機IO相關(guān)聯(lián)的已存儲應(yīng)用會話。在這些實施例中的一些中,會話服務(wù)器420在從策略引擎406接收信息時自動標(biāo)識所存儲的應(yīng)用會話。在一個實施例中,所存儲應(yīng)用數(shù)據(jù)庫422駐留在會話服務(wù)器420上。在另一個實施例中,所存儲應(yīng)用數(shù)據(jù)庫422駐留在策略引擎406上。所存儲應(yīng)用數(shù)據(jù)庫422含有與農(nóng)場38中執(zhí)行應(yīng)用會話或提供對應(yīng)用會話數(shù)據(jù)和包括應(yīng)用程序的應(yīng)用文件的訪問的多個遠程機相關(guān)的數(shù)據(jù)。在一些實施例中,識別與本地機IO相關(guān)聯(lián)的應(yīng)用會話需要查詢與一個或多個遠程機相關(guān)聯(lián)的所存儲數(shù)據(jù)。在這些實施例中的一些中,會話存儲器420查詢與一個或多個遠程機相關(guān)聯(lián)的所存儲數(shù)據(jù)。在這些實施例中的其他實施例中,策略引擎406查詢與一個或多個遠程機相關(guān)聯(lián)的所存儲數(shù)據(jù)。在一些實施例中,第一應(yīng)用會話在遠程機30'上運行,第二應(yīng)用會話在遠程機30"上運行。在其他實施例中,所有的應(yīng)用會話都在農(nóng)場38之內(nèi)的單個遠程機30上運行。會話服務(wù)器420包括與用戶發(fā)起的應(yīng)用會話相關(guān)的信息。會話服務(wù)器可以存儲在易失性或非易失性存儲器中,或者,例如通過多個服務(wù)器分布。表1示出了在示例性會話服務(wù)器420的一部分中包括的數(shù)據(jù)<table>tableseeoriginaldocumentpage44</column></row><table>表1表1中的示例性會話服務(wù)器420包括將每個應(yīng)用會話與發(fā)起該應(yīng)用會話的用戶相關(guān)聯(lián)的數(shù)據(jù)、當(dāng)前用戶從其連接到遠程機30'的客戶端計算機10或20的身份(如果有的話)、以及客戶端計算機10或20的IP地址。示例性會話服務(wù)器420還包括每個應(yīng)用會話的狀態(tài)。例如,應(yīng)用會話狀態(tài)可以是"活動,,(表示用戶連接到應(yīng)用會話)或"斷開連接,,(表示用戶未連接到應(yīng)用會話)。在替換實施例中,也可以將應(yīng)用會話狀態(tài)設(shè)置成"執(zhí)行中-斷開連接"(表示用戶已經(jīng)從應(yīng)用會話斷開連接,但應(yīng)用會話中的應(yīng)用仍在執(zhí)行)或"停機-斷開連接"(表示用戶斷開連接且應(yīng)用會話中的應(yīng)用不在執(zhí)行中,但它們的運行狀態(tài)恰在存儲斷開連接之前)。會話服務(wù)器420還存儲表示在每個應(yīng)用會話中執(zhí)行的應(yīng)用116的信息以及表示服務(wù)器上每個應(yīng)用的過程的數(shù)據(jù)。在遠程機30'為農(nóng)場38的部分的實施例中,會話服務(wù)器420是動態(tài)存儲器的至少一部分,并且還包括表1中最后兩行中的數(shù)據(jù),該數(shù)據(jù)表明每個應(yīng)用正在/曽經(jīng)在農(nóng)場38中哪個遠程機30執(zhí)行以及遠程機30的IP地址。在替換實施例中,會話服務(wù)器420包括用于每個應(yīng)用會話中的每個應(yīng)用的狀態(tài)指示符。例如,在表l的實例中,存在三個應(yīng)用會話,即應(yīng)用會話l、應(yīng)用會話2和應(yīng)用會話3。應(yīng)用會話1與當(dāng)前正使用終端1的用戶1相關(guān)。終端1的IP地址為152.16.2.50。應(yīng)用會話1的狀態(tài)為活動,在應(yīng)用會話1中正在執(zhí)行文字處理程序。在服務(wù)器A上正在執(zhí)行作為過程1的文字處理程序。服務(wù)器A的IP地址為152.16.2.55。表l中的應(yīng)用會話2是斷開連接的應(yīng)用會話118的實例。應(yīng)用會話2與用戶2相關(guān),但應(yīng)用會話2未連接到本地機10或20。應(yīng)用會話2包括在IP地址152.16.2.55處在服務(wù)器A上作為過程3執(zhí)行的數(shù)據(jù)庫程序。應(yīng)用會話3是用戶如何能夠與運行在不同遠程機30上的應(yīng)用會話交互的實例。如應(yīng)用會話1那樣,應(yīng)用會話3與用戶1相關(guān)。應(yīng)用會話3包括在IP地址152.16.2.56處在服務(wù)器B上作為過程2執(zhí)行的電子表格程序,而應(yīng)用會話l中包括的應(yīng)用會話是在服務(wù)器A上執(zhí)行的。在另一個實例中,用戶可以通過在諸如服務(wù)器A的遠程機30'上執(zhí)行的應(yīng)用會話訪問第一應(yīng)用程序,同時跨過應(yīng)用流傳輸會話與諸如服務(wù)器B的第二遠程機30"通信,以從第二遠程機30"檢索第二應(yīng)用程序以在本地執(zhí)行。本地機10的用戶在無法滿足第一應(yīng)用程序的執(zhí)行條件的同時,可能已經(jīng)獲取了執(zhí)行第二應(yīng)用程序的授權(quán)。在一個實施例中,將會話服務(wù)器420配置成接收斷開請求,以斷開與本地機IO相關(guān)聯(lián)的應(yīng)用會話并響應(yīng)于該請求斷開該應(yīng)用會話。在從應(yīng)用會話斷開本地機10之后,會話服務(wù)器420繼續(xù)執(zhí)行應(yīng)用會話。在本實施例中,會話服務(wù)器420訪問所存儲應(yīng)用數(shù)據(jù)庫422并更新與每個斷開連接的應(yīng)用會話相關(guān)聯(lián)的數(shù)據(jù)記錄,使得該記錄表明與本地機IO相關(guān)聯(lián)的應(yīng)用會話已斷開。在接收到與連接到網(wǎng)絡(luò)的本地機相關(guān)聯(lián)的認證信息之后,會話服務(wù)器420查詢所存儲應(yīng)用數(shù)據(jù)庫422以查明是否有任何如下的活動應(yīng)用會話,該活動應(yīng)用會話與本地機的用戶相關(guān)聯(lián),但是如果該認證信息例如與本地機20相關(guān)聯(lián),該活動應(yīng)用會話與不同的本地機,例如本地機10相連接。在一個實施例中,如果會話服務(wù)器420發(fā)現(xiàn)了任何這種活動應(yīng)用會話,會話服務(wù)器420自動從本地機10斷開該應(yīng)用會話并將應(yīng)用會話連接到當(dāng)前本地機20。在一些實施例中,所接收的認證信息將會限制本地機IO可以重新連接到的應(yīng)用會話。在其他實施例中,在可能以將對本地機10否決授權(quán)的情況下,所接收的認證信息授權(quán)在本地機20上執(zhí)行應(yīng)用程序。在這些實施例之一中,會話服務(wù)器420可以提供本地機訪問信息以檢索應(yīng)用程序從而在本地執(zhí)行。接收請求以執(zhí)行被枚舉的應(yīng)用(步驟206)。在一個實施例中,本地機10的用戶從所接收的可用應(yīng)用枚舉中選擇要執(zhí)行的應(yīng)用。在另一個實施例中,用戶獨立于所接收的枚舉選擇要執(zhí)行的應(yīng)用。在一些實施例中,用戶通過選擇客戶端代理在本地機10上提供的應(yīng)用圖形表示來選擇要執(zhí)行的應(yīng)用。在其他實施例中,用戶通過選擇web服務(wù)器或其他遠程機3(K''上提供給用戶的應(yīng)用圖解表示來選擇要執(zhí)行的應(yīng)用。在其他實施例中,用戶請求訪問文件。在這些實施例之一中,需要執(zhí)行應(yīng)用以為用戶提供對文件的訪問。在這些實施例的另一個中,在選擇要訪問的文件時自動選擇要執(zhí)行的應(yīng)用。在這些實施例中的又一個中,在請求訪問文件之前,將應(yīng)用與一種文件類型相關(guān)聯(lián),從而能夠在識別與所請求文件相關(guān)聯(lián)的文件類型時自動選擇應(yīng)用。在一個實施例中,被枚舉的應(yīng)用包括多個應(yīng)用文件。在一些實施例中,多個應(yīng)用文件駐留在遠程機30'上。在其他實施例中,多個應(yīng)用46文件駐留在獨立的文件服務(wù)器或遠程機30"上。在其他實施例中,可以將多個應(yīng)用文件傳輸?shù)奖镜貦C10。在其他實施例中,可以在向本地機IO傳輸多個應(yīng)用文件中的第二文件之前執(zhí)行多個應(yīng)用文件中的文件。在一些實施例中,遠程機30從遠程機30'檢索與被枚舉的應(yīng)用相關(guān)的信息。在這些實施例之一中,遠程機30接收持有多個應(yīng)用文件的遠程機30"的標(biāo)識。在這些實施例的另一個中,遠程機30接收多個應(yīng)用文件的位置的標(biāo)識,該標(biāo)識符合通用命名標(biāo)準(UNC)。在這些實施例中的又一個中,該標(biāo)識包括網(wǎng)絡(luò)位置和應(yīng)用流傳輸協(xié)議的套接字。在一個實施例中,遠程機30檢索含有有關(guān)被枚舉的應(yīng)用的信息的文件。該文件可以包括持有被枚舉的應(yīng)用的服務(wù)器位置的標(biāo)識。該文件可以包括持有被枚舉的應(yīng)用的多個版本的標(biāo)識。該文件可以包括多個應(yīng)用文件的枚舉,該枚舉包括被枚舉的應(yīng)用。該文件可以包括壓縮文件的標(biāo)識,該壓縮文件包括多個應(yīng)用文件,該多個應(yīng)用文件包括,皮枚舉的應(yīng)用。該文件可以包括執(zhí)行被枚舉的應(yīng)用的機器要滿足的前提條件的標(biāo)識。該文件可以包括與被枚舉的應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)文件的枚舉。該文件可以包括要在執(zhí)行被枚舉的應(yīng)用的機器上執(zhí)行的腳本的枚舉。該文件可以包括與被枚舉的應(yīng)用相關(guān)聯(lián)的注冊數(shù)據(jù)的枚舉。該文件可以包括在隔離環(huán)境之中執(zhí)行被枚舉的應(yīng)用的實施例中使用的規(guī)則的枚舉。在一個實施例中,該文件可以被稱為"清單,,文件。結(jié)合以下圖21更詳細地描述該文件可以含有的信息。在一些實施例中,遠程機30向本地機10的凈皮標(biāo)識特征應(yīng)用策略。在這些實施例之一中,遠程機30響應(yīng)于被標(biāo)識的特征標(biāo)識要執(zhí)行的,皮枚舉的應(yīng)用版本。在這些實施例的另一個中,遠程機30做出決定,執(zhí)行與本地機10的特征兼容的被枚舉的應(yīng)用版本。在這些實施例中的又一個中,遠程機30做出決定,執(zhí)行與本地機10上執(zhí)行的操作系統(tǒng)兼容的被枚舉的應(yīng)用版本。在又一個實施例中,遠程機30做出決定,執(zhí)行與本地機10上的操作系統(tǒng)的修訂級(revisionlevel)兼容的被枚舉的應(yīng)用版本。在這些實施例之一中,遠程機30做出決定,執(zhí)行與本地機IO上的操作系統(tǒng)指定的語言兼容的被枚舉的應(yīng)用版本。響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于被枚舉的應(yīng)用的應(yīng)用流傳輸?shù)姆椒?步驟208)。在一個實施例中,響應(yīng)于向所接收的與本地機10相關(guān)的信任狀應(yīng)用策略來做出選擇。在一些實施例中,通過如以上在圖4A、圖4B和圖4C所述的策略引擎406的策略引擎做出選擇。在其他實施例中,引擎406.在一個實施例中,預(yù)定數(shù)量的方法包括在遠程機3(K上執(zhí)行被枚舉的應(yīng)用的方法。在另一個實施例中,預(yù)定數(shù)量的方法包括在本地機10上執(zhí)行被枚舉的應(yīng)用的方法。在又一個實施例中,預(yù)定數(shù)量的方法包括在第二遠程機30'上執(zhí)行被枚舉的應(yīng)用的方法。在一些實施例中,預(yù)定數(shù)量的方法包括跨越應(yīng)用流傳輸會話向本地機10提供被枚舉的應(yīng)用的方法。在這些實施例之一中,本地機10包括流傳輸服務(wù)代理,該流傳輸服務(wù)代理能夠發(fā)起與遠程機30'的連接并從遠程機30'接收所發(fā)送的數(shù)據(jù)包流。數(shù)據(jù)包流可以包括包括被枚舉的應(yīng)用的應(yīng)用文件。在一些實施例中,應(yīng)用文件包括與應(yīng)用程序相關(guān)聯(lián)的數(shù)據(jù)文件。在其他實施例中,應(yīng)用文件包括執(zhí)行應(yīng)用程序所需的可執(zhí)行文件。在其他實施例中,應(yīng)用文件包括元數(shù)據(jù),元數(shù)據(jù)包括與文件相關(guān)的信息,例如位置、兼容性要求、配置數(shù)據(jù)、注冊數(shù)據(jù)、在隔離環(huán)境中使用的執(zhí)行腳本規(guī)則標(biāo)識或授權(quán)要求。在一些實施例中,經(jīng)流傳輸?shù)膽?yīng)用在傳輸包括流傳輸應(yīng)用的多個應(yīng)用文件中的每個應(yīng)用文件之前執(zhí)行。在這些實施例之一中,在本地機IO接收到多個應(yīng)用中的一個應(yīng)用文件時開始執(zhí)行經(jīng)流傳輸?shù)膽?yīng)用。在這些實施例的另一個中,在本地機IO接收到多個應(yīng)用文件中的可執(zhí)行應(yīng)用文件時開始執(zhí)行經(jīng)流傳輸?shù)膽?yīng)用。在這些實施例中的又一個中,本地機IO執(zhí)行多個應(yīng)用文件中第一個接收的應(yīng)用文件,該第一個接收的應(yīng)用文件請求訪問多個應(yīng)用文件中的笫二應(yīng)用文件。在一個實施例中,流傳輸?shù)膽?yīng)用在本地機10上執(zhí)行,而不永久駐留在本地機10上。在本實施例中,流傳輸?shù)膽?yīng)用可以在本地機10上執(zhí)行并在流傳輸?shù)膽?yīng)用終止時從本地機10被刪除。在另一個實施例中,在將每個應(yīng)用文件的預(yù)展開拷貝存儲在本地機10上之后在本地機10上執(zhí)行流傳輸?shù)膽?yīng)用。在又一實施例中,在將每個應(yīng)用文件的拷貝存儲在本地機上的隔離環(huán)境中之后,在本地機10上執(zhí)行流傳輸?shù)膽?yīng)用。在又一個實施例中,在將每個應(yīng)用文件的拷貝存儲在本地機10上的高速緩存中之后在本地機10上執(zhí)行流傳輸?shù)膽?yīng)用。在一個實施例中,響應(yīng)于本地機IO可能接收到流傳輸?shù)膽?yīng)用文件的判決,從預(yù)定數(shù)量的方法中選擇將應(yīng)用流傳輸?shù)奖镜貦C10的方法。在另一個實施例中,響應(yīng)于本地機IO已經(jīng)具有在本地執(zhí)行流傳輸?shù)膽?yīng)用文件授權(quán)的判決,從預(yù)定數(shù)量的方法中選擇將應(yīng)用流傳輸?shù)奖镜貦C10的方法。在其他實施例中,預(yù)定數(shù)量的方法包括向本地機10提供應(yīng)用輸出數(shù)據(jù)的方法,所述應(yīng)用輸出數(shù)據(jù)是在遠程機30上執(zhí)行被枚舉的應(yīng)用而生成的。在這些實施例之一中,遠程機30是接收執(zhí)行被枚舉的應(yīng)用的請求的遠程機30。在這些實施例中的另一個中,遠程機30為諸如文件服務(wù)器或應(yīng)用服務(wù)器的第二遠程機30'。在一些實施例中,被枚舉的應(yīng)用駐留在執(zhí)行被枚舉的應(yīng)用的遠程機30'上。在其他實施例中,執(zhí)行被枚舉的應(yīng)用的遠程機30'首先跨越應(yīng)用流傳輸會話從第二遠程機3(K接收被枚舉的應(yīng)用。在這些實施例之一中,遠程機30'包括流傳輸服務(wù)代理,該流傳輸服務(wù)代理能夠發(fā)起與第二遠程機3(K的連接并從第二遠程機30'接收所發(fā)送的數(shù)據(jù)流。在這些實施例的另一個中,可以利用負載均衡技術(shù)標(biāo)識第二遠程機30'。在這些實施例的又一個中,可以基于與遠程機3(K的接近情況標(biāo)識第二遠程機3(K。將結(jié)合以下的圖9更詳細地描述這些實施例。在一些實施例中,遠程機30從執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法中選擇用于將被枚舉的應(yīng)用流傳輸?shù)竭h程機30、在遠程機30上執(zhí)行數(shù)據(jù)的方法。在這些實施例之一中,遠程機30響應(yīng)于本地機10的評估而選擇方法。在這些實施例的另一個中,響應(yīng)于將策略應(yīng)用于評估本地機10來做出判決。在這些實施例的又一個中,響應(yīng)于對所接收的信任狀的評估做出判決。在一個實施例中,遠程機30接收包括被枚舉的應(yīng)用的多個應(yīng)用文件。在另一個實施例中,遠程機30通過諸如ICA表示層協(xié)議或遠程桌面窗口表示層協(xié)議或X-窗口表示層協(xié)議的表示層協(xié)議提供應(yīng)用輸出數(shù)據(jù)。在一些實施例中,遠程機30還提供與被枚舉的應(yīng)用相關(guān)聯(lián)的訪問信息,該訪問信息是響應(yīng)于選定的方法而產(chǎn)生的。在這些實施例之一中,訪問信息向本地機1o提供所選定的執(zhí)行被枚舉的應(yīng)用程序的方法的表示。在這些實施例的另一個中,訪問信息包括被枚舉的應(yīng)用的位置標(biāo)識,該標(biāo)識符合通用命名標(biāo)準(UNC)。在這些實施例的又一個中,訪問信息包括會話管理服務(wù)器的標(biāo)識。在一些實施例中,訪問信息包括啟動權(quán)證(launchticket),啟動權(quán)證包括認證信息。在這些實施例之一中,本地機10可以使用該啟動權(quán)證來認證從遠程機30接收的訪問信息。在這些實施例的另一個中,本地機10可以使用啟動權(quán)證來向持有被枚舉的應(yīng)用的第二遠程機30認證它自身。在這些實施例的又一個中,遠程機30響應(yīng)于本地機10對啟動權(quán)證的請求在訪問信息中包括啟動權(quán)證?,F(xiàn)在參考圖5,方框圖示出了本發(fā)明的一個實施例,其中,本地機IO請求執(zhí)行應(yīng)用程序,而遠程機30選擇執(zhí)行應(yīng)用程序的方法。在一個實施例中,遠程機30從本地機10接收信任狀。在另一個實施例中,遠程機30從本地機IO接收對可用應(yīng)用枚舉的請求。在一些實施例中,提供了多個冗余的遠程機30、30'、30"、30〃'和30〃"。在這些實施例之一中,例如,可以有多個文件服務(wù)器、多個會話管理服務(wù)器、多個分級機、多個web接口或多個訪問套件控制臺。在這些實施例的另一個中,如果遠程機出現(xiàn)故障,則選擇冗余的遠程機30來提供出故障機器的功能。在其他實施例中,盡管將遠程機30、3(K、30"、3(K〃和30""以及web接口558和訪問套件控制臺520描述為具有管理服務(wù)器、會話管理服務(wù)器、分級機、文件服務(wù)器、web服務(wù)器和訪問套件控制臺的獨立功能,但可以提供具有所有這些機器的功能的單個遠程機30。在其他實施例中,遠程機30可以提供其他遠程機之一或多個的功能和服務(wù)?,F(xiàn)在更詳細地參考圖5,方框圖示出了提供對應(yīng)用程序的訪問的遠程機30的一個實施例。除了上文參考圖1D所述的接口和子系統(tǒng)之外,遠程機30還可以包括管理通信服務(wù)514、XML服務(wù)516和管理服務(wù)504。管理服務(wù)504可以包括應(yīng)用管理子系統(tǒng)506、服務(wù)器管理子系統(tǒng)508、會話管理子系統(tǒng)510和許可管理子系統(tǒng)512。遠程才幾30可以與訪問套件控制臺520通信。在一個實施例中,管理服務(wù)504還包括專用遠程過程調(diào)用子系統(tǒng)、MetaFrame遠程過程調(diào)用(MFRPC)子系統(tǒng)522。在一些實施例中,MFRPC50子系統(tǒng)522在遠程機30上諸如XML服務(wù)516和管理服務(wù)504的子系統(tǒng)之間對通信進行路由。在其他實施例中,MFRPC子系統(tǒng)522提供用于調(diào)用管理功能的遠程過程調(diào)用(RPC)接口,提供對管理服務(wù)504的RPC調(diào)用并向發(fā)起調(diào)用的子系統(tǒng)返回結(jié)果。在一些實施例中,遠程機30與諸如以上圖4B所述的協(xié)議機406的協(xié)議機通信。在這些實施例之一中,遠程機30與駐留在遠程機3(K上的協(xié)議機406通信。在其他實施例中,遠程機30還包括協(xié)議機406。遠程機30可以與訪問套件控制臺520通信。訪問套件控制臺520可以持有管理工具,供遠程機30或農(nóng)場38的管理員使用。在一些實施例中,遠程機30利用XML與訪問套件控制臺5W通信。在其他實施例中,遠程機30利用簡單對象訪問協(xié)議(SOAP)與訪問套件控制臺520通信。對于諸如圖1D和圖5中所述的那些遠程機30包括子系統(tǒng)子集的實施例,管理服務(wù)可以包括多個子系統(tǒng)。在一個實施例中,每個子系統(tǒng)或者是單線程的或者是多線程的子系統(tǒng)。線程是多任務(wù)環(huán)境中運行的獨立執(zhí)行流。單線程子系統(tǒng)能夠一次僅執(zhí)行一個線程。多線程子系統(tǒng)能夠支持多個并行執(zhí)行的線程,即,多線程子系統(tǒng)可以同時執(zhí)行多個任務(wù)。應(yīng)用管理子系統(tǒng)506關(guān)于與能夠被流傳輸?shù)亩鄠€應(yīng)用相關(guān)的信息。在一個實施例中,應(yīng)用管理子系統(tǒng)506處理來自其他部件的請求,例如存儲、刪除、更新、枚舉或解析應(yīng)用的請求。在另一個實施例中,應(yīng)用管理子系統(tǒng)506處理由與能夠被流傳輸?shù)膽?yīng)用相關(guān)的部件發(fā)送的請求??梢詫⑦@些事件分成三種事件應(yīng)用發(fā)布、應(yīng)用枚舉和應(yīng)用啟動,以下將詳細描述每種。在其他實施例中,應(yīng)用管理子系統(tǒng)506還包括對應(yīng)用解析、應(yīng)用公開和應(yīng)用發(fā)布的支持。在其他實施例中,應(yīng)用管理子系統(tǒng)506使用數(shù)據(jù)暫存器存儲應(yīng)用性質(zhì)和策略。服務(wù)器管理子系統(tǒng)508處理對于在服務(wù)器農(nóng)場配置中的應(yīng)用流傳輸特定的配置。在一些實施例中,服務(wù)器管理子系統(tǒng)508還處理需要檢索與農(nóng)場38的配置相關(guān)的信息的事件。在其他實施例中,服務(wù)器管理子系統(tǒng)508處理由與跨應(yīng)用流傳輸提供對應(yīng)用的訪問的遠程機相關(guān)的其他部件發(fā)出的事件和這些遠程機的性質(zhì)。在一個實施例中,服務(wù)器管理子系統(tǒng)508存儲遠程機性質(zhì)和農(nóng)場性質(zhì)。在一些實施例中,遠程機30還包括為一個或多個專用應(yīng)用子系統(tǒng)提供服務(wù)的一個或多個〃>共應(yīng)用子系統(tǒng)524。這些遠程機30也可以具有一個或多個為一個或多個專用遠程機子系統(tǒng)提供服務(wù)的公共遠程機子系統(tǒng)。在其他實施例中,不提供公共應(yīng)用子系統(tǒng)524,每個專用應(yīng)用和遠程機子系統(tǒng)都實施所有所需的功能。在遠程機30包括公共應(yīng)用子系統(tǒng)524的一個實施例中,公共應(yīng)用子系統(tǒng)524管理所發(fā)布應(yīng)用的公共性質(zhì)。在一些實施例中,公共應(yīng)用子系統(tǒng)524處理需要檢索與所發(fā)布應(yīng)用或公共性質(zhì)相關(guān)的信息的事件。在其他實施例中,7>共應(yīng)用子系統(tǒng)524處理由與/^共應(yīng)用或它們的性質(zhì)相關(guān)的其他部件發(fā)送的所有事件。公共應(yīng)用子系統(tǒng)524可以向農(nóng)場38"發(fā)布"應(yīng)用,這使得本地機10可以枚舉和啟動每個應(yīng)用。通常,在希望能使用該應(yīng)用的每個遠程機30上安裝該應(yīng)用。在一個實施例中,為了發(fā)布應(yīng)用,管理員運行管理工具,執(zhí)行信息,例如持有該應(yīng)用的遠程機30、每個遠程機上的可執(zhí)行文件名稱、要執(zhí)行應(yīng)用的本地機所需的能力(例如音頻、視頻、加密等)以及能使用該應(yīng)用的用戶列表。將這種執(zhí)行的信息分成應(yīng)用特定信息和公用信息。應(yīng)用特定信息的實例為訪問該應(yīng)用的路徑名以及用于運行應(yīng)用的可執(zhí)行文件的名稱。公用信息(即公共應(yīng)用數(shù)據(jù))例如包括應(yīng)用的用戶友好的名稱(例如"MicrosoftWORD2000")、應(yīng)用的唯一標(biāo)識和應(yīng)用的用戶??梢詫?yīng)用特定信息和公用信息發(fā)送到控制持有應(yīng)用的每個遠程機30上的應(yīng)用的專用應(yīng)用子系統(tǒng)。專用應(yīng)用子系統(tǒng)可以將應(yīng)用特定信息和公用信息寫入持久存儲器240中。在提供公共應(yīng)用子系統(tǒng)524時,公共應(yīng)用子系統(tǒng)524也提供了用于管理農(nóng)場38中所發(fā)布應(yīng)用的設(shè)施。通過公共應(yīng)用子系統(tǒng)524,管理員能夠利用諸如訪問套件控制臺520的管理工具來管理農(nóng)場38的應(yīng)用,以配置應(yīng)用組并產(chǎn)生這些應(yīng)用組的應(yīng)用樹形體系。每個應(yīng)用組可以表示成應(yīng)用樹形體系中的文件夾。應(yīng)用樹形體系中的每個應(yīng)用文件夾可以包括一個或多個其他應(yīng)用文件夾和遠程機的特定實例。公共應(yīng)用子系統(tǒng)524提供了生成、移動、重命名、刪除和枚舉應(yīng)用文件夾的功能。在一個實施例中,公共應(yīng)用子系統(tǒng)524在處理應(yīng)用枚舉和應(yīng)用解析請求時支持應(yīng)用管理子系統(tǒng)506。在一些實施例中,公共應(yīng)用子系統(tǒng)524提供了響應(yīng)于數(shù)據(jù)文件類型和處理該數(shù)據(jù)文件類型的應(yīng)用之間的映射而識別要執(zhí)行的應(yīng)用的功能。在其他實施例中,第二應(yīng)用子系統(tǒng)提供了文件類型關(guān)聯(lián)的功能。在一些實施例中,遠程機30還可以包括策略子系統(tǒng)。策略子系統(tǒng)輸?shù)奖镜貦C10的策略規(guī)則。在一些實施例中,策略子系統(tǒng)標(biāo)識出與訪問套件控制臺520中發(fā)布的流傳輸?shù)膽?yīng)用相關(guān)聯(lián)的服務(wù)器訪問選項。在這些實施例之一中,策略子系統(tǒng)將服務(wù)器訪問選項用作代替策略規(guī)則的策略,會話監(jiān)測子系統(tǒng)510維持和更新與本地機10相關(guān)聯(lián)的應(yīng)用流傳輸會話的會話狀態(tài)并執(zhí)行應(yīng)用流傳輸會話的許可要求。在一個實施例中,會話管理子系統(tǒng)510監(jiān)測會話并記錄事件日志,所述事件例如是應(yīng)用的啟動或應(yīng)用流傳輸會話的終止。在另一個實施例中,會話監(jiān)測子系統(tǒng)510接收從本地機10向遠程機30發(fā)送的通信,例如心跳消息。在又一個實施例中,會話管理子系統(tǒng)510對來自管理工具,例如訪問套件控制臺520中的工具的有關(guān)會話的查詢做出響應(yīng)。在一些實施例中,管理服務(wù)504還包括與會話管理子系統(tǒng)通信的許可管理子系統(tǒng),以提供并維持對本地機執(zhí)行應(yīng)用的許可。在一個實施例中,管理服務(wù)504提供用于應(yīng)用枚舉和應(yīng)用解析的功能。在一些實施例中,管理服務(wù)504還提供用于應(yīng)用啟動、會話監(jiān)測和跟蹤、應(yīng)用發(fā)布和許可執(zhí)行的功能?,F(xiàn)在參考圖6,方框圖示出了包括提供應(yīng)用枚舉的管理服務(wù)的遠程機30的一個實施例。管理服務(wù)504可以利用與XML服務(wù)516交互的web接口提供應(yīng)用枚舉。在一個實施例中,XML服務(wù)516為本地機10的用戶枚舉應(yīng)用。在另一個實施例中,XML服務(wù)516實施上述ICA瀏覽器子系統(tǒng)和程序鄰域子系統(tǒng)的功能。XML服務(wù)516可以與管理通信服務(wù)514交互。在一個實施例中,XML服務(wù)516利用管理通信服務(wù)514生成應(yīng)用枚舉請求。應(yīng)用枚舉請求可以包括表明在執(zhí)行被枚舉的應(yīng)用時使用的執(zhí)行方法的客戶端類型。應(yīng)用枚舉請求被發(fā)送到公共應(yīng)用子系統(tǒng)524。在一個實施例中,y^共應(yīng)用子系統(tǒng)524返回與應(yīng)用枚舉請求的客戶端類型相關(guān)聯(lián)的應(yīng)用的枚舉。在另一個實施例中,公共應(yīng)用子系統(tǒng)52453返回本地機10的用戶可用的應(yīng)用枚舉,該枚舉是響應(yīng)于向與本地機10相關(guān)的信任狀應(yīng)用策略選擇的。在本實施例中,'策略引擎406可以向收集代理404收集的信任狀應(yīng)用策略,如以上參考圖4所述。在又一個實施例中,返回應(yīng)用枚舉并推遲向本地機IO應(yīng)用策略,直到請求執(zhí)行被枚舉的應(yīng)用為止。管理服務(wù)504可以提供應(yīng)用解析服務(wù),用于識別持有應(yīng)用的第二遠程機30'。在一個實施例中,第二遠程機30'是文件服務(wù)器或應(yīng)用服務(wù)器。在一些實施例中,管理服務(wù)504從包括標(biāo)識符的文件查詢持有應(yīng)用的多個遠程機30。在一個實施例中,管理服務(wù)504響應(yīng)于本地機10執(zhí)行應(yīng)用的請求提供應(yīng)用解析服務(wù)。在另一個實施例中,管理服務(wù)504識別出能夠?qū)嵤┡c第一遠程機30不同的執(zhí)行應(yīng)用的方法的第二遠程機3(K。在一些實施例中,管理服務(wù)504識別出能夠?qū)?yīng)用程序流傳輸?shù)奖镜貦C10的第一遠程機3(K以及能夠執(zhí)行應(yīng)用程序并向本地機10提供執(zhí)行應(yīng)用程序所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)的第二遠程機30'。在一個實施例中,Web接口向XML服務(wù)516發(fā)送應(yīng)用解析請求。在另一個實施例中,XML服務(wù)516接收應(yīng)用解析請求并將請求發(fā)送到MFRPC子系統(tǒng)522。在一個實施例中,MFRPC子系統(tǒng)522識別出所接收的應(yīng)用解析請求中包括的客戶端類型。在另一個實施例中,MFRPC子系統(tǒng)向客戶端類型應(yīng)用策略并決定向本地機10"流傳輸,,該應(yīng)用。在本實施例中,MFRPC子系統(tǒng)522可以向應(yīng)用管理子系統(tǒng)506轉(zhuǎn)發(fā)應(yīng)用解析請求。在一個實施例中,在從MFRPC子系統(tǒng)522接收到應(yīng)用解析請求時,應(yīng)用管理子系統(tǒng)506可以識別出作為本地機10的會話管理服務(wù)器562工作的遠程機3(T出。在一些實施例中,本地機向會話管理服務(wù)器562發(fā)送心跳消息。在另一個實施例中,應(yīng)用管理子系統(tǒng)506可以識別出持有包括要流傳輸?shù)奖镜貦C10的應(yīng)用的多個應(yīng)用文件的遠程機30'。在一些實施例中,應(yīng)用管理子系統(tǒng)506使用枚舉了多個持有多個應(yīng)用文件的遠程機的文件來識別遠程機30、在其他實施例中,應(yīng)用管理子系統(tǒng)506識別出IP地址與本地機10的IP地址類似的遠程才幾30'。在其他實施例中,應(yīng)用管理子系統(tǒng)506識別出IP地址在本地機10可訪問的IP地址范圍內(nèi)的遠程機30'。在又一個實施例中,MFRPC子系統(tǒng)522向客戶端類型應(yīng)用策略并判定可以在遠程機30'上執(zhí)行該應(yīng)用,該遠程機30'向本地機IO發(fā)送執(zhí)行應(yīng)用產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。在本實施例中,MFRPC子系統(tǒng)522可以向公共應(yīng)用子系統(tǒng)524轉(zhuǎn)發(fā)應(yīng)用解析請求以檢索遠程機3(K的宿主機地址的標(biāo)識符。在一個實施例中,被識別的遠程機30'可以利用諸如ICA或RDP或X窗口的表示層協(xié)議向本地機發(fā)送應(yīng)用輸出數(shù)據(jù)。在一些實施例中,遠程機30'跨越應(yīng)用流傳輸會話從第二遠程機3(K接收應(yīng)用。在一個實施例中,在完成應(yīng)用枚舉和應(yīng)用解析時,將訪問信息發(fā)送到本地機10,該訪問信息包括用于執(zhí)行被枚舉的應(yīng)用的方法的標(biāo)識和持有被枚舉的應(yīng)用的遠程機3(K的標(biāo)識符。在管理服務(wù)504確定將要在本地機10上執(zhí)行被枚舉的應(yīng)用的一個實施例中,web接口創(chuàng)建含有有關(guān)被枚舉的應(yīng)用的解析域名信息的文件并將其發(fā)送到本地機10。在一些實施例中,可以利用".rad,,擴展名標(biāo)識該文件。本地機10可以響應(yīng)于所接收文件的內(nèi)容執(zhí)行被枚舉的應(yīng)用。表2示出了該文件中所含信息的一個實施例<table>tableseeoriginaldocumentpage55</column></row><table>表2該文件還含有本地機執(zhí)行應(yīng)用時所用的啟動權(quán)證,如表2所述。在一些實施例中,啟動權(quán)證在預(yù)定一段時間之后期滿。在一個實施例中,本地機向持有要執(zhí)行的被枚舉應(yīng)用的遠程機提供啟動權(quán)證。使用啟動權(quán)證授權(quán)本地機的用戶訪問被枚舉的應(yīng)用有助于防止用戶重復(fù)使用該文件或者生成該文件未授權(quán)版本以不適當(dāng)?shù)卦L問應(yīng)用。在一個實施例中,該啟動權(quán)證包括大的、隨機生成的數(shù)字。如以上參考圖2所述,在接收到與本地機10或本地機10的用戶相關(guān)的信任狀時開始選擇執(zhí)行應(yīng)用程序的方法的方法(步驟202),并響應(yīng)于所接收的信任狀提供本地機10可用的多個應(yīng)用程序的枚舉(步稞2(M)。接收請求來執(zhí)行被枚舉的應(yīng)用(步驟206)并響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于被枚舉的應(yīng)用的應(yīng)用流傳輸?shù)姆椒?步驟208)?,F(xiàn)在參考圖7,流程圖示出了訪問包括應(yīng)用程序多個文件所采取的步驟的一個實施例。本地機執(zhí)行本地機的啟動前分析(步驟210)。在一個實施例中,本地機IO在檢索和執(zhí)行包括應(yīng)用程序的多個應(yīng)用文件之前執(zhí)行啟動前分析。在另一個實施例中,本地機10響應(yīng)于所接收的指示執(zhí)行啟動前分析,該指示表明為了授權(quán)訪問包括應(yīng)用程序的多個應(yīng)用文件需要進行啟動前分析。在一些實施例中,本地機10從遠程機30接收與多個應(yīng)用文件相關(guān)聯(lián)的訪問信息。在這些實施例之一中,訪問信息包括持有多個應(yīng)用文件的遠程機30'的位置的標(biāo)識。在這些實施例的另一個中,本地機10接收包括應(yīng)用程序的一個或多個版本的多個應(yīng)用的標(biāo)識。在這些實施例的又一個中,本地機IO接收包括一個或多個應(yīng)用程序的多個應(yīng)用文件的標(biāo)識。在其他實施例中,本地機10接收本地機10可用的應(yīng)用程序枚舉,以進行檢索和執(zhí)行。在這些實施例之一中,枚舉來源于對本地機10的評估。在其他實施例中,本地機10響應(yīng)于所檢索的包括應(yīng)用程序的多個應(yīng)用文件的標(biāo)識,檢索至少一個特征。在一些實施例中,訪問信息包括能夠授權(quán)本地機訪問多個應(yīng)用文件的啟動權(quán)證。在這些實施例之一中,響應(yīng)于對本地機10的評估向本地機10提供啟動權(quán)證。在這些實施例的另一個中,在本地機10進行本地機10的啟動前分析之后向本地機IO提供啟動權(quán)證。在其他實施例中,本地機IO檢索用于執(zhí)行多個應(yīng)用文件所需的至少一個特征。在這些實施例之一中,訪問信息包括至少一個特征。在這些實施例的另一個中,訪問信息表明了本地機IO檢索的文件位置,該文件枚舉了至少一個特征。在這些實施例的又一個中,枚舉至少一程機30的才示識'本地機IO判斷本地機上至少一個特征的存在。在一個實施例中,本地機IO作為啟動前分析的一部分執(zhí)行該判斷。在另一個實施例中,本地機10判斷本地機10是否具有至少一個特征。在一個實施例中,判斷本地機IO上是否存在至少一個特征包括判斷是否在本地機上安裝了設(shè)備驅(qū)動程序。在另一個實施例中,判斷本地機10上是否存在至少一個特征包括判斷是否在本地機10上安裝了操作系統(tǒng)。在又一實施例中,判斷本地機10上是否存在至少一個特征包括判斷是否在本地機IO上安裝了特定的操作系統(tǒng)。在又一個實施例中,判斷本地機10上是否存在至少一個特征包括判斷是否在本地機10上安裝了特定版本水平的操作系統(tǒng)。在一些實施例中,判斷本地機io上是否存在至少一個特征包括判斷本地機IO是否已經(jīng)獲得了執(zhí)行被枚舉的應(yīng)用的授權(quán)。在這些實施例之一中,由本地機10判斷本地機10是否已接收到執(zhí)行被枚舉的應(yīng)用的許可。在這些實施例的另一個中,由本地機10判斷本地機10是否已接收到跨越應(yīng)用流傳輸會話接收包括被枚舉的應(yīng)用的多個應(yīng)用文件的許可。在其他實施例中,判斷本地機10上是否存在至少一個特征包括判斷本地機10是否具有檢索和執(zhí)行被枚舉應(yīng)用的足夠大的可用帶寬。在一些實施例中,判斷本地機io上是否存在至少一個特征包括在本地機10上執(zhí)行腳本。在其他實施例中,判斷本地機10上是否存在至少一個特征包括在本地機io上安裝軟件。在其他實施例中,判斷本地機10上是否存在至少一個特征包括在本地機10上修改注冊表。在又一實施例中,判斷本地機IO上是否存在至少一個特征包括向本地機10傳輸收集代理404以在本地機10上執(zhí)行,用來收集與本地機10相關(guān)的信任狀。本地機10從遠程機30請求執(zhí)行多個應(yīng)用文件的授權(quán),該請求包括啟動權(quán)證(步驟212)。在一些實施例中,本地機10響應(yīng)于本地機10上是否存在至少一個特征的判斷做出請求。在這些實施例之一中,本地機10判定本地機10上存在多個特征,該多個特征與被枚舉的應(yīng)用相關(guān)并是響應(yīng)于執(zhí)行被枚舉應(yīng)用的請求而接收的。在這些實施例的57另一個中,本地機IO是否接收到執(zhí)行被枚舉的應(yīng)用文件的授權(quán)的指示取決于本地機10上是否存在至少一個特征。在一個實施例中,本地機10接收應(yīng)用程序的枚舉,請求執(zhí)行被枚舉的應(yīng)用并接收訪問信息,該訪問信息包括至少一個特征和啟動權(quán)證,該啟動權(quán)證授權(quán)在判定本地機10上存在至少一個特征時執(zhí)行被枚舉的應(yīng)用。在一個實施例中,本地機10從遠程機30接收授權(quán)執(zhí)行多個應(yīng)用文件的許可。在一些實施例中,該許可授權(quán)在預(yù)定時間期間內(nèi)執(zhí)行。在這些實施例之一中,該許可要求傳輸心跳消息,以維持執(zhí)行多個應(yīng)用文件的授權(quán)。在另一個實施例中,本地機IO從遠程機30接收許可以及與監(jiān)測多個應(yīng)用文件的執(zhí)行的遠程機30相關(guān)的標(biāo)識符。在一些實施例中,如以上圖5所示,遠程機是會話管理服務(wù)器562。在這些實施例之一中,會話管理服務(wù)器562包括監(jiān)測與本地機10相關(guān)的會話的會話管理子系統(tǒng)510。在其他實施例中,獨立的遠程機30〃〃為會話管理服務(wù)器562。本地機IO接收并執(zhí)行多個應(yīng)用文件(步驟214)。在一個實施例中,本地機IO跨越應(yīng)用流傳輸會話接收多個應(yīng)用文件。在另一個實施例中,本地機10在本地機10上的隔離環(huán)境中存儲多個應(yīng)用文件。在又一個實施例中,本地機IO在接收多個應(yīng)用文件中的第二個之前執(zhí)行多個應(yīng)用文件之一。在一些實施例中,遠程機向多個本地機發(fā)送多個應(yīng)用文件,多個本地機中的每個本地機已經(jīng)與遠程機建立了獨立的應(yīng)用流傳輸會話。在一些實施例中,本地機IO在高速緩存中存儲多個應(yīng)用文件并延遲執(zhí)行應(yīng)用文件。在這些實施例之一中,本地機IO接收授權(quán)以在預(yù)定時間段期間執(zhí)行應(yīng)用文件。在這些實施例的另一個中,當(dāng)本地機10沒有對網(wǎng)絡(luò)訪問時,本地機10接收授權(quán)以在預(yù)定時間段內(nèi)執(zhí)行應(yīng)用文件。在其他實施例中,本地機在高速緩存中存儲多個應(yīng)用文件。在這些實施例之一中,應(yīng)用流傳輸客戶端552建立內(nèi)部應(yīng)用流傳輸會話以從高速緩存檢索多個應(yīng)用文件。在這些實施例的另一個中,當(dāng)本地機10沒有對網(wǎng)絡(luò)訪問時,本地機10接收授權(quán)以在預(yù)定時間段內(nèi)執(zhí)行應(yīng)用文件。本地機10向遠程機發(fā)送至少一個心跳消息(步驟216)。在一些實施例中,本地機IO發(fā)送至少一個心跳消息以維持授權(quán),以執(zhí)行包括被枚舉的應(yīng)用的多個應(yīng)用文件。在其他實施例中,本地機10發(fā)送至少一個心跳消息以維持授權(quán),以檢索多個應(yīng)用文件中的應(yīng)用文件.在其他實施例中,本地機10接收許可,該許可授權(quán)在預(yù)定時間段中執(zhí)行多個應(yīng)用文件。在一些實施例中,本地機10向第二遠程機30"〃發(fā)送心跳消息。在這些實施例之一中,第二遠程機30"〃可以包括監(jiān)測多個應(yīng)用文件的檢索和執(zhí)行的會話管理服務(wù)器562。在這些實施例的另一個中,第二遠程機30'"'可以響應(yīng)于所發(fā)送的心跳消息更新授權(quán)執(zhí)行多個應(yīng)用文件的許可。在這些實施例的又一個中,第二遠程機30〃〃可以響應(yīng)于所發(fā)送的心跳消息向本地機IO發(fā)送命令。返回到圖5,本地機10可以包括應(yīng)用流傳輸客戶端552、流傳輸服務(wù)554和隔離環(huán)境556。應(yīng)用流傳輸客戶端552可以是可執(zhí)行程序。在一些實施例中,應(yīng)用流傳輸客戶端552可以能啟動另一可執(zhí)行程序。在其他實施例中,應(yīng)用流傳輸客戶端552可以發(fā)起流傳輸服務(wù)554。在這些實施例之一中,應(yīng)用流傳輸客戶端552可以為流傳輸服務(wù)554提供與執(zhí)行應(yīng)用程序相關(guān)的參數(shù)。在這些實施例的另一個中,應(yīng)用流傳輸客戶端552可以利用遠程過程調(diào)用發(fā)起流傳輸服務(wù)554.在一個實施例中,本地機10請求執(zhí)行應(yīng)用程序并從遠程機30接收關(guān)于執(zhí)行的訪問信息。在另一個實施例中,應(yīng)用流傳輸客戶端552接收該訪問信息。在又一個實施例中,應(yīng)用流傳輸客戶端552向流傳輸服務(wù)554提供訪問信息。在又一個實施例中,訪問信息包括與包括應(yīng)用程序的多個應(yīng)用文件相關(guān)的文件位置的標(biāo)識。在一個實施例中,流傳輸服務(wù)554檢索與多個應(yīng)用文件相關(guān)的文件。在一些實施例中,被檢索的文件包括多個應(yīng)用文件的位置標(biāo)識。在這些實施例之一中,流傳輸服務(wù)554檢索多個應(yīng)用文件。在這些實施例的另一個中,流傳輸服務(wù)554在本地機10上執(zhí)行所檢索的多個應(yīng)用文件。在其他實施例中,流傳輸服務(wù)554向遠程機發(fā)送心跳消息以保持對檢索和執(zhí)行多個應(yīng)用文件的授權(quán)。在一些實施例中,所檢索的文件包括超過一個多個應(yīng)用文件的位置標(biāo)識,每一多個應(yīng)用文件包括不同的應(yīng)用程序。在這些實施例之一中,流傳輸服務(wù)554檢索包括與本地機10兼容的應(yīng)用程序的多個應(yīng)用文件。在這些實施例的另一個中,流傳輸服務(wù)554響應(yīng)于對本地機1059的評估接收對檢索特定多個應(yīng)用文件的授權(quán)。在一些實施例中,在諸如CAB、ZIP、SIT、TAR、JAR的檔案文件或其他檔案文件中壓縮多個應(yīng)用文件并將其存在文件服務(wù)器上。在一個實施例中,存儲在檔案文件中的多個應(yīng)用文件包括應(yīng)用程序。在另一個實施例中,存儲在檔案文件中的多個多個應(yīng)用文件的每個包括應(yīng)用程序的不同版本。在又一個實施例中,存儲在檔案文件中的多個多個應(yīng)用文件的每個包括不同的應(yīng)用程序。在一些實施例中,檔案文件包括與多個應(yīng)用文件中的每個文件相關(guān)聯(lián)的元數(shù)據(jù)。在這些實施例之一中,流傳輸服務(wù)554響應(yīng)于所包括的元數(shù)據(jù)產(chǎn)生目錄結(jié)構(gòu)。如下文將要參考圖12更詳細描述的,可以用元數(shù)據(jù)來滿足應(yīng)用程序?qū)δ夸浢杜e的請求。在一個實施例中,流傳輸服務(wù)554對檔案文件解壓以獲取多個應(yīng)用文件。在另一個實施例中,流傳輸服務(wù)554在從多個應(yīng)用文件檢索文件之前判斷本地機10上的高速緩沖存儲器中是否存在多個應(yīng)用文件之內(nèi)的文件的本地拷貝。在又一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564判斷高速緩沖存儲器中是否存在本地拷貝。在一些實施例中,流傳輸服務(wù)554在檢索多個應(yīng)用文件之內(nèi)的文件之前修改注冊項。在一些實施例中,流傳輸服務(wù)554在本地機10上的高速緩沖存儲器中存儲多個應(yīng)用文件。在這些實施例之一中,流傳輸服務(wù)554可以提供在接收到高速緩存多個應(yīng)用文件的請求時高速緩存多個應(yīng)用文件的功能。在這些實施例的另一個中,流傳輸服務(wù)554可以提供在本地機10上固定高速緩沖存儲器的功能。在這些實施例的另一個中,流傳輸服務(wù)554可以使用算法來調(diào)節(jié)高速緩沖存儲器的大小和位置。在一些實施例中,流傳輸服務(wù)554在本地機10上生成隔離環(huán)境556。在這些實施例之一中,流傳輸服務(wù)554使用隔離環(huán)境應(yīng)用編程接口生成隔離環(huán)境556。在這些實施例的另一個中,流傳輸服務(wù)554在隔離環(huán)境556中存儲多個應(yīng)用文件。在這些實施例的又一個中,流傳輸服務(wù)554在隔離環(huán)境之內(nèi)執(zhí)行多個應(yīng)用文件中的文件。在這些實施例中的又一個中,流傳輸服務(wù)554在隔離環(huán)境中執(zhí)行應(yīng)用程序。對于接收到在本地機10上執(zhí)行應(yīng)用的授權(quán)的實施例而言,可以在隔離環(huán)境556中發(fā)生應(yīng)用的執(zhí)行。在一些實施例中,在執(zhí)行應(yīng)用之前在本地機10上存儲包括應(yīng)用的多個應(yīng)用文件。在其他實施例中,在執(zhí)行應(yīng)用之前在本地機10上存儲多個應(yīng)用文件的子集。在其他實施例中,多個應(yīng)用文件不駐留在隔離環(huán)境556中。在其他實施例中,多個應(yīng)用的子集不駐留在本地機10上。無論多個應(yīng)用文件的子集或多個應(yīng)用文件中的每個應(yīng)用文件是否駐留在本地機10上或隔離環(huán)境556中,在一些實施例中,都可以在隔離環(huán)境556中執(zhí)行多個應(yīng)用文件中的應(yīng)用文件。隔離環(huán)境556可以由核心系統(tǒng)構(gòu)成,該核心系統(tǒng)能夠提供文件系統(tǒng)虛擬化、注冊系統(tǒng)虛擬化和命名對象虛擬化,以減少應(yīng)用兼容性問題,而無須向應(yīng)用源代碼的任何變化。隔離環(huán)境556在用于注冊和命名對象虛擬化的用戶模式中以及在使用文件系統(tǒng)過濾器驅(qū)動程序進行文件系統(tǒng)虛擬化的內(nèi)核程序中都可以利用轉(zhuǎn)播來重定向應(yīng)用資源請求。下文是對隔離環(huán)境556的一些實施例的描述。現(xiàn)在參考圖8A,示出了在具有較少應(yīng)用兼容性和應(yīng)用交際性問題的操作系統(tǒng)8100的控制下運行的計算機的一個實施例。操作系統(tǒng)8100通過其系統(tǒng)層8108使應(yīng)用程序8112、8114能夠使用各種本地資源。將把系統(tǒng)層8108收錄的資源視圖稱為"系統(tǒng)范圍"。為了避免應(yīng)用程序8112、8114對本地資源8102、8104、8106、8107的沖突訪問,提供隔離環(huán)境8200。如圖8A所示,隔離環(huán)境8200包括應(yīng)用隔離層8220和用戶隔離層8240。從概念上講,隔離環(huán)境8200通過應(yīng)用隔離層8220為應(yīng)用程序8112、8114提供諸如文件系統(tǒng)8102、注冊表8104、對象8106和窗口名稱8107的本地資源的獨特視圖。每個隔離層修改提供給應(yīng)用的本地資源視圖。將把層提供的修改后的本地資源視圖稱為該層的"隔離范圍"。如圖8A所示,應(yīng)用隔離層包括兩個應(yīng)用隔離范圍8222、8224。范圍8222表示提供給應(yīng)用8112的本地資源視圖,范圍8224表示提供給應(yīng)用8114的本地資源視圖。于是,在圖8A所示的實施例中,為APP18112提供文件系統(tǒng)8102'的特定視圖,而為APP28114提供對其特有的文件系統(tǒng)8102"的另一視圖。在一些實施例中,應(yīng)用隔離層8220向在操作系統(tǒng)8100上執(zhí)行的每一個體應(yīng)用程序提供本地資源8102、8104、8106、8107的特定視圖。在其他實施例中,可以將應(yīng)用程序8112、8114分成組,在這些實施例中,應(yīng)用隔離層8220提供每組應(yīng)用程序的本地資源的特定視圖??梢詫_突的應(yīng)用程序放入分開的組中以提高應(yīng)用的兼容性和交際性。在其他實施例中,可以由管理配置屬于一組的應(yīng)用。在一些實施例中,可以將"穿過"隔離范圍定義為精確對應(yīng)于系統(tǒng)范圍。換言之,在穿過隔離范圍之內(nèi)執(zhí)行的應(yīng)用直接在系統(tǒng)范圍上運行。在一些實施例中,進一步將應(yīng)用隔離范圍分成分層子范圍。主子范圍包含基本應(yīng)用隔離范圍,額外的子范圍包含可以由應(yīng)用的多個執(zhí)行實例看得見的對該范圍的各種修改。例如,子范圍可以包含對范圍的修改,該修改體現(xiàn)出應(yīng)用補丁水平的改變或額外特征的安裝或移除。在一些實施例中,被使得對執(zhí)行應(yīng)用的實例可見的額外子范圍的組是可以配置的。在一些實施例中,可見子范圍的組對于執(zhí)行應(yīng)用的所有實例而言都是相同的,不論是代表哪個用戶執(zhí)行應(yīng)用的。在其他實施例中,該組可見子范圍可以相對于執(zhí)行應(yīng)用的不同用戶而變化。在其他實施例中,可以定義多組子范圍,用戶對于使用哪組可以具有選擇機會。在一些實施例中,在不再需要時可以拋棄子范圍。在一些實施例中,可以將一組子范圍中包含的修改合并到一起來形成單個子范圍。現(xiàn)在參考圖8B,示出了具有減少的應(yīng)用兼容性和應(yīng)用交際性問題的多用戶計算機。多用戶計算機包括系統(tǒng)層8108中的本地資源8102、8104、8106、8107以及上文剛剛討論過的隔離環(huán)境8200。應(yīng)用隔離層8220如上所迷運行,為應(yīng)用或應(yīng)用組提供本地資源的修改視圖。從概念上講,用戶隔離層8240為應(yīng)用程序8112、8114提供本地資源視圖,基于代表其執(zhí)行應(yīng)用的用戶身份進一步改變該本地資源視圖。如圖8B所示,用戶隔離層8240可以被認為包括若干用戶隔離范圍8242'、8242"、8242'''、8242'"'、8242'〃〃(統(tǒng)稱為8242)。用戶隔離范圍8242提供本地資源的應(yīng)用特異性視圖的用戶特異性視圖。例如,為代表用戶"a,,在用戶會話8110中執(zhí)行的APP18112提供由用戶隔離范圍8242'和應(yīng)用隔離范圍8222二者改變或修改的文件系統(tǒng)視圖8102'(a)。換言之,用戶隔離層8240通過在應(yīng)用隔離范圍8222提供的應(yīng)用特異性視圖修改上"層疊"用戶隔離范圍8242'"提供的用戶特異性視圖修改(該應(yīng)用特異性視圖修改又被層疊在系統(tǒng)層提供的本地資源的系統(tǒng)范圍視圖之上)來為每個個體用戶改變本地資源視圖。例如,當(dāng)APP18112的第一實例訪問注冊表數(shù)據(jù)庫8104中的條目時,查詢對第一用戶會話和應(yīng)用8104'(a)特定的注冊表數(shù)據(jù)庫視圖。如果在注冊表8104'(a)的用戶特異性視圖中找到了所請求的注冊表項,則將該注冊表項返回到APP18112。如果沒有找到,則查詢對應(yīng)用8104'特定的注冊表數(shù)據(jù)庫視圖。如果在注冊表8104'的應(yīng)用特異性視圖中找到了所請求的注冊表項,則將該注冊表項返回到APP18112。如果未找到,則將系統(tǒng)層8108中的注冊表數(shù)據(jù)庫8104中存儲的注冊表項(即本地注冊表項)返回到APP18112。在一些實施例中,用戶隔離層8240為每一個體用戶提供隔離范圍。在其他實施例中,用戶隔離層8240為一組用戶提供隔離范圍,該組用戶可以由組織內(nèi)的分工界定或可以由管理員預(yù)先確定。在其他實施例中,不提供用戶隔離層8240。在這些實施例中,應(yīng)用程序看到的本地資源視圖是由應(yīng)甩隔離層8220提供的視圖。雖然針對支持多個用戶同時執(zhí)行應(yīng)用程序的多用戶計算機描述了隔離環(huán)境8200,但隔離環(huán)境8200也可以用在單用戶計算機上,以解決因不同用戶在同一計算機系統(tǒng)上順次執(zhí)行應(yīng)用程序而造成的應(yīng)用兼容性和交際性問題以及因同一用戶安裝和執(zhí)行不兼容程序而造成的那些問題。在一些實施例中,進一步將用戶隔離范圍分成子范圍。用戶隔離范圍對向在該范圍中執(zhí)行的應(yīng)用提供的視圖所做的修改是該范圍中每個子范圍之內(nèi)所含的修改匯集。將子范圍彼此層疊,在匯集視圖中,對較高子范圍中的資源所做的修改優(yōu)先于對較低層中同一資源的修改。在這些實施例中的一些中,這些子范圍中的一個或多個可以包含對相對于用戶特定的視圖的修改。在這些實施例中的一些中,一個或多個子范圍可以包含對相對于用戶組特定的視圖的修改,用戶組可以由系統(tǒng)管理員定義或被定義為操作系統(tǒng)中的用戶組。在這些實施例中的一些中,這些子范圍之一可以包含對相對于特定登錄會話特定并因此在會話結(jié)束時被拋棄的視圖的修改。在這些實施例中的一些中,與用戶隔離范圍相關(guān)聯(lián)的應(yīng)用實例對本地資源所做的改變總是影響這些子范圍之一,在其他實施例中,根據(jù)所改變的特定資源,這些改變可能會影響不同的子范圍。上述概念性體系允許為代表用戶執(zhí)行的應(yīng)用提供本地資源的匯集、或統(tǒng)一的虛擬化j見圖,這取決于應(yīng)用和用戶的組合。可以將這種匯集視圖稱為"虛擬范圍,,。為代表用戶執(zhí)行的應(yīng)用實例提供反應(yīng)本資源的所有有效虛擬化實例的單個本地資源視圖。從概念上講,這種匯集視圖首先由系統(tǒng)范圍中的操作系統(tǒng)提供的本地資源組構(gòu)成,該本地資源組被適用于執(zhí)行應(yīng)用的應(yīng)用隔離范圍中所體現(xiàn)的修改覆蓋,進一步被適用于代表用戶執(zhí)行應(yīng)用的用戶隔離范圍中體現(xiàn)的修改覆蓋。系統(tǒng)范圍中的本地資源的特征在于由系統(tǒng)上的所有用戶和應(yīng)用共有,除非在操作系統(tǒng)許可拒絕對特定用戶或應(yīng)用訪問的情況下。對應(yīng)用隔離范圍中體現(xiàn)的資源視圖的修改的特征在于由和該應(yīng)用隔離范圍相關(guān)聯(lián)的所有應(yīng)用實例共有。對用戶隔離范圍中體現(xiàn)的資源視圖的修改的特征在于,由和適用的應(yīng)用隔離范圍相關(guān)聯(lián)的、代表與該用戶隔離范圍相關(guān)聯(lián)的用戶執(zhí)行的所有應(yīng)用共有。可以將該概念擴展到子范圍;對用戶子范圍中體現(xiàn)的資源視圖的修改由與適用隔離子范圍相關(guān)聯(lián)的、代表與用戶隔離子范圍相關(guān)聯(lián)的用戶或用戶組執(zhí)行的所有應(yīng)用共有。在整個說明書中,應(yīng)當(dāng)理解,無論何時總括性提到"范圍",也意在是指子范圍(如果它們存在的話)。當(dāng)應(yīng)用請求枚舉諸如文件系統(tǒng)或注冊表數(shù)據(jù)庫一部分的本地資源時,首先枚舉本地資源"系統(tǒng)范圍的,,實例,即在系統(tǒng)層中發(fā)現(xiàn)的實例(如果有的話),由此構(gòu)建虛擬化枚舉。接下來,枚舉所請求資源"應(yīng)用范圍的"實例,即在適當(dāng)應(yīng)用隔離范圍內(nèi)發(fā)現(xiàn)的實例(如果有的話)。將在應(yīng)用隔離范圍中遇到的任何被枚舉資源添加到該視圖。如果在視圖中已經(jīng)存在所枚舉的資源(因為它還存在于系統(tǒng)范圍中),則用在應(yīng)用隔離范圍內(nèi)遇到的資源實例替換其。類似地,枚舉所請求資源"用戶范圍的,,實例,即在適當(dāng)用戶隔離范圍內(nèi)發(fā)現(xiàn)的實例(如果有的話)。同樣,將在用戶隔離范圍中遇到的任何被枚舉資源添加到該視圖。如果在視圖中已經(jīng)存在該本地資源(因為它存在于系統(tǒng)范圍或適當(dāng)?shù)膽?yīng)用隔離范圍中),則用在用戶隔離范圍內(nèi)遇到的資源實例替換其。通過這種方式,本地資源的任何枚舉都將適當(dāng)?shù)胤磻?yīng)所枚舉本地資源的虛擬化。從概念上講,同樣的方法也適用于枚舉包括多個子范圍的隔離范圍。枚舉個體子范圍,匯集視圖中來自較高子范圍的資源替代來自較低子范圍的匹配實例。在其他實施例中,可以從用戶隔離范圍層向下到系統(tǒng)層來進行枚舉,而不是相反的情況。在這些實施例中,枚舉用戶隔離范圍。然后枚舉應(yīng)用隔離范圍,并將出現(xiàn)在用戶隔離范圍中未枚舉的應(yīng)用隔離范圍中的任何資源實例添加到構(gòu)建中的匯集視圖??梢詫H出現(xiàn)在系統(tǒng)范圍中的資源重復(fù)類似過程。在其他實施例中,可以同時枚舉所有隔離范圍并組合各枚舉。如果應(yīng)用試圖打開本地資源的現(xiàn)存實例而無意修改該資源,被返回到該應(yīng)用的特定實例是在虛擬范圍中找到的那個,或者相當(dāng)?shù)?,是出現(xiàn)在所請求資源雙親的虛擬化枚舉中的實例。從隔離環(huán)境的角度來看,將該應(yīng)用說成請求打開"虛擬資源",將用于滿足該請求的本地資源的特定實例說成是對應(yīng)于所請求資源的"字面資源"。如果代表用戶執(zhí)行的應(yīng)用試圖打開資源并表明它正在這么做且有意修改該資源,一般為該應(yīng)用實例賦予要修改資源的私用拷貝,因為應(yīng)用隔離范圍和系統(tǒng)范圍中的資源是由代表其他用戶執(zhí)行的應(yīng)用所共有的。除非用戶范圍的實例已經(jīng)存在,通常制作資源的用戶范圍的拷貝。由虛擬范圍提供的匯集視圖的定義表示向用戶隔離范圍拷貝應(yīng)用范圍的或系統(tǒng)范圍的資源這一動作不會改變虛擬范圍為相關(guān)用戶和應(yīng)用提供的匯集視圖,也不會改變?yōu)槿魏纹渌脩籼峁┑膮R集視圖,也不會改變?yōu)槿魏纹渌麘?yīng)用實例提供的匯集視圖。代表用戶執(zhí)行的應(yīng)用實例隨后對所拷貝的資源所做的修改不會影響不共享相同用戶隔離范圍的任何其他應(yīng)用實例的匯集視圖。換言之,這些修改不會改變用于其他用戶,或用于與同一應(yīng)用隔離范圍不相關(guān)的應(yīng)用實例的本地資源的匯集視圖??梢詫?yīng)用安裝到特定隔離范圍之內(nèi)(下文更詳細描述)。被安裝到隔離范圍內(nèi)的應(yīng)用總是與該范圍相關(guān)?;蛘撸梢詫?yīng)用啟動到特定隔離范圍中,或者到若干隔離范圍中。實際上,應(yīng)用被啟動到一個或多個隔離范圍中且與一個或多個隔離范圍相關(guān)聯(lián)。相關(guān)聯(lián)的隔離范圍為該過程提供特定的本地資源視圖。也可以將應(yīng)用啟動到系統(tǒng)范圍中,即它們可以不與隔離范圍相關(guān)聯(lián)。這允許在隔離環(huán)境中優(yōu)選擇地執(zhí)行諸如InternetExplorer的操作系統(tǒng)應(yīng)用以及第三方應(yīng)用。這種不論應(yīng)用安裝在哪里都可以將應(yīng)用啟動到隔離范圍中的能力減輕了應(yīng)用兼容性和交際性問題,而無需在隔離范圍之中分開安裝應(yīng)用。在不同隔離范圍中有選擇地啟動所安裝的應(yīng)用的能力提供了如下能力,即,4吏需要幫助應(yīng)用的應(yīng)用(例如Word、Notepad等)以相同的規(guī)則集啟動這些幫助應(yīng)用。65此外,在多個隔離的環(huán)境中啟動應(yīng)用的能力允許在隔離的應(yīng)用和公共應(yīng)用之間更好地進行集成?,F(xiàn)在參考圖8C,簡而言之,將過程與隔離范圍相關(guān)聯(lián)的方法包括啟動掛起狀態(tài)下的過程的步驟(步驟882)。檢索與期望的隔離范圍相關(guān)聯(lián)的規(guī)則(步驟884),在存儲元件中存儲過程標(biāo)識符和所檢索的規(guī)則(步驟886)并繼續(xù)進行掛起的過程(步驟888)。截取或轉(zhuǎn)播該過程做出的訪問本地資源的后續(xù)調(diào)用(步驟890),并用與過程標(biāo)識符相關(guān)聯(lián)的規(guī)則(如果有的話)虛擬化對所請求資源的訪問(步驟892)。仍然參考圖8C,更詳細地講,在掛起狀態(tài)下啟動過程(步驟882)。在一些實施例中,用自定義啟動程序來完成該任務(wù)。在這些實施例中的一些中,啟動程序被特定設(shè)計成將過程啟動到選定的隔離范圍中。在其他實施例中,啟動程序例如通過命令行選項接收期望的隔離范圍的規(guī)格說明來作為輸入。檢索與期望的隔離范圍相關(guān)聯(lián)的規(guī)則(步驟884)。在一些實施例中,從持久性存儲元件,例如硬盤驅(qū)動器或其他固態(tài)存儲元件中檢索規(guī)則??梢詫⒁?guī)則存儲成關(guān)系型數(shù)據(jù)庫、平面文件數(shù)據(jù)庫、樹形結(jié)構(gòu)化數(shù)據(jù)庫、二叉樹結(jié)構(gòu)或其他不變數(shù)據(jù)結(jié)構(gòu)。在其他實施例中,可以將規(guī)則存儲在特別為存儲它們而配置的數(shù)據(jù)結(jié)構(gòu)中。在存儲元件中存儲過程標(biāo)識符,例如過程ID(PID)和所檢索的規(guī)則(步驟886)。在一些實施例中,提供內(nèi)核模式驅(qū)動程序,其接收涉及到新過程創(chuàng)建的操作系統(tǒng)消息。在這些實施例中,可以在驅(qū)動程序的語境中存儲PID和所檢索的規(guī)則。在其他實施例中,提供文件系統(tǒng)過濾器驅(qū)動程序或小型過濾器來攔截本地資源請求。在這些實施例中,可以在過濾器中存儲PID和所檢索的規(guī)則。在又一些其他實施例中,通過用戶模式轉(zhuǎn)播進行所有攔截而且不存儲任何PID。在過程初始化期間由用戶模式轉(zhuǎn)播設(shè)備加載規(guī)則,沒有任何其他部件需要知道應(yīng)用于PID的規(guī)則,因為是在整個過程中進行規(guī)則關(guān)聯(lián)的。繼續(xù)進行桂起的過程(步驟888),攔截或轉(zhuǎn)播該過程做出的訪問本地資源的后續(xù)調(diào)用(步驟890),并用與過程標(biāo)識符相關(guān)聯(lián)的規(guī)則(如果有的話)虛擬化對所請求資源的訪問(步驟892)。在一些實施例中,文件系統(tǒng)過濾器驅(qū)動程序或小型過濾器或文件系統(tǒng)驅(qū)動程序攔截訪問一組規(guī)則相關(guān)聯(lián)。如果是這樣的話,用與所存儲的過程標(biāo)識符相關(guān)聯(lián)的規(guī)則來虛擬化訪問本地資源的請求。否則,不加修改通過該訪問本地資源的請求。在其他實施例中,將動態(tài)鏈接庫加載到新創(chuàng)建的過程中,該庫加栽隔離規(guī)則。在其他實施例中,將內(nèi)核模式技術(shù)(轉(zhuǎn)播、過濾器驅(qū)動程序、小型過濾器)和用戶模式技術(shù)都用于攔截訪問本地資源的調(diào)用。對于文件系統(tǒng)過濾器驅(qū)動程序存儲規(guī)則的實施例而言,該庫可以從文件系統(tǒng)過濾器驅(qū)動程序加載規(guī)則。作為與隔離范圍相關(guān)的過程的"子女"的過程與它們"雙親"過程的隔離范圍相關(guān)。在一些實施例中,這是由創(chuàng)建子過程時內(nèi)核模式驅(qū)動程序通知文件系統(tǒng)過濾器驅(qū)動程序而實現(xiàn)的。在這些實施例中,文件系統(tǒng)過濾器驅(qū)動程序判斷父過程的過程標(biāo)識符是否與隔離范圍相關(guān)聯(lián)。如果是這樣的話,文件系統(tǒng)過濾器驅(qū)動程序存儲新建子過程的過程標(biāo)識符與父過程的隔離范圍之間的關(guān)聯(lián)。在其他實施例中,可以直接從系統(tǒng)調(diào)用文件系統(tǒng)過濾器驅(qū)動程序,而無須使用內(nèi)核模式驅(qū)動程序。在其他實施例中,在與隔離范圍相關(guān)聯(lián)的過程中,轉(zhuǎn)播或攔截創(chuàng)建新過程的操作系統(tǒng)功能。當(dāng)從這種過程接收到創(chuàng)建新過程的請求時,存儲新子過程和雙親隔離范圍之間的關(guān)聯(lián)。在一些實施例中,可以將范圍或子范圍與單個線程而不是整個過程相關(guān)聯(lián),這允許在每個線程基礎(chǔ)上執(zhí)行隔離。在一些實施例中,每個線程的隔離可以用于服務(wù)和C0M+服務(wù)器。在一些實施例中,用隔離環(huán)境向應(yīng)用流傳輸客戶端552提供額外的功能。在這些實施例之一中,在隔離環(huán)境之內(nèi)執(zhí)行應(yīng)用程序。在這些實施例的另一個中,檢索到的多個應(yīng)用文件駐留在隔離環(huán)境中。在這些實施例的又一個中,在隔離環(huán)境中對本地機IO上的注冊表做出更改。在一個實施例中,應(yīng)用流傳輸客戶端552包括隔離環(huán)境556。在一些實施例中,應(yīng)用流傳輸客戶端552包括攔截對文件的應(yīng)用請求的文件系統(tǒng)過濾器驅(qū)動程序564。在這些實施例之一中,文件系統(tǒng)過濾器驅(qū)動程序564攔截打開現(xiàn)有文件的應(yīng)用請求并判定該文件不在該隔離環(huán)境556中。在這些實施例的另一個中,文件系統(tǒng)過濾器驅(qū)動程序564響應(yīng)于該文件不在隔離環(huán)境556中的判斷向流傳輸服務(wù)554重定向該請求。流傳輸服務(wù)554可以從多個應(yīng)用文件提取文件并將文件存儲在67隔離環(huán)境556中。文件系統(tǒng)過濾器驅(qū)動程序564然后可以利用所存儲的文件拷貝向?qū)υ撐募恼埱笞龀鲰憫?yīng)。在一些實施例中,該文件系統(tǒng)過濾器驅(qū)動程序564可以響應(yīng)于流傳輸服務(wù)554未檢索到該文件或多個應(yīng)用文件的指示以及該文件不在隔離環(huán)境556中的判斷將對文件的請求重定向到文件服務(wù)器540。在一些實施例中,文件系統(tǒng)過濾器驅(qū)動程序564使用嚴格的隔離規(guī)則來防止隔離環(huán)境556中出現(xiàn)沖突或不一致的數(shù)據(jù)。在這些實施例之一中,在用戶隔離環(huán)境中攔截對資源的請求的文件系統(tǒng)過濾器驅(qū)動程序564可以將請求重定向到應(yīng)用隔離環(huán)境。在這些實施例的另一個中,文件系統(tǒng)過濾器驅(qū)動程序564不將請求重定向到系統(tǒng)范圍。在一個實施例中,流傳輸服務(wù)554使用IOCTL命令與過濾器驅(qū)動程序通信。在另一個實施例中,利用MicrosoftSMB流傳輸協(xié)議接收發(fā)往文件服務(wù)器540的通信。在一些實施例中,打包機構(gòu)530在清單文件中存儲被發(fā)布成可用應(yīng)用的文件類型列表并使應(yīng)用發(fā)布軟件可以使用該信息。在這些實施例之一中,打包機構(gòu)530通過監(jiān)測在分級機上的隔離環(huán)境中安裝應(yīng)用程序來接收該信息。在這些實施例的另一個中,打包機構(gòu)530的用戶向打包機構(gòu)530提供該信息。在其他實施例中,訪問套件控制臺520中的應(yīng)用發(fā)布軟件查詢該清單文件以向訪問套件控制臺的用戶提供可以與所請求的被發(fā)布應(yīng)用相關(guān)聯(lián)的可能的文件類型。用戶選擇文件類型以與特定的被發(fā)布應(yīng)用相關(guān)聯(lián)。在應(yīng)用枚舉的時候向本地機10提供該文件類型。本地機10可以包括客戶端代理560??蛻舳舜?60提供如下功能將文件類型與應(yīng)用程序相關(guān)聯(lián)并響應(yīng)于該關(guān)聯(lián)選擇執(zhí)行應(yīng)用程序的方法。在一個實施例中,客戶端代理560為程序鄰域應(yīng)用。在選擇應(yīng)用程序以執(zhí)行時,本地機10對與應(yīng)用程序文件類型相關(guān)聯(lián)的執(zhí)行方法做出判斷。在一個實施例中,本地機10判定該文件類型與需要檢索應(yīng)用文件的應(yīng)用流傳輸會話并需要在隔離環(huán)境之內(nèi)執(zhí)行的執(zhí)行方法相關(guān)聯(lián)。在本實施例中,本地機10可以將該請求重定向到應(yīng)用流傳輸客戶端552,而不是啟動應(yīng)用程序的本地版本。在另一個實施例中,客戶端代理560做出判斷。在又一個實施例中,客戶端代理560將該請求重定向到應(yīng)用流傳輸客戶端552。在一個實施例中,應(yīng)用流傳輸客戶端552從遠程機30請求與應(yīng)用程序相關(guān)聯(lián)的訪問信息。在一些實施例中,應(yīng)用流傳輸客戶端552接收含有訪問信息的可執(zhí)行程序。在這些實施例之一中,應(yīng)用流傳輸客戶端552接收能夠在本地機10上顯示因在遠程機上執(zhí)行應(yīng)用程序而生成的應(yīng)用輸出數(shù)據(jù)的可執(zhí)行程序。在這些實施例的另一個中,應(yīng)用流傳輸客戶端552接收能夠通過應(yīng)用流傳輸會話接收應(yīng)用程序并在本地機IO上的隔離環(huán)境中執(zhí)行應(yīng)用程序的可執(zhí)行程序。在本實施例中,應(yīng)用流傳輸客戶端552可以執(zhí)行所接收的可執(zhí)行程序。在這些實施例的又一個中,遠程機30響應(yīng)于如上所述執(zhí)行應(yīng)用解析來選擇可執(zhí)行程序以提供到本地機10?,F(xiàn)在參考圖9,流程圖示出了在執(zhí)行應(yīng)用的方法中采取的步驟的一個實施例。如以上在圖7中所述,對步驟214而言,本地機10接收并執(zhí)行多個應(yīng)用文件。簡而言之,本地機IO接收包括訪問信息的文件,該訪問信息用于訪問多個應(yīng)用文件并執(zhí)行能夠接收應(yīng)用流的第一客戶端(步驟902)。本地機10響應(yīng)于該文件檢索多個應(yīng)用文件的標(biāo)識(步驟904)。本地機10響應(yīng)于該文件檢索執(zhí)行多個應(yīng)用文件所需的至少一個特征(步驟906)。本地機10判斷本地機10是否包括至少一個特征(步驟908)。本地機10響應(yīng)于本地機IO缺少至少一個特征的判斷執(zhí)行第二客戶端,第二客戶端請求在遠程機上執(zhí)行多個應(yīng)用文件(步驟910)。參考圖9,并且更詳細地講,本地機IO接收包括訪問信息的文件,該訪問信息用于訪問多個應(yīng)用文件并執(zhí)行能夠接收應(yīng)用流的笫一客戶端(步驟902)。在一個實施例中,本地機10接收訪問信息,該訪問信息包括包含應(yīng)用程序的多個應(yīng)用文件位置的標(biāo)識。在另一個實施例中,本地機10響應(yīng)于請求執(zhí)行應(yīng)用程序而接收該文件。在又一個實施例中,訪問信息包括表明多個應(yīng)用文件駐留在諸如應(yīng)用服務(wù)器或文件服務(wù)器的遠程機30'上的指示。在又一個實施例中,訪問信息表明本地機10可以通過應(yīng)用流傳輸會話從遠程才凡30檢索多個應(yīng)用文件。本地機10響應(yīng)于該文件檢索多個應(yīng)用文件的標(biāo)識(步驟904)。在一個實施例中,本地機10響應(yīng)于包括訪問信息的文件識別多個應(yīng)用文件所駐留的遠程機。在另一個實施例中,本地機10從遠程機30檢索標(biāo)識多個應(yīng)用文件的文件。在一些實施例中,多個應(yīng)用文件包括T/US2006/037602應(yīng)用程序,在其他實施例中,多個應(yīng)用文件包括多個應(yīng)用程序。在其他實施例中,多個應(yīng)用文件包括單個應(yīng)用程序的多個版本。向前參考圖10,流程圖示出了駐留在諸如文件服務(wù)器540的遠程機3(K上的多個應(yīng)用文件的一個實施例。在圖10中,被稱為程序包的多個應(yīng)用文件包括包括一個或多個應(yīng)用程序的三個不同版本的應(yīng)用文件。在一個實施例中,講包括一個或多個應(yīng)用程序版本并被存儲在程序包的應(yīng)用文件的每個子集稱為目標(biāo)。例如,目標(biāo)1包括字處理應(yīng)用程序和數(shù)據(jù)表程序版本,該版本與MicrosoftWindows2000搮作系統(tǒng)的英文版兼容。目標(biāo)2包括字處理應(yīng)用程序和數(shù)據(jù)表程序版本,該版本與MicrosoftXP操作系統(tǒng)的英文版兼容。目標(biāo)3,字處理應(yīng)用程序和數(shù)據(jù)表程序版本,該版本與具有服務(wù)套件3的MicrosoftWindows2000操作系統(tǒng)的日文版兼容?,F(xiàn)在參考圖9,在一些實施例中,從持有多個應(yīng)用文件的遠程機30檢索的文件包括對程序包的描述以及多個應(yīng)用文件中包括的目標(biāo)。在其他實施例中,從遠程機30檢索的文件識別多個應(yīng)用文件,該多個應(yīng)用文件包括本地機io請求執(zhí)行的應(yīng)用程序。本地機10響應(yīng)于該文件檢索執(zhí)行多個應(yīng)用文件所需的至少一個特征(步驟906)。在一些實施例中,本地機10可以不執(zhí)行應(yīng)用程序,除非本地機包括特定的特征。在這些實施例之一中,不同的應(yīng)用程序需要本地機10包括與其他應(yīng)用程序所需的特征不同的特征。在這些實施例的另一個中,本地機10接收執(zhí)行包括本地機10所請求的應(yīng)用程序的多個應(yīng)用文件所需的至少一個特征的標(biāo)識。本地機判斷本地機10是否包括至少一個特征(步驟908)。在一個實施例中,本地機10評估本地機10上的操作系統(tǒng)以判斷本地機10是否包括至少一個特征。在另一個實施例中,本地機10識別本地機10上的操作系統(tǒng)所用的語言,以判斷本地機10是否包括至少一個特征。在又一個實施例中,本地機10識別本地機10上的操作系統(tǒng)的版本水平以判斷本地機10上是否包括至少一個特征。在又一個實施例中,本地機10識別駐留在本地機10上的應(yīng)用程序的應(yīng)用版本以判斷本地機10上是否包括至少一個特征。在一些實施例中,本地機10判斷本地機7010是否包括設(shè)備驅(qū)動程序以判斷本地機10是否包括至少一個特征。在其他實施例中,本地機10判斷本地機10是否包括操作系統(tǒng)以判斷本地機10是否包括至少一個特征。在其他實施例中,本地機10判斷本地機10是否包括執(zhí)行多個應(yīng)用文件的許可以判斷本地機10是否包括至少一個特征。本地機10響應(yīng)于本地機10缺少至少一個特征的判斷執(zhí)行第二客戶端,第二客戶端請求在遠程機30上執(zhí)行多個應(yīng)用文件(步驟910)。在一個實施例中,當(dāng)本地機10判定本地機10缺少至少一個特征時,本地機10不執(zhí)行能夠接收應(yīng)用流的第一客戶端。在另一個實施例中,當(dāng)本地機10缺少至少一個特征時,策略禁止本地機10通過應(yīng)用流接收多個應(yīng)用文件。在一些實施例中,本地機10判定本地機10不包括至少一個特征。在這些實施例之一中,本地機io執(zhí)行第一客戶端,第一客戶端從遠程機30接收包括多個應(yīng)用文件的應(yīng)用流以在本地機上執(zhí)行。在一些實施例中,本地機10在判定本地機10沒有至少一個特征時執(zhí)行第二客戶端,第二客戶端請求在遠程機上執(zhí)行多個應(yīng)用文件。在這些實施例之一中,第二客戶端向持有多個應(yīng)用文件的遠程機30發(fā)送請求。在這些實施例的另一個中,遠程機30執(zhí)行包括應(yīng)用程序的多個應(yīng)用文件并生成應(yīng)用輸出數(shù)據(jù)。在這些實施例的又一個中,第二客戶端接收在遠程機上執(zhí)行多個應(yīng)用文件產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。在一些實施例中,笫二客戶端通過獨立計算結(jié)構(gòu)(IndependentComputingArchitecture)表示層協(xié)議或遠程桌面Windows(RemoteDesktopWindows)表示層協(xié)議或X-Windows表示層協(xié)議接收應(yīng)用輸出數(shù)據(jù)。在這些實施例的又一個中,第二客戶端在本地機10上顯示應(yīng)用輸出。在一些實施例中,第二客戶端向未持有多個應(yīng)用文件的遠程機30發(fā)送請求。在這些實施例之一中,遠程機30可以從持有多個應(yīng)用文件的第二遠程機30請求多個應(yīng)用文件。在這些實施例的另一個中,遠程機30可以通過應(yīng)用流傳輸會話從第二遠程機30接收多個應(yīng)用文件。在這些實施例的又一個中,遠程機30在隔離環(huán)境中存儲所接收的多個應(yīng)用文件并在隔離環(huán)境中執(zhí)行應(yīng)用程序。在這些實施例的又一個中,遠程機向本地機上的第二客戶端發(fā)送所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。返回到圖5,在一個實施例中,能夠接收應(yīng)用流的第一客戶端為應(yīng)用流傳輸客戶端552。應(yīng)用流傳輸客戶端552接收文件,響應(yīng)于該文件檢索多個應(yīng)用文件的標(biāo)識以及執(zhí)行多個應(yīng)用文件所需的至少一個特征,并判斷本地機10是否包括至少一個特征。在另一個實施例中,第二客戶端為客戶端代理560。在一些實施例中,客戶端代理560響應(yīng)于應(yīng)用流傳輸客戶端552做出的本地機10沒有至少一個特征的判斷,從應(yīng)用流傳輸客戶端552接收文件。在一些實施例中,在本地機10上執(zhí)行的應(yīng)用566利用Win32FindFirstFile()和FindNextFile()API調(diào)用枚舉與應(yīng)用566相關(guān)聯(lián)的文件。在這些實施例之一中,多個應(yīng)用文件包括應(yīng)用566。在這些實施例的另一個中,并非多個應(yīng)用文件中的所有文件都駐留在本地機10上.在這些實施例的又一個中,流傳輸服務(wù)554檢索檔案文件中的多個應(yīng)用文件,但僅提取多個應(yīng)用文件的子集。在這些實施例的又一個中,即使在所請求的文件不在本地機10上時,流傳輸服務(wù)554和文件系統(tǒng)過濾器驅(qū)動程序564也提供用于滿足枚舉請求的功能。在一個實施例中,通過如同多個應(yīng)用文件中的所有文件都駐留在本地機10上一樣來攔截枚舉請求并提供數(shù)據(jù),由此提供該功能。在另一個實施例中,通過由文件系統(tǒng)過濾器驅(qū)動程序564攔截被作為IOCTL命令,例如IRP-MJ一DIRECTORY-CONTROLIOCTL發(fā)送的枚舉請求來提供該功能。當(dāng)文件系統(tǒng)過濾器驅(qū)動程序564攔截調(diào)用時,文件系統(tǒng)過濾器驅(qū)動程序564將該請求重定向到流傳輸服務(wù)554。在一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564在將請求重定向到流傳輸服務(wù)554之前判定所請求的枚舉在本地機IO上的隔離環(huán)境中。在另一個實施例中,流傳輸服務(wù)554利用多個應(yīng)用文件中的文件實現(xiàn)該請求,該文件包括與多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)的枚舉。在又一個實施例中,流傳輸服務(wù)554向文件系統(tǒng)過濾器驅(qū)動程序564提供對該請求的響應(yīng)以滿足枚舉請求。現(xiàn)在參考圖11,流程圖示出了在本地響應(yīng)對與遠程存儲的文件相關(guān)聯(lián)的文件元數(shù)據(jù)的請求的方法中所采取的步驟的一個實施例。簡而言之,從遠程機接收(i)表示遠程機存儲的應(yīng)用程序的目錄結(jié)構(gòu)以及(ii)與包括所存儲應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù)(步驟1102)。存儲目錄結(jié)構(gòu)和元數(shù)據(jù)(步驟1104)。接收至少一個訪問與目錄結(jié)構(gòu)中的特定文件相關(guān)聯(lián)的元數(shù)據(jù)的請求(步驟1106)。利用所存儲的元數(shù)據(jù)對至少一個請求做出響應(yīng)(步驟1108).更詳細地參考圖11,從遠程機接收表示遠程機存儲的應(yīng)用程序的目錄結(jié)構(gòu)以及與包括所存儲應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù)(步驟1102)。在一個實施例中,流傳輸服務(wù)554接收目錄結(jié)構(gòu)和元數(shù)據(jù)。在另一個實施例中,在流傳輸服務(wù)554檢索包括所存儲的應(yīng)用程序的多個應(yīng)用文件時,流傳輸服務(wù)554接收目錄結(jié)構(gòu)和元數(shù)據(jù)。在又一個實施例中,在多個應(yīng)用文件中的文件中存儲目錄結(jié)構(gòu)和元數(shù)據(jù)。在一個實施例中,與每個文件相關(guān)聯(lián)的元數(shù)據(jù)包括至少一個文件的別名。在另一個實施例中,與每個文件相關(guān)聯(lián)的元數(shù)據(jù)包括至少一個文件的短名、具有八個字符長度的名稱、點以及三字符的擴展名。在又一實施例中,與每個文件相關(guān)聯(lián)的元數(shù)據(jù)包括至少一個文件的別名和至少一個文件的短名之間的映射。在一些實施例中,多個應(yīng)用文件中的文件具有備選文件名。在這些實施例之一中,當(dāng)由指向本地機的流傳輸服務(wù)554檢索文件時,響應(yīng)于該文件的別名和至少一個文件的短名之間的映射,將該文件與短名相關(guān)聯(lián)。存儲目錄結(jié)構(gòu)和元數(shù)據(jù)(步驟1104)。在一個實施例中,在隔離環(huán)境556中存儲目錄結(jié)構(gòu)和元數(shù)據(jù)。在另一個實施例中,在高速緩沖存儲器元件中存儲目錄結(jié)構(gòu)和元數(shù)據(jù)。在又一個實施例中,利用表示遠程機存儲的應(yīng)用程序的目錄結(jié)構(gòu)來生成表示在本地機上執(zhí)行的應(yīng)用程序的目錄結(jié)構(gòu)枚舉。接收至少一個訪問與目錄結(jié)構(gòu)中的特定文件相關(guān)聯(lián)的元數(shù)據(jù)的請求(步驟1106)。在一個實施例中,該請求為枚舉文件的請求。在另一個實施例中,該請求為確定本地是否有包括所存儲的應(yīng)用程序的文件拷貝的請求。在一個實施例中,由在本地機上的隔離環(huán)境中執(zhí)行的應(yīng)用566提出該請求。在另一個實施例中,由應(yīng)用流傳輸客戶端552提出該請求。在又一個實施例中,代表應(yīng)用566提出該請求。在一個實施例中,由文件系統(tǒng)過濾器驅(qū)動程序564攔截請求。在另一個實施例中,由文件系統(tǒng)過濾器驅(qū)動程序564將請求轉(zhuǎn)發(fā)到應(yīng)用流傳輸客戶端552。在又一個實施例中,由文件系統(tǒng)過濾器驅(qū)動程序564將請求轉(zhuǎn)發(fā)到流傳輸服務(wù)554。在一些實施例中,由代替操作系統(tǒng)功能或枚舉目錄的功能的功能轉(zhuǎn)播請求。在另一個實施例中,用轉(zhuǎn)播動態(tài)鏈接庫來攔截請求。可以在用戶模式或內(nèi)核模式下執(zhí)行轉(zhuǎn)播功能。在以用戶模式執(zhí)行轉(zhuǎn)播功能的實施例中,可以在生成過程時將轉(zhuǎn)播功能加載到過程的地址空間中。對于在內(nèi)核模式下執(zhí)行轉(zhuǎn)播功能的實施例,轉(zhuǎn)播功能可以與調(diào)度對文件操作的請求時使用的操作系統(tǒng)資源相關(guān)聯(lián)。對于為每種文件操作提供獨立的操作系統(tǒng)功能的實施例,可以獨立轉(zhuǎn)播每種功能?;蛘?,可以提供單個轉(zhuǎn)播功能,其攔截針對若干類型的文件操作的生成或打開調(diào)用。利用所存儲的元數(shù)據(jù)對至少一個請求做出響應(yīng)(步驟1108)。在一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564對請求做出響應(yīng)。在另一個實施例中,應(yīng)用流傳輸客戶端552對請求做出響應(yīng)。在又一個實施例中,流傳輸服務(wù)554對請求做出響應(yīng)。在一個實施例中,訪問所存儲的元數(shù)據(jù)以對至少一個請求做出響應(yīng)。在另一個實施例中,利用文件遠程拷貝在本地的誤指示對請求做出響應(yīng).在一個實施例中,響應(yīng)于所接收的元數(shù)據(jù),滿足Windows操作系統(tǒng)FindFirst操作。在另一個實施例中,響應(yīng)于所接收的元數(shù)據(jù),滿足Windows操作系統(tǒng)FindNext操作。在又一個實施例中,響應(yīng)于所接收的元數(shù)據(jù)滿足在目錄結(jié)構(gòu)中識別根節(jié)點的操作。在一些實施例中,4吏用諸如WIN32-FIND-DATAAPI的應(yīng)用層API對操作做出響應(yīng)。在其他實施例中,使用諸如FILE-B0TH—DIR—INFORMATION的內(nèi)核層API對操作做出響應(yīng)。在一個實施例中,元數(shù)據(jù)滿足用于識別與目錄結(jié)構(gòu)中的節(jié)點相關(guān)聯(lián)的一次訪問的操作。在另一個實施例中,元數(shù)據(jù)滿足用于識別與目錄結(jié)構(gòu)中的節(jié)點相關(guān)聯(lián)的一次修改的操作。在又一個實施例中,元數(shù)據(jù)滿足用于識別目錄結(jié)構(gòu)中的修改節(jié)點的操作?,F(xiàn)在參考圖12,方框圖示出了用于在本地對與遠程存儲的文件相關(guān)聯(lián)的文件元數(shù)據(jù)的請求做出響應(yīng)的系統(tǒng)的一個實施例,該系統(tǒng)包括流傳輸服務(wù)554、文件系統(tǒng)過濾器驅(qū)動程序564、目錄結(jié)構(gòu)570、多個應(yīng)用文件572、元數(shù)據(jù)574和高速緩沖存儲器元件576。簡而言之,該目錄結(jié)構(gòu)570標(biāo)識與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件。元數(shù)據(jù)574與多個文件中的至少一個相關(guān),該多個文件中的至少一個駐留在遠程機上。在一個實施例中,目錄結(jié)構(gòu)570包括元數(shù)據(jù)574。高速緩沖存儲器元件576存儲目錄結(jié)構(gòu)570。文件系統(tǒng)過濾器驅(qū)動程序564攔截訪問與至少一個遠程存儲的文件相關(guān)聯(lián)的元數(shù)據(jù)的請求,訪問高速緩沖存儲器元件并利用所存儲的目錄結(jié)構(gòu)對至少一個請求做出響應(yīng).在一些實施例中,流傳輸服務(wù)554接收目錄結(jié)構(gòu)570和元數(shù)據(jù)574。在這些實施例之一中,目錄結(jié)構(gòu)570代表多個與應(yīng)用程序相關(guān)聯(lián)的應(yīng)用文件572,該多個應(yīng)用文件572駐留在諸如遠程機30的遠程機上。在這些實施例的另一個中,元數(shù)據(jù)574包括用于對Windows操作系統(tǒng)FindFirst請求做出響應(yīng)的信息。在這些實施例的又一個中,元數(shù)據(jù)574包括用于對Windows操作系統(tǒng)FindNext請求做出響應(yīng)的信息。在這些實施例的又一個中,元數(shù)據(jù)574包括用于對識別目錄結(jié)構(gòu)中的根節(jié)點的請求做出響應(yīng)的信息。在這些實施例的另一個中,元數(shù)據(jù)574包括用于對識別目錄結(jié)構(gòu)中的節(jié)點的請求做出響應(yīng)的信息。在一些實施例中,使用諸如WIN32-FIND_DATA的應(yīng)用層API對操作做出響應(yīng)。在其他實施例中,使用諸如FILE_BOTH_DIR-INFORMATION的內(nèi)核層API對操作做出響應(yīng)。在一些實施例中,可以將關(guān)于文件的少量元數(shù)據(jù)574直接存儲在文字文件名中,例如將元數(shù)據(jù)指示符負在虛擬名后面,其中元數(shù)據(jù)指示符是與特定元數(shù)據(jù)狀態(tài)唯一相關(guān)的字符串。元數(shù)據(jù)指示符可以表示或編碼一個或幾個元數(shù)據(jù)比特。希望通過虛擬文件名訪問文件的請求檢查是否有因為存在元數(shù)據(jù)指示符而導(dǎo)致的文字文件名的可能變化,轉(zhuǎn)播或攔截希望檢索文件自身名稱的請求以便利用文字名稱做出響應(yīng)。在其他實施例中,可以用虛擬文件名和元數(shù)據(jù)指示符形成文件的一個或多個備選名稱,且可以利用文件系統(tǒng)提供的硬鏈接或軟鏈接設(shè)施來生成。如果給出利用鏈接名稱訪問文件的請求,則通過表示未找到該文件來通過隔離環(huán)境使這些鏈接的存在相對于應(yīng)用隱藏起來。特定鏈接的存在或不存在可以為每個元數(shù)據(jù)指示符表示元數(shù)據(jù)的一比特,或者可能有能采用多個狀態(tài)表示元數(shù)據(jù)若干比特的與元數(shù)據(jù)指示符的鏈接。在文件系統(tǒng)支持備選文件流的其他實施例中,可以制作備選文件流來體現(xiàn)元數(shù)據(jù),流的大小表示元數(shù)據(jù)的若干比特。在其他實施例中,文件系統(tǒng)可以直接提供為文件系統(tǒng)中每個文件存儲一些第三方元數(shù)據(jù)的能力。在其他實施例中,可以用獨立的子范圍來記錄被刪除的文件,用該子范圍中存在文件(未標(biāo)識為占位符)表示該文件被75刪除。在一個實施例中,組合用戶隔離環(huán)境、應(yīng)用隔離環(huán)境和系統(tǒng)范圍中的數(shù)據(jù)以形成表示應(yīng)用的目錄結(jié)構(gòu)的當(dāng)?shù)孛杜e。在另一個實施例中,流傳輸服務(wù)554訪問元數(shù)據(jù)574和目錄結(jié)構(gòu)570以填充應(yīng)用隔離環(huán)境。在又一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564生成目錄結(jié)構(gòu)的本地枚舉。在又一個實施例中,目錄結(jié)構(gòu)的本地枚舉標(biāo)識出多個應(yīng)用文件572中的至少一個文件,該至少一個文件駐留在遠程機上而不是本地機上。在一些實施例中,在高速緩沖存儲器元件576上存儲目錄結(jié)構(gòu)的本地枚舉。在其他實施例中,流傳輸服務(wù)554生成應(yīng)用隔離環(huán)境和目錄結(jié)構(gòu)的本地枚舉。在一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564攔截被發(fā)送到系統(tǒng)范圍希望訪問目錄結(jié)構(gòu)的本地枚舉的請求。在另一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564在攔截該請求之后生成本地枚舉。在又一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564將對本地枚舉的請求重定向到用戶隔離環(huán)境。在又一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564將對本地枚舉的請求重定向到應(yīng)用隔離環(huán)境。在一些實施例中,文件系統(tǒng)過濾器驅(qū)動程序564攔截對目錄本地枚舉中的文件標(biāo)識的訪問請求,該文件駐留在遠程機上。在這些實施例之一中,如下文參考圖3要更詳細描述的,文件系統(tǒng)過濾器驅(qū)動程序564請求由流傳輸服務(wù)554檢索該文件。在隔離環(huán)境中運行的應(yīng)用提出對文件的請求時,過濾器驅(qū)動程序攔截這些請求。如果該請求是要打開文件,過濾器驅(qū)動程序?qū)⑹紫葘⒄埱笾囟ㄏ虻礁綦x環(huán)境,以判斷隔離環(huán)境是否可以滿足該請求。如果調(diào)用成功,過濾器驅(qū)動程序?qū)⒗梦挥诟綦x環(huán)境中的文件實例對請求做出響應(yīng)。然而,如果所請求的文件不在隔離環(huán)境中,過濾器驅(qū)動程序則向流傳輸服務(wù)554發(fā)送請求以從多個應(yīng)用文件檢索該文件,一直中斷到完成請求,然后重試初始的文件打開。在一些實施例中,將流傳輸服務(wù)554在接收到來自過濾器驅(qū)動程序的請求時從多個應(yīng)用文件檢索文件的功能稱為"按需高速緩存"?,F(xiàn)在參考圖13,流程圖示出了在訪問與本地執(zhí)行的應(yīng)用程序相關(guān)聯(lián)的目錄結(jié)構(gòu)中的遠程文件的方法中采取的步驟的一個實施例。簡而76言之,攔截應(yīng)用訪問文件的請求(步驟1302)。將該請求重定向到第一隔離環(huán)境(步驟1304)。做出第一隔離環(huán)境中不存在所請求文件的判斷(步驟1306)。響應(yīng)于在與駐留在遠程機上的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉中識別出該文件的判斷,將該請求重定向到第二隔離環(huán)境(步驟1308).響應(yīng)于第二隔離環(huán)境不含該文件且在枚舉中識別出該文件的判斷,從遠程機檢索所請求的文件(步驟1310)。參考圖13,更詳細地講,攔截應(yīng)用訪問文件的請求(步驟1302)。在一個實施例中,由文件系統(tǒng)過濾器驅(qū)動程序攔截請求。在另一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序攔截訪問文件的所有請求。在又一個實施例中,應(yīng)用流傳輸客戶端552攔截該請求。在一些實施例中,攔截應(yīng)用訪問可執(zhí)行文件的請求。在其他實施例中,攔截應(yīng)用訪問文件的請求、在本地機IO上執(zhí)行的應(yīng)用的一部分。將該請求重定向到第一隔離環(huán)境(步驟1304)。在一個實施例中,在笫一隔離環(huán)境之內(nèi)執(zhí)行應(yīng)用。在一個實施例中,該應(yīng)用是諸如文字處理程序或數(shù)據(jù)表程序的應(yīng)用程序。在另一個實施例中,該應(yīng)用是應(yīng)用流傳輸客戶端。在又一個實施例中,該應(yīng)用是應(yīng)用流傳輸客戶端552中試圖代表本地機10的用戶啟動應(yīng)用程序的部件。在另一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序?qū)⒃撜埱笾囟ㄏ虻降谝桓綦x環(huán)境。做出第一隔離環(huán)境中不存在所請求文件的判斷(步驟1306)。在一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序接收第一隔離環(huán)境中不存在所請求的文件的指示。響應(yīng)于在與駐留在遠程機上的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉中識別出該文件的判斷,將該請求重定向到第二隔離環(huán)境(步驟1308)。在一個實施例中,利用關(guān)于執(zhí)行第一應(yīng)用的訪問信息接收目錄結(jié)構(gòu)枚舉。在另一個實施例中,該枚舉標(biāo)識包括第二應(yīng)用的多個應(yīng)用文件。在本實施例中,第一應(yīng)用是第二應(yīng)用的本地拷貝。響應(yīng)于第二隔離環(huán)境不含該文件且在枚舉中識別出該文件的判斷,從遠程機檢索所請求的文件(步驟1310)。在一個實施例中,從第二遠程機檢索所請求的文件。在另一個實施例中,從文件服務(wù)器檢索所請求的文件。在一些實施例中,目錄結(jié)構(gòu)枚舉識別駐留在本地機上的多個應(yīng)用文件。在其他實施例中,目錄結(jié)構(gòu)枚舉指出多個應(yīng)用文件在本地機上。在這些實施例之一中,當(dāng)應(yīng)用請求訪問目錄結(jié)構(gòu)枚舉已指出駐留在本地機上的多個應(yīng)用文件中的文件時,在攔截訪問請求時從文件服務(wù)器獲取該文件。在這些實施例的另一個中,文件服務(wù)器將所請求的文件流傳輸?shù)奖镜貦C。在這些實施例的又一個中,在接收到所請求的文件時,在第二隔離環(huán)境中存儲所請求的文件。在其他實施例中,當(dāng)應(yīng)用請求訪問目錄結(jié)構(gòu)枚舉已指出駐留在本地機上的多個應(yīng)用文件中的文件時,從本地高速緩沖存儲器向應(yīng)用提供該文件的拷貝。在一些實施例中,所請求的文件是加密的。在其他實施例中,所請求的文件被存儲成加密的形式。在其他實施例中,如果請求該文件的應(yīng)用沒有訪問所請求的文件的授權(quán),可以防止該應(yīng)用對所請求的文件解密。在一個實施例中,做出目錄結(jié)構(gòu)枚舉未識別出該文件的判斷。在本實施例中,可以將訪問文件的請求重定向到笫一隔離環(huán)境之外和第二隔離環(huán)境之外的環(huán)境。在一些實施例中,攔截訪問文件的第二請求。在這些實施例之一中,由第二應(yīng)用提出訪問文件的請求。在這些實施例的另一個中,第二應(yīng)用在第三隔離環(huán)境中執(zhí)行。在這些實施例的又一個中,響應(yīng)于在該枚舉中枚舉了該文件且第二隔離環(huán)境不含該文件的判斷,將請求重定向到第二隔離環(huán)境??梢宰龀鲈趶奈募?wù)器接收到該文件時本地機將文件存儲在第二隔離環(huán)境中的決定。在又一個實施例中,將該文件存儲在第三隔離環(huán)境中?,F(xiàn)在參考圖14,方框圖示出了用于訪問與應(yīng)用相關(guān)的目錄結(jié)構(gòu)中的文件的系統(tǒng)的一個實施例。簡而言之,本地機10包括應(yīng)用流傳輸客戶端552、流傳輸服務(wù)554、隔離環(huán)境556、文件系統(tǒng)過濾器驅(qū)動程序564和第一應(yīng)用566。本地機10可以與文件服務(wù)器540、遠程機30、web接口558和第二應(yīng)用566'交互。本地才幾IO對應(yīng)用流傳輸客戶端552初始化以執(zhí)行第一應(yīng)用566。在一個實施例中,應(yīng)用流傳輸客戶端552對流傳輸服務(wù)554初始化以檢索和執(zhí)行第一應(yīng)用566。在一些實施例中,多個應(yīng)用文件包括第一應(yīng)用566。在這些實施例之一中,流傳輸服務(wù)554檢索多個應(yīng)用文件并將它們存儲在隔離環(huán)境566中。在這些實施例的另一個中,流傳輸服務(wù)554識別多個應(yīng)用文件所在的遠程機位置,但不檢索多個應(yīng)用文件。在這些實施例的又一個中,流傳輸服務(wù)554檢索多個應(yīng)用文件的文件子集。在這些實施例的又一個中,流傳輸服務(wù)554檢索含有多個應(yīng)用文件的檔案文件。在一個實施例中,第一應(yīng)用566包括駐留在遠程機30上的第二應(yīng)用566'的本地拷貝。在另一個實施例中,多個應(yīng)用文件駐留在遠程機30上且包括駐留在遠程機30上的第二應(yīng)用566'。在又一實施例中,為了執(zhí)行第二應(yīng)用566、本地機IO檢索多個應(yīng)用文件,在本地機上生成第一應(yīng)用566,并執(zhí)行第一應(yīng)用566。在一些實施例中,應(yīng)用566和566'為用戶應(yīng)用,例如文字處理應(yīng)用或電子表格應(yīng)用或演示文稿應(yīng)用。在一些實施例中,多個應(yīng)用文件包括標(biāo)識與遠程機30上的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)的文件。在這些實施例之一中,該文件包括與多個應(yīng)用文件中的每個文件有關(guān)的元數(shù)據(jù)。在這些實施例的另一個中,流傳輸服務(wù)554從該文件檢索元數(shù)據(jù)以產(chǎn)生與多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉,如上文參考圖12所述。在這些實施例的又一個中,流傳輸服務(wù)554存儲與包括第二應(yīng)用566'的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉。在一些實施例中,流傳輸服務(wù)554在第二隔離環(huán)境中存儲該枚舉。在一個實施例中,流傳輸服務(wù)554檢索與第一應(yīng)用566相關(guān)聯(lián)的初始可執(zhí)行文件。在另一個實施例中,流傳輸服務(wù)554在檢索初始可執(zhí)行文件時在本地機10上執(zhí)行第一應(yīng)用566。在又一個實施例中,第一應(yīng)用566請求訪問多個應(yīng)用文件中的其他文件,因為繼續(xù)執(zhí)行第一應(yīng)用566需要這些文件。在一些實施例中,在隔離環(huán)境556中執(zhí)行第一應(yīng)用566。文件系統(tǒng)過濾器驅(qū)動程序564攔截在隔離環(huán)境556中執(zhí)行的第一應(yīng)用566訪問多個應(yīng)用文件中的文件的請求。文件系統(tǒng)過濾器驅(qū)動程序564將該請求重定向到隔離環(huán)境556。如果所請求的文件在隔離環(huán)境556中,則向第一應(yīng)用566提供對所請求的文件的訪問。如果所請求的文件不在隔離環(huán)境556中,文件系統(tǒng)過濾器驅(qū)動程序564則將該請求重定向到笫二隔離環(huán)境。在一個實施例中,第二隔離環(huán)境包括由流傳輸服務(wù)554產(chǎn)生并與包括第二應(yīng)用566'的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉。在另一個實施例中,做出在目錄結(jié)構(gòu)枚舉中識別所請求的文件的決定。在一些實施例中,流傳輸服務(wù)554向隔離環(huán)境556提供信號量。在這些實施例之一中,文件系統(tǒng)過濾器驅(qū)動程序564利用信號量向流傳輸服務(wù)554表示需要訪問多個應(yīng)用文件中的文件。在其他實施例中,文件系統(tǒng)過濾器驅(qū)動程序564使用線程向流傳輸服務(wù)554表示需要訪問該文件。在從文件系統(tǒng)過濾器驅(qū)動程序564接收到通知時,流傳輸服務(wù)554從多個應(yīng)用文件檢索所請求的文件。在這些實施例的又一個中,流傳輸服務(wù)554在第二應(yīng)用隔離環(huán)境中存儲所請求的文件。在一個實施例中,利用從多個應(yīng)用文件中檢索且存儲在第二隔離環(huán)境中的文件實例滿足訪問文件的請求。在另一個實施例中,還在第一隔離環(huán)境中存儲所請求的文件。在一些實施例中,做出笫二隔離環(huán)境不含該文件且在枚舉中識別該文件的決定。在這些實施例之一中,在與包括第二應(yīng)用566'的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)枚舉中識別該文件,且該文件是多個應(yīng)用文件中的文件。在這些實施例的另一個中,流傳輸服務(wù)554不從遠程機檢索該文件。在這些實施例的又一個中,流傳輸服務(wù)554不檢索包括所請求的文件的多個應(yīng)用文件。在這些實施例的又一個中,流傳輸服務(wù)554在檔案文件中檢索多個應(yīng)用文件,但不從該檔案文件檢索所請求的文件。在一個實施例中,流傳輸服務(wù)554包括與文件系統(tǒng)過濾器驅(qū)動程序通信的收發(fā)器。在另一個實施例中,收發(fā)器從文件系統(tǒng)過濾器驅(qū)動程序接收重定向的請求。在又一實施例中,收發(fā)器將對該文件的請求轉(zhuǎn)發(fā)到持有所請求文件的遠程機。在一個實施例中,遠程機為文件服務(wù)器540。在另一個實施例中,將該請求轉(zhuǎn)發(fā)到遠程機30,遠程機30將該請求路由到文件服務(wù)器540。在一些實施例中,文件服務(wù)器540將所請求的文件流傳輸?shù)奖镜貦C10上的收發(fā)器。在其他實施例中,遠程機30將所請求的文件流傳輸?shù)奖镜貦C10上的收發(fā)器。在其他實施例中,在從文件服務(wù)器540接收到所請求的文件時,收發(fā)器將所接收的文件存儲在第二隔離環(huán)境中。在一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564在第三隔離環(huán)境中攔截由在本地機10上執(zhí)行的第三應(yīng)用566"提出的訪問文件的第二請求。在另一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564將訪問文件的請求重定向到第二隔離環(huán)境。在又一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564決定在攔截第三應(yīng)用"的訪問請求之前流傳輸服務(wù)554將所接收的文件存儲在第二隔離環(huán)境中。在一些實施例中,在初始化時,流傳輸服務(wù)554可以在執(zhí)行應(yīng)用程序之前填充隔離環(huán)境中的高速緩沖存儲器。在這些實施例之一中,流傳輸服務(wù)554向隔離環(huán)境中安裝注冊表文件。在這些實施例的另一個中,流傳輸服務(wù)554存儲文件的長名稱和短文件名之間的映射。在一個實施例中,為了節(jié)省本地機上的空間,可以限制高速緩沖存儲器的大小。在一些實施例中,當(dāng)高速緩沖存儲器接近其大小極限時,將自動清除高速緩沖存儲器中最老的文件以為新文件騰出空間。在這些實施例之一中,通過操作系統(tǒng)保持的表示"上次訪問"時間戳的時間的時間戳確定文件的年齡。除了文件年齡之外,還可以考慮文件類型-可以將二進制可執(zhí)行文件(.EXE,.LL等)保持比類似年齡的其他類型文件更長的時間。在初始化時,流傳輸服務(wù)554可以枚舉當(dāng)前在高速緩沖存儲器中的文件并判斷高速緩沖存儲器的總大小。在由隔離環(huán)境556或流傳輸服務(wù)554向高速緩沖存儲器添加文件之后,流傳輸服務(wù)554調(diào)用功能,以向高速緩沖存儲器系統(tǒng)通知新文件、其位置和其大小。將每個新緩存文件的大小添加到高速緩沖存儲器當(dāng)前正運行的總大小。然后將這一新的總大小與高速緩沖存儲器大小極限進行比較,如果已經(jīng)超過該極限,代碼發(fā)出線程以增加高速緩沖存儲器的年齡。在任何給定時間只能有該線程的一個實例在運行。該線程生成高速緩沖存儲器中當(dāng)前所有文件的列表,按照上次訪問時間戳對該列表排序,然后開始沿該列表向下刪除文件,直到我們具有足夠大的磁盤空間來滿足該線程的退出標(biāo)準為止。退出標(biāo)準基于高速緩沖存儲器大小下降到極限以下水平,該水平是作為極限百分比確定的(缺省值為10%)。刪除比所需更多的內(nèi)容,以防止超過極限,防止高速緩沖存儲器在每次增加新文件時都不穩(wěn)定。在一些實施例中,流傳輸服務(wù)554提供了以壓縮文件格式將包括應(yīng)用程序的多個應(yīng)用文件中的每個文件拷貝到本地機10的能力??梢詫⑦@種能力稱為"預(yù)高速緩存"。在這些實施例之一中,在隨后執(zhí)行應(yīng)用程序時,所有的打包請求都指向本地拷貝而不是通過網(wǎng)絡(luò)傳播。這些實施例可以使本地機10的用戶能夠在用戶無法訪問網(wǎng)絡(luò)的時候執(zhí)行應(yīng)用程序。遠程機30包括監(jiān)測本地機IO使用應(yīng)用的情況的功能。遠程機30可以監(jiān)測本地機IO使用的每個應(yīng)用的狀態(tài),例如在執(zhí)行或終止應(yīng)用時進行監(jiān)測。在一個實施例中,遠程機30要求本地機10發(fā)送有關(guān)本地機10執(zhí)行的應(yīng)用狀態(tài)的消息。在另一個實施例中,當(dāng)本地機10連接到遠程機30所在的網(wǎng)絡(luò)時,本地機10發(fā)送消息,表示本地機10已連接到該網(wǎng)絡(luò)。在一個實施例中,當(dāng)本地機10與遠程機30交互并執(zhí)行一個或多個應(yīng)用時,說本地機10具有會話。在另一個實施例中,遠程機30要求本地機IO在會話期間維持從遠程機接收的授權(quán)執(zhí)行應(yīng)用的許可。在又一個實施例中,會話具有由遠程機分配的唯一的會話標(biāo)識符。在一個實施例中,本地機10向與其交互的遠程機30發(fā)送消息,以接收和執(zhí)行應(yīng)用程序。在另一個實施例中,本地機10從遠程機30接收諸如會話管理服務(wù)器562的第二遠程機的標(biāo)識符,第二遠程機接收并存儲所發(fā)送的與本地機10上的會話相關(guān)的所有消息。在一些實施例中,會話管理服務(wù)器562是提供許可管理和會話監(jiān)測服務(wù)的遠程機30。在這些實施例之一中,會話管理服務(wù)器562包括提供這些服務(wù)的服務(wù)器管理子系統(tǒng)508。在一個實施例中,本地機10直接向會話管理服務(wù)器562發(fā)送消息。在另一個實施例中,本地機10向遠程機30發(fā)送消息,遠程機30將該消息轉(zhuǎn)發(fā)到具有本地機10的標(biāo)識的會話管理服務(wù)器562。本地機10可以向遠程機30發(fā)送心跳消息。在一個實施例中,心跳消息包括對許可的請求。在本實施例中,本地機10可以在接收到與本地機IO請求授權(quán)執(zhí)行的應(yīng)用程序相關(guān)聯(lián)的訪問信息之后,發(fā)送心跳消息。本地機10可以在執(zhí)行應(yīng)用之前發(fā)送心跳消息。在一個實施例中,本地機IO在心跳消息中包括利用訪問信息接收的啟動權(quán)證。在本實施例中,遠程機30可以在成功驗證啟動權(quán)證時為本地機5S2授予許可。在另一個實施例中,心跳消息包括表明本地機已經(jīng)開始執(zhí)行應(yīng)用的指示。在又一實施例中,心跳消息包括表明本地機已經(jīng)終止執(zhí)行應(yīng)用的指示。在又一個實施例中,心跳消息包括表明無法執(zhí)行應(yīng)用的指示。在一個實施例中,心跳消息包括對第二會話管理服務(wù)器,例如會話管理服務(wù)器562的標(biāo)識的請求。在另一個實施例中,心跳消息包括表明本地機10已經(jīng)連接到遠程機30所在網(wǎng)絡(luò)的指示。在一些實施例中,心跳消息包括復(fù)位應(yīng)用流傳輸會話的請求。在這些實施例之一中,當(dāng)發(fā)生錯誤時本地機IO發(fā)送該心跳消息,并終止遠程機30所在網(wǎng)絡(luò)和本地機10之間的連接。在這些實施例的另一個中,本地機IO與心跳消息一起發(fā)送與會話相關(guān)的信息.在這些實施例的又一個中,如果會話未到期,遠程機30可以向本地機10發(fā)送與會話相關(guān)的數(shù)據(jù)。在這些實施例的另一個中,如果遠程機30從其所在網(wǎng)絡(luò)斷開連接,本地機10可能無法接收到對發(fā)送到遠程機30的心跳消息的回復(fù)。在一個實施例中,本地機10可以通過向遠程機30發(fā)送請求會話復(fù)位的消息來重新建立會話。在另一個實施例中,本地機10可以通過向笫二遠程機30發(fā)送請求會話復(fù)位的消息來重新建立會話。在一些實施例中,當(dāng)遠程機30重新連接到網(wǎng)絡(luò)時,它將會針對在遠程機30斷開連接時接收的每個會話復(fù)位請求建立新的會話。在這些實施例之一中,新會話將與重新連接且未許可狀態(tài)相關(guān)聯(lián)。在這些實施例的另一個中,將不會為新會話獲取任何新許可。在這些實施例的又一個中,在本地機IO執(zhí)行應(yīng)用時,將獲取新的許可,并且與本地機IO相關(guān)的所有會話將與活動且許可狀態(tài)相關(guān)聯(lián)。在一些實施例中,本地機10上的應(yīng)用流傳輸客戶端552產(chǎn)生心跳消息。在這些實施例之一中,應(yīng)用流傳輸客戶端552將心跳消息轉(zhuǎn)發(fā)到web接口558,以發(fā)送到本地機10,以發(fā)送到遠程機30。在其他實施例中,遠程機30上的管理服務(wù)504通過web接口558從本地機10接收心跳消息。在其他實施例中,包括收集點240(上文參考圖1D所述)的遠程機30接收并存儲心跳消息,在一些實施例中,應(yīng)用流傳輸客戶端552從遠程機30請求許可。在這些實施例之一中,該許可授權(quán)在本地機552上執(zhí)行應(yīng)用程序。在這些實施例的另一個中,遠程機30可以訪問第二遠程機以提供許可。在這些實施例的又一個中,遠程才凡30可以向本地才凡提供該許可。在這些實施例的又一個中,遠程機30可以向第二遠程機提供授權(quán)可以接受的許可。在一些實施例中,在終止執(zhí)4亍應(yīng)用程序的時候收回該許可。83在一些實施例中,農(nóng)場38中的遠程機30包括許可管理子系統(tǒng),該許可管理子系統(tǒng)用于為需要操作許可的那些子系統(tǒng)配置和維持許可并控制通往這種子系統(tǒng)的連接數(shù)量。在其他實施例中,遠程機30將許可管理子系統(tǒng)的功能并入諸如應(yīng)用管理子系統(tǒng)和會話管理子系統(tǒng)的其他子系統(tǒng)中。在一個實施例中,每個遠程機30包括許可管理子系統(tǒng)或與許可管理子系統(tǒng)相關(guān)的功能。許可管理子系統(tǒng)管理兩種許可(1)特征許可和(2)連接許可。簡而言之,許可管理子系統(tǒng)使用特征許可來控制對許可軟件產(chǎn)品的"特征,,的訪問,例如負栽管理,使用連接許可來控制這些許可軟件產(chǎn)品允許的用戶連接數(shù)量。特征可以是軟件產(chǎn)品的一些方面或特定功能,或者特征可以是沒有特征許可就無法工作的整個產(chǎn)品。圖15示出了農(nóng)場38中的遠程機30的一個實施例,其中遠程機30包括許可管理子系統(tǒng)1510、組子系統(tǒng)1520、持久存儲器系統(tǒng)服務(wù)模塊1570、動態(tài)存儲器系統(tǒng)服務(wù)模塊1580、關(guān)系子系統(tǒng)1530、專用遠程機子系統(tǒng)1540和公共訪問點子系統(tǒng)524。圖15中所示的這些子系統(tǒng)是為了描述許可管理子系統(tǒng)1510的行為。遠程機30可以包括其他類型的子系統(tǒng)。許可管理子系統(tǒng)1510通過事件總線與組子系統(tǒng)1520通信,以形成和維持許可的邏輯分組(下文稱"許可組,,),以促成許可池、許可分配和許可組。許可組包括如下所述的許多許可串和/或其他許可組。許可組收集類似特征的許可并從而實現(xiàn)許可的積蓄。積蓄的許可是農(nóng)場38中的任何遠程機30都可以使用的許可。每個許可組都保存該許可組和其他許可子組(即許可組之內(nèi)的其他許可組)中的許可的集體能力。在一個實施例中,與許可池相關(guān)的信息是保持在動態(tài)存儲器240中的。在本實施例中,每個許可管理子系統(tǒng)1610都在本地存儲許可的總數(shù)以及分配給農(nóng)場38中的遠程機30的許可數(shù)量。在授予積蓄的許可時,授予許可的許可管理子系統(tǒng)1510在動態(tài)存儲器240中建立條目,表示該積蓄的許可在"使用中"。其他每個許可管理子系統(tǒng)1510發(fā)現(xiàn)不能授予這樣的積蓄許可。在一個特定實施例中,動態(tài)存儲器240存儲與每個i午可組相關(guān)聯(lián)的遠程才凡ID/客戶端ID對,以標(biāo)識4吏用中的積蓄許可。關(guān)系子系統(tǒng)1530維護著許可和遠程機30之間以及許可組與遠程機30之間的關(guān)聯(lián)。該關(guān)聯(lián)界定了每個許可和許可組中僅關(guān)聯(lián)的遠程機30可以獲得的許可數(shù)量(即"本地許可,,)。本地許可是被分配給農(nóng)場38中一個遠程機且不和其他遠程機30共享的許可。許可管理子系統(tǒng)1510與關(guān)系子系統(tǒng)1530通信以生成、刪除、查詢和更新這種關(guān)聯(lián)。公共訪問點子系統(tǒng)524提供遠程過程調(diào)用(RPC),供遠程機30上的軟件產(chǎn)品使用。這些RPC界面使這種軟件產(chǎn)品能夠通過公共訪問子系統(tǒng)524通信,以訪問許可信息。仍然參考圖15,專用遠程機子系統(tǒng)1540與許可管理子系統(tǒng)1510通信,以針對需要許可的專用遠程機子系統(tǒng)1540的每種能力獲得特征許可。這發(fā)生在專用遠程機子系統(tǒng)1540初始化時以及任何許可事件之后。如果不能獲得特征許可,專用遠程機子系統(tǒng)1540會限制應(yīng)為其提供許可的子系統(tǒng)的功能。而且,只要在與遠程機30發(fā)起客戶端會話的時候,專用遠程機子系統(tǒng)1540就使用許可管理子系統(tǒng)1510來獲得客戶端連接許可。許可管理子系統(tǒng)1510與持久存儲器系統(tǒng)服務(wù)模塊352通信,以便將特征和連接許可作為根據(jù)命名約定形成的許可串存儲在許可儲存庫1550中。許可儲存庫1550位于持久存儲器230中。循環(huán)冗余校驗(CRC)防止在將這種許可存儲在許可儲存庫1550中時該許可被竄改。許可管理子系統(tǒng)1510還在許可儲存庫1550中存儲與許可串相關(guān)的信息。例如,該信息可以表示哪個許可被分配給農(nóng)場38的哪個遠程機30,在一些實施例中,可以表示每個許可的激活狀態(tài)。在一個實施例中,連接許可表1560存儲已經(jīng)獲得連接許可的那些本地機的標(biāo)識符。在一個實施例中,許可管理子系統(tǒng)1510支持來自請求使用被許可能力的子系統(tǒng)的事件,例如對可用積蓄許可的請求。該事件包括請求許可的子系統(tǒng)的UID以及該子系統(tǒng)所在遠程機30的UID。該事件還包含以許可組ID形式請求的許可類型(即特征或連接許可)。持久存儲器230中存儲的實際許可組ID是任意的,但遵守命名約定會為今后向遠程機30增加新軟件產(chǎn)品(即子系統(tǒng))提供了靈活性。由尋求許可的請求子系統(tǒng)發(fā)送的事件包括(1)許可組類型的指示、請求許可的本地機和遠程機的身份以及"強迫獲取"標(biāo)志。許可組類型的指示可以包括諸如負載管理的特征許可或諸如軟件應(yīng)用產(chǎn)品的連接類型許可的標(biāo)識。標(biāo)識本地機和尋求許可的遠程機的字段可以包括85與遠程機和本地機相關(guān)聯(lián)的唯一標(biāo)識符。例如,可以使用強迫獲取標(biāo)志以在許可更改事件之后獲取連接許可。許可更改事件表示持久存儲器230中的許可信息被更改;例如,刪除、添加或轉(zhuǎn)讓了許可。在許可更改事件時,每個遠程機30試圖再次獲取在許可更改事件之前它所擁有的所有連接許可,因為對于該遠程機而言許可更改事件的具體原因是未知的。如果設(shè)置了該標(biāo)記,該標(biāo)記表示必需要獲取連接許可,即使這樣做使通往遠程機30的連接數(shù)超過允許連接的預(yù)定最大數(shù)。隨后不授予任何新的連接許可,直到使用中的連接許可數(shù)量降到該預(yù)定最大數(shù)之下。通過這種方式,不會在會話中因為許可更改事件而終止本地機連接?,F(xiàn)在參考圖16,方框圖示出了強迫許可中涉及的部件的一個實施例。遠程機30包括服務(wù)器管理子系統(tǒng)508和許可管理子系統(tǒng)512。在一些實施例中,服務(wù)器管理子系統(tǒng)508和許可管理子系統(tǒng)512提供上述許可管理子系統(tǒng)1510的功能。在其他實施例中,應(yīng)用管理子系統(tǒng)506和會話管理子系統(tǒng)510提供上述許可管理子系統(tǒng)1510的功能。在其他實施例中,其他子系統(tǒng)提供上述許可管理子系統(tǒng)1510的功能。在一個實施例中,服務(wù)器管理子系統(tǒng)508可以包括用于請求發(fā)出和收回許可的許可部件。在另一個實施例中,許可管理子系統(tǒng)512可以向從服務(wù)器管理子系統(tǒng)508接收的發(fā)出或收回許可的請求采用策略。在又一個實施例中,許可管理子系統(tǒng)512可以向提供強迫許可功能的遠程機30發(fā)送請求。在一些實施例中,管理服務(wù)504可以維持與提供強迫許可功能的第二遠程機30的連接。在其他實施例中,遠程機30提供強迫許可功能。在一些實施例中,在本地機10未能向遠程機發(fā)送預(yù)定數(shù)量心跳消息的時候,許可期滿并停止有效狀態(tài)。在這些實施例之一中,許可期滿收回本地機IO執(zhí)行應(yīng)用程序的授權(quán)。在其他實施例中,在預(yù)定時間期滿時會話超時。在一個實施例中,管理服務(wù)504在許可期滿后維持與會話相關(guān)的數(shù)據(jù),直到會話期滿為止。在一些實施例中,與會話相關(guān)的數(shù)據(jù)可以包括諸如會話名稱、會話ID、客戶端ID、客戶端名稱、會話開始時間、服務(wù)器名(文件服務(wù)器的UNC路徑)、應(yīng)用名稱(本地機基于瀏覽器名稱產(chǎn)生的唯一名稱)、別名、會話狀態(tài)(活動/許可、活動/未許可、重新連接/未許可)的信息。在另一個實施例中,本地機10停止發(fā)送心跳消息并在稍后時間點重新開始發(fā)送心跳消息。在又一個實施例中,如果本地機10在會話期滿之前重新開始發(fā)送心跳消息,管理服務(wù)504可以重新發(fā)放許可并使本地機10可以使用所維持的與會話相關(guān)的數(shù)據(jù)?,F(xiàn)在參考圖17,流程圖示出了在本地計算機10的會話期間從遠程機30請求并維持許可所采取的步驟的一個實施例。簡而言之,應(yīng)用流傳輸客戶端請求許可(步驟1702)。遠程機30接收對許可的請求,驗證與請求相關(guān)聯(lián)的權(quán)證并生成許可(步驟1704)。遠程機30向本地機10提供許可以及與許可相關(guān)聯(lián)的信息(步驟1706)。本地機10執(zhí)行以上參考圖7的步驟214所述的應(yīng)用。本地機發(fā)送表示本地機已經(jīng)執(zhí)行應(yīng)用的心跳消息(步驟1708)。遠程機30接收該心跳消息并驗證隨該心跳消息發(fā)送的識別信息(步驟1708)。遠程機30生成與所執(zhí)行應(yīng)用和本地機10相關(guān)聯(lián)的會話(步驟1710)。將生成會話的結(jié)果發(fā)送到本地機10(步驟1712)。如以上參考圖7的步驟216所述,在執(zhí)行應(yīng)用的整個期間本地機發(fā)送心跳消息。本地機接收對所發(fā)送的心跳消息的響應(yīng)(步驟1714)。本地機發(fā)送表示終止執(zhí)行應(yīng)用的心跳消息(步驟1716)。遠程機30接收該心跳消息并判斷是否刪除與會話相關(guān)的數(shù)據(jù)以及是否釋放與本地機10和所終止的應(yīng)用相關(guān)聯(lián)的許可(步驟1718)。將遠程機30做出的判斷結(jié)果發(fā)送到本地機10(步驟1720)?,F(xiàn)在參考圖17,更詳細地講,本地機IO上的應(yīng)用流傳輸客戶端請求許可(步驟1702)。在一些實施例中,本地機IO在接收到與應(yīng)用程序相關(guān)聯(lián)的訪問信息時請求該許可。在這些實施例之一中,本地機從發(fā)出由本地機10執(zhí)行應(yīng)用程序的授權(quán)的遠程機30請求許可。在一些實施例中,對許可的請求包括從遠程機30隨訪問信息接收的啟動權(quán)證。在其他實施例中,本地機10上的應(yīng)用流傳輸客戶端552向web接口558發(fā)送請求,web接口558向遠程機30發(fā)送請求。在其他實施例中,遠程機上的會話管理子系統(tǒng)510接收并處理對許可的請求。遠程機30接收對許可的請求,驗證與請求相關(guān)聯(lián)的權(quán)證并生成許可(步驟1704)。在一個實施例中,遠程機30驗證是否授權(quán)本地機IO執(zhí)行應(yīng)用。在另一個實施例中,遠程機30判斷本地才幾10是否已經(jīng)與現(xiàn)有許可相關(guān)聯(lián)。在又一個實施例中,遠程機30判定本地機10與現(xiàn)有許可相關(guān)聯(lián),并為本地機10提供用于會話管理服務(wù)器562管理現(xiàn)有許可的標(biāo)識符。在又一個實施例中,遠程機30生成新許可、會話標(biāo)識符和管理新許可的會話管理服務(wù)器562的標(biāo)識并向本地機10提供。在一些實施例中,在許可管理子系統(tǒng)1510接收許可請求的實施例中,遠程機30使用許可管理子系統(tǒng)1510對許可請求做出響應(yīng)。該請求可以是為了特征許可或連接許可。許可管理子系統(tǒng)1510判斷是否已經(jīng)授予許可,即,是否已經(jīng)開始該特征或是否已經(jīng)存在本地機的連接。如果已經(jīng)授予了該許可,許可管理子系統(tǒng)1510向許可請求者發(fā)送"授予"事件。如果以前沒有授予許可,許可管理子系統(tǒng)1510判斷本地許可是否可用,本地許可即已經(jīng)永久分配給遠程機30的許可。在一些實施例中,許可管理子系統(tǒng)1510通過檢查本地存儲器進行該判斷。如果本地許可可用,即,遠程機30具有比當(dāng)前授予的更多的永久分配許可,許可管理子系統(tǒng)1510向許可請求者發(fā)送"授予,,事件。遠程機30向本地機10提供許可以及與許可相關(guān)聯(lián)的信息(步驟1706)。在一個實施例中,在從遠程機30接收到許可、會話標(biāo)識符和會話管理服務(wù)器562的標(biāo)識時,本地機10執(zhí)行應(yīng)用。本地機10可以如以上參考圖7的步驟214所述執(zhí)行該應(yīng)用。本地機發(fā)送表示本地機已經(jīng)執(zhí)行應(yīng)用的心跳消息(步驟1708)。在一個實施例中,本地機向遠程機30發(fā)送心跳消息,以將心跳消息發(fā)送到會話管理服務(wù)器562。在另一個實施例中,本地機10響應(yīng)于從遠程機30接收的會話管理服務(wù)器562的標(biāo)識符直接向會話管理服務(wù)器562發(fā)送心跳消息。遠程機30接收該心跳消息并驗證隨該心跳消息發(fā)送的識別信息(步驟1708)。在一個實施例中,遠程機30'為會話管理服務(wù)器562。在另一個實施例中,會話管理服務(wù)器562驗證由本地機10與心跳消息一起提供的服務(wù)器標(biāo)識符。在又一個實施例中,服務(wù)器標(biāo)識符是由遠程才凡30向本地機IO提供的標(biāo)識符。遠程機30生成與所執(zhí)行應(yīng)用和本地機10相關(guān)聯(lián)的會話(步驟1710)。在一個實施例中,會話管理服務(wù)器562在接收到心跳消息時生成與執(zhí)行應(yīng)用相關(guān)的新會話。在另一個實施例中,第三遠程機30生成新會話。在一些實施例中,會話管理服務(wù)器562在生成新會話時存儲與會話相關(guān)的信息。將生成會話的結(jié)果發(fā)送到本地機IO(步驟1712)。在一些實施例中,該結(jié)果確認會話的生成。在其他實施例中,該結(jié)果標(biāo)識與會話相關(guān)的一個或多個應(yīng)用。如以上參考圖7的步驟216所述,在執(zhí)行應(yīng)用的整個期間本地機發(fā)送心跳消息。在一個實施例中,在執(zhí)行應(yīng)用程序的整個期間本地機10以周期性間隔定期向會話管理服務(wù)器562發(fā)送心跳消息。本地機接收對所發(fā)送的心跳消息的響應(yīng)(步驟1714)。在一個實施例中,本地機IO從會話管理服務(wù)器562接收心跳消息的接收確認。在另一個實施例中,本地機10響應(yīng)于會話管理服務(wù)器562接收到心跳消息,從會話管理服務(wù)器562接收執(zhí)行命令。本地機發(fā)送表示終止執(zhí)行應(yīng)用的心跳消息(步驟1716)。遠程機30接收該心跳消息并判斷是否刪除與會話相關(guān)的數(shù)據(jù)以及是否釋放與本地機10和所終止的應(yīng)用相關(guān)聯(lián)的許可(步驟1718)。將遠程機30做出的判斷結(jié)果發(fā)送到本地機IO(步驟1720)?,F(xiàn)在參考圖18,方框圖示出了可能與管理服務(wù)504監(jiān)測的會話相關(guān)聯(lián)的狀態(tài)的一個實施例。在一個實施例中,管理服務(wù)504上的會話維護子系統(tǒng)510監(jiān)測本地機10的會話并向會話分配狀態(tài)。在另一個實施例中,會話維護子系統(tǒng)510維持與許可相關(guān)的數(shù)據(jù)列表,該列表可以包括與本地機相關(guān)的標(biāo)識符、與會話相關(guān)的標(biāo)識符、會話狀態(tài)和表示遠程機30從本地機10上次接收消息的時間戳。在一些實施例中,會話維護子系統(tǒng)510包括會話監(jiān)測線程。在這些實施例之一中,會話監(jiān)測線程在周期性許可超時間隔醒來,掃描與許可相關(guān)的數(shù)據(jù)列表并更新會話的會話狀態(tài)。會話可以處于的笫一狀態(tài)為活動且許可狀態(tài)。在一個實施例中,當(dāng)處于該狀態(tài)下時,本地機10維持有效許可,該許可授權(quán)執(zhí)行應(yīng)用。在另一個實施例中,會話管理服務(wù)器562保持與會話相關(guān)的數(shù)據(jù)。在一些實施例中,會話管理服務(wù)器562在第二遠程機上存儲與會話相關(guān)的數(shù)據(jù)。在一個實施例中,當(dāng)本地機IO—開始執(zhí)行應(yīng)用時,用于本地機的會話處于活動且許可狀態(tài)。會話可以處于的第二狀態(tài)為活動且未許可狀態(tài)。在一個實施例中,當(dāng)本地機10未能發(fā)送心跳消息且對本地機10的許可期滿時,會話處于該狀態(tài)。在另一個實施例中,如果會話處于該狀態(tài),那么盡管許可已經(jīng)期滿,但距會話期滿還未過去足夠時間,則認為會話是活動的。在一些實施例中,當(dāng)會話處于這種狀態(tài)時,遠程機30或會話管理服務(wù)器562可以代表本地機IO存儲與會話相關(guān)的數(shù)據(jù)。在其他實施例中,如果本地機10在會話期滿之前發(fā)送心跳消息,則向本地機10發(fā)送帶有新許可的與會話相關(guān)的數(shù)據(jù),且會話返回到活動且授權(quán)狀態(tài)。在一個實施例中,遠程機30使用會話標(biāo)識符以及與本地機相關(guān)聯(lián)的標(biāo)識符驗證會話未期滿并向本地機提供適當(dāng)?shù)呐c會話相關(guān)的數(shù)據(jù)。會話可能所處的第三狀態(tài)是斷開連接且不存在狀態(tài)。當(dāng)會話期滿時,刪除與會話相關(guān)的數(shù)據(jù)。會話可以處于的第四狀態(tài)為再次連接且未許可狀態(tài)。在一個實施例中,當(dāng)本地機10上的會話期滿時,刪除與會話相關(guān)的數(shù)據(jù)。在另一個實施例中,當(dāng)本地機10發(fā)送新的心跳消息時,為本地機10生成新會話標(biāo)識符和本地機標(biāo)識符。在一些實施例中,本地機10再次向遠程機30進行認證,接收新許可并進入活動且授權(quán)狀態(tài)。表3總結(jié)了可能與會話相關(guān)的狀態(tài)。會話狀態(tài)描述活動\許可正常運行模式活動\未許可丟失心跳的期間〉許可超時且丟失心跳的期間<會話超時重新連接\未許可丟失心跳的期間〉會話超時或持有會話的CPS/RADE下線后再次上線表3在一些實施例中,打包機構(gòu)使得能生成與應(yīng)用程序相關(guān)聯(lián)的多個應(yīng)用文件。在這些實施例之一中,打包機構(gòu)實現(xiàn)多個應(yīng)用文件的標(biāo)識。在這些實施例的另一個中,打包機構(gòu)使得能將個體應(yīng)用文件分組成多個應(yīng)用文件。在這些實施例的又一個中,打包機構(gòu)實現(xiàn)在諸如文件服務(wù)器或應(yīng)用服務(wù)器的遠程機上持有多個應(yīng)用文件。在一個實施例中,打包機構(gòu)在被稱為"分級機,,的遠程機上執(zhí)行。在另一個實施例中,打包機構(gòu)在"清潔機,,上執(zhí)行。清潔機可以是其上僅安裝了操作系統(tǒng)的遠程機,而沒有額外的軟件、驅(qū)動程序、注冊表項或其他文件。在又一個實施例中,打包機在遠程機上執(zhí)行,該遠程才幾模仿可以在其上執(zhí)行應(yīng)用程序的本地才幾。在一些實施例中,打包機構(gòu)在其上執(zhí)行的遠程機包括提供清潔機環(huán)境的隔離環(huán)境,即使在遠程機自身不是清潔機的情況下也可以向該清潔機環(huán)境中安裝應(yīng)用。在一個實施例中,將多個應(yīng)用文件稱為"程序包"。在另一個實施例中,該程序包可以是存儲多個應(yīng)用文件的檔案文件。在又一個實施例中,該程序包可以是存儲多個應(yīng)用文件以及包括與多個應(yīng)用文件中的至少一個文件相關(guān)聯(lián)的元數(shù)據(jù)的文件的檔案文件。在一些實施例中,程序包包括多個應(yīng)用文件,該多個應(yīng)用文件包括應(yīng)用程序。在其他實施例中,程序包包括多個應(yīng)用文件,該多個應(yīng)用文件包括應(yīng)用程序套件。在其他實施例中,程序包包括多個應(yīng)用文件,該多個應(yīng)用文件包括應(yīng)用程序和執(zhí)行應(yīng)用程序所需的先決條件。在一個實施例中,打包機構(gòu)啟動在隔離環(huán)境中安裝程序的執(zhí)行。在另一個實施例中,打包機構(gòu)監(jiān)測由安裝程序?qū)Ω綦x環(huán)境產(chǎn)生的更改。在又一個實施例中,該打包機構(gòu)監(jiān)測安裝程序在隔離環(huán)境中生成文件的情況。在又一個實施例中,該打包機構(gòu)監(jiān)測安裝程序在隔離環(huán)境中修改文件的情況。在一些實施例中,多個應(yīng)用文件包括由安裝程序生成或修改的文件。在其他實施例中,打包機構(gòu)實現(xiàn)文件系統(tǒng)過濾器驅(qū)動程序564以監(jiān)測該隔離環(huán)境。在一些實施例中,打包機構(gòu)可以生成多份多個應(yīng)用文件,每一多個應(yīng)用文件包括不同版本的應(yīng)用程序,這些應(yīng)用程序被配置成在不同目標(biāo)環(huán)境下執(zhí)行。在這些實施例之一中,將多個應(yīng)用文件配置成在具有特定操作系統(tǒng)、修訂級、語言配置和主驅(qū)動器的本地機上執(zhí)行(例如,可k乂將一份多個應(yīng)用文件酉己置成在具有WindowsXPProfessional操作系統(tǒng)、修訂級SP2和以上,使用英語且主驅(qū)動器為。\的本地機上執(zhí)行)。在這些實施例的另一個中,可以將超過一份多個應(yīng)用文件組合成單個檔案文件。在這些實施例的又一個中,可以將每份多個應(yīng)用文件稱為"目標(biāo),,。在這些實施例的又一個中,可以將含有一份或多份多個應(yīng)用文件的檔案文件稱為"程序包"。現(xiàn)在參考圖19,方框圖示出了包括兩個目標(biāo)的程序包,每個目標(biāo)包括包括應(yīng)用的多個應(yīng)用文件。在圖19中,將應(yīng)用程序"Foo"打包成兩個目標(biāo)。兩個目標(biāo)之間的差異為"目標(biāo)語言",具體而言,目標(biāo)l支持"英語",目標(biāo)2支持"德語"。在一個實施例中,枚舉可用應(yīng)用程序可以列出應(yīng)用程序"Foo"。在另一個實施例中,將適當(dāng)?shù)亩鄠€文件發(fā)送到請求訪問應(yīng)用程序的本地才幾。在又一實施例中,響應(yīng)于對91本地機的評估做出決定,以向本地機發(fā)送特定目標(biāo)。在又一個實施例中,與程序包相關(guān)聯(lián)的文件標(biāo)識與程序包中的目標(biāo)相關(guān)聯(lián)且在本地機上執(zhí)行所需的至少一個特征。在一些實施例中,打包機構(gòu)530通過執(zhí)行與應(yīng)用程序相關(guān)聯(lián)的安裝程序來準備要進行流傳輸?shù)膽?yīng)用程序。在這些實施例之一中,打包機構(gòu)在執(zhí)行打包機構(gòu)的遠程機30上產(chǎn)生隔離環(huán)境。在這些實施例的另一個中,打包機構(gòu)在隔離環(huán)境中執(zhí)行應(yīng)用程序。在這些實施例的又一個中,打包機構(gòu)標(biāo)識由安裝程序生成或修改的多個應(yīng)用文件。在這些實施例的又一個中,打包機構(gòu)生成包括多個應(yīng)用文件的檔案文件。在這些實施例之一中,打包機構(gòu)生成包括多個應(yīng)用文件的.CAB文件。在這些實施例的另一個中,打包機構(gòu)生成目錄并在目錄中存儲多個應(yīng)用文件。在一些實施例中,打包機構(gòu)在文件服務(wù)器或其他遠程機30上存儲多個應(yīng)用文件。在其他實施例中,打包機構(gòu)在多個遠程機上存儲多個應(yīng)用文件?,F(xiàn)在參考圖20,流程圖示出了在用于無須重新引導(dǎo)操作系統(tǒng)而有效安裝應(yīng)用程序的基于策略的方法中采取的步驟的一個實施例。簡而言之,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序?qū)⑴c第二應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中(步驟2002)。攔截安裝程序?qū)χ辽僖粋€應(yīng)用編程接口(API)的調(diào)用,該調(diào)用需要在重新引導(dǎo)操作系統(tǒng)之后執(zhí)行動作(步驟2004)。不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的動作(步驟2006)。接收至少一個應(yīng)用文件的文件類型標(biāo)識(步驟2008)。響應(yīng)于被標(biāo)識的文件類型將至少一種執(zhí)行方法與至少一個已安裝應(yīng)用文件相關(guān)聯(lián)(步驟2010)。在至少一個服務(wù)器上存儲至少一個已安裝應(yīng)用文件(步驟2012)。生成第二應(yīng)用、至少一個已安裝應(yīng)用文件、至少一個服務(wù)器位置和至少一個執(zhí)行方法的枚舉(步驟2014)?,F(xiàn)在參考圖20,更詳細地講,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序?qū)⑴c第二應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中(步驟2002)。在一個實施例中,在隔離環(huán)境之內(nèi)執(zhí)行安裝程序使打包機構(gòu)能夠隔離安裝程序?qū)Ρ镜貦C上的文件或注冊表所做的更改。在另一個實施例中,打包機構(gòu)攔截安裝程序請求的更改并將更改重定向到隔離環(huán)境以防止本地機上發(fā)生更改。在又一實施例中,打包92機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行第二安裝程序,第二應(yīng)用將與第三應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中。在一些實施例中,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序在隔離環(huán)境內(nèi)部執(zhí)行與應(yīng)用相關(guān)聯(lián)的至少一個可執(zhí)行應(yīng)用。在安裝程序執(zhí)行應(yīng)用的一個實施例中,執(zhí)行應(yīng)用使得能夠安裝第二應(yīng)用。在這些實施例的另一個中,除了執(zhí)行安裝程序之外,安裝應(yīng)用還需要執(zhí)行至少一個可執(zhí)行應(yīng)用。在這些實施例的又一個中,除了執(zhí)行安裝程序之外,安裝應(yīng)用需要執(zhí)行因特網(wǎng)(Internet)瀏覽器應(yīng)用。在一些實施例中,執(zhí)行安裝程序以安裝程序,執(zhí)行安裝程序包括執(zhí)行安裝程序所需的第二程序。在這些實施例之一中,該程序為插件。在這些實施例的另一個中,該程序為活動X部件。在這些實施例的又一個中,該程序為Flash部件。在這些實施例的又一個中,該程序為定制工具條,例如Yahoo!或Google工具條。在其他實施例中,該程序為安裝到第二程序中的部件,不可獨立于第二程序執(zhí)行。攔截安裝程序?qū)χ辽僖粋€應(yīng)用編程接口(API)的調(diào)用,該調(diào)用需要在重新引導(dǎo)操作系統(tǒng)之后執(zhí)行動作(步驟2004)。不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的動作(步驟2006)。在一些實施例中,執(zhí)行動作包括執(zhí)行在安裝期間修改的注冊表項的動作。參考以下的圖25提供了關(guān)于不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的更多細節(jié)。接收至少一個應(yīng)用文件的文件類型標(biāo)識(步驟2008)。響應(yīng)于被標(biāo)識的文件類型將至少一種執(zhí)行方法與至少一個已安裝應(yīng)用文件相關(guān)聯(lián)(步驟2010)。在一個實施例中,至少一種執(zhí)行方法使得能將至少一個應(yīng)用文件流傳輸?shù)娇蛻舳恕T诹硪粋€實施例中,該至少一種執(zhí)行方法使得能在客戶端上執(zhí)行至少一個已安裝應(yīng)用文件。在又一個實施例中,至少一種執(zhí)行方法使得能在服務(wù)器上執(zhí)行至少一個已安裝應(yīng)用文件在又一個實施例中,該至少一種執(zhí)行方法使得能將至少一個應(yīng)用文件流傳輸?shù)椒?wù)器。在至少一個服務(wù)器上存儲至少一個已安裝應(yīng)用文件(步驟2012)。在一些實施例中,在將至少一個已安裝應(yīng)用文件存儲在至少一個服務(wù)器上之前在隔離環(huán)境內(nèi)執(zhí)行已安裝應(yīng)用程序。在這些實施例之一中,響應(yīng)于執(zhí)行已安裝應(yīng)用程序生成額外的應(yīng)用文件,在這些實施例的另一個中,生成數(shù)據(jù)文件。在這些實施例的又一個中,已安裝應(yīng)用程序需要信息來完成安裝,在初始安裝過程之后需要該信息。在這些實施例的又一個中,需要諸如軟件產(chǎn)品標(biāo)識符、許可標(biāo)識符或其他信任狀的信息。在一些實施例中,提供標(biāo)識符來標(biāo)識至少一個已安裝應(yīng)用文件在至少一個服務(wù)器上的位置。在這些實施例之一中,標(biāo)識符符合通用命名標(biāo)準(UNC)。在其他實施例中,將至少一個已安裝應(yīng)用文件置于諸如.CAB文件的檔案文件中。在這些實施例之一中,在檔案文件中存儲多個應(yīng)用文件,在至少一個服務(wù)器上存儲檔案文件。在這些實施例的又一個中,在多個服務(wù)器上存儲至少一個已安裝應(yīng)用文件。在其他實施例中,將至少一個應(yīng)用文件置于存儲應(yīng)用文件的目錄中。生成第二應(yīng)用、至少一個已安裝應(yīng)用文件、至少一個服務(wù)器位置和至少一個執(zhí)行方法的枚舉(步驟2014)。在一些實施例中,在文件中存儲枚舉。在其他實施例中,在清單文件中存儲枚舉。在其他實施例中,在XML文件中存儲枚舉。在一個實施例中,生成多個應(yīng)用、與多個應(yīng)用的每個相關(guān)聯(lián)的多個已安裝應(yīng)用文件以及存儲多個已安裝應(yīng)用文件的至少一個服務(wù)器的位置的枚舉。在另一個實施例中,生成包括第二應(yīng)用與多個已安裝應(yīng)用文件之間的關(guān)聯(lián)的枚舉。在又一實施例中,生成包括第二應(yīng)用與含有至少一個已安裝應(yīng)用文件的壓縮文件之間的關(guān)聯(lián)的枚舉?,F(xiàn)在參考圖21,流程圖示出了在用于無須重新引導(dǎo)操作系統(tǒng)而安裝應(yīng)用程序的基于策略的方法中采取的步驟的一個實施例。簡而言之,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序?qū)⑴c第二應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中(步驟2102)。攔截安裝程序?qū)χ辽僖粋€應(yīng)用編程接口(API)的調(diào)用,該調(diào)用需要在重新引導(dǎo)操作系統(tǒng)之后執(zhí)行動作(步驟2104)。不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的動作(步驟2106)。接收至少一個應(yīng)用文件的特征標(biāo)識(步驟2108)。響應(yīng)于被標(biāo)識的特征將至少一種執(zhí)行先決條件與至少一個已安裝應(yīng)用文件相關(guān)聯(lián)(步驟2110)。在至少一個服務(wù)器上存儲至少一個已安裝應(yīng)用文件(步驟2112)。生成第二應(yīng)用、至少一個已安裝應(yīng)用文件、至少一個服務(wù)器位置和至少一個執(zhí)行先決條件的枚舉(步驟2114)。現(xiàn)在參考圖21,更詳細地講,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序?qū)⑴c第二應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中(步驟2102)。在一個實施例中,在隔離環(huán)境之內(nèi)執(zhí)行安裝程序使打包機構(gòu)能夠隔離安裝程序?qū)Ρ镜貦C上的文件或注冊表所做的更改。在另一個實施例中,打包機構(gòu)攔截安裝程序請求的更改并將更改重定向到隔離環(huán)境以防止本地機上發(fā)生更改。在又一實施例中,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行第二安裝程序,第二應(yīng)用將與第三應(yīng)用相關(guān)聯(lián)的至少一個應(yīng)用文件安裝到隔離環(huán)境中。在一些實施例中,打包機構(gòu)在隔離環(huán)境之內(nèi)執(zhí)行安裝程序,安裝程序在隔離環(huán)境內(nèi)部執(zhí)行與應(yīng)用相關(guān)聯(lián)的至少一個可執(zhí)行應(yīng)用。在安裝程序執(zhí)行應(yīng)用的一個實施例中,執(zhí)行應(yīng)用使得能夠安裝第二應(yīng)用。在這些實施例的另一個中,除了執(zhí)行安裝程序之外,安裝應(yīng)用還需要執(zhí)行至少一個可執(zhí)行應(yīng)用。在這些實施例的又一個中,除了執(zhí)行安裝程序之外,安裝應(yīng)用需要執(zhí)行因特網(wǎng)瀏覽器應(yīng)用。向前參考圖23,方框圖示出了包括打包機構(gòu)530和文件系統(tǒng)過濾器驅(qū)動程序534的系統(tǒng)的一個實施例,打包機構(gòu)530將安裝程序2350執(zhí)行到隔離環(huán)境532中,文件系統(tǒng)過濾器驅(qū)動程序534與打包機構(gòu)530和隔離環(huán)境532通信。在一個實施例中,打包機構(gòu)530通過將應(yīng)用程序安裝到隔離環(huán)境532中產(chǎn)生程序包(如以上結(jié)合圖21所述)。在另一個實施例中,打包機構(gòu)530通過執(zhí)行安裝程序2350來將應(yīng)用程序安裝到隔離環(huán)境532中。在一些實施例中,打包機構(gòu)530包括圖形用戶界面。在這些實施例之一中,圖形用戶界面使打包機構(gòu)530的用戶能夠定制由打包機構(gòu)530產(chǎn)生程序包的過程。在這些實施例的另一個中,打包機構(gòu)530與訪問控制套件520上的圖形用戶界面通信,使得訪問控制套件520的用戶能夠定制打包機構(gòu)530產(chǎn)生程序包的過程。在一些實施例中,文件系統(tǒng)過濾器驅(qū)動程序532使得能在隔離環(huán)境532中安裝應(yīng)用程序。在這些實施例之一中,文件系統(tǒng)過濾器驅(qū)動程序532攔截安裝程序2350的請求。在這些實施例的另一個中,文件系統(tǒng)過濾器驅(qū)動程序532將安裝程序2350的請求重定向到隔離環(huán)境532。在這些實施例之一中,文件系統(tǒng)過濾器驅(qū)動程序532存儲安裝程序2350所提請求的記錄。在這些實施例又一個中,文件系統(tǒng)過濾器驅(qū)動程序532存儲安裝程序2350生成或修改的文件拷貝。在一些實施例中,將所存儲的由文件系統(tǒng)過濾器驅(qū)動程序532生成的記錄作為包括應(yīng)用程序的多個應(yīng)用文件而存儲在一起。在其他實施例中,在文件服務(wù)器540上存儲多個應(yīng)用文件。返回到圖21,攔截安裝程序?qū)χ辽僖粋€應(yīng)用編程接口(API)的調(diào)用,該調(diào)用需要在重新引導(dǎo)操作系統(tǒng)之后執(zhí)行動作(步驟2104)。不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的動作(步驟2106)。在一些實施例中,執(zhí)行該動作包括安裝驅(qū)動程序,該驅(qū)動程序被配置成在引導(dǎo)計算機系統(tǒng)時啟動。在其他實施例中,執(zhí)行動作包括執(zhí)行在安裝期間修改的注冊表項的動作。接收至少一個應(yīng)用文件的特征標(biāo)識(步驟2108)。在一些實施例中,接收操作系統(tǒng)類型的標(biāo)識。在其他實施例中,接收操作系統(tǒng)所用語言的標(biāo)識。在其他實施例中,接收第二應(yīng)用版本的標(biāo)識。響應(yīng)于被標(biāo)識的特征將至少一種執(zhí)行先決條件與至少一個已安裝應(yīng)用文件相關(guān)聯(lián)(步驟2110)。在一個實施例中,響應(yīng)于向特征應(yīng)用策略將至少一種執(zhí)行先決條件與至少一個已安裝應(yīng)用文件相關(guān)聯(lián)。在另一個實施例中,腳本與至少一個已安裝應(yīng)用文件相關(guān),該腳本包括可執(zhí)行程序,該可執(zhí)行程序判斷客戶端上是否存在至少一個執(zhí)行先決條件。向前參考圖22,屏幕快照示出了要在本地機上執(zhí)行的腳本枚舉的一個實施例。腳本2202的類型表示應(yīng)當(dāng)何時執(zhí)行該腳本,例如,在執(zhí)行應(yīng)用之前,或在終止執(zhí)行應(yīng)用之后。隔離指示符24表示是否應(yīng)當(dāng)在本地機10上的隔離環(huán)境中執(zhí)行腳本。如圖22所示,在一些實施例中,在將多個應(yīng)用文件打包到一起并存儲在持有多個應(yīng)用文件的遠程機3(K上時,將腳本與應(yīng)用程序相關(guān)聯(lián)。在一些實施例中,至少一個執(zhí)行先決條件要求在執(zhí)行至少一個已安裝應(yīng)用文件的系統(tǒng)上安裝操作系統(tǒng)的版本。在其他實施例中,至少一個執(zhí)行先決條件要求在執(zhí)行至少一個已安裝應(yīng)用文件的系統(tǒng)上安裝第二應(yīng)用的版本。在其他實施例中,將一指令與至少一個已安裝應(yīng)用文件相關(guān)聯(lián),該指令表明將由客戶端使用的笫二已安裝應(yīng)用文件未能滿足至少一個執(zhí)行先決條件。在其他實施例中,將一指令與至少一個已安裝應(yīng)用文件相關(guān)聯(lián),該指令表明用于在客戶端上執(zhí)行至少一個已安裝應(yīng)用文件的第二執(zhí)行方法未能滿足至少一個執(zhí)行先決條件。在這些實施例之一中,將一執(zhí)行方法與至少一個已安裝應(yīng)用文件相關(guān)聯(lián),該執(zhí)行方法授權(quán)將包括第二應(yīng)用的多個應(yīng)用文件流傳輸?shù)奖镜貦C以在本地機上執(zhí)行。在這些實施例的另一個中,本地機的評估標(biāo)識與本地機上未包括的至少一個已安裝應(yīng)用文件相關(guān)聯(lián)的至少一個特征。在這些實施例的又一個中,收回對執(zhí)行多個應(yīng)用文件的授權(quán)。在這些實施例的又一個中,提供第二執(zhí)行方法用于執(zhí)行多個應(yīng)用文件,第二執(zhí)行方法使得能在遠程機上執(zhí)行多個應(yīng)用文件并從遠程機向本地機傳輸應(yīng)用輸出數(shù)據(jù)。在至少一個服務(wù)器上存儲至少一個已安裝應(yīng)用文件(步驟2112)。在一些實施例中,在將至少一個已安裝應(yīng)用文件存儲在至少一個服務(wù)器上之前在隔離環(huán)境內(nèi)執(zhí)行已安裝應(yīng)用程序。在這些實施例之一中,響應(yīng)于執(zhí)行已安裝應(yīng)用程序生成額外的應(yīng)用文件。在這些實施例的另一個中,生成數(shù)據(jù)文件。在這些實施例的又一個中,已安裝應(yīng)用程序需要信息來完成安裝,在初始安裝過程之后需要該信息。在這些實施例的又一個中,需要諸如軟件產(chǎn)品標(biāo)識符、許可標(biāo)識符或其他信任狀的信息。在一些實施例中,提供標(biāo)識符來標(biāo)識至少一個已安裝應(yīng)用文件在至少一個服務(wù)器上的位置。在這些實施例之一中,標(biāo)識符符合通用命名標(biāo)準(UNC)。在其他實施例中,將至少一個已安裝應(yīng)用文件置于諸如.CAB文件的檔案文件中。在這些實施例之一中,在檔案文件中存儲多個應(yīng)用文件,在至少一個服務(wù)器上存儲檔案文件。在這些實施例的又一個中,在多個服務(wù)器上存儲至少一個已安裝應(yīng)用文件。在其他實施例中,將至少一個已安裝應(yīng)用文件置于存儲應(yīng)用文件的目錄中。生成第二應(yīng)用、至少一個已安裝應(yīng)用文件、至少一個服務(wù)器位置和至少一個執(zhí)行先決條件的枚舉(步驟2114)。在一些實施例中,在文件中存儲枚舉。在其他實施例中,在清單文件中存儲枚舉。在其他實施例中,將枚舉存儲在XML文件中。在一個實施例中,生成多個應(yīng)用、與多個應(yīng)用的每個相關(guān)聯(lián)的多個已安裝應(yīng)用文件以及存儲多個已安裝應(yīng)用文件的至少一個服務(wù)器的位置的枚舉。在另一個實施例中,生成包括第二應(yīng)用與多個已安裝應(yīng)用文件之間的關(guān)聯(lián)的枚舉。在又一實施例中,生成包括第二應(yīng)用與含有至少一個已安裝應(yīng)用文件的壓縮文件之間的關(guān)聯(lián)的枚舉。返回步驟2106,在不重新引導(dǎo)操作系統(tǒng)而執(zhí)行至少一個被攔截調(diào)用的動作時,在一些實施例中,提供虛擬化安裝和執(zhí)行環(huán)境,其消除了在執(zhí)行已安裝應(yīng)用之前重新引導(dǎo)系統(tǒng)的需要?,F(xiàn)在參考圖24,流程圖示出了執(zhí)行安裝程序需要重新引導(dǎo)執(zhí)行安裝程序的本地機上的操作系統(tǒng)的實施例。常規(guī)的應(yīng)用安裝程序?qū)⑽募截惖奖话惭b應(yīng)用的遠程機上(步驟2402)。在一些實施例中,拷貝文件可能導(dǎo)致重新引導(dǎo)遠程機。應(yīng)用安裝程序試圖將至少一個文件拷貝到鎖定文件(步驟2404)。在一個實施例中,僅在執(zhí)行操作系統(tǒng)(或"重新引導(dǎo)")時可以對鎖定文件寫入。在MoveFileEx()Win32API中設(shè)置MOVE-FILE-DELAY—UNTIL—REBOOT選項(步驟2406),應(yīng)用安裝程序調(diào)用系統(tǒng)關(guān)閉/重新引導(dǎo)功能(步驟2408)。重新引導(dǎo)之后,則在重新引導(dǎo)時安裝一開始鎖定的文件(步驟2410)?,F(xiàn)在參考圖25,方框圖示出了打包機構(gòu)在其上安裝應(yīng)用程序的遠程機30的一個實施例。遠程機30包括系統(tǒng)資源2502、系統(tǒng)API2504和用于安裝應(yīng)用的應(yīng)用安裝程序2506。遠程機30還包括功能轉(zhuǎn)播機構(gòu)2508、安裝后處理器模塊2510和應(yīng)用隔離環(huán)境2512。在一些實施例中,將應(yīng)用程序安裝到隔離環(huán)境2512中使得能不重新引導(dǎo)遠程機30而進行安裝。在這些實施例之一中,對隔離環(huán)境2512中虛擬化的系統(tǒng)資源2502所做的更改不改變遠程機30上的相應(yīng)系統(tǒng)資源2502.由于未更改遠程機30上的系統(tǒng)資源,因此不需要重新引導(dǎo)機器以保護系統(tǒng)資源不被進行不當(dāng)更改?,F(xiàn)在參考圖25,更詳細地講,系統(tǒng)資源2502可以包括注冊表項、系統(tǒng)DLL及其他操作系統(tǒng)防止在遠程機30執(zhí)行時寫入的鎖定文件。系統(tǒng)API2504包括用于重新引導(dǎo)被應(yīng)用安裝程序2506調(diào)用且被功能轉(zhuǎn)播機構(gòu)2508轉(zhuǎn)播的系統(tǒng)的API,以防止重新引導(dǎo)遠程機30。應(yīng)用隔離環(huán)境2512向應(yīng)用安裝程序2506提供了具有操作系統(tǒng)資源的視圖的環(huán)境。在一個實施例中,應(yīng)用隔離環(huán)境2512為隔離環(huán)境556。在一些實施例中,應(yīng)用隔離環(huán)境2512提供了諸如文件系統(tǒng)、注冊表和命名對象的虛擬化。在一個實施例中,應(yīng)用安裝程序2506在應(yīng)用隔離環(huán)境2512之內(nèi)執(zhí)行。在另一個實施例中,應(yīng)用安裝程序2506將應(yīng)用程序安裝導(dǎo)應(yīng)用隔離環(huán)境2512中。在又一個實施例中,應(yīng)用安裝程序2506在應(yīng)用隔離環(huán)境2512之外執(zhí)行并在應(yīng)用隔離環(huán)境2512內(nèi)安裝應(yīng)用程序。在一些實施例中,在應(yīng)用安裝程序2506向應(yīng)用隔離環(huán)境2512中安裝應(yīng)用時,應(yīng)用隔離環(huán)境2512避開了重新引導(dǎo)遠程機30的需要。在一個實施例中,應(yīng)用隔離環(huán)境2512攔截將應(yīng)用文件拷貝到鎖定文件的請求。在另一個實施例中,應(yīng)用隔離環(huán)境2512將拷貝應(yīng)用文件的請求重定向到未鎖定文件。在又一個實施例中,應(yīng)用隔離環(huán)境2512將拷貝應(yīng)用文件的請求重定向到虛擬化文件。在又一個實施例中,對拷貝應(yīng)用文件的請求重定向使得能夠在無須重新引導(dǎo)遠程機30的情況下安裝應(yīng)用文件。例如,如果應(yīng)用安裝程序2506試圖向鎖定文件寫入,例如向c:\windows\system32\mfc40.dll寫入,則應(yīng)用隔離環(huán)境2512攔截該請求并將文件重定向到另一未鎖定位置。這種避免鎖定文件的能力表示可以無須利用MoveFileExOAPI和MOVE-FILE-DELAY-UNTIL—REBOOT標(biāo)記來安裝文件。這種能力消除了對重新引導(dǎo)遠程機30的需要。在一個實施例中,功能轉(zhuǎn)播機構(gòu)2508是文件系統(tǒng)過濾器驅(qū)動程序564。在另一個實施例中,文件系統(tǒng)過濾器驅(qū)動程序564包括功能轉(zhuǎn)播機構(gòu)2508。在又一個實施例中,功能轉(zhuǎn)播機構(gòu)2508攔截來自應(yīng)用安裝程序2506的請求以重新啟動遠程機30。在一些實施例中,應(yīng)用隔離環(huán)境2512提供了將應(yīng)用文件拷貝到未鎖定文件。然而,應(yīng)用隔離環(huán)境2512不解決應(yīng)用安裝程序2506要求重新引導(dǎo)遠程機30的請求。功能轉(zhuǎn)播機構(gòu)2508攔截重新引導(dǎo)請求并對應(yīng)用安裝程序2506做出響應(yīng)。應(yīng)用隔離環(huán)境2512使得能將應(yīng)用文件拷貝到未鎖定文件。然而,在一些實施例中,安裝應(yīng)用需要其他動作,這些動作可以在重新引導(dǎo)時發(fā)生。防止重新引導(dǎo)并不阻止在安裝過程中完成這些動作的需要。功能轉(zhuǎn)播機構(gòu)2508可以提供執(zhí)行與安裝應(yīng)用相關(guān)的動作的功能。例如,在安裝應(yīng)用期間,可以寫入注冊表項,例如HKLM\SYSTEM\CurrentControlSet\Control\Session—Manager\Pending-FileRenameOperations。其他應(yīng)用可以安裝需要在引導(dǎo)機器時啟動的服務(wù)或驅(qū)動程序。安裝后處理器模塊2510識別在安裝期間被修改的應(yīng)用文件,并執(zhí)行與該應(yīng)用文件相關(guān)聯(lián)的動作?,F(xiàn)在參考圖26,流程圖示出了在應(yīng)用隔離環(huán)境2512中安裝應(yīng)用所采取的步驟的一個實施例。應(yīng)用隔離環(huán)境2512向應(yīng)用安裝程序提供服99務(wù)器操作系統(tǒng)的虛擬化視圖(步驟2602)。對涉及系統(tǒng)重新引導(dǎo)和停機的服務(wù)器上的API進行轉(zhuǎn)播(步驟2604)以防止應(yīng)用安裝程序2506導(dǎo)致重新引導(dǎo)。應(yīng)用安裝程序2506請求到鎖定文件的文件拷貝操作,該請求被攔截并重定向到不沖突的位置(步驟2606)。當(dāng)應(yīng)用安裝程序2506試圖通過調(diào)用系統(tǒng)API重新引導(dǎo)時,攔截該請求并防止重新引導(dǎo)(步驟2608)。安裝后處理器模塊2510執(zhí)行在重新引導(dǎo)之后通常發(fā)生的動作(步驟2610),然后可以不用重新引導(dǎo)遠程機30而在應(yīng)用隔離環(huán)境2512中執(zhí)行應(yīng)用(步騍2612)。在一些實施例中,將應(yīng)用程序安裝到應(yīng)用隔離環(huán)境2512中之后,打包機構(gòu)標(biāo)識在安裝應(yīng)用程序期間生成或修改的多個應(yīng)用文件。在這些實施例之一中,在遠程機上存儲多個應(yīng)用文件。在這些實施例的另一個中,檢索多個應(yīng)用文件的本地機可以執(zhí)行該應(yīng)用程序。在一些實施例中,打包機構(gòu)530在包括隔離環(huán)境532和文件系統(tǒng)過濾器驅(qū)動程序534的遠程機上執(zhí)行并將應(yīng)用程序安裝到隔離環(huán)境532中。在這些實施例之一中,該遠程機被稱為"清潔機(cleanmachine)"或"分級機"。在這些實施例的另一個中,隔離環(huán)境532包括應(yīng)用隔離范圍,該應(yīng)用隔離范圍提供由清潔機上的操作系統(tǒng)提供的本地資源的可修改、虛擬化實例。在這些實施例的又一個中,隔離環(huán)境532包括提供本地資源的只讀視圖的系統(tǒng)隔離范圍。在這些實施例的又一個中,本地資源的只讀視圖包括文件系統(tǒng)的快照和清潔機上駐留的注冊表。在一個實施例中,重定向器攔截要求更改本地資源的請求。在一些實施例中,重定向器為文件系統(tǒng)過濾器驅(qū)動程序534。在另一個實施例中,由打包機構(gòu)530執(zhí)行的安裝程序提出更改請求。在又一個實施例中,將應(yīng)用程序安裝到清潔機上需要對本地資源進行更改。在又一個實施例中,重定向器將該請求重定向到隔離環(huán)境532。在一些實施例中,將更改本地資源的請求重定向到隔離環(huán)境532造成與安裝應(yīng)用程序相關(guān)聯(lián)的更改被隔離。在其他實施例中,將更改本地資源的請求記錄并存儲在存儲元件中。在這些實施例之一中,與安裝應(yīng)用程序相關(guān)聯(lián)的所有更改都駐留在存儲元件中。在這些實施例的另一個中,本地機552檢索存儲元件的內(nèi)容并對駐留在本地機552上的隔離環(huán)境556中的本地資源實施更改,這導(dǎo)致在本地機552上安100裝應(yīng)用程序。在一些實施例中,可能需要對本地機io進行啟動前分析。在這些實施例之一中,本地機10驗證至少一個特征包括在本地機10中。在這些實施例的另一個中,在啟動前分析判定本地機IO缺少至少一個特征之后將該至少一個特征添加到本地機10。在這些實施例的又一個中,持有應(yīng)用程序的遠程機包括該至少一個特征且本地機未能包括該至少一個特征將阻止執(zhí)行應(yīng)用程序。在又一個實施例中,該應(yīng)用程序要求要執(zhí)行的本地機上存在至少一個特征。在一些實施例中,打包機構(gòu)使得能識別至少一個特征,以在對本地機進行啟動前分析時使用。在其他實施例中,打包機構(gòu)使得能將至少一個特征與可以在本地機上執(zhí)行的應(yīng)用程序相關(guān)聯(lián)。在其他實施例中,打包機構(gòu)使得能將可執(zhí)行腳本與應(yīng)用程序相關(guān)聯(lián),本地機執(zhí)行該可執(zhí)行腳本以完成啟動前分析。在其他實施例中,在執(zhí)行應(yīng)用程序之后需要本地機上存在該至少一個特征。打包機構(gòu)可以提供簽署多個應(yīng)用文件的功能。在一個實施例中,簽署多個應(yīng)用文件使得本地機能夠驗證多個應(yīng)用文件的完整性。在另一個實施例中,簽署多個應(yīng)用文件防止本地機執(zhí)行被破壞的應(yīng)用程序。在一些實施例中,計算多個應(yīng)用文件中文件的密碼校驗和,例如MD4散列碼、MD5散列碼或SHA-l散列碼。在其他實施例中,計算多個應(yīng)用文件中每個文件的密碼校驗和。在這些實施例之一中,在第二文件中存儲密碼校驗和。在這些實施例的另一個中,將第二文件與多個應(yīng)用文件相關(guān)聯(lián)。在一些實施例中,將第二文件添加到多個應(yīng)用文件。在其他實施例中,利用諸如X.509證書的證書簽署第二文件。在其他實施例中,檢索多個應(yīng)用文件的本地機利用證書的公開部分驗證簽名。在其他實施例中,本地機接收證書的公開部分和證書委托列表的標(biāo)識以驗證簽名。在這些實施例之一中,本地機接收包含證書委托列表的標(biāo)識的注冊表項。在一個實施例中,打包機構(gòu)提供了用于定制隔離環(huán)境的功能。在另一個實施例中,打包機構(gòu)提供了用于生成存儲隔離環(huán)境定義的文件的功能。在又一個實施例中,打包機構(gòu)包括具有多個應(yīng)用文件的文件,該多個應(yīng)用文件包括應(yīng)用程序。在又一個實施例中,本地機從遠程機接收具有訪問信息的文件。在一些實施例中,將多個應(yīng)用文件存儲在檔案文件中。在這些實施例之一中,該檔案文件為CAB文件格式。在這些實施例的另一個中,該檔案文件格式不支持由應(yīng)用程序?qū)ξ募亩涛募M行規(guī)格說明。在這些實施例的又一個中,諸如WINDOWS2000的操作系統(tǒng)可能不支持由應(yīng)用程序?qū)ξ募亩涛募鲆?guī)格說明。在其他實施例中,諸如WINDOWSXP的操作系統(tǒng)支持由應(yīng)用程序?qū)ξ募亩涛募鲆?guī)格說明。在這些實施例之一中,執(zhí)行文件的請求必需包括文件的正確文件名。在一個實施例中,可以生成映射以將多個應(yīng)用文件中文件的長文件名與文件的短名相關(guān)聯(lián)。在另一個實施例中,在多個應(yīng)用文件中的文件中存儲映射。在又一個實施例中,僅當(dāng)文件的長文件名長于l2個字符時文件才具有短文件名。在一些實施例中,短文件名是與該文件相關(guān)聯(lián)的虛擬文件名。在這些實施例之一中,在文件以長文件名存儲的情況下,將該文件發(fā)送到本地機io來執(zhí)行。在這些實施例的另一個中,本地機10上的應(yīng)用文件利用短文件名請求執(zhí)行文件。在這些實施例的又一個中,盡管執(zhí)行文件的請求未使用本地機上的文件名稱(長文件名),但映射使得能夠執(zhí)行該文件。在一些實施例中,打包機構(gòu)530生成該映射。在這些實施例之一中,打包機構(gòu)530為具有長文件名的文件選擇短文件名。在這些實施例的另一個中,執(zhí)行打包機構(gòu)530的遠程機3(K上的操作系統(tǒng)為具有長文件名的文件選擇短文件名。在這些實施例的又一個中,選擇不與遠程機30'上的第二個短文件名沖突的唯一短文件名。在這些實施例的又一個中,由打包機構(gòu)530執(zhí)行的安裝程序生成包括長文件名和短文件名之間映射的文件。在其他實施例中,將該映射發(fā)送到檢索該文件的本地機10。在這些實施例之一中,本地機IO在執(zhí)行文件時引用該文件。應(yīng)用程序的多個文件,將其流傳輸?shù)奖镜貦C并在本地機上執(zhí)行。這些實例是為了示例而非限制本發(fā)明。實例1在一個實施例中,本地才幾10的用戶請求訪問應(yīng)用程序枚舉中標(biāo)識的應(yīng)用程序,例如文字處理程序、web瀏覽應(yīng)用或數(shù)據(jù)表程序。在本實施例的一個實例中,本地機IO執(zhí)行程序鄰域應(yīng)用,該程序鄰域應(yīng)用從遠程機30接收本地機10可用的應(yīng)用枚舉。在本實施例的另一個實例中,本地機10與諸如遠程機30'〃的web服務(wù)器通信,以接收應(yīng)用枚舉。本地機10的用戶可以通過選擇代表被枚舉的應(yīng)用程序的圖形表示來請求訪問被枚舉的應(yīng)用程序。本地機10的用戶可以請求訪問此前未安裝在本地機IO上的應(yīng)用程序。本地機10將訪問應(yīng)用程序的請求發(fā)送到遠程機30。本地機10接收遠程機30"的標(biāo)識,該遠程機30"提供對包括應(yīng)用程序的多個應(yīng)用文件的訪問。本地機IO標(biāo)識執(zhí)行應(yīng)用程序所需的至少一個特征。在本實施例的一個實例中,本地機IO接收由遠程機30發(fā)送到本地機10的具有遠程機30"的標(biāo)識的至少一個特征。在本實施例的另一個實例中,本地機10在接收到遠程機30"的標(biāo)識之后從遠程機30"檢索至少一個特征??梢砸蟊镜貦CIO在接收到檢索多個應(yīng)用文件的授權(quán)之前包括至少一個特征。或者,可以要求本地機IO在執(zhí)行多個應(yīng)用文件之前包括至少一個特征。在本實施例的一個實例中,可以要求本地機10在執(zhí)行多個應(yīng)用文件的整個期間包括至少一個特征。在本地機IO驗證本地機10包括至少一個特征時,本地機10檢索多個應(yīng)用文件中的至少一個應(yīng)用文件并執(zhí)行所檢索的應(yīng)用文件以執(zhí)行應(yīng)用程序。實例2遠程機30從本地機IO接收訪問應(yīng)用程序的請求。遠程機30對本地機10進行認證。在本實施例的一個實例中,遠程機30從本地機10請求信任狀,例如用戶名和口令。在本實施例的另一個實例中,遠程機30向本地機10發(fā)送收集代理404。收集代理404收集有關(guān)本地機10的信息并將該信息發(fā)送到遠程機30以在認證本地機10時使用。在本實施例的又一個實例中,遠程機30向策略引擎406提供有關(guān)本地機IO的信息,用于對本地機IO進行認證。遠程機30可以包括策略引擎406?;蛘?,遠程機30可以與包括策略引擎406的遠程機30'通信。遠程機30選擇應(yīng)用程序的執(zhí)行方法。遠程機30可以響應(yīng)于對本地機10的認證做出選擇。在本實施例的一個實例中,遠程機30向所收集的本地機10的信息采用策略。在本實施例的另一個實例中,遠程機30響應(yīng)于用于應(yīng)用程序的策略做出選擇。在本實施例的又一個實例中,遠程機30響應(yīng)于用于與應(yīng)用程序相關(guān)的文件類型的策略做出選擇。103遠程機30可以查詢文件以選擇應(yīng)用程序的執(zhí)行方法。遠程機30可以選擇使本地機10能夠接收在遠程機30'上執(zhí)行應(yīng)用程序所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)的應(yīng)用程序執(zhí)行方法。遠程機30可以選擇使本地機10能夠在檢索包括應(yīng)用程序的多個應(yīng)用文件之后在本地執(zhí)行應(yīng)用程序的應(yīng)用程序執(zhí)行方法。在一個實施例中,遠程機30選擇使本地機10能夠在通過應(yīng)用流傳輸會話檢索包括應(yīng)用程序的多個應(yīng)用文件之后在本地執(zhí)行應(yīng)用程序的應(yīng)用程序執(zhí)行方法。在本實施例的一個實例中,本地機10與持有多個應(yīng)用文件的遠程機建立應(yīng)用流傳輸會話,本地機IO跨過應(yīng)用流傳輸會話啟動多個應(yīng)用文件的檢索,且本地機io在檢索多個應(yīng)用文件中的第二應(yīng)用文件時執(zhí)行所檢索到的多個應(yīng)用文件中的第一應(yīng)用文件。在本實施例的另一個實例中,本地機10在從第一應(yīng)用接收到訪問第二應(yīng)用文件的請求時執(zhí)行多個應(yīng)用文件中的第一應(yīng)用文件并檢索多個應(yīng)用中的第二應(yīng)用文件。對于所選擇的執(zhí)行方法使本地機10能夠在包括應(yīng)用程序的多個應(yīng)用文件中檢索至少一個應(yīng)用文件的實施例而言,遠程機30標(biāo)識持有可由本地機10訪問的應(yīng)用程序的遠程機30"。遠程機30"持有包括應(yīng)用程序的多個應(yīng)用文件。遠程機30"可以持有多份包括各種應(yīng)用程序的多個應(yīng)用文件。在本實施例的一個實例中,遠程機30"持有針對應(yīng)用程序若干不同版本的每種的多個應(yīng)用文件。遠程機30"持有將包括特定應(yīng)用程序的多個應(yīng)用文件與應(yīng)用程序的描述相關(guān)聯(lián)的文件。該文件還可以標(biāo)識在向機器發(fā)送多個應(yīng)用文件之前需要在機器上標(biāo)識的一個或多個執(zhí)行先決條件。該文件還可以包括遠程機30"在網(wǎng)絡(luò)上位置的標(biāo)識。在本實施例的一個實例中,遠程機30查詢文件以標(biāo)識遠程機30"在網(wǎng)絡(luò)上位置。遠程機30選擇遠程機30"。遠程機30可以選擇其在網(wǎng)絡(luò)上的位置可以被本地機10訪問到的遠程機30"。遠程才凡30可以選擇持有與本地機10兼容的應(yīng)用程序版本的遠程機30"。遠程機30響應(yīng)于接收到訪問應(yīng)用程序的請求,向本地機IO發(fā)送所選擇的應(yīng)用程序執(zhí)行方法的標(biāo)識以及遠程機30"的標(biāo)識。遠程機30還可以向本地機IO發(fā)送文件。實例3在一個實施例中,本地機IO接收所選擇的應(yīng)用程序執(zhí)行方法的標(biāo)識以及提供對包括應(yīng)用程序的多個應(yīng)用文件的訪問的遠程機30"的標(biāo)識。本地機IO驗證對訪問應(yīng)用程序的授權(quán)。在本實施例的一個實例中,本地機10執(zhí)行自身的啟動前分析。本地機10標(biāo)識至少一個特征并驗證本地機10上是否存在至少一個特征。該至少一個特征可以是維持訪問和執(zhí)行應(yīng)用程序的授權(quán)的先決條件。驗證本地機10上存在至少一個特征可以確保本地機10的特征和應(yīng)用程序的系統(tǒng)需求之間的兼容性,并可以額外確保與安全政策或許可協(xié)議的遵守。在成功完成啟動前分析時,本地機10與提供對多個應(yīng)用文件的訪問的遠程機30"建立應(yīng)用流傳輸會話。應(yīng)用流傳輸會話可以是本地機10可以請求和接收多個應(yīng)用文件中的文件的任何連接。建立應(yīng)用流傳輸會話可以使本地機10能夠在檢索多個應(yīng)用文件中的所有文件之前執(zhí)行多個應(yīng)用文件中的第一應(yīng)用文件。本地機10可以啟動執(zhí)行應(yīng)用程序,同時繼續(xù)檢索多個應(yīng)用文件中的其他應(yīng)用文件?;蛘撸镜貦C10可以在檔案文件中檢索多個應(yīng)用文件并在從檔案文件中提取第二應(yīng)用文件的同時執(zhí)行第一個提取的應(yīng)用文件。實例4在一個實施例中,本地機10上的應(yīng)用流傳輸客戶端552從遠程機30檢索多個應(yīng)用文件。應(yīng)用流傳輸客戶端包括流傳輸服務(wù)554、隔離環(huán)境556和文件系統(tǒng)過濾器驅(qū)動程序564。流傳輸服務(wù)554與遠程機30建立應(yīng)用流傳輸會話,用于請求和檢索多個應(yīng)用文件。流傳輸服務(wù)554在隔離環(huán)境556之內(nèi)執(zhí)行應(yīng)用文件。文件系統(tǒng)過濾器驅(qū)動程序564通過攔截來自執(zhí)行應(yīng)用文件的請求并將該請求重定向到隔離環(huán)境556使得能夠在隔離環(huán)境556之內(nèi)執(zhí)行應(yīng)用文件。在本實施例的一個實例中,流傳輸服務(wù)554檢索包括多個應(yīng)用文件的檔案文件,該多個應(yīng)用文件包括應(yīng)用程序。流傳輸服務(wù)554從檔案文件中提取來自多個應(yīng)用文件的第一應(yīng)用文件。第一應(yīng)用文件可以是可執(zhí)行文件。流傳輸服務(wù)554可以在隔離環(huán)境556之內(nèi)執(zhí)行第一應(yīng)用文件。執(zhí)行笫一應(yīng)用文件可以啟動應(yīng)用程序的執(zhí)行。在另一個實施例中,在隔離環(huán)境556中執(zhí)行的第一應(yīng)用文件從本地機IO請求對多個應(yīng)用文件的枚舉。文件系統(tǒng)過濾器驅(qū)動程序564攔截枚舉請求并將請求重定向到流傳輸服務(wù)554。在流傳輸服務(wù)554檢索多個應(yīng)用文件的實施例中,流傳輸服務(wù)554可以生成多個應(yīng)用文件的枚舉。在流傳輸服務(wù)554檢索包括多個應(yīng)用文件的檔案文件的實施例中,流傳輸服務(wù)554可以響應(yīng)于所檢索的檔案文件中包括的枚舉生成多個應(yīng)用文件的枚舉。在其他實施例中,在多個應(yīng)用文件中的至少一個應(yīng)用文件駐留在遠程機30上且還沒有被流傳輸服務(wù)554檢索到本地機10上的時候,流傳輸服務(wù)554僅檢索多個應(yīng)用文件的枚舉。在這些實施例中,流傳輸服務(wù)554可以響應(yīng)于所檢索的枚舉產(chǎn)生多個應(yīng)用文件的枚舉。在這些實施例的一個實例中,雖然本地機10僅有枚舉,但流傳輸服務(wù)554向第一應(yīng)用文件表明多個應(yīng)用文件駐留在本地機10上。實例5在一個實施例中,在隔離環(huán)境556中執(zhí)行的第一應(yīng)用文件從本地機IO請求對多個應(yīng)用文件的枚舉標(biāo)識的文件進行訪問。如果所請求的文件在第一應(yīng)用文件可訪問的隔離環(huán)境556之內(nèi)的用戶范圍內(nèi),第一應(yīng)用文件訪問所請求的文件。如果所請求的文件不在用戶范圍或隔離環(huán)境556中,文件系統(tǒng)過濾器驅(qū)動程序564攔截該請求并將該請求重定向到流傳輸服務(wù)554。如果所請求的文件是含有多個應(yīng)用文件的檔案文件中的文件,流傳輸服務(wù)554提取所請求的文件并將所請求的文件存儲在本地機10上。流傳輸服務(wù)554可以在隔離環(huán)境556之內(nèi)存儲該文件。當(dāng)文件被存儲在隔離環(huán)境556中時滿足對該文件的請求。如果所請求的文件不在隔離環(huán)境556中或包括多個應(yīng)用文件的檔案文件中,流傳輸服務(wù)554從遠程機30請求該文件。流傳輸服務(wù)554可以通過應(yīng)用流傳輸會話從遠程機30接收文件。流傳輸服務(wù)554將所接收的文件存儲在隔離環(huán)境556中。當(dāng)文件被存儲在隔離環(huán)境556中時滿足對該文件的請求。在本實施例的一個實例中,在隔離環(huán)境556中的第二用戶范圍中執(zhí)4亍第二應(yīng)用文件。第二應(yīng)用文件請求訪問最初由第一應(yīng)用文件請求的文件。如果所請求的文件的拷貝不在第二用戶范圍內(nèi),使用隔離環(huán)境556中存儲的所請求的文件拷貝滿足對應(yīng)用文件的請求。實例6在一個實施例中,本地機10從遠程機30接收所選擇的應(yīng)用程序1程機3(K的標(biāo)識。本地機10成功完成本地機10的啟動前分析。本地機IO從遠程機30接收授權(quán)執(zhí)行應(yīng)用程序的許可。在本實施例的一個實例中,該許可要求本地機10向會話管理服務(wù)器562發(fā)送心跳消息以維持執(zhí)行應(yīng)用程序的授權(quán)。心跳消息可以包括表示啟動執(zhí)行應(yīng)用程序、終止執(zhí)行應(yīng)用程序的消息以及在執(zhí)行應(yīng)用程序的整個期間周期性發(fā)送的消息。心跳消息還可以包括關(guān)于本地機10的狀態(tài)的消息,比如本地機IO何時連接到網(wǎng)絡(luò),或本地機IO何時終止與網(wǎng)絡(luò)的連接。在本實施例的另一個實例中,該許可執(zhí)行預(yù)定時間段,在該預(yù)定時間段內(nèi)本地機10具有執(zhí)行應(yīng)用程序的授權(quán)。本地機10與遠程機3(K建立應(yīng)用流傳輸會話并在多個應(yīng)用文件中檢索至少一個應(yīng)用文件。在執(zhí)行至少一個應(yīng)用文件期間,在所接收的許可要求發(fā)送心跳消息的實施例中,本地機10向會話管理服務(wù)器562發(fā)送心跳消息以維持執(zhí)行至少一個應(yīng)用文件的授權(quán)。實例7在一個實施例中,本地機IO接收所選擇的應(yīng)用程序執(zhí)行方法的標(biāo)識以及提供對包括應(yīng)用程序的多個應(yīng)用文件的訪問的遠程機3(K的標(biāo)識。本地機10成功完成本地機10的啟動前分析。本地機10接收指定預(yù)定時間段的許可,在該預(yù)定時間段內(nèi)本地機10具有執(zhí)行應(yīng)用程序的授權(quán)。本地機10與遠程機30'建立應(yīng)用流傳輸會話并在多個應(yīng)用文件中檢索至少一個應(yīng)用文件。在本實施例的一個實例中,本地機10檢索多個應(yīng)用文件的子集,該子集包括在本地機10未連接到網(wǎng)絡(luò)時執(zhí)行應(yīng)用程序必需的每個文件。本地機10將該子集存儲在本地機10上的高速緩沖存儲器中。在該預(yù)定時間段內(nèi)的時間點,從網(wǎng)絡(luò)斷開本地機IO,本地機10從本地機10的用戶接收訪問應(yīng)用程序的請求。在本實施例的一個實例中,本地機10是諸如膝上計算機的裝置,本地機10的用戶處于禁止連接到網(wǎng)絡(luò)的環(huán)境中,例如處在飛機中。在從用戶接收到該請求時,本地機10可以從高速緩沖存儲器檢索來自多個應(yīng)用文件的應(yīng)用文件并執(zhí)行該應(yīng)用程序。實例8在另一個實施例中,本地機IO接收所選擇的應(yīng)用程序執(zhí)行方法的107標(biāo)識以及提供對包括應(yīng)用程序的多個應(yīng)用文件的訪問的遠程機30'的標(biāo)識。本地才凡10可以接收駐留在本地機10上以檢索多個應(yīng)用文件的第一客戶端代理的標(biāo)識,該笫一客戶端代理例如為應(yīng)用流傳輸客戶端。在本實施例的一個實例中,本地機10未能成功完成自身的啟動前分析。本地機10可能缺少與應(yīng)用程序要求兼容所需的特征,例如特定的設(shè)備驅(qū)動程序或操作系統(tǒng)。本地機IO可能缺少遵守安全策略所需的特征,該安全策略例如是特定活動目錄中的成員身份或?qū)υL問專用網(wǎng)絡(luò)的授權(quán)。本地機IO可以是一種與應(yīng)用程序的要求兼容的機器,例如試圖訪問計算強化的應(yīng)用程序的個人數(shù)字助理,或試圖執(zhí)行由專用網(wǎng)絡(luò)上的遠程機持有的安全應(yīng)用的信息站處的公共機器。本地機10響應(yīng)于本地機10缺少訪問應(yīng)用程序所需的至少一個特征的判斷做出不通過應(yīng)用流傳輸會話檢索多個應(yīng)用文件的決定。本地機10執(zhí)行駐留在本地機10上的第二客戶端代理而不是執(zhí)行所標(biāo)識的第一客戶端代理。在本實施例的一個實例中,本地機io在無法成功完成啟動前分析的情況下接收要執(zhí)行的第二客戶端代理的標(biāo)識。本地機10請求在遠程機30"上執(zhí)行應(yīng)用程序。第二客戶端代理接收在遠程機30"上執(zhí)行應(yīng)用程序產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。第二客戶端代理在本地機10上顯示應(yīng)用輸出數(shù)據(jù)。實例9在一個實施例中,網(wǎng)絡(luò)管理員為本地機10的用戶提供對應(yīng)用程序的訪問。管理員在遠程機30'上執(zhí)行應(yīng)用以產(chǎn)生包括應(yīng)用程序的多個應(yīng)用文件。該應(yīng)用可以包括圖形用戶界面。管理員可以使用圖形用戶界面來標(biāo)識應(yīng)用程序以及與該應(yīng)用程序相關(guān)聯(lián)的安裝程序,定義要在授權(quán)訪問應(yīng)用程序時所采用的策略,并指定有關(guān)于所提供的訪問類型的特征,包括試圖訪問或執(zhí)行應(yīng)用程序的本地機IO要滿足的要求。管理員可以標(biāo)識安裝整個應(yīng)用程序的安裝程序或應(yīng)用程序的一部分,例如升級或補丁。在本實施例的一個實例中,遠程機30包括打包機構(gòu)530。打包機構(gòu)530在遠程機30上的隔離環(huán)境532中執(zhí)行安裝程序。執(zhí)行安裝程序造成向隔離環(huán)境532中安裝與應(yīng)用程序相關(guān)聯(lián)的至少一個應(yīng)用文件。遠程機30可以包括文件系統(tǒng)過濾器驅(qū)動程序534,其通過攔截安裝程序在本地機10上安裝應(yīng)用文件的請求并將該請求重定向到隔離環(huán)境532來確保將應(yīng)用文件安裝到隔離環(huán)境532中。打包機構(gòu)530可以使用文件系統(tǒng)過濾器驅(qū)動程序534來維持安裝到隔離環(huán)境532中的每個應(yīng)用文件的記錄。安裝程序可以向隔離環(huán)境532中安裝多個應(yīng)用文件。打包機構(gòu)530生成包括多個應(yīng)用文件中的應(yīng)用文件枚舉的文件。該文件可以包括與多個應(yīng)用文件相關(guān)的信息以及策略要求,與多個應(yīng)用文件相關(guān)的信息例如為多個應(yīng)用文件包括的應(yīng)用程序的類型、應(yīng)用程序的版本、與應(yīng)用程序相關(guān)聯(lián)的執(zhí)行先決條件,策略要求例如為特定應(yīng)用程序所需的執(zhí)行方法。打包機構(gòu)530在遠程機3(K上存儲多個應(yīng)用文件和該文件。在一個實施例中,網(wǎng)絡(luò)管理員標(biāo)識包括現(xiàn)有應(yīng)用程序更新版本的應(yīng)用程序或包括應(yīng)用程序的多個應(yīng)用文件中的應(yīng)用文件??梢詫⒈景l(fā)明提供為實現(xiàn)在一種或多種制品上或中的一種或多種計算機可讀程序。該制品可以是軟盤、硬盤、光盤、數(shù)字多用盤、閃速存儲卡、PROM、RAM、ROM或磁帶。通常,可以用任何程序設(shè)計語言實現(xiàn)計算機可讀程序??梢允褂玫囊恍┱Z言實例包括(:丄++』#或JAVA??梢詫④浖绦蜃鳛槟繕?biāo)代碼存儲在一種或多種制品上或中。盡管已經(jīng)參考特定優(yōu)選實施示例出和描述了本發(fā)明,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,在不脫離如以下權(quán)利要求所界定的本發(fā)明的精神和范圍的情況下可以在其中做出各種形式和細節(jié)的變化。權(quán)利要求1.一種用于由遠程機選擇應(yīng)用程序的執(zhí)行方法的方法,所述方法包括(a)接收信任狀;(b)響應(yīng)于所接收的信任狀提供本地機可用的多個應(yīng)用的枚舉;(c)接收執(zhí)行被枚舉的應(yīng)用的請求;以及(d)響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于所述被枚舉的應(yīng)用的應(yīng)用流的方法。2.根據(jù)權(quán)利要求1所述的方法,還包括提供與所述被枚舉的應(yīng)用相關(guān)聯(lián)的訪問信息的步驟,所述訪問信息是響應(yīng)于所選擇的方法產(chǎn)生的。3.根據(jù)權(quán)利要求1所述的方法,其中步驟(c)還包括接收執(zhí)行被枚舉的應(yīng)用的請求,所述被枚舉的應(yīng)用包括多個應(yīng)用文件。4.根據(jù)權(quán)利要求3所述的方法,其中步驟(c)還包括接收持有多個應(yīng)用文件的服務(wù)器的標(biāo)識。5.根據(jù)權(quán)利要求3所述的方法,其中步驟(c)還包括接收多個應(yīng)用文件的位置的標(biāo)識,所述標(biāo)識符合通用命名標(biāo)準(UNC)。6.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括選擇到本地機的所述被枚舉的應(yīng)用的應(yīng)用流的方法。7.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括選擇用于在遠程機上執(zhí)行所述被枚舉的應(yīng)用的方法。8.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括選擇用于在本地機上執(zhí)行所述被枚舉的應(yīng)用的方法。9.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括選擇用于下述的方法(d-l)向遠程才凡流傳輸所述被枚舉的應(yīng)用;(d-2)在所述遠程機上執(zhí)行所述,皮枚舉的應(yīng)用;以及(d-3)向所述本地機提供執(zhí)行所述被枚舉的應(yīng)用產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。10.根據(jù)權(quán)利要求9所述的方法,其中步驟(d)還包括在步驟(d-l)之前評估所述本地機。11.根據(jù)權(quán)利要求10所述的方法,其中步驟(d)還包括響應(yīng)于所述評估決定對所述被枚舉的應(yīng)用進行流傳輸。12.根據(jù)權(quán)利要求9所述的方法,其中步驟(d-l)包括對包括所述被枚舉的應(yīng)用的多個文件之一進行流傳輸。13.根據(jù)權(quán)利要求9所述的方法,其中步驟(d)還包括響應(yīng)于對所接收的信任狀的評估選擇所述方法。14.根據(jù)權(quán)利要求9所述的方法,其中步驟(d-3)還包括通過表示層協(xié)議提供所述應(yīng)用輸出數(shù)據(jù)。15.根據(jù)權(quán)利要求14所述的方法,其中步驟(d-3)還包括通過獨立計算結(jié)構(gòu)表示層協(xié)議或遠程桌面Windows表示層協(xié)議或X-Windows表示層協(xié)議提供應(yīng)用輸出數(shù)據(jù)。16.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括標(biāo)識要執(zhí)行的所述被枚舉的應(yīng)用的版本。17.根據(jù)權(quán)利要求16所述的方法,其中步驟(d)還包括響應(yīng)于所述本地機的特征的標(biāo)識來標(biāo)識所述版本。18.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括決定執(zhí)行與所述本地機的特征兼容的所述被枚舉的應(yīng)用的版本。19.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括決定執(zhí)行與所述本地機的操作系統(tǒng)兼容的被枚舉的應(yīng)用的版本。20.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括決定執(zhí)行與所述本地機的操作系統(tǒng)的修訂級兼容的被枚舉的應(yīng)用的版本。21.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括決定執(zhí)行與由所述本地機上的操作系統(tǒng)指定的語言兼容的被枚舉的應(yīng)用的版本。22.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括通過向所接收的信任狀應(yīng)用策略來做出訪問控制決定。23.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括響應(yīng)于對所接收的信任狀的評估選擇所述方法。24.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括提供響應(yīng)于對所接收的信任狀的評估而產(chǎn)生的啟動權(quán)證,所述啟動權(quán)證包括認證信息。25.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括提供與所述可執(zhí)行程序相關(guān)聯(lián)的訪問信息,所述訪問信息包括所述凈皮枚舉的應(yīng)用的位置的標(biāo)識,所述標(biāo)識符合通用命名標(biāo)準(UNC)。26.根據(jù)權(quán)利要求1所述的方法,其中步驟(a)還包括如下步驟(a-l)從本地機接收訪問資源的請求;(a-2)由收集代理收集信任狀;以及(a-3)接收所收集的信任狀。27.根據(jù)權(quán)利要求26所述的方法,其中步驟U-2)還包括通過在所述本地機上執(zhí)行至少一個腳本來收集信任狀。28.根據(jù)權(quán)利要求26所述的方法,其中步驟(a-3)還包括響應(yīng)于所接收的信任狀評估所述本地機。29.根據(jù)權(quán)利要求26所述的方法,其中步驟(a-3)還包括響應(yīng)于所收集的信任狀決定對所述被枚舉的應(yīng)用進行流傳輸。30.根據(jù)權(quán)利要求26所述的方法,其中步驟(a-3)包括響應(yīng)于所收集的信任狀對包括所述被枚舉的應(yīng)用的多個文件之一進行流傳輸。31.—種用于在網(wǎng)絡(luò)化計算機系統(tǒng)中在本地對文件元數(shù)據(jù)的請求做出響應(yīng)而無需從遠程位置下載文件的方法,所述方法包括(a)從遠程機接收(i)表示所述遠程機存儲的應(yīng)用程序的目錄結(jié)構(gòu)以及(ii)與包括所存儲應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù);(b)存儲所述目錄結(jié)構(gòu)和所述元數(shù)據(jù);(c)接收訪問與所述目錄結(jié)構(gòu)中的特定文件相關(guān)聯(lián)的元數(shù)據(jù)的至少一個請求;以及(d)利用所存儲的元數(shù)據(jù)對所述至少一個請求做出響應(yīng)。32.根據(jù)權(quán)利要求31所述的方法,還包括如下步驟(e)接收枚舉與本地應(yīng)用程序相關(guān)聯(lián)的目錄結(jié)構(gòu)的請求;以及(f)利用所存儲的目錄結(jié)構(gòu)對所述請求做出響應(yīng)。33.根據(jù)權(quán)利要求31所述的方法,其中步驟(a)還包括從遠程機接收與包括所存儲的應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括所述至少一個文件的別名。34.根據(jù)權(quán)利要求31所述的方法,其中步驟(a)還包括從遠程機接收與包括所存儲的應(yīng)用程序的每個文件相關(guān)聯(lián)的元數(shù)據(jù),所述元數(shù)據(jù)包括所述至少一個文件的名稱,所述名稱具有八個字符的長度、點和三個字符的擴展名。35.根據(jù)權(quán)利要求31所述的方法,其中步驟(b)還包括在隔離環(huán)境中存儲所述目錄結(jié)構(gòu)和所述元數(shù)據(jù)。36.根據(jù)權(quán)利要求31所述的方法,其中步驟(c)還包括接收確定本地是否有包括所存儲的應(yīng)用程序的文件拷貝的請求。37.根據(jù)權(quán)利要求36所述的方法,其中步驟(d)還包括訪問所存儲的元數(shù)據(jù)并偽裝地表示本地有所述文件的拷貝。38.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足Windows操作系統(tǒng)FindFirst操作。39.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足Windows操作系統(tǒng)Findnext操作。40.根據(jù)權(quán)利要求31所述的方法,其中步猓(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足標(biāo)識目錄結(jié)構(gòu)中的根節(jié)點的操作。41.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足標(biāo)識目錄結(jié)構(gòu)中的節(jié)點的操作。42.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足標(biāo)識與目錄結(jié)構(gòu)中的節(jié)點相關(guān)的訪問時間的操作。43.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足標(biāo)識與目錄結(jié)構(gòu)中的節(jié)點相關(guān)的修改時間的操作。44.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括響應(yīng)于所接收的元數(shù)據(jù)滿足標(biāo)識目錄結(jié)構(gòu)中的被修改節(jié)點的操作。45.根據(jù)權(quán)利要求31所述的方法,其中步驟(d)還包括生成枚舉所接收的目錄結(jié)構(gòu)的本地目錄結(jié)構(gòu)的枚舉。46.—種用于在網(wǎng)絡(luò)化計算機系統(tǒng)中在本地對文件元數(shù)據(jù)的請求做出響應(yīng)而無需從遠程位置下載文件的系統(tǒng),所述系統(tǒng)包括目錄結(jié)構(gòu),其標(biāo)識與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件并包括與所述多個文件中的至少一個相關(guān)聯(lián)的文件元數(shù)據(jù),所述多個文件中的至少一個駐留在遠程機上;存儲所述目錄結(jié)構(gòu)的高速緩沖存儲器元件;以及文件系統(tǒng)過濾器驅(qū)動程序,其攔截訪問與該至少一個遠程存儲的文件相關(guān)聯(lián)的元數(shù)據(jù)的請求,訪問所述高速緩沖存儲器元件并利用所存儲的目錄結(jié)構(gòu)對所述至少一個請求做出響應(yīng)。47.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件,所述至少一個應(yīng)用程序駐留在遠程機上。48.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與至少一個應(yīng)用程序相關(guān)聯(lián)的多個文件,所述多個文件駐留在遠程機上。49.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括所述至少一個文件的別名。50.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括至少一個文件的名稱,所述名稱具有八個字符的長度、點以及三字符的擴展名。51.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對Windows操作系統(tǒng)FindFirst請求做出響應(yīng)的信息。52.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對Windows操作系統(tǒng)FindNext請求做出響應(yīng)的信息。53.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對標(biāo)識目錄結(jié)構(gòu)中的根節(jié)點的請求做出響應(yīng)的信息。54.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對標(biāo)識目錄結(jié)構(gòu)中的節(jié)點的請求做出響應(yīng)的信息。55.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對標(biāo)識目錄結(jié)構(gòu)中的被修改節(jié)點的請求做出響應(yīng)的信息。56.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對標(biāo)識與目錄結(jié)構(gòu)中的節(jié)點相關(guān)聯(lián)的修改時間的請求做出響應(yīng)的信息。57.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括與所述多個文件中的至少一個文件相關(guān)聯(lián)的文件元數(shù)據(jù),所述文件元數(shù)據(jù)包括用于對標(biāo)識與目錄結(jié)構(gòu)中的節(jié)點相關(guān)聯(lián)的訪問時間的請求做出響應(yīng)的信息。58.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括樹形結(jié)構(gòu),所述樹中的至少一個節(jié)點表示與應(yīng)用程序相關(guān)聯(lián)的文件。59.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述目錄結(jié)構(gòu)還包括嵌入于至少一個文件中的文件元數(shù)據(jù)。60.—種用于訪問與應(yīng)用相關(guān)聯(lián)的目錄結(jié)構(gòu)中的文件的方法,所述方法包括(a)攔截應(yīng)用訪問文件的請求;(b)將所述請求重定向到第一隔離環(huán)境;(c)確定所述所請求的文件不存在于所述第一隔離環(huán)境中;(d)響應(yīng)于在包括駐留在遠程機上的多個應(yīng)用文件的目錄結(jié)構(gòu)枚舉中標(biāo)識該文件的確定,將所述請求重定向到第二隔離環(huán)境;以及(e)響應(yīng)于所述第二隔離環(huán)境不包含所述文件且在枚舉中標(biāo)識該文件的確定,從所述遠程機檢索所請求的文件。61.根據(jù)權(quán)利要求60所述的方法,其中步驟(a)包括攔截應(yīng)用訪問可執(zhí)行文件的請求。62.根據(jù)權(quán)利要求60所述的方法,其中步驟(a)包括攔截應(yīng)用訪問文件的請求,在本地機上執(zhí)行所述應(yīng)用的一部分。63.根據(jù)權(quán)利要求60所述的方法,其中步驟(a)還包括攔截能夠接收應(yīng)用流的應(yīng)用訪問文件的請求。64.根據(jù)權(quán)利要求60所述的方法,其中步驟(b)還包括攔截所述應(yīng)用訪問所述文件的請求,所述應(yīng)用的至少一部分駐留在所述本地機上的第一隔離環(huán)境中。65.根據(jù)權(quán)利要求60所述的方法,其中步驟(e)還包括從第二遠程機檢索所述所請求的文件。66.根據(jù)權(quán)利要求60所述的方法,其中步驟(e)還包括通過所述遠程機將所請求的文件流傳輸?shù)剿霰镜夭艓住?7.根據(jù)權(quán)利要求60所述的方法,其中步驟(e)還包括在所述第二隔離環(huán)境中存儲所檢索的文件。68.根據(jù)權(quán)利要求60所述的方法,其中步驟(e)還包括對所檢索的文件加密。69.根據(jù)權(quán)利要求60所述的方法,其中步驟(e)還包括以加密形式存儲所檢索的文件。70.根據(jù)權(quán)利要求60所述的方法,還包括如下步驟響應(yīng)于在所述枚舉中未標(biāo)識所述文件的確定,將對所述文件的請求重定向到所述第一隔離環(huán)境之外和所述第二隔離環(huán)境之外的環(huán)境。71.根據(jù)權(quán)利要求60所述的方法,還包括如下步驟(f)攔截在第三隔離環(huán)境中執(zhí)行的另一應(yīng)用提出的訪問文件的請求;(g)響應(yīng)于在所述枚舉中枚舉該文件且所述第二隔離環(huán)境不包含所述文件的確定,將所述請求重定向到所述第二隔離環(huán)境;以及(h)通過所述第二隔離環(huán)境向所述另一應(yīng)用提供對所述文件的訪問。72.根據(jù)權(quán)利要求71所述的方法,其中步驟(h)還包括在所述第三隔離環(huán)境中存儲所述文件。73.—種用于訪問與應(yīng)用相關(guān)聯(lián)的目錄結(jié)構(gòu)中的文件的系統(tǒng),包括笫一隔離環(huán)境,應(yīng)用從所述第一隔離環(huán)境執(zhí)行并請求訪問文件;第二隔離環(huán)境,其存儲與安裝在遠程機上的多個應(yīng)用文件相關(guān)聯(lián)的目錄結(jié)構(gòu)的枚舉;過濾器驅(qū)動程序攔截訪問所述文件的請求;將所述請求重定向到所述第一隔離環(huán)境;確定所述所請求的文件不存在于所述第一隔離環(huán)境中;響應(yīng)于在所述目錄結(jié)構(gòu)枚舉中標(biāo)識該文件的確定將該請求重定向到所述第二隔離環(huán)境;以及與所述過濾器驅(qū)動程序通信的收發(fā)器,所述收發(fā)器響應(yīng)于所述過濾器驅(qū)動程序做出的所述第二隔離環(huán)境不包含所述文件且在所述枚舉中標(biāo)識該文件的確定,向遠程機發(fā)送所述重定向的請求并響應(yīng)于所述請求接收包括所請求的文件的流。74.根據(jù)權(quán)利要求73所述的系統(tǒng),其中所述收發(fā)器還包括在所述第二隔離環(huán)境中存儲流傳輸?shù)奈募?5.根據(jù)權(quán)利要求74所述的系統(tǒng),還包括所述過濾器驅(qū)動程序攔截另一應(yīng)用訪問所述文件的請求,所述過濾器驅(qū)動程序?qū)⑺稣埱笾囟ㄏ虻剿龅诙綦x環(huán)境。76.根據(jù)權(quán)利要求73所述的系統(tǒng),還包括響應(yīng)于所述收發(fā)器在所述笫二隔離環(huán)境中存儲流傳輸?shù)奈募拇_定,所述過濾器驅(qū)動程序攔截另一應(yīng)用訪問所述文件的請求,所述過濾器驅(qū)動程序?qū)⑺稣埱笾囟ㄏ虻剿龅诙綦x環(huán)境。77.根據(jù)權(quán)利要求73所述的系統(tǒng),其中所述第二隔離環(huán)境還包括高速緩沖存儲器元件。78.根據(jù)權(quán)利要求73所述的系統(tǒng),其中所述第二隔離環(huán)境還包括在高速緩沖存儲器元件中存儲所述目錄結(jié)構(gòu)的枚舉。79.根據(jù)權(quán)利要求73所述的系統(tǒng),其中所述收發(fā)器從所述遠程機接收包括所請求的文件的流。80.根據(jù)權(quán)利要求73所述的系統(tǒng),其中所述收發(fā)器從第二遠程機接收包括所請求的文件的流。81.—種用于通過本地機訪問包括應(yīng)用程序的多個文件的方法,所述方法包括(a)通過本地機接收包括訪問信息的文件,所述訪問信息用于訪問多個應(yīng)用文件并執(zhí)行能夠接收應(yīng)用流的第一客戶端;(b)響應(yīng)于所述文件檢索所述多個應(yīng)用文件的標(biāo)識;(c)響應(yīng)于所述文件檢索執(zhí)行所述多個應(yīng)用文件所需的至少一個特征;(d)確定所述本地機是否包括所述至少一個特征;以及(e)響應(yīng)于所述本地機缺少所述至少一個特征的確定執(zhí)行第二客戶端,所述第二客戶端請求在遠程機上執(zhí)行所述多個應(yīng)用文件。82.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(a)還包括接收訪問信息,所述訪問信息包括包含應(yīng)用程序的多個應(yīng)用文件的位置的標(biāo)識。83.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(b)還包括檢索多個應(yīng)用文件的標(biāo)識,所述多個應(yīng)用文件包括一個或多個應(yīng)用程序。84.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(b)還包括接收多個可用應(yīng)用程序的枚舉,所述枚舉是響應(yīng)于所述訪問信息而產(chǎn)生的。85.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(d)還包括評估所述本地機上的操作系統(tǒng)。86.根據(jù)權(quán)利要求81所述的方法,其中步驟(d)還包括標(biāo)識所述本地機上的操作系統(tǒng)使用的語言。87.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(d)還包括標(biāo)識所述本地機上的操作系統(tǒng)的修訂級。88.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(d)還包括標(biāo)識駐留在所述本地機上的應(yīng)用程序的應(yīng)用版本。89.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(d)還包括確定所述本地機是否包括設(shè)備驅(qū)動程序。90.根據(jù)權(quán)利要求81所述的方法,其中步驟(d)還包括確定所述本地機是否包括執(zhí)行所述多個應(yīng)用文件的許可。91.根據(jù)權(quán)利要求81所述的方法,其中步驟(e)還包括通過所述第二客戶端接收在所述遠程機上執(zhí)行所述多個應(yīng)用文件而產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。92.根據(jù)權(quán)利要求91所述的方法,其中步驟(e)還包括通過所述第二客戶端在所述本地機上顯示所述應(yīng)用輸出。93.根據(jù)權(quán)利要求81所述的方法,其中步驟(e)還包括通過所述遠程機執(zhí)行所述多個應(yīng)用文件。94.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(e)還包括通過所述遠程機接收包括所述多個應(yīng)用文件的應(yīng)用流以加以執(zhí)行。95.根據(jù)權(quán)利要求81所述的系統(tǒng),其中步驟(e)包括響應(yīng)于所述本地機包括所述至少一個特征的確定執(zhí)行所述第一客戶端,所述第一客戶端從遠程機接收包括所述多個應(yīng)用文件的應(yīng)用流以在所述本地機上執(zhí)行。96.根據(jù)權(quán)利要求81所述的方法,其中步驟(e)還包括通過表出數(shù)據(jù)。、、、,;97.根據(jù)權(quán)利要求96所述的方法,其中步驟(e)還包括通過獨立計算結(jié)構(gòu)表示層協(xié)議或遠程桌面Windows表示層協(xié)議或X-Windows表示層協(xié)議接收應(yīng)用輸出數(shù)據(jù)。98.—種用于訪問包括應(yīng)用程序的多個文件的系統(tǒng),所述系統(tǒng)包括包括訪問信息的文件,所述訪問信息用于訪問多個應(yīng)用文件;能夠接收應(yīng)用流的第一客戶端,所述第一客戶端接收所述文件、需的至少一個特征,并確定所述本地機是否包括所述至少一個特征;以及第二客戶端,其響應(yīng)于所述第一客戶端做出的所述本地機缺少所述至少一個特征的確定請求在遠程機上執(zhí)行所述多個應(yīng)用文件。99.根據(jù)權(quán)利要求98所述的系統(tǒng),其中所述文件還包括訪問信息,所述訪問信息包括包含應(yīng)用程序的多個應(yīng)用文件的位置的標(biāo)識。全文摘要一種用于在預(yù)定數(shù)量的應(yīng)用程序執(zhí)行方法之間進行選擇的方法,所述方法包括響應(yīng)于所接收的與本地機相關(guān)的信任狀提供本地機可用的多個應(yīng)用的枚舉。響應(yīng)于策略選擇執(zhí)行被枚舉的應(yīng)用的預(yù)定數(shù)量的方法之一,所述預(yù)定數(shù)量的方法包括用于所述被枚舉的應(yīng)用的應(yīng)用流傳輸?shù)姆椒?。無須從遠程位置下載文件即可滿足對文件元數(shù)據(jù)的請求??梢栽L問與應(yīng)用程序相關(guān)聯(lián)的目錄結(jié)構(gòu)中的文件。本地機可以訪問包括應(yīng)用程序的多個文件。文檔編號G06F9/445GK101326491SQ200680045934公開日2008年12月17日申請日期2006年9月28日優(yōu)先權(quán)日2005年10月7日發(fā)明者A·S·古亞拉蒂,B·J·彼得森,D·R·霍伊,J·H·諾爾德,T·N·特雷德申請人:茨特里克斯系統(tǒng)公司