專利名稱:一種數(shù)據(jù)同步方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)同步方法,特別是涉及上一次同步中服務器端返回失敗狀態(tài)時客戶端處理的數(shù)據(jù)同步方法,以提高同步質(zhì)量。
背景技術(shù):
隨著移動通信技術(shù)的發(fā)展,更多的移動終端的增值業(yè)務被開發(fā)出來,SyncML(Synchronization Markup Language,同步標記語言)同步技術(shù)就是其中之一。SyncML是一種與平臺無關(guān)的信息同步標準協(xié)議?,F(xiàn)有的大部分同步解決方案絕大部分依賴于某個廠商、應用,或者是某個操作系統(tǒng),而SyncML的目的就是要提供一個開放標準。目前,該標準已經(jīng)得到更多公司的產(chǎn)品的支持。
請參閱圖1所示,為現(xiàn)有技術(shù)中客戶端與服務器端同步的一般流程示意圖。該流程包括如下步驟步驟101,用戶(User)10啟動同步;步驟102,然后,客戶端(Client)20開始初始化;步驟103,隨后網(wǎng)絡初始化;步驟104,相繼網(wǎng)絡初始化之后進行同步初始化;步驟105,隨后,客戶端20的數(shù)據(jù)被發(fā)送到服務器端(Server)30;步驟106,服務器端30接收并加以參照,對自身數(shù)據(jù)進行增加、修改、刪除,隨后,服務器端30的數(shù)據(jù)以及其狀態(tài)碼被發(fā)送到客戶端20;步驟107,客戶端20接收并參照該數(shù)據(jù)增加、修改、刪除自身的數(shù)據(jù),隨即發(fā)送映射信息和狀態(tài)碼回復到服務器端30;步驟108,服務器端30接收后發(fā)送狀態(tài)回復到客戶端20,從而實現(xiàn)了雙方的數(shù)據(jù)同步過程。
但SyncML DS(Data Synchronization,數(shù)據(jù)同步)協(xié)議并沒有規(guī)定客戶端發(fā)送添加、更新、刪除數(shù)據(jù)到服務器端,服務器端返回失敗狀態(tài)碼時的處理方法。對此,一般采用的辦法是將其忽略,即,在下一次同步時不發(fā)送服務器返回狀態(tài)失敗的數(shù)據(jù),但這又會導致服務器端和客戶端的數(shù)據(jù)不一致的問題,除非啟動慢同步把客戶端所有數(shù)據(jù)都發(fā)送到服務器端,而這又將導致同步質(zhì)量無法滿足用戶的需求。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種數(shù)據(jù)同步方法,用于在下一次同步中實現(xiàn)服務器端返回失敗狀態(tài),以提高同步質(zhì)量。
為了實現(xiàn)上述目的,本發(fā)明提供了一種數(shù)據(jù)同步方法,應用于包含客戶端、服務器端的數(shù)據(jù)同步系統(tǒng),在所述客戶端初始化時讀取電話本數(shù)據(jù)時生成一日志列表,所述電話本數(shù)據(jù)與所述日志列表中的數(shù)據(jù)進行比較時生成一同步列表,所述同步列表包含添加列表、更新列表及刪除列表,其特征在于,該方法通過所述客戶端對所述服務器端返回的狀態(tài)碼進行判斷,并在所述狀態(tài)碼為成功狀態(tài)碼時刪除所述同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息,在所述狀態(tài)碼為失敗狀態(tài)碼時保留所述同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息的方式實現(xiàn)數(shù)據(jù)同步。
所述的數(shù)據(jù)同步方法,其中,該方法具體包括步驟21,用戶輸入同步啟動命令啟動同步;步驟22,讀取所述電話本中的數(shù)據(jù);步驟23,將所述讀取的電話本數(shù)據(jù)與所述日志列表中的數(shù)據(jù)進行比較并生成同步列表;步驟24,所述客戶端將所述同步列表中的數(shù)據(jù)傳輸至所述服務器端;所述25,所述服務器端返回狀態(tài)碼至所述客戶端;及所述26,所述客戶端對所述狀態(tài)碼進行判斷及處理。
所述的數(shù)據(jù)同步方法,其中,所述電話本數(shù)據(jù)包括本地唯一標識、修改日期,所述日志列表包括本地唯一標識、修改日期。
所述的數(shù)據(jù)同步方法,其中,所述步驟23中,還包括若所述日志列表中無所述電話本數(shù)據(jù)的本地唯一標識,則將該數(shù)據(jù)添加到所述添加列表、日志列表;若所述日志列表中有所述電話本數(shù)據(jù)的本地唯一標識,則比較所述修改日期;若所述電話本中無所述日志列表中的數(shù)據(jù),則將該數(shù)據(jù)添加到所述刪除列表,并刪除所述日志列表中相應的數(shù)據(jù)信息。
所述的數(shù)據(jù)同步方法,其中,所述比較所述修改日期的步驟中,進一步包括
若所述電話本中的修改日期早于所述日志列表中的修改日期,則將所述電話本中的修改日期添加到所述更新列表,并更新所述日志列表中的修改日期;若所述電話本中的修改日期與所述日志列表中的修改日期相同,則比較下一個電話本中的數(shù)據(jù)。
所述的數(shù)據(jù)同步方法,其中,所述步驟21中,所述用戶通過用戶界面輸入同步啟動命令。
本發(fā)明提出的一種數(shù)據(jù)同步方法,實現(xiàn)了當上一次同步中服務器端返回更新失敗、刪除失敗、添加失敗的失敗狀態(tài)碼時,下一次同步時同時傳送上一次同步后的修改的數(shù)據(jù)和上一次同步中發(fā)生服務器端更新失敗、刪除失敗、添加失敗的對象,從而提高同步質(zhì)量。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
圖1為現(xiàn)有技術(shù)中客戶端與服務器端同步的一般流程示意圖;圖2為本發(fā)明的服務器端返回失敗狀態(tài)碼時客戶端處理流程示意圖。
具體實施方式請參閱圖2所示,為本發(fā)明的服務器端返回失敗狀態(tài)碼時客戶端處理流程。該流程包括如下步驟步驟210,待機狀態(tài)下,用戶通過UI(User Interface,用戶界面)輸入同步啟動命令;步驟220,同步啟動;步驟230,從電話本中讀取電話本的所有數(shù)據(jù)信息,包括LUID(LocallyUnique Identifier,本地唯一標識)、Date(修改日期)等數(shù)據(jù);步驟240,將讀取的電話本數(shù)據(jù)一一與LogList(日志列表)中的數(shù)據(jù)信息進行比較,具體包括若LogList中沒有電話本中數(shù)據(jù)的LUID,則將該數(shù)據(jù)信息添加到SyncList(同步列表)的AddList(添加列表),同時添加到LogList中;若LogList中有電話本中數(shù)據(jù)的LUID,則比較并修改Date若電話本中的Date比LogList中的Date更早,則將電話本中的該Date數(shù)據(jù)信息添加到SyncList的UpdateList(更新列表),并更新LogList中的Date;若電話本中的Date與LogList中的Date相同,則比較下一個電話本中的數(shù)據(jù);若電話本中沒有LogList的數(shù)據(jù),則將其添加到SyncList的DeleteList(刪除列表),并在LogList中刪除相應的數(shù)據(jù)信息。
步驟250,客戶端Client把SyncList中的具體數(shù)據(jù)內(nèi)容和相應命令傳輸至服務器端Server;步驟260,服務器端Server對每個數(shù)據(jù),向客戶端Client返回成功或失敗狀態(tài)碼;步驟270,客戶端Client接收服務器端Server返回的狀態(tài)碼并判斷該狀態(tài)碼是成功狀態(tài)碼還是失敗狀態(tài)碼?若是成功狀態(tài)碼,則執(zhí)行步驟280,若是失敗狀態(tài)碼,則執(zhí)行步驟290;步驟280,刪除SyncList中成功狀態(tài)碼相應的數(shù)據(jù)的信息,并轉(zhuǎn)步驟210;步驟290,不刪除SyncList中對應的對象,即,在SyncList中保留失敗狀態(tài)碼相應的數(shù)據(jù)的信息,并轉(zhuǎn)步驟210。
在圖2的上述說明中,LogList為在客戶端Client初始化時讀取電話本數(shù)據(jù)時生成的日志列表,該表與電話本中的數(shù)據(jù)一一對應,該表存儲本地唯一標識、Date等數(shù)據(jù)。
SyncList為在客戶端Client初始化時將讀取的電話本數(shù)據(jù)與LogList進行比較時生成的同步列表,包括三個方面若LogList中沒有電話本中的數(shù)據(jù),則添加該數(shù)據(jù)到SyncList的AddList,并添加到LogList中;若電話本中數(shù)據(jù)的Date大于LogList中數(shù)據(jù)的Date,則添加該數(shù)據(jù)到SyncList的UpdateList,并更新LogList中的Date;若電話本中無LogList中的數(shù)據(jù),則添加該數(shù)據(jù)到SyncList的DeleteList,并從LogList中刪除相應數(shù)據(jù)。
在圖2中,當這次同步結(jié)束后,下次同步啟動時,執(zhí)行步驟210、220、230及240后,SyncList中除了上次同步后電話本中改變的數(shù)據(jù),還有上次同步中接收的服務器端Server返回的失敗狀態(tài)碼對應的數(shù)據(jù),即在服務器端Server添加或更新或刪除失敗的數(shù)據(jù)信息,隨后再執(zhí)行步驟250,這樣就可克服現(xiàn)有的同步中服務器端Server添加或更新或刪除失敗而延誤了局部數(shù)據(jù)的更新,進而帶來同步質(zhì)量降低的問題。
本發(fā)明因只涉及到客戶端發(fā)送的數(shù)據(jù)傳送到服務器端后,服務器端同步該數(shù)據(jù)后返回該數(shù)據(jù)的同步狀態(tài)碼的步驟,故,圖2中省略其他的流程。
本發(fā)明提出的一種數(shù)據(jù)同步方法,實現(xiàn)了當上一次同步中服務器端返回更新失敗、刪除失敗、添加失敗的失敗狀態(tài)碼時,下一次同步時同時傳送上一次同步后的修改的數(shù)據(jù)和上一次同步中發(fā)生服務器端更新失敗、刪除失敗、添加失敗的對象,從而提高同步質(zhì)量。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權(quán)利要求
的保護范圍。
權(quán)利要求
1.一種數(shù)據(jù)同步方法,應用于包含客戶端、服務器端的數(shù)據(jù)同步系統(tǒng),在所述客戶端初始化時讀取電話本數(shù)據(jù)時生成一日志列表,所述電話本數(shù)據(jù)與所述日志列表中的數(shù)據(jù)進行比較時生成一同步列表,所述同步列表包含添加列表、更新列表及刪除列表,其特征在于,該方法通過所述客戶端對所述服務器端返回的狀態(tài)碼進行判斷,并在所述狀態(tài)碼為成功狀態(tài)碼時刪除所述同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息,在所述狀態(tài)碼為失敗狀態(tài)碼時保留所述同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息的方式實現(xiàn)數(shù)據(jù)同步。
2.根據(jù)權(quán)利要求
1所述的數(shù)據(jù)同步方法,其特征在于,該方法具體包括步驟21,用戶輸入同步啟動命令啟動同步;步驟22,讀取所述電話本中的數(shù)據(jù);步驟23,將所述讀取的電話本數(shù)據(jù)與所述日志列表中的數(shù)據(jù)進行比較并生成同步列表;步驟24,所述客戶端將所述同步列表中的數(shù)據(jù)傳輸至所述服務器端;所述25,所述服務器端返回狀態(tài)碼至所述客戶端;及所述26,所述客戶端對所述狀態(tài)碼進行判斷及處理。
3.根據(jù)權(quán)利要求
1或2所述的數(shù)據(jù)同步方法,其特征在于,所述電話本數(shù)據(jù)包括本地唯一標識、修改日期,所述日志列表包括本地唯一標識、修改日期。
4.根據(jù)權(quán)利要求
3所述的數(shù)據(jù)同步方法,其特征在于,所述步驟23中,還包括若所述日志列表中無所述電話本數(shù)據(jù)的本地唯一標識,則將該數(shù)據(jù)添加到所述添加列表、日志列表;若所述日志列表中有所述電話本數(shù)據(jù)的本地唯一標識,則比較所述修改日期;若所述電話本中無所述日志列表中的數(shù)據(jù),則將該數(shù)據(jù)添加到所述刪除列表,并刪除所述日志列表中相應的數(shù)據(jù)信息。
5.根據(jù)權(quán)利要求
4所述的數(shù)據(jù)同步方法,其特征在于,所述比較所述修改日期的步驟中,進一步包括若所述電話本中的修改日期早于所述日志列表中的修改日期,則將所述電話本中的修改日期添加到所述更新列表,并更新所述日志列表中的修改日期;若所述電話本中的修改日期與所述日志列表中的修改日期相同,則比較下一個電話本中的數(shù)據(jù)。
6.根據(jù)權(quán)利要求
2、4或5所述的數(shù)據(jù)同步方法,其特征在于,所述步驟21中,所述用戶通過用戶界面輸入同步啟動命令。
專利摘要
本發(fā)明公開了一種數(shù)據(jù)同步方法,應用于包含客戶端、服務器端的數(shù)據(jù)同步系統(tǒng),其特征在于,通過所述客戶端對所述服務器端返回的狀態(tài)碼進行判斷,并在所述狀態(tài)碼為成功狀態(tài)碼時刪除同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息,在所述狀態(tài)碼為失敗狀態(tài)碼時保留同步列表中所述狀態(tài)碼對應的數(shù)據(jù)的信息的方式實現(xiàn)數(shù)據(jù)同步。本發(fā)明提出的一種數(shù)據(jù)同步方法,實現(xiàn)了當上一次同步中服務器端返回更新失敗、刪除失敗、添加失敗的失敗狀態(tài)碼時,下一次同步時同時傳送上一次同步后的修改的數(shù)據(jù)和上一次同步中發(fā)生服務器端更新失敗、刪除失敗、添加失敗的對象,從而提高同步質(zhì)量。
文檔編號H04L29/06GK1996871SQ200610011104
公開日2007年7月11日 申請日期2006年1月5日
發(fā)明者金曙花 申請人:樂金電子(中國)研究開發(fā)中心有限公司導出引文BiBTeX, EndNote, RefMan