最近使用的文檔列表的自動同步的制作方法
【專利摘要】提供最近使用的(MRU)客戶端同步引擎來同步與客戶端機器相關聯的用戶的最近使用的(MRU)文檔列表和文件托管服務器的MRU文檔列表。文件托管服務器的MRU文檔列表包含存儲在文件托管服務器上的用戶的最近使用的文檔的列表。存儲在文件托管服務器上的用戶的文檔在一個或多個web啟用的客戶端機器上對用戶而言是可訪問的。MRU客戶端同步引擎利用文件托管服務器的MRU文檔列表來分析與用戶在客戶端機器上使用的文檔有關的注冊表數據,以確定用戶的最近使用的文檔。
【專利說明】最近使用的文檔列表的自動同步
【背景技術】
[0001]最近使用的(MRU)文檔列表包含至用戶最近已打開或保存的文檔的鏈接。MRU文檔列表是用于訪問最近使用過的文檔的便利機制。通過將這些鏈接存儲在MRU文檔列表中,用戶不必導航至文檔的位置來打開它。用戶可以點擊MRU文檔列表中的鏈接并且快速訪問文檔而不知道該文檔的位置。
[0002]用戶的文檔可以遠程存儲在通過web (網絡)瀏覽器可訪問的文件托管服務器上。用戶可以通過web啟用的(web-enabled)計算設備來訪問存儲在文件托管服務器上的文檔。每一個計算設備具有MRU文檔列表,其包含在登錄到該計算設備上的同時用戶最近從文件托管服務器以及其他位置中使用的文檔。然而,計算設備中的MRU文檔列表未必準確地反映用戶可能從另一計算設備已使用的存儲在文件托管服務器上的最近使用的文檔。
【發(fā)明內容】
[0003]提供這個綜述部分來以簡化形式介紹下面在具體描述部分中進一步描述的概念的選擇。這個綜述部分并不打算用于標識所請求保護的主題的關鍵特性或基本特性,也不打算用于限制所請求保護的主題的范圍。
[0004]用戶可以將文檔存儲在web可訪問的文件托管服務器中并使用任何的web可訪問的客戶端機器來訪問這些文檔。文件托管服務器包含MRU服務器文檔列表,對于每一個用戶而言,MRU服務器文檔列表列出存儲在文件托管服務器上的用戶最近使用的文檔??蛻舳藱C器包含MRU客戶端文檔列表,其包括存儲在文件托管服務器和/或客戶端機器上的用戶最近使用的文檔。每一個客戶端機器可能不知道用戶已從其他的客戶端機器對存儲在文件托管服務器上的用戶的文檔進行的訪問。因此,在特別的客戶端機器上的MRU文檔列表未必準確地反映用戶最近使用的文檔。為了在多個web可訪問的計算設備上維持用戶最近使用的文檔的統(tǒng)一視圖(unified view),提供MRU同步引擎來同步MRU文檔列表。
[0005]在實施例中,MRU同步引擎從文件托管服務器獲得配置列表并將配置列表與存儲在客戶端機器的注冊表中的文檔條目進行比較。配置列表包含與存儲在文件托管服務器上的用戶最近使用的文檔有關的配置數據。注冊表是存儲與用戶從客戶端機器中使用的文檔有關的數據的客戶端機器上的數據庫。MRU同步引擎分析配置列表和注冊表列表二者中的信息,以確定哪些文檔已被最近使用了。另外,MRU同步引擎將保持MRU服務器文檔列表為當前的所需要的更新通知文件托管服務器。
[0006]通過閱讀下面的具體描述和審閱相關聯的附圖,這些以及其他的特性和優(yōu)點將是顯然的。將明白:前面的一般描述和下面的具體描述二者僅是解釋性的并且不限制所請求保護的方面。
【專利附圖】
【附圖說明】
[0007]圖1說明用于自動同步MRU客戶端文檔列表與MRU服務器文檔列表的示例系統(tǒng)。
[0008]圖2說明用于自動同步MRU客戶端文檔列表與MRU服務器文檔列表的另一示例系統(tǒng)。
[0009]圖3是說明用于自動同步MRU文檔列表的示例方法的流程圖。
[0010]圖4是說明用于執(zhí)行同步MRU文檔列表的操作的示例方法的流程圖。
[0011]圖5是注冊表列表中的條目的示例布局。
[0012]圖6是配置列表中的條目的示例布局。
[0013]圖7是說明用于分析注冊表列表和配置列表中的條目的示例方法的流程圖。
[0014]圖8是說明用于分析合并列表的示例方法的流程圖。
[0015]圖9是說明用于創(chuàng)建更新的MRU客戶端文檔列表的示例方法的流程圖。
[0016]圖10是說明示例操作環(huán)境的框圖。
[0017]圖11是說明示例客戶端機器的框圖。
[0018]圖12是說明示例文件托管服務器的框圖。
【具體實施方式】
[0019]各種實施例涉及用于自動同步引用共同集合的文檔的多個MRU文檔列表的技術。MRU文檔列表是用戶已最近使用的文檔的列表。用戶可以將文檔存儲在用戶可以從任何的web啟用的客戶端機器中訪問的web可訪問的文件托管服務器中。文件托管服務器和web啟用的計算設備各自包含列出用戶最近已使用的存儲在文件托管服務器上的用戶的文檔的MRU文檔列表。用戶可以使用若干客戶端機器從文件托管服務器訪問用戶的文檔。每一個客戶端機器可能不知道用戶從其他的客戶端機器對這些文檔的訪問。因此,在特別的客戶端機器上的MRU文檔列表可能沒有準確地反映用戶最近使用的文檔。為了在多個web啟用的客戶端機器上維持在文件托管服務器上存儲的最近使用的文檔的統(tǒng)一視圖,提供在這些設備上同步用戶的MRU文檔列表的機制。
[0020]MRU同步引擎可以在客戶端機器中被利用來同步MRU客戶端文檔列表與MRU服務器文檔列表。MRU客戶端文檔列表包含至用戶從客戶端機器中使用過的最近使用的文檔的鏈接。MRU服務器文檔列表包含至存儲在文件托管服務器上通過任何的客戶端機器訪問過的用戶最近使用的文檔的鏈接。
[0021]MRU同步引擎從文件托管服務器獲得配置列表并將配置列表與客戶端機器的注冊表列表進行比較。配置列表包含與MRU服務器文檔列表中的每一個文檔有關的配置數據。注冊表列表包含與用戶在客戶端機器上使用的每一個文檔有關的配置數據。MRU同步引擎分析兩個文件中的信息,以確定哪些文檔是用戶最近使用的文檔。另外,MRU同步引擎將可能可歸因于用戶的來自客戶端機器的使用的MRU服務器文檔列表所需要的更新通知文件托管服務器。注意力現在轉到用于執(zhí)行這種同步的技術的更詳細的描述。
[0022]圖1說明用于自動同步MRU文檔列表的示例系統(tǒng)100。系統(tǒng)100包括經由通信網絡104耦合到文件托管服務器106的一個或多個客戶端機器102a、120b (共同稱為102)??蛻舳藱C器102可以是任何類型的計算設備,諸如個人計算機、服務器、筆記本計算機、膝上型計算機、臺式計算機、個人數字助理、智能電話、蜂窩電話、尋呼機、消息傳遞設備、平板計算機、手持計算機等等。
[0023]文件托管服務器106可以是任何類型的web可訪問的文件存儲系統(tǒng),諸如服務器、web服務器、網絡服務器、存儲服務器、文件共享服務器等等。文件托管服務器106的示例是Windows Live Sky Drive、Google Docs、Box.net等等。通信網絡104促進在客戶端機器102與文件托管服務器106之間的通信。通信網絡104可以利用任何的通信協(xié)議來體現(embody)任何類型的通信媒介,諸如有線或無線網絡。
[0024]每一個客戶端機器102可以包含注冊表108、注冊表列表109、MRU同步引擎110、MRU客戶端文檔列表112和文檔文件夾114。文件托管服務器106可以包含MRU應用編程接口(API)處理程序過程116、配置列表117和文件系統(tǒng)118。文件系統(tǒng)118可以包含用于每一個用戶120的文件夾,其包含存儲在文件托管服務器中的用戶的文檔和MRU服務器文檔列表132,其中MRU服務器文檔列表132包含至用戶最近使用的文檔的鏈接。
[0025]每一個客戶端機器102可以包含注冊表108,其是用于存儲由操作系統(tǒng)使用的配置數據和設置的中央儲存庫(r印ository)。在一些實施例中,注冊表108可以被配置成與分層文件夾相似的文件的結構,其中每一個文件子集被稱為注冊表單元(registry hive)。每一個注冊表單元與類似于文件系統(tǒng)中的文件夾的注冊表鍵值(key)相關聯。
[0026]每當訪問或重新配置文件時,條目被放置在與文檔類型相關聯的注冊表鍵值中。例如,注冊表鍵值 “HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\fford\File MRU”存儲與word文檔有關的條目,注冊表鍵值“HKEY_CURRENT_USER\Software\Microsoft\0ff ice\12.0\PowerPoint\File MRU” 存儲與 power point 文件有關的條目,而注冊表鍵值“HKEY_CURRENT_USER\Software\Microsoft\0ffice\12.0\Excel\File MRU”存儲與excel文件有關的條目。
[0027]應該指出:雖然通常在基于Windows?的操作系統(tǒng)的上下文中使用術語“注冊表”,但是在這里披露的技術并不約束于任何特別的操作系統(tǒng)或注冊表配置。也能夠采用提供類似功能的其他技術,諸如而非限制,在Linux或基于Unix的操作系統(tǒng)中使用的配置文件等
坐寸ο
[0028]注冊表列表109包含與用戶從客戶端機器102使用或訪問的所有文檔有關的配置數據。注冊表列表109可以包含用于存儲在客戶端機器、文件托管服務器和其他的遠程存儲位置上的文檔的條目。
[0029]MRU同步引擎110可以是將特別的MRU客戶端文檔列表與MRU服務器文檔列表同步的應用。MRU同步引擎110可以被體現在軟件中并且被實現為軟件組件、程序、計算機程序、應用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數、方法、過程、軟件接口、指令集、計算代碼、代碼段、進程、線程及其任何組合。作為選擇,MRU同步引擎110可以是另一應用的一部分并被實現為獨立執(zhí)行線程或進程。這些實施例并沒有被約束于任何特別類型的用于MRU同步引擎的軟件實現方式。
[0030]MRU客戶端文檔列表112是用戶已最近使用的最近使用文檔的清單。MRU客戶端文檔列表中的每一個文檔的名稱是至該文檔的文件的位置的快捷方式(shortcut)。MRU客戶端文檔列表112可以列出本地存儲在客戶端機器102上的文檔和存儲在文件托管服務器106上的文檔。在一個或多個實施例中,文檔可以是word文檔、power point文檔和/或excel文檔。每一個文檔被配置成文件,并且在這里可交換地使用這些術語“文檔”和“文件”。MRU客戶端文檔列表112在某些操作系統(tǒng)中可以被稱為“Recently Used (最近使用的)”文件夾、“My Recent Documents (我的最近文檔)”文件夾、“Recent Item (最近項目)”文件夾等等。[0031]MRU客戶端文檔列表112可以利用追蹤(track)用戶使用的文檔的應用來維持。該應用可以基于指示用戶最后訪問文檔的時間的時間戳將文檔添加到MRU客戶端文檔列表。用戶的訪問可以包括打開文檔或保存文檔。該應用可以追蹤MRU變化,以便重新配置文檔的狀態(tài)(例如,被刪除、被鎖定)。即使最近由于“鎖定(Pin)”文檔而沒有訪問該文檔,用戶也可以選擇將該文檔保持在MRU客戶端文檔列表上。通過“鎖定”文檔,用戶指示其偏愛(preference)以便將文檔保持在MRU客戶端文檔列表上而不考慮其使用。用戶可以“解鎖(unpin)”曾被鎖定的文檔,從而允許其訪問的時間來確定其在MRU客戶端文檔列表上的放置。雖然文檔保留為可訪問的,但是用戶也可以選擇從MRU客戶端文檔列表中“刪除”該文檔。針對刪除文檔的隨后訪問可以將該文檔放回到MRU客戶端文檔列表上。
[0032]在MRU客戶端文檔列表112中列出的文檔利用至該文檔的實際位置的鏈接來代表。這些鏈接用于快速訪問文檔,而無需從其實際位置打開該文檔。
[0033]文檔文件夾114在單獨的快捷方式文件夾142中列出本地存儲在客戶端機器102上的文檔以及存儲在文件托管服務器106中的用戶的文檔。雖然圖1的文檔文件夾顯示每個文檔的名稱,但是文檔名稱實際上是至否則被稱為快捷方式的文檔的位置的鏈接。
[0034]如客戶端機器102A中所示的,用戶A具有包含本地存儲在客戶端機器102A上的文檔worddocl.doc 138的文檔文件夾114A。文檔文件夾114A包括子文件夾,即文件托管服務器快捷方式142,其包含至存儲在文件托管服務器106上的用戶的文檔presentationl.PPt 124的鏈接。在客戶端機器102A上用于用戶A的MRU客戶端文檔列表112A包括worddocl.doc 138 和 presentationl.ppt 124。
[0035]如客戶端機器102B中所示的,用戶A具有包含本地存儲在客戶端機器102B上的文檔worddoc3.doc 144的文檔文件夾114B。文檔文件夾114B包含子文件夾,即文件托管服務器快捷方式148,其包含至存儲在文件托管服務器106上的用戶的文檔presentationl.PPt 124和worddoc2.doc 128的鏈接。在客戶端機器102B上用于用戶A的MRU客戶端文檔列表 112B 包括 presentationl.ppt 124、worddoc2.doc 128 和 worddoc3.doc 144。
[0036]文件托管服務器106包含一個或多個MRU應用編程接口(API)處理程序過程116、配置列表117和文件系統(tǒng)118。MRU同步引擎110通過一個或多個API與文件托管服務器106交互作用。API可以被實現為遠程過程調用。遠程過程調用是一種形式的消息傳遞,其中發(fā)送方似乎在利用特定參數執(zhí)行或調用本地過程。遠程過程調用的處理程序運行在獨立的地址空間中。MRU同步引擎110使用一個或多個API將針對MRU服務器文檔列表132所需要的更新通知文件托管服務器106。MRU API處理程序過程116從MRU同步引擎110接收在API過程調用中使用的特定參數并且相應地處理這些特定參數。MRU API處理程序過程116位于文件托管服務器106中。
[0037]配置列表107是包含在MRU服務器文檔列表132中列出的每個文檔的條目的文件。每一個條目包含與文檔的配置有關的配置數據,其包括該文檔在所有的客戶端機器102上的使用。
[0038]文件托管服務器106上的文件系統(tǒng)118對于每一個用戶可以包含文件夾(filefolder)。如圖1所示,文件托管服務器106具有用于用戶A 120的文件夾,其包含存儲用戶的文檔的子文件夾122以及MRU服務器文檔列表132。MRU服務器文檔列表132是列出存儲在文件托管服務器106上的文檔中用戶最近使用的文檔的文件夾。MRU服務器文檔列表132包括presentationl.ppt 124和worddoc2.doc 128。用戶可以選擇米用上面針對MRU客戶端文檔列表討論的相同方式將文檔保持在MRU服務器文檔列表132上。S卩,用戶可以采用如上所述的相同方式“鎖定”、“解鎖”和“刪除”MRU服務器文檔列表132中的文檔。
[0039]如圖1所示,名為File Hosting Server(文件托管服務器)122的子文件夾存儲用戶 A 的文檔 presentationl.ppt 124 和 worddoc2.doc 128。通過將這些文檔 124、128 存儲在文件托管服務器106上,用戶A可以從與客戶端機器分離的web接口中訪問這些文檔。用戶A可以在客戶端機器102A上使用MRU客戶端文檔列表來打開存儲在文件托管服務器106上的文件presentationl.ppt 124。通過在客戶端機器A上憑借MRU客戶端文檔列表112A訪問presentationl.ppt 124,用戶A能夠避免通過web瀏覽器來訪問presentationl.ppt124。同樣,用戶A可以在客戶端機器102B上使用MRU客戶端文檔列表112B來打開文檔presentationl.ppt和worddoc2.doc,其中每一個文檔存儲在文件托管服務器106上。
[0040]對于存儲在文件托管服務器106上的用戶最近使用的文檔,用戶的MRU服務器文檔列表132應反映那些用戶最近使用的文檔。尤其在用戶在另一客戶端機器上使用過那些文檔時,MRU客戶端文檔列表112可能沒有反映那些文檔的最近使用。為此,每一個客戶端機器102將MRU服務器文檔列表132和用戶的與特別的客戶端機器102相關聯的MRU客戶端文檔列表112同步。
[0041]例如,如圖1所示,MRU客戶端文檔列表112A顯示:用戶A的在客戶端機器102A上的最近使用的文檔是worddocl.doc 138和presentationl.ppt 124。在文件托管服務器106上存儲presentationl.ppt 124。然而,MRU客戶端列表112B顯示:在客戶端機器102B上用戶A的最近使用的文檔包括presentationl.ppt 124和worddoc2.doc 128,其中這兩個文檔存儲在文件托管服務器106上。用于用戶A的MRU服務器文檔列表132A顯示:presentationl.ppt 124和worddoc2.doc 128 二者最近由用戶A使用過。MRU客戶端文檔列表112A似乎與存儲在文件托管服務器106上的用戶A的文檔的最近訪問不同步。
[0042]參考圖2,顯示圖1的系統(tǒng),其中在客戶端機器102A上用戶A的MRU客戶端文檔列表112A相對于存儲在文件托管服務器106上的在客戶端機器102B上最近使用過的用戶A的文檔進行同步??蛻舳藱C器102A利用MRU同步引擎110A將MRU客戶端文檔列表112A與MRU服務器文檔列表132同步??蛻舳藱C器102A包含合并列表111A,其是臨時文件,用于合并注冊表列表109和配置列表117中的條目,以便生成更新的MRU客戶端文檔列表112A。如圖2所示,MRU客戶端文檔列表112A現在包括worddoc2.doc 128,并且所有的用戶A的MRU客戶端文檔列表112AU12B相對于存儲在文件托管服務器106上的用戶A的最近使用的文檔是同步的。
[0043]應該指出:導致MRU服務器文檔列表沒有反映用戶的最新使用的其他情況可能發(fā)生。例如,如果從MRU服務器文檔列表132中刪除過文檔并且稍后在客戶端機器102上重新打開過該文檔,那么該文檔有資格在MRU服務器文檔列表132上被考慮。此外,如果文檔的鎖定狀態(tài)在客戶端機器102上被改變,這可能影響該文檔在MRU服務器文檔列表132上的放置。
[0044]注意力現在轉至參考各種示例方法的實施例的操作的更詳細討論??赡芤庾R到:除非另有聲明,否則有代表性的方法未必非得按照所介紹的順序或者以任何特別的順序來執(zhí)行。而且,針對這些方法描述的各種活動能夠以串行或并行方式或串行與并行操作的任何組合來執(zhí)行。這些方法對于給定集合的設計和性能約束能夠按照要求、使用所描述的實施例或可選擇的實施例的一個或多個硬件元素和/或軟件元素來實現。例如,這些方法可以被實現為邏輯(例如,計算機程序指令),用于利用邏輯設備(例如,通用或專用計算機)的執(zhí)行。
[0045]圖3說明用于自動同步MRU文檔列表的示例方法的流程圖。應該指出,方法200可以代表在這里描述的一個或多個實施例所執(zhí)行的一些或所有的操作,并且該方法能夠包括比圖3中所描述的操作更多或更少的操作。在實施例中,該方法可以說明用于MRU同步引擎110的操作。
[0046]在若干實施例中,MRU同步引擎110可以在用戶初始地從客戶端機器102登錄到用戶賬戶時被自動激活(方框202)。在可選擇的實施例中,MRU同步引擎110可以由用戶直接激活(方框202)。在激活之后,一旦在文件托管服務器106上用戶被登錄到用戶賬戶,MRU同步引擎110啟動同步操作(方框202)。
[0047]MRU同步引擎110確定可以執(zhí)行同步操作的頻率(方框204)。在實施例中,同步操作可以根據輪詢頻率來執(zhí)行。輪詢頻率可以是默認值、用戶配置輸入或其組合,并且可以用于確定在初始同步之后執(zhí)行同步操作的時間間隔。
[0048]MRU同步引擎110可以初始地在激活MRU同步引擎110時執(zhí)行同步操作(方框206)。此后,根據輪詢頻率,執(zhí)行附加同步。在被指示執(zhí)行更新的時間(方框208,是),當要執(zhí)行附加更新時(方框210,否),MRU同步引擎110可以同步MRU客戶端和MRU服務器文檔列表(方框206)。否則,當不是執(zhí)行更新的時間時(方框208,否),該方法輪詢,直至下一次更新發(fā)生。當用戶登出客戶端機器102時或在滿足了輪詢頻率時(方框210,是),同步更新被終止。
[0049]在另一實施例中,在更新了 MRU服務器文檔列表132時,MRU同步引擎110可以從文件托管服務器106接收通知。MRU同步引擎110可以在接收到配置列表117之后執(zhí)行同步操作,而不是根據輪詢頻率執(zhí)行這些同步操作。在另一實施例中,當新的條目被放置到MRU服務器文檔列表132上時,MRU同步引擎110可以從文件托管服務器106接收通知。文件托管服務器106可以將新的條目轉發(fā)至MRU同步引擎110,而MRU同步引擎110隨后可以在接收之后更新MRU客戶端文檔列表112。注意力現在轉到執(zhí)行客戶端和服務器MRU文檔列表的同步的方法的討論。
[0050]參考圖4,顯示說明用于同步MRU文檔列表的方法206的流程圖。注冊表108中的文檔條目的快照或拷貝可以被制作并被存儲在注冊表列表109中(方框302)。存儲在注冊表109中的文檔條目可以具有包含圖5所示的數據字段的格式。轉到圖5,注冊表109中的文檔條目可以包含項目編號402、條目類型404、鎖定狀態(tài)406、最后修改時間戳408、標記字段410和地址字段412。項目編號402是指示條目在注冊表鍵值中的放置的引用。條目類型指示條目的類型。例如,文本串“REG_SZ”指示該文檔是Office文檔而不是元數據。鎖定狀態(tài)406指示該文檔是否停留在MRU文檔列表上。當文檔被“鎖定”時,該文檔保留在MRU文檔列表上而無論其是否最近被使用了。最后修改時間戳408指示該文件被使用過的最后時間,而標記410用于操作系統(tǒng)的使用。地址412是文檔的位置,并且該地址可以是URL、物理地址、網絡地址或DAV地址。
[0051]轉回到圖4,MRU同步引擎110向文件托管服務器106請求配置列表117 (方框304)。在一個或多個實施例中,可以通過API來提出該請求。作為選擇,可以在客戶端機器102與文件托管服務器106之間發(fā)送消息。用戶的配置列表117可以采用XML (可擴展標記語言)文件或JSON (JavaScript Object Notation (對象符號))文件的形式來構造。
[0052]配置列表117中示例文檔條目的數據格式可以如圖6所示來配置。參考圖6,顯示包含DAV地址502、最后修改時間戳504、鎖定狀態(tài)506、鎖定時間戳508、刪除標記510和刪除時間戳512的配置列表117中的條目。DAV地址502是MRU客戶端文檔列表所使用的相同地址并且是文件托管服務器上的唯一標識符。最后修改時間戳504指示該文件被打開或被保存的最后時間。鎖定狀態(tài)506指示該文檔是否將停留在MRU文檔列表上。鎖定時間戳508指示該文檔被鎖定的時間。刪除標記510指示是否從MRU服務器文檔列表中刪除過該文檔,而刪除時間戳512指示刪除的時間。
[0053]轉回到圖4,在用戶正操作在客戶端機器102上的同時,配置列表117可能還沒有被更新來反映對文檔進行的最近使用或變化。MRU同步引擎110可能發(fā)現這些變化并且通知文件托管服務器106,以便相應地更新MRU服務器文檔列表132(方框306)。特別地,MRU同步引擎110可能發(fā)現:從MRU服務器文檔列表132中刪除過的文檔隨后還在客戶端機器102上被重新打開過或被重新保存過。MRU同步引擎110也可能檢測到被解鎖并隨后被用戶在操作在客戶端機器102上的同時重新鎖定過的文檔。在這兩種情況中,這些文檔可以被放回到MRU服務器文檔列表132上。
[0054]轉到圖7,MRU同步引擎110讀取客戶端注冊表列表中的每一個條目(方框602)并將注冊表列表中的條目的地址字段412與配置列表117中的DAV地址502進行匹配(方框604)。配置列表117中的刪除標記510在用戶從MRU服務器文檔列表132中刪除該文檔時被提升(raise),并且刪除時間戳512指示該刪除發(fā)生時的時間。注冊表列表中相應條目的最后修改時間戳408指示該文檔被使用時的最后時間。當刪除標記510被提升并且注冊表條目中的最后修改時間戳408晚于刪除時間戳512時,則在從MRU服務器文檔列表132中刪除過該文檔之后在客戶端機器102上重新打開過該文檔(方框606)。在這種情況中,MRU同步引擎110通過API過程調用將這種狀況通知文件托管服務器106 (方框606)。
[0055]接下來,MRU同步引擎110確定是否由用戶在操作在客戶端機器102上的同時鎖定了以前被解鎖過的文檔。為了檢測這種狀況,MRU同步引擎110將注冊表列表中的文檔條目的鎖定狀態(tài)406與配置列表117中的相應條目進行比較(方框608)。當配置列表117中的鎖定狀態(tài)506指不該文檔未被鎖定并且配置列表117中的鎖定時間戳508早于注冊表列表中相應條目的最后修改時間戳408時,MRU同步引擎110通過API過程調用通知文件托管服務器106:該文檔條目已被鎖定了(方框608)。
[0056]返回參考圖4,MRU同步引擎110將注冊表列表109和配置列表117合并成合并列表111,其包含注冊表列表中與所討論的文檔有關的所有條目以及配置列表117中的所有條目(方框308)。隨后可以針對在客戶端機器102上最近已打開、修改、保存或鎖定的文檔來分析合并列表111 (方框310)。
[0057]參考圖8,MRU同步引擎110繼續(xù)按照地址來對合并列表111進行排序。特別地,注冊表列表的地址字段412以及MRU服務器文檔列表132的DAV地址502可以被用作排序標準(方框702)。在按照地址對合并列表條目進行排序時,具有共同地址的條目一個接一個進行定位。因此,更容易將注冊表列表中的文檔條目與其在配置列表117中的相應條目進行匹配。
[0058]MRU同步引擎110將注冊表列表中文檔的條目與配置列表117中的相應條目(即,條目配對)進行比較(方框704)。對于每一個這樣的條目配對(方框704),針對在用戶正操作在客戶端機器102上的同時對文檔進行的沒有在配置列表117中得到反映的最近使用,MRU同步引擎110分析條目配對。
[0059]MRU同步引擎110將注冊表列表條目的最后修改時間戳408與最后修改時間戳504進行比較(方框706)。如果注冊表列表上的最后修改時間戳407是不近的(lessrecent),那么晚于該文檔在文件托管服務器132上的最后使用在客戶端機器102上已訪問了該文檔。在這種情況下,MRU同步引擎110通過API過程調用將這個事件通知文件托管服務器106 (方框706)。
[0060]另外,MRU同步引擎110針對注冊表列表109和配置列表117 二者中的文檔條目來比較鎖定狀態(tài)和鎖定時間戳,以便確定是否由操作在客戶端機器102上的用戶修改過該文檔的鎖定狀態(tài)(方框708)。如果注冊表列表中文檔的條目上的鎖定狀態(tài)406和鎖定時間戳408不近于配置列表117中相應條目上的鎖定時間戳508,則由用戶在操作在客戶端機器102上的同時修改過該文檔的鎖定狀態(tài)。MRU同步引擎110通過API過程調用將這種情況通知文件托管服務器106 (方框708)。最后,對于每一個條目配對,具有不近的最后修改時間戳的條目被刪除(方框710)。
[0061]轉回到圖4,隨后從合并列表111中創(chuàng)建新的MRU客戶端文檔列表(方框312)。參考圖9,合并列表111按照鎖定狀態(tài)來排序,以便將鎖定的文檔置于合并列表111的頂端(方框802)。接下來,依照最后修改時間戳對解鎖的文檔進行排序,以便將具有最晚時間戳的解鎖文檔放置在具有較早時間戳的那些文檔的前面(方框804)。此后,合并列表111可以被修整為只包括在MRU客戶端文檔列表中允許的最大數量的條目(方框806)。最近使用的文檔位于列表的頂端,而較早使用的文檔位于合并列表111的末端。如果合并列表111中條目的數量超過在MRU客戶端文檔列表中允許的條目的最大數量,那么合并列表111只取(take)從合并列表111的頂端開始的最大數量(方框806)。
[0062]合并列表111在此時是更新的MRU客戶端文檔列表。更新的MRU客戶端文檔列表中的每一個條目可以被寫入注冊表108 (方框808),并且新的MRU客戶端文檔列表替換現有的MRU客戶端文檔列表(方框810)。轉回到圖4,MRU同步引擎110利用在更新的MRU客戶端文檔列表中包含的地址或快捷方式來替換用于文件托管服務器文檔的文檔文件夾(方框314)。注意力現在轉到操作環(huán)境的討論。
[0063]現在參考圖10,顯示示例操作環(huán)境920的示意框圖。操作環(huán)境920可以包括通過通信框架924與一個或多個服務器926通信的一個或多個客戶端922。在實施例中,客戶端922可以被配置成使用存儲在服務器926中的文檔或數據,并且客戶端922可以作為客戶端機器102來實現。在實施例中,服務器926可以從一個或多個客戶端922接收請求來訪問其中存儲的文檔和數據。在實施例中,服務器926可以作為文件托管服務器106來實現。
[0064]客戶端922可以作為硬件設備、軟件模塊或作為其組合來體現。這樣的硬件設備的示例可以包括但不限于計算機(例如,服務器、個人計算機、膝上型計算機等等)、蜂窩電話、個人數字助理或任何類型的計算設備等等。客戶端922也可以作為具有在單條執(zhí)行路徑、多條并發(fā)執(zhí)行路徑(例如,線程、進程等等)中或以任何其他方式執(zhí)行的指令的軟件模塊來體現。
[0065]服務器926可以作為硬件設備、軟件模塊或作為其組合來體現。這樣的硬件設備的示例可以包括但不限于計算機(例如,服務器、個人計算機、膝上型計算機等等)、蜂窩電話、個人數字助理或任何類型的計算設備等等。服務器926也可以作為具有在單條執(zhí)行路徑、多條并發(fā)執(zhí)行路徑(例如,線程、進程等等)中或以任何其他方式執(zhí)行的指令的軟件模塊來體現。
[0066]通信框架924促進在客戶端922與服務器926之間的通信。通信框架924可以利用任何的通信協(xié)議來體現任何類型的通信媒介,諸如有線或無線網絡。 [0067]參考圖11,客戶端機器102可以具有處理器934、存儲器936和網絡接口 938。處理器934可以是任何市場上可買到的處理器,并且可以包括雙微處理器和多處理器架構。網絡接口 938促進在客戶端機器102與通信網絡104之間的有線或無線通信,以便在客戶端機器102與文件托管服務器106之間提供通信路徑。
[0068]存儲器936可以是能夠存儲處理器可執(zhí)行指令、過程、應用和數據的任何計算機可讀存儲媒體或計算機可讀媒體。計算機可讀媒體與傳播的信號諸如通過載波發(fā)送的調制數據信號無關。它可以是任何類型的存儲設備(例如,隨機存取存儲器、只讀存儲器等等)、磁儲存器、易失性儲存器、非易失性儲存器、光儲存器、DVD、CD、軟盤驅動器、盤驅動器、閃存等等。存儲器936也可以包括一個或多個外部存儲設備或遠程定位的存儲設備。存儲器936可以包含如下的指令和數據:
?操作系統(tǒng)940 ;
?注冊表108 ;
?MRU同步引擎110 ;
?MRU客戶端文檔列表112 ;
?文檔文件夾114;
?注冊表列表109 ;
?合并列表111;以及 ?各種其他的應用和數據944。
[0069]參考圖12,文件托管服務器106可以具有處理器954、存儲器956和網絡接口 958。處理器954可以是任何市場上可買到的處理器并且可以包括雙微處理器和多處理器架構。網絡接口 958促進在文件托管服務器106與通信網絡104之間的有線或無線通信,以便在客戶端機器102與文件托管服務器106之間提供通信路徑。
[0070]存儲器956可以是任何的計算機可讀存儲媒體或計算機可讀媒體,其可以存儲處理器可執(zhí)行的指令、過程、應用和數據。計算機可讀媒體與傳播的信號諸如通過載波發(fā)送的調制數據信號無關。它可以是任何類型的存儲設備(例如,隨機存取存儲器、只讀存儲器等等)、磁儲存器、易失性儲存器、非易失性儲存器、光儲存器、DVD、⑶、軟盤驅動器、盤驅動器、閃存等等。存儲器956也可以包括一個或多個外部存儲設備或遠程定位的存儲設備。存儲器956可以包含如下的指令和數據:
?操作系統(tǒng)960 ;
?MRU API處理程序過程116 ;
?包含文檔120和MRU服務器文檔列表132的文件系統(tǒng)964 ;?配置列表117;以及 ?其他的應用和數據972。
[0071]雖然以特定于結構特性和/或方法動作的語言描述了主題,但是將明白:在所附的權利要求書中定義的主題不一定限于如上所述的具體特性或動作。相反,上述的具體特性和動作被披露為實現這些權利要求的示例形式。
[0072]例如,系統(tǒng)100的各種實施例可以使用硬件元素、軟件元素或二者的組合來實現。硬件元素的示例可以包括設備、組件、處理器、微處理器、電路、電路元素、集成電路、專用集成電路、可編程邏輯設備、數字信號處理器、現場可編程門陣列、存儲單元、邏輯門等等。軟件元素的示例可以包括軟件組件、程序、應用、計算機程序、應用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數、方法、過程、軟件接口、應用程序接口、指令集、計算代碼、代碼段及其任何組合。確定是否使用硬件元素和/或軟件元素來實現實施例,這根據任何數量的因素諸如所期望的計算速率、功率電平、帶寬、計算時間、負載均衡、存儲資源、數據總線速度和其他的設計或性能約束、對于給定的實施方式、按照要求而可能改變。
[0073]一些實施例可以包括存儲介質來存儲指令或邏輯。存儲介質的示例可以包括一種或多種類型的能夠存儲電子數據的計算機可讀存儲媒體,其包括易失性存儲器或非易失性存儲器、可移除或不可移除存儲器、可擦除或不可擦除存儲器、可寫或可重寫存儲器等等。邏輯的示例可以包括各種軟件組件,諸如程序、過程、模塊、應用、代碼段、程序棧、中間件、固件、方法、例程等等。在實施例中,例如,計算機可讀存儲介質可以存儲可執(zhí)行計算機程序指令,這些可執(zhí)行計算機程序指令當由處理器執(zhí)行時導致該處理器根據所描述的實施例來執(zhí)行方法和/或操作。這些可執(zhí)行計算機程序指令可以根據預定義的計算機語言、方式或句法來實現,以便指示計算機執(zhí)行一定功能。這些指令可以使用任何適當的高級、低級、面向對象、視覺、編譯和/或解釋編程語言來實現。
[0074]在各種實施例中 ,在這里描述的系統(tǒng)100可以包括計算機實現的系統(tǒng),其具有多個組件、程序、過程、模塊。如在這里使用的,這些術語用于指計算機相關的實體,其包括或硬件、軟件與硬件的組合或軟件。例如,組件可以被實現為在處理器上運行的進程、硬盤驅動器、(光和/或磁存儲介質的)多個存儲驅動器、對象、可執(zhí)行文件、執(zhí)行的線程、程序和/或計算機。作為例證,在服務器上運行的應用以及服務器可以是組件。一個或多個組件可以駐留在執(zhí)行的進程和/或線程內,并且組件可以按照要求對于給定的實施方式被定位在一個計算機上和/或被分布在兩個或更多的計算機之間。并不以這種方式來限制這些實施例。
【權利要求】
1.一種計算機可讀存儲介質,在其上面存儲處理器可執(zhí)行指令,包括: 從注冊表列表和配置列表中形成MRU客戶端文檔列表的指令,注冊表列表包含多個條目,每一個條目與用戶從客戶端機器中使用過的用戶文檔相關聯,配置列表包含多個條目,每一個條目與存儲在文件托管服務器上的用戶最近使用的文檔相關聯,文件托管服務器允許用戶從多個附加的客戶端機器使用存儲在文件托管服務器上的文檔。
2.權利要求1的計算機可讀存儲介質,包括: 將存儲在文件托管服務器上的由用戶在客戶端機器上最近使用過的文檔通知文件托管服務器的指令。
3.權利要求1的計算機可讀存儲介質,包括: 將從客戶端機器對在配置列表中列出的文檔進行的更新通知文件托管服務器的指令。
4.權利要求1的計算機可讀存儲介質,包括: 將注冊表列表與配置列表組合成合并列表的指令, 將注冊表列表中的條目與配置列表中的相應條目進行匹配的指令,以及基于與合并列表中的每個條目相關聯的較早的最后修改時間戳來刪除一個匹配條目的指令。
5.權利要求1的計算機可讀存儲介質,包括: 在從文件托管服務器接收到信息之后形成MRU客戶端文檔列表的指令。
6.一種計算機實現的方法,包括:` 給用戶提供一個或多個用戶文檔,至少一個用戶文檔存儲在文件共享服務器上,文件共享服務器被配置成允許用戶從多個客戶端機器使用存儲在文件共享服務器上的用戶文檔; 在選擇客戶端機器上提供注冊表列表,注冊表列表具有由用戶從選擇客戶端機器最近使用的用戶文檔的列表; 在文件共享服務器上維持配置列表,配置列表具有由用戶從任何的客戶端機器最近使用的用戶文檔的服務器列表;以及 利用用戶最近使用的用戶文檔從注冊表列表和配置列表中形成MRU客戶端文檔列表。
7.權利要求6的方法,包括: 確定是否由用戶從選擇客戶端機器最近使用了存儲在文件托管服務器上的第一用戶文檔;和 通知文件共享服務器。
8.權利要求6的方法,包括: 確定是否存儲在文件托管服務器上的第一用戶文檔被從配置列表中刪除過并且由用戶在選擇客戶端機器上最近使用過;以及通知文件共享服務器。
9.權利要求6的方法,包括: 合并注冊表列表和配置列表,以形成合并列表; 將注冊表列表中的條目與配置列表中的相應條目進行匹配;以及 基于與合并列表中的每個條目相關聯的較早的最后修改時間戳,刪除一個匹配條目。
10.權利要求9的方法,包括:按照鎖定狀態(tài)和最后修改時間戳,對合并列表進行排序;依照最后修改時間戳,對解鎖條目進行排序;以及使用從合并列表的頂端開始的閾值數量的`條目來形成MRU客戶端文檔列表。
【文檔編號】G06F9/44GK103649945SQ201280030495
【公開日】2014年3月19日 申請日期:2012年6月13日 優(yōu)先權日:2011年6月20日
【發(fā)明者】E.埃文斯, A.豐特, S.馬基內尼, E.庫特, C.韋布斯特 申請人:微軟公司