專利名稱::協(xié)議無(wú)關(guān)的客戶端高速緩存系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明通常涉及計(jì)算機(jī)網(wǎng)絡(luò),尤其是網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)存儲(chǔ)。
背景技術(shù):
:網(wǎng)絡(luò)服務(wù)器使用各種機(jī)構(gòu)存儲(chǔ)和提供對(duì)客戶數(shù)據(jù)的訪問(wèn),這些機(jī)構(gòu)包括通?;谥囟ㄏ蚱鞲拍畹臋C(jī)構(gòu),其中應(yīng)用程序的文件相關(guān)請(qǐng)求被重定向至一適當(dāng)?shù)姆?wù)器。服務(wù)器接收每個(gè)請(qǐng)求,并執(zhí)行所請(qǐng)求的文件操作,即,只要沒(méi)有錯(cuò)誤、訪問(wèn)權(quán)限違例或其它問(wèn)題發(fā)生。服務(wù)器然后返回成功的狀態(tài)連同任意相應(yīng)的數(shù)據(jù),諸如對(duì)于創(chuàng)建/打開請(qǐng)求的文件句柄、或?qū)τ谧x取請(qǐng)求的文件數(shù)據(jù),它們由應(yīng)用程序響應(yīng)其請(qǐng)求時(shí)接收。因?yàn)橛?jì)算機(jī)用戶不是總連接在他們的網(wǎng)絡(luò)文件服務(wù)器或其它服務(wù)器上,所以已開發(fā)了各種客戶端高速緩存機(jī)構(gòu),當(dāng)文件的網(wǎng)絡(luò)版本不可用時(shí),諸如因網(wǎng)絡(luò)停用或故意斷開連接,允許對(duì)本地文件拷貝的離線訪問(wèn)。一種這樣的高速緩存機(jī)構(gòu)稱為公文包,其中用戶通過(guò)到或從公文包拖拉文件來(lái)管理本地文件高速緩沖存儲(chǔ)器,基本上手工決定高速緩存什么文件、什么時(shí)候高速緩存、以及解決任何合并(互相沖突的文件版本)問(wèn)題。正如能容易地意識(shí)到的那樣,公文包機(jī)構(gòu)要求相當(dāng)大量的用戶交互,使得它對(duì)于用戶相對(duì)不很方便。而且,公文包機(jī)構(gòu)有其自己的、獨(dú)立于文件系統(tǒng)名字空間的名字空間,例如,文件名可存在于公文包名字空間和文件系統(tǒng)名字空間,或者只存在于一個(gè)而不存在于另一個(gè)中。應(yīng)用程序不直接或透明地受益于公文包機(jī)構(gòu),因?yàn)楣陌枪蚕沓绦颍也皇菓?yīng)用程序賴以執(zhí)行文件相關(guān)操作的操作系統(tǒng)和/或文件系統(tǒng)的一部分。在客戶端高速緩存方面最新的改進(jìn)被描述于美國(guó)專利申請(qǐng)序列號(hào)No.09/134,720,它一般是指向文件的持久性客戶端高速緩存的。有了這一改進(jìn),網(wǎng)絡(luò)客戶能夠使用同樣的文件名并以與客戶連接至網(wǎng)絡(luò)時(shí)同樣的名字空間訪問(wèn)文件的本地高速緩存的拷貝。提供自動(dòng)高速緩存,(盡管手工配置仍有可能),因而減少了很多用戶交互的需求。還有,在這一改進(jìn)中,更多的客戶端高速緩存技術(shù)成為CIFS(CommonInternetFileSystem)(公共互聯(lián)網(wǎng)文件系統(tǒng))重定向器的一部分,它使用CIFS遠(yuǎn)程文件訪問(wèn)協(xié)議,這是對(duì)眾所周知的SMB(服務(wù)器消息塊)協(xié)議公開的擴(kuò)展。由于在重定向器中處理高速緩存,應(yīng)用程序透明地得益于高速緩存。例如,當(dāng)用戶不連接在網(wǎng)絡(luò)上時(shí),所請(qǐng)求的文件操作可自動(dòng)重定向到高速緩存的文件拷貝而不是服務(wù)器。盡管這種客戶端高速緩存提供了許多好處,基本上通過(guò)在不連接網(wǎng)絡(luò)或網(wǎng)絡(luò)不通時(shí)提供所需文件的訪問(wèn)得到的,但當(dāng)前客戶端高速緩存機(jī)構(gòu)還是有很多缺點(diǎn)。一個(gè)這樣的缺點(diǎn)就是現(xiàn)有的高速緩存技術(shù)緊密結(jié)合CIFS重定向器。透明的客戶端高速緩存因而不可用于具有其它協(xié)議的其它服務(wù)器類型,諸如基于WebDAV(或簡(jiǎn)單DAV,分布式創(chuàng)作與版本管理)和基于NFS(網(wǎng)絡(luò)文件系統(tǒng))的服務(wù)器/協(xié)議。為每個(gè)重定向器添加類似的高速緩存技術(shù)都要求各種重定向器組件的修改,如果不切實(shí)際,特別是對(duì)于第三方重定向器驅(qū)動(dòng)器,這就不是所希望的??傊?,所需要的是一種方法和系統(tǒng),它們就客戶端文件高速緩存而論是協(xié)議無(wú)關(guān)的,因而為用戶提供跨服務(wù)器類型統(tǒng)一的離線技巧(experience)。該方法和系統(tǒng)應(yīng)該對(duì)用戶和現(xiàn)有應(yīng)用透明,并克服相關(guān)于當(dāng)前客戶端高速緩存的其它缺點(diǎn)。
發(fā)明內(nèi)容簡(jiǎn)言之,本發(fā)明提供自動(dòng)而透明地處理網(wǎng)絡(luò)文件數(shù)據(jù)的客戶端高速緩存的系統(tǒng)和方法,它與任何遠(yuǎn)程文件處理協(xié)議無(wú)關(guān)。協(xié)議無(wú)關(guān)的客戶端高速緩存機(jī)是作為處理指向網(wǎng)絡(luò)的文件相關(guān)請(qǐng)求的一種服務(wù)插入的,并且嘗試通過(guò)客戶端高速緩存持久性存儲(chǔ)器來(lái)滿足該請(qǐng)求。為此,在一種結(jié)構(gòu)中,當(dāng)在線時(shí),以代理提供器形式將客戶端高速緩存機(jī)構(gòu)插入到網(wǎng)絡(luò)重定向器組件和緩沖服務(wù)之間的通信流中,重定向器調(diào)用緩沖服務(wù)以確定文件相關(guān)請(qǐng)求(例如,讀取或?qū)懭?能否通過(guò)緩沖服務(wù)的內(nèi)存儲(chǔ)緩沖器執(zhí)行。通常,在這種結(jié)構(gòu)中,客戶端高速緩存機(jī)構(gòu)作為過(guò)濾堆棧中的過(guò)濾驅(qū)動(dòng)器提供的,在某種意義上,使得客戶端高速緩存機(jī)看來(lái)是對(duì)于緩沖服務(wù)的重定向器,又好象是對(duì)于重定向器的緩沖服務(wù)。完成這個(gè)將客戶端高速緩存機(jī)構(gòu)插入到通信流中,部分地是在在文件創(chuàng)建/打開請(qǐng)求結(jié)束時(shí)通過(guò)覆寫重定向器設(shè)備對(duì)象數(shù)據(jù)(存在于用于文件的數(shù)據(jù)結(jié)構(gòu)中),緩沖服務(wù)使用該數(shù)據(jù)來(lái)返回到調(diào)用提供器,因此緩沖服務(wù)改為調(diào)用客戶端高速緩存機(jī)。為使客戶端高速緩存機(jī)構(gòu)能夠處理網(wǎng)絡(luò)文件相關(guān)的輸入/輸出(I/O)請(qǐng)求,客戶端高速緩存機(jī)構(gòu)用具有接收網(wǎng)絡(luò)文件相關(guān)的I/O請(qǐng)求的系統(tǒng)組件注冊(cè)為代理提供器,它在一種實(shí)現(xiàn)中稱為多重UNC(通用命名約定)提供器或MUP。MUP在將任何文件相關(guān)請(qǐng)求提供給任何其它代理提供器或任何重定向器前,調(diào)用客戶端高速緩存機(jī)構(gòu)的預(yù)處理處理器。MUP還在將任何文件相關(guān)請(qǐng)求提供給任何代理提供器或任何重定向器之后,調(diào)用客戶端高速緩存機(jī)構(gòu)的后處理處理器。如此,對(duì)于文件創(chuàng)建,客戶端高速緩存機(jī)構(gòu)能生成和配置所需數(shù)據(jù)結(jié)構(gòu)以處理進(jìn)一步的請(qǐng)求。例如,對(duì)于文件創(chuàng)建(或打開),I/O管理器創(chuàng)建文件對(duì)象、分析名字,并當(dāng)名字表示文件是遠(yuǎn)程對(duì)象時(shí)將請(qǐng)求傳送到MUP。在發(fā)送創(chuàng)建請(qǐng)求到另一個(gè)代理提供器或任何重定向器之前,MUP在預(yù)處理操作中發(fā)送請(qǐng)求到客戶端高速緩存機(jī)構(gòu)(代理提供器)??蛻舳烁咚倬彺鏅C(jī)構(gòu)預(yù)處理處理器創(chuàng)建關(guān)聯(lián)于文件對(duì)象的數(shù)據(jù)結(jié)構(gòu),包括關(guān)于邏輯名字空間中文件拷貝的邏輯連接結(jié)構(gòu)、以及關(guān)聯(lián)于文件對(duì)象的基于相關(guān)文件的數(shù)據(jù)結(jié)構(gòu),它們?nèi)绻诰€可在客戶端高速緩存機(jī)構(gòu)的結(jié)構(gòu)和重定向器的結(jié)構(gòu)之間共享。在已知離線時(shí),(例如從前一個(gè)創(chuàng)建請(qǐng)求得知),客戶端高速緩存預(yù)處理處理器將完成該請(qǐng)求。當(dāng)在線時(shí)或如果不知道連接狀態(tài)時(shí),客戶端高速緩存機(jī)構(gòu)返回“moreprocessingrequired”(要求更多處理)狀態(tài)給MUP,它再接著調(diào)用DFS代理提供器,DFS代理提供器通常將與請(qǐng)求有關(guān)的名字空間從邏輯的改變成物理的。如果需要,MUP將調(diào)用重定向器,以如果存在在線連接則允許其中之一聲明路徑,并創(chuàng)建基于物理連接的、與網(wǎng)絡(luò)服務(wù)器上的文件相關(guān)的數(shù)據(jù)結(jié)構(gòu)。當(dāng)調(diào)用客戶端高速緩存機(jī)構(gòu)后處理處理器時(shí),后處理處理器將基于數(shù)據(jù)結(jié)構(gòu)中的信息在適當(dāng)時(shí)候完成其邏輯數(shù)據(jù)結(jié)構(gòu)。后處理處理器還將決定這個(gè)文件是離線還是在線(例如,由重定向器聲明的)。后處理處理器覆寫重定向器相關(guān)數(shù)據(jù)(例如,指向文件控制塊數(shù)據(jù)結(jié)構(gòu)中重定向器分派表的指針),因此當(dāng)在線時(shí),緩沖服務(wù)將調(diào)用客戶端高速緩存機(jī)構(gòu)而不是重定向器。客戶端高速緩存機(jī)構(gòu)保存關(guān)聯(lián)于文件的重定向器(指針)數(shù)據(jù)的拷貝,因此客戶端高速緩存機(jī)構(gòu)能在適當(dāng)時(shí)候與重定向器通信,從而將自己插入緩沖服務(wù)和重定向器之間的通信流中。如果重定向器返回與網(wǎng)絡(luò)相關(guān)的錯(cuò)誤,客戶端高速緩存后處理視文件為離線,因而對(duì)于文件的請(qǐng)求將嘗試由客戶端高速緩存滿足,而不調(diào)用重定向器。如果(由服務(wù)器)禁止高速緩存,則客戶端高速緩存機(jī)構(gòu)后處理可使自己與文件對(duì)象解除關(guān)聯(lián),從而MUP將不傳送任何關(guān)聯(lián)于這個(gè)文件對(duì)象的請(qǐng)求。例如,通過(guò)不覆寫文件控制塊上與重定向器相關(guān)的數(shù)據(jù),客戶端高速緩存機(jī)構(gòu)將不被包括在關(guān)聯(lián)于這個(gè)文件對(duì)象的后續(xù)文件I/O的控制流中。在離線創(chuàng)建和在線創(chuàng)建兩者中,對(duì)于同文件的創(chuàng)建請(qǐng)求在客戶端高速緩存預(yù)處理中同步。為此,如果指向同文件的另一創(chuàng)建送至客戶端高速緩存預(yù)處理,客戶端高速緩存預(yù)處理掛起每個(gè)稍后的創(chuàng)建請(qǐng)求直到當(dāng)前的一個(gè)完成。對(duì)于其它(非創(chuàng)建的)諸如讀、寫或關(guān)閉的文件請(qǐng)求,客戶端高速緩存機(jī)構(gòu)能在預(yù)處理中先看一下請(qǐng)求,并當(dāng)適于諸如讀和寫請(qǐng)求的時(shí)候,可嘗試通過(guò)調(diào)用緩沖服務(wù)在存儲(chǔ)器中滿足請(qǐng)求。如果相應(yīng)的數(shù)據(jù)沒(méi)有高速緩存在存儲(chǔ)器中(發(fā)生高速緩存未中),且因而不能由緩沖服務(wù)立即讀或?qū)?,緩沖服務(wù)掛起第一個(gè)請(qǐng)求,并生成另一個(gè),第二請(qǐng)求(例如,由緩沖服務(wù)的高速緩存管理器/存儲(chǔ)管理器)。當(dāng)這個(gè)第二請(qǐng)求到達(dá)客戶端高速緩存預(yù)處理,它調(diào)用緩沖服務(wù),緩沖服務(wù)識(shí)別該請(qǐng)求為由高速緩存未中產(chǎn)生,并因而不檢查高速緩存中的數(shù)據(jù),而是調(diào)用客戶端高速緩存機(jī)構(gòu)??蛻舳烁咚倬彺鏅C(jī)構(gòu)處理該請(qǐng)求并嘗試從持久性存儲(chǔ)器中的離線高速緩存拷貝獲得所需數(shù)據(jù),并返回?cái)?shù)據(jù)至高速緩存管理器/存儲(chǔ)管理器。然后高速緩存管理器/存儲(chǔ)管理器能拷貝數(shù)據(jù)到內(nèi)存高速緩存,并完成I/O請(qǐng)求,例如,為讀請(qǐng)求返回?cái)?shù)據(jù)或者為寫請(qǐng)求改變高速緩存存儲(chǔ)器中的數(shù)據(jù)。如果客戶端高速緩存機(jī)構(gòu)不能從它的存儲(chǔ)器中獲得所需數(shù)據(jù),因?yàn)橛糜谶@個(gè)文件的連接是離線的,客戶端高速緩存機(jī)構(gòu)返回錯(cuò)誤。這樣,在高速緩存未中時(shí),緩沖服務(wù)基于(由緩沖服務(wù)組件生成的)第二請(qǐng)求的客戶端高速緩存機(jī)構(gòu)的處理結(jié)果完成第一請(qǐng)求,為內(nèi)存儲(chǔ)高速緩存提供數(shù)據(jù)。對(duì)于非創(chuàng)建文件I/O請(qǐng)求,當(dāng)在線時(shí),客戶端高速緩存機(jī)構(gòu)預(yù)處理返回“要求更多處理”狀態(tài)給MUP,MUP然后調(diào)用任何其它代理提供器,并隨之傳送請(qǐng)求至相應(yīng)的重定向器。接著,重定向器調(diào)用緩沖服務(wù)(例如調(diào)用服務(wù)的緩沖子系統(tǒng))嘗試從存儲(chǔ)器來(lái)滿足請(qǐng)求。如果相應(yīng)的數(shù)據(jù)未高速緩存在存儲(chǔ)器中,緩沖服務(wù)掛起第一請(qǐng)求,且其組件(例如高速緩存管理器/存儲(chǔ)管理器)生成另一個(gè),第二請(qǐng)求。當(dāng)這個(gè)第二請(qǐng)求到達(dá)重定向器時(shí),它再調(diào)用緩沖服務(wù),但這次緩沖服務(wù)識(shí)別請(qǐng)求為由高速緩存未中生成,且因此知道不再在高速緩存中查找數(shù)據(jù)。但是,盡管重定向器調(diào)用了緩沖服務(wù)的緩沖子系統(tǒng),但因?yàn)榭蛻舳烁咚倬彺婧筇幚砀矊懥朔峙杀碇械闹囟ㄏ蚱髦羔槪跃彌_服務(wù)調(diào)用客戶端高速緩存。如果請(qǐng)求能用持久性存儲(chǔ)器中的離線高速緩存拷貝滿足,則客戶端高速緩存機(jī)構(gòu)處理該請(qǐng)求。如果不能滿足請(qǐng)求,客戶端高速緩存機(jī)構(gòu)(它保存了重定向器指針)調(diào)用重定向器來(lái)嘗試從服務(wù)器滿足該請(qǐng)求。重定向器返回到客戶端高速緩存機(jī)構(gòu),它可在其本地持久性存儲(chǔ)器中高速緩存由重定向器返回的數(shù)據(jù)高速緩存組件然后完成第一請(qǐng)求,并基于客戶端高速緩存機(jī)構(gòu)的(也可能是重定向器的)第二請(qǐng)求處理的結(jié)果將返回的數(shù)據(jù)高速緩存到內(nèi)存儲(chǔ)高速緩存中。在概念上,客戶端高速緩存機(jī)構(gòu)將自己插入,以便從緩沖服務(wù)截取到重定向器的調(diào)用,尤其是,來(lái)看所需數(shù)據(jù)是否能從客戶端高速緩存離線存儲(chǔ)器滿足。當(dāng)對(duì)具有在線連接的文件進(jìn)行關(guān)閉時(shí),MUP發(fā)送請(qǐng)求到客戶端高速緩存機(jī)構(gòu)預(yù)處理。客戶端高速緩存機(jī)構(gòu)然后檢查是否存在還沒(méi)有發(fā)往服務(wù)器的任何數(shù)據(jù)。如果這樣,客戶端高速緩存機(jī)構(gòu)將任何沒(méi)用的記錄刷新至服務(wù)器。客戶端高速緩存機(jī)構(gòu)然后發(fā)送關(guān)閉請(qǐng)求至連接的重定向器、解除對(duì)其數(shù)據(jù)結(jié)構(gòu)的參考、并完成請(qǐng)求。類似地處理其它請(qǐng)求。當(dāng)連接是離線時(shí),客戶端高速緩存機(jī)在本地執(zhí)行任務(wù)。如能看到的,由于客戶端高速緩存機(jī)構(gòu)在重定向器之外對(duì)網(wǎng)絡(luò)文件相關(guān)請(qǐng)求起作用,客戶端高速緩存機(jī)構(gòu)是協(xié)議無(wú)關(guān)的,且能工作于任何重定向器協(xié)議,只要重定向器參與在緩沖服務(wù)(或類似的)結(jié)構(gòu)中。其它優(yōu)點(diǎn)將在結(jié)合附圖時(shí),從下列詳細(xì)描述中變得顯而易見,其中圖1是方框圖,表示示例性計(jì)算機(jī)系統(tǒng),其中可包括本發(fā)明;圖2是方框圖,主要表示依照本發(fā)明的一方面的客戶端高速緩存的方面用于實(shí)現(xiàn)的組件;圖3是方框圖,主要表示依照本發(fā)明的一方面用于實(shí)現(xiàn)客戶端高速緩存和重定向到服務(wù)器的組件;圖4是方框圖,主要表示依照本發(fā)明的一方面,在網(wǎng)絡(luò)在線狀態(tài)中允許客戶端高速緩存時(shí)用于實(shí)現(xiàn)客戶端高速緩存的數(shù)據(jù)結(jié)構(gòu);圖5是方框圖,主要表示依照本發(fā)明的一方面,在禁止客戶端高速緩存時(shí)用于通過(guò)網(wǎng)絡(luò)處理網(wǎng)絡(luò)文件相關(guān)請(qǐng)求的數(shù)據(jù)結(jié)構(gòu);圖6是方框圖,主要表示依照本發(fā)明的一方面,當(dāng)在網(wǎng)絡(luò)離線狀態(tài)中運(yùn)行時(shí)用于實(shí)現(xiàn)客戶端高速緩存的數(shù)據(jù)結(jié)構(gòu);圖7是流程圖,主要表示依照本發(fā)明的一方面,用于調(diào)用注冊(cè)的代理提供器的示例邏輯,包括在預(yù)處理調(diào)用中的客戶端高速緩存機(jī)構(gòu)(代理提供器);圖8是流程圖,主要表示依照本發(fā)明的一方面,用于調(diào)用注冊(cè)的代理提供器的示例邏輯,包括在后處理調(diào)用中的客戶端高速緩存機(jī)構(gòu)(代理提供器);圖9是流程圖,主要表示依照本發(fā)明的一方面,用于處理在客戶端高速緩存機(jī)構(gòu)的預(yù)處理處理器中的創(chuàng)建調(diào)用的示例邏輯;圖10是流程圖,主要表示依照本發(fā)明的一方面,用于處理在客戶端高速緩存機(jī)構(gòu)的后處理處理器中的創(chuàng)建調(diào)用的示例邏輯;以及圖11-13包括流程圖,主要表示依照本發(fā)明的一方面,用于處理讀取請(qǐng)求的示例邏輯。具體實(shí)施例方式典型操作環(huán)境圖1示出了本發(fā)明可在其上實(shí)現(xiàn)的適合的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境100只是合適的計(jì)算環(huán)境的一個(gè)示例,而不是希望建議對(duì)于本發(fā)明的使用或功能范圍的任何限制。計(jì)算環(huán)境100不應(yīng)解釋為具有關(guān)于典型操作環(huán)境中所示各組件任何之一或結(jié)合的任何依賴性和需求。本發(fā)明可運(yùn)行于許多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置。合適用于本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、寫字板設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、主機(jī)計(jì)算機(jī)、包括任意以上系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本發(fā)明可在諸如程序模塊的、或由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的通用環(huán)境中描述。通常,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們完成特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明還可在分布式計(jì)算環(huán)境中實(shí)施,其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備完成。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程兩者的、包括存儲(chǔ)器設(shè)備的計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參考圖1,實(shí)現(xiàn)本發(fā)明的示例系統(tǒng)包括以計(jì)算機(jī)110的形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件可包括,但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130和連接包括系統(tǒng)存儲(chǔ)器在內(nèi)的不同系統(tǒng)組件到處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種總線結(jié)構(gòu)類型的任何一或多種,包括存儲(chǔ)器總線或存儲(chǔ)控制器、外部設(shè)備總線,和使用多種多樣總線結(jié)構(gòu)的任何一個(gè)的局部總線。作為例子,但不是限制,這樣的結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(EISA)總線、視頻標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線,和外設(shè)部件互連(PCI)總線,它也被稱為中間層(Mezzanine)總線。計(jì)算機(jī)110一般包括多種多樣的計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是任何能由計(jì)算機(jī)110訪問(wèn)的可用介質(zhì),且包括易失的和非易失的介質(zhì)及可移動(dòng)的和不可移動(dòng)的介質(zhì)。作為例子,而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括在任何用于信息存儲(chǔ)的方法或技術(shù)中實(shí)現(xiàn)的易失的和非易失的、可移動(dòng)的和不可移動(dòng)的介質(zhì),信息存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光存儲(chǔ)、盒帶、磁帶、磁盤存儲(chǔ)器或其它磁存儲(chǔ)設(shè)備,或者任何其它能被用于存儲(chǔ)想要的信息和能由計(jì)算機(jī)110訪問(wèn)的介質(zhì)。通信介質(zhì)一般包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或調(diào)制數(shù)據(jù)信號(hào)中的其它數(shù)據(jù),諸如載波或其它傳輸機(jī)制,并包括任意信息傳輸介質(zhì)。術(shù)語(yǔ)“調(diào)制的數(shù)據(jù)信號(hào)”指具有以這樣一種關(guān)于編碼信號(hào)中信息的方式設(shè)置或改變的一或多個(gè)特征的信號(hào)。作為例子,但不是限制,通信介質(zhì)包括有線的介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無(wú)線的介質(zhì),諸如聲音的、RF(射頻)、紅外線和其它無(wú)線介質(zhì)。上述各項(xiàng)的任意組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲(chǔ)器130包括以諸如只讀存儲(chǔ)器(ROM)131和隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)132這樣的易失的和/或非易失存儲(chǔ)器的形式的計(jì)算機(jī)可讀介質(zhì)?;据斎?輸出系統(tǒng)(BIOS)133,包含幫助在計(jì)算機(jī)110內(nèi)各部件之間傳送信息的基本例程,諸如在起動(dòng)期間,一般被存儲(chǔ)于ROM131。RAM132一般包含由處理器單元120立即訪問(wèn)的和/或目前所運(yùn)行的數(shù)據(jù)和/或程序模塊。作為例子,圖1示出的操作系統(tǒng)134、文件系統(tǒng)135、應(yīng)用程序136、其它程序模塊137和程序數(shù)據(jù)138。計(jì)算機(jī)110還可包括其它可移動(dòng)的/不可移動(dòng)的、易失的/非易失的計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為例子,圖1示出用于從不可移動(dòng)的非易失的磁介質(zhì)讀寫的硬盤驅(qū)動(dòng)器141、用于從可移動(dòng)的非易失的磁盤152讀寫的磁盤驅(qū)動(dòng)器151,以及用于從諸如CD-ROM或其它光介質(zhì)的可移動(dòng)的非易失光盤156讀寫的光盤驅(qū)動(dòng)器155。其它可用于典型操作環(huán)境的可移動(dòng)/不可移動(dòng)的、易失/非易失的計(jì)算機(jī)可讀介質(zhì)包括,但不限于,磁帶、閃存卡、數(shù)字通用盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141一般通過(guò)諸如接口140的不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121,而磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155一般都由可移動(dòng)存儲(chǔ)器接口諸如接口150連接到系統(tǒng)總線121上。磁盤驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì),以上討論并示于圖1,為計(jì)算機(jī)110提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。在圖1中,例如,示出硬盤驅(qū)動(dòng)器141存儲(chǔ)了操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件能夠相同或不同于操作系統(tǒng)134、應(yīng)用程序136、其它程序模塊137和程序數(shù)據(jù)138。這里給操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147以不同的數(shù)字以說(shuō)明他們至少是不同的拷貝。用戶可通過(guò)諸如手寫板(電子數(shù)字化儀)164、話筒163、鍵盤162和定位設(shè)備161,通常指鼠標(biāo)、跟蹤球或觸摸墊這樣的輸入設(shè)備將命令和信息鍵入計(jì)算機(jī)110。其它輸入設(shè)備(未示出)可包括操縱桿、游戲墊、衛(wèi)星天線、掃描儀或類似的設(shè)備等。這些或其它輸入設(shè)備通常可通過(guò)連接到系統(tǒng)總線的用戶輸入接口160連接至處理器單元120上,還可通過(guò)其它接口和總線結(jié)構(gòu)連接,諸如并行接口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示設(shè)備也能通過(guò)諸如視頻適配器190的接口連接至系統(tǒng)總線121。監(jiān)視器191還可與觸摸屏面板或類似的部件集成在一起。注意,監(jiān)視器和/或觸摸屏面板能夠物理地連接到一個(gè)機(jī)箱上,其中計(jì)算設(shè)備110是一體化的,諸如平板型個(gè)人計(jì)算機(jī)。此外,諸如計(jì)算設(shè)備110的計(jì)算機(jī)還可包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器195和打印機(jī)196,它們可通過(guò)輸出外圍接口194或類似的接口連接。計(jì)算機(jī)110可在一個(gè)使用邏輯連接至一或多個(gè)遠(yuǎn)程計(jì)算機(jī)諸如遠(yuǎn)程計(jì)算機(jī)180的網(wǎng)絡(luò)化環(huán)境中運(yùn)行。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)計(jì)算機(jī)、對(duì)等設(shè)備或其它普通的網(wǎng)絡(luò)節(jié)點(diǎn)、游戲控制臺(tái)等等,并且一般包括上面相對(duì)于計(jì)算機(jī)110所述的部件的許多或全部,盡管在圖1中只示出存儲(chǔ)器設(shè)備181。圖1中所示的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但還可包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)級(jí)計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和因特網(wǎng)中是很普通的。例如,在本發(fā)明中,計(jì)算機(jī)系統(tǒng)110可包括源計(jì)算機(jī),數(shù)據(jù)從它遷移,而遠(yuǎn)程計(jì)算機(jī)180可包括目的計(jì)算機(jī)。但注意源和目的計(jì)算機(jī)不需要通過(guò)網(wǎng)絡(luò)或其它方式連接起來(lái),相反,數(shù)據(jù)可通過(guò)能夠由源平臺(tái)寫入并由一或多個(gè)目的平臺(tái)讀取的任何介質(zhì)遷移。當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接至LAN171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110一般包括調(diào)制解調(diào)器172或用于建立在WAN173諸如因特網(wǎng)上的通信的其它工具。調(diào)制解調(diào)器172,可以是內(nèi)置的或外置的,可通過(guò)用戶輸入接口160或其它適當(dāng)?shù)臋C(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)110所述的程序模塊,或其一部分,可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器設(shè)備中。作為例子,但不是限制,圖1示出遠(yuǎn)程應(yīng)用程序185為駐留在存儲(chǔ)設(shè)備181上。將意識(shí)到所示的網(wǎng)絡(luò)連接是典型的,并且可使用用于在計(jì)算機(jī)之間建立通信鏈路的其它方法。客戶端高速緩存系統(tǒng)和方法將在Microsoft(微軟)公司的WindowsXP操作系統(tǒng)背景中描述本發(fā)明,使用基于協(xié)議的重定向器,NTFS文件系統(tǒng)和其它組件,(例如,I/O管理器,高速緩存管理器和存儲(chǔ)器管理器)。盡管如將理解的,事實(shí)上可用任何操作系統(tǒng)和/或文件系統(tǒng)實(shí)現(xiàn)本發(fā)明。轉(zhuǎn)到附圖的圖2,在這里示出用于實(shí)現(xiàn)本發(fā)明的示例結(jié)構(gòu)200,其中用戶模式應(yīng)用程序202可通過(guò)應(yīng)用編程接口(API)層204調(diào)用各種系統(tǒng)功能。對(duì)于訪問(wèn)網(wǎng)絡(luò)資源,應(yīng)用程序202通過(guò)I/O管理器206進(jìn)行指向網(wǎng)絡(luò)資源的文件輸入-輸出(I/O)API調(diào)用。例如,在基于Windows的操作系統(tǒng)中,應(yīng)用程序能通過(guò)使用UNC(統(tǒng)一命名協(xié)定)標(biāo)準(zhǔn)與Win32功能以直接尋址遠(yuǎn)程資源,例如以\\server\share的形式或者通過(guò)映射到網(wǎng)絡(luò)共享文件夾等等的驅(qū)動(dòng)器字母,檢查或訪問(wèn)在遠(yuǎn)程系統(tǒng)上的資源。應(yīng)用能訪問(wèn)網(wǎng)絡(luò)資源的另一種方法是通過(guò)調(diào)用網(wǎng)絡(luò)API,(例如,Windows2000操作系統(tǒng)中Win32窗口網(wǎng)絡(luò)(Win32WindowsNetworking)(WNet)API),諸如有關(guān)在瀏覽時(shí)列舉服務(wù)器的文件。通過(guò)這些WNetAPI,應(yīng)用和/或操作系統(tǒng)能列舉遠(yuǎn)程計(jì)算機(jī)輸出用于共享的計(jì)算機(jī)和資源。為此,用戶模式網(wǎng)絡(luò)提供器210-213每一個(gè)包括軟件代碼,軟件代碼建立操作系統(tǒng)作為遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器的客戶,在本發(fā)明中,作為客戶端高速緩存的客戶(通常充當(dāng)服務(wù)器)。例如,網(wǎng)絡(luò)提供器執(zhí)行的有些操作包括建立和斷開網(wǎng)絡(luò)連接和查詢網(wǎng)絡(luò)資源狀態(tài)。因此,由網(wǎng)絡(luò)提供器提供的典型功能包括性能功能和設(shè)備重定向功能,性能功能允許調(diào)用者確定網(wǎng)絡(luò)提供器的性能,設(shè)備重定向功能允許網(wǎng)絡(luò)提供器重定向驅(qū)動(dòng)器字母、MS-DOS設(shè)備和LPT端口。其它功能包括提供器專用的對(duì)話功能、管理功能和列舉功能,對(duì)話功能允許網(wǎng)絡(luò)提供器顯示或表現(xiàn)網(wǎng)絡(luò)專用的信息,管理功能允許網(wǎng)絡(luò)提供器顯示或表現(xiàn)專用的網(wǎng)絡(luò)目錄,列舉功能允許瀏覽網(wǎng)絡(luò)資源。例如,通過(guò)SMB網(wǎng)絡(luò)提供器211,操作系統(tǒng)能列舉在SMB服務(wù)器311(圖3)上的網(wǎng)絡(luò)共享。在一個(gè)實(shí)現(xiàn)中,當(dāng)應(yīng)用程序調(diào)用API204的網(wǎng)絡(luò)例程時(shí)要確定要調(diào)用哪個(gè)網(wǎng)絡(luò)提供器,該調(diào)用傳遞至多個(gè)網(wǎng)絡(luò)提供器路由器或MPR216,可作為動(dòng)態(tài)鏈接庫(kù)(DLL)安裝MPR216。通常,MPR216確定哪個(gè)用戶模式網(wǎng)絡(luò)提供器識(shí)別正在訪問(wèn)的資源。為此,在MPR216下每個(gè)安裝的網(wǎng)絡(luò)提供器提供集中地被稱為網(wǎng)絡(luò)提供器接口的一組功能,網(wǎng)絡(luò)提供器接口允許MPR216確定應(yīng)用正在嘗試訪問(wèn)哪個(gè)網(wǎng)絡(luò),以及將請(qǐng)求指向合適的網(wǎng)絡(luò)提供器軟件。例如,用于SMB的網(wǎng)絡(luò)提供器包括LANMAN(局域網(wǎng)管理器)網(wǎng)絡(luò)提供器211,如在系統(tǒng)注冊(cè)表項(xiàng)等等中規(guī)定的。在所述的實(shí)現(xiàn)中,當(dāng)被調(diào)用以連接遠(yuǎn)程網(wǎng)絡(luò)資源時(shí),MPR216檢查注冊(cè)以確定載入哪個(gè)網(wǎng)絡(luò)提供器。MPR216隨后輪詢它們,諸如按照在注冊(cè)中列出它們的順序每次一個(gè),哪個(gè)是可配置的,以及每個(gè)網(wǎng)絡(luò)提供器(例如,DAV網(wǎng)絡(luò)提供器213)可進(jìn)一步與相應(yīng)的內(nèi)核模式組件(例如,DAV重定向器225)通信,直到資源被識(shí)別或者直到可用的網(wǎng)絡(luò)提供器已經(jīng)被輪詢。因此,在指向網(wǎng)絡(luò)資源的網(wǎng)絡(luò)API調(diào)用的事件中,例如,通過(guò)作為調(diào)用參考傳遞至DAV服務(wù)器的URL,MPR216將輪詢DAV網(wǎng)絡(luò)提供器213,它依次通過(guò)RPC(遠(yuǎn)程過(guò)程調(diào)用)調(diào)用到一服務(wù)中以與內(nèi)核模式DAV重定向器225聯(lián)系以判定是否能處理這個(gè)API,例如所指定的DAV共享是否確實(shí)是可訪問(wèn)的DAV服務(wù)器312(圖3)。如果是,則由DAV重定向器組件225處理這個(gè)API。應(yīng)用也可透明地通過(guò)UNC名字或先前映射到資源的驅(qū)動(dòng)器字母訪問(wèn)網(wǎng)絡(luò)資源。當(dāng)用遠(yuǎn)程路徑/文件名諸如UNC名字調(diào)用文件I/OAPI(例如文件創(chuàng)建/打開請(qǐng)求),這個(gè)文件I/O在I/O管理器206被接收。要處理這個(gè)遠(yuǎn)程名字,I/O管理器206調(diào)用多重UNC提供器或MUP230,(例如,包括內(nèi)核模式驅(qū)動(dòng)器)它是作為UNC提供器向系統(tǒng)注冊(cè)的。通常,MUP230算出哪個(gè)網(wǎng)絡(luò)提供器(例如,提供器210-213組中的)和相應(yīng)的內(nèi)核組件諸如網(wǎng)絡(luò)重定向器223-225中的一個(gè)處理那個(gè)具體的名字。注意,在本例中只示出三個(gè)重定向器,然而在一給定系統(tǒng)中更少或更多數(shù)量的重定向器是可行的。要為所請(qǐng)求的文件創(chuàng)建路徑確定正確的重定向器,MUP230實(shí)際上輪詢已注冊(cè)的提供器/重定向器,直到一個(gè)提供器/重定向器聲明這個(gè)創(chuàng)建請(qǐng)求中所提供的路徑。在一個(gè)實(shí)現(xiàn)中,MUP230通過(guò)異步I/O請(qǐng)求分組或IRP輪詢,并且每個(gè)能處理這個(gè)名字的重定向器應(yīng)答回來(lái)。如果多于一個(gè)肯定地應(yīng)答,則MUP230根據(jù)優(yōu)先級(jí)順序(例如,至少在一個(gè)系統(tǒng)注冊(cè)表項(xiàng)等等中保存的)確定哪一個(gè)具有處理該請(qǐng)求的優(yōu)先權(quán)。一旦該路徑被聲明,當(dāng)應(yīng)用程序202使用一I/OAPI訪問(wèn)該遠(yuǎn)程文件時(shí),MUP230知道要調(diào)用哪個(gè)重定向器處理請(qǐng)求。當(dāng)至少一個(gè)重定向器應(yīng)答并高速緩存這個(gè)路徑時(shí),MUP驅(qū)動(dòng)器230高速緩存與應(yīng)答的重定向器相關(guān)聯(lián)的路徑信息,(如果多于一個(gè),它高速緩存具有優(yōu)先權(quán)的那個(gè)的信息),由此在沒(méi)有輪詢操作的情況下,將以那個(gè)路徑串開始的更多的請(qǐng)求直接送到那個(gè)重定向器。注意,作為對(duì)MUP206的應(yīng)答的部分,識(shí)別該名字的每個(gè)重定向器指示該名字對(duì)于其的唯一性程度。例如,如果該名字是UNC名字\\SERVER\SHARE\foo\barl.doc并且SMB重定向器223將該名字識(shí)別為能夠處理,以及如果服務(wù)器是SMB服務(wù)器,則SMB重定向器223通過(guò)高速緩存串“\\SERVER\SHARE”為其自己的。因此,將來(lái)指向相應(yīng)于這個(gè)被高速緩存的串的網(wǎng)絡(luò)共享的SMB請(qǐng)求在不輪詢的情況下被傳遞至SMB重定向器223,以及SMB重定向器223將那些SMB請(qǐng)求分組成能夠通過(guò)網(wǎng)絡(luò)送到遠(yuǎn)程SMB服務(wù)器的數(shù)據(jù)結(jié)構(gòu)。依照本發(fā)明的一個(gè)方面,在合適的時(shí)候,客戶端高速緩存(CSC)機(jī)構(gòu)221以代理提供器的形式在重定向?qū)哟紊贤该鞯靥幚韥?lái)自CSC離線存儲(chǔ)器215的網(wǎng)絡(luò)請(qǐng)求,與任何特定的網(wǎng)絡(luò)協(xié)議無(wú)關(guān)。在一個(gè)實(shí)現(xiàn)中,CSC機(jī)構(gòu)221從開始起被包括在通信的流中。為此,當(dāng)收到UNC或基于驅(qū)動(dòng)器字母的網(wǎng)絡(luò)I/O請(qǐng)求時(shí),MUP230通過(guò)對(duì)CSC預(yù)處理處理器226的預(yù)處理調(diào)用,與CSC機(jī)構(gòu)221通信。CSC機(jī)構(gòu)221從預(yù)處理調(diào)用用狀態(tài)信息返回,如下所述。例如,如果預(yù)處理處理器226知道連接是離線的,即,對(duì)于這個(gè)文件在創(chuàng)建時(shí)沒(méi)有連接到網(wǎng)絡(luò),則客戶端高速緩存(CSC)代理提供器221可聲明路徑并用成功狀態(tài)完成這個(gè)調(diào)用。否則,CSC可返回“要求更多的處理”狀態(tài),在該事件中,MUP230同樣地在調(diào)用(調(diào)用)一或多個(gè)重定向器215-217之前,放置對(duì)分布式文件系統(tǒng)(DFS)代理提供器216的一個(gè)預(yù)處理調(diào)用。注意,CSC機(jī)構(gòu)221能以已知的方式確定網(wǎng)絡(luò)連接狀態(tài)(象其它組件一樣),諸如通過(guò)檢查現(xiàn)有的連接數(shù)據(jù)狀態(tài),注冊(cè)涉及網(wǎng)絡(luò)的事件等等,如由連接狀態(tài)250在圖2中一般表示的。CSC機(jī)構(gòu)221因此為指向網(wǎng)絡(luò)的任何UNC和基于驅(qū)動(dòng)器字符的I/O接收預(yù)處理調(diào)用。注意,要由MUP230調(diào)用的CSC機(jī)構(gòu)221將其本身注冊(cè)為一代理提供器,由此MUP230知道為指向網(wǎng)絡(luò)提供器和/或它們相應(yīng)的重定向器的IRP和FASTIO調(diào)用,用預(yù)處理調(diào)用以及還有后處理調(diào)用來(lái)調(diào)用CSC機(jī)構(gòu)221。在用返回要求更多處理狀態(tài)的預(yù)處理調(diào)用CSC機(jī)構(gòu)221之后,MUP230調(diào)用DFS代理提供器218。通常,DFS將一邏輯路徑/文件名轉(zhuǎn)換成物理路徑/文件名,并提供建立在許多不同服務(wù)器之外的一個(gè)單一的、統(tǒng)一的名字空間的系統(tǒng)。然后重定向器能為這個(gè)特定的重定向器處理的文件聲明合適地命名的路徑。在一高層次上,DFS通過(guò)在響應(yīng)結(jié)點(diǎn)(junctionpoint)時(shí)向包括DFS名字空間的獨(dú)立服務(wù)器請(qǐng)求參考(referral)來(lái)工作。作為例子,DFS可被用于為一程序的版本提供一單一的名字空間,它由遍及一個(gè)部門(division)的不同的服務(wù)器建立的,例如,名字\\progbuilds\release\lab01\release\x86fre是到\\robvbl1\release的一個(gè)結(jié)點(diǎn)。在這個(gè)例子中,要打開\\progbuilds\release\lab01\x86fre\latest_tested_build.txt,\\progbuilds服務(wù)器將返回參考為\\robvbl1\release\latest_tested_build.txt并告訴客戶再嘗試這個(gè)請(qǐng)求。如能理解的,處理結(jié)點(diǎn)的一般算法修改名字的左邊部分。一個(gè)名字能經(jīng)過(guò)多個(gè)結(jié)點(diǎn),在最終聯(lián)系目的地服務(wù)器之前,導(dǎo)致多個(gè)名字修改。正當(dāng)服務(wù)器改變客戶提供的名字以處理結(jié)點(diǎn)時(shí),將文件名標(biāo)識(shí)符放到右邊允許該標(biāo)識(shí)符保存在名字中。因此,在圖2的結(jié)構(gòu)中,并且也如在圖3中一般表示的,在MUP230作為UNC提供器注冊(cè)的情況下,由MUP230產(chǎn)生UNC調(diào)用,它接著將它們傳遞給合適的代理提供器中的第一個(gè),即CSC機(jī)構(gòu)221。取決于返回的狀態(tài),MUP230可將UNC調(diào)用傳遞到一或多個(gè)其它代理提供器(例如222),以及到重定向器223-225,這些重定向器通過(guò)網(wǎng)絡(luò)傳輸層301等等與相應(yīng)于重定向器的協(xié)議的服務(wù)器311-313通信數(shù)據(jù)。因?yàn)轭A(yù)處理和后處理調(diào)用方案,CSC機(jī)構(gòu)221過(guò)濾通過(guò)MUP230的調(diào)用,因而允許CSC機(jī)構(gòu)221有能力對(duì)用于被認(rèn)為合適的無(wú)論什么路徑名的高速緩存操作作出決定。在概念上,CSC機(jī)構(gòu)221在MUP230處理的每個(gè)調(diào)用的路徑中,允許CSC機(jī)構(gòu)221進(jìn)行CSC機(jī)構(gòu)221需要的無(wú)論什么預(yù)處理和后處理,以執(zhí)行合適的客戶端高速緩存功能,如下面一般描述的。而且,在這個(gè)結(jié)構(gòu)中,因?yàn)镃SC機(jī)構(gòu)221在DFS代理提供器222之前操作預(yù)處理調(diào)用(和在DRS之后操作后處理調(diào)用),任何DFS操作對(duì)于CSC是透明的,如CSC機(jī)構(gòu)221看到的名字是邏輯名字而不是物理名字。如在圖2的結(jié)構(gòu)中表示的,CSC機(jī)構(gòu)221和DFS代理提供器222是在MUP230的一般層次上。依照本發(fā)明的另一個(gè)方面,客戶端高速緩存功能是協(xié)議無(wú)關(guān)的,例如,它與任何重定向器一起工作。為此,客戶端高速緩存功能已經(jīng)移出任何協(xié)議相關(guān)的重定向器(即SMB重定向器223),并且透明地成為重定向器和重定向的緩沖子系統(tǒng)232之間的控制流的部分。如已知的,重定向的緩沖子系統(tǒng)232向重定向器223-225提供高速緩存管理器240和存儲(chǔ)器管理器242(內(nèi)存儲(chǔ)RAM高速緩存242)服務(wù),這些重定向器每個(gè)與RDBSS232聯(lián)系以在合適的時(shí)候利用內(nèi)存儲(chǔ)高速緩存244。通過(guò)將CSC機(jī)構(gòu)221(作為驅(qū)動(dòng)器)插入到重定向器與重定向的緩沖子系統(tǒng)232之間的控制流中,使客戶端高速緩存功能作為公共服務(wù)可用于每個(gè)重定向器,與任何網(wǎng)絡(luò)協(xié)議無(wú)關(guān),但本質(zhì)上透明于重定向器223-225和重定向的緩沖子系統(tǒng)232。注意,如在此使用的,術(shù)語(yǔ)“緩沖服務(wù)”指處理涉及文件的數(shù)據(jù)緩沖的任何組件,包括由本示例結(jié)構(gòu)中的RDBSS232、高速緩存管理器240、存儲(chǔ)器管理器242和RAM高速緩存244集中地提供的緩沖服務(wù)。應(yīng)該注意,CSC機(jī)構(gòu)221在邏輯名字空間上操作,這個(gè)名字空間是用戶看見的名字空間。注意,這和重定向器相反,重定向器在物理名字空間上工作,這個(gè)名字空間相應(yīng)于存儲(chǔ)數(shù)據(jù)的實(shí)際服務(wù)器。注意,這兩個(gè)名字空間例如對(duì)于SMB是相同的,除非存在包含的DFS結(jié)點(diǎn)。依照本發(fā)明的一個(gè)方面,圖4表示在邏輯和物理名字空間兩者中基于邏輯連接的數(shù)據(jù)結(jié)構(gòu)400和基于物理連接的數(shù)據(jù)結(jié)構(gòu)420,以及兩者之間的關(guān)系。注意,CSC機(jī)構(gòu)221在邏輯名字空間中保存基于連接的數(shù)據(jù)結(jié)構(gòu)400,同時(shí)每個(gè)重定向器在物理名字空間420中保存其基于連接的數(shù)據(jù)結(jié)構(gòu)。通常,當(dāng)MUP230接收一創(chuàng)建文件請(qǐng)求并調(diào)用CSC預(yù)處理處理器226時(shí),CSC機(jī)構(gòu)221創(chuàng)建邏輯連接數(shù)據(jù)結(jié)構(gòu)400和共享的基于文件的結(jié)構(gòu)410-412。注意,由I/O管理器206(圖2)創(chuàng)建文件對(duì)象413。而且,注意,服務(wù)器能禁止客戶端高速緩存,其中客戶端高速緩存機(jī)構(gòu)將通過(guò)其后處理處理器227檢測(cè)。CSC的邏輯連接數(shù)據(jù)結(jié)構(gòu)400包括服務(wù)器調(diào)用上下文421,它包括服務(wù)器的抽象(abstraction),例如,包括邏輯服務(wù)器名字、CSC設(shè)備對(duì)象、CSC狀態(tài)標(biāo)志、連接狀態(tài)和清除器管理器。(至少一個(gè))網(wǎng)根(netroot)結(jié)構(gòu)402每個(gè)包括共享的抽象,包括共享名字、共享類型、CSC屬性、訪問(wèn)權(quán)限、打開的數(shù)量等等。(至少一個(gè))網(wǎng)根的視圖結(jié)構(gòu)(VNetRoot)403每個(gè)包括共享的視圖的抽象,包括安全的上下文和用戶會(huì)話信息。如在圖4中所表示的,共享的數(shù)據(jù)結(jié)構(gòu)包括文件控制塊410,連同至少一個(gè)服務(wù)器端打開上下文411,以及至少一個(gè)文件對(duì)象擴(kuò)展412。文件控制塊410實(shí)質(zhì)上包括文件的抽象,并且包括用于文件的信息,諸如大小數(shù)據(jù)、時(shí)間信息、高速緩存映象等等。服務(wù)器端打開上下文411包括送到服務(wù)器的打開的抽象,即具有所希望的和共享的訪問(wèn)權(quán)限的服務(wù)器文件句柄。注意,CSC機(jī)構(gòu)221象在這個(gè)上下文中的服務(wù)器,例如,在CSC存儲(chǔ)器215中文件的句柄將被保存在這個(gè)結(jié)構(gòu)中。文件對(duì)象擴(kuò)展數(shù)據(jù)結(jié)構(gòu)412包含與文件對(duì)象413相關(guān)聯(lián)的信息。如在圖4中所示的,當(dāng)系統(tǒng)在線且允許客戶端高速緩存,在CSC機(jī)構(gòu)221和聲明路徑的重定向器之間共享這些數(shù)據(jù)結(jié)構(gòu)410-413。結(jié)果,文件I/O請(qǐng)求由或者CSC機(jī)構(gòu)221或者聲明文件的路徑的重定向器執(zhí)行,基于下面所述的情況。在相應(yīng)于圖2的結(jié)構(gòu)的一個(gè)實(shí)現(xiàn)中,當(dāng)一創(chuàng)建請(qǐng)求來(lái)到MUP230時(shí),MPU230調(diào)用CSC機(jī)構(gòu)221的預(yù)處理處理器226(入口點(diǎn))。CSC機(jī)構(gòu)221試圖找出用于隨這個(gè)創(chuàng)建請(qǐng)求發(fā)布的文件對(duì)象的邏輯連接數(shù)據(jù)結(jié)構(gòu)(服務(wù)器調(diào)用上下文401服務(wù)器連接結(jié)構(gòu),網(wǎng)根共享映射結(jié)構(gòu)402和每用戶共享VNetRoot映射結(jié)構(gòu)403)。如果沒(méi)有找到,CSC機(jī)構(gòu)221創(chuàng)建這些結(jié)構(gòu),例如,通過(guò)RDBSS232。如果知道這些連接是離線的,則CSC預(yù)處理處理器226返回成功狀態(tài),(或如果適當(dāng)返回錯(cuò)誤),否則CSC預(yù)處理處理器226返回“要求更多處理”狀態(tài),由此MUP230將調(diào)用DFS代理提供器的預(yù)處理,并且然后調(diào)用一或多個(gè)重定向器223-225以試圖打開路徑。在路徑的成功打開(連接在線)時(shí),在適當(dāng)?shù)闹囟ㄏ蚱魈幗⒒谶B接的物理結(jié)構(gòu)420,以及可用于文件的句柄。MUP230調(diào)用CSC后處理處理器227,它通過(guò)查看FCB的物理網(wǎng)根,能獲得路徑的文件擴(kuò)展、大小和高速緩存標(biāo)志。一旦獲得這個(gè)信息,CSC機(jī)構(gòu)221能(在其后處理中)決定是否要擁有這個(gè)文件對(duì)象,例如,如果共享指示允許為這個(gè)文件高速緩存(文件是可高速緩存的共享,或者如果重定向器指示高速緩存將一直開著,諸如用于WebDAV)。如果允許,CSC機(jī)構(gòu)221聲明所有權(quán)并完成用于由這個(gè)文件對(duì)象表示的打開實(shí)例410-412的文件數(shù)據(jù)結(jié)構(gòu)。如果共享被標(biāo)記為不可高速緩存的,CSC機(jī)構(gòu)221將它自己與文件對(duì)象解除關(guān)聯(lián),可清除任何CSC數(shù)據(jù)結(jié)構(gòu),并且其后將見不到對(duì)于這個(gè)文件對(duì)象的操作。在圖5中一般表示用于這樣一個(gè)客戶端高速緩存禁止模式的操作的其余數(shù)據(jù)結(jié)構(gòu)。注意,CSC機(jī)構(gòu)221在有些時(shí)間段保存連接數(shù)據(jù)結(jié)構(gòu),即使連接數(shù)據(jù)結(jié)構(gòu)是不可高速緩存的路徑。相反,當(dāng)允許客戶端高速緩存但對(duì)于這個(gè)路徑連接是離線的時(shí)候,不存在用于這個(gè)物理連接的數(shù)據(jù)結(jié)構(gòu),如在圖6中一般表示的。注意,服務(wù)器可指示(通過(guò)鎖定機(jī)構(gòu)等等)對(duì)于這個(gè)文件的操作應(yīng)該由客戶端高速緩存處理,直到受到其它指示,例如,直到服務(wù)器改變鎖定的類型。在文件上的后續(xù)I/O操作將被離線執(zhí)行,直到受到其它通知,例如,服務(wù)器改變鎖定的類型(例如,機(jī)會(huì)鎖定(opportunisticlock),或oplock),因?yàn)榱硪粋€(gè)用戶已經(jīng)請(qǐng)求訪問(wèn)這個(gè)文件。轉(zhuǎn)到參考圖7-13的流程圖的本發(fā)明的操作說(shuō)明,圖7表示圖2的示例結(jié)構(gòu)中MUP230、CSC和DFS代理提供器(分別為221和222)與重定向器223-225之間的一般控制流。如在步驟700表示的和如上所述的,在一創(chuàng)建請(qǐng)求上,MUP230選擇代理提供器中的第一個(gè),在本例中是CSC機(jī)構(gòu)221,通過(guò)步驟702邏輯地跟蹤預(yù)調(diào)用順序,并在步驟704調(diào)用(invoke)(調(diào)用(call))所選擇的提供器預(yù)處理處理器。下面參考圖9一般描述用于創(chuàng)建請(qǐng)求的CSC預(yù)處理處理器226操作。除非被調(diào)用的代理提供器以“成功”或“錯(cuò)誤”狀態(tài)代替“要求更多處理”狀態(tài)完成這個(gè)請(qǐng)求,如在步驟706所檢測(cè)到的,MUP230將通過(guò)步驟708和710(它循環(huán)回到步驟702)調(diào)用其它代理提供器,在這個(gè)例子中只有DFS代理提供器222,直到?jīng)]有要調(diào)用的代理提供器剩下。注意,在CSC機(jī)構(gòu)221檢測(cè)到連接離線的情況下,(例如,通過(guò)在如圖4所表示的數(shù)據(jù)結(jié)構(gòu)中的連接狀態(tài)數(shù)據(jù)250(圖2)),CSC機(jī)構(gòu)221離線地處理文件I/O創(chuàng)建請(qǐng)求,并且然后返回除要求更多處理之外的狀態(tài),即成功或錯(cuò)誤,因此沒(méi)有涉及網(wǎng)絡(luò)的組件需要訪問(wèn)。在一個(gè)在線(或未知的連接狀態(tài))情況下,在預(yù)處理調(diào)用代理提供器之后,步驟708分支到表示調(diào)用重定向器或多個(gè)重定向器的步驟712。注意,在文件創(chuàng)建/打開請(qǐng)求上,如上面所述,可調(diào)用的多個(gè)重定向器以找出聲明路徑的一個(gè)重定向器,除非用于這個(gè)創(chuàng)建的路徑已經(jīng)先前被聲明,由此MUP230知道要調(diào)用哪個(gè)重定向器。在涉及那個(gè)路徑的后續(xù)的I/O請(qǐng)求上,包括被指向讀或?qū)懖僮鞯哪切┱?qǐng)求,MUP230調(diào)用先前聲明路徑或聲明它為創(chuàng)建/打開請(qǐng)求的部分的重定向器,例如,對(duì)于這個(gè)例子而言的DAV重定向器225。圖8表示MUP230調(diào)用代理提供器的后處理處理器,在預(yù)處理調(diào)用(或多個(gè)調(diào)用)以及對(duì)重定向器的任何調(diào)用之后。在步驟800,MUP選擇以預(yù)處理調(diào)用順序最后被調(diào)用的代理提供器,它在(在線)本例中是DFS代理提供器218,并且在步驟802調(diào)用它。步驟804和806表示以與后處理調(diào)用順序的相反順序重復(fù)用于其它代理提供器的后處理。在本例中,剩下要被調(diào)用的代理提供器只有CSC機(jī)構(gòu)221。下面參考圖10一般描述用于創(chuàng)建請(qǐng)求的CSC后處理處理器227操作。注意,在離線情況下,步驟706將分支到步驟712,只有CSC預(yù)處理處理器226已經(jīng)被調(diào)用,由此步驟802將調(diào)用CSC后處理227但將不存在其它要調(diào)用的代理提供器,如由步驟804檢測(cè)到的。圖9表示CSC預(yù)處理處理器226的操作,當(dāng)被MUP230調(diào)用以響應(yīng)創(chuàng)建請(qǐng)求時(shí)。在步驟900開始,CSC預(yù)處理找出或創(chuàng)建邏輯結(jié)構(gòu)400,如上面參考圖4一般描述的。步驟902表示與文件對(duì)象413相關(guān)聯(lián)的共享的結(jié)構(gòu)410-412(圖4)的折疊(collapsing)或創(chuàng)建。注意,如同其它服務(wù)器文件一樣,以正確的順序(同步的)掛起任何指向同文件的創(chuàng)建/打開請(qǐng)求,如由步驟904所表示的,例如,因此在不被送到服務(wù)器的這個(gè)打開上,后續(xù)的打開可被折疊。步驟906測(cè)試是否知道連接離線,在這個(gè)事件中只有CSC存儲(chǔ)器215可用,并且不需要涉及網(wǎng)絡(luò)資源,由此預(yù)處理處理器分支到步驟908以返回功能(或錯(cuò)誤)。否則,預(yù)處理處理器分支到步驟910以返回“要求更多處理”狀態(tài),使得將聯(lián)系涉及網(wǎng)絡(luò)的組件(DFS和重定向器),它將建立在線或離線狀態(tài),如上所述。應(yīng)該注意,在文件的創(chuàng)建/打開請(qǐng)求處理時(shí)為每個(gè)文件建立在線或離線。如果從其它創(chuàng)建請(qǐng)求中知道,則可在CSC預(yù)處理中確定離線連接,或者如果在CSC預(yù)處理期間不知道,則在CSC后處理中基于當(dāng)重定向器或多個(gè)重定向器被調(diào)用時(shí)所發(fā)生的確定離線連接,如下所述。例如,如果重定向器聲明路徑,創(chuàng)建結(jié)構(gòu)并不返回網(wǎng)絡(luò)錯(cuò)誤,則建立在線連接,否則建立連線連接。在一個(gè)實(shí)現(xiàn)中,在創(chuàng)建時(shí)確定的離線對(duì)在線狀態(tài)對(duì)于文件不會(huì)改變(直到被關(guān)閉和重新打開),不管在后續(xù)I/O請(qǐng)求期間的實(shí)際連接狀態(tài)。因此,即使在文件創(chuàng)建/打開時(shí)網(wǎng)絡(luò)是在線的,但在打開文件時(shí)變成離線,則MUP230繼續(xù)將用于那個(gè)路徑的請(qǐng)求傳遞至重定向器,如下所述。注意,因?yàn)榫彌_服務(wù)和/或客戶端高速緩存,在處理這樣的后續(xù)請(qǐng)求中可能沒(méi)有錯(cuò)誤,除非實(shí)際上需要重定向器與斷開的服務(wù)器通信。可供選擇,如果在文件創(chuàng)建/打開時(shí)網(wǎng)絡(luò)是離線的,但在打開文件時(shí)變成在線,客戶端預(yù)處理繼續(xù)處理請(qǐng)求,好象離線一樣,舉例來(lái)說(shuō)因?yàn)镸UP230還沒(méi)有涉及DFS且對(duì)于這個(gè)文件沒(méi)有MUP230已知的重定向器。圖10表示CSC后處理處理器227的操作,當(dāng)被MUP230調(diào)用以響應(yīng)創(chuàng)建請(qǐng)求時(shí),如果離線可在預(yù)處理調(diào)用之后立即進(jìn)行,或者如果不知道連接狀態(tài),在已經(jīng)調(diào)用重定向器(以及其它代理提供器或提供器)之后進(jìn)行。注意,盡管在圖10中未示出,如果在涉及(至少一個(gè))重定向器之后,由服務(wù)器對(duì)這個(gè)文件禁止客戶端高速緩存,CSC機(jī)構(gòu)221將通過(guò)后處理基本上移除自己,用于指向這個(gè)文件的進(jìn)一步調(diào)用。在步驟1000開始,CSC后處理處理器227創(chuàng)建用于客戶端高速緩存文件的句柄,例如,如由在CSC存儲(chǔ)器215中用于文件的本地文件系統(tǒng)返回的。如上所述,文件結(jié)構(gòu)中的一個(gè)包括服務(wù)器端打開上下文411(圖4),其中在步驟1002CSC后處理處理器227存儲(chǔ)這個(gè)句柄,即,CSC后處理處理器227存儲(chǔ)用于表示邏輯路徑而不是物理路徑的本地高速緩存的句柄。在步驟1004,為這個(gè)文件完成這些結(jié)構(gòu),例如,各種數(shù)據(jù)被放入合適的結(jié)構(gòu)。步驟1006表示釋放任何可能掛起的其它創(chuàng)建(在圖9的步驟904)。應(yīng)該注意,當(dāng)調(diào)用CSC后處理227時(shí),CSC后處理處理器227尋找表示離線情況的涉及重定向器的錯(cuò)誤。這處理預(yù)處理處理器226不知道連接是在線或離線的情況。為此,CSC后處理227可查看現(xiàn)在是否知道連接是在線的,諸如通過(guò)在數(shù)據(jù)結(jié)構(gòu)中尋找物理連接信息,和/或?qū)ふ襾?lái)自其它代理提供器或重定向器的完成狀態(tài)。如果存在連接錯(cuò)誤,例如,沒(méi)有重定向器聲明路徑,后處理處理器將這個(gè)文件的狀態(tài)轉(zhuǎn)移到離線,即,CSC后處理227將在數(shù)據(jù)結(jié)構(gòu)中的狀態(tài)轉(zhuǎn)移到離線,因此后續(xù)的請(qǐng)求將由CSC預(yù)處理處理器(在不涉及任何重定向器的情況下)完成,如下所述。換句話說(shuō),隨著轉(zhuǎn)移至離線的情況,后續(xù)的I/O請(qǐng)求由CSC代理提供器的預(yù)處理處理器226完成,(并且CSC將返回不同于要求更多處理的狀態(tài)),因此MUP230將不發(fā)送請(qǐng)求至重定向器(在任何事件中對(duì)于MUP230可能不知道這個(gè)重定向器)。步驟1008表示測(cè)試連接是否離線,這可能已經(jīng)預(yù)先知道,也可能預(yù)先不知道。如果離線,執(zhí)行步驟1010,它表示執(zhí)行任何可能必需的轉(zhuǎn)移至離線,諸如清除可能存在的任何基于物理連接的數(shù)據(jù)結(jié)構(gòu),等等。如果在線,執(zhí)行步驟1012,它表示用CSC機(jī)構(gòu)221的參考代替聲明路徑的重定向器覆寫FCB410的分派表(dispatchtable)416。更具體地說(shuō),如下面參考圖11-13所述,在只輕微地改變成RDBSS232與重定向器一起工作的方式的情況下,本發(fā)明的結(jié)構(gòu)已經(jīng)完成了協(xié)議無(wú)關(guān)的客戶端高速緩存。例如,RDBSS232和重定向器組件實(shí)際上象以前一樣作用,例如,重定向器聲明路徑,調(diào)用到RDBSS232中以查看所需的數(shù)據(jù)是否被高速緩存在本地存儲(chǔ)器中,等等。RDBSS232也基本上象以前一樣操作,例如,在被請(qǐng)求時(shí)創(chuàng)建結(jié)構(gòu),調(diào)用高速緩存管理器在合適時(shí)高速緩存寫或查看所請(qǐng)求的數(shù)據(jù)是否被高速緩存以滿足讀請(qǐng)求,并且如果是則與數(shù)據(jù)一起返回,等等。不過(guò),如下所述,當(dāng)RDBSS232需要文件數(shù)據(jù)諸如以滿足I/O請(qǐng)求而數(shù)據(jù)不在內(nèi)存儲(chǔ)高速緩存244中時(shí),高速緩存管理器240/存儲(chǔ)器管理器242生成讀IRP。然而,當(dāng)這個(gè)讀IRP到達(dá)RDBSS232時(shí),取代將控制傳遞至重定向器以獲得數(shù)據(jù),分派表入口的覆寫使RDBSS232調(diào)用CSC機(jī)構(gòu)221,因此給CSC機(jī)構(gòu)221一個(gè)機(jī)會(huì)使用CSC存儲(chǔ)器215滿足請(qǐng)求。如此,CSC機(jī)構(gòu)221透明地被包括在RDBSS232與聲明路徑的重定向之間的控制流中,與重定向器的網(wǎng)絡(luò)協(xié)議無(wú)關(guān)。圖11-13描述一種方式,其中CSC機(jī)構(gòu)221被透明地插入以截取讀請(qǐng)求,特別是當(dāng)允許客戶端高速緩存時(shí)。為了簡(jiǎn)單,圖11-13不表示其它操作狀態(tài),包括當(dāng)不允許讀高速緩存時(shí);代之以在下面描述這個(gè)條件,即,在從持久性存儲(chǔ)器215的任何讀之前,CSC機(jī)構(gòu)221需要知道文件的緩沖狀態(tài),因?yàn)槿绻彌_狀態(tài)是不允許讀高速緩存這樣的,(例如,在一個(gè)實(shí)現(xiàn)中緩沖狀態(tài)是與OPLOCK_LEVEL_NONE等價(jià)的),那么CSC機(jī)構(gòu)221不從CSC存儲(chǔ)器215返回?cái)?shù)據(jù),并且代之以讓讀請(qǐng)求轉(zhuǎn)到下面的提供器。在一個(gè)實(shí)現(xiàn)中緩沖狀態(tài)信息,可通過(guò)檢查在FCB上的FCB_STATE_READCACHING_ENABLED標(biāo)志獲得。在步驟1100,當(dāng)MUP230接收請(qǐng)求時(shí),例如來(lái)自I/O管理器206的IRP時(shí),整個(gè)讀請(qǐng)求處理開始。在步驟1102,MUP230調(diào)用CSC預(yù)處理處理器226,CSC預(yù)處理處理器226在通過(guò)步驟1104測(cè)試在線時(shí),產(chǎn)生在步驟1106返回的“要求更多處理狀態(tài)”。注意,如果系統(tǒng)是離線的,那么CSC預(yù)處理處理器226處理請(qǐng)求,在圖11中由步驟1104分支到步驟1112表示。對(duì)于在在線狀態(tài)中的讀請(qǐng)求,當(dāng)在步驟1106CSC預(yù)處理226返回要求更多處理狀態(tài)時(shí),在步驟1108MUP230調(diào)用DFS預(yù)處理以執(zhí)行其任何DFS預(yù)處理操作,諸如記錄文件I/O操作。在這個(gè)調(diào)用之后,在步驟1110MUP230調(diào)用先前聲明用于這個(gè)特定文件的路徑的重定向器(例如225)。不管CSC預(yù)處理(離線)或重定向器(在線)是否具有請(qǐng)求,在步驟1112調(diào)用RDBSS232,基本上確定所需要的數(shù)據(jù)是否在存儲(chǔ)器高速緩存244中,諸如由于先前的讀或?qū)懻?qǐng)求。當(dāng)數(shù)據(jù)沒(méi)有在本地存在于存儲(chǔ)器(高速緩存未中(miss)發(fā)生)中時(shí),如下所述,緩沖服務(wù)(例如,高速緩存管理器240/存儲(chǔ)器管理器242)將生成具有置位的分頁(yè)I/O標(biāo)志的第二IRP,主要為了讓另一個(gè)實(shí)體取得數(shù)據(jù)。因此,RDBSS232將需要檢查IRP是否由高速緩存未中條件生成的,例如,通過(guò)分頁(yè)I/O標(biāo)志設(shè)置等等,因?yàn)槿绻@樣,意味著RDBSS232不應(yīng)該另一次重復(fù)它先前所做的并且調(diào)入高速緩存管理器以查看同一數(shù)據(jù),因?yàn)樵跊](méi)有找到時(shí)這將再次發(fā)出IRP,(它實(shí)質(zhì)上將是一個(gè)無(wú)限的循環(huán))。代替的是,需要調(diào)出RDBSS232以從其它地方取回?cái)?shù)據(jù)。這個(gè)測(cè)試在步驟1114表示。注意,以不允許緩沖的I/O的方式可打開文件,在這個(gè)事件中將同樣不高速緩存數(shù)據(jù);步驟1114也能檢測(cè)這個(gè)條件并相應(yīng)地分支到步驟1118。為了簡(jiǎn)單,將參考緩沖的I/O描述本例,除在另有說(shuō)明的地方。在本例中,在這時(shí),IRP是由I/O管理器206生成的,并且因此步驟1114分支到步驟1116,調(diào)用高速緩存管理器240,它接著與存儲(chǔ)器管理器242一起在內(nèi)存儲(chǔ)(RAM)高速緩存244中查找所請(qǐng)求的數(shù)據(jù)。圖12的步驟1200表示高速緩存管理器240/存儲(chǔ)器管理器242作出關(guān)于是否存在高速緩存命中或高速緩存未中的判定,緩沖數(shù)據(jù)(步驟1202)并在高速緩存命中時(shí)返回成功(步驟1212)至RDBSS232,或者在高速緩存未中時(shí)生成第二IRP,如由步驟1204表示的。在第一IRP中的高速緩存命中時(shí),RDBSS232完成這個(gè)(第一)IRP,如在步驟1240所表示的并且如在下面參考圖13一般描述的。在高速緩存未中時(shí),在步驟1204生成第二IRP,且與第一IRP相似,在圖11的步驟1100,在MUP230處接收?;氐綀D11,如果和當(dāng)在步驟1100接收第二IRP時(shí),如上所述將執(zhí)行其它步驟(例如,1102-1112),最后到達(dá)步驟1114,再次與是否離線或在線無(wú)關(guān)。不過(guò)這次,步驟1114將檢測(cè)用于讀的這個(gè)(第二)IRP的分頁(yè)I/O標(biāo)志。依照本發(fā)明的一個(gè)方面和如上所述,當(dāng)在線時(shí),在用于文件創(chuàng)建/打開請(qǐng)求的CSC后處理中,CSC后處理處理器117已經(jīng)預(yù)先覆寫FCB410的分派表416中的重定向器指針(圖4),因此RDBSS232將在這個(gè)情況下調(diào)用CSC機(jī)制221,如通過(guò)步驟1118所表示的,代替重定向器225。這給CSC機(jī)構(gòu)221一個(gè)機(jī)會(huì)在CSC存儲(chǔ)器215中查看所請(qǐng)求的數(shù)據(jù),代替首先讓重定向器225向服務(wù)器請(qǐng)求數(shù)據(jù)。注意,這對(duì)于RDBSS232是透明的,RDBSS232簡(jiǎn)單地基于FCB的分派表416中的指針調(diào)用CSC機(jī)構(gòu)221。如此,從重定向器的觀點(diǎn)CSC機(jī)構(gòu)221基本上象對(duì)RDBSS232的擴(kuò)展作用,可是從RDBSS232的觀點(diǎn)它象適當(dāng)?shù)闹囟ㄏ蚱髯饔?,盡管對(duì)于兩者基本上是透明的。而且,注意在離線情況下,CSC預(yù)處理處理器226調(diào)用RDBSS232(沒(méi)有重定向器被涉及),以及因此在步驟1118RDBSS232將回調(diào)CSC預(yù)處理處理器226。因此,在或者在線或者離線的情況下,CSC機(jī)構(gòu)221的代碼得到調(diào)用。如此,在高速緩存未中時(shí),執(zhí)行圖12的步驟1220,它表示CSC機(jī)構(gòu)221為所請(qǐng)求的數(shù)據(jù)檢查其持久數(shù)據(jù)存儲(chǔ)器215。注意,除非文件是不足的(sparse),所請(qǐng)求的數(shù)據(jù)將在那里,以及因此步驟1220能包括有關(guān)文件是不足的測(cè)試,(可供選擇,如果是不足的,步驟1220能測(cè)試所請(qǐng)求的數(shù)據(jù)是否正好存在)。如果找到,從RDBSS232的觀點(diǎn)CSC機(jī)構(gòu)221象重定向器作用,如CSC機(jī)構(gòu)221將檢索RDBSS232不能從本地存儲(chǔ)器獲得的數(shù)據(jù),并在步驟1222在響應(yīng)調(diào)用時(shí)返回?cái)?shù)據(jù),例如,通過(guò)將數(shù)據(jù)填充到與IRP相關(guān)聯(lián)的緩沖器中并向RDBSS232提供成功狀態(tài),如由步驟1222所表示的。RDBSS232完成這個(gè)第二IRP,如由步驟1240所表示的和下面參考圖13所述的(在步驟1206它將返回到啟動(dòng)器(例如,高速緩存管理器240/存儲(chǔ)器管理器242),下面所述)。如果在步驟1220CSC機(jī)構(gòu)221不能訪問(wèn)所請(qǐng)求的數(shù)據(jù),那么如果在線,CSC機(jī)構(gòu)221可請(qǐng)求重定向器(例如,225)從服務(wù)器獲得數(shù)據(jù)。不過(guò),如果由步驟1224檢測(cè)到離線,則CSC機(jī)構(gòu)221將需要返回錯(cuò)誤(例如,指示網(wǎng)絡(luò)是斷開的)至RDBSS232。注意,這象任何重定向器如果先前在線但被斷開時(shí)將返回的錯(cuò)誤一樣;再次從RDBSS232的觀點(diǎn)CSC機(jī)構(gòu)221仿效重定向器。為此,在步驟1226CSC機(jī)構(gòu)221調(diào)用重定向器225,好象CSC機(jī)構(gòu)221是RDBSS232。然后,重定向器225與合適的服務(wù)器通信以試圖檢索所請(qǐng)求的數(shù)據(jù),如由步驟1228所表示的。如果讀是成功的,數(shù)據(jù)是由重定向器緩沖的(在與IRP相關(guān)聯(lián)的緩沖器中),重定向器返回成功至CSC機(jī)構(gòu)221,(好象CSC機(jī)構(gòu)221是RDBSS232),由此在步驟1232CSC機(jī)構(gòu)221高速緩存在CSC持久性存儲(chǔ)器215中的數(shù)據(jù),并在步驟1240向RDBSS232提供成功狀態(tài)以完成IRP。注意,如果讀是不成功的,沒(méi)有東西可用于CSC機(jī)構(gòu)221高速緩存,以及因此只由重定向器返回錯(cuò)誤狀態(tài)至CSC機(jī)構(gòu)221,并且由CSC機(jī)構(gòu)221至RDBSS232。隨著步驟1240,所完成的IRP(是成功還是不成功地完成的,以及是第一還是第二IRP)因此移動(dòng)退出驅(qū)動(dòng)器堆棧,它到達(dá)MUP230。不過(guò),IRP移動(dòng)所通過(guò)的堆棧順序是不同的,取決于連接是在線或離線。注意,在這時(shí)沒(méi)有實(shí)際測(cè)試離線對(duì)(versus)在線,但是步驟1300在概念上表示通過(guò)堆棧的兩個(gè)可能的路徑,IRP可取決于離線對(duì)在線利用這個(gè)堆棧。例如,在在線情況下,IRP將從RDBSS232移動(dòng)至重定向器至MUP230,如由步驟1302和1308所表示的。注意,重定向器簡(jiǎn)單地將IRP傳遞至MUP230。可供選擇,在離線情況下,MUP僅調(diào)用了CSC預(yù)處理226,它接著調(diào)用RDBSS232。因此,IRP被返回至CSC預(yù)處理226,如通過(guò)步驟1304所代表的。CSC預(yù)處理226接著返回狀態(tài)完成(或錯(cuò)誤)至MUP,如通過(guò)步驟1306和1308所表示的。如此,尤其,MUP230將不調(diào)用重定向器,如上面參考圖7所述。步驟1310表示MUP230測(cè)試狀態(tài),以便開始調(diào)用代理提供器的后處理,如上面參考圖7和8所述的。注意,當(dāng)狀態(tài)是成功(或錯(cuò)誤),這一般相應(yīng)于分支到圖8的圖7的步驟706,盡管在圖13的例子中,唯一的其它代理提供器是DFS代理提供器222。因此,當(dāng)在線時(shí),在步驟1312MUP230調(diào)用DFS代理提供器222的后處理處理器,以及然后在步驟1314調(diào)用CSC后處理處理器227,并且在步驟1316完成請(qǐng)求。否則,當(dāng)離線時(shí),MUP僅調(diào)用CSC后處理處理器227。應(yīng)該注意,在步驟1310MUP不需要實(shí)際地測(cè)試在線對(duì)離線,因?yàn)檫@個(gè)測(cè)試在后處理調(diào)用堆棧中可能是固有的,即,基本上相應(yīng)于圖8的步驟806,當(dāng)只有CSC后處理要回調(diào)時(shí)。MUP230接著完成請(qǐng)求,如由步驟1316所表示的。不過(guò),返回IRP的情況,取決于IRP是由I/O管理器206啟動(dòng)的第一IRP,或者是由高速緩存未中啟動(dòng)的第二IRP。如果IRP是第一IRP,它被送往至I/O管理器206,以及在響應(yīng)應(yīng)用程序的讀請(qǐng)求時(shí)從那里返回?cái)?shù)據(jù)。如果IRP是在步驟1204產(chǎn)生的第二IRP,接著這個(gè)第二IRP返回至高速緩存管理器240/存儲(chǔ)器管理器242,即,在步驟1206生成它的實(shí)體。步驟1206表示測(cè)試在第二IRP(高速緩存未中條件)中產(chǎn)生的讀請(qǐng)求是否成功。如果否,在響應(yīng)來(lái)自應(yīng)用程序的API調(diào)用時(shí),與第一IRP一起返回錯(cuò)誤(步驟1208)至I/O管理器206,如上面參考步驟1240和圖13所述。如果讀是成功的,則代之以執(zhí)行步驟1210,它表示高速緩存管理器240/存儲(chǔ)器管理器242用通過(guò)第二IRP讀請(qǐng)求緩沖的數(shù)據(jù)填充存儲(chǔ)器高速緩存244。然后將第一IRP與所填充的數(shù)據(jù)緩沖器一起返回至I/O管理器206(以從那里至應(yīng)用程序),如上面參考步驟1240和圖13所述。如此,RDBSS232和重定向器從它們的觀點(diǎn)象以前一樣操作,然而CSC機(jī)構(gòu)221透明地將自己插入到控制流中以在內(nèi)存儲(chǔ)高速緩存沒(méi)有數(shù)據(jù)時(shí)滿足讀請(qǐng)求。注意,當(dāng)內(nèi)存儲(chǔ)高速緩存244具有數(shù)據(jù)時(shí),(高速緩存命中),CSC機(jī)構(gòu)221不需要將數(shù)據(jù)添加到其存儲(chǔ)器215,因?yàn)樵诓襟E1210通過(guò)第二IRP數(shù)據(jù)首先進(jìn)入內(nèi)存儲(chǔ)高速緩存244,并且因此從CSC存儲(chǔ)器215獲得或已經(jīng)在如上所述的步驟1232由CSC機(jī)構(gòu)221(從重定向器)存儲(chǔ)。因此沒(méi)有必要再?gòu)?fù)制這個(gè)數(shù)據(jù)至CSC存儲(chǔ)器215。轉(zhuǎn)到考慮當(dāng)允許客戶端高速緩存時(shí)的寫請(qǐng)求,寫請(qǐng)求與讀請(qǐng)求非常相似,除了高速緩存管理器240/存儲(chǔ)器管理器2442最后改變?cè)诖鎯?chǔ)器高速緩存244中的數(shù)據(jù)。所改變的存儲(chǔ)器高速緩存244(例如,所考慮的改變或不在每頁(yè)的基礎(chǔ)上)讓其所改變(弄臟的)頁(yè)被刷新至CSC存儲(chǔ)器215和/或服務(wù)器,以下面所述的各種方式。注意,要為寫請(qǐng)求在內(nèi)存儲(chǔ)高速緩存244中改變數(shù)據(jù),要被改變的每個(gè)數(shù)據(jù)頁(yè)(即使只改變頁(yè)的部分)必須在內(nèi)存儲(chǔ)高速緩存244中。因此,在此所述的示例實(shí)現(xiàn),在用于寫請(qǐng)求的高速緩存未中時(shí),通過(guò)生成第二IRP(例如,就象在步驟1204用于讀請(qǐng)求那樣)所需要的數(shù)據(jù)首先被讀入高速緩存。通常,對(duì)于緩沖的I/O(它使用高速緩存240),圖11-13的流程圖和讀一樣應(yīng)用于寫,除了代替填充緩沖和返回它,填充要寫的數(shù)據(jù)的緩沖器修改在高速緩存240中適當(dāng)?shù)捻?yè),不是那些頁(yè)開始在高速緩存240中,就是必須通過(guò)上面所述用于讀第二IRP機(jī)構(gòu),將所需的頁(yè)發(fā)現(xiàn)缺少(fault)(讀)到高速緩存240。注意,對(duì)于非緩沖的I/O,RDBSS232知道不調(diào)用高速緩存管理器240(例如,基于在創(chuàng)建時(shí)放置在FCB中的信息),以及代之以將調(diào)用CSC機(jī)構(gòu)221,例如,當(dāng)在線時(shí)通過(guò)分派表或者當(dāng)離線時(shí)回到CSC預(yù)處理。因此,非緩沖的I/O寫基本上在第一IRP時(shí)通過(guò)圖11中的步驟1114分支到步驟1118,相似于第二分頁(yè)I/OIRP。當(dāng)在實(shí)際的寫請(qǐng)求中涉及CSC機(jī)構(gòu)221時(shí),(以及不只是在高速緩存未中時(shí)生成的讀求以填充內(nèi)存儲(chǔ)高速緩存244用于相應(yīng)的寫請(qǐng)求),例如,對(duì)于非緩沖的I/O或當(dāng)高速緩存被刷新時(shí),寫操作可由用作直寫高速緩存的CSC機(jī)構(gòu)221處理。通常,用直寫高速緩存,數(shù)據(jù)首先被試圖寫到服務(wù)器,并且如果成功,那么CSC機(jī)構(gòu)221將拷貝到其持久性存儲(chǔ)器215。例如,如果禁止寫高速緩存或文件是不足的,CSC機(jī)構(gòu)221將寫請(qǐng)求直接送到重定向器,并且如果請(qǐng)求由重定向器成功地完成,然后數(shù)據(jù)可由CSC機(jī)構(gòu)221保存,通過(guò)將拷貝寫到其持久性存儲(chǔ)器215。如果從重定向器返回錯(cuò)誤,CSC機(jī)構(gòu)221可嘗試轉(zhuǎn)移至離線,并且如果成功,完成請(qǐng)求離線。在一個(gè)選擇方案中,CSC機(jī)構(gòu)221能代替用作反寫高速緩存,通過(guò)高速緩存不首先到服務(wù)器的寫。注意,反寫高速緩存是由服務(wù)器控制的;換句話說(shuō),當(dāng)服務(wù)器準(zhǔn)予寫高速緩存時(shí),CSC機(jī)構(gòu)221將高速緩存寫,直到關(guān)閉文件句柄或服務(wù)器打破文件的oplock(機(jī)會(huì)鎖定)(它準(zhǔn)予反寫高速緩存特權(quán))。為此,如果允許寫高速緩存且文件不是不足的,則CSC機(jī)構(gòu)221將所請(qǐng)求的數(shù)據(jù)寫入CSC持久性存儲(chǔ)器215,并返回成功狀態(tài)(如果不成功則錯(cuò)誤)至調(diào)用者。注意,在執(zhí)行每個(gè)寫之前,CSC機(jī)構(gòu)221確定文件的緩沖狀態(tài)。如果緩沖狀態(tài)允許反寫高速緩存,CSC機(jī)構(gòu)221將數(shù)據(jù)寫到其持久高速緩存215,并且如上所述返回寫狀態(tài)(通常成功)。不過(guò),如果緩沖狀態(tài)是不應(yīng)該高速緩存寫這樣的,例如,服務(wù)器在相當(dāng)于OPLOCK_LEVEL_II或更低處設(shè)置oplock,那么CSC機(jī)構(gòu)221不高速緩存寫并且代之以讓寫請(qǐng)求轉(zhuǎn)到下面的重定向器,如上面一般所述。可通過(guò)檢查FCB的FCB_STATE_WRITECACHING_ENABLED標(biāo)志獲得緩沖狀態(tài)信息。當(dāng)關(guān)閉文件時(shí),關(guān)閉請(qǐng)求以上面所述的一般方式通過(guò)RDBSS232到達(dá)高速緩存管理器240。如果在高速緩存244中的數(shù)據(jù)需要被刷新,例如,在高速緩存244中至少有一個(gè)用于這個(gè)被關(guān)閉的文件的被弄臟的頁(yè),則高速緩存管理器240/存儲(chǔ)器生成至少一個(gè)分頁(yè)I/O寫請(qǐng)求(IRP或多個(gè)IRP),每個(gè)請(qǐng)求以如上所述相同的一般方式到達(dá)CSC機(jī)構(gòu)211,例如,當(dāng)RDBSS232接收每個(gè)寫IRP時(shí),通過(guò)來(lái)自RDBSS232的調(diào)用。CSC機(jī)構(gòu)211然后基于為這個(gè)文件接收的每個(gè)IRP寫到持久CS高速緩存215。要反寫至服務(wù)器,在一個(gè)實(shí)現(xiàn)中,當(dāng)關(guān)閉請(qǐng)求來(lái)到CSC機(jī)構(gòu)211,SC機(jī)構(gòu)211檢查是否有來(lái)自先前關(guān)于這個(gè)文件的寫請(qǐng)求的任何高速緩存的數(shù)據(jù)。如果是,且如果服務(wù)器是在線的,CSC機(jī)構(gòu)211將具有被修改的數(shù)據(jù)的部分(例如弄臟的頁(yè))送回服務(wù)器,通過(guò)將寫請(qǐng)求傳遞至適當(dāng)?shù)闹囟ㄏ蚱?。在如此將高速緩存的?shù)據(jù)推回服務(wù)器之后,CSC機(jī)構(gòu)211將關(guān)閉數(shù)據(jù)送回重定向器。一旦重定向器完成關(guān)閉請(qǐng)求,CSC預(yù)處理處理器226查詢以獲得來(lái)自服務(wù)器的時(shí)間信息,將它設(shè)置在高速緩存的文件,關(guān)閉高速緩存文件句柄,并且返回至MUP230。因此可高速緩存寫,直到關(guān)閉文件,在這時(shí)如此同步文件。注意,當(dāng)沒(méi)有文件的遠(yuǎn)程句柄時(shí),例如,與這個(gè)文件相關(guān)聯(lián)的連接是離線的,只在本地執(zhí)行關(guān)閉請(qǐng)求。稍后可執(zhí)行同步。如可容易地理解的,現(xiàn)有的應(yīng)用程序可不修改地與本發(fā)明一起工作,并象以前一樣發(fā)送文件I/O請(qǐng)求。然而,其它應(yīng)用程序可能知道客戶端高速緩存。這樣的知道CSC的應(yīng)用將改進(jìn)整個(gè)用戶技巧,諸如通過(guò)使用涉及CSC的API控制文件分組,確保某些文件總是在持久性存儲(chǔ)器215中(“釘住的”),控制同步頻率和訪問(wèn)其它CSC特征。而且,在一個(gè)實(shí)現(xiàn)中,CSC機(jī)構(gòu)221可能知道網(wǎng)絡(luò)連接狀態(tài)特性,諸如可用性,費(fèi)用和速率。如能夠理解的,可依照在給定時(shí)間的當(dāng)前網(wǎng)絡(luò)連接特性控制客戶端高速緩存、同步和網(wǎng)絡(luò)通信的其它方面。如從前面詳細(xì)的描述中能看到的,提供一種透明地提供協(xié)議無(wú)關(guān)的客戶端高速緩存的方法和系統(tǒng)。該方法和系統(tǒng)適合在現(xiàn)有的重定向器結(jié)構(gòu)內(nèi),當(dāng)離線和/或在線時(shí)以一致的方式提供對(duì)文件的訪問(wèn)。雖然本發(fā)明易受各種修改或選擇性結(jié)構(gòu)的影響,但在附圖中示出其某些例示的實(shí)施例并在上面詳細(xì)地描述。不過(guò),應(yīng)該理解,沒(méi)有將本發(fā)明限制在所揭示的特定形式或多個(gè)形式中的意圖,但相反,目的是要覆蓋落在本發(fā)明的精神和范圍內(nèi)的所有修改、選擇性結(jié)構(gòu)和等價(jià)方案。權(quán)利要求1.在計(jì)算環(huán)境中,一種方法包括接收由應(yīng)用程序啟動(dòng)的I/O請(qǐng)求,所述請(qǐng)求被指向在服務(wù)器上創(chuàng)建或打開網(wǎng)絡(luò)文件;調(diào)用客戶端高速緩存預(yù)處理,所述客戶端高速緩存預(yù)處理聲明在邏輯名字空間中所述文件的拷貝的路徑;調(diào)用重定向器,所述重定向器聲明在物理名字空間中所述網(wǎng)絡(luò)文件的拷貝的路徑,并提供用于與所述文件關(guān)聯(lián)的重定向器信息,使得緩沖服務(wù)在被所述重定向器調(diào)用時(shí)能回調(diào)所述重定向器;調(diào)用客戶端高速緩存后處理,所述客戶端高速緩存后處理將客戶端高速緩存機(jī)構(gòu)插入到所述聲明在物理名字空間中的路徑的重定向器和所述緩沖服務(wù)之間的通信流,包括修改與所述文件相關(guān)聯(lián)的所述重定向器信息,使得所述緩沖服務(wù)將在被所述重定向器調(diào)用時(shí)回調(diào)所述客戶端高速緩存機(jī)構(gòu)。2.如權(quán)利要求1所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理在邏輯名字空間中創(chuàng)建多個(gè)與所述文件的拷貝相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。3.如權(quán)利要求1所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理創(chuàng)建多個(gè)與代表所述網(wǎng)絡(luò)文件的文件對(duì)象相關(guān)聯(lián)的共享數(shù)據(jù)結(jié)構(gòu)。4.如權(quán)利要求1所述的方法,其特征在于,所述共享數(shù)據(jù)結(jié)構(gòu)之一包括文件控制塊,其中,與所述文件相關(guān)聯(lián)的所述重定向器信息包括指向所述客戶端高速緩存機(jī)構(gòu)的指針,所述指針被保存在所述文件控制塊中并且通過(guò)客戶端高速緩存后處理在所述文件控制塊中被修改。5.如權(quán)利要求1所述的方法,其特征在于,所述重定向器創(chuàng)建多個(gè)與所述在服務(wù)器上的網(wǎng)絡(luò)文件相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。6.如權(quán)利要求1所述的方法,還包括,在修改所述重定向器信息之前保持與所述文件相關(guān)聯(lián)的所述重定向器信息,使得所述客戶端高速緩存機(jī)構(gòu)能夠調(diào)用所述重定向器。7.如權(quán)利要求1所述的方法,還包括,接收指向從所述網(wǎng)絡(luò)文件讀數(shù)據(jù)的一I/O讀請(qǐng)求,向所述重定向器提供所述I/O讀請(qǐng)求,從所述重定向器調(diào)用所述緩沖服務(wù),所述緩沖服務(wù)包括高速緩存/存儲(chǔ)器管理組件,所述高速緩存/存儲(chǔ)器管理組件在存儲(chǔ)器高速緩存中查找所述請(qǐng)求的數(shù)據(jù),以及如果找到,所述緩沖服務(wù)完成所述讀請(qǐng)求,以及如果未找到,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。8.如權(quán)利要求7所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)構(gòu)獲得所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù)。9.如權(quán)利要求7所述的方法,其特征在于,所述客戶端高速緩存機(jī)構(gòu)在客戶端持久性存儲(chǔ)器中尋找所述請(qǐng)求的數(shù)據(jù),以及如果沒(méi)有找到,調(diào)用重定向器以向所述服務(wù)器請(qǐng)求所述請(qǐng)求的數(shù)據(jù)。10.如權(quán)利要求9所述的方法,其特征在于,重定向器找出所述數(shù)據(jù),以及其中,在響應(yīng)于所述緩沖服務(wù)對(duì)所述客戶端高速緩存機(jī)構(gòu)的調(diào)用時(shí),所述客戶端高速緩存返回?cái)?shù)據(jù)至所述緩沖服務(wù)。11.如權(quán)利要求7所述的方法,還包括,在向所述重定向器提供所述讀請(qǐng)求之前,調(diào)用所述預(yù)處理處理器。12.如權(quán)利要求7所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)包括表示所述緩沖服務(wù)應(yīng)該從所述存儲(chǔ)器高速緩存查找所述請(qǐng)求的數(shù)據(jù)的信息。13.如權(quán)利要求12所述的方法,其特征在于,所述緩沖服務(wù)的所述高速緩存/存儲(chǔ)器管理組件發(fā)出第二讀請(qǐng)求,以及其中,表示所述緩沖服務(wù)不應(yīng)該從所述存儲(chǔ)器高速緩存查找所述請(qǐng)求的數(shù)據(jù)的信息,包括與所述第二讀請(qǐng)求相關(guān)聯(lián)的標(biāo)志。14.如權(quán)利要求12所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟還包括,在所述緩沖服務(wù)處接收所述第二讀請(qǐng)求,從所述信息認(rèn)出所述緩沖服務(wù)不應(yīng)該從所述存儲(chǔ)器高速緩存查找所述請(qǐng)求的數(shù)據(jù),并且基于與由所述客戶端高速緩存后處理修改的所述文件相關(guān)聯(lián)的信息調(diào)用所述客戶端高速緩存機(jī)構(gòu)。15.如權(quán)利要求12所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)構(gòu)獲得所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù),所述緩沖服務(wù)完成所述第二請(qǐng)求。16.如權(quán)利要求15所述的方法,其特征在于,完成所述第二請(qǐng)求的步驟包括,將數(shù)據(jù)返回至所述高速緩存/存儲(chǔ)器管理組件,所述高速緩存/存儲(chǔ)器管理組件基于所述返回的數(shù)據(jù)完成所述第一請(qǐng)求。17.如權(quán)利要求16所述的方法,其特征在于,所述高速緩存/存儲(chǔ)器管理組件還將從所述第二請(qǐng)求獲得的所述請(qǐng)求的數(shù)據(jù)添加到所述存儲(chǔ)器高速緩存。18.如權(quán)利要求1所述的方法,還包括,接收指向?qū)?shù)據(jù)寫到所述網(wǎng)絡(luò)文件的一第I/O請(qǐng)求,將所述寫請(qǐng)求提供至所述重定向器,由所述重定向器調(diào)用所述緩沖服務(wù),所述緩沖服務(wù)包括高速緩存/存儲(chǔ)器管理組件,所述高速緩存/存儲(chǔ)器管理組件在存儲(chǔ)器高速緩存中查找所述請(qǐng)求的數(shù)據(jù),以及如果找到,所述緩沖服務(wù)完成所述寫請(qǐng)求,以及如果未找到,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。19.如權(quán)利要求18所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)構(gòu)獲得要被覆寫的所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù)。20.如權(quán)利要求18所述的方法,其特征在于,所述客戶端高速緩存機(jī)構(gòu)在客戶端持久性存儲(chǔ)器中尋找所述請(qǐng)求的數(shù)據(jù),以及如果未找到,調(diào)用重定向器以向所述服務(wù)器請(qǐng)求所述請(qǐng)求的數(shù)據(jù)。21.如權(quán)利要求20所述的方法,其特征在于,重定向器找出所述數(shù)據(jù),以及其中,在響應(yīng)所述緩沖服務(wù)對(duì)所述客戶端高速緩存機(jī)構(gòu)的調(diào)用時(shí),所述客戶端高速緩存將數(shù)據(jù)返回至所述緩沖服務(wù)。22.如權(quán)利要求18所述的方法,還包括,在將所述寫請(qǐng)求提供至所述重定向器之前,調(diào)用所述預(yù)處理處理器。23.如權(quán)利要求18所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟包括,發(fā)出相應(yīng)于讀請(qǐng)求的第二請(qǐng)求,所述第二請(qǐng)求包括表示所述緩沖服務(wù)不應(yīng)該從所述存儲(chǔ)器高速緩存尋找所述請(qǐng)求的數(shù)據(jù)。24.如權(quán)利要求23所述的方法,其特征在于,所述緩沖服務(wù)的所述高速緩存/存儲(chǔ)器管理組件發(fā)出所述第二請(qǐng)求,以及其中,表示所述緩沖服務(wù)不應(yīng)該從所述存儲(chǔ)器高速緩存尋找所述請(qǐng)求的數(shù)據(jù)的所述信息,包括與所述第二請(qǐng)求相關(guān)聯(lián)的標(biāo)志。25.如權(quán)利要求23所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)還包括,在所述緩沖服務(wù)處接收所述第二請(qǐng)求,從所述信息認(rèn)出所述緩沖服務(wù)不應(yīng)該從所述存儲(chǔ)器高速緩存尋找所述請(qǐng)求的數(shù)據(jù),以及基于與由所述客戶端高速緩存后處理修改的所述文件相關(guān)聯(lián)的信息,調(diào)用所述客戶端高速緩存機(jī)構(gòu)。26.如權(quán)利要求23所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)制獲得所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù),所述緩沖服務(wù)完成所述第二請(qǐng)求。27.如權(quán)利要求26所述的方法,其特征在于,完成所述第二請(qǐng)求的步驟包括,將數(shù)據(jù)返回至所述高速緩存/存儲(chǔ)器機(jī)構(gòu)組件,所述高速緩存/存儲(chǔ)器管理組件基于所述返回的數(shù)據(jù)完成所述第一請(qǐng)求。28.如權(quán)利要求27所述的方法,其特征在于,所述高速緩存/存儲(chǔ)器管理組件完成所述第一請(qǐng)求,包括將從所述第二請(qǐng)求獲得的請(qǐng)求的數(shù)據(jù)寫到所述存儲(chǔ)高速緩存,以及基于所述寫請(qǐng)求修改所述請(qǐng)求的數(shù)據(jù)。29.如權(quán)利要求18所述的方法,還包括,接收關(guān)閉請(qǐng)求。30.如權(quán)利要求29所述的方法,還包括,在響應(yīng)所述關(guān)閉請(qǐng)求時(shí),將相對(duì)于客戶端持久性存儲(chǔ)器中相應(yīng)的數(shù)據(jù)修改的所述存儲(chǔ)器中的任何數(shù)據(jù)刷新到所述客戶端高速緩存機(jī)構(gòu),用于寫到所述客戶端持久的存儲(chǔ)器。31.如權(quán)利要求30所述的方法,其特征在于,刷新任何數(shù)據(jù)的步驟包括,發(fā)出一寫請(qǐng)求。32.如權(quán)利要求29所述的方法,還包括,在所述客戶端持久性存儲(chǔ)器中關(guān)閉相應(yīng)于所述網(wǎng)絡(luò)文件的文件拷貝。33.如權(quán)利要求29所述的方法,還包括,在響應(yīng)于所述關(guān)閉請(qǐng)求時(shí),調(diào)用所述重定向器,以便將相對(duì)于在所述網(wǎng)絡(luò)文件中相應(yīng)的數(shù)據(jù)修改的在所述客戶端持久性存儲(chǔ)器中的任何數(shù)據(jù)刷新到所述服務(wù)器,用于寫到所述網(wǎng)絡(luò)文件。34.計(jì)算機(jī)可讀介質(zhì),具有用于執(zhí)行如權(quán)利要求1所述的方法的計(jì)算機(jī)可執(zhí)行指令。35.在計(jì)算機(jī)系統(tǒng)中,一種方法包括接收相應(yīng)于網(wǎng)絡(luò)文件的數(shù)據(jù)的I/O請(qǐng)求;調(diào)用客戶端高速緩存預(yù)處理,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)是否連接至網(wǎng)絡(luò),以及如果這樣,返回表示要求更多處理以滿足所述請(qǐng)求的一狀態(tài)值;以及評(píng)估所述狀態(tài)值,以及如果所述狀態(tài)值表示要求更多處理a)調(diào)用與包含所述網(wǎng)絡(luò)文件的服務(wù)器相關(guān)聯(lián)的重定向器;b)調(diào)入緩沖服務(wù)以確定在所述計(jì)算機(jī)系統(tǒng)上存儲(chǔ)器緩沖中能否處理所述請(qǐng)求;c)在所述緩沖服務(wù)處確定所述相應(yīng)的文件數(shù)據(jù)是否被緩沖在所述計(jì)算機(jī)系統(tǒng)上存儲(chǔ)器高速緩存中,以及1)如果被緩沖,在所述緩沖服務(wù)處完成所述I/O請(qǐng)求,以及2)如果未被緩沖,調(diào)用客戶端高速緩存機(jī)構(gòu),所述客戶端高速緩存機(jī)構(gòu)確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否存在于客戶端高速緩存存儲(chǔ)器中,以及如果這樣,從所述客戶端高速緩存存儲(chǔ)器獲得相應(yīng)于所述請(qǐng)求的數(shù)據(jù),以及如果否,請(qǐng)求所述重定向器通過(guò)所述服務(wù)器處理所述請(qǐng)求。36.如權(quán)利要求35所述的方法,其特征在于,接收I/O請(qǐng)求的步驟包括接收讀請(qǐng)求。37.如權(quán)利要求35所述的方法,其特征在于,接收I/O請(qǐng)求的步驟包括接收寫請(qǐng)求。38.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)連接到網(wǎng)絡(luò),其中,接收I/O請(qǐng)求的步驟包括,接收讀請(qǐng)求,其中,所述緩沖服務(wù)確定所述請(qǐng)求的數(shù)據(jù)被緩沖在所述計(jì)算機(jī)系統(tǒng)上所述存儲(chǔ)器高速緩存中以及完成所述讀請(qǐng)求,以及還包括,提供對(duì)所述數(shù)據(jù)的訪問(wèn)包括在響應(yīng)所述讀請(qǐng)求時(shí)用來(lái)自所述存儲(chǔ)器高速緩存的數(shù)據(jù)填充一緩沖器。39.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)連接至網(wǎng)絡(luò),其中,接收I/O請(qǐng)求包括接收讀請(qǐng)求,其中,所述緩沖服務(wù)確定所述請(qǐng)求的數(shù)據(jù)沒(méi)有被緩沖在所述計(jì)算機(jī)系統(tǒng)上所述存儲(chǔ)器高速緩存中以及調(diào)用客戶端高速緩存機(jī)構(gòu),以及其中,所述客戶端高速緩存從所述客戶端高速緩存存儲(chǔ)器獲得相應(yīng)于所述請(qǐng)求的所述數(shù)據(jù),以及將數(shù)據(jù)返回至所述緩沖服務(wù)。40.如權(quán)利要求35所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟包括生成一第二讀請(qǐng)求。41.如權(quán)利要求40所述的方法,其特征在于,所述第二讀請(qǐng)求是由所述緩沖服務(wù)的高速緩存/存儲(chǔ)器管理組件生成的,是由所述緩沖服務(wù)的一被重定向的緩沖子系統(tǒng)接收的,以及其中,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟還包括從所述緩沖子系統(tǒng)調(diào)用所述客戶端高速緩存機(jī)構(gòu)以處理所述第二請(qǐng)求。42.如權(quán)利要求41所述的方法,其特征在于,從所述重定向的緩沖子系統(tǒng)調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟包括,讀在與所述文件相關(guān)聯(lián)的分派表中的指針。43.如權(quán)利要求42所述的方法,其特征在于,所述客戶端高速緩存機(jī)構(gòu)包括代碼,當(dāng)執(zhí)行所述代碼時(shí)覆寫在所述分派表中的指針,以便調(diào)用所述客戶端高速緩存機(jī)構(gòu)。44.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)連接至網(wǎng)絡(luò),其中,所述接收I/O請(qǐng)求的步驟包括接收一寫請(qǐng)求,以及其中,所述緩沖服務(wù)確定所述請(qǐng)求的數(shù)據(jù)是否被緩沖在所述計(jì)算機(jī)系統(tǒng)上所述的存儲(chǔ)器高速緩存以及完成包括將數(shù)據(jù)寫到所述存儲(chǔ)器高速緩存的所述寫請(qǐng)求。45.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)連接至網(wǎng)絡(luò),其中,接收I/O請(qǐng)求的步驟包括接收寫請(qǐng)求,其中,所述緩沖服務(wù)確定所述請(qǐng)求的數(shù)據(jù)沒(méi)有被緩沖在所述計(jì)算機(jī)系統(tǒng)上所述存儲(chǔ)器高速緩存中以及調(diào)用所述客戶端高速緩存機(jī)構(gòu),其中,所述客戶端高速緩存機(jī)構(gòu)從所述客戶端高速緩存獲得相應(yīng)于所述請(qǐng)求的數(shù)據(jù)以及返回相應(yīng)的數(shù)據(jù),以及通過(guò)將來(lái)自所述客戶端高速緩存機(jī)構(gòu)和來(lái)自與所述寫請(qǐng)求相關(guān)聯(lián)的寫數(shù)據(jù)的數(shù)據(jù)寫到所述存儲(chǔ)器,緩沖服務(wù)完成所述請(qǐng)求。46.如權(quán)利要求35所述的方法,其特征在于,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟包括生成讀請(qǐng)求。47.如權(quán)利要求46所述的方法,其特征在于,所述讀請(qǐng)求是由所述緩沖服務(wù)的高速緩存/存儲(chǔ)器管理組件生成的,是由所述緩沖服務(wù)的一重定向的緩沖子系統(tǒng)接收的,以及其中,調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟還包括從所述緩沖子系統(tǒng)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。48.如權(quán)利要求47所述的方法,其特征在于,從所述重定向的緩沖子系統(tǒng)調(diào)用所述客戶端高速緩存機(jī)構(gòu)的步驟包括,讀在與所述文件相關(guān)聯(lián)的分派表中的指針。49.如權(quán)利要求49所述的方法,其特征在于,所述客戶端高速緩存機(jī)構(gòu)包括代碼,當(dāng)執(zhí)行所述代碼時(shí)覆寫在分派表中的所述指針,以便調(diào)用所述客戶端高速緩存機(jī)構(gòu)。50.如權(quán)利要求35所述的方法,還包括,覆寫在與所述文件相關(guān)聯(lián)的一數(shù)據(jù)結(jié)構(gòu)中的重定向器信息,使得緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)代替所述重定向器。51.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)不與網(wǎng)絡(luò)連接,以及還包括,確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否存在于存儲(chǔ)器高速緩存中,以及如果是,通過(guò)在所述存儲(chǔ)器高速緩存中的相應(yīng)數(shù)據(jù)處理所述請(qǐng)求。52.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)不連接至網(wǎng)絡(luò),以及還包括,確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)的數(shù)據(jù)是否存在于所述客戶端高速緩存持久性存儲(chǔ)器中,以及如果是,通過(guò)在所述客戶端高速緩存持久性存儲(chǔ)器中的相應(yīng)數(shù)據(jù)處理所述請(qǐng)求。53.如權(quán)利要求35所述的方法,其特征在于,所述客戶端高速緩存預(yù)處理確定所述計(jì)算機(jī)系統(tǒng)不連接至網(wǎng)絡(luò),以及還包括,確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否不存在于存儲(chǔ)器高速緩存中,以及如果否,調(diào)用所述客戶端高速緩存機(jī)構(gòu)以確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否存在于所述客戶端高速緩存持久性存儲(chǔ)器中。54.計(jì)算機(jī)可讀介質(zhì),具有用于執(zhí)行如權(quán)利要求35所述的方法的計(jì)算機(jī)可執(zhí)行指令。55.在計(jì)算環(huán)境中,一個(gè)系統(tǒng)包括,多個(gè)重定向器,每個(gè)重定向器相應(yīng)于相對(duì)于另外的重定向器的協(xié)議不同的協(xié)議;緩沖服務(wù),緩沖用于網(wǎng)絡(luò)文件的文件數(shù)據(jù),所述緩沖服務(wù)連接用于與所述重定向器通信;客戶端高速緩存機(jī)構(gòu),包括客戶端高速緩存預(yù)處理處理器和客戶端高速緩存后處理處理器;以及多重提供器,接收指向網(wǎng)絡(luò)文件的創(chuàng)建請(qǐng)求,以及在響應(yīng)中,調(diào)用客戶端高速緩存預(yù)處理處理器、至少所述多個(gè)重定向器之一和所述客戶端高速緩存后處理處理器。56.如權(quán)利要求55所述的系統(tǒng),其特征在于,所述預(yù)處理處理器將數(shù)據(jù)結(jié)構(gòu)與在邏輯名字空間中的所述網(wǎng)絡(luò)數(shù)據(jù)的拷貝相關(guān)聯(lián),以及其中,所述后處理處理器確定相關(guān)于所述網(wǎng)絡(luò)文件的網(wǎng)絡(luò)連接狀態(tài)是離線的,以及基于所述離線網(wǎng)絡(luò)連接狀態(tài)配置所述數(shù)據(jù)結(jié)構(gòu)。57.如權(quán)利要求56所述的系統(tǒng),其特征在于,所述多重提供器接收指向所述網(wǎng)絡(luò)文件的一后續(xù)的I/O請(qǐng)求以及調(diào)用所述預(yù)處理處理器,所述預(yù)處理處理器從所述數(shù)據(jù)結(jié)構(gòu)確定所述網(wǎng)絡(luò)連接狀態(tài)是離線的,以及嘗試在本地滿足后續(xù)的I/O請(qǐng)求。58.如權(quán)利要求57所述的系統(tǒng),其特征在于,所述預(yù)處理通過(guò)將后續(xù)的I/O請(qǐng)求提供至所述緩沖服務(wù),嘗試在本地滿足后續(xù)的I/O請(qǐng)求。59.如權(quán)利要求58所述的系統(tǒng),其特征在于,所述緩沖服務(wù)包括一重定向的緩沖子系統(tǒng)和管理存儲(chǔ)器高速緩存的重定向的高速緩存/存儲(chǔ)器管理器組件,以及所述高速緩存/存儲(chǔ)器管理器組件確定相應(yīng)于后續(xù)I/O請(qǐng)求的數(shù)據(jù)是否存在于存儲(chǔ)器高速緩存中,使得所述緩沖服務(wù)能完成后續(xù)的I/O請(qǐng)求。60.如權(quán)利要求58所述的系統(tǒng),所述緩沖服務(wù)不能直接滿足后續(xù)的I/O請(qǐng)求,以及調(diào)用所述客戶端高速緩存機(jī)構(gòu)以確定相應(yīng)于后續(xù)I/O請(qǐng)求的數(shù)據(jù)是否存在于與所述客戶端高速緩存機(jī)構(gòu)相關(guān)聯(lián)的離線存儲(chǔ)器中,使得所述客戶端高速緩存機(jī)構(gòu)能提供數(shù)據(jù)以完成后續(xù)的I/O請(qǐng)求。61.如權(quán)利要求60所述的系統(tǒng),其特征在于,所述緩沖服務(wù)包括一緩沖子系統(tǒng)和管理存儲(chǔ)器高速緩存的高速緩存/存儲(chǔ)器管理器組件,以及所述高速緩存/存儲(chǔ)器管理器組件確定相應(yīng)于后續(xù)I/O請(qǐng)求的數(shù)據(jù)是否存在于所述存儲(chǔ)器高速緩存中,以及通過(guò)發(fā)出分頁(yè)I/O讀調(diào)用所述客戶端高速緩存機(jī)構(gòu)。62.如權(quán)利要求60所述的系統(tǒng),所述重定向的子系統(tǒng)接收所述分頁(yè)I/O請(qǐng)求以及在響應(yīng)中,基于在與所述文件相關(guān)聯(lián)的分派表中的指針調(diào)用例程。63.如權(quán)利要求62所述的系統(tǒng),其特征在于,在分派表中的所述指針指向所述客戶端高速緩存機(jī)構(gòu)的例程。64.在計(jì)算環(huán)境中,一種方法包括接收來(lái)自應(yīng)用程序啟動(dòng)的、指向在服務(wù)器上創(chuàng)建或打開網(wǎng)絡(luò)文件的I/O請(qǐng)求;調(diào)用客戶端高速緩存預(yù)處理,所述客戶端高速緩存預(yù)處理聲明在邏輯名字空間中的所述文件的拷貝的路徑,以及創(chuàng)建或找到相應(yīng)于所述文件的拷貝的基于邏輯連接的數(shù)據(jù)結(jié)構(gòu)和基于文件的數(shù)據(jù)結(jié)構(gòu),以及a)如果所述客戶端高速緩存預(yù)處理知道連接是離線的,所述客戶端高速緩存預(yù)處理返回一狀態(tài),所述狀態(tài)使客戶端高速緩存后處理在不調(diào)用重定向器的情況下不被調(diào)用,所述客戶端高速緩存后處理準(zhǔn)備數(shù)據(jù)結(jié)構(gòu),使得在所述客戶端高速緩存預(yù)處理中離線地處理后續(xù)的I/O請(qǐng)求;或者b)如果不知道所述連接是離線的,1)返回一狀態(tài),所述狀態(tài)使至少一個(gè)重定向器被調(diào)用,2)調(diào)用至少一個(gè)重定向器,以及i)如果沒(méi)有重定向器聲明物理名字空間中所述網(wǎng)絡(luò)文件的拷貝的路徑,調(diào)用所述客戶端高速緩存后處理,所述客戶端高速緩存后處理準(zhǔn)備所述數(shù)據(jù)結(jié)構(gòu),使得在所述客戶端高速緩存預(yù)處理中離線地處理后續(xù)的I/O請(qǐng)求;以及ii)如果一相應(yīng)的重定向器聲明在物理名字空間中所述網(wǎng)絡(luò)文件的拷貝的路徑,所述重定向器提供用于關(guān)聯(lián)所述文件的重定向器信息,使得緩沖服務(wù)在被所述重定向器調(diào)用時(shí)回調(diào)所述重定向器,以及調(diào)用客戶端高速緩存后處理,所述客戶端高速緩存客戶端高速緩存后處理將客戶端高速緩存機(jī)構(gòu)插入到聲明所述的路徑的相應(yīng)重定向器與所述緩沖服務(wù)之間的通信流,包括修改與所述文件相關(guān)聯(lián)的所重定向器信息,使得所述緩沖服務(wù)在由所述重定向器調(diào)用時(shí)將回調(diào)所述客戶端高速緩存機(jī)構(gòu)。65.如權(quán)利要求64所述的方法,其特征在于,所述連接是在線的,以及還包括,接收指向所述網(wǎng)絡(luò)文件的數(shù)據(jù)的I/O請(qǐng)求,提供所述I/O請(qǐng)求至所述重定向器,從所述重定向器調(diào)用所述緩沖服務(wù),所述緩沖服務(wù)包括高速緩存/存儲(chǔ)器管理組件,所述高速緩存/存儲(chǔ)器管理組件在存儲(chǔ)器高速緩存中查找所述請(qǐng)求的數(shù)據(jù),以及如果找到,所述緩沖服務(wù)完成所述請(qǐng)求,以及如果未找到,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。66.如權(quán)利要求65所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)構(gòu)獲得所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù)。67.如權(quán)利要求65所述的方法,其特征在于,所述客戶端高速緩存機(jī)構(gòu)在客戶端持久性存儲(chǔ)器中尋找所述請(qǐng)求的數(shù)據(jù),以及如果未找到,調(diào)用所述重定向器向所述服務(wù)器請(qǐng)求所述請(qǐng)求的數(shù)據(jù)。68.如權(quán)利要求67所述的方法,其特征在于,重定向器找出所述數(shù)據(jù),以及其中,在響應(yīng)所述緩沖服務(wù)對(duì)所述客戶端高速緩存機(jī)構(gòu)的調(diào)用時(shí),所述客戶端高速緩存將所述數(shù)據(jù)返回至所述緩沖服務(wù)。69.如權(quán)利要求65所述的方法,其特征在于,通過(guò)由所述高速緩存/存儲(chǔ)器管理組件生成的第二請(qǐng)求,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。70.如權(quán)利要求69所述的方法,其特征在于,所述緩沖服務(wù)通過(guò)接收所述第二請(qǐng)求調(diào)用所述客戶端高速緩存機(jī)構(gòu),以及通過(guò)在與所述文件相關(guān)聯(lián)的分派表中的信息調(diào)用所述客戶端-機(jī)構(gòu)。71.如權(quán)利要求64所述的方法,其特征在于,所述連接是離線的,以及還包括,接收指向所述網(wǎng)絡(luò)文件的數(shù)據(jù)的I/O請(qǐng)求,將所述I/O請(qǐng)求提供至所述客戶端高速緩存預(yù)處理,從所述客戶端高速緩存預(yù)處理調(diào)用所述緩沖服務(wù),所述緩沖服務(wù)包括高速緩存/存儲(chǔ)器管理組件,所述高速緩存/存儲(chǔ)器管理組件在存儲(chǔ)器高速緩存中查找所述請(qǐng)求的數(shù)據(jù),以及如果找到,所述緩沖服務(wù)完成所述請(qǐng)求,以及如果未找到,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。72.如權(quán)利要求71所述的方法,還包括,通過(guò)所述客戶端高速緩存機(jī)構(gòu)獲得所述請(qǐng)求的數(shù)據(jù),以及從所述客戶端高速緩存機(jī)構(gòu)向所述緩沖服務(wù)提供所述請(qǐng)求的數(shù)據(jù)。73.如權(quán)利要求71所述的方法,其特征在于,通過(guò)由所述高速緩存/存儲(chǔ)器管理組件生成的第二請(qǐng)求,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。74.如權(quán)利要求73所述的方法,其特征在于,所述緩沖服務(wù)通過(guò)接收所述第二請(qǐng)求,調(diào)用所述客戶端高速緩存機(jī)構(gòu),以及通過(guò)在與所述文件相關(guān)聯(lián)的分派表中的信息調(diào)用所述客戶端-機(jī)構(gòu)。75.計(jì)算機(jī)可讀介質(zhì),具有用于執(zhí)行如權(quán)利要求64所述的方法的計(jì)算機(jī)可執(zhí)行的指令。76.在計(jì)算機(jī)系統(tǒng)中,一種方法包括接收相應(yīng)于網(wǎng)絡(luò)文件的數(shù)據(jù)的I/O請(qǐng)求;確定用于所述文件的網(wǎng)絡(luò)連接是否被建立為離線,以及a)如果用于所述文件的連接被建立為離線,調(diào)入緩沖服務(wù)以確定能否在所述計(jì)算機(jī)系統(tǒng)上存儲(chǔ)器緩沖中處理所述請(qǐng)求,以及如果被緩沖,在所述緩沖服務(wù)完成所述I/O請(qǐng)求,以及如果未被緩沖,調(diào)用客戶端高速緩存機(jī)構(gòu),所述客戶端高速緩存機(jī)構(gòu)確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否在客戶端高速緩存存儲(chǔ)器中,以及如果是,從所述客戶端高速緩存存儲(chǔ)器獲得相應(yīng)于所述請(qǐng)求,用于完成所述I/O請(qǐng)求;以及b)如果用于所述文件的連接沒(méi)有被建立為離線,調(diào)用與包含所述網(wǎng)絡(luò)文件的服務(wù)器相關(guān)聯(lián)的重定向器,所述重定向器調(diào)入緩沖服務(wù)以確定能否在所述計(jì)算機(jī)系統(tǒng)上存儲(chǔ)器緩沖器內(nèi)處理所述請(qǐng)求,在所述緩沖服務(wù)處確定相應(yīng)的文件數(shù)據(jù)是否被緩沖在所述計(jì)算機(jī)系統(tǒng)上存儲(chǔ)器高速緩存中,以及如果被緩沖,在所述緩沖服務(wù)處完成所述I/O請(qǐng)求,以及如果未被緩沖,調(diào)用客戶端高速緩存機(jī)構(gòu),所述客戶端高速緩存機(jī)構(gòu)確定相應(yīng)于所述請(qǐng)求的數(shù)據(jù)是否存在于客戶端高速緩存存儲(chǔ)器中,以如果是,從所述客戶端高速緩存存儲(chǔ)獲得相應(yīng)于所述請(qǐng)求的數(shù)據(jù),以及如果否,請(qǐng)求所述重定向器通過(guò)所述服務(wù)器處理所述請(qǐng)求。77.如權(quán)利要求76所述的方法,其特征在于,通過(guò)由所述緩沖服務(wù)的高速緩存/存儲(chǔ)器管理組件生成第二請(qǐng)求,所述緩沖服務(wù)調(diào)用所述客戶端高速緩存機(jī)構(gòu)。78.如權(quán)利要求77所述的方法,其特征在于,所述緩沖服務(wù)通過(guò)接收所述第二請(qǐng)求調(diào)用所述客戶端高速緩存機(jī)構(gòu),以及通過(guò)在與所述文件相關(guān)聯(lián)的分派表中的信息調(diào)用所述客戶端-機(jī)構(gòu)。79.如權(quán)利要求76所述的方法,其特征在于,確定用于所述文件的網(wǎng)絡(luò)連接是否被建立的步驟包括,評(píng)估與所述文件相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。80.計(jì)算機(jī)可讀介質(zhì),具有用于執(zhí)行如權(quán)利要求76所述的方法的計(jì)算機(jī)可執(zhí)行指令。全文摘要自動(dòng)而透明地處理網(wǎng)絡(luò)文件數(shù)據(jù)的客戶端高速緩存的系統(tǒng)和方法,它與任何遠(yuǎn)程文件處理協(xié)議無(wú)關(guān)。協(xié)議無(wú)關(guān)的客戶端高速緩存機(jī)是作為處理指向網(wǎng)絡(luò)的文件相關(guān)請(qǐng)求的一種服務(wù)插入的,并且嘗試通過(guò)客戶端高速緩存持久性存儲(chǔ)器來(lái)滿足該請(qǐng)求。經(jīng)由在文件創(chuàng)建請(qǐng)求時(shí)的預(yù)處理和后處理調(diào)用,高速緩存機(jī)創(chuàng)建文件相關(guān)的數(shù)據(jù)結(jié)構(gòu),并把信息覆寫在那些結(jié)構(gòu)中,緩沖服務(wù)使用那些結(jié)構(gòu)來(lái)回調(diào)網(wǎng)絡(luò)重定向器,由此客戶端高速緩存機(jī)將自己插入到網(wǎng)絡(luò)重定向器與緩沖服務(wù)之間的通信流中。一旦在通信流中,指向網(wǎng)絡(luò)的文件讀寫請(qǐng)求可在適當(dāng)?shù)臅r(shí)候透明地由客戶端高速緩存機(jī)構(gòu)處理,在需要滿足請(qǐng)求時(shí)還可指示重定向器與服務(wù)器通信。文檔編號(hào)H04L29/06GK1531303SQ20041002868公開日2004年9月22日申請(qǐng)日期2004年3月11日優(yōu)先權(quán)日2003年3月12日發(fā)明者凌云,N·福克,S·帕迪卡,R·庫(kù)馬,云凌,峽申請(qǐng)人:微軟公司