專利名稱:用于同步為處理中斷的同步過程而提供的數(shù)據(jù)的方法、設(shè)備和系統(tǒng)的制作方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明分別涉及一種方法和一種設(shè)備,用于一個同步的客戶設(shè)備和一個同步的服務(wù)器設(shè)備之間的數(shù)據(jù)同步,并進(jìn)一步涉及相應(yīng)的同步設(shè)備。更具體地,本發(fā)明分別涉及用于數(shù)據(jù)同步的一種方法和一種設(shè)備,允許改善對有效同步過程的中斷的處理。
2.相關(guān)領(lǐng)域的描述數(shù)據(jù)同步對于用戶來說是周知的概念或技術(shù),該用戶分別具有至少兩個不同的使用中的電子設(shè)備并利用這些電子設(shè)備來處理相同類型的數(shù)據(jù)。通常,同步發(fā)生在終端設(shè)備(例如移動電話)和服務(wù)器設(shè)備(例如在本地PC或?qū)iT的同步服務(wù)器中的應(yīng)用)之間。來自比如便攜計算機(jī)、PDA終端(個人數(shù)字助理)、移動電話、移動工作站或傳呼機(jī)的終端的數(shù)據(jù)能夠與聯(lián)網(wǎng)設(shè)備同步,所述聯(lián)網(wǎng)設(shè)備充當(dāng)由聯(lián)網(wǎng)應(yīng)用、桌面計算機(jī)的應(yīng)用表示的同步服務(wù)器,或者該數(shù)據(jù)能夠與其他管理電信系統(tǒng)的數(shù)據(jù)存儲的應(yīng)用同步,其中術(shù)語“數(shù)據(jù)存儲”應(yīng)當(dāng)被盡量寬泛地理解,即應(yīng)當(dāng)涵蓋任意的數(shù)據(jù)集合。特別地,通常去同步日歷數(shù)據(jù)、聯(lián)系數(shù)據(jù)、電子郵件應(yīng)用的數(shù)據(jù)以及與設(shè)備/應(yīng)用設(shè)置和配置有關(guān)的數(shù)據(jù)。
同步已被基于對不兼容的不同制造商所特定的協(xié)議的使用。這限制了終端或數(shù)據(jù)類型的使用,并經(jīng)常給用戶帶來麻煩。特別地,在移動通信中,重要的是無論使用什么終端和應(yīng)用,數(shù)據(jù)都能夠被檢索和更新。
為了改善應(yīng)用數(shù)據(jù)的同步,設(shè)計了已知的并被稱為同步標(biāo)記語言SyncML的語言,它是基于可擴(kuò)展標(biāo)記語言(XML)的。通過使用一個應(yīng)用SyncML格式的消息的SyncML同步協(xié)議,可在聯(lián)網(wǎng)終端和任何類型的網(wǎng)絡(luò)服務(wù)器之間同步任何應(yīng)用的數(shù)據(jù)。SyncML同步協(xié)議在無線和固定兩種網(wǎng)絡(luò)中工作,并且支持若干傳送協(xié)議。以上提到的SyncML同步技術(shù)分別特別地解決了數(shù)據(jù)存儲或數(shù)據(jù)庫的同步。
常規(guī)地,在明確的時間點(diǎn)上執(zhí)行數(shù)據(jù)記錄的同步以便協(xié)調(diào),即以便使存儲在不同存儲位置,即在不同的同步設(shè)備管理和應(yīng)用存儲位置的兩個各別地預(yù)定義的數(shù)據(jù)記錄集合保持一致,從而在該明確時間點(diǎn)處在所說存儲位置上得到數(shù)據(jù)記錄的兩個等價集合。在明確的時間點(diǎn)執(zhí)行數(shù)據(jù)記錄的同步進(jìn)一步是指同步會話。在這樣的同步會話期間通過交換信息、指令和命令來獲得數(shù)據(jù)記錄的集合的同步,以允許參與的同步的設(shè)備修改其存儲的數(shù)據(jù)記錄集合,從而使它們協(xié)調(diào),其中該修改操作包括數(shù)據(jù)的增加、數(shù)據(jù)的刪除、添加數(shù)據(jù)到當(dāng)前數(shù)據(jù)、更新數(shù)據(jù)等等。為了實(shí)際的目的,通過在同步設(shè)備之間傳遞一個或多個消息來執(zhí)行所要求的信息和命令的交換,消息的每一個包含在每個同步設(shè)備上執(zhí)行協(xié)調(diào)所需的所有要求的信息、指令和命令的一個明確的子集。另外,確認(rèn)一個或多個消息的每一個,以便指明根據(jù)它的包含在其中的消息信息的成功操作。
基本地,在也指代為慢速同步的全同步過程或也指代為常規(guī)或快速同步的遞增同步過程中可以分別地處理和執(zhí)行上述的同步過程。在執(zhí)行全或慢速同步過程的同步會話期間,分別協(xié)調(diào)在兩個參與的同步設(shè)備中的所有預(yù)定義的數(shù)據(jù)記錄集合。在執(zhí)行遞增或快速同步過程的同步會話期間,在兩個參與的同步設(shè)備中分別將最后完成的同步會話的時間點(diǎn)記入日志(log),并且如果在兩個同步設(shè)備中存儲的記入日志的時間點(diǎn)只與從為同步選擇該記入日志的時間點(diǎn)以來修改的數(shù)據(jù)記錄匹配,那么從同步過程中排除所有其他的時間點(diǎn)。因此,通過同步設(shè)備將數(shù)據(jù)記錄的修改、增加或刪除時間點(diǎn)記入日志,便可以維護(hù)一個變更日志??商鎿Q地,可以以另一種方式確定修改,比如調(diào)查記錄的修改時間戳,如果存在這種信息的話。在SyncML標(biāo)準(zhǔn)中定義和使用兩種同步過程,即所謂的慢速和所謂的快速(常規(guī))同步??梢缘玫胶褪褂闷渌愋偷耐竭^程,但是這些其它同步過程可以被縮小為前述的基本同步過程。
當(dāng)一個記錄和/或一組記錄已經(jīng)與其他數(shù)據(jù)庫同步時,將確認(rèn)發(fā)送回記錄的發(fā)送者。在同步應(yīng)用中可實(shí)現(xiàn)兩種用于處理確認(rèn)的基本方式。在第一實(shí)現(xiàn)中,優(yōu)選地在這樣的一個或多個變更日志中由同步設(shè)備確認(rèn)和用日志記錄一個數(shù)據(jù)記錄或一批數(shù)據(jù)記錄的每個成功同步。在第二實(shí)現(xiàn)中,在同步會話結(jié)束時處理確認(rèn),即兩個同步設(shè)備一指明同步會話和對應(yīng)的所使用的連接通信的正常關(guān)閉就處理確認(rèn)。另外,在同步會話的結(jié)束時處理確認(rèn)和更新指定最后完成的同步會話的時間點(diǎn)是基本上同時進(jìn)行操作的。如果以慢速同步過程的方式執(zhí)行同步會話,很明顯,就不需要考慮指定最后完成的同步會話的時間點(diǎn)。
第一實(shí)現(xiàn)主要解決用于同步例如相互高速連接的分布式數(shù)據(jù)庫的同步應(yīng)用,以便維護(hù)和保證數(shù)據(jù)完整性。在這種實(shí)現(xiàn)中,用于存儲和維護(hù)每個數(shù)據(jù)記錄的變更日志的容量要求、用于處理變更日志的處理能力的要求以及用于交換必要的確認(rèn)的網(wǎng)絡(luò)帶寬要求不是太重要。從對存儲在諸如移動電話、手持設(shè)備、個人數(shù)字助理、通信器等小型電子設(shè)備中的數(shù)據(jù)進(jìn)行同步來看,存儲容量和處理能力受限,使得每個數(shù)據(jù)記錄的變更日志的存儲、維護(hù)和處理麻煩、低效,并且有時甚至是不可能的。另外,由所要求的確認(rèn)而導(dǎo)致的網(wǎng)絡(luò)通信量是不可接受的,因?yàn)樵谝苿油ㄐ怒h(huán)境中它還是昂貴和時間密集的。
第二實(shí)現(xiàn)適用于較小的電子設(shè)備并受到SyncML標(biāo)準(zhǔn)的支持,在該實(shí)現(xiàn)中,在會話結(jié)束時執(zhí)行時間戳的更新和對項(xiàng)的確認(rèn)的處理。然而,這種實(shí)現(xiàn)引起的問題是不提供對當(dāng)前執(zhí)行的同步會話的中斷。在并行操作的同步會話期間維護(hù)交換的同步信息是不可能的,因?yàn)橛捎谥袛嗟木壒?,而不能在同步會話結(jié)束時完成時間戳(同步錨(anchor))的更新和確認(rèn)的處理。即使在會話期間處理了數(shù)據(jù)項(xiàng)的確認(rèn),慢速同步的中斷也會因?yàn)橹辉跁捊Y(jié)束時更新時間戳,而導(dǎo)致已經(jīng)處理的同步信息的丟失。在上述兩種情況下,必須完整地重復(fù)同步會話,以便保證數(shù)據(jù)的完整性。根據(jù)與同步有關(guān)的信息量,即根據(jù)待同步的數(shù)據(jù)記錄的數(shù)量,在通常包括若干同步消息的單個同步會話期間交換十分巨大數(shù)量的消息。例如在同步會話期間可以同步500個數(shù)據(jù)記錄的400個數(shù)據(jù)記錄,并出現(xiàn)中斷。在隨后的同步會話中,無論同步是作為快速還是慢速同步過程進(jìn)行操作,必須再次同步所有500個數(shù)據(jù)記錄。
發(fā)明概述本發(fā)明的目的是提供一種允許恢復(fù)中斷的同步會話的方法,以便避免中斷的同步會話的完全重復(fù)。構(gòu)建用于恢復(fù)中斷的同步會話的措施,使得不要求高的存儲容量、高的處理能力、高數(shù)量的交換的確認(rèn),也不需要高的通信帶寬。本方法適于以經(jīng)濟(jì)的方式在小的電子設(shè)備中實(shí)現(xiàn)。
根據(jù)本發(fā)明的實(shí)施例,提供了允許恢復(fù)先前未完成的同步會話的方法,其中先前未完成的同步會話在其操作期間被中斷。通過下列操作實(shí)現(xiàn)恢復(fù)先前未完成的同步會話。
建立用于第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)同步的通信連接。第一設(shè)備和第二設(shè)備的每個包括待同步的數(shù)據(jù)記錄集合。常規(guī)地,在數(shù)據(jù)存儲器或由對應(yīng)的應(yīng)用維護(hù)的數(shù)據(jù)庫中組織數(shù)據(jù)記錄。
在一個實(shí)施例中,本發(fā)明提供用于恢復(fù)與兩個設(shè)備之間的數(shù)據(jù)交換有關(guān)的先前未完成的同步會話的中斷。該方法的特征在于步驟將用于恢復(fù)的警告信號從第一設(shè)備發(fā)送到第二設(shè)備,恢復(fù)信號包含與請求恢復(fù)先前未完成的同步會話有關(guān)的信息。用于恢復(fù)的警告信號可至少是直接警告代碼或類似直接地指示由服務(wù)器演繹的恢復(fù)會話或信號,例如在會話中使用的時間戳的指示或會話的其他標(biāo)識。該方法的特征還在于步驟將用于警告信號的狀態(tài)從第二設(shè)備發(fā)送到第一設(shè)備,警告信號表示與待執(zhí)行的同步類型有關(guān)的信息。與用于恢復(fù)的警告信號的狀態(tài)有關(guān)的信息可包括用于覆蓋(override)先前未完成的同步會話的較早同步類型的信息。
在本發(fā)明的可替換實(shí)施例中,將第一更新標(biāo)識符和第二標(biāo)識符從第一設(shè)備傳遞到第二設(shè)備或從第二設(shè)備傳遞到第一設(shè)備。傳送的方向取決于什么設(shè)備指示先前未完成的同步會話的恢復(fù)以及同步的方向。指示設(shè)備將兩個標(biāo)識符都傳送給對方。第一更新標(biāo)識符指定已經(jīng)在第一設(shè)備和第二設(shè)備之間執(zhí)行的先前完成的同步會話。在先前完成的同步會話的初始化期間,已經(jīng)在第一設(shè)備和第二設(shè)備中存儲了第一更新標(biāo)識符。更具體地,存儲標(biāo)識符的值,但是值的名稱或存儲位置可根據(jù)實(shí)施而變化。通常,第一更新標(biāo)識符是用于將先前完成的同步會話的開始時間的時間戳記入日志??商鎿Q地,標(biāo)識符可以是任何以有序的或至少在某種程度上有序的方式或部分隨機(jī)的方式產(chǎn)生的數(shù)值,例如單調(diào)增加的數(shù)字整數(shù)串、文本串,或它們的組合。根據(jù)本發(fā)明,第二更新標(biāo)識符指定已經(jīng)在第一設(shè)備和第二設(shè)備之間執(zhí)行的先前未完成的同步會話。在先前未完成的同步會話的初始化期間,已經(jīng)在第一設(shè)備和第二設(shè)備中存儲了第二更新標(biāo)識符。通常,第二更新標(biāo)識符也類似為時間戳或用于指示中斷的先前同步會話的開始時間的時間戳。然而,在現(xiàn)有技術(shù)中,僅在同步會話期間而不在中斷或完成會話之后定義第二更新標(biāo)識符的特性和用途。
根據(jù)本方法的方法具有四個用于同步的步驟。第一步驟包括建立用于第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)同步的通信連接,第一設(shè)備和第二設(shè)備的每個包括待同步的數(shù)據(jù)集合。第二步驟包括傳送第一更新標(biāo)識符和第二更新標(biāo)識符,第一更新標(biāo)識符指示已經(jīng)在第一設(shè)備和第二設(shè)備之間執(zhí)行的先前完成的同步事件,至少已經(jīng)在第一設(shè)備中存儲了第一更新標(biāo)識符的值,第二更新標(biāo)識符指示已經(jīng)在第一設(shè)備和第二設(shè)備之間開始的先前未完成的同步事件,至少已經(jīng)在第一設(shè)備中存儲了第二更新標(biāo)識符的值。第三步驟包括檢索或形成已經(jīng)在先前未完成的同步事件期間成功同步的數(shù)據(jù)的指示。第一步驟包括使用該指示、同步在先前未完成的同步事件期間還沒有成功同步的數(shù)據(jù);和(4)在至少第一設(shè)備中,用所述第二更新標(biāo)識符的值更新第一更新標(biāo)識符的值。
該方法還可以包括傳送與先前未完成的同步事件有關(guān)的附加信息的步驟,并且該附加信息包括至少一個來自一個組的信息,該組包括關(guān)于先前未完成的同步的信息,以及關(guān)于根據(jù)接收的同步有關(guān)的信息而成功同步的數(shù)據(jù)的信息。
該方法還可以包括在第一設(shè)備和第二設(shè)備的至少一個中執(zhí)行的步驟在第一比較中,比較從第一設(shè)備傳送的第一更新標(biāo)識符的值與存儲在第二設(shè)備中的第一設(shè)備的第二更新標(biāo)識符的值;并且在第二比較中,比較從第一設(shè)備傳送的第二更新標(biāo)識符的值與存儲在第二設(shè)備中的第一設(shè)備的第二更新標(biāo)識符的值,以及執(zhí)行下列選項(xiàng)的至少一個1)如果第二比較產(chǎn)生一個真值,則同步第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)的進(jìn)一步步驟、該數(shù)據(jù)包括在先前未完成的同步事件期間沒有交換的數(shù)據(jù)。
2)如果第二比較產(chǎn)生一個假值,則同步第一設(shè)備和第二設(shè)備之間的數(shù)據(jù),該數(shù)據(jù)至少包括在先前未完成的同步事件期間已經(jīng)同步的數(shù)據(jù)。
3)如果第一比較產(chǎn)生一個假值,則同步第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)的進(jìn)一步步驟,該數(shù)據(jù)至少包括在先前完成的同步事件期間已經(jīng)同步的數(shù)據(jù)。
4)如果第一比較產(chǎn)生一個真值,則同步第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)的進(jìn)一步步驟,該數(shù)據(jù)在先前完成的同步事件期間沒有被同步。
建立用于同步的通信連接的步驟可包括傳送初始消息的步驟,該初始消息指令第一設(shè)備和第二設(shè)備的至少一個以準(zhǔn)備恢復(fù)先前未完成的同步。
同步可以基于根據(jù)SyncML標(biāo)準(zhǔn)的同步協(xié)議,第一更新標(biāo)識符是LAST(最后)同步錨。第二更新標(biāo)識符可以至少是NEXT(下一個)同步錨和PAUSE(暫停)同步錨的其中之一。另外,與先前未完成的同步事件有關(guān)的附加信息可包括來自同步事件會話標(biāo)識符(會話ID)、同步消息標(biāo)識符(消息ID)和確認(rèn)的數(shù)據(jù)及它們相應(yīng)的數(shù)據(jù)存儲的一個或多個標(biāo)識符的組的至少一個信息。更進(jìn)一步,在發(fā)送第一和第二更新標(biāo)識符之前,附加的信息已經(jīng)被存儲在至少第一設(shè)備中。
在該方法中,如果已經(jīng)成功地接收用于數(shù)據(jù)或包含數(shù)據(jù)的消息的確認(rèn),那么已經(jīng)成功地同步了數(shù)據(jù),并且該確認(rèn)指示數(shù)據(jù)或消息的同步的肯定或者否定狀態(tài)。
本發(fā)明還提供用于同步的軟件工具,包括用于執(zhí)行前述方法的步驟的程序部分,其中軟件工具用于在處理設(shè)備、終端設(shè)備、通信設(shè)備或網(wǎng)絡(luò)設(shè)備上執(zhí)行的計算機(jī)程序中實(shí)現(xiàn),還提供用于對其同步的計算機(jī)程序或計算機(jī)程序產(chǎn)品。
本發(fā)明還提供在網(wǎng)絡(luò)中使用的并能夠同步數(shù)據(jù)的設(shè)備,該設(shè)備具有存儲介質(zhì)、通信接口、檢索或形成部件以及更新部件。存儲介質(zhì)具有預(yù)定義的待同步的數(shù)據(jù)的集合。通信接口為數(shù)據(jù)的同步建立到在網(wǎng)絡(luò)中使用的另一個設(shè)備的通信連接,用于將第一更新標(biāo)識符和第二更新標(biāo)識符與另一個網(wǎng)絡(luò)設(shè)備通信并且用于與另一個網(wǎng)絡(luò)設(shè)備交換數(shù)據(jù)。第一更新標(biāo)識符指示已經(jīng)用另一個網(wǎng)絡(luò)設(shè)備執(zhí)行的先前完成的同步事件,已經(jīng)至少在該網(wǎng)絡(luò)設(shè)備中存儲第一更新標(biāo)識符。第二更新標(biāo)識符指示先前未完成的同步事件,已經(jīng)至少在網(wǎng)絡(luò)設(shè)備中存儲第二更新標(biāo)識符,其中數(shù)據(jù)至少包括在先前未完成的同步事件期間沒有同步的數(shù)據(jù)。檢索或形成部件檢索或形成在先前未完成的同步事件期間已經(jīng)同步的數(shù)據(jù)的指示,已經(jīng)在網(wǎng)絡(luò)設(shè)備中存儲了該指示。同步部件根據(jù)指示同步數(shù)據(jù)。更新部件將存儲的第一更新標(biāo)識符的內(nèi)容更新為存儲的第二更新標(biāo)識符的內(nèi)容。
通信接口可以適用于傳送與先前未完成的同步事件有關(guān)的補(bǔ)充的附加信息。附加信息可包括來自一個組的至少一個信息,該組包括關(guān)于先前未完成的同步的信息、關(guān)于同步有關(guān)信息的最后一次成功交換的信息和關(guān)于根據(jù)接收的同步有關(guān)的信息成功同步的數(shù)據(jù)的信息。
設(shè)備還可包括用于比較的部件,使得在第一比較中,比較從該設(shè)備傳送的第一更新標(biāo)識符的值與存儲在另一個設(shè)備中的該設(shè)備的第二更新標(biāo)識符的值;并且在第二比較中,比較從第一設(shè)備傳送的第二更新標(biāo)識符的值與存儲在另一個設(shè)備中的該設(shè)備的第二更新標(biāo)識符的值。用于執(zhí)行與所述方法有關(guān)的在上面討論的前述選項(xiàng)的至少一個的部件。
本發(fā)明還提供用于同步的系統(tǒng),包括第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備,其中每個設(shè)備包括元件用于執(zhí)行類似于上面討論的與本發(fā)明的整個方法和設(shè)備有關(guān)的步驟。
附圖簡述參考附圖,并通過實(shí)施例的方式更詳細(xì)地描述本發(fā)明,其中
圖1顯示了說明一組示例電子設(shè)備的示意圖,在示例電子設(shè)備之間信息同步是可操作的;圖2顯示根據(jù)本發(fā)明的實(shí)施例的同步過程的時序圖,同步過程包括在同步的客戶設(shè)備和同步的服務(wù)器設(shè)備之間交換的若干消息;圖3a顯示類似于圖2的并根據(jù)本發(fā)明的實(shí)施例中斷或停止的同步過程的時序圖;圖3b顯示根據(jù)本發(fā)明的實(shí)施例恢復(fù)圖3a的中斷或停止的同步過程的同步過程的時序圖;圖4顯示根據(jù)在圖3b中所示的同步過程和根據(jù)本發(fā)明的實(shí)施例的XML編碼的同步消息的摘錄;
圖5顯示說明根據(jù)本發(fā)明的實(shí)施例的同步的客戶設(shè)備和同步的服務(wù)器設(shè)備所包括的部件的示例框圖;圖6顯示根據(jù)本發(fā)明的實(shí)施例恢復(fù)圖3a的中斷或停止的同步過程的同步過程的時序圖;圖7顯示根據(jù)本發(fā)明的實(shí)施例恢復(fù)圖3a的中斷或停止的同步過程的同步過程的時序圖;以及圖8顯示根據(jù)本發(fā)明的實(shí)施例恢復(fù)圖3a的中斷或停止的同步過程的同步過程的時序圖。
發(fā)明詳述下面,將以支持SyncML同步標(biāo)準(zhǔn)的系統(tǒng)的觀點(diǎn)來描述本發(fā)明的實(shí)施例,而這并不將本發(fā)明限制于此??梢詮墓_地提供完全標(biāo)準(zhǔn)文檔的SyncML初始獲得與SyncML標(biāo)準(zhǔn)有關(guān)的信息。在圖中所示的相同或等效部分、部件和/或操作將使用相同的參考數(shù)字引用。
圖1顯示了說明一組示例電子設(shè)備的示意圖,在示例電子設(shè)備之間信息同步是可操作的。例如移動終端的特定數(shù)據(jù)存儲內(nèi)容應(yīng)當(dāng)與指定設(shè)備所提供的數(shù)據(jù)存儲內(nèi)容相協(xié)調(diào),該指定設(shè)備例如提供可通過若干不同的移動和/或固定終端的方式訪問的該數(shù)據(jù)存儲內(nèi)容的中心存儲器。常規(guī)地,移動終端擔(dān)當(dāng)協(xié)調(diào)或同步與特定的預(yù)定義應(yīng)用有關(guān)的數(shù)據(jù)的同步客戶端,預(yù)定義的應(yīng)用運(yùn)行在這些同步客戶端,具有由中心地存儲該應(yīng)用有關(guān)數(shù)據(jù)的專用服務(wù)器設(shè)備所提供的一個數(shù)據(jù)存儲或若干數(shù)據(jù)存儲的內(nèi)容。圖1說明了可進(jìn)行同步操作的多個可能的客戶設(shè)備和服務(wù)器設(shè)備。通常,客戶設(shè)備是諸如移動電話或個人數(shù)字助理(PDA)的移動工作站17、諸如筆記本電腦的移動計算機(jī)15、諸如數(shù)碼相機(jī)的存儲數(shù)字?jǐn)?shù)據(jù)的電子設(shè)備16以及諸如桌面計算機(jī)(PC)的固定終端。另外,專用同步服務(wù)器設(shè)備可以是諸如桌面計算機(jī)的固定終端10、例如將它們的同步能力作為聯(lián)網(wǎng)的同步應(yīng)用進(jìn)行操作的專用網(wǎng)絡(luò)服務(wù)器11、或者甚至是例如運(yùn)行同步服務(wù)器應(yīng)用的諸如筆記本的移動計算機(jī)12。應(yīng)當(dāng)指出,雖然以與專用服務(wù)設(shè)備連接的移動終端的角度描述了給出的同步的概念,客戶設(shè)備的功能不限于上述的移動終端。
經(jīng)由適當(dāng)?shù)倪壿嬐ㄐ胚B接建立根據(jù)SyncML協(xié)議標(biāo)準(zhǔn)的對應(yīng)的同步過程。該邏輯通信連接是由與傳送協(xié)議結(jié)合的任何通信網(wǎng)絡(luò)提供的,同步協(xié)議適用于所述傳送協(xié)議。合適的通信網(wǎng)絡(luò)不僅可以是局域網(wǎng)(LAN)或可能包括互聯(lián)網(wǎng)和公司的企業(yè)網(wǎng)的廣域網(wǎng)(WAN),還可以是諸如通用串行總線(USB)或標(biāo)準(zhǔn)串行通信(例如RS-232)的基于布線的串行網(wǎng)絡(luò)。經(jīng)由諸如支持全球移動通信系統(tǒng)(GSM)業(yè)務(wù)和/或支持通用分組無線業(yè)務(wù)(GPRS)的移動網(wǎng)絡(luò)的無線通信網(wǎng)絡(luò)、諸如通用移動電信系統(tǒng)(UMTS)網(wǎng)絡(luò)、無線局域網(wǎng)(WLAN)、諸如藍(lán)牙網(wǎng)絡(luò)、無線本地環(huán)路(WLL)或紅外線網(wǎng)絡(luò)(IrDA)的短程無線電通信網(wǎng)絡(luò)的第三代移動通信網(wǎng)絡(luò)也可連接參與的同步設(shè)備。參與同步設(shè)備之間的邏輯通信連接可由單個前述類型的通信網(wǎng)絡(luò)提供,也可由若干個前述類型的通信網(wǎng)絡(luò)提供,若干個前述類型的通信網(wǎng)絡(luò)通過與通信網(wǎng)絡(luò)連接互連的專用網(wǎng)絡(luò)路由設(shè)備互連,并且如果需要,翻譯各個應(yīng)用的通信網(wǎng)絡(luò)的數(shù)據(jù)協(xié)議。
關(guān)于SyncML協(xié)議標(biāo)準(zhǔn)、SyncML同步協(xié)議以及因此還關(guān)于SyncML設(shè)備管理協(xié)議,在根據(jù)所應(yīng)用的通信網(wǎng)絡(luò)的類型的適當(dāng)協(xié)議的之上實(shí)現(xiàn)SyncML設(shè)備管理協(xié)議。其上可以實(shí)現(xiàn)SyncML同步協(xié)議的適當(dāng)協(xié)議是超文本傳送協(xié)議(HTTP)、無線應(yīng)用協(xié)議(WAP)標(biāo)準(zhǔn)的無線會話協(xié)議(WSP)、用于諸如通用串行總線(USB)或RS-232的電纜連接或用于短程射頻連接(藍(lán)牙)或用于紅外線連接(IrDA)的對象交換協(xié)議(OBEX)、傳送控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)棧和在傳送層服務(wù)之上的由電子郵件協(xié)議(例如簡單郵件傳送協(xié)議,SMTP)提供的協(xié)議。
可根據(jù)使用例如短消息SMS(短消息服務(wù))或其他信令類型傳送方法(例如USSD;非結(jié)構(gòu)化補(bǔ)充業(yè)務(wù)數(shù)據(jù))、電路交換數(shù)據(jù)呼叫、分組交換數(shù)據(jù)傳送服務(wù)以及傳呼消息服務(wù)、經(jīng)由蜂窩廣播提供的消息等等的基礎(chǔ)網(wǎng)絡(luò)執(zhí)行在較低層的傳送。
在下面,應(yīng)當(dāng)盡量廣義地理解術(shù)語數(shù)據(jù)存儲,即應(yīng)該覆蓋由待訪問的數(shù)據(jù)存儲器提供的任意數(shù)據(jù)集合。特別地,數(shù)據(jù)集合與特定應(yīng)用相關(guān),并且可組織該數(shù)據(jù)集合來滿足應(yīng)用的特定要求,比如日歷應(yīng)用、目錄應(yīng)用、合同應(yīng)用(例如vcard應(yīng)用)、電子郵件應(yīng)用等的數(shù)據(jù)。另外,可將任意數(shù)據(jù)集合組織到一個或多個數(shù)據(jù)庫中,數(shù)據(jù)庫包括提供待訪問的數(shù)據(jù)的數(shù)據(jù)記錄。另外,術(shù)語數(shù)據(jù)存儲還應(yīng)當(dāng)被分別理解為覆蓋網(wǎng)絡(luò)數(shù)據(jù)服務(wù)或聯(lián)網(wǎng)的服務(wù),即被理解為覆蓋類似于數(shù)據(jù)存儲的由待訪問的聯(lián)網(wǎng)服務(wù)提供的任意數(shù)據(jù)集合。常規(guī)地,網(wǎng)絡(luò)服務(wù)基于具有與特定服務(wù)有關(guān)的數(shù)據(jù)存儲內(nèi)容的數(shù)據(jù)存儲。
下面的順序圖描述根據(jù)本發(fā)明的方法的實(shí)施例的操作序列。所描述的操作順序只是示例性的而非限制性的?;陬愃苹蛴嘘P(guān)的操作序列的進(jìn)一步實(shí)現(xiàn)也是可能的。
圖2顯示根據(jù)本發(fā)明的實(shí)施例的同步過程的時序圖,同步過程包括在同步客戶設(shè)備和同步服務(wù)器設(shè)備之間交換的若干消息。
SyncML同步會話在概念上被界定在所謂的SyncML包中。SyncML包僅僅是用于一個或多個SyncML消息的概念上的架構(gòu),其中一個或多個SyncML消息在同步設(shè)備之間被物理地交換并且被要求傳送一組同步信息和命令。不是所有的SyncML包都涉及由SyncML標(biāo)準(zhǔn)提供的任何類型的同步。SyncML消息的實(shí)際數(shù)量取決于待傳送的信息量。
在下列列表中描述了對SyncML包的粗略概觀。可以從SyncML標(biāo)準(zhǔn)文檔獲得詳細(xì)的描述。
包0-同步消息的初始化??蛻粼O(shè)備可接收未經(jīng)請求的消息,即所謂的“通知”或“警告”,用于命令引起接收設(shè)備建立背部連接(backconnecting)以開始同步會話。注意到,用其它方式可以引起接收通知的相同效果。
包1-從客戶設(shè)備到服務(wù)器設(shè)備的初始化。傳送一個或多個初始化消息,例如包括客戶設(shè)備信息(設(shè)備標(biāo)識符等)、客戶設(shè)備屬性、客戶鑒權(quán)、同步類型、其數(shù)據(jù)記錄將被同步的數(shù)據(jù)庫的識別、存儲的LAST錨、新的NEXT錨等。
包2-從服務(wù)器設(shè)備到客戶設(shè)備的初始化。傳送一個或多個初始化消息,例如包括服務(wù)器設(shè)備信息(設(shè)備標(biāo)識符等)、服務(wù)器設(shè)備屬性、服務(wù)器鑒權(quán)、關(guān)于包括在一個或多個客戶初始化消息中的信息的響應(yīng)和狀態(tài)信息。
包1和2是初始化階段部分。下面的包3到6是同步消息的同步階段部分。
包3-客戶到服務(wù)器同步。傳送一個或多個客戶同步消息,例如包括客戶數(shù)據(jù)修改,即在同步初始化中識別的客戶數(shù)據(jù)庫的數(shù)據(jù)的任何變化等。在快速同步過程的情況下,只報告自先前的同步會話(LAST錨)以來被修改的數(shù)據(jù)記錄,在慢速同步過程的情況下,報告全部的數(shù)據(jù)記錄。
包4-服務(wù)器到客戶的同步。傳送一個或多個服務(wù)器同步消息,例如包括關(guān)于服務(wù)器對傳送的客戶數(shù)據(jù)修改的分析的信息,以及還有服務(wù)器數(shù)據(jù)修改,即在同步初始化中識別的服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)的任何變化等。在快速同步過程的情況下,只報告自先前的同步會話(LAST錨)以來被修改的數(shù)據(jù)記錄,在慢速同步過程的情況下,報告全部的數(shù)據(jù)記錄。
包5-數(shù)據(jù)更新狀態(tài)、映射操作。傳送一個或多個更新狀態(tài)消息,例如包括關(guān)于數(shù)據(jù)更新(由于服務(wù)器修改的同步)的結(jié)果的信息、用于映射本地唯一標(biāo)識符(LUID)和全局唯一標(biāo)識符(GUID)等的映射操作(表)等等。本地唯一標(biāo)識符是指配給數(shù)據(jù)記錄并在客戶端是本地唯一的標(biāo)識符,即每個設(shè)備和應(yīng)用。本地唯一標(biāo)識符允許識別數(shù)據(jù)記錄。全局唯一標(biāo)識符是指配給數(shù)據(jù)記錄并在服務(wù)器端上是本地唯一的標(biāo)識符。
包6-映射確認(rèn)。傳送一個或多個映射確認(rèn),例如包括由服務(wù)器通知客戶設(shè)備接收一個或多個數(shù)據(jù)更新狀態(tài)消息等等的確認(rèn)。
取決于分別包含在客戶消息或服務(wù)器消息中的同步信息和命令,根據(jù)包3的客戶消息可引起根據(jù)包4的服務(wù)器響應(yīng)消息,并且反之亦然。
同步消息的每個消息包含會話標(biāo)識符(會話ID),使得消息可以與不同的同步會話關(guān)聯(lián)。每個消息包含消息標(biāo)識符(消息ID),從而防止了分別在客戶設(shè)備上和在服務(wù)器設(shè)備上交換的消息的不一致。另外,每個包類型的每個最后的消息包含指示這是最后一個消息的最終指示符。
進(jìn)一步由哪種信息(哪個數(shù)據(jù)記錄)將要同步來區(qū)別同步過程(慢速或快速同步,即數(shù)據(jù)記錄的總數(shù)或僅自明確的時間點(diǎn)以來的修改的數(shù)量),在該過程中,執(zhí)行(在客戶設(shè)備或服務(wù)器設(shè)備或兩種設(shè)備中的)設(shè)備同步,并且通過該過程,開始設(shè)備同步。同步的類型可以是例如雙向同步、慢速同步、僅來自客戶的單向同步、僅來自客戶的刷新同步、僅來自服務(wù)器的單向同步、僅來自服務(wù)器的刷新同步和服務(wù)器警告同步。
枚舉的同步本身類型的命名描述了同步過程并易于理解。更詳細(xì)描述可參考SynML標(biāo)準(zhǔn)文檔。
通過舉例,圖2所示的時序圖和同步過程分別基于快速雙向同步類型,盡管本發(fā)明的范圍試圖包括其他的同步類型??蛻?00與服務(wù)器110同步。根據(jù)上面對包序列的描述,描述的同步會話包括初始化階段210,之后跟隨的同步階段的每個包括若干同步消息。所有的同步消息包含相同的會話ID(沒有描述)。
在客戶100和服務(wù)器110的初始化階段210期間,兩種設(shè)備交換設(shè)備信息(設(shè)備標(biāo)識符等等)、設(shè)備屬性、設(shè)備鑒權(quán)信息??蛻?00還定義同步的類型(這里為快速雙向同步類型)并向服務(wù)器110報告存儲的LAST錨和新定義的NEXT錨。服務(wù)器110比較由客戶100傳送的LAST錨和存儲在服務(wù)器110中的對應(yīng)值,并且如果存儲的和接收的LAST錨匹配,那么使LAST錨和NEXT錨一致以允許快速同步。直到客戶100傳送這個新定義的NEXT錨的時刻,NEXT錨的狀態(tài)(內(nèi)容)在服務(wù)器110中是未定義的(現(xiàn)有技術(shù)未定義的,即現(xiàn)有技術(shù)的雙向同步過程不為它提供任何特別的值)(用“?”符號指示)。如果這些錨不匹配,則慢速同步被警告給客戶100。通過參考對應(yīng)于包1消息的客戶初始化消息的第一操作200和參考對應(yīng)于包2消息的服務(wù)器初始化消息的第二操作201,說明在初始化階段210期間的信息交換。分別由操作200和201參考的兩種消息包含相同的消息ID 1。
在完成初始化階段210之后,客戶100準(zhǔn)備同步211,即識別根據(jù)接收的LAST錨修改的數(shù)據(jù)記錄。由操作203參考的客戶同步消息(包3消息類型)包含第一批客戶修改,這里為總共十個被識別的修改的五個修改??梢宰⒁獾?,客戶修改包括命令和/或數(shù)據(jù)內(nèi)容。命令主要包括增加、更新、刪除等,這些命令用數(shù)據(jù)內(nèi)容完成以同步相應(yīng)的數(shù)據(jù)記錄。另外,該消息還包含根據(jù)先前的服務(wù)器初始化消息的狀態(tài)信息。服務(wù)器110接收該第一客戶同步消息、分析接收的客戶修改、解決從客戶修改出現(xiàn)的可能沖突以及處理客戶修改(操作212)。將由操作204所參考的對應(yīng)的服務(wù)器同步消息(包4消息類型)傳送到客戶,該消息包含客戶修改確認(rèn)以及分析和同步處理的狀態(tài)信息。由操作230參考的客戶同步消息和由操作204參考服務(wù)器同步消息都可由公共消息ID識別,這里為消息ID 2。然而應(yīng)當(dāng)指出,消息編號可偏離上面已經(jīng)給出的。實(shí)際上,使用消息編號的唯一目的是每個設(shè)備將消息編號看作是一致的,即對于客戶和服務(wù)器的編號甚至不需要匹配。
下面的由操作206參考的客戶同步消息(包3消息類型)包含第二批客戶修改,這里為總共十個被識別的修改的剩余五個修改。該客戶同步消息另外還包含指明這是包含客戶修改的最后的客戶同步消息的最終指示符。服務(wù)器110接收該最后的客戶同步消息、分析接收的客戶修改、解決從客戶修改出現(xiàn)的可能沖突、處理客戶修改,并且由于最終指示符而準(zhǔn)備(在考慮了服務(wù)器的LAST錨而識別的)待傳送到客戶100的服務(wù)器修改(操作212)。將由操作207參考的對應(yīng)的服務(wù)器同步消息(包4消息類型)傳送到客戶,該消息包含服務(wù)器修改、客戶修改確認(rèn)以及分析和同步處理的狀態(tài)信息。根據(jù)圖2所描述的同步會話,單個服務(wù)器同步消息足夠用于將所有識別的服務(wù)器修改傳送到客戶,使得該消息還包含最終指示符。在操作214中,客戶100處理接收的服務(wù)器修改。分別由操作206和207參考的消息都包含相同的消息ID 3。
由于服務(wù)器修改,隨后將由操作208參考的客戶更新狀態(tài)消息(包5消息類型)傳送到服務(wù)器110,其包含確認(rèn)信息和同步狀態(tài)信息,并且如果需要,到服務(wù)器110的映射操作處理指配本地唯一標(biāo)識符和全局唯一標(biāo)識符的數(shù)據(jù)記錄映射表。最后并且未描述的客戶更新狀態(tài)消息可由服務(wù)器110利用一個或多個映射確認(rèn)消息(包6消息類型)來響應(yīng)。
最后,關(guān)閉同步會話和通信連接,通過該同步會話和通信連接,傳遞該會話的同步消息。在其中沒有檢測到關(guān)于同步會話和通信連接的結(jié)束化的錯誤的情況下,存儲在同步會話的開始時定義的NEXT錨的內(nèi)容。在操作215中在客戶100上以及在操作216中在服務(wù)器上執(zhí)行這種指配(實(shí)際上,服務(wù)器可能不調(diào)用LAST錨,然而存儲給錨的值是由客戶發(fā)送的NEXT錨的值)。因此,下列的快速同步過程是可能的。
注意到,在同步會話的開始定義NEXT錨并且在同步會話的適當(dāng)結(jié)束化之后將NEXT錨內(nèi)容指配給LAST錨阻止了由于在同步過程期間在客戶端或服務(wù)器端上的數(shù)據(jù)記錄的修改而引起的沖突。另外應(yīng)當(dāng)注意的是,描述的LAST錨和NEXT錨的內(nèi)容僅僅明確了它們的用途。對于實(shí)際目的,LAST錨和NEXT錨通常由日期值和時間值組成,或從這兩個值導(dǎo)出,或者它們是其他類型的數(shù)值。這種組成類型可保證分別生成明確的LAST和NEXT錨。
圖3a顯示根據(jù)本發(fā)明的實(shí)施例的與圖2類似并且被中斷或停止的同步過程的時序圖。在圖3a中描述的同步會話與參考圖2所示的這個應(yīng)當(dāng)相同,即以相同的方式執(zhí)行初始條件、操作200-204以及操作210-212。相應(yīng)地,在圖3a中描述的操作和在圖2中描述的并與圖3a共有的相應(yīng)操作引用為相同的參考數(shù)字。
在圖3a中,省略了客戶100和服務(wù)器110的初始化階段和對應(yīng)的初始化消息。顯示了關(guān)于第一客戶同步消息(包3類型)包含10個客戶修改的前5個的操作203,以及關(guān)于第一服務(wù)器同步消息(包4消息類型)包含對應(yīng)于客戶修改的狀態(tài)信息的操作204。
在操作205中,同步被中斷或停止。可由于若干原因引起中斷或停止,例如在用戶交互時、由用戶主動的、在客戶100或服務(wù)器110例如由于缺少電池或蓄電池容量而掉電時、在丟失通信連接時,例如由于無線通信網(wǎng)絡(luò)中覆蓋范圍丟失、由于通信連接中的干擾而停止同步會話,這里只給出了可能原因中的選擇。
為了允許恢復(fù)根據(jù)本發(fā)明方法的實(shí)施例的同步會話,客戶100和服務(wù)器110用日志記錄與未完成的同步會話有關(guān)的信息。允許恢復(fù)未完成的同步會話的該信息至少在客戶100中包括至少在客戶100和服務(wù)器110中都記入日志的LAST錨和NEXT錨。另外,該信息還可包括未完成的同步會話的會話ID、最后適當(dāng)傳送的并且客戶100為之接收確認(rèn)的消息的消息ID、以及一個或多個唯一數(shù)據(jù)記錄標(biāo)識符,即根據(jù)那些修改的數(shù)據(jù)記錄的本地唯一標(biāo)識符或全局唯一標(biāo)識符已經(jīng)被傳送并且在未完成的同步會話期間這些標(biāo)識符的傳送已經(jīng)被確認(rèn)。
可替換地,不將NEXT錨用于記錄未完成的同步會話被啟動的時刻,而定義一個新的錨,例如PAUSE錨,并特別將其用于恢復(fù)未完成的同步會話。在下面,參考NEXT錨描述創(chuàng)新的概念,但不限于該創(chuàng)新概念。為了使以下的描述適應(yīng)于這樣的新的PAUSE錨,術(shù)語NEXT錨被術(shù)語PAUSE錨簡單地替換。
圖3b顯示根據(jù)本發(fā)明的實(shí)施例恢復(fù)圖3a的中斷或停止的未完成的同步會話的同步會話的時序圖。
通過參考新的初始化消息(包1類型)的操作250啟動恢復(fù)同步會話,新的初始化消息包括指明客戶100打算供服務(wù)器110使用的警告命令,從而恢復(fù)上面參考圖3a所描述的先前未完成的同步會話。該新的初始化消息至少包含根據(jù)先前未完成的同步會話的中斷(圖3a中的操作205)被記入日志的LAST錨和NEXT錨。服務(wù)器從客戶接收這些LAST錨和NEXT錨,并將它們與由其本身記入日志的那些LAST錨和NEXT錨作比較。應(yīng)當(dāng)指出,與圖2中示出的同步會話以及圖3a中示出的它的類似情況比較,在服務(wù)器端NEXT錨分別具有定義良好的狀態(tài)和內(nèi)容。
客戶100和/或服務(wù)器110中的至少一個可根據(jù)LAST錨中的一個是否匹配和/或NEXT錨是否匹配來命令、啟動或執(zhí)行下列四個不同操作的任何一個,如下所示1)如果接收和記入日志的LAST錨以及接收和記入日志的NEXT錨都匹配,則服務(wù)器110通過傳送參考操作251并包含至少用于確認(rèn)的LAST錨和NEXT錨的服務(wù)器初始化消息(包2類型)來確定恢復(fù)未完成的同步會話(恢復(fù)快速同步)。用于允許恢復(fù)的那個確定可以是附加地基于與待恢復(fù)的未完成的同步會話有關(guān)的其它信息(參考圖3a中的操作205)。例如,在記入日志的錨的檢查操作期間,參考前述的記入日志的未完成的同步會話的會話ID和/或記入日志的最后適當(dāng)傳送的消息的消息ID。
2)如果已接收和記入日志的LAST錨匹配而接收和記入日志的NEXT錨不匹配,則由服務(wù)器命令在參考圖2所示的一類(常規(guī))快速同步會話。失配的NEXT錨阻止參考圖3a所描述的未完成的同步會話的恢復(fù)。
3)如果接收和記入日志的LAST錨不匹配而接收和記入日志的NEXT錨匹配,則由服務(wù)器命令恢復(fù)慢速同步會話。沒有在圖3b中描述這種恢復(fù)慢速同步會話。簡而言之,恢復(fù)慢速同步會話交換與同步有關(guān)的信息,該信息允許同步所有預(yù)定義用于被同步的數(shù)據(jù)記錄。但是該與同步有關(guān)的信息被從已經(jīng)在圖3a所示的未完成的同步會話期間成功交換并同步的恢復(fù)慢速同步會話排除。
4)如果接收和記入日志的LAST錨以及接收和記入日志的NEXT錨都不匹配,則既不能啟動恢復(fù)快速同步會話也不能啟動恢復(fù)快速同步會話。并且,快速同步是不可能的。必須執(zhí)行包括預(yù)定義用于被同步的所有數(shù)據(jù)記錄的交換的完成的慢速同步會話(如前所述,未在圖3b中示出),以便建立兩個參與設(shè)備之間適當(dāng)?shù)耐綘顟B(tài)。
下面的描述基于以下假設(shè)第一情況(接收和記入日志的LAST錨以及接收和記入日志的NEXT錨都匹配)是正確的。還在圖3b中指明這種情況,圖3b具有客戶100和服務(wù)器110兩者的記入日志的LAST錨和NEXT錨的說明。服務(wù)器110傳送參考操作251并包含至少用于確認(rèn)的LAST錨和NEXT錨的服務(wù)器初始化消息(包2類型)。
如參考圖3a所示的操作205描述的那樣,與未完成的同步會話有關(guān)的其它日志信息在它們的中斷時被記入日志。如前所述,該信息可包括至少以下的其中一個未完成的同步會話的會話ID、最后適當(dāng)傳送的消息的消息ID和一個或多個唯一數(shù)據(jù)記錄標(biāo)識符,即是根據(jù)那些已被傳送的修改的數(shù)據(jù)記錄的本地唯一標(biāo)識符或全局標(biāo)識符,并且這些傳送在未完成的同步會話期間已經(jīng)被確認(rèn)。應(yīng)當(dāng)指出,由本地唯一標(biāo)識符提供的信息可能不夠,并且作為本地唯一標(biāo)識符的補(bǔ)充可能必須用日志記錄數(shù)據(jù)庫標(biāo)識符。本地唯一標(biāo)識符和相關(guān)的數(shù)據(jù)庫標(biāo)識符的組合能夠(明確地)確認(rèn)由本地唯一標(biāo)識符引用的對應(yīng)數(shù)據(jù)記錄。數(shù)據(jù)庫標(biāo)識符可以是本領(lǐng)域中已知的統(tǒng)一資源定位器(URL)。
存儲的LAST錨、存儲的NEXT錨和存儲的與未完成的同步會話有關(guān)的信息允許重建(重新建立)先前未完成的同步會話在中斷瞬間的狀態(tài)。這類重建現(xiàn)在允許生成由圖2中所示的操作206-208參考的消息,圖2說明完成的同步會話,并且不適用于圖3a,圖3a說明相同的但由于在由操作204參考的同步消息的傳送之后的中斷而未完成的同步會話(圖2和圖3a)。
由操作250和251參考的客戶初始化消息和服務(wù)器初始化消息都還包括例如參考圖2中所示的操作200和201描述的用于建立同步會話所需的信息。
這里,假設(shè)滿足了恢復(fù)未完成的同步會話的條件,并且未完成的同步會話已被重構(gòu),這使客戶100能夠繼續(xù)執(zhí)行根據(jù)本發(fā)明的方法的實(shí)施例。由操作252參考的客戶同步消息(包3類型)對應(yīng)于圖2所示的由操作206參考的第二客戶同步消息。該客戶同步消息由此包括10個修改的最后5個和最終指示符以指明該消息是當(dāng)前同步會話的最后的客戶同步消息。另外,消息編號,即消息ID適用于當(dāng)前的恢復(fù)同步會話,并因此圖3b中的客戶同步消息具有在(由操作250和操作251參考的)初始化消息的先前消息ID 1之后的消息ID 2。(重要的是注意本發(fā)明的范圍試圖包括其他類型的消息編號會話)。
服務(wù)器110通過傳送由操作253參考的服務(wù)器同步消息(包3類型)來響應(yīng)客戶同步設(shè)備,該服務(wù)器同步消息對應(yīng)于圖2所示的由操作206參考的第二客戶同步消息。該服務(wù)器同步消息包含服務(wù)器修改、客戶修改確認(rèn)以及分析和同步處理的狀態(tài)信息。根據(jù)圖2所描述的同步會話,單個服務(wù)器同步消息足夠用于將所有識別的服務(wù)器修改傳送到客戶,使得該消息還包含最終指示符。分別由操作252和操作253參考的消息都包含相同的消息ID 2。
由于服務(wù)器修改,之后將由操作254參考的客戶更新狀態(tài)消息(包5消息類型)傳送到服務(wù)器110,其包含確認(rèn)信息和同步狀態(tài)信息,并且如果需要,到服務(wù)器110的映射操作處理指配有本地唯一標(biāo)識符和全局唯一標(biāo)識符的數(shù)據(jù)記錄映射表。該客戶更新狀態(tài)消息也由此對應(yīng)于由參考圖2描述的操作208參考的客戶更新狀態(tài)消息。最后,雖然未作描述,服務(wù)器110可利用一個或多個映射確認(rèn)消息(包6消息類型)響應(yīng)客戶更新狀態(tài)消息。
最終,結(jié)束同步會話和通信連接,通過該同步會話和通信連接,傳遞該會話的同步消息。如果沒有檢測到關(guān)于同步會話和通信連接的結(jié)束化的錯誤,將在同步會話的開始時定義的NEXT錨的內(nèi)容指配給LAST錨。在操作260中在客戶100上以及在操作261中在服務(wù)器110上執(zhí)行這種指配。因此,下列的快速同步過程是可操作的。注意到,在同步會話的開始定義NEXT錨并且在同步會話的適當(dāng)結(jié)束化之后將NEXT錨內(nèi)容指配給LAST錨阻止了由于在同步過程期間在客戶端或服務(wù)器端上的數(shù)據(jù)記錄的修改而引起的沖突。另外應(yīng)當(dāng)注意的是,描述的LAST錨和NEXT錨的內(nèi)容僅僅明確了它們的用途。對于實(shí)際目的,LAST錨和NEXT錨通常由日期值和時間值組成,或從這兩個值導(dǎo)出。這種組成類型可保證分別生成明確的LAST和NEXT錨。
應(yīng)當(dāng)進(jìn)一步指出,在未完成的同步會話的恢復(fù)期間沒有考慮在未完成的同步會話之后并在恢復(fù)同步會話之前對數(shù)據(jù)記錄的修改?;謴?fù)同步會話建立數(shù)據(jù)記錄或包括它們的數(shù)據(jù)存儲的狀態(tài),就像已經(jīng)成功完成了未完成的同步會話。因?yàn)檫@一原因,在恢復(fù)同步會話的初始化期間不更新表示同步會話的時間戳的NEXT錨。可通過在成功恢復(fù)同步會話之后啟動同步會話來同步在未完成的同步會話之后發(fā)生的修改,特別地,由于存儲在客戶100和服務(wù)器110中的LAST錨被更新并有效,可以啟動快速同步會話。
在本發(fā)明的實(shí)施例的上下文中已經(jīng)描述的確認(rèn)可被解釋為任何類型的對從其他終端接收的數(shù)據(jù)的響應(yīng),包括數(shù)據(jù)或消息的同步的肯定或否定狀態(tài)。通常,確認(rèn)將確定記錄的更新,但是確認(rèn)還可以承載成功操作的信息,比如由未發(fā)現(xiàn)的記錄引起的信息。然而,這種錯誤的處理不是本發(fā)明的討論的問題,而是將該問題留給以某種方式實(shí)現(xiàn)對錯誤的處理。但是錯誤的發(fā)生不應(yīng)當(dāng)妨礙會話的回復(fù),也就是,會話應(yīng)當(dāng)在與是否在其之前的數(shù)據(jù)項(xiàng)中存在錯誤無關(guān)的第一未確認(rèn)的數(shù)據(jù)項(xiàng)處恢復(fù)。
圖4顯示根據(jù)在圖3b中所示的同步過程和根據(jù)本發(fā)明的實(shí)施例的XML編碼的同步消息的摘錄。
為了保證容易的和可操作的實(shí)施,選擇工業(yè)標(biāo)準(zhǔn)的可擴(kuò)展標(biāo)記語言(XML)用于規(guī)范化同步設(shè)備和應(yīng)用的同步消息(使用純文本或無線二進(jìn)制XML,無線應(yīng)用協(xié)議使用的二進(jìn)制技術(shù))。在靜態(tài)代碼和運(yùn)行時執(zhí)行空間兩者中的所有公共移動設(shè)備的存儲器容量中已經(jīng)設(shè)計了SyncML。特別地,二進(jìn)制編碼的可擴(kuò)展標(biāo)記語言(WBXML)通常用作編碼數(shù)據(jù)以降低存儲消息所要求的存儲器并降低處理和傳送該數(shù)據(jù)所需的資源。
SyncML包含一組定義良好的消息(如上所示),被表示為XML文檔或?yàn)槎嘤猛疽蛱鼐W(wǎng)郵件擴(kuò)展(MINE)實(shí)體。表示規(guī)范詳細(xì)說明了XML文檔類型描述(DTD),其允許所有信息要求的表示,以執(zhí)行包括數(shù)據(jù)、元數(shù)據(jù)和命令的同步。同步規(guī)范詳細(xì)說明了遵循DTD的SyncML消息,以便允許SyncML客戶和SyncML服務(wù)器交換添加、刪除、更新和其他狀態(tài)信息。
其他DTD定義設(shè)備上的信息(諸如存儲器空間)和各種類型的元信息(比如安全憑證)的表示。SyncML消息在概念上基于如由表示協(xié)議定義的容器概念。每個SyncML消息包含SyncML頭部段和SyncML主體段。SyncML頭部包含路由、會話、鑒權(quán)和消息信息,而SyncML主體段包含各種定義良好的同步數(shù)據(jù),該同步數(shù)據(jù)包括狀態(tài)信息以及同步命令,每一個形成一個子容器。
在圖4中所示的基于XML編碼是根據(jù)參考圖3b所描述的由操作252參考的客戶同步消息的SyncML消息的示例純文本編碼的摘錄。描述的基于XML編碼包含從第3行擴(kuò)展到第9行的SyncML頭部段和從第10行擴(kuò)展到第57行的SyncML主體段。
第1行和第2行包含關(guān)于使用的XML編碼的公共信息和用于文本表示和SyncML版本信息的字符編碼。
每個SyncML頭部包含在一個同步會話期間有效的文檔類型定義版本信息(VerDTD,第4行)、SyncML協(xié)議版本信息(VerProto,第5行)、會話標(biāo)識符(SessionID,第6行),從而指配所有明確的屬于其的同步消息和增加的消息標(biāo)識符(MsgID,第7行),使得每個接收同步設(shè)備隨后接收具有增加的消息標(biāo)識符數(shù)字的同步消息。在SyncML頭部中包含作為例子描述的SyncML頭部的前述的元素、進(jìn)一步可選的和必要的元素。
SyncML主體包含若干邏輯和獨(dú)立的子段。第一狀態(tài)信息子段從第11行擴(kuò)展到第19行。該第一狀態(tài)信息子段與待同步的數(shù)據(jù)記錄的參考尋址有關(guān)。特別地,目標(biāo)參考(TargetRef,第16行)定義用于尋址客戶的全球移動設(shè)備標(biāo)識符(IMEI),在該情況下客戶為蜂窩通信設(shè)備,而源參考(SourceRef,第17行)定義用于尋址服務(wù)器的統(tǒng)一資源標(biāo)識符(URI),在該情況下服務(wù)器為可經(jīng)由HTTP(超文本傳送協(xié)議)訪問的聯(lián)網(wǎng)服務(wù)器設(shè)備。各個數(shù)據(jù)記錄和數(shù)據(jù)存儲的進(jìn)一步尋址是基于該參考地址信息。還可以包括進(jìn)一步狀態(tài)信息子段的任意號碼,該號碼由從第20行擴(kuò)展到第22行的第二狀態(tài)信息子段指明。例如,將確認(rèn)編碼為狀態(tài)信息。
SyncML主體段進(jìn)一步包含被進(jìn)一步再分的同步子段。作為例子,包括關(guān)于聯(lián)系方式的添加的客戶所指明的修改。第26行包含客戶的聯(lián)系方式數(shù)據(jù)庫的相關(guān)尋址路徑,而第29行包含服務(wù)器的聯(lián)系方式數(shù)據(jù)庫的相關(guān)尋址路徑。相關(guān)尋址路徑與上述的參考尋址有關(guān)。從第31行擴(kuò)展到第36行的元子段包含關(guān)于待添加到服務(wù)器中的聯(lián)系方式數(shù)據(jù)庫的數(shù)據(jù)記錄(聯(lián)系方式)的附加的元信息。從第37行擴(kuò)展到第51行的子段包含添加指令和對應(yīng)的聯(lián)系方式數(shù)據(jù)內(nèi)容。在第40行,在第46行到第48行中的內(nèi)容數(shù)據(jù)的數(shù)據(jù)格式被定義為x-vcard元類型,而在第46行到第48行對應(yīng)的數(shù)據(jù)內(nèi)容是令人滿意的。用于唯一地參考客戶中的這個聯(lián)系方式的本地唯一標(biāo)識符(LUID)被包括在第44行中??蛇M(jìn)一步包括進(jìn)一步的同步信息子段的任何號碼,該號碼是由從第52行擴(kuò)展到第54行的進(jìn)一步同步信息子段指明的。
在第56行包含的最終指令向服務(wù)器指明該示例客戶同步消息是用于同步的最后的消息,該消息包含待報告給服務(wù)器的客戶修改。
根據(jù)本發(fā)明的實(shí)施例的用于恢復(fù)先前未完成同步會話的前述方法可在客戶設(shè)備和服務(wù)器設(shè)備中以各種方式實(shí)現(xiàn)。下列實(shí)現(xiàn)是基于SyncML標(biāo)準(zhǔn)實(shí)現(xiàn)的示例實(shí)現(xiàn),在SyncML標(biāo)準(zhǔn)實(shí)現(xiàn)中,部件具有增強(qiáng)的功能和能力,以便還適用于根據(jù)本發(fā)明的實(shí)施例操作。
圖5顯示說明由根據(jù)本發(fā)明的實(shí)施例的同步客戶設(shè)備和同步服務(wù)器設(shè)備組成的部件的示例框圖。圖5描述了表示提供聯(lián)網(wǎng)的同步服務(wù)的網(wǎng)絡(luò)設(shè)備的服務(wù)器110。由一個或多個服務(wù)器應(yīng)用112和對應(yīng)關(guān)聯(lián)的一個或多個數(shù)據(jù)存儲器部件111表示聯(lián)網(wǎng)的同步服務(wù)。一個或多個服務(wù)器應(yīng)用112向數(shù)據(jù)同步提供由作為聯(lián)網(wǎng)設(shè)備的客戶100的一個或多個客戶應(yīng)用102表示的其他應(yīng)用。一個或多個數(shù)據(jù)存儲器部件111保存用于由一個或多個服務(wù)器應(yīng)用112處理的并因而用于與客戶同步的數(shù)據(jù)記錄,其中一個或多個數(shù)據(jù)存儲器部件111是例如一個或若干數(shù)據(jù)庫。服務(wù)器110和客戶100通過通信網(wǎng)絡(luò)傳送而被連接。參考圖1示出并討論對用于連接客戶100和服務(wù)器110的適當(dāng)通信網(wǎng)絡(luò)的選擇。
一個或多個服務(wù)器應(yīng)用112使用作為同步服務(wù)器引擎113實(shí)現(xiàn)的數(shù)據(jù)同步協(xié)議,同步服務(wù)器引擎113是服務(wù)器110的部件或服務(wù)器上的進(jìn)程。通過客戶應(yīng)用分別訪問所提供的同步服務(wù)器網(wǎng)絡(luò)服務(wù)和資源,數(shù)據(jù)同步協(xié)議在通信網(wǎng)絡(luò)上是清楚顯現(xiàn)的。同步服務(wù)器代理115對同步服務(wù)器引擎113到網(wǎng)絡(luò)的訪問和通信進(jìn)行接口和管理,并分別使能與客戶100和一個或多個客戶應(yīng)用102的數(shù)據(jù)同步操作的通信。通過包含同步接口116和同步適配器117,同步代理115執(zhí)行接口和通信,其中同步接口116是例如到同步適配器117的應(yīng)用程序接口(API)。同步適配器117分別是服務(wù)器110的部件或服務(wù)器上的進(jìn)程,在概念上服務(wù)器110與客戶端上的對應(yīng)的同步適配器107通信。同步適配器117主要負(fù)責(zé)建立和維護(hù)服務(wù)器110和客戶100之間的網(wǎng)絡(luò)通信連接,即一個或多個提供數(shù)據(jù)同步服務(wù)的服務(wù)器應(yīng)用112和一個或多個訪問并應(yīng)用該數(shù)據(jù)同步服務(wù)的客戶應(yīng)用102之間的網(wǎng)絡(luò)通信連接。
在客戶端,具有一個或多個存儲可由一個或多個客戶應(yīng)用102訪問的數(shù)據(jù)記錄的關(guān)聯(lián)的數(shù)據(jù)存儲器部件101的一個或多個客戶應(yīng)用102使用同步客戶代理105、同步接口106和同步適配器107,以訪問所提供的服務(wù)器同步服務(wù)。同步客戶代理105使能分別與服務(wù)器110和一個或多個服務(wù)器應(yīng)用112的數(shù)據(jù)同步操作的通信。同步接口106類似地表示例如到同步適配器107的應(yīng)用程序接口(API)。
例如通過在同步客戶代理115和同步服務(wù)器代理105中實(shí)現(xiàn)一個或多個代碼段,根據(jù)本發(fā)明的實(shí)施例的前述方法被包括在服務(wù)器110和客戶100的上述概念性部件構(gòu)架中,其中一個或多個代碼段包括指令,該指令在它們執(zhí)行時執(zhí)行用于恢復(fù)未完成的同步會話的方法的實(shí)施例。這種方式的實(shí)現(xiàn)保證了在同步會話的中斷的情況下,用于恢復(fù)該中斷的同步會話所要求的信息被記入日志或存儲在客戶110和服務(wù)器110中。
圖6-8顯示了根據(jù)本發(fā)明用于恢復(fù)與兩個設(shè)備之間的數(shù)據(jù)交換有關(guān)的先前未完成的同步會話的中斷的方法的可替換實(shí)施例。該方法特征在于步驟將用于恢復(fù)的警告信號從第一設(shè)備發(fā)送到第二設(shè)備,恢復(fù)信號包含與請求恢復(fù)先前未完成同步會話有關(guān)的信息。如舉例的方式示出,第一設(shè)備是客戶,并且第二設(shè)備是服務(wù)器。該方法的特征還在于步驟將用于警告信號的狀態(tài)從第二設(shè)備發(fā)送到第一設(shè)備,警告信號表示與待執(zhí)行的同步類型有關(guān)的信息。與用于恢復(fù)的警告信號的狀態(tài)有關(guān)的信息可包括用于接受恢復(fù)會話或覆蓋先前未完成同步會話的較早的同步類型的信息。如果覆蓋了較早的同步類型,那么服務(wù)器命令客戶使用不同的同步類型。如果同步被中斷,“Next”錨或第二更新標(biāo)識符可以或不可以被更新。如果在中斷之后或在暫停期間“Next”錨被更新,這就允許在中斷期間同步可能被修改的數(shù)據(jù)項(xiàng),從而允許更好的用戶感受。
在圖6中,在步驟302客戶將用于恢復(fù)的警告信號發(fā)送給服務(wù)器。在步驟304,服務(wù)器用警告信號的狀態(tài)應(yīng)答回客戶,該狀態(tài)包含會話的恢復(fù)是否完成的指示。在步驟306中,客戶使用先前中斷的同步會話的同步類型(例如,快速或慢速同步)并且交換剩余的客戶數(shù)據(jù)。在步驟308、310完成同步會話,這些步驟類似于以上關(guān)于圖3b討論的步驟253、254。在前述步驟中,包括了同步會話的恢復(fù)和對先前中斷的同步會話的同步類型的確定。客戶一發(fā)送了恢復(fù)警告代碼,服務(wù)器就同意恢復(fù)會話并發(fā)送在警告元素中用于對應(yīng)的服務(wù)器端的數(shù)據(jù)存儲的適當(dāng)警告代碼??蛻舯仨毨迷摼娲a來恢復(fù)同步會話。這避免了會話中斷時在客戶端存儲同步類型。
另外,本發(fā)明的范圍試圖包括這些實(shí)施例,使得無論何時發(fā)生中斷,客戶應(yīng)當(dāng)發(fā)送用于恢復(fù)的警告。這即使在客戶接收了用于所有項(xiàng)的狀態(tài)并且在恢復(fù)會話中不再發(fā)送新的或修改的項(xiàng)時也可以應(yīng)用。換句話說,如果傳送沒有被良好地或適當(dāng)?shù)財嚅_,那么客戶必須請求恢復(fù)而不是開始新的同步會話。通過這樣做,這允許服務(wù)器只發(fā)送沒有獲得狀態(tài)的項(xiàng)。
圖7顯示由服務(wù)器對恢復(fù)會話的覆蓋。在該情況下,客戶對恢復(fù)的要求在步驟302不可被服務(wù)器接受,因此通過分別發(fā)送例如在步驟320中的狀態(tài)508(刷新同步)或狀態(tài)509(另一個同步類型)、或者任何用于相同目的的其它適當(dāng)?shù)拇a、跟在后面的在警告代碼201(慢速同步)或2XX(用于另一種同步類型)中的適當(dāng)?shù)耐筋愋?,服?wù)器能覆蓋較早的同步類型。在步驟322,客戶使用由服務(wù)器指定的同步類型并發(fā)送所有的項(xiàng),而不僅僅是剩下的5個數(shù)據(jù)項(xiàng)。本發(fā)明的范圍不趨于被限制于任何特定的狀態(tài)代碼號。使用其他狀態(tài)代碼號來展示實(shí)施例。
圖8顯示了慢速同步會話的恢復(fù)??蛻粽埱髮νㄟ^警告服務(wù)器進(jìn)行恢復(fù)并且如果該恢復(fù)可被服務(wù)器接受,那么在步驟330中發(fā)送關(guān)于“用于恢復(fù)的警告”的200狀態(tài)(OK)。另外,服務(wù)器在警告元素中發(fā)送用于對應(yīng)的服務(wù)器端的數(shù)據(jù)存儲的警告201。這類似于上面關(guān)于圖6、關(guān)于對同步類型的確定的討論;然而,注意如何區(qū)分慢速同步和強(qiáng)完全慢速同步的恢復(fù)是很重要的,因?yàn)榫?01當(dāng)前意味著慢速同步并且客戶可開始一個完全慢速同步。為了在慢速同步和完全慢速同步的恢復(fù)之間區(qū)分,在步驟330客戶可通過查看發(fā)送到“用于恢復(fù)的警告”的狀態(tài)代碼來進(jìn)行判定。200代碼意思是恢復(fù)慢速同步(可替換的是具有用于所有不同同步類型的狀態(tài)代碼,例如發(fā)送220而不是200來確認(rèn)開始一個恢復(fù)會話是可以的),以及508代碼意思是完全慢速同步。參考上述的內(nèi)容,完全慢速同步可以通過發(fā)送508狀態(tài)來實(shí)現(xiàn),狀態(tài)508(要求的刷新)是關(guān)于跟隨有警告201的用于恢復(fù)的警告。通過這樣,客戶將知道不能恢復(fù)先前中斷的慢速同步,相反,必須使用從一開頭就開始的完全慢速同步。這不意味著開始新的同步會話,而是可以在需要時結(jié)束這樣做。
根據(jù)另一個實(shí)施例,可能具有附加的警告代碼來指明“用于暫停的警告”這將允許以良好的方式中斷同步會話?;謴?fù)可以根據(jù)在說明書早先描述的步驟。這個警告代碼僅能幫助實(shí)現(xiàn)良好的方式來中斷通常由用戶啟動的同步會話。當(dāng)?shù)诙O(shè)備接收這樣的警告時,它可通過狀態(tài)代碼響應(yīng)該警告,由此第一設(shè)備可以推理其是否也能夠轉(zhuǎn)到“暫停模式”。自然地,不更新“LAST”更新標(biāo)識符。第一或第二設(shè)備之后可發(fā)送指示給另一個設(shè)備,以便恢復(fù)暫停的同步會話。例如,第一設(shè)備可發(fā)送包含用于恢復(fù)的警告信號的消息給第二設(shè)備,由此這些設(shè)備可以繼續(xù)暫停的同步。
隨著技術(shù)的進(jìn)步,對于本領(lǐng)域的技術(shù)人員來說顯然本發(fā)明的思想可以以不同的和廣泛的方式來實(shí)現(xiàn)。因此,本發(fā)明及其實(shí)施例不限制于上述的例子,而可以在權(quán)利要求的范圍內(nèi)變化。
權(quán)利要求
1.一種用于恢復(fù)與兩個設(shè)備之間的數(shù)據(jù)交換有關(guān)的先前未完成的同步會話的中斷的方法,其特征在于該方法包括步驟將用于恢復(fù)的警告信號從第一設(shè)備發(fā)送到第二設(shè)備,該用于恢復(fù)的警告信號包含與請求恢復(fù)所述先前未完成的同步會話有關(guān)的信息。
2.根據(jù)權(quán)利要求1的方法,其中該方法還包括步驟將用于所述警告信號的狀態(tài)從所述第二設(shè)備發(fā)送到所述第一設(shè)備,該警告信號的狀態(tài)表示與待執(zhí)行的同步類型有關(guān)的信息。
3.根據(jù)權(quán)利要求1的方法,其中與所述警告信號的狀態(tài)有關(guān)的信息包括用于覆蓋所述先前未完成的同步會話的較早同步類型的信息。
4.根據(jù)權(quán)利要求1的方法,其中與所述請求有關(guān)的信息包括根據(jù)所述先前未完成的同步會話的中斷而被記入日志的信息,以允許恢復(fù)所述先前未完成的同步會話。
5.根據(jù)權(quán)利要求4的方法,其中該方法進(jìn)一步包括步驟在每個設(shè)備中存儲根據(jù)所述先前未完成的同步會話的中斷而被記入日志的所述信息。
6.根據(jù)權(quán)利要求4的方法,其中根據(jù)所述先前未完成的同步會話的中斷而被記入日志的信息包括第一更新標(biāo)識符,該第一更新標(biāo)識符包含關(guān)于在所述兩個設(shè)備之間已經(jīng)執(zhí)行的先前完成的同步會話的信息,并還包括第二更新標(biāo)識符,該第二更新標(biāo)識符包含關(guān)于在所述兩個設(shè)備之間已經(jīng)開始的先前未完成的同步會話的信息。
7.根據(jù)權(quán)利要求4的方法,其中該方法進(jìn)一步包括步驟比較在一個設(shè)備中被記入日志的更新標(biāo)識符信息和在另一個設(shè)備中被記入日志的更新標(biāo)識符信息,并且基于該比較來恢復(fù)所述先前未完成的同步會話的中斷。
8.根據(jù)權(quán)利要求7的方法,其中該方法進(jìn)一步包括步驟根據(jù)所述比較使用不同的同步方法用于恢復(fù)所述先前未完成的同步會話的中斷。
9.根據(jù)權(quán)利要求6的方法,其中所述第一更新標(biāo)識符是最后錨并且所述第二更新標(biāo)識符是下一個或暫停錨。
10.根據(jù)權(quán)利要求9的方法,其中在根據(jù)所述先前未完成同步會話中斷的、被接收和記入日志的最后和下一個錨信息匹配時,所述不同的同步方法包括快速恢復(fù)同步。
11.根據(jù)權(quán)利要求9的方法,其中在根據(jù)所述先前未完成的同步會話的中斷接收和記入日志的最后錨信息匹配,而被接收和記入日志的下一個錨信息不匹配時,所述不同的同步方法包括重新啟動的正常同步。
12.根據(jù)權(quán)利要求9的方法,其中在根據(jù)所述先前未完成的同步會話的中斷接收和記入日志的最后錨信息不匹配,而被接收和記入日志的下一個錨信息匹配時,所述不同的同步方法包括慢速恢復(fù)同步。
13.根據(jù)權(quán)利要求9的方法,其中在所述根據(jù)先前未完成的同步會話的中斷接收和記入日志的最后和最后錨信息不匹配時,所述不同的同步方法包括完全慢速恢復(fù)同步。
14.根據(jù)權(quán)利要求7的方法,其中被記入日志的信息還包括所述先前未完成的同步會話的會話ID和適當(dāng)傳送的最后消息的消息ID以及一個或多個唯一的記錄標(biāo)識符。
15.根據(jù)權(quán)利要求7的方法,其中該方法包括步驟所述第二設(shè)備命令所述第一設(shè)備基于被記入日志的信息來恢復(fù)所述先前未完成的同步會話。
16.用于同步的方法,包括-建立用于同步第一設(shè)備和第二設(shè)備之間的數(shù)據(jù)的通信連接,所述第一設(shè)備和第二設(shè)備的每個包括待同步的數(shù)據(jù)集合;-傳送第一更新標(biāo)識符和第二更新標(biāo)識符,所述第一更新標(biāo)識符指示已經(jīng)在所述第一設(shè)備和所述第二設(shè)備之間執(zhí)行的先前完成的同步事件,至少已經(jīng)在所述第一設(shè)備中存儲了所述第一更新標(biāo)識符的值,所述第二更新標(biāo)識符指示已經(jīng)在所述第一設(shè)備和所述第二設(shè)備之間開始的先前未完成的同步事件,至少已經(jīng)在所述第一設(shè)備中存儲了所述第二更新標(biāo)識符的值;-檢索或形成已經(jīng)在所述先前未完成的同步事件期間成功同步的數(shù)據(jù)的指示;-使用所述指示,同步還沒有在所述先前未完成的同步事件期間成功同步的數(shù)據(jù);以及-至少在所述第一設(shè)備中,用所述第二更新標(biāo)識符的所述值更新所述第一更新標(biāo)識符的所述值。
17.根據(jù)權(quán)利要求16的方法,其中該方法還包括-傳送與所述先前未完成的同步事件有關(guān)的附加信息,并且該附加信息包括至少一個來自以下組的信息,該組包括關(guān)于所述先前未完成的同步的信息,以及關(guān)于根據(jù)接收的同步有關(guān)的信息而成功同步的數(shù)據(jù)的信息。
18.根據(jù)權(quán)利要求16的方法,還包括在所述第一設(shè)備和所述第二設(shè)備的至少一個中-在第一比較中,比較從所述第一設(shè)備傳送的所述第一更新標(biāo)識符的值與存儲在所述第二設(shè)備中的所述第一設(shè)備的所述第二更新標(biāo)識符的值;-在第二比較中,比較從所述第一設(shè)備傳送的所述第二更新標(biāo)識符的值與存儲在所述第二設(shè)備中的所述第一設(shè)備的所述第二更新標(biāo)識符的值;-執(zhí)行下列選項(xiàng)的至少一個-如果所述第二比較產(chǎn)生一個真值,則同步所述第一設(shè)備和所述第二設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括在所述先前未完成的同步事件期間沒有交換的數(shù)據(jù);-如果所述第二比較產(chǎn)生一個假值,則同步所述第一設(shè)備和所述第二設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括至少已經(jīng)在所述先前未完成的同步事件期間被同步的數(shù)據(jù);-如果所述第一比較產(chǎn)生一個假值,則同步所述第一設(shè)備和所述第二設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括已經(jīng)在所述先前完成的同步事件期間被同步的數(shù)據(jù);和如果所述第一比較產(chǎn)生一個真值,-則同步所述第一設(shè)備和所述第二設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)在所述先前完成的同步事件期間還沒有被同步。
19.根據(jù)權(quán)利要求16的方法,其中建立用于同步的通信連接還包括-傳送命令所述第一設(shè)備和所述第二設(shè)備的至少一個的初始消息,以準(zhǔn)備恢復(fù)所述先前未完成的同步。
20.根據(jù)權(quán)利要求16的方法,其中所述同步基于根據(jù)所述SyncML標(biāo)準(zhǔn)的同步協(xié)議,所述第一更新標(biāo)識符是最后同步錨。
21.根據(jù)權(quán)利要求20的方法,其中所述第二更新標(biāo)識符至少是下一個同步錨和暫停同步錨的其中之一。
22.根據(jù)權(quán)利要求20的方法,其中與所述先前未完成的同步事件有關(guān)的所述附加信息包括來自以下組的至少一個信息,該組是同步事件會話標(biāo)識符(會話ID)、同步消息標(biāo)識符(消息ID)和確認(rèn)的數(shù)據(jù)及其它們相應(yīng)的數(shù)據(jù)存儲的一個或多個標(biāo)識符。
23.根據(jù)權(quán)利要求22的方法,其中在傳送所述第一和第二更新標(biāo)識符之前至少已經(jīng)將所述附加信息存儲在所述第一設(shè)備中。
24.根據(jù)權(quán)利要求16的方法,其中如果已經(jīng)成功接收了用于數(shù)據(jù)或包含所述數(shù)據(jù)的消息的確認(rèn),則已經(jīng)成功地同步了所述數(shù)據(jù),其中所述確認(rèn)指明所述數(shù)據(jù)或所述消息的同步的肯定或否定狀態(tài)。
25.用于同步的軟件工具,包括用于執(zhí)行權(quán)利要求16所述的方法的操作的程序部分,其中所述軟件工具用于在計算機(jī)程序中實(shí)現(xiàn),該計算機(jī)程序用于在處理設(shè)備、終端設(shè)備、通信終端設(shè)備或網(wǎng)絡(luò)設(shè)備上執(zhí)行。
26.用于同步的計算機(jī)程序,包括用于執(zhí)行權(quán)利要求16所述的方法的操作的程序代碼段,其中所述計算機(jī)程序用于在處理設(shè)備、終端設(shè)備、通信終端設(shè)備或網(wǎng)絡(luò)設(shè)備上執(zhí)行。
27.用于同步的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括存儲在計算機(jī)可讀介質(zhì)上的、用于執(zhí)行權(quán)利要求16所述的方法的操作的程序代碼段,其中所述計算機(jī)程序產(chǎn)品用于在處理設(shè)備、終端設(shè)備、通信終端設(shè)備或網(wǎng)絡(luò)設(shè)備上執(zhí)行。
28.一種在網(wǎng)絡(luò)中使用的并能夠同步數(shù)據(jù)的設(shè)備,包括-存儲介質(zhì),包括預(yù)定義的待同步的數(shù)據(jù)集合;-通信接口,用于建立用來同步數(shù)據(jù)到網(wǎng)絡(luò)中使用的另一個設(shè)備的通信連接,以便與所述另一個網(wǎng)絡(luò)設(shè)備進(jìn)行第一更新標(biāo)識符和第二更新標(biāo)識符的通信,并且用于與所述另一個網(wǎng)絡(luò)設(shè)備交換數(shù)據(jù),其中所述第一更新標(biāo)識符指示已經(jīng)用所述另一個網(wǎng)絡(luò)設(shè)備執(zhí)行的先前完成的同步事件,已經(jīng)至少在所述網(wǎng)絡(luò)設(shè)備中存儲所述第一更新標(biāo)識符,所述第二更新標(biāo)識符指示先前未完成的同步事件,已經(jīng)至少在所述網(wǎng)絡(luò)設(shè)備中存儲所述第二更新標(biāo)識符,其中所述數(shù)據(jù)至少包括在先前未完成的同步事件期間沒有同步的數(shù)據(jù);-檢索或形成部件,用于檢索或形成在所述先前未完成的同步事件期間已經(jīng)同步的數(shù)據(jù)的指示,已經(jīng)在所述網(wǎng)絡(luò)設(shè)備中存儲所述指示;-同步部件,用于根據(jù)所述指示同步數(shù)據(jù);和-更新部件,用于將存儲的所述第一更新標(biāo)識符的內(nèi)容更新為存儲的所述第二更新標(biāo)識符的內(nèi)容。
29.根據(jù)權(quán)利要求27的設(shè)備,其中-所述通信接口適用于傳送與所述先前未完成的同步事件有關(guān)的補(bǔ)充的附加信息,其中所述附加信息包括來自一個組的至少一個信息,該組包括關(guān)于所述先前未完成的同步的信息、關(guān)于同步有關(guān)信息的最后一次成功交換的信息和關(guān)于根據(jù)接收的同步有關(guān)信息而被成功同步的數(shù)據(jù)的信息。
30.根據(jù)權(quán)利要求28的設(shè)備,還包括-用于比較的部件,在第一比較中,用于比較從所述設(shè)備傳送的所述第一更新標(biāo)識符的值與存儲在另一個設(shè)備中的該設(shè)備的所述第二更新標(biāo)識符的值;并且在第二比較中,用于比較從所述第一設(shè)備傳送的所述第二更新標(biāo)識符的值與存儲在另一個設(shè)備中的該設(shè)備的所述第二更新標(biāo)識符的值,所述部件用于執(zhí)行下列選項(xiàng)的至少一個-如果所述第二比較產(chǎn)生一個真值,則同步所述設(shè)備和所述另一個設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括在所述先前未完成的同步事件期間沒有交換的數(shù)據(jù);-如果所述第二比較產(chǎn)生一個假值,則同步所述設(shè)備和所述另一個設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括至少已經(jīng)在所述先前未完成的同步事件期間被同步的數(shù)據(jù);-如果所述第一比較產(chǎn)生一個假值,則同步所述設(shè)備和所述另一個設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)包括已經(jīng)在所述先前完成的同步事件期間被同步的數(shù)據(jù);和如果所述第一比較產(chǎn)生一個真值,-則同步所述設(shè)備和所述另一個設(shè)備之間的數(shù)據(jù),所述數(shù)據(jù)在所述先前完成的同步事件期間還沒有被同步。
31.用于同步的系統(tǒng),包括第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備,其中所述第一網(wǎng)絡(luò)設(shè)備包括-存儲介質(zhì),包括預(yù)定義的待同步的數(shù)據(jù)集合;-通信接口,用于建立用來同步數(shù)據(jù)到在網(wǎng)絡(luò)中使用的所述第二設(shè)備的通信連接,用于將第一更新標(biāo)識符和第二更新標(biāo)識符傳遞到所述第二網(wǎng)絡(luò)設(shè)備,和用于與所述第二網(wǎng)絡(luò)設(shè)備交換數(shù)據(jù),-檢索或形成部件,用于檢索或形成在所述先前未完成的同步事件期間已經(jīng)同步的數(shù)據(jù)的指示,已經(jīng)在所述第一網(wǎng)絡(luò)設(shè)備中存儲了所述指示;-同步部件,用于根據(jù)所述指示同步數(shù)據(jù);和-更新部件,用于將存儲的所述第一更新標(biāo)識符的內(nèi)容更新為存儲的所述第二更新標(biāo)識符的內(nèi)容;其中所述第二網(wǎng)絡(luò)設(shè)備包括-存儲介質(zhì),包括預(yù)定義的待同步的數(shù)據(jù)集合;-通信接口,用于建立用來同步數(shù)據(jù)到在網(wǎng)絡(luò)中使用的所述第一設(shè)備的通信連接,用于將第一更新標(biāo)識符和第二更新標(biāo)識符傳遞到所述第一網(wǎng)絡(luò)設(shè)備,和用于與所述第一網(wǎng)絡(luò)設(shè)備交換數(shù)據(jù),所述第二更新標(biāo)識符和所述第二更新標(biāo)識符被存儲,-同步部件,用于根據(jù)所述指示同步數(shù)據(jù);-更新部件,用于將存儲的所述第一更新標(biāo)識符的內(nèi)容更新為存儲的所述第二更新標(biāo)識符的內(nèi)容;以及-用于比較的部件,在第一比較中,用于比較從所述第一網(wǎng)絡(luò)設(shè)備傳送的所述第一更新標(biāo)識符的值與存儲在所述第二網(wǎng)絡(luò)設(shè)備中的所述第一更新標(biāo)識符的值;并且在第二比較中,用于比較從所述第一網(wǎng)絡(luò)設(shè)備傳送的所述第二更新標(biāo)識符的值與存儲在所述第二網(wǎng)絡(luò)設(shè)備中的所述第二更新標(biāo)識符的值,其中所述第一更新標(biāo)識符指示已經(jīng)用所述第二網(wǎng)絡(luò)設(shè)備執(zhí)行的先前完成的同步事件,至少已經(jīng)在一個網(wǎng)絡(luò)設(shè)備中存儲了所述第一更新標(biāo)識符,所述第二更新標(biāo)識符指示已經(jīng)用所述第二網(wǎng)絡(luò)設(shè)備執(zhí)行的先前未完成的同步事件,至少已經(jīng)在一個網(wǎng)絡(luò)設(shè)備中存儲所述第二更新標(biāo)識符,以及其中如果所述比較產(chǎn)生相同的標(biāo)識符,則所述數(shù)據(jù)至少包括在所述先前未完成的同步事件期間沒有同步的數(shù)據(jù),所述交換的信息基于所述指示。
全文摘要
本發(fā)明提供一種方法、網(wǎng)絡(luò)設(shè)備和系統(tǒng),用于允許恢復(fù)先前未完成的同步會話,其中該先前未完成的同步會話在它的執(zhí)行期間被中斷。原理上,先前未完成的同步會話的恢復(fù)基于根據(jù)創(chuàng)造性構(gòu)思的下列操作。建立用于同步第一和第二設(shè)備之間的數(shù)據(jù)的通信連接。第一和第二設(shè)備的每個包括預(yù)定義的待同步的數(shù)據(jù)記錄集合。在第一和第二設(shè)備之間傳送第一和第二更新標(biāo)識符。所述第一更新標(biāo)識符指示已經(jīng)在它們之間執(zhí)行的先前完成的同步會話,并且第二更新標(biāo)識符指示已經(jīng)在它們之間執(zhí)行的先前未完成的同步會話。在第一和第二設(shè)備之間交換同步相關(guān)信息。這里,交換的同步相關(guān)信息包括在先前未完成的同步會話期間還沒有交換的同步相關(guān)信息的部分。根據(jù)交換的同步相關(guān)信息同步在第一和第二設(shè)備中的數(shù)據(jù)。用第二更新標(biāo)識符的內(nèi)容更新第一更新標(biāo)識符的內(nèi)容。
文檔編號G06F19/00GK1708755SQ03824906
公開日2005年12月14日 申請日期2003年9月3日 優(yōu)先權(quán)日2002年9月3日
發(fā)明者G·西瓦拉馬, R·梅塔拉 申請人:諾基亞有限公司