專利名稱:一種基于網絡存儲裝置的目錄樹緩存系統及方法
技術領域:
本發明涉及計算機網絡存儲裝置,尤其涉及一種基于網絡存儲裝置的目錄樹緩存系統;此外,本發明還涉及一種基于網絡存儲裝置的目錄樹緩存方法。
背景技術:
首先指出,本發明中涉及到的網絡存儲裝置是指網絡存儲服務,通常包括,但不限于網絡相冊、在線文件存儲、在線日記、網絡硬盤服務。隨著互聯網技術的發展,以及在線數據存儲應用的普及程度越來越高,人們趨向于把自己的文件數據、電子相冊、音樂、視頻存放在網絡存儲裝置上。目前,用戶在網絡存儲裝置中動輒便會存儲幾個GB、甚至更多的文件數據,而網絡存儲裝置的客戶端程序通常會把所有的數據文件同步到客戶端設備上,以便于人們瀏覽目錄,查找、編輯文件。這使得數據同步過程變得十分漫長,尤其是在網絡環境較差的情況、以及用戶在使用手持客戶端等擁有較少系統資源的設備的情況。而值得注意的是,用戶每次使用網絡存儲裝置進行文件訪問時,用戶雖然可能會瀏覽所有的目錄結構,但是用戶并不會使用(這里指文件的打開、編輯操作)所有的文件, 通常用戶會進行操作的文件數量占網絡存儲裝置中總的文件數量的比例非常小,即絕大多數文件對于用戶來說,在短期內是根本不會訪問得到。由此可見,影響用戶操作流暢度最大的是目錄樹結構的瀏覽速度。
發明內容
本發明要解決的技術問題是提供一種基于網絡存儲裝置的目錄樹緩存方法及應用系統,使得用戶可以像瀏覽本地文件一樣快速的瀏覽所有位于遠程網絡存儲裝置的文件目錄,而不必下載網絡存儲裝置上的文件數據,大大節省了計算機資源,大大減少了網絡帶寬和系統資源,提升了計算機系統內部性能。為解決上述技術問題,本發明提供一種基于網絡存儲裝置的目錄樹緩存系統,包括位于遠程的網絡存儲裝置和本地設備,該本地設備包括本地目錄樹緩存單元和指令分發單元;該本地目錄樹緩存單元存放網絡存儲裝置的目錄樹結構,用于快速應答用戶對目錄樹結構數據的操作請求,并可以根據緩存更新策略對目錄樹緩存進行自動更新;該指令分發單元用于轉發來自于用戶的目錄請求(也可稱為目錄操作請求,本文中統一稱為“目錄請求”),將目錄請求(即目錄操作指令)分發到本地目錄樹緩存單元以及位于遠程的網絡存儲裝置。該指令分發單元按以下情況進行指令分發在接收到用戶目錄請求時,指令分發單元將目錄請求轉發給本地目錄樹緩存單元,以便快速返回目錄應答結果;同時,指令分發單元還會根據緩存更新策略,轉發目錄請求到遠程的網絡存儲裝置, 并把應答結果轉發給本地目錄樹緩存單元,以確定本地緩存中是否存在臟數據,以便完成目錄樹緩存的更新。
所述緩存更新策略是指本地目錄樹緩存單元對其存儲的目錄樹結構的更新策略, 包括定時更新策略和及時更新策略;該定時更新策略是指,本地目錄樹緩存單元定時向遠程網絡存儲裝置獲取最新的目錄樹結構數據;該及時更新策略是指,本地目錄樹緩存單元只在有用戶提出目錄請求時才向遠程網絡存儲裝置獲取目標目錄結構。所述網絡存儲裝置是指位于遠程的網絡存儲服務,包括網絡相冊、在線文件存儲、在線日記和網絡硬盤服務;該網絡存儲裝置提供開放的應用程序接口,以供第三方應用程序調用。所述本地目錄樹緩存單元存儲的目錄樹結構包括目錄樹結構數據、文件結構數據,以及目錄和文件的屬性數據。此外,本發明還提供一種基于網絡存儲裝置的目錄樹緩存方法,包括如下步驟(1)用戶發出目錄請求;(2)指令分發單元接收來自用戶的目錄請求,并發送該目錄請求到本地目錄樹緩存單元;(3)本地目錄樹緩存單元判斷是否存儲有用戶訪問的目錄樹結構數據,如果有 則根據用戶的目錄請求,立即向用戶返回目錄應答結果;如果沒有則通過指令分發單元將用戶的目錄請求轉發到遠程的網絡存儲裝置,在本地目錄樹緩存單元接收到網絡存儲裝置的目錄操作應答后,將此目錄樹結構加入到本地目錄樹緩存單元中,并向用戶返回目錄操作應答;(4)根據本地目錄樹緩存策略,本地設備會定時或及時的更新本地目錄樹緩存。如果是定時更新策略,目錄樹緩存單元將會定時向遠程網絡存儲裝置查詢緩存中的目錄結構是否是最新狀態,并根據查詢結果進行緩存更新;如果是及時更新策略,在指令分發單元收到用戶的目錄請求后,指令分發單元會同時轉發此目錄請求給網絡存儲裝置,并根據目錄應答結果判斷本地目錄樹緩存單元中是否存在臟數據,并以此進行緩存更新;(5)向用戶返回緩存結果。步驟(3)中,所述本地目錄樹緩存單元可根據本地設備、瀏覽器緩存以及網絡資源情況,選擇目錄樹緩存在本地內存中或者是選擇本地持久存儲的方法。所述目錄樹緩存在本地內存中的方法是一種類似于最近最少使用的算法,在不使用本地存儲,并且在僅使用少量內存的情況下來實現目錄樹的本地緩存,具體是指a)記錄每一層子目錄的目錄結構和文件結構、以及目錄和文件的屬性信息;b)每一層子目錄在被訪問后,都需要記錄其使用頻度,并按照使用頻度和使用時間排序所有的子目錄;c)當需要保存從遠程網絡存儲裝置中獲得的新目錄結構時,將最近使用最少的目錄結構替換出緩存,并將新加入的目錄結構進行排序。所述本地持久存儲的方法,即將目錄樹緩存到本地磁盤的方法,可以采用本地瀏覽器緩存中的Local Morage (本地存儲區)來緩存目錄結構,LocalStorage存儲的內容不會發送到遠程服務器,除非用戶主動刪除數據,否則目錄樹結構會在本地磁盤一直存儲下去;Local Storage提供了豐富的接口,且為每個域提供了獨立的存儲空間。
步驟(5)中,根據用戶策略,選擇是否立即將新結果返回給用戶;該用戶策略包括兩種一種是立即將新結果返回給用戶;另一種是不返回新結果,在下次訪問時返回新結^ ο本發明的有益效果在于本發明的這種基于網絡存儲裝置的目錄樹緩存方法,對于用戶設備能夠流暢使用遠程網絡存儲裝置、改善用戶體驗將會帶來以下優勢1.將遠程網絡存儲裝置的目錄樹結構記錄在本地設備的緩存中,用戶可以像瀏覽本地目錄文件一樣快速的訪問位于遠程的目錄文件,幾乎不需要等待時間,提升了用戶體驗;2.遠程網絡存儲裝置的數據文件不用全部下載到本地設備,使得用戶節省了系統資源、網絡流量和帶寬;3.本發明方法將會使得低帶寬、低端設備能夠方便的使用網絡存儲設備,如使得只有很少存儲空間的手持設備可以方便、快捷的操作遠大于自身存儲容量的網絡存儲設備;使得用戶在網絡狀況很差的情況仍然可以流暢的使用網絡存儲裝置提供的服務。
圖1是本發明基于網絡存儲裝置的目錄樹緩存系統的模塊示意圖。圖2是本發明中用戶通過本地目錄樹緩存單元獲取目錄的操作流程圖。
具體實施例方式如圖1所示,本發明基于網絡存儲裝置的目錄樹緩存系統包括以下幾個部分位于遠程的網絡存儲裝置、本地目錄樹緩存單元和指令分發單元。該網絡存儲裝置是指位于遠程的網絡存儲服務,包括,但不限于網絡相冊、在線文件存儲、在線日記、網絡硬盤服務。該網絡存儲裝置通常會提供開放的應用程序接口,如 API (Application Programming hterface,應用程序編程接口),以供第三方應用程序調用。該指令分發單元用于轉發來自于用戶的目錄請求,根據具體情況將目錄請求分發到本地目錄樹緩存單元以及位于遠程的網絡存儲裝置。該本地目錄樹緩存單元用于存放網絡存儲裝置的目錄樹結構,能夠快速應答用戶對目錄樹結構數據的操作請求,并根據緩存更新策略對目錄樹緩存進行自動更新。所述緩存更新策略是指本地目錄樹緩存單元對其存儲的目錄樹結構的更新策略,包括定時更新策略和及時更新策略;該定時更新策略是指,本地目錄樹緩存單元定時向遠程網絡存儲裝置獲取最新的目錄樹結構數據;該及時更新策略是指,本地目錄樹緩存單元只在有用戶提出目錄請求時才向遠程網絡存儲裝置獲取目標目錄結構。如圖1所示,該指令分發單元運行的具體步驟如下步驟1.指令分發單元接收來自用戶的目錄請求;步驟2.指令分發單元接收來自用戶的目錄請求,并發送該目錄請求到本地目錄樹緩存單元;步驟3.本地目錄樹緩存單元判斷是否存儲有用戶訪問的目錄樹結構數據,如果沒有則通過指令分發單元將用戶的目錄請求轉發到遠程的網絡存儲裝置。CN 102546674 A
如圖1所示,該本地目錄樹緩存單元運行的具體步驟如下步驟1.本地目錄樹緩存單元接收來自指令分發單元轉發的用戶對目錄樹的操作請求;步驟2.本地目錄樹緩存單元判斷是否存儲有用戶訪問的目錄樹結構數據,如果有則根據用戶的目錄請求,立即向用戶返回目錄應答結果;如果沒有則通過指令分發單元將用戶的目錄請求轉發到遠程的網絡存儲裝置,在本地目錄樹緩存單元接收到網絡存儲裝置的目錄操作應答后,將此目錄樹結構加入到本地目錄樹緩存單元中,并向用戶返回目錄操作應答;步驟3.根據本地目錄樹緩存策略,本地目錄樹緩存單元會定時或及時的更新本地目錄樹緩存。如果是定時更新策略,目錄樹緩存單元將會定時向遠程網絡存儲裝置查詢緩存中的目錄結構是否是最新狀態,并根據查詢結果進行緩存更新;如果是及時更新策略, 在指令分發單元收到用戶的目錄請求后,指令分發單元會同時轉發此目錄請求給網絡存儲裝置,并根據目錄應答結果判斷本地目錄樹緩存單元中是否存在臟數據,并以此進行緩存更新。如圖2所示,本發明中用戶通過本地目錄樹緩存單元獲取目錄的具體步驟如下步驟1.接收用戶的目錄請求;步驟2.本地目錄樹緩存單元向用戶返回緩存中的目錄結構數據;步驟3.根據緩存更新策略,由指令分發單元向遠程網絡存儲裝置請求目錄結構數據,更新緩存;緩存更新策略可以是定時更新策略;也可以是由步驟2來觸發的及時更新策略;如果是定時更新策略,則跳轉至步驟6 ;如果是及時更新策略,則跳轉到步驟4 ;步驟4.由步驟3返回的應答結果數據,如果和本地緩存的數據一致,則跳轉到步驟6 ;如果和本地緩存的數據不一致,即本地是臟數據,則根據應答結果數據更新本地緩存;步驟5.根據用戶策略,選擇是否立即將新結果返回給用戶。該用戶策略包括兩種一種是立即將新結果返回給用戶;另一種是不返回新結果,在下次訪問時返回新結果。步驟6.流程結束。該本地目錄樹存儲單元的具體實施還需注意以下幾個關鍵點1.在本發明中,本地目錄樹緩存單元可以將緩存的目錄數據存儲在本地內存中或者選擇本地持久存儲。在內存資源充足的情況下,可以將目錄數據全部加載到內存中,以加快訪問速度;2.在本發明中,目錄樹緩存單元存儲的目錄樹結構可以包括以下元數據目錄樹結構數據、文件結構數據,以及目錄和文件的屬性數據。而對于那些把元數據和文件數據分離存儲的網絡存儲裝置,可以將元數據全部緩存到本地設備;3.在1中所指的目錄樹緩存到內存中的方法,本發明使用的是一種類似于最近最少使用(LRU)的算法,在不使用本地存儲,并且在僅使用少量內存的情況下來實現目錄樹的本地緩存,具體是指a)記錄每一層子目錄的目錄結構和文件結構、以及屬性信息;b)每一層子目錄在被訪問后,都需要記錄其使用頻度,并按照使用頻度和使用時間排序所有的子目錄;
c)當需要保存從遠程網絡存儲裝置中獲得的新目錄結構時,將最近使用最少的目錄結構替換出緩存,并將新加入的目錄結構進行排序。4.在1中所指的目錄樹緩存到本地持久化存儲的方法,可以使用瀏覽器緩存中的 Local Morage (本地存儲區)來緩存目錄結構的方法。使用Local Storage的方法有以下優勢a) Local Storage是一種用于持久化的本地存儲方法,除非用戶主動刪除數據,否則目錄樹結構會在本地設備一直存儲下去;b) Local Storage的存儲空間相對于Cookie更大;c) Local Storage存儲的內容不會發送到遠程服務器,即不會和服務器發送交互, 因而減少了服務器的處理流程和網絡帶寬資源的浪費;d) Local Storage提供了豐富的接口,使得數據操作更加簡便;e) Local Storage為每個域(包括子域)提供了獨立的存儲空間,因此不會造成數據混亂。本發明根據用戶的行為需求,提出了一種基于網絡存儲裝置的目錄樹緩存方法。 這種方法使得用戶將網絡存儲裝置中的目錄樹結構緩存到本地設備,而無需將網絡存儲裝置上的數據文件、目錄全部下載到本地設備,使用戶可以像瀏覽本地文件一樣快速的瀏覽所有位于遠程網絡存儲裝置的文件目錄,從而能夠大大的加快目錄樹的瀏覽速度,大大節省了計算機資源,大大減少了不必要的系統資源和帶寬的浪費,提升計算機系統內部性能, 特別是在網絡環境較差的情況和在用戶使用手持設備的情況下,效果尤其明顯。
權利要求
1.一種基于網絡存儲裝置的目錄樹緩存系統,其特征在于,包括位于遠程的網絡存儲裝置和本地設備,該本地設備包括本地目錄樹緩存單元和指令分發單元;該本地目錄樹緩存單元存放網絡存儲裝置的目錄樹結構,用于應答用戶對目錄樹結構數據的操作請求,并根據緩存更新策略對目錄樹緩存進行自動更新;該指令分發單元用于轉發來自于用戶的目錄請求,將目錄請求分發到本地目錄樹緩存單元以及位于遠程的網絡存儲裝置;該指令分發單元按以下情況進行指令分發在接收到用戶目錄請求時,指令分發單元將目錄請求轉發給本地目錄樹緩存單元,以便快速返回目錄應答結果;同時,指令分發單元還會根據緩存更新策略,轉發目錄請求到遠程的網絡存儲裝置,并把應答結果轉發給本地目錄樹緩存單元,確定本地緩存中是否存在臟數據,以便完成目錄樹緩存的更新。
2.如權利要求1所述的基于網絡存儲裝置的目錄樹緩存系統,其特征在于,所述緩存更新策略是指本地目錄樹緩存單元對其存儲的目錄樹結構的更新策略,包括定時更新策略和及時更新策略;該定時更新策略是指,本地目錄樹緩存單元定時向遠程網絡存儲裝置獲取最新的目錄樹結構數據;該及時更新策略是指,本地目錄樹緩存單元只在有用戶提出目錄請求時才向遠程網絡存儲裝置獲取目標目錄結構。
3.如權利要求1所述的基于網絡存儲裝置的目錄樹緩存系統,其特征在于,所述網絡存儲裝置是指位于遠程的網絡存儲服務,包括網絡相冊、在線文件存儲、在線日記和網絡硬盤服務;該網絡存儲裝置提供開放的應用程序接口,以供第三方應用程序調用。
4.如權利要求1所述的基于網絡存儲裝置的目錄樹緩存系統,其特征在于,所述本地目錄樹緩存單元存儲的目錄樹結構包括目錄樹結構數據、文件結構數據,以及目錄和文件的屬性數據。
5.一種基于網絡存儲裝置的目錄樹緩存方法,其特征在于,包括如下步驟(1)用戶發出目錄請求;(2)指令分發單元接收來自用戶的目錄請求,并發送該目錄請求到本地目錄樹緩存單元;(3)本地目錄樹緩存單元判斷是否存儲有用戶訪問的目錄樹結構數據,如果有則根據用戶的目錄請求,立即向用戶返回目錄應答結果;如果沒有則通過指令分發單元將用戶的目錄請求轉發到遠程的網絡存儲裝置,在本地目錄樹緩存單元接收到網絡存儲裝置的目錄操作應答后,將此目錄樹結構加入到本地目錄樹緩存單元中,并向用戶返回目錄操作應答;(4)根據本地目錄樹緩存策略,本地設備會定時更新或及時更新本地目錄樹緩存;如果是定時更新策略,目錄樹緩存單元將會定時向遠程網絡存儲裝置查詢緩存中的目錄結構是否是最新狀態,并根據查詢結果進行緩存更新;如果是及時更新策略,在指令分發單元收到用戶的目錄請求后,指令分發單元會同時轉發此目錄請求給網絡存儲裝置,并根據目錄應答結果判斷本地目錄樹緩存單元中是否存在臟數據,并以此進行緩存更新;(5)向用戶返回緩存結果。
6.如權利要求5所述的基于網絡存儲裝置的目錄樹緩存方法,其特征在于,步驟(3)中,所述本地目錄樹緩存單元可根據本地設備、瀏覽器緩存以及網絡資源情況,選擇目錄樹緩存在本地內存中或者是選擇本地持久存儲的方法。
7.如權利要求6所述的基于網絡存儲裝置的目錄樹緩存方法,其特征在于,所述目錄樹緩存在本地內存中的方法是一種類似于最近最少使用的算法,在不使用本地存儲,并且在僅使用少量內存的情況下來實現目錄樹的本地緩存,具體是指a)記錄每一層子目錄的目錄結構和文件結構、以及目錄和文件的屬性信息;b)每一層子目錄在被訪問后,都需要記錄其使用頻度,并按照使用頻度和使用時間排序所有的子目錄;c)當需要保存從遠程網絡存儲裝置中獲得的新目錄結構時,將最近使用最少的目錄結構替換出緩存,并將新加入的目錄結構進行排序。
8.如權利要求6所述的基于網絡存儲裝置的目錄樹緩存方法,其特征在于,所述本地持久存儲的方法,即將目錄樹緩存到本地磁盤的方法,其采用瀏覽器緩存中的本地存儲區來緩存目錄結構,本地存儲區存儲的內容不會發送到遠程服務器,除非用戶主動刪除數據, 否則目錄樹結構會在本地磁盤一直存儲下去;本地存儲區提供了豐富的接口,且為每個域提供了獨立的存儲空間。
9.如權利要求5所述的基于網絡存儲裝置的目錄樹緩存方法,其特征在于,步驟(5) 中,根據用戶策略,選擇是否立即將新結果返回給用戶;該用戶策略包括兩種一種是立即將新結果返回給用戶;另一種是不返回新結果,在下次訪問時返回新結果。
全文摘要
本發明公開了一種基于網絡存儲裝置的目錄樹緩存系統,包括位于遠程的網絡存儲裝置、本地目錄樹緩存單元和指令分發單元;本地目錄樹緩存單元存放網絡存儲裝置的目錄樹結構,用于應答用戶對目錄樹結構數據的操作請求,并根據緩存更新策略對目錄樹緩存進行自動更新;指令分發單元用于轉發來自于用戶的目錄請求,將目錄請求分發到本地目錄樹緩存單元以及位于遠程的網絡存儲裝置。此外,本發明還公開了基于網絡存儲裝置的目錄樹緩存方法。本發明使用戶在本地設備可快速瀏覽所有目錄結構,而不必下載網絡存儲裝置上所有文件數據,大大節省了計算機資源,大大減少了網絡帶寬和系統資源,提升了計算機系統內部性能。
文檔編號H04L29/08GK102546674SQ20101057668
公開日2012年7月4日 申請日期2010年12月7日 優先權日2010年12月7日
發明者許式偉 申請人:盛樂信息技術(上海)有限公司