專利名稱::多協(xié)議統(tǒng)一文件鎖定的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及多協(xié)議文件服務(wù)器中的鎖定。在一個綜合計算機(jī)網(wǎng)絡(luò)中,需要多個客戶設(shè)備共享文件。一種公知的方法是提供一臺用以存儲文件的網(wǎng)絡(luò)文件服務(wù)器,它能夠接收和響應(yīng)來自那些客戶設(shè)備的文件服務(wù)器請求。利用一個為文件服務(wù)器和客戶設(shè)備所識別和堅持的文件服務(wù)器協(xié)議來產(chǎn)生這些文件服務(wù)器請求。由于文件被存儲在文件服務(wù)器中,故多個客戶設(shè)備具有了同時訪問文件的機(jī)會。現(xiàn)有技術(shù)中的一個問題是存在多種不同的文件服務(wù)器協(xié)議,對于文件操作來說,每一種協(xié)議都具有不同的語義關(guān)系。提供一臺能夠識別多種文件服務(wù)器協(xié)議的文件服務(wù)器是公知的,但這在很多文件服務(wù)器協(xié)議在文件鎖定和文件共享方面具有不同和不相兼容的語義關(guān)系的情況下是非常困難的。不兼容的鎖定語義關(guān)系在將一個單一的文件系統(tǒng)提供給多個不同的客戶設(shè)備方面存在困難。如果第一客戶設(shè)備遵從第一文件服務(wù)器協(xié)議(具有第一文件鎖定語義關(guān)系),則利用第二文件服務(wù)器協(xié)議(具有不同的文件鎖定語義關(guān)系)的第二客戶設(shè)備將會導(dǎo)致第一客戶設(shè)備的應(yīng)用嚴(yán)重失敗。每種文件服務(wù)器協(xié)議的正確操作依賴于其它所有文件服務(wù)器協(xié)議與其文件鎖定語義關(guān)系的兼容性。例如,一種通常用于利用了Unix操作系統(tǒng)(或其變型)的設(shè)備的協(xié)議息NFS(“網(wǎng)絡(luò)文件系統(tǒng)”)協(xié)議。通過實(shí)施“PCNFS”,利用Windows操作系統(tǒng)(或其變型)的設(shè)備也利用NFS協(xié)議。NFS協(xié)議被設(shè)計成無國籍的,從而不為相對于共享而被鎖定或以其它形式被限定于一臺客戶設(shè)備的文件提供任可語義關(guān)系。反之,一種通常用于利用了Windows操作系統(tǒng)的設(shè)備的協(xié)議是CIFS(“公用因特網(wǎng)文件系統(tǒng)”)協(xié)議。CIFS協(xié)議具有廣泛強(qiáng)制性的文件鎖定語義關(guān)系,這種語義關(guān)系是CIFS客戶設(shè)備所遵從和堅持的。在公知的系統(tǒng)中,NFS協(xié)議已被增加了一個附加的文件鎖定協(xié)議NLM(“網(wǎng)絡(luò)鎖定管理器”),但是NFS協(xié)議僅將NLM鎖定視為咨詢。在這種方法達(dá)到了向那些利用它的NFS應(yīng)用提供文件鎖定語義關(guān)系的目的的同時,并不會防止NFS應(yīng)用忽視那些文件鎖定語義關(guān)系,也不會允許客戶設(shè)備遵從多種不同文件服務(wù)器協(xié)議的文件鎖定語義關(guān)系。因此,最好提供一種用于在利用多種不同文件服務(wù)器協(xié)議的客戶設(shè)備中強(qiáng)制實(shí)施文件鎖定語義關(guān)系的方法和系統(tǒng)。本發(fā)明的一個實(shí)施例能夠?qū)崿F(xiàn)這種效果,其中一組統(tǒng)一的文件鎖定語義關(guān)系被裝入一個多協(xié)議文件服務(wù)器的內(nèi)核并強(qiáng)制利用了該服務(wù)器所識別的任一種不同文件服務(wù)器協(xié)議的客戶設(shè)備執(zhí)行。在最佳實(shí)施例中,為了在客戶訪問一個駐留在網(wǎng)絡(luò)文件服務(wù)器中的共享文件系統(tǒng)的過程中保護(hù)數(shù)據(jù)的完整性,執(zhí)行CIFS協(xié)議的特定文件鎖定語義關(guān)系以便允許NFS客戶設(shè)備與CIFS客戶設(shè)備互用。本發(fā)明提供了一種多種不同文件服務(wù)器協(xié)議的正確互用方法和系統(tǒng)。一個識別多種不同文件服務(wù)器協(xié)議的文件服務(wù)器提供了一種強(qiáng)制所有客戶設(shè)備和所有被識別的文件服務(wù)器協(xié)議實(shí)施的統(tǒng)一多協(xié)議鎖定管理系統(tǒng)(包括一種統(tǒng)一的文件鎖定語義關(guān)系)。在最佳實(shí)施例中,第一文件服務(wù)器協(xié)議(如CIFS)強(qiáng)制實(shí)施文件打開和文件鎖定語義關(guān)系和一種機(jī)會(opportunistic)文件鎖定技術(shù),而第二文件服務(wù)器協(xié)議(如NFS和附加協(xié)議NLM)則缺少文件打開語義關(guān)系而只為咨詢字節(jié)范圍(advisorybyte-range)提供了文件鎖定語義關(guān)系。統(tǒng)一文件鎖定語義關(guān)系使文件服務(wù)器在允許任何客戶設(shè)備讀或?qū)憯?shù)據(jù)或獲得一個新的文件鎖定或字節(jié)范圍鎖定之前確定是否與用于那些現(xiàn)有鎖定的始發(fā)客戶設(shè)備和始發(fā)文件服務(wù)器協(xié)議或文件鎖定協(xié)議無關(guān)的現(xiàn)有鎖定不一致。在CIFS客戶設(shè)備試圖讀或?qū)憯?shù)據(jù)的情況下,當(dāng)客戶設(shè)備打開文件時,文件服務(wù)器執(zhí)行該檢查。在CIFS客戶設(shè)備請求一個字節(jié)范圍鎖定的情況下,當(dāng)客戶設(shè)備請求字節(jié)范圍鎖定時,文件服務(wù)器執(zhí)行此檢查。對于NFS客戶設(shè)備,當(dāng)客戶設(shè)備實(shí)際發(fā)送讀或?qū)懻埱?,或?dāng)NFS客戶設(shè)備請求一個指示讀或?qū)懺撟止?jié)范圍的NLM字節(jié)范圍鎖定時,文件服務(wù)器執(zhí)行此檢查。實(shí)施文件鎖定語義關(guān)系保護(hù)文件數(shù)據(jù)免受NFS客戶設(shè)備引起的訛誤。在本發(fā)明的第二方面,一個CIFS客戶設(shè)備在打開一個文件的同時,能夠獲得一個“oplock”(機(jī)會鎖定),一個只允許一個客戶讀或?qū)懺撐募莫?dú)占文件鎖定。當(dāng)一個客戶設(shè)備為被機(jī)會鎖定的文件發(fā)送一個非CIFS(即NFS或NLM)協(xié)議請求時,文件服務(wù)器向CIFS客戶設(shè)備發(fā)送一個機(jī)會鎖定中斷消息,同時給CIFS客戶設(shè)備清洗任何被緩存的寫操作和可能關(guān)閉該文件的機(jī)會。允許NFS和NLM請求中斷機(jī)會鎖定確保了在保護(hù)文件數(shù)據(jù)完整性的同時保持文件數(shù)據(jù)對NFS客戶設(shè)備的可用性。在本發(fā)明的第三方面,一個CIFS客戶設(shè)備能夠獲得對文件系統(tǒng)中的一個目錄的“變更監(jiān)測”鎖定,以便于文件服務(wù)器通知何時對該目錄進(jìn)行變更(對一個目錄的變更包括在該目錄內(nèi)生成、刪除或重命名文件,或?qū)⑽募迫牖蛞瞥鲈撃夸?。文件服務(wù)器記錄下CIFS客戶設(shè)備和非CIFS客戶設(shè)備對目錄的變更,并將那些變更的“變更監(jiān)測”鎖定通知給那些CIFS客戶設(shè)備。圖1示出了包括一個多協(xié)議文件服務(wù)器的系統(tǒng)的第一方框圖。圖2示出了包括一個多協(xié)議文件服務(wù)器的系統(tǒng)的第二方框圖。圖3示出了操作一個多協(xié)議文件服務(wù)器的方法的流程圖。圖4示出了操作一個多協(xié)議文件服務(wù)器中的交叉協(xié)議鎖定管理器的方法的流程圖。圖5示出了操作一個多協(xié)議文件服務(wù)器中的機(jī)會鎖定管理器的方法的流程圖。圖6示出了操作一個多協(xié)議文件服務(wù)器中的變更通知管理器的方法的流程圖。在下面的說明中,將參照最佳的過程步驟和數(shù)據(jù)結(jié)構(gòu)來描述本發(fā)明的最佳實(shí)施例。所屬領(lǐng)域的技術(shù)人員在研讀了本申請之后將認(rèn)識到利用通用處理器或?qū)S锰幚砥骰蚱渌m用于這里所述的特定過程步驟和數(shù)據(jù)結(jié)構(gòu)的電路即可實(shí)施本發(fā)明的實(shí)施例,并且實(shí)施這里所述的過程步驟和數(shù)據(jù)結(jié)構(gòu)并不需要特殊的實(shí)驗或進(jìn)一步的發(fā)明。系統(tǒng)結(jié)構(gòu)(客戶/服務(wù)器)圖1示出了包括一個多協(xié)議文件服務(wù)器的系統(tǒng)的第一方框圖。一個系統(tǒng)100包括一個文件服務(wù)器110,一個計算機(jī)網(wǎng)絡(luò)120和多個客戶設(shè)備130。文件服務(wù)器110包括一個處理器111和海量存儲器112。海量存儲器112能夠存儲和檢索一組具有用于存儲和檢索的數(shù)據(jù)的文件113。處理器111能夠從網(wǎng)絡(luò)120接收一系列請求消息121,將那些消息作為命令和數(shù)據(jù)進(jìn)行語法分析,處理海量存儲器112上的文件113并根據(jù)那些命令和數(shù)據(jù)發(fā)送響應(yīng)消息。文件服務(wù)器110和客戶設(shè)備130與網(wǎng)絡(luò)120連接并利用在網(wǎng)絡(luò)120上傳送的消息121進(jìn)行通信。消息121包括客戶設(shè)備130向文件服務(wù)器110發(fā)送的文件系統(tǒng)請求和文件服務(wù)器110向客戶設(shè)備130發(fā)送的文件系統(tǒng)響應(yīng)。系統(tǒng)結(jié)構(gòu)(文件鎖定語義關(guān)系)圖2示出了包括一個多協(xié)議文件服務(wù)器的系統(tǒng)的第二方框圖。系統(tǒng)100包括一組客戶設(shè)備130,其中包括Unix客戶設(shè)備201、PCNFSWindows客戶設(shè)備202和CIFSWindows客戶設(shè)備203。Unix客戶設(shè)備201執(zhí)行Unix操作系統(tǒng)和利用Unix/NFS文件服務(wù)器協(xié)議。PCNFSWindows客戶設(shè)備202執(zhí)行Windows操作系統(tǒng)和利用PCNFS文件服務(wù)器協(xié)議。CIFSWindows客戶設(shè)備203執(zhí)行Windows操作系統(tǒng)和利用CIFS文件服務(wù)器協(xié)議。Unix客戶設(shè)備201和PCNFSWindows客戶設(shè)備202利用NFS文件服務(wù)器協(xié)議與文件服務(wù)器110進(jìn)行通信,在該文件服務(wù)器110中由一個NFS文件服務(wù)器協(xié)議分析程序211來確認(rèn)該協(xié)議。CIFSWindows客戶設(shè)備203利用CIFS文件服務(wù)器協(xié)議與文件服務(wù)器110進(jìn)行通言,在該文件服務(wù)器110中由一個CIFS文件服務(wù)器協(xié)議分析程序212來確認(rèn)該協(xié)議。處理器111對利用了NFS文件服務(wù)器協(xié)議或CIFS文件服務(wù)器協(xié)議的消息進(jìn)行語法分析并由一個機(jī)會鎖定管理器220來進(jìn)行處理。機(jī)會鎖定管理器220訪問具有CIFS機(jī)會鎖定的文件113。以后將參照圖3和圖5詳細(xì)描述其操作。機(jī)會鎖定管理器元件220與一個交叉協(xié)議鎖定管理器230連接。交叉協(xié)議鎖定管理器230管理著文件服務(wù)器110的文件鎖定語義關(guān)系。它處理和記錄與下述四種類型的鎖定相關(guān)的信息——CIFS字節(jié)范圍鎖定241、CIFS文件鎖定242、PCNFS(NLM)文件鎖定243和NLM字節(jié)范圍鎖定244。以后將參照圖3和圖4詳細(xì)描述其操作。不同的文件鎖定語義關(guān)系如圖2所示,能夠從Unix客戶設(shè)備201、PCNFSWindows客戶設(shè)備202或CIFSWindows客戶設(shè)備203接收文件服務(wù)器請求消息140,并能夠使用NFS文件服務(wù)器協(xié)議或CIFS文件服務(wù)器協(xié)議。除了使用不同的文件服務(wù)器協(xié)議之外,每種類型的客戶設(shè)備130還具有由文件服務(wù)器110提供的不同文件鎖定模型。特別是,NFS文件服務(wù)器協(xié)議用于執(zhí)行不具有任何形式的文件打開或文件關(guān)閉語義關(guān)系的文件系統(tǒng)操作。這些NFS文件系統(tǒng)操作包括對文件數(shù)據(jù)或文件系統(tǒng)處理的讀或?qū)懖僮?即,對目錄的讀和寫操作)。文件系統(tǒng)處理包括創(chuàng)建文件或目錄、重命名文件或目錄、將文件從一個目錄移到另一個目錄或從文件系統(tǒng)中取消(刪除)文件或目錄。NLM附加協(xié)議用于獲得和解除文件的字節(jié)范圍鎖定。這些字節(jié)范圍鎖定可被“讀鎖定”,它抑制其它隨從(compliant)應(yīng)用程序(例如在其它客戶設(shè)備130中)向特定的字節(jié)范圍進(jìn)行寫操作。這些字節(jié)范圍鎖定也可以被“寫鎖定”,它抑制其它隨從應(yīng)用程序從或向特定的字節(jié)范圍進(jìn)行讀或?qū)懖僮?。CIFS文件服務(wù)器協(xié)議用于在試圖對那些文件113中的數(shù)據(jù)進(jìn)行任可讀或?qū)懖僮髦?,?zhí)行文件打開操作并獲得關(guān)于將被打開的文件113的文件鎖定。在打開文件時,一個CIFS客戶設(shè)備130能夠規(guī)定所需的訪問模式(只讀、只寫或讀-寫)以及用以對試圖打開同一文件113的其它客戶設(shè)備130產(chǎn)生影響的所需拒絕模式(不拒絕、讀拒絕、寫拒絕或全部拒絕)。然后,CIFS文件系統(tǒng)操作只需要對獲得的文件打開的訪問模式進(jìn)行檢查。一個CIFS客戶設(shè)備130還能夠規(guī)定對一個由客戶設(shè)備130打開的文件中的字節(jié)范圍的字節(jié)范圍鎖定。字節(jié)范圍鎖定或者是一個也被稱為“寫鎖定”的獨(dú)占鎖定(具有讀-寫訪問模式和全部拒絕拒絕模式),或者是一個也被稱為“讀鎖定”的非獨(dú)占鎖定(具有只讀訪問模式和寫拒絕拒絕模式)。文件服務(wù)器110確定組合了訪問模式和拒絕模式的鎖定模式。如這里所使用的,短語“鎖定模式”是指一種由文件服務(wù)器110產(chǎn)生的統(tǒng)一鎖定模式,它組合了一種訪問模式和一種拒絕模式。在打開文件時,CIFS客戶設(shè)備130還能夠獲得一個oplock(機(jī)會鎖定),它使打開文件的CIFS客戶設(shè)備130具有對該文件的獨(dú)占訪問,只要另一個客戶設(shè)備130沒有試圖使用該文件。從客戶設(shè)備130的需要上說,oplock提供了對該文件更高程度的獨(dú)占性,并且通過另一個客戶設(shè)備130的訪問,能夠中斷oplock的獨(dú)占。文件服務(wù)器110為利用NFS(具有或不具有附加協(xié)議NLM)或CIFS而在客戶設(shè)備130之間進(jìn)行正確的互用作準(zhǔn)備。為了提供正確的互用,文件服務(wù)器110提供了一種統(tǒng)一的文件鎖定語義關(guān)系。在最佳實(shí)施例中,統(tǒng)一的文件鎖定語義關(guān)系具有下述效果文件服務(wù)器110防止Unix客戶設(shè)備201執(zhí)行將覆蓋已被打開和正被具有寫拒絕或全部拒絕的拒絕模式的CIFS客戶使用的文件113中的數(shù)據(jù)的NFS寫操作。文件服務(wù)器110防止Unix客戶設(shè)備201和PCNFSWindows客戶設(shè)備02執(zhí)行將導(dǎo)致取消或重命名一個已被打開并正被一個CIFS客戶使用的文件113的NFS文件系統(tǒng)操作。當(dāng)Unix客戶設(shè)備201或PCNFSWindows客戶設(shè)備202產(chǎn)生一個對被一個CIFS客戶機(jī)會鎖定的文件113進(jìn)行取消、重命名或?qū)憯?shù)據(jù)的NFS請求時,文件服務(wù)器110將對文件113實(shí)行CIFS機(jī)會鎖定語義關(guān)系。文件服務(wù)器110向保持機(jī)會鎖定的客戶設(shè)備130發(fā)送一個機(jī)會鎖定中斷消息140,并從該客戶設(shè)備130接收一個響應(yīng)信息。如果該客戶設(shè)備130關(guān)閉了該文件113,則NFS請求能夠繼續(xù)并且得到文件服務(wù)器110的允許。當(dāng)Unix客戶設(shè)備201或PCNFSWindows客戶設(shè)備202產(chǎn)生一個從正被一個CIFS客戶機(jī)會鎖定的文件113中讀數(shù)據(jù)的NFS請求時,文件服務(wù)器110將對文件113實(shí)行CIFS機(jī)會鎖定語義關(guān)系。文件服務(wù)器110向保持機(jī)會鎖定的客戶設(shè)備130發(fā)送一個機(jī)會鎖定中斷消息140,并從該客戶設(shè)備130接收一個響應(yīng)信息。如果該客戶設(shè)備130關(guān)閉了該文件113或?qū)⑵鋵懢彌_區(qū)刷新成文件服務(wù)器110,則NFS請求能夠繼續(xù)并且得到文件服務(wù)器110的允許。文件服務(wù)器110測試來自CIFSWindows客戶設(shè)備203的文件打開請求與來自PCNFSWindows客戶設(shè)備202的NLM文件鎖定請求關(guān)于它們特定的鎖定模式的相互兼容性。這里用短語NLM“文件鎖定”取代公知短語NLM“共享鎖定”,該短語在下述文獻(xiàn)中予以描述“X/OpenCAESpecificationProtocolsforX/OpenInterworkingXNFS,Issue4(X/OpenDocumentNumberC218)”,這里將此文獻(xiàn)作為參考文獻(xiàn)。文件服務(wù)器110通過組合所請求的訪問模式和拒絕模式來確定特定的鎖定模式。為了提供這些效果,文件服務(wù)器110執(zhí)行下述鎖定管理操作在接收一個CIFS文件打開請求消息140的同時,文件服務(wù)器110測試與現(xiàn)有的CIFS和NLM文件鎖定沖突以及與現(xiàn)有的NLM字節(jié)范圍鎖定沖突的文件打開請求。為了達(dá)到與新請求的文件鎖定相比較的目的,文件服務(wù)器110將現(xiàn)有的NLM字節(jié)范圍鎖定視為具有非拒絕拒絕模式且具有只讀訪問模式的非獨(dú)占鎖定和讀-寫訪問模式的獨(dú)占鎖定。在接收一個CIFS字節(jié)范圍鎖定請求消息140的同時,文件服務(wù)器110測試與現(xiàn)有的CIFS和NLM字節(jié)范圍鎖定沖突的字節(jié)范圍鎖定請求。在接收一個NLM字節(jié)范圍鎖定請求消息140的同時,文件服務(wù)器110測試與現(xiàn)有的CIFS和NLM字節(jié)范圍鎖定沖突以及與現(xiàn)有的CIFS文件鎖定沖突的字節(jié)范圍鎖定請求。在從一個PCNFS客戶設(shè)備130接收一個NLM文件鎖定請求消息140(用于模擬一個文件打開請求消息140)的同時,文件服務(wù)器110測試與現(xiàn)有的CIFS和NLM文件鎖定沖突以及與現(xiàn)有的NLM字節(jié)范圍鎖定沖突的NLM文件鎖定請求。為了達(dá)到與新請求的NLM文件鎖定相比較的目的,文件服務(wù)器110將現(xiàn)有的NLM字節(jié)范圍鎖定視為具有非拒絕拒絕模式且具有只讀訪問模式的非獨(dú)占鎖定和讀-寫訪問模式的獨(dú)占鎖定。操作方法(多協(xié)議文件服務(wù)器)圖3示出了操作一個多協(xié)議文件服務(wù)器的方法流程圖。操作一個多協(xié)議文件服務(wù)器的方法300包括一組由文件服務(wù)器110協(xié)同至少一個客戶設(shè)備130執(zhí)行的過程步驟和流點(diǎn)(flowpoint)。在流點(diǎn)310,文件服務(wù)器110準(zhǔn)備接收文件服務(wù)器請求消息140。在步驟311,文件服務(wù)器110接收并分析文件服務(wù)器請求消息140。文件服務(wù)器110確定文件服務(wù)器請求消息140利用了NFS文件服務(wù)器協(xié)議、NLM文件鎖定協(xié)議還是CIFS文件服務(wù)器協(xié)議。如果該文件服務(wù)器請求消息140使用了NFS文件服務(wù)器協(xié)議或NLM文件鎖定協(xié)議,則方法300繼續(xù)到步驟312。如果該文件服務(wù)器請求消息140使用了CIFS文件服務(wù)器協(xié)議,則方法300繼續(xù)到步驟313。在步驟312,文件服務(wù)器110確定請求消息140是否包括一個用以執(zhí)行一個文件系統(tǒng)操作(如讀或?qū)憯?shù)據(jù),或修改目錄)的NFS文件服務(wù)器請求??商鎿Q地,文件服務(wù)器110確定請求消息140是否包括一個用以獲得一個NLM字節(jié)范圍鎖定的NLM文件鎖定請求。在任一種情況下,方法300繼續(xù)到流點(diǎn)320。在步驟313,文件服務(wù)器110確定文件服務(wù)器請求消息140是用于執(zhí)行一個CIFS讀或?qū)懖僮饕垣@得一個CIFS字節(jié)范圍鎖定,還是用于執(zhí)行一個CIFS文件打開操作。在文件服務(wù)器請求消息140是用于獲得一個CIFS字節(jié)范圍鎖定或用于執(zhí)行一個CIFS文件打開操作的情況下,方法300繼續(xù)到流點(diǎn)320。如果文件服務(wù)器請求消息140用于執(zhí)行一個CIFS讀或?qū)懖僮?,則方法繼續(xù)到流點(diǎn)330。土改該文件服務(wù)器請求消息140是一個CIFS“變更通知”請求,則方法繼續(xù)到流點(diǎn)350(將參照圖6對變更通知請求進(jìn)行進(jìn)一步的說明)。在流點(diǎn)320,文件服務(wù)器110準(zhǔn)備將文件服務(wù)器請求消息140所請求的操作與文件113的文件鎖定狀態(tài)進(jìn)行比較。文件113的文件鎖定狀態(tài)包括文件113的現(xiàn)有文件鎖定和字節(jié)范圍鎖定。在步驟321,文件服務(wù)器110確定文件113是文件服務(wù)器請求消息140的主題并確定該文件113是否被機(jī)會鎖定。如果文件113被機(jī)會鎖定,則方法300繼續(xù)到步驟322。如果文件113沒有被機(jī)會鎖定,則方法300繼續(xù)到步驟323。在步驟322,文件服務(wù)器110中斷機(jī)會鎖定,如這里所述。以后將參照圖5進(jìn)一步描述步驟322的執(zhí)行。中斷機(jī)會鎖定能夠?qū)е挛募?13的文件鎖定狀態(tài)發(fā)生變化。在步驟323,文件服務(wù)器110利用一種統(tǒng)一的文件鎖定語義關(guān)系,將所請求的操作與文件113的文件鎖定狀態(tài)進(jìn)行比較。在這一步驟中,所請求的操作可能是一個NFS讀或?qū)懖僮?、一個NFS或CIFS目錄修改操作、一次獲得NLM文件鎖定或字節(jié)范圍鎖定的嘗試或一個CIFS文件打開操作。以后將參照圖4進(jìn)一步描述步驟323的執(zhí)行和統(tǒng)一的文件鎖定語義關(guān)系。如果比較結(jié)果顯示所請求的操作是允許的,則方法300繼續(xù)到步驟324。如果所請求的操作是不允許的,則方法300繼續(xù)到步驟325。在步驟324,文件服務(wù)器110執(zhí)行所請求的操作。方法300繼續(xù)到流點(diǎn)340。在步驟325,文件服務(wù)器110拒絕執(zhí)行所請求的操作并向客戶設(shè)備130響應(yīng)一個錯誤消息。方法300繼續(xù)到流點(diǎn)340。在流點(diǎn)330,文件服務(wù)器110準(zhǔn)備將文件服務(wù)器請求消息140所請求的操作與文件113的文件鎖定狀態(tài)進(jìn)行比較。在流點(diǎn)350,文件服務(wù)器110準(zhǔn)備執(zhí)行變更通知操作,如這里所述。在步驟351,第一CIFS客戶設(shè)備130為一個目錄請求一個文件鎖定(利用一個文件系統(tǒng)請求消息140來打開該目錄),并將該目錄的文件鎖定轉(zhuǎn)變?yōu)閷υ撃夸浀淖兏O(jiān)視鎖定。以后將參照圖6進(jìn)一步描述此步驟351的執(zhí)行。在流點(diǎn)340,文件服務(wù)器110已對文件服務(wù)器請求消息140作出響應(yīng),關(guān)于該文件服務(wù)器請求消息140的方法300被完成。操作方法(交叉協(xié)議鎖定管理器)圖4示出了操作一個多協(xié)議文件服務(wù)器中的交叉協(xié)議鎖定管理器的方法流程圖。操作一個多協(xié)議文件服務(wù)器中的交叉協(xié)議鎖定管理器的方法400包括一組后述的由文件服務(wù)器110協(xié)同至少一個客戶設(shè)備130執(zhí)行的過程步驟和流點(diǎn)。在流點(diǎn)410,文件服務(wù)器110準(zhǔn)備將在文件服務(wù)器請求消息140中所請求的操作與文件113的文件鎖定狀態(tài)相比較。文件服務(wù)器110利用一種統(tǒng)一的文件鎖定語義關(guān)系,以便以同樣的方式模擬來自任一種文件服務(wù)器協(xié)議的任意請求操作的文件鎖定。該統(tǒng)一文件鎖定語義關(guān)系標(biāo)識了一個統(tǒng)一的文件鎖定集,每種文件鎖定包括一種用于請求客戶設(shè)備130的訪問模式和一種用于所有其它客戶設(shè)備130的拒絕模式。在最佳實(shí)施例中,訪問模式可以是下列三種可能之——只讀、只寫或讀-寫。同樣地,在最佳實(shí)施例中,拒絕模式可以是下列四種可能之一——非拒絕、讀拒絕、寫拒絕或全部拒絕。在第一客戶設(shè)備130獲得了對一個文件113的文件鎖定之后,如果由將被第二客戶設(shè)備130請求的文件服務(wù)器110所確定的鎖定模式與文件113的文件鎖定狀態(tài)一致,則第二客戶設(shè)備130只能夠訪問該文件113。例如,第一客戶設(shè)備130獲得對一個文件113的拒絕模式為寫拒絕的文件鎖定。第二NFS客戶設(shè)備130能夠試圖對文件113進(jìn)行寫操作或第二CIFS客戶設(shè)備130能夠以一種包括寫訪問的訪問模式來試圖打開文件113。在任一種情況下(如果對該文件113的文件鎖定不是一個機(jī)會鎖定,如后所述),文件服務(wù)器110將拒絕第二客戶設(shè)備130的請求。如所述,文件服務(wù)器110根據(jù)第二客戶設(shè)備130所使用的文件服務(wù)器協(xié)議,在不同的時候執(zhí)行文件鎖定與第二客戶設(shè)備130所請求的訪問的比較如果第二客戶設(shè)備130使用CIFS文件服務(wù)器協(xié)議來打開文件113,則文件服務(wù)器110在打開文件的時候檢查文件113的文件鎖定狀態(tài)。如果第二客戶設(shè)備130使用NFS文件服務(wù)器協(xié)議來對文件113進(jìn)行讀或?qū)?,則文件服務(wù)器110在進(jìn)行實(shí)際文件系統(tǒng)操作時檢查文件113的文件鎖定狀態(tài)。這也適用于具有從第一客戶設(shè)備130上消除該文件的效果的文件系統(tǒng)操作,例如移動、消除或重命名文件113的操作。如果第二客戶設(shè)備130使用CIFS文件服務(wù)器協(xié)議來請求一個字節(jié)范圍鎖定,則文件服務(wù)器110在請求字節(jié)范圍鎖定的時候檢查與其它CIFS或NLM字節(jié)范圍鎖定沖突的文件113的文件鎖定狀態(tài)。文件服務(wù)器110在請求字節(jié)范圍鎖定的時候不檢查與其它CIFS文件鎖定的沖突,因為在打開文件的時候進(jìn)行了檢查。如果第二客戶設(shè)備130使用NLM協(xié)議來請求一個字節(jié)范圍鎖定,則文件服務(wù)器110在請求字節(jié)范圍鎖定的時候,檢查與現(xiàn)有的CIFS或NLM字節(jié)范圍鎖定沖突以及與現(xiàn)有的CIFS文件鎖定沖突的文件113的文件鎖定狀態(tài)。在步驟421,文件服務(wù)器110確定是否已經(jīng)存在一種以上與文件113相關(guān)的文件鎖定。如果是,則方法400繼續(xù)到步驟422。如果不是,則方法繼續(xù)到步驟411。在步驟422,文件服務(wù)器110將已經(jīng)與文件113相關(guān)的文件鎖定組合到一個與文件113相關(guān)的等效文件鎖定中。為了執(zhí)行此步驟422,文件服務(wù)器110在表1中交叉檢索一個包括每種先存文件鎖定的累積文件鎖定,直到所有的先存文件鎖定已被累積在一起。表1示出了一個具有統(tǒng)一文件鎖定語義關(guān)系的多協(xié)議文件服務(wù)器中的鎖定變換表。</tables>表1鎖定變換矩陣A-訪問模式(R=讀,W=寫,RW=讀-寫,Any=R或W或RW中的任一種)D-拒絕模式(DN=非拒絕,DR=讀拒絕,DW=寫拒絕,DA=全部拒絕)在步驟411,文件服務(wù)器110確定文件服務(wù)器請求消息140中所請求的操作的性質(zhì)。如果所請求的操作是一個CIFS文件打開操作,則方法400繼續(xù)到步驟423。如果所請求的操作是一個NFS文件服務(wù)器操作,則方法400繼續(xù)到步驟431。如果所請求的操作是一個對字節(jié)范圍鎖定的CIFS請求或NLM請求,則文件系統(tǒng)110繼續(xù)到步驟441。在步驟423,文件服務(wù)器110將已經(jīng)與文件113相關(guān)的文件鎖定與第二客戶設(shè)備130所請求的文件打開進(jìn)行比較。為了執(zhí)行此步驟423,文件服務(wù)器110在表2中交叉檢索先存文件鎖定和所請求的新訪問模式及拒絕模式,并根據(jù)表中的相關(guān)項來允許或拒絕所請求的新訪問模式和拒絕模式。如果文件服務(wù)器110允許所請求的新訪問模式和拒絕模式,則方法400執(zhí)行步驟424。如果文件服務(wù)器110拒絕所請求的新訪問模式和拒絕模式,則方法400不執(zhí)行步驟424。表2示出了在具有統(tǒng)一文件鎖定語義關(guān)系的多協(xié)議文件服務(wù)器中的嘗試文件鎖定的交叉索引。表2多協(xié)議鎖定兼容性矩陣A=訪問模式D=拒絕模式√-新請求將被授權(quán)×-新請求將被拒絕如表2所示,每對先存文件鎖定和所請求的新訪問模式及拒絕模式具有一種相關(guān)的判定關(guān)系以允許或拒絕所請求的新訪問模式和拒絕模式。如果文件服務(wù)器110正在檢查一個現(xiàn)有CIFS文件鎖定與一個執(zhí)行文件打開操作的新請求之間的沖突,則對在新文件打開請求中所請求的訪問模式和拒絕模式交叉檢索現(xiàn)有的CIFS文件鎖定。如果文件服務(wù)器110正在檢查現(xiàn)有的文件鎖定與一個用以執(zhí)行文件讀或?qū)懖僮鞯男翹FS請求之間的沖突,則對所請求的訪問模式交叉檢索合計的鎖定模式(現(xiàn)有文件鎖定的組合)以執(zhí)行新的請求。如果文件服務(wù)器110正在檢查現(xiàn)有的文件鎖定或字節(jié)范圍鎖定與一個對NLM字節(jié)范圍鎖定的新請求之間的沖突,則對一種等效于新NLM字節(jié)范圍鎖定請求的鎖定模式交叉檢索現(xiàn)有的文件鎖定和字節(jié)范圍鎖定。為了與現(xiàn)有的文件鎖定進(jìn)行比較,文件服務(wù)器110將新請求的NLM字節(jié)范圍鎖定視為非拒絕拒絕模式,并視為具有只讀訪問模式的非獨(dú)占鎖定(也稱為“讀鎖定”)和具有讀-寫訪問模式的獨(dú)占鎖定(也稱為“寫鎖定”)。為了與現(xiàn)有的字節(jié)范圍鎖定進(jìn)行比較,文件服務(wù)器110將新請求的NLM字節(jié)范圍鎖定視為具有只讀訪問模式和寫拒絕拒絕模式的讀鎖定,并視為具有讀寫訪問模式和全部拒絕拒絕模式的寫鎖定。然后方法400繼續(xù)到流點(diǎn)450。在步驟431,文件服務(wù)器110比較文件113的文件鎖定狀態(tài)和由第二客戶設(shè)備130請求的操作。為了執(zhí)行此步驟431,文件服服務(wù)器110比較該文件鎖定的拒絕模式和所請求的操作,并根據(jù)比較結(jié)果允許或拒絕所請求的操作。然后方法400繼續(xù)到流點(diǎn)450。在步驟44l,文件服務(wù)器110比較文件113的文件鎖定狀態(tài)和由第二客戶設(shè)備130請求的NLM字節(jié)范圍鎖定。在最佳實(shí)施例中,只對字節(jié)范圍鎖定檢查CIFS字節(jié)范圍鎖定請求,因為它們需要一個以前的已經(jīng)檢查過現(xiàn)有文件鎖定的CIFS文件打開操作。為了執(zhí)行此步驟441,文件服務(wù)器110在表3中交叉檢索先存的文件鎖定狀態(tài)和所請求的字節(jié)范圍鎖定,并根據(jù)表中的相關(guān)項允許或拒絕所請求的字節(jié)范圍鎖定。如果文件服務(wù)器110允許所請求的新NLM字節(jié)范圍鎖定,則方法400執(zhí)行步驟442。如果文件服務(wù)器ll0拒絕所請求的新字節(jié)范圍鎖定,則方法400不執(zhí)行步驟442。表3示出了具有統(tǒng)一文件鎖定語義關(guān)系的多協(xié)議文件服務(wù)器中的現(xiàn)有文件鎖定和新請求的NLM字節(jié)范圍鎖定的交叉索引。表3新NLM字節(jié)范圍鎖定與現(xiàn)有文件鎖定的兼容性A=訪問模式,D=拒絕模式√=新的NLM字節(jié)范圍鎖定請求將被授權(quán)×=新的NLM字節(jié)范圍鎖定請求將被拒絕如表3所示,每一對現(xiàn)有文件鎖定和新請求的NLM字節(jié)范圍鎖定都具有允許或拒絕所請求的新字節(jié)范圍鎖定的相關(guān)判定關(guān)系。在步驟442,文件服務(wù)器110使所請求的新字節(jié)范圍鎖定作為一個新的附加字節(jié)范圍鎖定而與文件113發(fā)生聯(lián)系。方法400繼續(xù)到流點(diǎn)450。在流點(diǎn)450,文件服務(wù)器110比較了文件服務(wù)器請求消息140中所請求的操作和文件113的文件鎖定狀態(tài),并允許或拒絕所請求的操作。操作方法(機(jī)會鎖定管理器)圖5示出了操作一個多協(xié)議文件服務(wù)器中的機(jī)會鎖定管理器的方法流程圖。操作一個多協(xié)議文件服務(wù)器中的機(jī)會鎖定管理器的方法500包括一組后述的由文件服務(wù)器110協(xié)同至少一個客戶設(shè)備130執(zhí)行的過程步驟和流點(diǎn)。在Windows操作系統(tǒng)環(huán)境下的文件鎖定領(lǐng)域中,機(jī)會鎖定是公知技術(shù)。該技術(shù)在關(guān)于包括了例如CIFSIETF規(guī)定的“WindowsNT4.0”操作系統(tǒng)的文獻(xiàn)中進(jìn)行了詳細(xì)描述,可以通過位于主ftpmicrosoft.com、directory/developr/drg/CIFS、文件cifs6.doc或cifs6.txt中的FTP協(xié)議,從位于Washington,Redmond的微軟公司得到該文獻(xiàn),本文中將其作為參考文獻(xiàn)。在流點(diǎn)510,文件服務(wù)器110準(zhǔn)備從一個CIFS第一客戶設(shè)備130接收一個打開文件113的請求。在步驟511,文件服務(wù)器110從一個CIFS第一客戶設(shè)備130接收一個對文件113的文件打開請求。該文件打開請求指定了一種訪問模式和一種拒絕模式。在步驟512,文件服務(wù)器110確定應(yīng)當(dāng)允許該請求,并以所指定的訪問模式和拒絕模式向第一客戶設(shè)備130授權(quán)一個文件鎖定。在步驟513,如果該客戶設(shè)備130已經(jīng)在文件打開請求中請求了機(jī)會鎖定,則文件服務(wù)器110以高于第一客戶設(shè)備130實(shí)際需要的可能性將機(jī)會鎖定授權(quán)給第一客戶設(shè)備130。例如,當(dāng)一個CIFS第一客戶設(shè)備130以只讀訪問模式和寫拒絕拒絕模式打開一個文件113時,文件服務(wù)器110使那種類型的文件鎖定與文件113發(fā)生聯(lián)系。文件服務(wù)器110還使具有讀-寫訪問模式和全部拒絕拒絕模式的機(jī)會鎖定與文件113發(fā)生聯(lián)系。在流點(diǎn)520,文件服務(wù)器110對來自CIFS第一客戶設(shè)備130的、對文件113進(jìn)行文件鎖定的請求作出響應(yīng)。在流點(diǎn)530,第二客戶設(shè)備130試圖打開文件113。在步驟531,文件服務(wù)器110或者從第二CIFS客戶設(shè)備130接收一個文件打開請求,或者從一個PCNFS客戶設(shè)備130接收一個NLM文件鎖定請求。作為執(zhí)行此步驟531的一部分,在由第二客戶設(shè)備130請求的執(zhí)行中斷了機(jī)會鎖定并從該機(jī)會鎖定的占有人、第一客戶設(shè)備130處得到響應(yīng)的同時,文件服務(wù)器110掛起由第二客戶設(shè)備130請求的執(zhí)行。在步驟532,文件服務(wù)器110通過向CIFS第一客戶設(shè)備130發(fā)送一個“機(jī)會鎖定中斷”消息140來中斷機(jī)會鎖定。當(dāng)?shù)诙蛻粼O(shè)備130是一個CIFS客戶設(shè)備130時,這已經(jīng)在意料之中。當(dāng)?shù)诙蛻粼O(shè)備130是一個NFS客戶設(shè)備130時,文件服務(wù)器110延遲其對NFS(或NLM)協(xié)議請求消息140的響應(yīng),直到CIFS第一客戶設(shè)備130對“機(jī)會鎖定中斷”消息140作出響應(yīng)為止。在步驟533,CIFS第一客戶設(shè)備130接收“機(jī)會鎖定中斷”消息140并能夠以下述兩種方式之一對消息140作出響應(yīng)CIFS第一客戶設(shè)備130能夠關(guān)閉文件113(從而取消與文件打開相關(guān)的文件鎖定)或CIFS第一客戶設(shè)備130能夠清洗對文件113的所有未決CIFS寫和字節(jié)范圍鎖定請求,這些請求在客戶設(shè)備130中被局部緩存(即,它能夠向文件服務(wù)器110傳遞那些文件系統(tǒng)操作的結(jié)果),并刪除已經(jīng)獲得的文件113的預(yù)讀數(shù)據(jù)。由于第二客戶設(shè)備130可能接著向文件中寫入新的數(shù)據(jù)而使預(yù)讀數(shù)據(jù)無效,因而應(yīng)當(dāng)刪除預(yù)讀數(shù)據(jù)。在步驟534,文件服務(wù)器110從CIFS第一客戶設(shè)備130接收響應(yīng)。在步驟535,文件服務(wù)器110確定CIFS第一客戶設(shè)備130是否保持文件113打開,如果是,則將第二客戶設(shè)備130所請求的隱含鎖定模式與文件113的新的文件鎖定狀態(tài)進(jìn)行比較。如果文件服務(wù)器110確定允許繼續(xù)進(jìn)行第二客戶設(shè)備130的請求,則方法繼續(xù)到流點(diǎn)540。如果文件服務(wù)器110確定不允許繼續(xù)進(jìn)行了第二客戶設(shè)備130的請求,拒絕該請求。在流點(diǎn)540,文件服務(wù)器110準(zhǔn)備允許在步驟531中提及的來自第二客戶設(shè)備130的請求。操作方法(變更通知管理器)圖6示出了操作多協(xié)議文件服務(wù)器中的一個變更通知管理器的方法流程圖。操作多協(xié)議文件服務(wù)器中的一個變更通知管理器的了方法600包括一組由文件服務(wù)器110協(xié)同至少一個客戶設(shè)備130執(zhí)行的過程步驟和流點(diǎn)。在流點(diǎn)610,文件服務(wù)器110準(zhǔn)備接收文件服務(wù)器請求消息140。在步驟611,文件服務(wù)器110從第一CIFS客戶設(shè)備130接收一個文件打開請求消息140,同時在文件服務(wù)器110上指定一個目錄。文件服務(wù)器110確定應(yīng)當(dāng)允許該文件打開請求并向第一CIFS客戶設(shè)備130授權(quán)對該目錄的CIFS文件鎖定。在步驟612,文件服務(wù)器110從第一CIFS客戶設(shè)備130接收一個參照被打開的目錄的變更通知請求消息以將對打開目錄的文件鎖定轉(zhuǎn)換成變更監(jiān)視鎖定。在步驟613,文件服務(wù)器110將對打開目錄的文件鎖定轉(zhuǎn)換成對指定目錄的變更監(jiān)視鎖定。在流點(diǎn)620,“變更監(jiān)視”鎖定已經(jīng)與指定目錄建立聯(lián)系,并且準(zhǔn)備向第一CIFS客戶設(shè)備130通知對該目錄的變更。在步驟621,文件服務(wù)器110從第二客戶設(shè)備130接收一個文件服務(wù)器請求消息140,請求對指定目錄的變更,從而引發(fā)向第一客戶設(shè)備130通知變更(變更類型包括文件生成、文件刪除、文件重命名、目錄之間的文件移動、文件屬性變更以及文件修改時間變更)。來自第二客戶設(shè)備130的文件服務(wù)器請求消息140可以是CIFS或NFS。第二客戶設(shè)備130可以是UnixNFS客戶設(shè)備201、PCNFS客戶設(shè)備202或CIFSWindows客戶設(shè)備203中的任一個。在步驟622,文件服務(wù)器110通知占有對步驟621中所述的變更的“變更監(jiān)視”鎖定的第一客戶設(shè)備130,可能包括多項,其中每一項都規(guī)定了所監(jiān)視的目錄中被變更的文件或子目錄的名稱和變更類型。如果這樣的第一客戶設(shè)備130存在一個以上,則文件服務(wù)器110通知所有的第一客戶設(shè)備。在WindowsNT操作系統(tǒng)環(huán)境下的文件鎖定領(lǐng)域中,變更通知是公知技術(shù)。該技術(shù)在關(guān)于包括了例如CIFSIETF規(guī)定的“WindowsNT4.0”操作系統(tǒng)的文獻(xiàn)中進(jìn)行了詳細(xì)描述,可以通過位于主ftpmicrosoft.com、directory/developr/drg/CIFS、文件cifs6.doc或cifs6.txt中的FTP協(xié)議,從位于Washington,Redmond的微軟公司得到該文獻(xiàn),本文中將其作為參考文獻(xiàn)。在流點(diǎn)630,文件服務(wù)器110已經(jīng)將對指定目錄的變更通知了第一CIFS客戶設(shè)備130并為下一個消息140作準(zhǔn)備。替換實(shí)施例盡管公開了最佳實(shí)施例,但是作出仍屬于本發(fā)明范圍和構(gòu)思的各種改進(jìn)是可能的,并且在研讀了本說明書之后,這些改進(jìn)對于所述
技術(shù)領(lǐng)域:
的技術(shù)人員來說是清楚易懂的。技術(shù)附錄關(guān)于本發(fā)明的其他和進(jìn)一步的信息包括在本申請所附的一份技術(shù)附錄中。該技術(shù)附錄包括30頁(包括附圖)并在此作為參考文獻(xiàn)而引用。權(quán)利要求1.一種操作一個文件服務(wù)器的方法,所述方法包括在一組使用多種不同文件服務(wù)器或文件鎖定協(xié)議的客戶設(shè)備中強(qiáng)制實(shí)施一種統(tǒng)一文件鎖定語義關(guān)系的步驟。2.如權(quán)利要求1所述的方法,其特征在于所述統(tǒng)一文件鎖定語義關(guān)系包括具有如下功能的機(jī)會鎖定由第一客戶設(shè)備使用第一協(xié)議進(jìn)行請求;以及由使用不同于所述第一協(xié)議的第二協(xié)議的第二客戶設(shè)備引發(fā)所述機(jī)會鎖定的中斷。3.如權(quán)利要求2所述的方法,其特征在于所述第一協(xié)議包括CIFS。4.如權(quán)利要求2所述的方法,其特征在于所述第二協(xié)議包括NFS或NLM。5.如權(quán)利要求1所述的方法,其特征在于所述統(tǒng)一文件鎖定語義關(guān)系包括步驟根據(jù)一個使用第一所述協(xié)議的第一消息,將對一個選定文件的機(jī)會鎖定授權(quán)給第一所述客戶設(shè)備;以及根據(jù)一個使用第二所述協(xié)議的第二消息,中斷所述機(jī)會鎖定。6.如權(quán)利要求5所述的方法,其特征在于所述中斷步驟包括步驟根據(jù)所述第二消息,向所述第一客戶設(shè)備發(fā)送一個機(jī)會鎖定中斷消息;延遲所述第二消息所指示的文件系統(tǒng)請求的執(zhí)行;從所述第一客戶設(shè)備接收對所述機(jī)會鎖定中斷消息的響應(yīng);以及在所述接收步驟之后處理和響應(yīng)所述第二消息。7.如權(quán)利要求1所述的方法,其特征在于所述統(tǒng)一文件鎖定語義關(guān)系包括具有下述功能的變更監(jiān)視鎖定類型由第一客戶設(shè)備使用第一協(xié)議進(jìn)行請求;以及由使用不同于所述第一協(xié)議的第二協(xié)議的第二客戶設(shè)備引發(fā)一次變更通知。8.如權(quán)利要求7所述的方法,其特征在于所述第一協(xié)議包括CIFS。9.如權(quán)利要求7所述的方法,其特征在于所述第二協(xié)議包括NFS。10.如權(quán)利要求1所述的方法,其特征在于所述統(tǒng)一文件鎖定語義關(guān)系包括步驟根據(jù)使用第一所述協(xié)議的第一消息,將對一個選定目錄的變更監(jiān)視鎖定授權(quán)給第一所述客戶設(shè)備;以及根據(jù)使用第二所述協(xié)議并關(guān)于所述選定目錄的第二消息,向所述第一客戶設(shè)備發(fā)送一個變更通知消息。11.如權(quán)利要求1所述的方法,其特征在于所述強(qiáng)制實(shí)施步驟包括識別多種不同協(xié)議;根據(jù)使用了至少一種所述協(xié)議的消息,提供一種統(tǒng)一文件鎖定語義關(guān)系;以及強(qiáng)制所有所述客戶設(shè)備實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系。12.如權(quán)利要求11所述的方法,其特征在于所述統(tǒng)一文件鎖定語義關(guān)系包括根據(jù)使用第一所述協(xié)議的第一消息,將對一個機(jī)會鎖定授權(quán)給第一所述客戶設(shè)備;以及根據(jù)使用第二所述協(xié)議的第二消息,中斷所述機(jī)會鎖定。13.如權(quán)利要求12所述的方法,其特征在于所述中斷步驟包括根據(jù)所述第二消息向所述第一客戶設(shè)備發(fā)送一個機(jī)會鎖定中斷消息;延遲執(zhí)行由所述第二消息指示的一個文件系統(tǒng)請求;從所述第一客戶設(shè)備接收對所述機(jī)會鎖定中斷消息的響應(yīng);以及在接收步驟之后處理和響應(yīng)所述第二消息。14.如權(quán)利要求11所述的方法,其特征在于所述強(qiáng)制實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系的步驟包括根據(jù)來自第一客戶設(shè)備且使用所述第一協(xié)議的第一消息而授權(quán)變更監(jiān)視鎖定;以及根據(jù)使用所述第二協(xié)議的第二消息向所述第一客戶設(shè)備發(fā)送一個變更通知消息。15.如權(quán)利要求11所述的方法,其特征在于所述強(qiáng)制實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系的步驟包括識別違反所述統(tǒng)一文件鎖定語義關(guān)系的一個選定消息;以及對所述選定消息作出對應(yīng)于與所述選定消息相關(guān)的協(xié)議的一個錯誤響應(yīng)。16.如權(quán)利要求11所述的方法,其特征在于所述強(qiáng)制實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系的步驟包括識別用于獲得對一個按照所述選定協(xié)議的文件的字節(jié)范圍鎖定的一個選定消息,所述字節(jié)范圍鎖定具有一種鎖定類型;以及測試所得到的所述字節(jié)范圍鎖定是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突。17.如權(quán)利要求11所述的方法,其特征在于所述強(qiáng)制實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系的步驟包括識別用于打開一個按照所述選定協(xié)議的文件的一個選定消息,所述選定消息包括一種請求訪問模式;以及測試?yán)盟稣埱笤L問模式打開所述文件是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突。18.如權(quán)利要求17所述的方法,其特征在于所述選定消息包括一種請求拒絕模式;以及包括測試?yán)盟稣埱缶芙^模式打開所述文件是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突的步驟。19.如權(quán)利要求11所述的方法,其特征在于所述強(qiáng)制實(shí)施所述統(tǒng)一文件鎖定語義關(guān)系的步驟包括識別用于對一個按照所述選定協(xié)議的文件進(jìn)行讀或?qū)懙囊粋€選定消息,所述選定消息包括一種請求訪問模式;以及測試對所述文件的讀或?qū)懯欠衽c由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突。20.如權(quán)利要求1所述的方法,其特征在于所述強(qiáng)制實(shí)施步驟包括接收使用第一協(xié)議的第一消息,所述第一消息可用于鎖定一個選定文件的至少一部分;接收使用第二協(xié)議的第二消息,所述第二消息可用于請求對所述部分的訪問;比較所述第二消息所請求的所述訪問和所述鎖定,并且如果所述鎖定被禁止,則拒絕所述訪問。21.如權(quán)利要求20所述的方法,其特征在于所述第一協(xié)議包括CIFS。22.如權(quán)利要求20所述的方法,其特征在于所述第一協(xié)議或所述第二協(xié)議包括NLM。23.如權(quán)利要求20所述的方法,其特征在于所述第二協(xié)議包括NFS。24.如權(quán)利要求20所述的方法,其特征在于所述接收所述第二消息的步驟包括用于識別用于獲得對一個按照所述第二協(xié)議的文件的字節(jié)范圍鎖定的一個第二消息的步驟,所述字節(jié)范圍鎖定具有一種鎖定類型;以及所述比較步驟包括用于測試所得到的具有所述鎖定類型的所述字節(jié)范圍鎖定是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突的步驟。25.如權(quán)利要求24所述的方法,其特征在于所述測試步驟對應(yīng)于用于所述第二消息的協(xié)議。26.如權(quán)利要求24所述的方法,其特征在于所述測試步驟在文件打開時刻工作于所述第一協(xié)議之下,而在訪問時刻則工作于所述第二協(xié)議之下。27.如權(quán)利要求24所述的方法,其特征在于所述測試步驟在文件打開時刻工作于所述第一協(xié)議之下,而在鎖定請求時刻則工作于所述第二協(xié)議之下。28.如權(quán)利要求20所述的方法,其特征在于所述接收所述第二消息的步驟包括用于識別用于打開一個按照所述第二協(xié)議的文件的一個第二消息的步驟,所述第二消息包括一種請求訪問模式;以及所述比較步驟包括用于測試?yán)盟稣埱笤L問模式訪問所述文件是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突的步驟。29.如權(quán)利要求20所述的方法,其特征在于所述接收所述第二消息的步驟包括用于識別用于對一個按照所述第二協(xié)議的文件進(jìn)行讀或?qū)懙囊粋€第二消息的步驟;以及所述比較步驟包括用于測試通過所述第二消息訪問所述文件是否與由使用同一種或其它協(xié)議的消息所生成的現(xiàn)有鎖定相沖突的步驟。30.如權(quán)利要求20所述的方法,其特征在于所述接收所述第一消息的步驟包括用于根據(jù)所述第一消息而授權(quán)機(jī)會鎖定的步驟;以及所述比較步驟包括根據(jù)所述第二消息中斷所述機(jī)會鎖定的步驟。31.如權(quán)利要求30所述的方法,其特征在于所述中斷步驟包括根據(jù)所述第二消息向所述第一客戶設(shè)備發(fā)送一個機(jī)會鎖定中斷消息;延遲執(zhí)行由所述第二消息指示的一個文件系統(tǒng)請求;從所述第一客戶設(shè)備接收對所述機(jī)會鎖定中斷消息的響應(yīng);以及在接收步驟之后處理和響應(yīng)所述第二消息。32.如權(quán)利要求31所述的方法,其特征在于對所述機(jī)會鎖定中斷消息的所述響應(yīng)包括一個機(jī)會鎖定中斷確認(rèn)消息或一個文件關(guān)閉消息。33.如權(quán)利要求1所述的萬法,其特征在于所述文件鎖定語義關(guān)系包括按照由使用第一協(xié)議的第一客戶設(shè)備所請求的訪問模式和拒絕模式而確定的一個鎖定模式。34.如權(quán)利要求1所述的方法,其特征在于所述文件鎖定語義關(guān)系包括按照由使用第一協(xié)議的第一客戶設(shè)備所請求的訪問模式和拒絕模式而確定的第一鎖定模式;根據(jù)來自使用不同于所述第一協(xié)議的第二協(xié)議的第二客戶設(shè)備的消息而確定的第二鎖定模式;其中所述文件服務(wù)器比較所述第一鎖定模式和所述第二鎖定模式。35.如權(quán)利要求34所述的方法,其特征在于所述比較包括一個鎖定兼容性矩陣。36.如權(quán)利要求34所述的方法,其特征在于所述比較包括一個鎖定變換矩陣。37.如權(quán)利要求34所述的方法,其特征在于所述第二鎖定模式響應(yīng)于一個字節(jié)范圍鎖定請求。38.如權(quán)利要求34所述的方法,其特征在于所述第二鎖定模式響應(yīng)于一個NLM文件鎖定請求。全文摘要本發(fā)明提供了一種使用提議多協(xié)議鎖定管理系統(tǒng)而使多個不同文件服務(wù)器或文件鎖定協(xié)議正確互用的方法和系統(tǒng)。文件服務(wù)器在允許任何客戶設(shè)備訪問數(shù)據(jù)或獲得鎖定之前都要確定是否與用于那些現(xiàn)有鎖定的始發(fā)客戶設(shè)備和始發(fā)文件服務(wù)器協(xié)議或文件鎖定協(xié)議無關(guān)的現(xiàn)有鎖定不一致。CIFS客戶設(shè)備能夠獲得對文件系統(tǒng)中的一個目錄的“變更監(jiān)測”鎖定。文件服務(wù)器記錄下CIFS客戶設(shè)備和非CIFS客戶設(shè)備對目錄的變更,并將變更的“變更監(jiān)測”鎖定通知給CIFS客戶設(shè)備。文檔編號G06F15/00GK1276568SQ99109498公開日2000年12月13日申請日期1999年6月4日優(yōu)先權(quán)日1999年6月4日發(fā)明者A·波爾申請人:網(wǎng)絡(luò)裝置公司