背景技術(shù):
計(jì)算系統(tǒng)和關(guān)聯(lián)的網(wǎng)絡(luò)已經(jīng)徹底改革人類工作、玩和溝通的方式。我們的生活的幾乎每個(gè)方面在某種程度上會(huì)受到計(jì)算系統(tǒng)影響。網(wǎng)絡(luò)的擴(kuò)散已經(jīng)允許計(jì)算系統(tǒng)共享數(shù)據(jù)和通信,這極大地增加了信息訪問。出于該原因,當(dāng)代常常被稱為“信息時(shí)代”。
然而,在一些情況下,期望限制對(duì)數(shù)據(jù)的訪問。例如,數(shù)據(jù)常常被限制使得其僅由某些個(gè)體可訪問。因此,這些個(gè)體必須在訪問數(shù)據(jù)之前進(jìn)行認(rèn)證。在其他情況下,數(shù)據(jù)將基于位置被限制。例如,一些數(shù)據(jù)將被限制在特定某個(gè)地理區(qū)域內(nèi)。出于各種原因(諸如法律、規(guī)章、稅收或者安全原因),可以執(zhí)行將數(shù)據(jù)限制到特定地理區(qū)域。在一些情況下,數(shù)據(jù)具有與數(shù)據(jù)相關(guān)聯(lián)的某個(gè)期滿日期以便限制何時(shí)數(shù)據(jù)可以被使用。
在此所要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在環(huán)境(諸如上文所描述的那些環(huán)境)中操作的實(shí)施例。相反,該背景僅被提供為圖示其中可以實(shí)踐在此所描述的一些實(shí)施例的一個(gè)示例性技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
在此所描述的至少一些實(shí)施例涉及在網(wǎng)絡(luò)上對(duì)文件系統(tǒng)實(shí)體實(shí)施操作限制。文件系統(tǒng)實(shí)體存在于服務(wù)器(其可以是單個(gè)機(jī)器、服務(wù)器的群集或者云計(jì)算環(huán)境)上。服務(wù)器促進(jìn)與客戶端建立網(wǎng)絡(luò)上的會(huì)話。作為該促進(jìn)的一部分,服務(wù)器從客戶端接收客戶端的位置。在從客戶端后續(xù)接收到對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求時(shí),客戶端咨詢補(bǔ)充數(shù)據(jù)以確定所要求的操作在文件系統(tǒng)實(shí)體上是否被許可。補(bǔ)充數(shù)據(jù)可以包括位置信息或操作期滿數(shù)據(jù)中的至少一項(xiàng)。
該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或基本特征,其也不旨在用作輔助確定所要求保護(hù)的主題的范圍。
附圖說明
為了描述可以獲得上文記載的優(yōu)點(diǎn)和其他優(yōu)點(diǎn)和特征的方式,將通過參考附圖來提供各種實(shí)施例的更特定的描述。理解這些附圖僅描述樣本實(shí)施例并且因此將不被認(rèn)為限制本發(fā)明的范圍,將通過使用附圖以附加特殊性和細(xì)節(jié)描述和解釋實(shí)施例,在附圖中:
圖1抽象地圖示了在其中可以采用在此所描述的一些實(shí)施例的計(jì)算系統(tǒng);
圖2圖示了在其中請(qǐng)求系統(tǒng)通過網(wǎng)絡(luò)請(qǐng)求對(duì)源系統(tǒng)的文件系統(tǒng)內(nèi)的文件系統(tǒng)實(shí)體執(zhí)行操作的系統(tǒng);
圖3圖示了在其中文件系統(tǒng)實(shí)體和對(duì)應(yīng)的補(bǔ)充數(shù)據(jù)以如下方式相關(guān)聯(lián)的文件系統(tǒng)實(shí)體環(huán)境:如果文件系統(tǒng)實(shí)體被復(fù)制或被移除,則對(duì)應(yīng)的補(bǔ)償數(shù)據(jù)也相應(yīng)地原子地被復(fù)制或被移除;
圖4圖示了用于建立請(qǐng)求系統(tǒng)與源系統(tǒng)之間的連接的方法的流程圖,其是文件系統(tǒng)實(shí)體上的操作限制的實(shí)施的第一階段;
圖5圖示了用于對(duì)請(qǐng)求作出反應(yīng)以通過由圖4的方法所建立的連接執(zhí)行操作的方法的流程圖,并且表示文件系統(tǒng)實(shí)體上的操作限制的實(shí)施的第二階段;
圖6圖示了示出請(qǐng)求系統(tǒng)(客戶端)與源系統(tǒng)(服務(wù)器)之間的信令以便建立會(huì)話的消息圖;
圖7圖示了根據(jù)在此所描述的第一實(shí)施例的表示圖3的補(bǔ)充數(shù)據(jù)的示例的位置數(shù)據(jù);
圖8圖示了根據(jù)在此所描述的第一實(shí)施例的基于請(qǐng)求者的位置來控制對(duì)數(shù)據(jù)的訪問的方法的流程圖;
圖9圖示了根據(jù)在此所描述的第一實(shí)施例的用于使用位置數(shù)據(jù)確定所請(qǐng)求的操作是否被許可的方法的流程圖;
圖10圖示了在此所描述的第二實(shí)施例的表示圖3的補(bǔ)充數(shù)據(jù)的示例的補(bǔ)充數(shù)據(jù);
圖11抽象地圖示了表示圖10的場域中的任一個(gè)的示例的場域;
圖12圖示了根據(jù)在此所描述的第二實(shí)施例的用于基于請(qǐng)求者的位置和操作期滿數(shù)據(jù)來控制對(duì)數(shù)據(jù)的訪問的方法的流程圖;以及
圖13圖示了根據(jù)在此所描述的第二實(shí)施例的用于基于請(qǐng)求者的位置狀態(tài)并且基于操作特定的期滿數(shù)據(jù)來控制對(duì)文件系統(tǒng)實(shí)體的訪問的更特定的方法。
具體實(shí)施方式
在此所描述的至少一些實(shí)施例涉及在網(wǎng)絡(luò)上對(duì)文件系統(tǒng)實(shí)體實(shí)施操作限制。文件系統(tǒng)實(shí)體存在于服務(wù)器(其可以是單個(gè)機(jī)器、服務(wù)器的群集或者云計(jì)算環(huán)境)上。服務(wù)器促進(jìn)與客戶端建立網(wǎng)絡(luò)上的會(huì)話。作為該促進(jìn)的一部分,服務(wù)器從客戶端接收客戶端的位置。在從客戶端后續(xù)接收到對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求時(shí),客戶端咨詢補(bǔ)充數(shù)據(jù)以確定所要求的操作在文件系統(tǒng)實(shí)體上是否被許可。補(bǔ)充數(shù)據(jù)可以包括位置或操作期滿數(shù)據(jù)中的至少一項(xiàng)。
因此,基于客戶端的位置或者操作期滿數(shù)據(jù)來實(shí)施操作限制可以被提供甚至用于遠(yuǎn)程操作請(qǐng)求。關(guān)于圖1將描述計(jì)算系統(tǒng)的一些引導(dǎo)性討論。然后,關(guān)于后續(xù)附圖將描述訪問控制的結(jié)構(gòu)和使用。
計(jì)算系統(tǒng)現(xiàn)在日益采取各種各樣的形式。計(jì)算系統(tǒng)可以例如是手持式設(shè)備、電器、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng)、數(shù)據(jù)中心或者甚至尚未常規(guī)地被認(rèn)為是計(jì)算系統(tǒng)的設(shè)備(諸如可穿戴設(shè)備(例如,眼鏡))。在該說明書和權(quán)利要求中,術(shù)語“計(jì)算系統(tǒng)”廣泛地被定義為包括任何設(shè)備或系統(tǒng)(或其組合),其包括至少一個(gè)物理和有形處理器和能夠在其上具有可以由處理器來執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的物理和有形存儲(chǔ)器。存儲(chǔ)器可以采取任何形式并且可以取決于計(jì)算系統(tǒng)的性質(zhì)和形式。計(jì)算系統(tǒng)可以被分布在網(wǎng)絡(luò)環(huán)境上并且可以包括多個(gè)組成計(jì)算系統(tǒng)。
如在圖1中所圖示的,在其最基本配置中,計(jì)算系統(tǒng)100通常包括至少一個(gè)硬件處理單元102和存儲(chǔ)器104。該存儲(chǔ)器104可以是物理系統(tǒng)存儲(chǔ)器,其可以是易失性、非易失性或二者的某種組合。術(shù)語“存儲(chǔ)器”還可以在此被用于指代非易失性海量存儲(chǔ)裝置(諸如物理存儲(chǔ)介質(zhì))。如果計(jì)算系統(tǒng)是分布式的,則也可以處理、存儲(chǔ)器和/或存儲(chǔ)能力也可以是分布式的。如在此所使用的,術(shù)語“可執(zhí)行模塊”或“可執(zhí)行部件”可以指代可以在計(jì)算系統(tǒng)上執(zhí)行的軟件對(duì)象、例程或方法。在此所描述的不同的部件、模塊、引擎和服務(wù)可以被實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或過程(例如,分離的線程)。
在以下描述中,參考由一個(gè)或多個(gè)計(jì)算系統(tǒng)所執(zhí)行的動(dòng)作描述實(shí)施例。如果在軟件中實(shí)現(xiàn)這樣的動(dòng)作,則(執(zhí)行動(dòng)作的相關(guān)聯(lián)的計(jì)算系統(tǒng)的)一個(gè)或多個(gè)處理器響應(yīng)于已經(jīng)執(zhí)行計(jì)算機(jī)可執(zhí)行指令而引導(dǎo)計(jì)算系統(tǒng)的操作。例如,可以在形成計(jì)算機(jī)程序產(chǎn)品的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)這樣的計(jì)算機(jī)可執(zhí)行指令。這樣的操作的示例包含對(duì)數(shù)據(jù)的操作。該計(jì)算機(jī)可執(zhí)行指令(以及操作的數(shù)據(jù))可以被存儲(chǔ)在計(jì)算系統(tǒng)100的存儲(chǔ)器104中。計(jì)算系統(tǒng)100還可以包含允許計(jì)算系統(tǒng)100通過例如網(wǎng)絡(luò)110與其他計(jì)算系統(tǒng)通信的通信信道108。計(jì)算系統(tǒng)100還包括顯示器,其可以被用于將視覺表示顯示給用戶。
在此所描述的實(shí)施例可以包括或利用包括計(jì)算機(jī)硬件(諸如例如一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器)的專用或通用計(jì)算機(jī)系統(tǒng),如下文更詳細(xì)討論的。在此所描述的實(shí)施例還包括用于攜帶或者存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可以由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲(chǔ)介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。因此,以示例而非限制的方式,本發(fā)明的實(shí)施例可以包括至少兩個(gè)明顯不同種類的計(jì)算機(jī)可讀介質(zhì):計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。
計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括ram、rom、eeprom、cd-rom或其他光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或者其他存儲(chǔ)設(shè)備或者任何其他物理和有形存儲(chǔ)介質(zhì),其可以被用于存儲(chǔ)以計(jì)算機(jī)可執(zhí)行指令或者數(shù)據(jù)結(jié)構(gòu)的形式的期望的程序代碼裝置并且其可以由通用或?qū)S糜?jì)算系統(tǒng)訪問。
“網(wǎng)絡(luò)”被定義為實(shí)現(xiàn)計(jì)算系統(tǒng)和/或模塊和/或其他電子設(shè)備之間的電子數(shù)據(jù)的傳輸?shù)囊粋€(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一通信連接(或者硬連線、無線或者硬連線或無線的組合)被傳送或被提供給計(jì)算機(jī)時(shí),計(jì)算機(jī)適當(dāng)?shù)貙⑦B接視為傳輸介質(zhì)。傳輸介質(zhì)可以包括網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路,其可以被用于攜帶以計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的形式的期望的程序代碼裝置并且可以由通用或?qū)S糜?jì)算機(jī)訪問。以上組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
進(jìn)一步地,在到達(dá)各種計(jì)算機(jī)系統(tǒng)部件時(shí),以計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼可以從傳輸介質(zhì)自動(dòng)地被傳送給計(jì)算機(jī)存儲(chǔ)介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路所接收的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可以被緩沖在網(wǎng)絡(luò)接口模塊(例如,“nic”)內(nèi)的ram中,并且然后最終地被傳送到計(jì)算機(jī)系統(tǒng)ram和/或較少地到計(jì)算機(jī)系統(tǒng)處的易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。因此,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可以被包括在還(或甚至主要地)利用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)部件中。
計(jì)算機(jī)可執(zhí)行指令包括指令和數(shù)據(jù),其例如當(dāng)在處理器處執(zhí)行時(shí)使得通用計(jì)算系統(tǒng)、專用計(jì)算系統(tǒng)或?qū)S锰幚碓O(shè)備執(zhí)行某個(gè)功能或一組功能。計(jì)算機(jī)可執(zhí)行指令可以是例如在由處理器直接執(zhí)行之前經(jīng)歷一些轉(zhuǎn)譯(諸如編譯)二進(jìn)制或者甚至指令,諸如中間格式指令(諸如匯編語言或者甚至源代碼)。雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法行為的語言描述了主題,但是應(yīng)理解到,所附的權(quán)利要求中定義的主題不必限于上文所描述的特定特征或行為。相反,所描述的特征和動(dòng)作被公開為實(shí)現(xiàn)權(quán)利要求的示例形式。
本領(lǐng)域的技術(shù)人員將理解到,本發(fā)明可以被實(shí)踐在具有多種類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中,包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)pc、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、pda、尋呼機(jī)、路由器、交換機(jī)、數(shù)據(jù)中心、可穿戴設(shè)備(諸如眼鏡)等。本發(fā)明還可以實(shí)踐在其中通過網(wǎng)絡(luò)鏈接(或者由硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路或者由硬連線和無線數(shù)據(jù)鏈路的組合)鏈接的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)二者執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中。在分布式系統(tǒng)環(huán)境中,程序模塊可以定位在本地存儲(chǔ)器存儲(chǔ)設(shè)備和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備二者中。
圖2圖示了包括請(qǐng)求系統(tǒng)201(在此還被稱為“客戶端”)和源系統(tǒng)202(在此還被稱為“服務(wù)器”)的環(huán)境200。特別地,請(qǐng)求系統(tǒng)201通過網(wǎng)絡(luò)232將請(qǐng)求231提交給源系統(tǒng)202,以對(duì)源系統(tǒng)202的文件系統(tǒng)實(shí)體執(zhí)行操作。這樣的操作的示例可以包括例如讀操作、更新操作、復(fù)制操作和刪除操作。文件系統(tǒng)實(shí)體可以是例如盤、分區(qū)、目錄或最基本的文件系統(tǒng)實(shí)體——文件。網(wǎng)絡(luò)202可以是例如因特網(wǎng)、另一廣域網(wǎng)(wan)、局域網(wǎng)(lan)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)(san)等。
如上文所描述的,請(qǐng)求系統(tǒng)201可以被結(jié)構(gòu)化用于圖1的計(jì)算系統(tǒng)100,并且已經(jīng)在其上對(duì)操作系統(tǒng)210進(jìn)行操作。源系統(tǒng)202包括維持多個(gè)文件系統(tǒng)實(shí)體222的文件系統(tǒng)221的操作系統(tǒng)220。例如,文件系統(tǒng)221被圖示為包括多個(gè)文件系統(tǒng)實(shí)體222,其包括文件系統(tǒng)實(shí)體222a、文件系統(tǒng)實(shí)體222b、文件系統(tǒng)實(shí)體222c、在其中間如由省略號(hào)222d所表示的潛在地多個(gè)其他文件系統(tǒng)。如上文所描述的,源系統(tǒng)202可以同樣地被結(jié)構(gòu)化用于圖1的計(jì)算系統(tǒng)100。源系統(tǒng)202還可以是服務(wù)器群集或者甚至云計(jì)算網(wǎng)絡(luò)。
圖3圖示了文件系統(tǒng)實(shí)體環(huán)境300。文件系統(tǒng)實(shí)體環(huán)境300包括文件系統(tǒng)實(shí)體301以及補(bǔ)充數(shù)據(jù)302。補(bǔ)充數(shù)據(jù)302包括位置數(shù)據(jù)303和操作期滿數(shù)據(jù)304中的至少一項(xiàng)。而且,補(bǔ)充數(shù)據(jù)302與如由虛線框305所表示的文件系統(tǒng)實(shí)體301相關(guān)聯(lián)。該關(guān)聯(lián)305使得文件系統(tǒng)實(shí)體301和補(bǔ)充數(shù)據(jù)302原子地一起移動(dòng)或復(fù)制。作為示例,文件系統(tǒng)實(shí)體301可以是圖2的文件系統(tǒng)實(shí)體222中的任一個(gè)。類似文件系統(tǒng)實(shí)體環(huán)境300可以被提供用于多個(gè)文件系統(tǒng)實(shí)體中的每個(gè)文件系統(tǒng)實(shí)體,使得如果文件系統(tǒng)實(shí)體被相應(yīng)地移動(dòng)或復(fù)制,則文件系統(tǒng)已經(jīng)將原子地移動(dòng)或者復(fù)制的位置數(shù)據(jù)和/或操作期滿數(shù)據(jù)與文件系統(tǒng)實(shí)體相關(guān)聯(lián)。
關(guān)聯(lián)305可以取決于文件系統(tǒng)而不同。在其中文件系統(tǒng)實(shí)體是文件的一個(gè)示例中,通過將補(bǔ)充數(shù)據(jù)包括在文件的備選數(shù)據(jù)流內(nèi)完成關(guān)聯(lián)305。這樣可以例如在基于新技術(shù)文件系統(tǒng)(ntfs)的文件系統(tǒng)中是適當(dāng)?shù)?。作為另一示例,可以通過包括補(bǔ)充數(shù)據(jù)作為文件系統(tǒng)實(shí)體的一個(gè)或多個(gè)特性來完成關(guān)聯(lián)305。例如,在基于索引節(jié)點(diǎn)的文件系統(tǒng)(諸如xfs、zfs和reiser4)中,可以使用擴(kuò)展文件屬性針對(duì)文件存儲(chǔ)補(bǔ)充數(shù)據(jù)。
對(duì)于未向給定文件系統(tǒng)實(shí)體條目的內(nèi)容(諸如fat16、fat32和exfat)提供擴(kuò)展的文件系統(tǒng)而言,可以使用其中補(bǔ)充數(shù)據(jù)302被寫到相同目錄中的分離文件中作為文件系統(tǒng)實(shí)體(例如,使用的適當(dāng)?shù)臄U(kuò)展)的回退方法。雖然這不是與其他方法一樣魯棒的,但是其為老系統(tǒng)提供某種水平的互操作性——但是基于位置的數(shù)據(jù)訪問實(shí)施和基于操作期滿的數(shù)據(jù)訪問實(shí)施將受消耗的操作系統(tǒng)支配。
在此所描述的原理如何在文件系統(tǒng)實(shí)體301與補(bǔ)充數(shù)據(jù)302之間做出關(guān)聯(lián)305并不重要。只說以下這點(diǎn)就夠:不管關(guān)聯(lián)如何被做出,關(guān)聯(lián)都是與潛在的文件系統(tǒng)或環(huán)境兼容的,并且被做出使得如果文件系統(tǒng)實(shí)體301被移動(dòng)或復(fù)制,則補(bǔ)充數(shù)據(jù)302也是這樣。
圖4和圖5圖示了在網(wǎng)絡(luò)上對(duì)文件系統(tǒng)實(shí)體實(shí)施操作限制的過程。圖4圖示了實(shí)施的第一建立階段的流程圖。圖5圖示了實(shí)施的第二建立階段的流程圖。特別地,圖4圖示了用于建立請(qǐng)求系統(tǒng)與源系統(tǒng)之間的連接的方法400的流程圖。圖5圖示了用于對(duì)通過在圖4的方法400中所建立的連接做出的操作請(qǐng)求實(shí)施限制的方法500的流程圖。雖然方法400可以針對(duì)特定連接執(zhí)行僅一次,但是每當(dāng)對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求被接收時(shí),可以執(zhí)行方法500??梢栽趫D2的環(huán)境200中執(zhí)行方法400和500。因此,將頻繁參考圖2的環(huán)境200描述圖4的方法400和圖5的方法500。
服務(wù)器首先在網(wǎng)絡(luò)上促進(jìn)與客戶端連接(行為410)。例如,在圖2中,源系統(tǒng)202(即,服務(wù)器202)促進(jìn)與請(qǐng)求系統(tǒng)201(即,客戶端201)連接。作為針對(duì)連接的該形式化的進(jìn)入操作之一,服務(wù)器從客戶端接收客戶端的位置(動(dòng)作411)。服務(wù)器然后提供表示客戶端的位置的數(shù)據(jù)(動(dòng)作412),為從客戶端接收到的未來的操作請(qǐng)求作準(zhǔn)備。例如,作為該提供的一部分,表示客戶端的位置的數(shù)據(jù)可以被使用在局部對(duì)象模型中,以對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的后續(xù)請(qǐng)求中使用。參考圖2,客戶端201和服務(wù)器202因此建立連接,服務(wù)器202接收客戶端201的位置數(shù)據(jù),并且服務(wù)器202提供位置數(shù)據(jù)以響應(yīng)于來自客戶端201的后續(xù)請(qǐng)求可用于對(duì)文件系統(tǒng)實(shí)體222中的任一個(gè)執(zhí)行文件系統(tǒng)實(shí)體操作。
在一個(gè)實(shí)施例中,使用服務(wù)器消息塊(smb)連接格式化建立的連接(行為410)。在該情況下,smb協(xié)議可以被修改以允許客戶端的區(qū)域(即,表示客戶端的位置的數(shù)據(jù))被呈現(xiàn)給服務(wù)器。而且,操作請(qǐng)求可能是也使用smb的網(wǎng)絡(luò)文件操作。在該實(shí)施例中,在使用smb的聯(lián)網(wǎng)文件操作可能發(fā)生之前,客戶端與服務(wù)器(其可以僅是本地或網(wǎng)絡(luò)間的另一客戶端)協(xié)商連接。圖6圖示了圖示該過程的消息圖600。
例如,根據(jù)示圖600,客戶端610(圖2的客戶端201的示例)根據(jù)smb協(xié)議發(fā)送(動(dòng)作601)smb_com_negotiate請(qǐng)求到服務(wù)器620(圖2的服務(wù)器202的示例)。作為響應(yīng),服務(wù)器620根據(jù)smb協(xié)議發(fā)送(動(dòng)作602)響應(yīng)。為了服務(wù)器理解客戶端駐留在其中的區(qū)域(其將可能不是可變的,并且因此會(huì)話的持續(xù)時(shí)間持續(xù)),附加的客戶端位置信息被發(fā)送作為會(huì)話建立的一部分。
例如,客戶端610發(fā)送(動(dòng)作603)smb_com_session_setup_andx協(xié)商消息。數(shù)據(jù)結(jié)構(gòu)smb_com_session_setup_andx由smb協(xié)議定義,但是包括無符號(hào)長(unsignedlong)的添加,其將連接的客戶端的區(qū)域表示為聯(lián)合國(un)2數(shù)字字母。新結(jié)構(gòu)可以如下(以及對(duì)現(xiàn)有結(jié)構(gòu)的改變被加上下劃線)。
在接收到表示客戶端的區(qū)域的無符號(hào)局部時(shí),服務(wù)器620存儲(chǔ)客戶端的區(qū)域用于未來的操作。例如,這可以通過改變針對(duì)給定客戶端的會(huì)話的抽象數(shù)據(jù)模型而被實(shí)現(xiàn)。完成圖6,服務(wù)器620然后根據(jù)smb協(xié)議發(fā)送(動(dòng)作604)響應(yīng)到smb_com_session_setup_andx(協(xié)商)消息??蛻舳?10然后發(fā)送(動(dòng)作605)smb_com_session_setup_andx認(rèn)證消息以認(rèn)證客戶端610。服務(wù)器620作出響應(yīng)(動(dòng)作606),從而建立會(huì)話。
圖5圖示了用于在網(wǎng)絡(luò)上對(duì)文件系統(tǒng)實(shí)體實(shí)施操作限制的方法500。在接收到對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求(動(dòng)作510)時(shí),補(bǔ)充數(shù)據(jù)被用于確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可,補(bǔ)充數(shù)據(jù)包括客戶端的位置或者操作期滿數(shù)據(jù)中的至少一項(xiàng)(動(dòng)作511)。
現(xiàn)在將以大量的細(xì)節(jié)描述方法500的兩個(gè)特定實(shí)施例。將關(guān)于圖7到圖9(和表1a到3)描述第一實(shí)施例(其中僅位置數(shù)據(jù)和客戶端的位置被用于確定所請(qǐng)求的操作是否將被許可)。將關(guān)于圖10到圖13(和表4a到6)描述第二實(shí)施例(其中僅位置數(shù)據(jù)和操作期滿數(shù)據(jù)被用于確定所請(qǐng)求的操作是否將被許可)。
第一實(shí)施例
圖7圖示了表示圖2的補(bǔ)充數(shù)據(jù)302的示例的位置數(shù)據(jù)700。位置數(shù)據(jù)700包括作為什么可以被包括在各種實(shí)施例中的示例的各種字段。不要求在此所描述的位置數(shù)據(jù)包括針對(duì)位置數(shù)據(jù)700所描述的所有或甚至一些字段。
位置數(shù)據(jù)700包括也許允許元數(shù)據(jù)被標(biāo)識(shí)為屬于時(shí)間限制的訪問的簽名701。版本702字段可以標(biāo)識(shí)版本號(hào)以便允許在此所描述的原理的改進(jìn)。位置原點(diǎn)字段703可以標(biāo)識(shí)文件系統(tǒng)實(shí)體源自的區(qū)域。在其中訪問可以取決于請(qǐng)求者的位置是否是源自文件系統(tǒng)實(shí)體的相同區(qū)域的情況中,這可以是有用的。
位置數(shù)據(jù)700還包括默認(rèn)動(dòng)作字段710,其定義當(dāng)請(qǐng)求者的位置不能被確定時(shí)可以對(duì)文件系統(tǒng)實(shí)體采取什么動(dòng)作,或者在其中所請(qǐng)求的操作未明確地被允許在允許區(qū)域列表711中或在禁止區(qū)域列表712中明確地被禁止。作為示例,默認(rèn)動(dòng)作字段710可以僅僅具有從0到15的值(構(gòu)成4個(gè)位——還被稱為“半字節(jié)”)。如果所有四個(gè)位是零,那么不存在默認(rèn)動(dòng)作被許可。如果最低有效位被設(shè)定(例如,半字節(jié)具有1、3、5、7、9、11、13或15的值),那么復(fù)制操作被許可為默認(rèn)操作。如果第二最低有效位被設(shè)定(例如,半字節(jié)具有2、3、6、7、10、11、14或15的值),那么讀操作被許可為默認(rèn)操作。如果第二最高有效位被設(shè)定(例如,半字節(jié)具有4、5、6、7、12、13、14或15的值),那么更新操作被許可為默認(rèn)操作。如果最高有效位被設(shè)定(例如,半字節(jié)具有從8到15的值,包括的),那么刪除操作被許可為默認(rèn)操作。這在下文中將被稱為“半字節(jié)方案”。
位置數(shù)據(jù)700還包括允許區(qū)域列表711,每個(gè)允許區(qū)域列表711允許區(qū)域具有符合上文所描述的半字節(jié)方案的對(duì)應(yīng)的半字節(jié)。因此,對(duì)于具有針對(duì)定位在區(qū)域內(nèi)的請(qǐng)求者的至少一個(gè)允許操作的任何區(qū)域,區(qū)域?qū)⒃谠试S的區(qū)域列表711中。針對(duì)區(qū)域的允許操作由根據(jù)針對(duì)對(duì)應(yīng)于允許區(qū)域的半字節(jié)的半字節(jié)方案設(shè)定而被定義。
位置數(shù)據(jù)700還包括禁止區(qū)域列表712,每個(gè)禁止區(qū)域具有符合上文所描述的半字節(jié)方案的對(duì)應(yīng)的半字節(jié)。因此,任何區(qū)域具有針對(duì)定位在區(qū)域內(nèi)的請(qǐng)求者的至少一個(gè)禁止操作,區(qū)域?qū)⒃诮箙^(qū)域列表712中。針對(duì)區(qū)域的禁止操作由根據(jù)針對(duì)對(duì)應(yīng)于禁止區(qū)域的半字節(jié)的半字節(jié)方案設(shè)定而被定義。
圖8圖示了用于基于請(qǐng)求者的位置來控制對(duì)數(shù)據(jù)的訪問的方法800的流程圖。方法800可以由例如源系統(tǒng)202執(zhí)行以便控制對(duì)其文件系統(tǒng)221內(nèi)的文件系統(tǒng)實(shí)體222中的一個(gè)或多個(gè)的訪問。因此,方法800可以頻繁參考圖2被描述為示例。
在源系統(tǒng)接收到對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求,發(fā)起方法800(動(dòng)作801)。例如,在圖2中,源系統(tǒng)202通過網(wǎng)絡(luò)232從請(qǐng)求系統(tǒng)201接收請(qǐng)求231。例如,假定請(qǐng)求231將對(duì)文件系統(tǒng)實(shí)體222a執(zhí)行讀操作。
源系統(tǒng)然后標(biāo)識(shí)與發(fā)出請(qǐng)求的請(qǐng)求者相關(guān)聯(lián)的位置狀態(tài)(動(dòng)作802)。例如,在圖2中,源系統(tǒng)202將確定請(qǐng)求實(shí)體201的位置狀態(tài)。在其中請(qǐng)求者的位置不能夠被確定的情況下,位置狀態(tài)可能是“未知的”。位置狀態(tài)還可以是其中請(qǐng)求者目前被定位的特定位置或區(qū)域。
然后,源系統(tǒng)使用文件系統(tǒng)實(shí)體的位置數(shù)據(jù)和請(qǐng)求者的位置狀態(tài)來確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可。例如,參考圖2,假定文件系統(tǒng)實(shí)體222a包括文件系統(tǒng)實(shí)體環(huán)境300,其中文件系統(tǒng)實(shí)體222a(或文件系統(tǒng)實(shí)體301)具有對(duì)應(yīng)的位置數(shù)據(jù)303。源系統(tǒng)可以因此訪問(例如,反序列化)位置數(shù)據(jù)303。
例如,源系統(tǒng)可以將(在動(dòng)作802中所標(biāo)識(shí)的)請(qǐng)求者的位置狀態(tài)與作為請(qǐng)求的目標(biāo)的文件系統(tǒng)實(shí)體的位置數(shù)據(jù)相比較(動(dòng)作803)。源系統(tǒng)可以然后基于比較的結(jié)果,確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可(決策塊804)。如果被許可(決策塊804中的“同意的”),則源系統(tǒng)可以使得所請(qǐng)求的操作被執(zhí)行(行為805)。如果未被許可(決策塊804中的“拒絕的”),則源系統(tǒng)可以阻止所請(qǐng)求的操作(行為806)。
在所請(qǐng)求的操作被執(zhí)行的情況下,源系統(tǒng)可以確定文件系統(tǒng)實(shí)體是否應(yīng)當(dāng)被轉(zhuǎn)碼以便與請(qǐng)求系統(tǒng)201的操作系統(tǒng)210兼容(決策塊807)。在文件系統(tǒng)操作是刪除、讀取或者更新操作的情況下,也許轉(zhuǎn)碼是不必要的(決策塊807中的“否”),并且方法結(jié)束(動(dòng)作809)。
然而,在復(fù)制操作的情況下,文件系統(tǒng)實(shí)體的復(fù)制版本可以被轉(zhuǎn)碼,這取決于文件系統(tǒng)實(shí)體環(huán)境300在操作系統(tǒng)210與220之間是否是相同的。如果它們不是相同的,那么轉(zhuǎn)碼被執(zhí)行使得位置數(shù)據(jù)302和文件系統(tǒng)實(shí)體301以適于請(qǐng)求實(shí)體的操作系統(tǒng)210或在其中請(qǐng)求者將使用文件系統(tǒng)實(shí)體的最終操作系統(tǒng)的方式被關(guān)聯(lián)305。例如,文件系統(tǒng)實(shí)體的副本可以具有從備選數(shù)據(jù)流(如果未由操作系統(tǒng)210識(shí)別)復(fù)制到文件屬性的位置數(shù)據(jù)。另外,可以改變序列化格式。如果文件系統(tǒng)實(shí)體以未由請(qǐng)求操作系統(tǒng)210(或在其中請(qǐng)求者旨在使用文件系統(tǒng)實(shí)體的操作系統(tǒng))所標(biāo)識(shí)的源操作系統(tǒng)220中的方式被序列化,那么可以執(zhí)行形式的轉(zhuǎn)碼或重新序列化。
圖9圖示了用于使用位置數(shù)據(jù)來確定所請(qǐng)求的操作是否被許可的方法900的流程圖。方法900表示圖8的動(dòng)作803和決策塊804的示例。方法900僅是可以如何做出決策的一個(gè)示例。在此所描述的原理不限于該示例。
首先,確定請(qǐng)求者的位置狀態(tài)是未知的(決策塊901)。如果請(qǐng)求者的位置狀態(tài)是未知的(決策塊901中的“是”),那么可以然后訪問(動(dòng)作911)定義所請(qǐng)求的操作是否可以被執(zhí)行的默認(rèn)規(guī)則。例如,這樣的默認(rèn)規(guī)則可以對(duì)應(yīng)于圖7中的位置數(shù)據(jù)的默認(rèn)動(dòng)作字段710。默認(rèn)規(guī)則然后被咨詢以確定所請(qǐng)求的操作是否可以基于默認(rèn)規(guī)則被執(zhí)行(決策塊912)。如果其可以被執(zhí)行(決策塊912中的“是”),那么操作被同意(動(dòng)作931),以及否則(決策塊912中的“否”),操作被拒絕(動(dòng)作932)。
另一方面,如果決策塊901導(dǎo)致位置狀態(tài)是請(qǐng)求者的位置的確定(即,請(qǐng)求者的位置狀態(tài)不是未知的——決策塊601中的“否”),允許區(qū)域(或“許可位置”)的列表被訪問(動(dòng)作921)。例如,源系統(tǒng)可以訪問對(duì)應(yīng)于文件系統(tǒng)實(shí)體的位置數(shù)據(jù)700的允許區(qū)域字段711。源系統(tǒng)然后確定(決策塊922)所請(qǐng)求的操作是否由在其中請(qǐng)求者的位置處于其中或其內(nèi)的許可區(qū)域中的任一個(gè)明確地許可。例如,在操作是讀操作的情況下,源系統(tǒng)確定是否(對(duì)于對(duì)應(yīng)于請(qǐng)求者的位置的給定允許區(qū)域而言)讀操作被指示為許可的。如果操作被指示為允許的(決策塊922中的“是”),那么操作被許可(動(dòng)作931)。
如果使用允許區(qū)域的操作未明確地被允許(決策塊922中的“否”),則拒絕區(qū)域(或“拒絕位置”)的列表被訪問(動(dòng)作923)。例如,源系統(tǒng)可以訪問對(duì)應(yīng)于文件系統(tǒng)實(shí)體的位置數(shù)據(jù)700的拒絕區(qū)域字段712。源系統(tǒng)然后確定(決策塊924)所請(qǐng)求的操作是否由在其中請(qǐng)求者的位置處于其中或其內(nèi)的許可區(qū)域中的任一個(gè)明確地許可。例如,在操作是讀操作的情況下,源系統(tǒng)確定是否(對(duì)于對(duì)應(yīng)于請(qǐng)求者的位置的給定允許區(qū)域而言)讀操作被指示為禁止的。如果操作被指示為禁止的(決策塊924中的“是”),那么操作被許可(動(dòng)作932)。否則(決策塊924中的“否”),方法可以返回行為911以咨詢默認(rèn)規(guī)則。然后,所請(qǐng)求的操作的允許性根據(jù)默認(rèn)規(guī)則被確定(決策塊912)。
因此,在此所描述的原理許可數(shù)據(jù)主權(quán)被享有,使得對(duì)文件系統(tǒng)實(shí)體(例如,文件)的操作可以由請(qǐng)求者的位置限制。而且,當(dāng)操作被許可并且文件系統(tǒng)的副本將變得可用時(shí),可以對(duì)文件系統(tǒng)實(shí)體環(huán)境進(jìn)行轉(zhuǎn)碼,使得請(qǐng)求系統(tǒng)還可以具有對(duì)位置數(shù)據(jù)的訪問,從而還實(shí)施數(shù)據(jù)主權(quán)規(guī)則。
在該第一實(shí)施例中關(guān)于圖7描述了位置數(shù)據(jù)的示例結(jié)構(gòu),現(xiàn)在將相應(yīng)地關(guān)于表1到表3描述三個(gè)特定序列化實(shí)現(xiàn)。下面表1a和表1b圖示了針對(duì)位置數(shù)據(jù)的二進(jìn)制文件格式。表1a圖示了示例文件表頭格式。表1b圖示了示例支持?jǐn)?shù)據(jù)結(jié)構(gòu)。
表1a
表1b
表2
以下表3使用可擴(kuò)展標(biāo)記語言(xml)文檔示出位置數(shù)據(jù)的便攜的示例。
第二實(shí)施例
圖10圖示了表示圖3的補(bǔ)充數(shù)據(jù)302的補(bǔ)充數(shù)據(jù)1000。補(bǔ)充數(shù)據(jù)1000包括作為什么可以被包括在各種實(shí)施例中的示例的各種字段。不要求在此所描述的位置數(shù)據(jù)303或操作期滿數(shù)據(jù)304包括針對(duì)補(bǔ)充數(shù)據(jù)1000所描述的所有或甚至一些字段。
補(bǔ)充數(shù)據(jù)1000包括也許允許元數(shù)據(jù)被標(biāo)識(shí)為屬于時(shí)間限制的訪問的簽名1001。版本字段1002可以標(biāo)識(shí)版本號(hào)以便允許在此所描述的原理的改進(jìn)。位置原點(diǎn)字段1003可以標(biāo)識(shí)文件系統(tǒng)實(shí)體源自的區(qū)域。在其中訪問或操作可以取決于請(qǐng)求者的位置是否是源自文件系統(tǒng)實(shí)體的相同區(qū)域的情況中,這可以是有用的。
補(bǔ)充數(shù)據(jù)1000還包括實(shí)體生存時(shí)間字段1010,其如果存在的話,可以用于定義文件系統(tǒng)實(shí)體自身的生存時(shí)間而不管請(qǐng)求者的位置狀態(tài)。在一個(gè)示例中,生存時(shí)間字段1010可以包括文件期滿字段1011和刪除指示符1012。例如,文件期滿字段1011可以是無符號(hào)長,并且刪除指示符1012可以是布爾。
當(dāng)被評(píng)價(jià)時(shí),僅作為示例,無符號(hào)長1011中的負(fù)值指示對(duì)應(yīng)的文件系統(tǒng)實(shí)體已經(jīng)期滿,并且僅對(duì)于刪除操作是合格的。布爾1012表示如果文件系統(tǒng)實(shí)體被發(fā)現(xiàn)已經(jīng)期滿,文件系統(tǒng)實(shí)體是否將自動(dòng)地刪除。在該示例中,無符號(hào)長1011中的零值指示文件系統(tǒng)實(shí)體當(dāng)前不具有期滿時(shí)間。無符號(hào)長1011中的正值指示期滿時(shí)間,其可以與當(dāng)前時(shí)間相比較以確定文件系統(tǒng)實(shí)體已經(jīng)期滿。此外,如果無符號(hào)長1011用于指示文件系統(tǒng)實(shí)體已經(jīng)期滿,布爾1012被評(píng)價(jià)以在文件系統(tǒng)實(shí)體已經(jīng)期滿的檢測時(shí)確定文件系統(tǒng)實(shí)體是否將自動(dòng)地刪除。
補(bǔ)充數(shù)據(jù)1000還包括區(qū)域期滿字段1020。在一個(gè)示例中,文件生存時(shí)間字段1010和區(qū)域期滿字段1020中的至少一者(和潛在地二者)將存在于補(bǔ)充數(shù)據(jù)1000內(nèi)。區(qū)域期滿字段1020包括各自針對(duì)對(duì)應(yīng)的區(qū)域的多個(gè)區(qū)域字段。例如,區(qū)域期滿字段1020被圖示為包括三個(gè)區(qū)域字段1021、1022和1023。然而,省略號(hào)1024符號(hào)表示在區(qū)域期滿字段1020內(nèi)可以存在任何數(shù)目的區(qū)域字段。作為示例,每個(gè)區(qū)域字段(1021到1024)可以使用任何裝置標(biāo)識(shí)對(duì)應(yīng)的國家。這樣的標(biāo)識(shí)的示例可以包括聯(lián)合國國家代碼。在一個(gè)實(shí)施例中,如果請(qǐng)求者的位置狀態(tài)是未知的或不存在于針對(duì)其存在區(qū)域字段的其他區(qū)域中的任一個(gè)內(nèi)。
圖11抽象地圖示了表示圖10的區(qū)域字段1021到1024中的任一個(gè)的示例的區(qū)域字段1100。區(qū)域字段1100包括多個(gè)操作字段。特別地,區(qū)域字段1100被圖示為包括四個(gè)操作字段1110、1120、1130和1140。然而,省略號(hào)1150表示在區(qū)域字段內(nèi)可以存在任何數(shù)目的操作字段。操作的示例可以包括讀取、復(fù)制、更新和刪除。每個(gè)操作期滿字段1110、1120、1130和1140相應(yīng)地包括相應(yīng)的操作期滿指示符字段1111、1121、1131和1141,以及相應(yīng)的刪除指示符字段1112、1122、1132和1142。如果出現(xiàn)其中指示請(qǐng)求者具有區(qū)域期滿字段1020中所表示的區(qū)域之一的位置狀態(tài)的請(qǐng)求,那么所請(qǐng)求的操作被標(biāo)識(shí)為確定相應(yīng)的區(qū)域字段(例如,1021和1100)的操作期滿字段用于定義操作是否被許可或不再被許可。此外,在一個(gè)實(shí)施例中,每個(gè)操作期滿指示符字段1111、1121、1131和1141可以是無符號(hào)長,并且每個(gè)刪除指示符字段1112、1122、1132和1142可以是布爾。
當(dāng)被評(píng)價(jià)時(shí),針對(duì)相應(yīng)的操作期滿指示符字段1110、1120、1130、1140的有符號(hào)長的負(fù)值指示給定請(qǐng)求者的位置狀態(tài),針對(duì)對(duì)應(yīng)的文件系統(tǒng)實(shí)體的操作已經(jīng)期滿,并且給定請(qǐng)求者的位置狀態(tài),如果被許可的話,則僅對(duì)于刪除操作是合格的。布爾表示如果文件系統(tǒng)實(shí)體被發(fā)現(xiàn)已經(jīng)期滿,文件系統(tǒng)實(shí)體是否將自動(dòng)地刪除。在該示例中,有符號(hào)長中的零值指示給定請(qǐng)求者的位置狀態(tài),對(duì)相應(yīng)的文件系統(tǒng)實(shí)體的相應(yīng)的操作不具有期滿時(shí)間。有符號(hào)長中的正值指示期滿時(shí)間,其可以與當(dāng)前圖像相比較以確定給定請(qǐng)求者的位置,針對(duì)文件系統(tǒng)實(shí)體的相應(yīng)的操作是否已經(jīng)期滿。此外,如果有符號(hào)長用于指示給定請(qǐng)求者的位置,對(duì)文件系統(tǒng)實(shí)體的操作已經(jīng)期滿,則布爾被評(píng)價(jià)以確定文件系統(tǒng)實(shí)體是否將自動(dòng)地刪除。
圖12圖示了用于基于請(qǐng)求者的位置和期滿數(shù)據(jù)來控制對(duì)數(shù)據(jù)的訪問的方法1200的流程圖。方法1200可以由例如源系統(tǒng)202執(zhí)行以便控制對(duì)其文件系統(tǒng)221內(nèi)的文件系統(tǒng)實(shí)體222中的一個(gè)或多個(gè)的訪問。因此,方法1200可以頻繁參考圖2被描述為示例。
在源系統(tǒng)接收到對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求時(shí),發(fā)起方法1200(動(dòng)作1201)。例如,在圖2中,源系統(tǒng)202從請(qǐng)求系統(tǒng)201接收請(qǐng)求231。例如,假定請(qǐng)求231將對(duì)文件系統(tǒng)實(shí)體222a執(zhí)行讀操作。
源系統(tǒng)然后標(biāo)識(shí)與發(fā)出請(qǐng)求的請(qǐng)求者相關(guān)聯(lián)的位置狀態(tài)(動(dòng)作1202)。例如,在圖2中,源系統(tǒng)202將確定請(qǐng)求實(shí)體201的位置狀態(tài)。在其中請(qǐng)求者的位置不能夠被確定的情況下,位置狀態(tài)可能是“未知的”。位置狀態(tài)還可以是其中請(qǐng)求者目前被定位的特定位置或區(qū)域。
然后,源系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)于位置狀態(tài)并且與所請(qǐng)求的操作相關(guān)聯(lián)的期滿數(shù)據(jù)(動(dòng)作1203)。例如,參考圖2,假定文件系統(tǒng)實(shí)體222a被請(qǐng)求以進(jìn)行操作,并且文件系統(tǒng)實(shí)體222a包括圖3的文件系統(tǒng)實(shí)體環(huán)境300。在該情況下,可以訪問(例如,反序列化)(被表示為圖10的補(bǔ)充數(shù)據(jù)1000)的適當(dāng)?shù)难a(bǔ)充數(shù)據(jù)。給定位置狀態(tài),可以定位補(bǔ)充數(shù)據(jù)1000的適當(dāng)?shù)膮^(qū)域字段(例如,1021、1022、1023)。而且,給定所請(qǐng)求的操作,適當(dāng)?shù)牟僮髯侄?例如,如果區(qū)域字段1100應(yīng)用則1110、1120、1130或1140)被定位。
所標(biāo)識(shí)的期滿數(shù)據(jù)然后用于確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可(決策塊1204)。例如,如上文所指示的,如果操作字段(例如,字段1110)的無符號(hào)長(例如,字段1111)的(決策塊1204中的“否”)是負(fù)的或當(dāng)前時(shí)間在操作字段中所表示的時(shí)間之后,那么所請(qǐng)求的操作被拒絕(動(dòng)作1205)。例如,這可以涉及阻止對(duì)文件系統(tǒng)實(shí)體的操作的源系統(tǒng)。另一方面(決策塊1204中的“是”),如果操作字段1110的無符號(hào)長1111是零或者當(dāng)前時(shí)間在操作期滿字段中所表示的時(shí)間之前,那么所請(qǐng)求的操作被許可(動(dòng)作1206)。
如果操作被拒絕(決策塊1204中的“否”),對(duì)操作字段(例如,1110)的期滿字段(例如,1112)的刪除用于確定文件系統(tǒng)實(shí)體將自動(dòng)地刪除(決策塊1207)。如果是的話(決策塊1207中的“是”),則文件系統(tǒng)實(shí)體被刪除(動(dòng)作1210)。否則,針對(duì)所請(qǐng)求的操作,方法結(jié)束(動(dòng)作1209)。文件系統(tǒng)實(shí)體保持,但是在其上操作的請(qǐng)求已經(jīng)仍然被拒絕。
在所請(qǐng)求的操作被許可(決策塊1204中的“是”)的情況下,方法1200還可以包括使得所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上被執(zhí)行。源系統(tǒng)可以然后確定文件系統(tǒng)實(shí)體是否應(yīng)當(dāng)被轉(zhuǎn)碼以便與請(qǐng)求系統(tǒng)201的操作系統(tǒng)210兼容(決策塊1211)。在文件系統(tǒng)操作是刪除、讀取或者更新操作的情況下,也許轉(zhuǎn)碼是不必要的(決策塊1211中的“否”),并且方法結(jié)束(動(dòng)作1209)。
然而,在復(fù)制操作(決策塊1211中的“是”)的情況下,文件系統(tǒng)實(shí)體的復(fù)制版本可以被轉(zhuǎn)碼(動(dòng)作1212),這取決于文件系統(tǒng)實(shí)體環(huán)境300在操作系統(tǒng)210與220之間是否相同。如果它們不相同,那么轉(zhuǎn)碼被執(zhí)行使得位置數(shù)據(jù)302、操作期滿數(shù)據(jù)303(即,補(bǔ)充數(shù)據(jù)1000)和文件系統(tǒng)實(shí)體301以適于請(qǐng)求實(shí)體的操作系統(tǒng)210或在其中請(qǐng)求者將使用文件系統(tǒng)實(shí)體的最終操作系統(tǒng)的方式被關(guān)聯(lián)304。例如,文件系統(tǒng)實(shí)體的副本可以具有從備選數(shù)據(jù)流(如果未由操作系統(tǒng)210識(shí)別)復(fù)制到文件屬性的補(bǔ)充數(shù)據(jù)。另外,可以改變序列化格式。如果文件系統(tǒng)實(shí)體以未由請(qǐng)求操作系統(tǒng)210(或在其中請(qǐng)求者旨在使用文件系統(tǒng)實(shí)體的操作系統(tǒng))標(biāo)識(shí)的源操作系統(tǒng)220中的方式被序列化,那么可以執(zhí)行形式的轉(zhuǎn)碼或重新序列化。
圖13圖示了用于基于請(qǐng)求者的位置狀態(tài)并且基于特定操作的期滿數(shù)據(jù)來控制對(duì)文件系統(tǒng)實(shí)體的訪問的更特定的方法。在接收到請(qǐng)求(動(dòng)作1301)時(shí),發(fā)起方法1300。然后訪問對(duì)應(yīng)的文件系統(tǒng)實(shí)體的補(bǔ)充數(shù)據(jù)1000(在圖13中被稱為“時(shí)間和位置元數(shù)據(jù)(m)”)(動(dòng)作1302)。這可以包含將補(bǔ)充數(shù)據(jù)1000反序列化。
然后確定請(qǐng)求者的位置狀態(tài)(動(dòng)作1303)。動(dòng)作1303是圖12的行為1202的示例。在其中請(qǐng)求者的位置不能被確定的情況下,位置狀態(tài)可能是“未知的”。
然后確定在補(bǔ)充數(shù)據(jù)1000中是否存在任何實(shí)體生存時(shí)間數(shù)據(jù)(例如,字段1010被有效地填充)(動(dòng)作1304)。如果存在(決策塊1304中的“是”),方法1300執(zhí)行上文尚未參考圖12描述的動(dòng)作1305到1315(其中的一些是有條件的)。
特別地,如果針對(duì)實(shí)體生存時(shí)間數(shù)據(jù)的有符號(hào)長等于零(決策塊1305中的“是”),則這意味著文件系統(tǒng)實(shí)體沒有期滿,并且因此許可操作(動(dòng)作1306)。另一方面(決策塊1305中的“否”),如果無符號(hào)長是負(fù)的(決策塊1307中的“是”),那么確定文件系統(tǒng)實(shí)體已經(jīng)期滿(動(dòng)作1308)。在該情況下,評(píng)價(jià)文件刪除指示符1012(決策塊1309)。如果該布爾是真(決策塊1309中的“是”),那么文件系統(tǒng)實(shí)體從磁盤被刪除(動(dòng)作1310),并且操作被中止(動(dòng)作1311)。否則,如果布爾是假(決策塊1309中的“否”),那么在不刪除文件系統(tǒng)實(shí)體(繞過動(dòng)作1310)的情況下,操作被中止(動(dòng)作1311)。
如果有符號(hào)長不是零(決策塊1305中的“否”),并且不是負(fù)的(決策塊1307中的“否”),那么有符號(hào)長被評(píng)價(jià)為日期/時(shí)間戳(動(dòng)作1312)。日期/時(shí)間戳的示例是unix日期/時(shí)間戳。如果當(dāng)前時(shí)間大于日期/時(shí)間戳(決策塊1313中的“是”),那么文件再次被確定為已經(jīng)期滿(動(dòng)作1314),并且此外評(píng)價(jià)刪除指示符1012(決策塊1309)。此外,如果文件刪除指示符1012被設(shè)定(決策塊1309中的“是”),那么文件系統(tǒng)實(shí)體被刪除(動(dòng)作1310),并且所請(qǐng)求的操作被中止(動(dòng)作1311)。如果刪除指示符1012未被設(shè)定(決策塊1309中的“否”),那么在不刪除文件系統(tǒng)實(shí)體的情況下,所請(qǐng)求的操作被中止(動(dòng)作1311)。如果有符號(hào)長是正的(決策塊1305和1307中的“否”),并且當(dāng)前時(shí)間小于日期/時(shí)間戳(決策塊1315中的“否”),那么所請(qǐng)求的操作被許可繼續(xù)(動(dòng)作1315)。
返回決策塊1304,如果補(bǔ)充數(shù)據(jù)不包括有效填充實(shí)體生存時(shí)間字段1010(決策塊1304中的“否”),那么確定(決策塊1316)請(qǐng)求者的位置狀態(tài)是未知的還是不在區(qū)域字段1020中的區(qū)域的列表內(nèi)(決策塊1316中的“否”)。在該情況下,默認(rèn)期滿規(guī)則集被用于操作(動(dòng)作1317)(圖13的“期滿規(guī)則集”對(duì)應(yīng)于圖10的區(qū)域字段(例如,1021到1024))。例如,在一個(gè)實(shí)施例中,區(qū)域字段1021可以用在請(qǐng)求者的區(qū)域或者是未知的或者不在其他所列出的區(qū)域內(nèi)的情況中。如果請(qǐng)求者的位置是對(duì)應(yīng)于與區(qū)域字段對(duì)應(yīng)的實(shí)際區(qū)域的特定位置(決策塊1316中的“是”),那么使用針對(duì)特定區(qū)域的期滿規(guī)則集(動(dòng)作1318)。例如,也許區(qū)域字段1021對(duì)應(yīng)于未知的位置狀態(tài)(即,是默認(rèn)規(guī)則集),然而區(qū)域字段1022可以對(duì)應(yīng)于英國。在該情況下,如果請(qǐng)求者被確定為被定位在英國內(nèi),那么區(qū)域字段1022將被使用。
在任何情況下,無論通過默認(rèn)規(guī)則集(動(dòng)作1317)還是通過區(qū)域規(guī)則集的使用(動(dòng)作1318),獲取規(guī)則集,并且獲取相關(guān)操作期滿字段。例如,如果所請(qǐng)求的操作是復(fù)制操作,并且操作點(diǎn)1110用于復(fù)制操作。操作期滿指示符字段1111將被訪問并且被評(píng)價(jià)(動(dòng)作1319)。這將對(duì)應(yīng)于圖12的動(dòng)作1203。
特別地,如果針對(duì)操作期滿指示符字段的有符號(hào)長等于零(決策塊1320中的“是”),這意味著給定請(qǐng)求者的位置狀態(tài),文件系統(tǒng)實(shí)體的操作沒有期滿(確定1321),并且因此操作被許可。另一方面(決策塊1320中的“否”),如果有符號(hào)長是負(fù)的(決策塊1322中的“是”),那么確定給定請(qǐng)求者的位置狀態(tài),對(duì)文件系統(tǒng)實(shí)體的操作已經(jīng)期滿(動(dòng)作1323)。在該情況下,刪除指示符字段(例如,針對(duì)操作字段1110的1112)被評(píng)價(jià)(決策塊1324)。如果該布爾是真(決策塊1324中的“是”),那么文件系統(tǒng)實(shí)體從盤被刪除(動(dòng)作1325),并且操作被中止(動(dòng)作1326)。否則,如果布爾是假(決策塊1324中的“否”),那么在不刪除文件系統(tǒng)實(shí)體(繞過動(dòng)作1325)的情況下,操作被中止(動(dòng)作1326)。
如果有符號(hào)長不是零(決策塊1320中的“否”),并且不是負(fù)的(決策塊1322中的“否”),那么有符號(hào)長被評(píng)價(jià)為日期/時(shí)間戳(動(dòng)作1327)。此外,日期/時(shí)間戳的示例是unix日期/時(shí)間戳。如果當(dāng)前時(shí)間大于日期/時(shí)間戳(決策塊1328中的“是”),那么對(duì)文件系統(tǒng)實(shí)體的操作再次被確定為已經(jīng)期滿(動(dòng)作1329),并且此外刪除指示符字段1112被評(píng)價(jià)(決策塊1324)。此外,如果刪除指示符1012被設(shè)定(決策塊1324中的“是”),那么文件系統(tǒng)實(shí)體被刪除(動(dòng)作1325),并且所請(qǐng)求的操作被中止(動(dòng)作1326)。如果刪除指示符字段未被設(shè)定(決策塊1324中的“否”),那么在不刪除文件系統(tǒng)實(shí)體的情況下,所請(qǐng)求的操作被中止(動(dòng)作1326)。如果有符號(hào)長是正(決策塊1320和1322中的“否”),并且當(dāng)前時(shí)間小于日期/時(shí)間戳(決策塊1328中的“否”),那么所請(qǐng)求的操作被許可繼續(xù)(動(dòng)作1330)。
因此,再次所描述的原理許可數(shù)據(jù)主權(quán)和期滿數(shù)據(jù)以單個(gè)操作的顆粒度被享有,使得對(duì)文件系統(tǒng)實(shí)體(例如,文件)的操作(和其期滿)可以由請(qǐng)求者的位置限制。此外,當(dāng)操作被許可并且文件系統(tǒng)的副本將變得可用時(shí),可以對(duì)文件系統(tǒng)實(shí)體環(huán)境進(jìn)行轉(zhuǎn)碼,使得請(qǐng)求系統(tǒng)還可以具有對(duì)位置數(shù)據(jù)和操作期滿數(shù)據(jù)的訪問,從而還實(shí)施關(guān)于訪問和期滿的數(shù)據(jù)主權(quán)規(guī)則。
已經(jīng)描述了關(guān)于圖10的該第二實(shí)施例中的補(bǔ)充數(shù)據(jù)的示例結(jié)構(gòu),現(xiàn)在將相應(yīng)地關(guān)于表4a到表6描述三個(gè)特定序列化實(shí)現(xiàn)。下面表4a和表4b圖示了針對(duì)補(bǔ)充數(shù)據(jù)的二進(jìn)制文件格式。表4a圖示了示例文件表頭格式。表4b圖示了示例支持?jǐn)?shù)據(jù)結(jié)構(gòu)。
表4a
表4b
表5圖示了使用java-script對(duì)象符號(hào)(json)的位置數(shù)據(jù)的更便攜的實(shí)施例。
表5
以下表6使用可擴(kuò)展標(biāo)記語言(xml)文檔示出位置數(shù)據(jù)的便攜的示例。
表6
因此,已經(jīng)描述用于保留由區(qū)域和操作特定的生存時(shí)間所實(shí)施的期滿的數(shù)據(jù)的主權(quán)的機(jī)制。
權(quán)利要求支持部分
在此描述了一種用于在網(wǎng)絡(luò)上對(duì)文件系統(tǒng)實(shí)體實(shí)施操作限制的方法,該方法包括:源計(jì)算系統(tǒng)接收請(qǐng)求計(jì)算系統(tǒng)的位置作為會(huì)話的進(jìn)入通信的一部分的動(dòng)作;接收對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求作為會(huì)話的一部分的動(dòng)作;以及使用補(bǔ)充數(shù)據(jù)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作,補(bǔ)充數(shù)據(jù)包括位置數(shù)據(jù)或者操作期滿數(shù)據(jù)中的至少一項(xiàng)。
方法還可以包括以下:如果確定所請(qǐng)求的操作被許可,使得所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上被執(zhí)行的動(dòng)作。在該情況下,使得所請(qǐng)求的操作被執(zhí)行的動(dòng)作包括:將文件系統(tǒng)實(shí)體轉(zhuǎn)碼為適于請(qǐng)求計(jì)算系統(tǒng)的操作系統(tǒng)的經(jīng)轉(zhuǎn)碼的文件系統(tǒng)實(shí)體的動(dòng)作;和/或?qū)⑽募到y(tǒng)實(shí)體轉(zhuǎn)碼為由請(qǐng)求計(jì)算系統(tǒng)的操作系統(tǒng)實(shí)現(xiàn)的序列化實(shí)現(xiàn)中的動(dòng)作。方法還可以包括:將請(qǐng)求計(jì)算系統(tǒng)的位置包括在本地對(duì)象模型中以在來自請(qǐng)求計(jì)算系統(tǒng)中的后續(xù)請(qǐng)求使用以對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的動(dòng)作。
在此還描述了一種包括在其上具有一個(gè)或多個(gè)計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)可執(zhí)行指令被結(jié)構(gòu)化使得當(dāng)由源計(jì)算系統(tǒng)中的一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得源計(jì)算系統(tǒng)執(zhí)行以下各項(xiàng):源計(jì)算系統(tǒng)與請(qǐng)求計(jì)算系統(tǒng)通過網(wǎng)絡(luò)建立會(huì)話的動(dòng)作;源計(jì)算系統(tǒng)通過存儲(chǔ)請(qǐng)求計(jì)算系統(tǒng)的位置來對(duì)會(huì)話上的請(qǐng)求計(jì)算系統(tǒng)的位置的接收作出響應(yīng)的動(dòng)作;以及響應(yīng)于從請(qǐng)求計(jì)算系統(tǒng)接收對(duì)文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求而執(zhí)行以下各項(xiàng)的動(dòng)作:使用補(bǔ)充數(shù)據(jù)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作,補(bǔ)充數(shù)據(jù)包括位置數(shù)據(jù)或操作期滿數(shù)據(jù)中的至少一項(xiàng)。
計(jì)算機(jī)可執(zhí)行指令還可以被結(jié)構(gòu)化使得當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),還使得源計(jì)算系統(tǒng)執(zhí)行以下各項(xiàng):將補(bǔ)充數(shù)據(jù)與系統(tǒng)實(shí)體相關(guān)聯(lián)使得補(bǔ)充數(shù)據(jù)和文件系統(tǒng)實(shí)體原子地一起被移動(dòng)或被復(fù)制的動(dòng)作。將補(bǔ)充數(shù)據(jù)與文件系統(tǒng)實(shí)體相關(guān)聯(lián)的動(dòng)作可以包括:將補(bǔ)充數(shù)據(jù)包括在文件系統(tǒng)實(shí)體的備選數(shù)據(jù)流中的行為。將補(bǔ)充數(shù)據(jù)與文件系統(tǒng)實(shí)體相關(guān)聯(lián)的動(dòng)作可以包括:包括補(bǔ)充數(shù)據(jù)作為文件系統(tǒng)實(shí)體的一個(gè)或多個(gè)屬性的動(dòng)作。
使用位置數(shù)據(jù)或操作期滿數(shù)據(jù)中的一個(gè)或多個(gè)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作可以包括:使用位置數(shù)據(jù)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作。使用位置數(shù)據(jù)確定所請(qǐng)求的操作是否被許可的動(dòng)作還可以包括以下各項(xiàng):訪問來自位置數(shù)據(jù)的一個(gè)或多個(gè)許可區(qū)域集的動(dòng)作,每個(gè)許可區(qū)域與被許可的一個(gè)或多個(gè)操作類型;確定客戶端的位置在所請(qǐng)求的操作被明確地許可的許可區(qū)域內(nèi);以及在所請(qǐng)求的操作被確定為具有客戶端的位置在對(duì)應(yīng)的一個(gè)或多個(gè)許可位置集中的任一個(gè)內(nèi)的操作類型的情況下同意所請(qǐng)求的操作的動(dòng)作。使用位置數(shù)據(jù)確定所請(qǐng)求的操作是否被許可的動(dòng)作還可以包括:訪問來自位置數(shù)據(jù)的一個(gè)或多個(gè)禁止區(qū)域集的動(dòng)作,每個(gè)禁止區(qū)域與所禁止的一個(gè)或多個(gè)操作類型相關(guān)聯(lián);確定客戶端的位置在所請(qǐng)求的操作被明確地禁止的禁止區(qū)域內(nèi)的動(dòng)作;以及在所請(qǐng)求的操作被確定為具有請(qǐng)求者的位置在對(duì)應(yīng)的一個(gè)或多個(gè)區(qū)域位置集中的任一個(gè)內(nèi)的操作類型的情況下拒絕所請(qǐng)求的操作的動(dòng)作。
使用位置數(shù)據(jù)或操作期滿數(shù)據(jù)中的一項(xiàng)或多項(xiàng)來確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作包括:使用操作期滿數(shù)據(jù)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作。
使用位置數(shù)據(jù)或操作期滿數(shù)據(jù)中的一項(xiàng)或多項(xiàng)來確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作可以包括:使用位置數(shù)據(jù)和操作期滿數(shù)據(jù)二者來確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作,操作期滿數(shù)據(jù)與請(qǐng)求計(jì)算系統(tǒng)的位置、文件系統(tǒng)實(shí)體和所請(qǐng)求的操作相關(guān)聯(lián)。使用補(bǔ)充數(shù)據(jù)確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作可以包括:確定與請(qǐng)求計(jì)算系統(tǒng)的位置、文件系統(tǒng)實(shí)體和請(qǐng)求操作相關(guān)聯(lián)的操作期滿數(shù)據(jù)中的期滿時(shí)間的動(dòng)作;確定與期滿時(shí)間相比較的相關(guān)時(shí)間的動(dòng)作;以及確定是否基于相關(guān)時(shí)間與期滿時(shí)間的比較來確定所請(qǐng)求的操作是否被許可的動(dòng)作。
在此還描述了一種源計(jì)算系統(tǒng),其包括:一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其在其上具有由源計(jì)算系統(tǒng)的操作系統(tǒng)管理的多個(gè)文件系統(tǒng)實(shí)體;以及一個(gè)或多個(gè)處理器。一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)在其上具有一個(gè)或多個(gè)計(jì)算機(jī)可執(zhí)行指令,其被結(jié)構(gòu)化使得當(dāng)由源計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得源計(jì)算系統(tǒng)執(zhí)行以下各項(xiàng):源計(jì)算系統(tǒng)與請(qǐng)求計(jì)算系統(tǒng)在網(wǎng)絡(luò)上建立會(huì)話的動(dòng)作;源計(jì)算系統(tǒng)通過存儲(chǔ)請(qǐng)求計(jì)算系統(tǒng)的位置來對(duì)會(huì)話上的請(qǐng)求計(jì)算系統(tǒng)的位置的接收作出響應(yīng)的動(dòng)作;以及響應(yīng)于從請(qǐng)求計(jì)算系統(tǒng)接收對(duì)多個(gè)文件系統(tǒng)實(shí)體的文件系統(tǒng)實(shí)體執(zhí)行操作的請(qǐng)求而執(zhí)行以下各項(xiàng)的動(dòng)作:使用補(bǔ)充數(shù)據(jù)來確定所請(qǐng)求的操作在文件系統(tǒng)實(shí)體上是否被許可的動(dòng)作,補(bǔ)充數(shù)據(jù)包括位置數(shù)據(jù)的位置或操作期滿數(shù)據(jù)中的至少一項(xiàng)。
在不脫離其精神或主要特性的情況下,可以以其他特定形式實(shí)現(xiàn)本發(fā)明。所描述的實(shí)施例在所有方面中將被認(rèn)為是說明性而非限制性的。因此,本發(fā)明的范圍由所附的權(quán)利要求而不是由前述描述指示。在權(quán)利要求的等價(jià)的意義和范圍內(nèi)的所有改變將被包括在其范圍內(nèi)。