專利名稱:幻影同步的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機數(shù)據(jù)庫,尤其涉及數(shù)據(jù)庫的同步。
背景技術(shù):
同步的數(shù)據(jù)庫是可單獨使用,但有時可相對彼此更新的數(shù)據(jù)庫。例如,便攜式計算機上的文件系統(tǒng)可以與辦公室中的服務(wù)器上的文件系統(tǒng)連接。當便攜式計算機在辦公室外使用時,某些數(shù)據(jù)可儲存在便攜式計算機上,使得用戶可繼續(xù)工作。某些文件可在便攜式計算機上以及同樣地在服務(wù)器上改變和更新。
便攜式計算機和服務(wù)器上的文件結(jié)構(gòu)可以在便攜式計算機被帶回辦公室時同步。來自便攜式計算機的更新的文件可以被傳輸?shù)椒?wù)器,同樣,來自服務(wù)器的更新的文件可以被傳輸?shù)奖銛y式計算機。當文件結(jié)構(gòu)包含非常大量的數(shù)據(jù)時,同步可以是非常漫長的,且可能要求便攜式和服務(wù)器計算機上大量的存儲空間。
因此,有利的是提供一種系統(tǒng)和方法,其中可在連接和未連接的情況下在數(shù)據(jù)庫上執(zhí)行有用的工作,而無需漫長和耗費空間的同步。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于同步具有元數(shù)據(jù)和原始數(shù)據(jù)的數(shù)據(jù)庫的系統(tǒng)和方法。元數(shù)據(jù)可以完全在兩個系統(tǒng)之間同步,而使其副本儲存在兩個系統(tǒng)上。原始數(shù)據(jù)可以被選擇性地同步,使得客戶機系統(tǒng)無需本地儲存所有的原始數(shù)據(jù)。當斷開連接時,客戶機系統(tǒng)可以標識要本地儲存的原始數(shù)據(jù)的某些部分,且這些數(shù)據(jù)可以在重新連接到服務(wù)器時同步。元數(shù)據(jù)可包含涉及原始數(shù)據(jù)的各種項目。由此,即使不存在原始數(shù)據(jù),那些元數(shù)據(jù)也可向客戶機系統(tǒng)提供各種有用的功能。元數(shù)據(jù)的操縱,包括操縱原始數(shù)據(jù)或?qū)е聦υ紨?shù)據(jù)的改變的某些功能,可以“離線”執(zhí)行,而無需原始數(shù)據(jù)存在。當最后的重新同步事件發(fā)生時,那些改變可被傳播到原始數(shù)據(jù)。
附圖中圖1是示出同步的數(shù)據(jù)庫系統(tǒng)的實施例的圖示。
圖2是示出顯示用于創(chuàng)建涉及文件的項目的方法的實施例的流程圖。
圖3是示出用于同步幻影文件的事件序列的實施例的圖示。
圖4是示出用于同步幻影文件的方法的實施例的流程圖。
圖5是示出用于同步對原始數(shù)據(jù)文件和元數(shù)據(jù)的改變的方法的實施例的流程圖。
具體實施例方式
盡管本發(fā)明容許各種修改和替換形式,在附圖中作為示例示出了本發(fā)明的具體實施例,且將在此詳細描述。然而應(yīng)當理解,并不意圖將本發(fā)明限于所揭示的具體形式,相反,本發(fā)明旨在覆蓋落入由權(quán)利要求書定義的精神和范圍內(nèi)的所有修改、等效技術(shù)方案和替換方案。一般而言,選擇這些實施例以強調(diào)本發(fā)明的特定發(fā)明性方面或特征。
貫穿本說明書,在所有附圖的描述中,相同的標號表示相同的元素。
當元素被稱為“連接的”或“耦合的”時,元素可以直接連接或耦合在一起,或者也可存在一個或多個介于中間的元素。
本發(fā)明可以被實施為設(shè)備、系統(tǒng)、方法和/或計算機程序產(chǎn)品。因此,本發(fā)明的部分或全部可以用硬件和/或軟件(包括固件、常駐軟件、微碼、狀態(tài)機、門陣列等)來實施。此外,本發(fā)明可采用計算機可使用或計算機可讀存儲介質(zhì)上的計算機程序產(chǎn)品的形式,該計算機程序產(chǎn)品具有包含在介質(zhì)中的計算機可使用或計算機可讀程序代碼,以供指令執(zhí)行系統(tǒng)使用或結(jié)合其一起使用。在本文檔的上下文中,計算機可使用或計算機可讀介質(zhì)可以是可包含、儲存、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié)合其一起使用的任何介質(zhì)。
計算機可使用或計算機可讀介質(zhì)可以是,例如但不限于,電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。作為示例,而非局限,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。
計算機存儲介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實現(xiàn)的易失性和非易失性,可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存所期望的信息并可由指令執(zhí)行系統(tǒng)訪問的任一其它介質(zhì)。注意,計算機可使用或計算機可讀介質(zhì)可以是其上可打印程序的紙張或另一合適的介質(zhì),因為程序可以例如通過對紙張或其它介質(zhì)的光學掃描,然后在需要時編譯、解釋或以其它合適的方式處理,然后儲存在計算機存儲器中來電子地捕捉。
通信介質(zhì)通常具體化為諸如載波或其它傳輸機制的已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指以對信號中的信息進行編碼的方式設(shè)置或改變其一個或多個特征的信號。作為示例而非局限,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接連線連接,以及無線介質(zhì),如聲學、RF、紅外和其它無線介質(zhì)。上述任一的組合也應(yīng)當包括在計算機可讀介質(zhì)的范圍之內(nèi)。
當本發(fā)明在計算機可執(zhí)行指令的通用上下文中實施時,該實施例可包括由一個或多個系統(tǒng)、計算機或其它設(shè)備執(zhí)行的程序模塊。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。通常,程序模塊的功能可以如各實施例中所需的組合或分布。
圖1示出了顯示同步的數(shù)據(jù)庫系統(tǒng)的本發(fā)明的實施例100。服務(wù)器系統(tǒng)102和客戶機系統(tǒng)104通過通信路徑106連接。
服務(wù)器系統(tǒng)102具有包含項目存儲庫110的存儲系統(tǒng)108。項目112、114和116由分別由參數(shù)118、122和124組成。項目112涉及文件120。類似地,項目116涉及文件126。
客戶機系統(tǒng)104具有包含項目存儲庫130的存儲系統(tǒng)128。項目132、134和136分別由參數(shù)138、142和144組成。項目132涉及幻影文件140。項目144涉及同步的文件146。
服務(wù)器系統(tǒng)102和客戶機系統(tǒng)104可以是可儲存和操縱數(shù)據(jù)的計算機系統(tǒng)或任何其它設(shè)備。在一個實施例中,服務(wù)器系統(tǒng)102可以是服務(wù)器計算機,而客戶機系統(tǒng)104可以是客戶機計算機,諸如便攜式膝上型計算機。在其它實施例中,客戶機系統(tǒng)104可以是便攜式媒體播放器、個人信息管理器、或至少具有某一數(shù)據(jù)存儲的其它設(shè)備。
通信路徑106可以是服務(wù)器102和客戶機104用于通信的任何類型的通信機制。示例包括,但不限于,諸如以太網(wǎng)、令牌環(huán)、串行或并行通信等各種有線通信協(xié)議、各種無線協(xié)議、電話技術(shù)或任何其它通信介質(zhì)。在其中客戶機系統(tǒng)104是膝上型計算機的一個示例中,通信路徑106可以是互聯(lián)網(wǎng)連接。在某些情況下,可使用各種加密協(xié)議。
存儲設(shè)備108和128可以是硬盤存儲系統(tǒng),或者可以是任何其它類型的存儲介質(zhì),包括諸如閃存等固態(tài)存儲器。在某些情況下,存儲介質(zhì)可以是非易失性存儲器,而在其它情況下,可使用易失性存儲器??墒褂萌魏晤愋偷臄?shù)據(jù)存儲介質(zhì)。
項目112、114和116可包含元數(shù)據(jù),以及對于各種應(yīng)用程序有用的數(shù)據(jù)。在典型的通用計算機系統(tǒng)的示例中,各種項目可涉及可由在計算機系統(tǒng)上操作的應(yīng)用程序使用的任何類型的數(shù)據(jù)。例如,可創(chuàng)建項目來儲存涉及電話聯(lián)系人、日歷上的事件、要執(zhí)行的任務(wù)等的信息。
每一項目包含各種參數(shù),參數(shù)可以是對該類型的項目專用的值。例如,聯(lián)系人項目可包含儲存聯(lián)系人的名字、公司、地址和電話號碼的參數(shù)。不同類型的項目可具有不同的參數(shù),取決于項目的目的和功能。
其它項目可涉及特定的原始數(shù)據(jù)文件,諸如分別具有與文件120和126的關(guān)系的項目112和116。在這些情況下,項目可使其部分或所有參數(shù)從文件中導(dǎo)出。這些項目可以被稱為文件后援項目(file backed item)。例如,包含音頻唱片的文件可具有包含諸如藝術(shù)家名字、曲目名、唱片長度和其它參數(shù)等元數(shù)據(jù)的文件后援項目。類似地,包含文字處理程序文檔的文件可具有包含文檔標題、作者名字、主題和其它分類參數(shù)的相關(guān)聯(lián)的文件后援項目。
具有相關(guān)文件的文件后援項目可包含關(guān)于該文件的各種元數(shù)據(jù)。這些元數(shù)據(jù)可包括可通過直接分析文件來確定的導(dǎo)出數(shù)據(jù),以及非導(dǎo)出數(shù)據(jù)。導(dǎo)出數(shù)據(jù)可通過執(zhí)行從原始數(shù)據(jù)文件中精選特定信息并確定各種參數(shù)值的分析例程來創(chuàng)建。這些例程可以對于各種類型的文件不同。例如,與文字處理程序文檔相關(guān)聯(lián)的文件后援項目可以通過掃描文檔來確定標題、目錄、關(guān)鍵詞、作者或其它參數(shù)來創(chuàng)建。這些元數(shù)據(jù)直接包含在原始數(shù)據(jù)中。
在某些情況下,信息可從原始數(shù)據(jù)文件中精選、對照外部數(shù)據(jù)庫來查詢、或以其它方式處理來確定適當?shù)膮?shù)值。例如,音頻唱片可具有可對照在線數(shù)據(jù)庫來檢查以確定藝術(shù)家、曲名、專輯、流派和原始發(fā)行日期的標識符。該元數(shù)據(jù)是基于原始數(shù)據(jù)的內(nèi)容導(dǎo)出的,即使所導(dǎo)出的元數(shù)據(jù)不包含在原始數(shù)據(jù)本身中也是如此。
在某些實施例中,數(shù)據(jù)庫中的每一文件具有一個相關(guān)的文件后援項目。在其它實施例中,單個文件后援項目可涉及若干原始數(shù)據(jù)文件,或者單個原始數(shù)據(jù)文件可具有若干相關(guān)聯(lián)的文件后援項目。
非導(dǎo)出數(shù)據(jù)可包括不是從原始數(shù)據(jù)本身派生的其它信息。例如,涉及音頻唱片的參數(shù)可包括用戶對唱片的分級或播放該唱片的次數(shù)。
可配置系統(tǒng),使得對導(dǎo)出元數(shù)據(jù)或原始數(shù)據(jù)文件的改變被傳播到對方。例如,如果改變是在編輯文檔時對文字處理程序文檔的標題做出的,則標題改變隨后可以在相關(guān)聯(lián)的文件后援項目的元數(shù)據(jù)中更新。類似地,如果用新的標題改變來更新文件后援項目,則文檔的標題可被傳播回原始數(shù)據(jù)文件。
為本說明書的目的,術(shù)語“文件后援項目”是一般術(shù)語“項目”的子集。文件后援項目的所有描述和限制都應(yīng)適用于所有項目,且一般項目的某些但非全部描述和限制可應(yīng)用于術(shù)語文件后援項目。術(shù)語文件后援項目應(yīng)指的是包含以某種方式從至少一個相關(guān)聯(lián)的文件的原始數(shù)據(jù)中導(dǎo)出的至少某些元數(shù)據(jù)的項目。
客戶機系統(tǒng)104與服務(wù)器系統(tǒng)102同步。當被同步時,服務(wù)器的項目存儲庫110與客戶機的項目存儲庫130同步。在初始同步時。服務(wù)器系統(tǒng)102可僅將整個項目存儲庫110復(fù)制到客戶機系統(tǒng)104。
后續(xù)的同步事件可以涉及檢測自從最后一次同步事件以來哪些項目被更新或改變。如果自從最后一次同步以來有項目被更新,但是對方系統(tǒng)上的對應(yīng)項目沒有改變,則更新的項目可被復(fù)制到對方系統(tǒng)。如果項目及其對方系統(tǒng)上對應(yīng)的項目都被更新,則必須決定選擇一個還是另一個項目。在某些實施例中,可使用規(guī)則用于確定要保留哪些項目,而在其它實施例中,可查詢用戶。文件的同步可遵循與項目同步相同的方法。
在某些實施例中,可在同步時向每一元數(shù)據(jù)項目或原始數(shù)據(jù)文件分配指示符。指示符可用于確定是否更新了項目或原始數(shù)據(jù)。在某些實施例中,可使用遞增計數(shù)器作為版本標識符。在每次更新元數(shù)據(jù)或原始數(shù)據(jù)之后,可遞增計數(shù)器,使得當同步事件發(fā)生時,可將服務(wù)器的版本標識符與客戶機元數(shù)據(jù)或原始數(shù)據(jù)進行比較,以確定自從同步以來是否發(fā)生了更新。
在其它實施例中,可使用時間標記作為版本指示符。時間標記可以包括日期和時間,或者可以是諸如已編碼的時間信號等另一時間指示符。在另外一些實施例中,簡單的標志可指示是否已更新了項目或原始數(shù)據(jù)集。
在本圖中,項目118、122和124分別與項目132、134和136同步。類似地,文件126與文件146同步。
文件140不與文件120同步,而是被示出為“幻影”。文件140可具有文件的某些屬性,諸如目錄系統(tǒng)中的占位符,但是在文件140之下的原始數(shù)據(jù)可能不在客戶機系統(tǒng)104上可用。當客戶機系統(tǒng)104與服務(wù)器系統(tǒng)102斷開連接時,涉及文件140的項目138可能可用,但是文件140中的原始數(shù)據(jù)可能不可用。
由于涉及文件140的元數(shù)據(jù)包含在文件后援項目132中,因此某些功能可操作可對客戶機系統(tǒng)104的用戶可用。使用包含在文件140中的音頻文件的示例,客戶機系統(tǒng)104可能能夠顯示各種音頻曲目、對各個曲目進行分級、將曲目組合成播放列表或其它有用的分組、以及僅使用項目132中包含的元數(shù)據(jù)來執(zhí)行其它操作。
另外,包含在項目138中的元數(shù)據(jù)可用于操縱文件140的各方面。例如,項目132可以用于指示文件140要被同步而非建立幻影。這一指示可使得文件120在下一同步事件被復(fù)制到文件140。在另一示例中,項目132可用于將文件移至不同的目錄或分層結(jié)構(gòu)中。類似地,項目132可用于指示文件140要被刪除。
可使用項目132作為要在其上采取動作的數(shù)據(jù)以及可用于儲存動作以供稍后執(zhí)行的一種機制,來指示許多其它動作。使用音頻唱片的示例,項目132可被顯示,作為某一流派的音樂查詢的結(jié)果。用戶可選擇項目132以從數(shù)據(jù)庫中刪除。由于僅文件140被建立幻影而非原始數(shù)據(jù)文件,因此對應(yīng)的項目118和文件120的刪除在下一同步之前并不會發(fā)生。由此,刪除操作可作為參數(shù)儲存在項目132中,直到下一同步發(fā)生。
諸如文件140等幻影文件的一個實際的好處是具有許多原始數(shù)據(jù)文件的大數(shù)據(jù)庫可以比客戶機存儲128能夠包含的容量大得多。然而,由于包含在儲存在項目存儲庫130中的各種項目中的元數(shù)據(jù),仍存在很多無用的數(shù)據(jù)。
在某些實施例中,包含在文件120和126中的原始數(shù)據(jù)可以被分類,或者對僅在存在特定的得知需求時才同步的原始數(shù)據(jù)文件加密。涉及文件的元數(shù)據(jù)可在低于原始數(shù)據(jù)的級別上取消分類或分類。例如,包含競爭性敏感信息、機密的軍事信息或其它敏感信息的原始數(shù)據(jù)文件可保存在服務(wù)器系統(tǒng)102上,而不被傳輸?shù)娇蛻魴C系統(tǒng)104,除非有必要。
在其它實施例中,原始數(shù)據(jù)可以是格外大的文件,該文件可能需要長時間以在服務(wù)器系統(tǒng)102和客戶機系統(tǒng)104之間傳輸。例如,如果原始數(shù)據(jù)文件僅是大小為若干千兆字節(jié)的幾個電影文件,則同步電影庫可能需要花費好幾分鐘或甚至是幾個小時,取決于通信路徑106的吞吐量等等。
項目存儲庫110和130可以是可用于儲存元數(shù)據(jù)和其它數(shù)據(jù)的任何類型的數(shù)據(jù)存儲。在某些實施例中,項目存儲庫110和130可以是目錄中的單個文件,或者可以是多個目錄中的多個文件。在其它實施例中,項目存儲庫110和130可以與原始數(shù)據(jù)一起儲存在任何其它類型的數(shù)據(jù)存儲模式中。
圖2是可用于從文件生成元數(shù)據(jù)的方法的實施例200的流程圖。該過程在框202開始。文件在框204儲存在文件系統(tǒng)中。在框206創(chuàng)建涉及文件的項目。如果在框208文件是特殊類型,則在框210運行分析程序來生成元數(shù)據(jù)。在框212,元數(shù)據(jù)儲存在項目中。如果在框208文件不是特殊類型,或在框212當元數(shù)據(jù)儲存在項目中時,在框214項目被儲存在存儲庫中。該過程在框216結(jié)束。
實施例200示出了其中可從原始數(shù)據(jù)生成元數(shù)據(jù)的一種方法。在實施例200中,原始數(shù)據(jù)可以是計算機系統(tǒng)中的文件的形式。如果文件是預(yù)定的類型,則對原始數(shù)據(jù)的分析可以確定一個或多個元數(shù)據(jù)參數(shù)的值。這些參數(shù)儲存在項目中。
實施例200在一個應(yīng)用程序創(chuàng)建原始數(shù)據(jù)文件,但是元數(shù)據(jù)可以在第二種應(yīng)用中有用時是有用的。例如,如果原始數(shù)據(jù)文件是由文字處理程序創(chuàng)建的,則諸如作者、標題、主題等各種元數(shù)據(jù)參數(shù)可從原始數(shù)據(jù)中提取。元數(shù)據(jù)可由文檔管理應(yīng)用程序用于查詢、顯示和操縱涉及文檔的各種參數(shù)。
在另一實施例中,包含數(shù)值測試數(shù)據(jù)的原始數(shù)據(jù)文件可以由測試裝置創(chuàng)建。在框210,分析程序可操作以從數(shù)據(jù)中提取測量概要參數(shù),諸如最大和最小值。諸如標識測試裝置、測試主題、樣本大小的參數(shù)等附加元數(shù)據(jù)或其它元數(shù)據(jù)可被單獨地添加到項目。
圖3是用于同步的序列的實施例300的圖示。該過程示出了初始連接301、系統(tǒng)斷開連接的時間段325以及重新連接時的動作326。
在初始連接301中,服務(wù)器302和客戶機304被連接在一起。服務(wù)器302具有包含項目存儲庫310中的項目308的存儲系統(tǒng)306。項目308中的某一些具有相關(guān)的文件312和314。在初始連接301期間,用包含項目320的同步的項目存儲庫318來填充客戶機存儲316,項目320是來自服務(wù)器302的項目308的副本。在客戶機304上建立兩個引用服務(wù)器的文件312和314的幻影,作為文件322和324。
在初始連接301期間,項目存儲庫310和318被同步,且在服務(wù)器上建立原始數(shù)據(jù)文件312和314的幻影作為幻影文件322和324。
框325示出當切斷連接時系統(tǒng)的狀態(tài)。服務(wù)器302維護存儲306??蛻魴C304具有包含項目存儲庫318的存儲316,該項目存儲庫使得能夠執(zhí)行各種元數(shù)據(jù)和其它功能。當斷開連接時,可選擇幻影文件324以供未來的同步。
框326示出在重新連接之后的系統(tǒng)。服務(wù)器302和客戶機304被重新連接。項目存儲庫310和318在存儲系統(tǒng)306和316之間同步。作為同步例程的一部分,文件314替換幻影文件324,使得文件324的原始數(shù)據(jù)在斷開連接后可用。
實施例300示出了將幻影文件切換到完全可使用的文件的一種方法。在實施例300中,可選擇幻影文件以在下一次同步時“取消幻影”或制作全功能的文件。涉及原始數(shù)據(jù)文件的項目和元數(shù)據(jù)在離線模式中可用,如框325所示。這些項目和元數(shù)據(jù)可用于許多不同的功能,包括選擇特定的原始數(shù)據(jù)文件以使其離線可用。
圖4是用于同步幻影文件的方法的實施例400的流程圖。在框402,連接客戶機和服務(wù)器。在框404,同步客戶機和服務(wù)器之間的改變。當連接時,在框406,客戶機可操縱、編輯、添加和刪除項目以及直接訪問服務(wù)器上的原始數(shù)據(jù)文件。在框408,客戶機可標識原始數(shù)據(jù)文件以供遠程使用,且在框410,這些原始數(shù)據(jù)文件被同步到客戶機。
當客戶機和服務(wù)器在框412斷開連接時,客戶機可在框414使用項目存儲庫的本地副本來操縱、編輯、添加和刪除項目,以及本地訪問同步的原始數(shù)據(jù)文件??蛻魴C也可在框416標識幻影原始數(shù)據(jù)文件以供遠程使用。此外,客戶機可在框418移除同步得到的原始數(shù)據(jù)文件。該動作可包括在框418實際從客戶機數(shù)據(jù)存儲中刪除原始數(shù)據(jù)。
當客戶機和服務(wù)器在框402重新連接時,在框404,對項目的任何改變以及對先前同步的原始數(shù)據(jù)文件的任何改變被同步。被“取消幻影”或標記為可以離線可用的任何文件也在框404被同步。
包含原始數(shù)據(jù)和元數(shù)據(jù)的數(shù)據(jù)庫在兩個階段中同步。在第一階段中,在服務(wù)器和客戶機之間同步元數(shù)據(jù),而原始數(shù)據(jù)保留在服務(wù)器系統(tǒng)上。當連接或斷開連接時,客戶機系統(tǒng)可使用并操縱該元數(shù)據(jù)用于任何目的,包括選擇一個或多個要在客戶機系統(tǒng)上可用的原始數(shù)據(jù)文件。同步的第二階段是同步選擇的原始數(shù)據(jù)到客戶機系統(tǒng)。同步的原始數(shù)據(jù)可在斷開連接時被操縱、改變并在客戶機系統(tǒng)上使用。在重新連接時,對元數(shù)據(jù)或原始數(shù)據(jù)做出的任何改變在系統(tǒng)之間同步。
實施例300和400的一個示例可包括用于音樂文件的文件結(jié)構(gòu)。文件312和314可以是諸如MP3格式或其它數(shù)字格式等數(shù)字化音頻文件。每一音頻文件的項目308可包含藝術(shù)家、曲目名以及唱片長度。項目可儲存在項目存儲庫310中,且與項目存儲庫320完全同步。
當切斷連接之后,如圖3中的狀態(tài)325,客戶機系統(tǒng)304的用戶能夠瀏覽、操縱和改變存儲庫318中的項目。例如,用戶可按照藝術(shù)家來對項目進行排序、選擇若干項目、以及向項目排列成音頻播放列表。即使音頻文件不在數(shù)據(jù)存儲316中存在,用戶仍可對音頻文件執(zhí)行許多不同的任務(wù)。用戶可另外標記要同步的文件324。
當系統(tǒng)在狀態(tài)325斷開連接時,可對文件322和324使用占位符。文件是“幻影”的,且在目錄結(jié)構(gòu)中可能可見或不可見。例如,幻影文件可以被顯示為灰色的或半透明的。
當在狀態(tài)326恢復(fù)連接時,對項目存儲庫310和318的任何改變被同步,然后所標記的任何幻影文件,如文件324被同步。完全同步的文件324然后被傳輸?shù)娇蛻魴C304,且在客戶機304從服務(wù)器302斷開連接時可使用。
圖5是示出用于處理具有文件后援項目的同步系統(tǒng)的方法的實施例500的流程圖。在框502,同步數(shù)據(jù)存儲,然后在框504客戶機和服務(wù)器斷開連接。由于服務(wù)器包含用于文件后援項目的元數(shù)據(jù)和原始數(shù)據(jù)文件兩者,因此可以在框506在服務(wù)器上做出對這兩者的改變。由于客戶機系統(tǒng)僅有文件后援項目的元數(shù)據(jù)部分,因此在框508僅在客戶機上做出對元數(shù)據(jù)的改變。當客戶機和服務(wù)器重新連接時,在框510同步所有的改變。對于框512中的每一文件,如果文件在框514中被更新,則在框516改變被傳播到元數(shù)據(jù)。對于框518中的每一元數(shù)據(jù),如果元數(shù)據(jù)在框520中被更新,則在框522改變被傳播到元數(shù)據(jù)文件。在傳播了所有改變之后,操作在框524中連接的狀態(tài)中恢復(fù)。
實施例500是用于將對文件后援項目或與文件后援項目相關(guān)聯(lián)的原始數(shù)據(jù)的改變保持最新的一種方法。對文件后援項目的原始數(shù)據(jù)或相關(guān)的元數(shù)據(jù)的改變用于更新對方。
例如,若干文字處理文檔文件的每一個可與文件后援項目相關(guān)聯(lián)。諸如章節(jié)標題、標題、關(guān)鍵詞以及作者等參數(shù)可從原始數(shù)據(jù)文件中導(dǎo)出,并作為元數(shù)據(jù)儲存在文件后援項目中。當同步數(shù)據(jù)存儲時,具有元數(shù)據(jù)的文件后援項目被儲存在客戶機系統(tǒng)上,而文件后援項目以及原始數(shù)據(jù)都被儲存在服務(wù)器上。
當客戶機和服務(wù)器斷開連接時,可在服務(wù)器上通過直接編輯文字處理程序文檔來對原始數(shù)據(jù)文件做出改變。另外,對元數(shù)據(jù)的改變可通過編輯文件后援項目來做出。在客戶機方,只能對元數(shù)據(jù)做出改變,因為原始數(shù)據(jù)不可用。在本示例中,一個文字處理程序文檔可以在服務(wù)器上編輯以向該文檔添加新的章節(jié)。章節(jié)標題可以從原始數(shù)據(jù)文件中導(dǎo)出,并添加到文件后援項目的元數(shù)據(jù)中。類似地,不同的文件后援項目中的作者參數(shù)可在客戶機系統(tǒng)上改變。
當客戶機和服務(wù)器重新連接時,對原始數(shù)據(jù)文件的改變,諸如在服務(wù)器上添加到文件的附加章節(jié),被傳播到相關(guān)的文件后援項目的元數(shù)據(jù)。在某些情況下,可在做出改變但未被傳播到客戶機時在服務(wù)器上傳播改變,直到重新連接。
類似地,在客戶機上對元數(shù)據(jù)的改變,諸如上例中的作者改變可以在客戶機和服務(wù)器重新連接時被傳播到服務(wù)器上的原始數(shù)據(jù)文件中??纱蜷_文字處理程序文檔,找出原始數(shù)據(jù)文件中包含作者值的部分,并用新的值覆蓋舊的值。
以上本發(fā)明的描述是為了說明和描述的目的而呈現(xiàn)的。它并非旨在窮盡或?qū)⒈景l(fā)明限于所揭示的精確形式,且鑒于上述教導(dǎo),其它修改和變體也是可能的。選擇并描述該實施例是為了最佳地解釋本發(fā)明的原理及其實際應(yīng)用,由此使得本領(lǐng)域的技術(shù)人員能夠在各種實施例以及適用于所構(gòu)想的特定用于的各種修改中最好地利用本發(fā)明。所附權(quán)利要求書旨在被解釋為包括由現(xiàn)有技術(shù)所限定的范圍之外的本發(fā)明的其它替換實施例。
權(quán)利要求
1.一種系統(tǒng),包括第一組文件;第一組項目,所述項目的至少一個是文件后援項目,所述文件后援項目包括從與所述文件后援項目相關(guān)聯(lián)的所述第一組文件中的一個導(dǎo)出的元數(shù)據(jù);第一系統(tǒng),所述第一系統(tǒng)具有包括所述文件和所述第一組項目的第一數(shù)據(jù)存儲;第二系統(tǒng),所述第二系統(tǒng)具有第二數(shù)據(jù)存儲,并適用于當與所述第一系統(tǒng)連接時,在所述第一數(shù)據(jù)存儲和所述第二數(shù)據(jù)存儲之間同步所述項目組,并同步先前標識的所述第一組文件的子集;當與所述第一系統(tǒng)斷開連接時,標識所述第一組文件中要同步的至少一個文件,其中,所述第一組文件中的至少一個文件不是所述子集的成員;以及當隨后連接到所述第一系統(tǒng)時,同步所述第一組文件中的所述至少一個文件。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述文件組中的每一文件具有與其相關(guān)聯(lián)的至少一個文件后援項目。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一系統(tǒng)適用于通過為所述第一組文件中的所述一個文件確定文件類型,并基于所述文件類型確定預(yù)定項目的元數(shù)據(jù)值,來導(dǎo)出所述文件后援項目的元數(shù)據(jù)。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一系統(tǒng)適用于通過為所述第一組文件的所述一個文件確定文件類型,并通過概括包含在所述第一組文件的所述一個文件中的數(shù)據(jù)的至少一部分確定元數(shù)據(jù)值,來導(dǎo)出所述文件后援項目的元數(shù)據(jù)。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述同步所述第一組文件的所述至少一個文件包括標識對與所述文件后援項目相關(guān)聯(lián)的所述文件的改變;以及傳播所述改變到所述文件后援項目中的所述元數(shù)據(jù)。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述同步所述第一組文件的所述至少一個文件包括標識對所述文件后援項目中的所述元數(shù)據(jù)的改變;以及傳播所述改變到與所述文件后援項目相關(guān)聯(lián)的所述文件。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第一系統(tǒng)是服務(wù)器計算機。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第二系統(tǒng)是客戶機計算機。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第二系統(tǒng)是移動設(shè)備。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,當斷開連接時,所述第二系統(tǒng)還適用于使用所述項目來標識所述第一組文件中要同步的所述一個文件。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,當斷開連接時,所述第二系統(tǒng)還適用于標識所述第一組文件中要從同步中移除的至少一個文件。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述同步所述項目組包括以下方法找出所述第一系統(tǒng)上具有第一版本的項目,并找出所述第二系統(tǒng)上具有第二版本的對應(yīng)項目;標識所述第一版本或所述第二版本中的哪一個將成為保留版本;以及復(fù)制所述保留版本,使得所述第一數(shù)據(jù)存儲和所述第二數(shù)據(jù)存儲包含所述保留版本。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述標識包括檢查更新指示符,以確定自從最后一次同步以來所述第一版本或所述第二版本中的一個已發(fā)生改變。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述更新指示符是時間標記。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述更新指示符是標志。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述更新指示符是版本號。
17.一種方法,包括在第一系統(tǒng)上的第一文件存儲中儲存文件;在所述第一系統(tǒng)上的項目存儲中創(chuàng)建涉及所述文件的元數(shù)據(jù),所述元數(shù)據(jù)是從所述文件的內(nèi)容中導(dǎo)出的,且包含在文件后援項目中;將第二系統(tǒng)連接到所述第一系統(tǒng),所述第二系統(tǒng)具有第二文件存儲和第二項目存儲,且當連接時,將所述第一項目存儲與所述第二項目存儲同步;將所述第二系統(tǒng)與所述第一系統(tǒng)斷開連接,且當斷開連接時,標識在重新連接時要同步的所述文件;以及將所述第二系統(tǒng)重新連接到所述第一系統(tǒng),且當連接時,將來自所述第一文件存儲的所述文件同步到所述第二文件存儲。
18.如權(quán)利要求17所述的方法,其特征在于,所述將所述第一項目存儲與所述第二項目存儲同步包括找出所述第一系統(tǒng)上具有第一版本的項目,并找出所述第二系統(tǒng)上具有第二版本的對應(yīng)項目;標識所述第一版本或所述第二版本中的哪一個將成為保留版本;以及復(fù)制所述保留版本,使得所述第一項目存儲和所述第二項目存儲都包含所述保留版本。
19.如權(quán)利要求18所述的方法,其特征在于,所述標識包括檢查更新指示符以確定自從最后一次同步以來所述第一版本和所述第二版本中的一個已經(jīng)改變。
20.如權(quán)利要求19所述的方法,其特征在于,所述更新指示符是時間標記。
21.如權(quán)利要求19所述的方法,其特征在于,所述更新指示符是標志。
22.如權(quán)利要求19所述的方法,其特征在于,所述更新指示符是版本號。
23.如權(quán)利要求17所述的方法,其特征在于,所述元數(shù)據(jù)是通過以下方法導(dǎo)出的為所述文件確定文件類型;以及基于所述文件類型確定預(yù)定項目的元數(shù)據(jù)值。
24.如權(quán)利要求17所述的方法,其特征在于,所述元數(shù)據(jù)是通過以下方法導(dǎo)出的為所述文件確定文件類型;以及通過概括所述文件中包含的數(shù)據(jù)的至少一部分確定元數(shù)據(jù)值。
25.如權(quán)利要求17所述的方法,其特征在于,還包括標識對與所述文件后援項目相關(guān)聯(lián)的所述文件的改變;以及傳播所述改變到所述文件后援項目中的所述元數(shù)據(jù)。
26.如權(quán)利要求25所述的方法,其特征在于,還包括標識對所述文件后援項目中的所述元數(shù)據(jù)的改變;以及傳播所述改變到與所述文件后援項目相關(guān)聯(lián)的所述文件。
27.一種具有用于執(zhí)行如權(quán)利要求17所述的步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
全文摘要
一種用于同步具有元數(shù)據(jù)和原始數(shù)據(jù)的數(shù)據(jù)庫的系統(tǒng)和方法。元數(shù)據(jù)可在兩個系統(tǒng)之間完全同步,而使其副本儲存在兩個系統(tǒng)上。原始數(shù)據(jù)可被選擇性地同步,使得客戶機系統(tǒng)無需本地儲存所有原始數(shù)據(jù)。當斷開連接時,客戶機系統(tǒng)可標識原始數(shù)據(jù)中要本地儲存的某些部分,且這些數(shù)據(jù)可在重新連接到服務(wù)器時同步。
文檔編號G06F17/30GK1828599SQ20061000929
公開日2006年9月6日 申請日期2006年2月21日 優(yōu)先權(quán)日2005年2月22日
發(fā)明者B·S·拉曼, I·胡迪斯, L·諾維克, O·C·埃齊魯, R·M·饒, 吳蘊新 申請人:微軟公司