專利名稱::變更記錄處理的優(yōu)化的制作方法相關(guān)申請本專利申請要求享受1998年11月17日提交的專利序列號為60/108902,以及1998年12月1日提交的專利序列號為60/110485的共同未決美國臨時申請的優(yōu)先權(quán),這里將它們的內(nèi)容全部引入作為參考。本專利申請的主題還涉及__提交的專利序列號為__的共同未決美國非臨時專利申請(代理人文號34650-00402)。通過采用變更記錄處理,信息同步的方便性和效率已經(jīng)得到了進一步增強和提高。變更記錄通常是一個寄存器或者一組記錄,其中儲存著對有關(guān)數(shù)據(jù)庫之一進行的變更的一個記錄。例如,跟第一個數(shù)據(jù)庫有關(guān)的變更記錄儲存和維護著跟第一個數(shù)據(jù)庫的記錄的變更有關(guān)的信息。在同步過程中,變更記錄被同步裝置用于只處理包括在變更記錄中的那些變更。因此,通過避免比較第一個數(shù)據(jù)庫中包括的每一條記錄跟包括在第二個數(shù)據(jù)庫中每一條對應(yīng)的記錄,以便在這兩個數(shù)據(jù)庫之間保持一個一一對應(yīng)的關(guān)系,變更記錄明顯地提高了信息同步的效率。這種方法的一個明顯問題是變更記錄是在第一個數(shù)據(jù)庫中儲存和維護的,這就使得同步裝置必須在啟動同步程序以后請求將整個變更記錄傳輸過來。因為同步裝置必須按照第一個數(shù)據(jù)庫中變更的順序變更第二個數(shù)據(jù)庫,同步裝置必須讀出整個變更記錄,以確認變更記錄中最舊的條目(例如一個數(shù)據(jù)庫中最舊的變更)。隨著變更記錄的多少不同,這一過程可能會非常費時。另一個明顯的問題是現(xiàn)有的方法沒有說明將變更記錄傳輸給同步裝置的最好方法,也沒有說明同步裝置處理變更記錄的最優(yōu)順序,更沒有說明在傳輸變更記錄的過程中發(fā)生中斷的時候同步裝置應(yīng)該如何處理。例如,典型的傳輸是從變更記錄的第一個字節(jié)開始的,在變更記錄的最后一個字節(jié)結(jié)束。如果在傳輸過程中發(fā)生了中斷,這個同步裝置就不會收到變更記錄中最舊的條目,它就不能在第二個數(shù)據(jù)庫中開始處理變更記錄中的條目。因此,變更記錄傳輸?shù)闹袛鄷仁雇窖b置跟第一個數(shù)據(jù)庫的連接恢復(fù)以后,請求重新傳輸整個變更記錄。這一過程進一步地降低了信息同步的效率。因此,考慮到現(xiàn)有方法的缺陷,需要一種方法和裝置,這種方法和裝置能夠優(yōu)化采用變更記錄的同步過程,從而提高信息同步的效率。發(fā)明簡述現(xiàn)有技術(shù)中的這些缺陷是用本發(fā)明的方法和系統(tǒng)來彌補的。例如,如同迄今為止還沒有認識到的一樣,通過提高變更記錄的處理效率,對優(yōu)化第一個裝置和第二個裝置之間的信息同步是有好處的。例如,根據(jù)本發(fā)明的一個方面,第二個裝置儲存一個變更計數(shù)器值,這個值跟儲存在第一個裝置中的變更記錄的最后那個同步條目有關(guān)。包括提交了變更計數(shù)器值以后出現(xiàn)的條目的一部分變更記錄,最好是按照預(yù)先確定的次序從第一個裝置傳輸給第二個裝置,從而避免在變更記錄的傳輸過程中發(fā)生中斷的時候需要重新啟動同步過程。還有,儲存在第二個裝置中的變更計數(shù)器值,最好在第二個裝置處理完傳輸過的變更記錄的每一個條目之后并響應(yīng)于第一個裝置中進行的數(shù)據(jù)庫更新來進行更新。在第一個實施方案中,當(dāng)前的變更計數(shù)器儲存在第一個裝置中,并在第一個裝置中響應(yīng)第二個裝置的數(shù)據(jù)庫更新命令進行更新。根據(jù)第一個裝置中數(shù)據(jù)庫的更新命令的處理狀況,第一個裝置隨后將更新過的變更計數(shù)器值返回給第二個裝置。更新過的變更計數(shù)器可以包括在例如給第二個裝置的一則確認消息中。這則確認消息可以將當(dāng)前變更計數(shù)器值、第一個裝置中記錄的唯一標(biāo)識(UID)和數(shù)據(jù)庫更新命令的狀態(tài)告訴第二個裝置。第二個裝置可以隨后將返回的變更計數(shù)器的值儲存起來,供以后的同步過程使用,或者在發(fā)生中斷或者其它差錯的情況下使用,而沒有必要讀出整個變更記錄。在第二個實施方案中,第二個裝置在啟動同步程序的時候?qū)Υ娴淖兏嫈?shù)器提交給第一個裝置,第一個裝置向第二個裝置傳輸在提交了變更計數(shù)器以后變更記錄里的條目。變更記錄里的條目最好是用相反的順序傳輸給第二個裝置(例如變更記錄中最舊的條目最先傳輸)。第二個裝置最好首先處理變更記錄中最舊的條目,在每個條目處理過以后更新儲存在第二個裝置中的變更計數(shù)器。結(jié)果,第二個裝置在發(fā)生中斷的時候能夠避免重新啟動同步程序,能夠按照收到的變更記錄的條目開始更新,即使只是收到傳輸過來的一部分變更記錄。本發(fā)明的技術(shù)優(yōu)點包括,但不限于,以下示例性的技術(shù)優(yōu)點。應(yīng)當(dāng)明白,這些實施方案可以不涉及以下示例性的技術(shù)優(yōu)點。本發(fā)明的一個重要技術(shù)優(yōu)點是,通過保證第二個裝置維護好當(dāng)前的變更計數(shù)器,它能夠提高變更記錄處理的效率。本發(fā)明另外一個重要的技術(shù)優(yōu)點是,它使得第二個裝置能夠處理變更記錄條目,而不管變更記錄的傳輸是否發(fā)生了中斷。本發(fā)明再一個重要的技術(shù)優(yōu)點是,它使得第二個裝置能夠開始處理變更記錄,即使實際上只收到一部分變更記錄。本發(fā)明還有一個重要的技術(shù)優(yōu)點,那就是它通過優(yōu)化變更記錄處理使用變更記錄,能夠提高同步過程的效率。本發(fā)明上面描述的特征和其它特征將參考附圖中示例性的實例更加詳細地加以說明。本領(lǐng)域里的技術(shù)人員會明白描述的這些實施方案是為了進行說明和幫助理解,從它們可以想出各種等價的實施方案。圖2是能夠用于同步不同數(shù)據(jù)庫的同步裝置的一個示例性功能框圖;和圖3A、3B、3C和3D用流程圖的形式說明實踐本發(fā)明的原理的示例性方法。附圖詳述在以下說明中,為了進行說明而不是進行限制,給出了具體細節(jié),比方說特定的電路、邏輯模塊(例如用軟件、硬件、固件、它們的某種組合實現(xiàn)的)、技術(shù)等,以幫助全面地理解本發(fā)明。但是,對于本領(lǐng)域里的技術(shù)人員而言,本發(fā)明顯然可以用不同于這些具體細節(jié)的其它實施方案來實踐。在其它情形中,省去了對眾所周知的方法、裝置、邏輯模塊(例如硬件、軟件、固件等等)的詳細描述,以免喧賓奪主。通過參考附圖1~3D,能夠很好地理解本發(fā)明的優(yōu)選實施方案和它的優(yōu)點,附圖中相似的數(shù)字用于說明相似和對應(yīng)的部件。應(yīng)當(dāng)強調(diào),雖然以下說明描述本發(fā)明的特定方面的時候針對的是在有關(guān)的無線裝置之間通過無線接口進行信息同步,但是本發(fā)明并不局限于這樣的裝置或者接口。相反,本發(fā)明的原理同樣可以應(yīng)用于通過例如電或者電子機械連接器在其它類型的裝置之間進行信息同步。因此,以下描述只是為了進行說明而不是進行限制。參考圖1,用10說明將儲存在第一個裝置中的信息跟儲存在多個有關(guān)裝置中的信息進行同步的無線系統(tǒng)的一個示例性框圖。這個示例性無線系統(tǒng)包括第一個裝置,比如無線手機100,它能夠跟一個或者多個有關(guān)的裝置通信,例如跟另外一個無線手機110、一臺個人計算機(PC)120、一個個人數(shù)字助理(PDA)125、一個尋呼機130和一個車載電話支架150通信。除了跟第一個裝置100通信以外,這些有關(guān)裝置110、120、125、130和150中的每一個,都能夠跟一個或者多個裝置通信。例如,個人計算機120可以跟尋呼機120通信,尋呼機120還可以跟另外一個尋呼機140通信。圖1中描述的裝置最好是利用例如紅外收發(fā)信機或者近距離無線電收發(fā)信機通過無線接口160互相通信。每個裝置100、110、120、125、130、140和150還包括對應(yīng)的一個數(shù)據(jù)庫(圖1中沒有畫出),它們儲存著信息,比如電話簿、日歷、任務(wù)列表等。通過采用適當(dāng)?shù)耐絽f(xié)議同步這些不同的數(shù)據(jù)庫,可以同步儲存在每個裝置里的信息,從而使每個裝置都包括相同的信息(例如變更一個數(shù)據(jù)庫中的條目或者記錄的時候,也對其它數(shù)據(jù)庫進行變更)。參考圖2,能夠用于同步不同數(shù)據(jù)庫的一種同步裝置的示例性功能框圖籠統(tǒng)地用20說明。這個示例性的裝置包括一個同步(sync)引擎210,跟某個(同步引擎)數(shù)據(jù)庫200連接和相關(guān)。例如,這個同步引擎數(shù)據(jù)庫200可以是跟圖1所示無線手機100有關(guān)或者包括在其中作為一部分的一個數(shù)據(jù)庫。在這種情況下,“同步引擎”最好是實現(xiàn)數(shù)據(jù)庫同步功能的軟件。但是,實現(xiàn)同步引擎功能的裝置也可以被看作同步引擎210的一部分。第二個裝置數(shù)據(jù)庫230要跟同步引擎數(shù)據(jù)庫200實現(xiàn)同步。例如,裝置數(shù)據(jù)庫230可以跟PDA125相關(guān)或者包括在其中作為一部分。值得注意,這一同步過程可以在兩個方向進行。例如,PDA125也可以包括一個同步引擎210,從而允許將跟無線手機100有關(guān)的裝置數(shù)據(jù)庫230和跟PDA125有關(guān)的同步引擎數(shù)據(jù)庫實現(xiàn)同步。同步協(xié)議220用于規(guī)范數(shù)據(jù)庫的同步過程。最好有一個變更記錄240跟裝置數(shù)據(jù)庫230有關(guān),最好是一個記錄或者寄存器,其中臨時貯存著對裝置數(shù)據(jù)庫230的變更。例如,變更記錄240的大小可以是固定的,增加新的變更的時候,舊的變更被推出變更記錄240。這樣,變更記錄240中的每一個條目都跟對裝置數(shù)據(jù)庫230進行的特定操作(例如增加、刪除或者修改)、時間標(biāo)記(或者變更計數(shù)器值)和一個唯一的標(biāo)識符(UID)有關(guān)。UID是分配給數(shù)據(jù)庫中每一個新條目的一個編號。這些UID編號是唯一的指的是在同樣的數(shù)據(jù)庫中不會重復(fù)使用它們。最好是為每一次變更將變更計數(shù)器值儲存在變更記錄240中,并且在完成同步程序以后也儲存在同步引擎210中。在同步引擎數(shù)據(jù)庫200和裝置數(shù)據(jù)庫230之間同步信息的時候,同步協(xié)議220通常進行“慢”同步或者“快”同步。進行第一次同步嘗試的時候,如果兩個數(shù)據(jù)庫200、230中至少有一個包括信息,就進行慢同步過程。慢同步是這樣一個過程,其中一個數(shù)據(jù)庫中的所有條目都要跟有關(guān)數(shù)據(jù)庫中的所有條目進行比較。隨后一個條目一個條目的增加、修改或者刪除,從而在兩個數(shù)據(jù)庫上200、230之間保持一種一一對應(yīng)的關(guān)系。進行這種慢同步過程的時候,創(chuàng)建一個UID分辨表(resolutiontable)(例如通過同步引擎軟件)。這個UID分辨表中的條目反映了已經(jīng)同步了的兩個數(shù)據(jù)庫中條目之間的關(guān)系。例如,如果裝置數(shù)據(jù)庫230中一個條目有一個UID,這個UID分辨表就提供裝置數(shù)據(jù)庫230中這個條目的UID和同步引擎數(shù)據(jù)庫200中同一個條目的UID。相反,如果在上一次同步完成以后變更記錄240包括所有的數(shù)據(jù)庫變更信息,就進行快同步過程(例如變更記錄240中還沒有任何條目被推出去)。進行這種快同步過程的時候,在裝置數(shù)據(jù)庫230和同步引擎210之間只對受到影響的數(shù)據(jù)庫中沒有同步的那些變更進行比較和傳輸。因此,快同步比慢同步要快得多。同步裝置20碰到的一個問題是同步引擎210可能不知道變更計數(shù)器的當(dāng)前值,因為變更計數(shù)器和跟數(shù)據(jù)庫記錄有關(guān)的UID都是在裝置數(shù)據(jù)庫230中創(chuàng)建的,而不是在同步引擎210中創(chuàng)建的。例如,當(dāng)同步引擎210更新裝置數(shù)據(jù)庫230的時候,同步引擎210并不知道變更計數(shù)器的當(dāng)前值。可以采用的一種技術(shù)是在每一個條目增加到裝置數(shù)據(jù)庫230中以后返回每一個條目的UID作為裝置數(shù)據(jù)庫230已經(jīng)收到并處理過新條目的確認。而變更計數(shù)器值則不返回。這一技術(shù)的缺點是在全面同步以后,同步引擎210必須讀出整個變更記錄240,以便確定變更計數(shù)器的當(dāng)前值。隨著變更記錄240大小的不同,這一過程有可能是非常耗時的。從裝置數(shù)據(jù)和230向同步引擎210傳輸變更記錄240的過程中發(fā)生中斷的時候會出現(xiàn)另外一個問題。例如,典型的傳輸從變更記錄240的開頭開始,在變更記錄240的最后一個字節(jié)結(jié)束。結(jié)果,如果在傳輸過程中發(fā)生中斷,同步引擎210將不會收到變更記錄中的最后一個條目,因此,不能收到變更記錄中最舊的條目。所以,同步引擎210不能開始處理變更記錄240,或者請求獲得數(shù)據(jù)庫記錄,直到恢復(fù)連接以后,同步引進210將變更記錄240全部重新讀取過來。這樣降低了變更記錄處理的效率。參考圖3A、3B、3C和3D,用30以流程圖的形式說明能夠?qū)嵺`本發(fā)明的原理的一種示例性方法。應(yīng)當(dāng)注意,這里描述的示例性方法是用例如圖2描述的示例性同步裝置和/或圖1描述的示例性系統(tǒng)來實現(xiàn)的。為了進行說明而不是進行限制,下面針對同步引擎數(shù)據(jù)庫200和裝置數(shù)據(jù)庫230之間的數(shù)據(jù)和同步描述這一示例性的方法。這些數(shù)據(jù)庫200、230可以包括在圖1所示的一個或者多個裝置中,或者跟它們有關(guān)。但是這一示例性的方法并不局限于這些具體裝置。相反,技術(shù)人員會認識到這一示例性方法也能同樣用于不同于這里描述的具體細節(jié)的其它實施方案。還應(yīng)當(dāng)強調(diào)這一方法可以在兩個方向上進行(例如,裝置數(shù)據(jù)庫230可以包括一個同步引擎210,它按照跟同步引擎數(shù)據(jù)庫200有關(guān)的變更記錄240,同步裝置數(shù)據(jù)庫230和同步引擎數(shù)據(jù)庫200之間的信息)。參考圖3A,這一示例性的方法從步驟300開始,同步引擎210向跟它通信的裝置數(shù)據(jù)庫230請求獲得一個序列號。這一請求可以被例如從裝置數(shù)據(jù)庫230收到尋呼信號或者應(yīng)答信號所啟動。響應(yīng)這一序列號請求,裝置數(shù)據(jù)庫230在步驟310中將有關(guān)的序列號返回給同步引擎210。這一有關(guān)的序列號最好唯一地說明裝置數(shù)據(jù)庫230,而且能夠包括例如一個藍牙ID或者跟另外一個通信協(xié)議有關(guān)的一個標(biāo)識。同步引擎210隨后在步驟320中將收到的序列號跟儲存的已知裝置的清單進行比較,以判斷這個裝置是不是一個新裝置,以此說明需要第一次同步。如果同步引擎210認為這個裝置是一個新裝置(例如需要第一次同步),這一過程就進入步驟A,在那里進行慢同步。參考圖3B,同步引擎210在步驟330中通過首先從裝置數(shù)據(jù)庫230請求獲得變更計數(shù)器(CC)的當(dāng)前值來進行慢同步過程。響應(yīng)這一請求,裝置數(shù)據(jù)庫230返回變更計數(shù)器的當(dāng)前值,同步引擎210在步驟340中暫時貯存返回過來的變更計數(shù)器值。同步引擎210隨后在步驟350中請求獲得裝置數(shù)據(jù)庫230上的所有數(shù)據(jù)記錄,裝置數(shù)據(jù)庫230在步驟360中將它所有的記錄返回給同步引擎210。同步引擎210隨后在步驟370中通過將來自裝置數(shù)據(jù)庫230中的所有記錄跟儲存在同步引擎數(shù)據(jù)庫200中的記錄進行比較來進行慢同步過程。這一比較步驟是一個字段一個字段地進行的,從而在裝置數(shù)據(jù)庫230和同步引擎數(shù)據(jù)庫200之間維持一種一一對應(yīng)關(guān)系。在慢同步過程完成以后,同步引擎210在步驟380中儲存變更計數(shù)器的當(dāng)前值,然后將它用于隨后的同步過程,下面將對此詳細說明。現(xiàn)在回到圖3A中的步驟320,如果同步引擎210認為這個裝置不是新裝置(例如已經(jīng)進行過第一次同步),這一過程就進入步驟B,在那里同步引擎210啟動快同步程序,如圖3C所示。在這一快同步過程中,同步引擎210將它儲存的變更計數(shù)器值提交給裝置數(shù)據(jù)庫230,并在步驟390中請求裝置數(shù)據(jù)庫230提供提交了變更計數(shù)器值以后變更了變更記錄240的條目。如果裝置數(shù)據(jù)庫230在步驟400中認為沒有同步過的所有變更都在變更記錄240中(例如在提交了變更計數(shù)器值以后變更記錄240中所有的條目沒有一個被推出去),裝置數(shù)據(jù)庫230就在步驟410中返回提交了變更計數(shù)器值以后發(fā)生的變更記錄240的所有條目。裝置數(shù)據(jù)庫230最好以相反的順序返回這些條目(例如最舊的條目最先返回),這樣,如果在變更記錄240的條目傳輸過程中發(fā)生了中斷,同步引擎210就至少能夠?qū)σ呀?jīng)收到的條目開始處理變更記錄240。否則,傳輸中斷會迫使同步引擎210在重新建立起連接以后重新讀整個變更記錄240,這樣才能收到變更記錄240中最舊的未同步條目。在步驟400中,如果裝置數(shù)據(jù)庫230認為不是所有的未同步變更都在變更記錄240中(例如提交了變更計數(shù)器值以后變更記錄240中的一些條目已經(jīng)被推出去),裝置數(shù)據(jù)庫230就在步驟415中返回給同步引擎210一個“太多的變更”信號,比如一個“*”。這個“太多的變更”信號告訴同步引擎210采用快同步過程是不行的,必須采用另外一個程序。因此,同步引擎210在步驟420中查看返回過來的變更記錄,以確定是否所有的條目都在。如果是這樣,同步引擎210就在步驟430中判斷返回的變更記錄是不是空的(例如自從上次同步以后裝置數(shù)據(jù)庫230中沒有任何變更)。如果返回的變更記錄是空的,這一過程就進入圖3D所示的步驟C。否則,同步引擎210就在步驟440中根據(jù)返回的變更記錄中包括的條目,向裝置數(shù)據(jù)庫230請求獲得數(shù)據(jù)庫記錄。裝置數(shù)據(jù)庫230在步驟450中返回被請求獲得的記錄。同步引擎210根據(jù)變更記錄的每一個返回條目和每一個返回記錄對同步引擎數(shù)據(jù)庫200進行數(shù)據(jù)庫更新,正在返回的變更記錄的每一個條目被處理完以后在步驟460中將儲存的變更計數(shù)器的值加1。同步引擎210為返回的變更記錄中包括的每一個條目重復(fù)步驟440~460,直到同步引擎210在步驟470中認為所有的變更都已經(jīng)處理完。然后這一過程進入圖3D所示的步驟C。應(yīng)當(dāng)指出,在本發(fā)明的一個優(yōu)選實施方案中,同步引擎210以相反順序處理返回過來的變更記錄(例如變更記錄中最舊的條目最先處理),并在處理完返回的變更記錄中的每一個條目之后,更新同步引擎210中儲存的變更計數(shù)器的值或者將它加1。這樣就使得同步引擎210能夠跟蹤變更計數(shù)器的當(dāng)前值,如果變更記錄240傳輸過程中發(fā)生中斷或者發(fā)生其它差錯,同步引擎210就能夠按照最后一次更新的變更計數(shù)器值開始處理變更記錄。因此,同步引擎210可以避免從頭開始重新啟動同步過程。此外,如果裝置數(shù)據(jù)庫230在步驟410中首先傳輸最舊的條目,同步引擎就總是能夠收到信息的有效部分,并能夠開始處理返回的條目,即使這一傳輸被中斷,只收到一部分條目。返回到圖3C的步驟420,如果同步引擎210發(fā)現(xiàn)有“太多的變更”,同步引擎210就進行一種“半慢(semi-slow)”同步過程。這一過程從同步引擎210在步驟480中向裝置數(shù)據(jù)庫230請求獲得的所有數(shù)據(jù)庫記錄開始。裝置數(shù)據(jù)庫230隨后在步驟490中將它所有的數(shù)據(jù)庫記錄(最好是首先提供最舊的記錄)返回給同步引擎210。在步驟500中,同步引擎210將返回記錄的UID跟儲存在同步引擎210中的UID分辨表進行比較,以便處理裝置數(shù)據(jù)庫230和同步引擎數(shù)據(jù)庫200之間的差別。這一過程比慢同步過程要有效得多。同步引擎210隨后在步驟510中向裝置數(shù)據(jù)庫請求獲得變更記錄240,并在步驟520中按照返回的變更記錄240中最新的條目更新同步引擎210中儲存的變更計數(shù)器值。這一過程隨后進入圖3D所示的步驟C。在步驟C中,將同步引擎數(shù)據(jù)庫200中的變更,如果有的話,跟裝置數(shù)據(jù)庫230同步。因此,同步引擎210在步驟530中判斷同步引擎數(shù)據(jù)庫200是否有任何變更。如果沒有,這一過程就已經(jīng)完成,同步過程結(jié)束。如果有變更,同步引擎210就在步驟540中將變更“放(put)”到裝置數(shù)據(jù)庫230中去。這一步驟涉及到同步引擎210發(fā)出一個數(shù)據(jù)庫更新命令(例如一個“放”命令)給裝置數(shù)據(jù)庫230,讓裝置數(shù)據(jù)庫230對它的數(shù)據(jù)庫記錄進行某些變更,比如增加新的記錄。在成功地執(zhí)行完數(shù)據(jù)庫更新命令以后,裝置數(shù)據(jù)庫230通過在步驟550中采取有關(guān)的數(shù)據(jù)庫行動(例如增加、修改、刪除),有關(guān)數(shù)據(jù)庫記錄的UID和更新過的(或者加過1的)變更計數(shù)器,來更新變更記錄240。在步驟560中,裝置數(shù)據(jù)庫230返回一則確認消息,它包括例如數(shù)據(jù)庫更新命令(例如正?;蛘哂胁铄e),有關(guān)的數(shù)據(jù)庫記錄的UID和變更計數(shù)器更新以后的值的狀態(tài)。同步引擎210隨后在步驟570中按照返回的變更計數(shù)器值更新它儲存的變更計數(shù)器值。應(yīng)當(dāng)指出裝置數(shù)據(jù)庫230最好返回變更計數(shù)器的當(dāng)前值,而不管數(shù)據(jù)庫更新命令是否被成功地執(zhí)行。返回的變更計數(shù)器的值使得同步引擎210保持最新的變更計數(shù)器值,用于隨后的同步過程或者在處理變更記錄的過程中發(fā)生了差錯的情況。同步引擎210按照判斷步驟580中的肯定/對/確定分支所說明的,未同步引擎數(shù)據(jù)庫200的每一變更重復(fù)步驟540~570。一旦處理完所有變更,同步過程就已經(jīng)完成,這一過程結(jié)束。雖然已經(jīng)在附圖和前面的詳細說明中描述了本發(fā)明的方法和系統(tǒng)的優(yōu)選實施方案,但是應(yīng)當(dāng)明白,本發(fā)明并不局限于這里公開的實施方案,而是能夠有許多調(diào)整、修改和替換,而不會偏離前面給出,后面的權(quán)利要求說明的本發(fā)明的實質(zhì)和范圍。權(quán)利要求1.優(yōu)化變更記錄處理的一種方法,該方法包括以下步驟在第一個裝置中儲存一個變更計數(shù)器值;根據(jù)來自第二個裝置的數(shù)據(jù)庫更新命令,更新第一個裝置中的變更計數(shù)器;和根據(jù)第一個裝置中數(shù)據(jù)庫更新命令的處理狀況,將更新過的變更計數(shù)器值返回第二個裝置。2.權(quán)利要求1中優(yōu)化變更記錄處理的方法,其中的返回步驟包括在給第二個裝置的確認消息中返回更新過的變更計數(shù)器值。3.權(quán)利要求2中優(yōu)化變更記錄處理的方法,其中的確認消息還包括第一個裝置數(shù)據(jù)庫記錄的一個唯一標(biāo)識符(UID)和數(shù)據(jù)庫更新命令的狀態(tài)。4.權(quán)利要求1中優(yōu)化變更記錄處理的方法,其中的處理狀況包括成功地完成數(shù)據(jù)庫更新命令和終止數(shù)據(jù)庫更新命令中的至少一個。5.權(quán)利要求1中優(yōu)化變更記錄處理的方法,還包括根據(jù)從第一個裝置返回的更新過的變更計數(shù)器值,更新儲存在第二個裝置中的第二個變更計數(shù)器的步驟。6.權(quán)利要求5中優(yōu)化變更記錄處理的方法,還包括以下步驟第二個裝置響應(yīng)同步過程的啟動,將第二個變更計數(shù)器提交給第一個裝置;和第一個裝置將提交了的第二個變更計數(shù)器以后變更記錄里的條目傳輸給第二個裝置,變更計數(shù)器里的條目傳輸給第二個裝置的時候,最舊的條目最先傳輸。7.權(quán)利要求6中優(yōu)化變更記錄處理的方法,還包括以下步驟第二個裝置處理傳輸過來的變更記錄的條目的時候,最先處理最舊的條目;和處理完傳輸過來的變更記錄中的每一個條目以后,第二個裝置更新第二個變更計數(shù)器。8.權(quán)利要求7中優(yōu)化變更記錄處理的方法,還包括以下步驟如果在變更記錄條目的傳輸過程中發(fā)生了中斷,第二個裝置就將第二個變更計數(shù)器的值重新提交給第一個裝置;和第一個裝置傳輸重新提交第二個變更計數(shù)器以后變更記錄的條目。9.權(quán)利要求1中優(yōu)化變更記錄處理的方法,其中的第一個裝置包括一個裝置數(shù)據(jù)庫,第二個裝置包括一個軟件同步引擎。10.權(quán)利要求1中優(yōu)化變更記錄處理的方法,其中第一個裝置包括無線手機、計算機、個人數(shù)字助理(PDA)、尋呼機和汽車電話支架中的至少一個。11.權(quán)利要求1中優(yōu)化變更記錄處理的方法,其中的第二個裝置包括無線手機、計算機、個人數(shù)字助理(PDA)、尋呼機和汽車電話支架中的至少一個。12.一種方法,用于提高在第一個裝置和第二個裝置直接同步信息的效率,該方法包括以下步驟在第一個裝置中儲存第一個變更計數(shù)器;從第二個裝置收到數(shù)據(jù)庫更新命令的時候,在第一個裝置中更新第一個變更計數(shù)器;根據(jù)第一個處理器中數(shù)據(jù)庫更新命令的處理狀況,將更新過的第一個變更計數(shù)器返回給第二個裝置;根據(jù)返回過來的更新過的第一個變更計數(shù)器,更新儲存在第二個裝置中的第二個變更計數(shù)器;在啟動同步程序的時候,第二個裝置將更新過的第二個變更計數(shù)器提交給第一個裝置;第一個裝置向第二個裝置傳輸變更記錄的一部分,這一部分變更記錄包括在提交過的第二個變更計數(shù)器以后跟第一個裝置有關(guān)的數(shù)據(jù)庫的變更記錄,這一部分變更記錄傳輸給第二個裝置的時候,最舊的條目最先傳輸;第二個裝置處理這一部分變更記錄的時候,最先處理最舊的條目;和在這一部分變更記錄中的每一個條目都被處理完以后,第二個裝置更新儲存的第二個變更計數(shù)器。13.權(quán)利要求12中提高第一個裝置和第二個裝置之間信息同步效率的方法,其中的返回步驟包括在給第二個裝置的確認消息中返回更新過的第一個變更計數(shù)器。14.權(quán)利要求13中提高在第一個裝置和第二個裝置之間信息同步效率的方法,其中的確認消息還包括跟數(shù)據(jù)庫記錄有關(guān)的一個唯一標(biāo)識符(CID)和數(shù)據(jù)庫更新命令的狀態(tài)。15.權(quán)利要求12中提高第一個裝置和第二個裝置之間信息同步效率的方法,還包括以下步驟如果在傳輸那一部分變更記錄的時候發(fā)生了中斷,第二個裝置就重新將第二個變更計數(shù)器提交給第一個裝置;和第一個裝置將重新提交完第二個變更計數(shù)器以后的那一部分變更記錄傳輸過去。16.權(quán)利要求12中優(yōu)化變更記錄處理的方法,其中的第二個裝置包括一個軟件同步引擎。17.優(yōu)化第一個裝置和第二個裝置之間信息同步的一種系統(tǒng),這個系統(tǒng)包括第一個數(shù)據(jù)庫,它有一個變更記錄,這個變更記錄包括跟第一個數(shù)據(jù)庫進行的每一變更有關(guān)的一個變更計數(shù)器;第二個數(shù)據(jù)庫,跟第一個數(shù)據(jù)庫有關(guān);和跟第二個數(shù)據(jù)庫有關(guān)的一個同步引擎,用于同步第一個數(shù)據(jù)庫和第二個數(shù)據(jù)庫之間的信息,這個同步引擎用于向第一個數(shù)據(jù)庫發(fā)出數(shù)據(jù)庫更新命令,以處理第二個數(shù)據(jù)庫的變更,這個同步引擎根據(jù)第一個數(shù)據(jù)庫中數(shù)據(jù)庫更新命令的處理狀況,從第一個數(shù)據(jù)庫接收更新過的變更計數(shù)器。18.權(quán)利要求17中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中更新過的變更計數(shù)器是從來自第一個數(shù)據(jù)庫的確認消息中收到的。19.權(quán)利要求18中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的確認消息還包括第一個數(shù)據(jù)庫一條記錄的一個唯一標(biāo)識符(UID)和數(shù)據(jù)庫更新命令的狀態(tài)。20.權(quán)利要求17中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的處理狀況包括成功地完成數(shù)據(jù)庫更新命令和數(shù)據(jù)庫更新命令結(jié)束這兩個中的一個。21.權(quán)利要求17中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的同步引擎根據(jù)從第一個數(shù)據(jù)庫收到的更新過的變更計數(shù)器,更新儲存在同步引擎中的第二個變更計數(shù)器。22.權(quán)利要求21中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的同步引擎在啟動同步過程的時候?qū)⒌诙€變更計數(shù)器提交給第一個數(shù)據(jù)庫,其中的第一個數(shù)據(jù)庫將提交過第二個計數(shù)器以后變更記錄中的條目傳輸給同步引擎,將變更記錄的條目傳輸給同步引擎的時候,最舊的條目最先傳輸。23.權(quán)利要求22中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的同步引擎處理傳輸過來的變更記錄的條目的時候,最先處理最舊的條目,在每一條目都處理完了以后同步引擎更新第二個變更計數(shù)器。24.權(quán)利要求17中優(yōu)化第一個裝置和第二個裝置之間信息同步的系統(tǒng),其中的同步引擎包括用于完成數(shù)據(jù)庫同步功能的一個軟件模塊。25.優(yōu)化變更記錄處理的一種方法,用于第一個裝置和第二個裝置之間的信息同步,這個方法包括以下步驟在啟動同步程序的時候,向第一個裝置提交儲存在第二個裝置中的變更計數(shù)器;第一個裝置返回儲存在第一個裝置中的變更記錄的條目,這些條目有一個大于提交的變更的計數(shù)器值的變更計數(shù)器值,第一個裝置以變更計數(shù)器增大的順序返回變更記錄的條目;和第二個裝置以變更計數(shù)器增大的順序處理返回的變更記錄的條目。26.權(quán)利要求25中用于第一個裝置和第二個裝置之間信息同步,優(yōu)化變更記錄處理的方法,還包括在返回來的變更記錄中的每一個條目都被處理完以后,更新儲存在第二個裝置中變更計數(shù)器值的步驟。27.權(quán)利要求26中用于第一個裝置和第二個裝置之間信息同步,優(yōu)化變更記錄處理的方法,還包括以下步驟在第二個裝置檢測到差錯狀況的時候,向第一個裝置提交更新過的變更計數(shù)器值;和第一個裝置將變更計數(shù)器的值大于提交過的更新過的變更計數(shù)器的變更記錄條目返回過去,第一個裝置以變更計數(shù)器增大的順序返回變更記錄中的條目。全文摘要一種信息同步方法和裝置在第一個數(shù)據(jù)庫(230)中儲存有一個有關(guān)的變更計數(shù)器的一個變更記錄(240),根據(jù)來自第二個數(shù)據(jù)庫(200)的數(shù)據(jù)和更新命令,更新第一個數(shù)據(jù)庫(230)中的變更計數(shù)器,并根據(jù)第一個數(shù)據(jù)庫(230)中數(shù)據(jù)庫更新命令的處理狀況,將更新過的變更計數(shù)器值返回第二個數(shù)據(jù)庫(200)。發(fā)生中斷或者差錯的時候,這個信息同步協(xié)議(220)能夠保證第二個數(shù)據(jù)庫(200)保存著用于隨后的同步過程的最新的變更計數(shù)器值,從而通過讓第二個數(shù)據(jù)庫(200)只處理更新過的變更計數(shù)器值以后第一個數(shù)據(jù)庫(230)中的那些變更,提高信息同步的效率。文檔編號G06F12/00GK1326571SQ99813340公開日2001年12月12日申請日期1999年11月5日優(yōu)先權(quán)日1998年11月17日發(fā)明者J·比爾克勒申請人:艾利森電話股份有限公司