專(zhuān)利名稱(chēng):用于無(wú)線(xiàn)環(huán)境中的數(shù)據(jù)集同步的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
所揭示的方面涉及無(wú)線(xiàn)通信裝置,且更特定來(lái)說(shuō)涉及用于以無(wú)線(xiàn)方式同步存儲(chǔ)于無(wú)線(xiàn)通信裝置上的數(shù)據(jù)集和存儲(chǔ)于網(wǎng)絡(luò)位點(diǎn)處的對(duì)應(yīng)數(shù)據(jù)集的系統(tǒng)、方法和設(shè)備。
背景技術(shù):
同步是在兩個(gè)或兩個(gè)以上裝置之間同步單個(gè)文件(又稱(chēng)為數(shù)據(jù)集)的過(guò)程。所述過(guò)程是通過(guò)在裝置之間自動(dòng)來(lái)回復(fù)制改變,直到數(shù)據(jù)集在裝置之間大體上均等為止來(lái)實(shí)施的。 文件或數(shù)據(jù)集的同步在無(wú)線(xiàn)環(huán)境中變得較常見(jiàn)。舉例來(lái)說(shuō),用戶(hù)的存儲(chǔ)在無(wú)線(xiàn)裝置上的聯(lián)系列表可與其它無(wú)線(xiàn)裝置或與聯(lián)網(wǎng)的數(shù)據(jù)庫(kù)同步。在移動(dòng)到觸發(fā)數(shù)據(jù)交換的在線(xiàn)模式之前以離線(xiàn)模式使用應(yīng)用程序的實(shí)例中,數(shù)據(jù)集的同步尤其有利。示范性應(yīng)用程序包含電子郵件(email),其中用戶(hù)在離線(xiàn)模式期間輸入電子郵件,且隨后一旦裝置返回到在線(xiàn)模式,電子郵件便被發(fā)送到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。同步過(guò)程還實(shí)施于社區(qū)類(lèi)型的環(huán)境中,其中多個(gè)用戶(hù)通過(guò)共享的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)進(jìn)行交互。舉例來(lái)說(shuō),在無(wú)線(xiàn)環(huán)境中,允許用戶(hù)參與實(shí)時(shí)視頻游戲的游戲社區(qū)還提供了在中央網(wǎng)絡(luò)數(shù)據(jù)庫(kù)處存儲(chǔ)和共享游戲信息。此些社區(qū)活動(dòng)還傾向于在離線(xiàn)模式中使用,其中用戶(hù)可對(duì)用戶(hù)的本地存儲(chǔ)的數(shù)據(jù)庫(kù)做出改變,且當(dāng)用戶(hù)移動(dòng)到在線(xiàn)模式時(shí)所述改變被與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)同步。 在一種方法中,可通過(guò)將例如個(gè)人數(shù)據(jù)助理(PDA)等的無(wú)線(xiàn)裝置對(duì)接到具有到達(dá)個(gè)人計(jì)算機(jī)的串行連接的對(duì)接裝置來(lái)本地進(jìn)行同步。此類(lèi)型的同步要求無(wú)線(xiàn)裝置和計(jì)算機(jī)彼此緊密靠近。然而,功能較為強(qiáng)大的無(wú)線(xiàn)裝置的出現(xiàn)已使得可經(jīng)由無(wú)線(xiàn)網(wǎng)絡(luò)遠(yuǎn)程同步數(shù)據(jù)集。 數(shù)據(jù)的遠(yuǎn)程同步已經(jīng)由同步標(biāo)記語(yǔ)言(SyncML)實(shí)現(xiàn),其提供用于無(wú)線(xiàn)網(wǎng)絡(luò)的公用數(shù)據(jù)同步協(xié)議。SyncML依賴(lài)于可擴(kuò)展標(biāo)記語(yǔ)言(XML)作為在無(wú)線(xiàn)同步("sync")會(huì)話(huà)期間發(fā)生的所有SyncML通信的下伏載體協(xié)議。由此,在任意一個(gè)同步會(huì)話(huà)期間在無(wú)線(xiàn)裝置與網(wǎng)絡(luò)服務(wù)器之間發(fā)送多個(gè)消息。另外,每一消息的數(shù)據(jù)結(jié)構(gòu)較大,導(dǎo)致交換消息的高帶寬要求。因此,SyncML是相對(duì)復(fù)雜的同步過(guò)程,其必須交換多個(gè)消息、需要大量網(wǎng)絡(luò)帶寬,且要求相對(duì)長(zhǎng)的時(shí)間量來(lái)完成。與蜂窩式網(wǎng)絡(luò)的限制(例如,可能的信號(hào)損失、帶寬限制等)相聯(lián)系的SyncML過(guò)程的復(fù)雜性造成同步過(guò)程較不可靠。舉例來(lái)說(shuō),連接失敗或在同步過(guò)程期間丟失連接常常導(dǎo)致需要執(zhí)行完全同步過(guò)程。在完全同步過(guò)程期間,將整個(gè)數(shù)據(jù)集而不是僅將發(fā)生的改變傳送到無(wú)線(xiàn)裝置或網(wǎng)絡(luò)。
7
因此,存在開(kāi)發(fā)用于無(wú)線(xiàn)開(kāi)發(fā)(wireless development)的同步過(guò)程的需要,其與 當(dāng)前無(wú)線(xiàn)解決方案相比較不復(fù)雜、更有效率且更穩(wěn)健。
發(fā)明內(nèi)容
在此方面,可通過(guò)本發(fā)明方面實(shí)現(xiàn)簡(jiǎn)單性,與當(dāng)前無(wú)線(xiàn)同步過(guò)程相比,本發(fā)明方面 使用較少的網(wǎng)絡(luò)資源且要求較少的歷史數(shù)據(jù)。使用較少網(wǎng)絡(luò)資源可導(dǎo)致更有效率的同步過(guò) 程,因?yàn)橥瓿赏窖h(huán)的時(shí)間可減少。另外,所描述的同步過(guò)程允許無(wú)線(xiàn)網(wǎng)絡(luò)故障發(fā)生而不 一定需要服務(wù)器與無(wú)線(xiàn)裝置之間的數(shù)據(jù)集的完全同步。 特定來(lái)說(shuō),本發(fā)明方面提供了用于以無(wú)線(xiàn)方式同步存儲(chǔ)于無(wú)線(xiàn)裝置上和網(wǎng)絡(luò)裝置 (例如網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù))處的數(shù)據(jù)集的方法、裝置、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明方 面提供了簡(jiǎn)化且有效率的同步過(guò)程,借此可在無(wú)線(xiàn)裝置與網(wǎng)絡(luò)裝置之間的無(wú)線(xiàn)通信的單個(gè) 往返行程中完成同步。單個(gè)往返行程通信提供了網(wǎng)絡(luò)資源的較少使用、較短的總體同步循 環(huán)時(shí)間,且減少了造成同步過(guò)程失敗的例如呼叫丟失等的無(wú)線(xiàn)網(wǎng)絡(luò)故障的可能性。另外,通 過(guò)創(chuàng)建允許網(wǎng)絡(luò)數(shù)據(jù)集與無(wú)線(xiàn)裝置數(shù)據(jù)集無(wú)關(guān)(即,網(wǎng)絡(luò)服務(wù)器可能不要求完全的改變歷 史且網(wǎng)絡(luò)服務(wù)器可能不需要知道無(wú)線(xiàn)裝置數(shù)據(jù)集版本)的同步過(guò)程,進(jìn)一步實(shí)現(xiàn)了簡(jiǎn)化和 效率。本發(fā)明的方面還提供穩(wěn)健的同步過(guò)程,使得通信失敗允許重新應(yīng)用所述同步過(guò)程,而
不必實(shí)施數(shù)據(jù)集的完全同步。在此方面,本發(fā)明適合于同步在無(wú)線(xiàn)社區(qū)類(lèi)型環(huán)境(例如無(wú) 線(xiàn)游戲社區(qū)等)中或在提供離線(xiàn)模式使用的應(yīng)用程序(例如電子郵件、游戲等)中使用的 數(shù)據(jù)集。 在一個(gè)方面中,定義一種用于無(wú)線(xiàn)裝置上的數(shù)據(jù)集的同步的方法。所述方法包含 產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息;以無(wú)線(xiàn)方式將所述同步 請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置;以及響應(yīng)于所述同步請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式接收包 含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息。所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作 以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。在某些方面 中,所述方法可包含如果所述確認(rèn)消息中的所述網(wǎng)絡(luò)數(shù)據(jù)集版本號(hào)不同于所述當(dāng)前無(wú)線(xiàn)裝 置版本號(hào),那么將所述當(dāng)前無(wú)線(xiàn)裝置版本號(hào)改變?yōu)樗鼍W(wǎng)絡(luò)數(shù)據(jù)集版本號(hào)。另外,所述同步 確認(rèn)消息可包含同步狀態(tài)指示符和/或包含所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中的一個(gè)或一個(gè)以上經(jīng) 改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置改變列表,且因此所述方法可包含根據(jù)所述網(wǎng)絡(luò)裝置改變列表來(lái) 改變所述無(wú)線(xiàn)裝置數(shù)據(jù)集。 在方法的某些方面中,產(chǎn)生同步請(qǐng)求消息可進(jìn)一步包含檢驗(yàn)用于所述無(wú)線(xiàn)裝置 數(shù)據(jù)集中的每一數(shù)據(jù)項(xiàng)目的改變指示符的狀態(tài);基于用于所述數(shù)據(jù)項(xiàng)目中的一者或一者以 上的改變指示符指示改變而編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的無(wú)線(xiàn)裝置改變列 表;以及在所述同步請(qǐng)求消息中包含所述無(wú)線(xiàn)裝置改變列表。 在某些方面中,經(jīng)由例如JavaScript對(duì)象符號(hào)(JS0N)協(xié)議等的輕型數(shù)據(jù)交換載 體協(xié)議傳送所述同步請(qǐng)求消息和所述同步確認(rèn)消息。 在某些方面中,如果同步狀態(tài)指示符指示同步失敗,那么所述方法可進(jìn)一步包含 基于所述同步失敗指示符起始所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的完全同步。在其它方面 中,如果無(wú)線(xiàn)裝置未能在預(yù)定時(shí)間周期之后接收到同步確認(rèn)消息,那么可通過(guò)產(chǎn)生且傳送 同步請(qǐng)求消息來(lái)起始新的同步會(huì)話(huà)。
8
又一相關(guān)方面由至少一個(gè)處理器提供。所述處理器經(jīng)配置以包含第一模塊,其用 于產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息;第二模塊,其用于 以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置;以及第三模塊,其用于響應(yīng)于所述同步 請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息。所述 同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間 的通信的單個(gè)往返行程的同步。 另一相關(guān)方面由一種包含計(jì)算機(jī)可讀媒體的計(jì)算機(jī)程序產(chǎn)品定義。所述媒體包
含用于致使計(jì)算機(jī)產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息的
至少一個(gè)指令;用于致使所述計(jì)算機(jī)以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置的至 少一個(gè)指令;以及用于致使所述計(jì)算機(jī)響應(yīng)于所述同步請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式
接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息的至少一個(gè)指令。所述同步請(qǐng)求消息和所 述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返 行程的同步。
又一相關(guān)方面由一種設(shè)備定義。所述設(shè)備包含用于產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)
集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息的裝置;用于以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送
到網(wǎng)絡(luò)裝置的裝置;以及用于響應(yīng)于所述同步請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式接收包含
網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息的裝置。所述同步請(qǐng)求消息和所述同步確認(rèn)消息可
操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
又一方面由一種無(wú)線(xiàn)通信裝置提供。所述裝置包含計(jì)算機(jī)平臺(tái),其包含一存儲(chǔ)器
和至少一個(gè)處理器;數(shù)據(jù)集,其存儲(chǔ)在所述存儲(chǔ)器中且包含多個(gè)數(shù)據(jù)項(xiàng)目;以及同步模塊,
其存儲(chǔ)在所述存儲(chǔ)器中且可由所述至少一個(gè)處理器執(zhí)行。所述同步模塊可操作以產(chǎn)生包含
當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)所述數(shù)據(jù)集的同步請(qǐng)求消息,將所述同步請(qǐng)求消息傳送
到網(wǎng)絡(luò)裝置,且響應(yīng)于所述同步請(qǐng)求消息的所述傳送而接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的
同步確認(rèn)消息。所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與
所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。所述同步模塊可進(jìn)一步可操作以如果所
述確認(rèn)消息中的所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)不同于所述當(dāng)前無(wú)線(xiàn)裝置版本號(hào),那么將所述
當(dāng)前無(wú)線(xiàn)裝置版本號(hào)改變?yōu)樗鼍W(wǎng)絡(luò)數(shù)據(jù)集版本號(hào)。所述同步模塊可進(jìn)一步可操作以接收
同步確認(rèn)消息,所述同步確認(rèn)消息包含同步狀態(tài)指示符和/或包含所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中
的一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置改變列表,且所述設(shè)備可操作以根據(jù)所述網(wǎng)
絡(luò)裝置改變列表來(lái)改變所述無(wú)線(xiàn)裝置數(shù)據(jù)集。 在替代方面中,所述同步模塊進(jìn)一步可操作以檢驗(yàn)用于所述無(wú)線(xiàn)裝置數(shù)據(jù)集中的 每一數(shù)據(jù)項(xiàng)目的改變指示符的狀態(tài),基于狀態(tài)改變指示符而編譯包含一個(gè)或一個(gè)以上經(jīng)改 變數(shù)據(jù)項(xiàng)目的無(wú)線(xiàn)裝置改變列表,以及在所述同步請(qǐng)求消息中包含所述無(wú)線(xiàn)裝置改變列 表。 在所述無(wú)線(xiàn)裝置的某些方面中,經(jīng)由例如JavaScript對(duì)象符號(hào)(JS0N)協(xié)議等的 輕型數(shù)據(jù)交換載體協(xié)議傳送所述同步請(qǐng)求消息和所述同步確認(rèn)消息。 在所述無(wú)線(xiàn)裝置的某些方面中,所述同步模塊進(jìn)一步可操作以接收包含同步失敗 指示符的同步確認(rèn)消息,且進(jìn)一步可操作以起始無(wú)線(xiàn)裝置與網(wǎng)絡(luò)裝置之間的完全同步。
又一方面由一種用于網(wǎng)絡(luò)裝置上的數(shù)據(jù)集的同步的方法提供。所述方法包含在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息;將所述無(wú)線(xiàn)裝置 數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較;如果所述比較指示所述無(wú)線(xiàn)裝置數(shù) 據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù) 項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表;產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯 網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息;以及以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息。所述 同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通 信的單個(gè)往返行程的同步。 在所述方法的某些方面中,接收同步請(qǐng)求消息可進(jìn)一步包含接收包含無(wú)線(xiàn)裝置數(shù) 據(jù)集改變列表的同步請(qǐng)求消息,所述無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表包含一個(gè)或一個(gè)以上經(jīng)改變 數(shù)據(jù)項(xiàng)目,以及在所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中改變所述無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表中包含的所述 經(jīng)改變數(shù)據(jù)項(xiàng)目。在所述方法的某些方面中,對(duì)所述網(wǎng)絡(luò)裝置數(shù)據(jù)集做出改變可包含為在 所述無(wú)線(xiàn)裝置數(shù)據(jù)集上已刪除的數(shù)據(jù)項(xiàng)目提供刪除指示符而不從所述網(wǎng)絡(luò)裝置數(shù)據(jù)集刪 除所述數(shù)據(jù)項(xiàng)目。 所述方法的某些方面可進(jìn)一步包含基于所述數(shù)據(jù)項(xiàng)目中的改變而更新數(shù)據(jù)項(xiàng)目 版本號(hào),以及更新所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)以反映最高定序的經(jīng)改變數(shù)據(jù)項(xiàng)目的版本 號(hào)。在此些方面中,產(chǎn)生同步確認(rèn)消息可包含產(chǎn)生包含所述經(jīng)更新網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào) 和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息。 在所述方法的某些方面中,經(jīng)由例如JavaScript對(duì)象符號(hào)(JS0N)協(xié)議等的輕型 數(shù)據(jù)交換載體協(xié)議傳送所述同步請(qǐng)求消息和所述同步確認(rèn)消息。 又一方面由至少一種處理器提供。所述處理器包含第一模塊,其用于在網(wǎng)絡(luò)裝置
處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息;第二模塊,其用于將所述
無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較;第三模塊,其用于如果所
述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么編譯包含
一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表;第四模塊,其用于產(chǎn)生包含
所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息;
以及第五模塊,其用于以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息。所述同步請(qǐng)求消息和所述同步
確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。 另一相關(guān)方面由一種包含計(jì)算機(jī)可讀媒體的計(jì)算機(jī)程序產(chǎn)品定義。所述媒體包
含用于致使計(jì)算機(jī)在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求
消息的至少一個(gè)指令;用于致使所述計(jì)算機(jī)將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置
數(shù)據(jù)集版本號(hào)進(jìn)行比較的至少一個(gè)指令;以及用于致使所述計(jì)算機(jī)如果所述比較指示所述
無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上
經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的至少一個(gè)指令。所述媒體還包含用于致使
所述計(jì)算機(jī)產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變
列表的同步確認(rèn)消息的至少一個(gè)指令;以及用于致使所述計(jì)算機(jī)以無(wú)線(xiàn)方式傳送所述同步
確認(rèn)消息的至少一個(gè)指令。所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)
裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。 又一方面由一種設(shè)備提供。所述設(shè)備包含用于在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包 含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息的裝置;用于將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)
10前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較的裝置;以及用于如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)
集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)
目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的裝置。所述設(shè)備另外包含用于產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝
置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息的裝置;以及用于
以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息的裝置。所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作
以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
—方面還由一種網(wǎng)絡(luò)裝置提供。所述網(wǎng)絡(luò)裝置包含計(jì)算機(jī)平臺(tái),其包含一存儲(chǔ)器
和至少一個(gè)處理器;數(shù)據(jù)集,其存儲(chǔ)在所述存儲(chǔ)器中且包含多個(gè)數(shù)據(jù)項(xiàng)目;以及同步模塊,
其存儲(chǔ)在所述存儲(chǔ)器中且可由所述至少一個(gè)處理器執(zhí)行。所述同步模塊可操作以接收包
含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息,將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置
數(shù)據(jù)集版本號(hào)進(jìn)行比較,如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝
置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列
表,產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同
步確認(rèn)消息,以及以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息。所述同步請(qǐng)求消息和所述同步確認(rèn)
消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。 因此,本發(fā)明方面中的一者或一者以上提供了以無(wú)線(xiàn)方式同步存儲(chǔ)于無(wú)線(xiàn)裝置上
和網(wǎng)絡(luò)裝置(例如網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù))處的數(shù)據(jù)集。如所描述,本發(fā)明方面提供了簡(jiǎn)化
且有效率的同步過(guò)程,借此可在無(wú)線(xiàn)裝置與網(wǎng)絡(luò)裝置之間的無(wú)線(xiàn)通信的單個(gè)往返行程中完
成同步。單個(gè)往返行程通信提供了網(wǎng)絡(luò)資源的較少使用、較短的總體同步循環(huán)時(shí)間,且減少
了造成同步過(guò)程失敗的例如呼叫丟失等的無(wú)線(xiàn)網(wǎng)絡(luò)故障的可能性。另外,通過(guò)創(chuàng)建允許網(wǎng)
絡(luò)數(shù)據(jù)集與無(wú)線(xiàn)裝置數(shù)據(jù)集無(wú)關(guān)(即,網(wǎng)絡(luò)服務(wù)器不要求完全的改變歷史且網(wǎng)絡(luò)服務(wù)器不需
要知道無(wú)線(xiàn)裝置數(shù)據(jù)集版本)的同步過(guò)程來(lái)進(jìn)一步實(shí)現(xiàn)簡(jiǎn)化和效率。本發(fā)明的方面還提供穩(wěn)
健的同步過(guò)程,使得通信失敗允許重新應(yīng)用所述同步過(guò)程,而不必實(shí)施數(shù)據(jù)集的完全同步。
圖1是根據(jù)一方面的用于存儲(chǔ)于一個(gè)或一個(gè)以上無(wú)線(xiàn)裝置上的數(shù)據(jù)集與存儲(chǔ)于
網(wǎng)絡(luò)裝置處的對(duì)應(yīng)數(shù)據(jù)集的無(wú)線(xiàn)同步的系統(tǒng)的方框圖; 圖2是根據(jù)一方面的用于同步的無(wú)線(xiàn)裝置數(shù)據(jù)集的方框圖; 圖3是根據(jù)一方面的用于同步的網(wǎng)絡(luò)裝置數(shù)據(jù)集的方框圖; 圖4是根據(jù)一方面的經(jīng)配置以用于數(shù)據(jù)集同步的無(wú)線(xiàn)通信裝置的方框圖; 圖5是根據(jù)一方面的經(jīng)配置以用于數(shù)據(jù)集同步的網(wǎng)絡(luò)裝置的方框圖; 圖6是根據(jù)一方面的無(wú)線(xiàn)通信網(wǎng)絡(luò)的方框圖; 圖7是根據(jù)一方面的數(shù)據(jù)集同步的實(shí)例; 圖8是根據(jù)另一方面的數(shù)據(jù)集同步的另一實(shí)例; 圖9是根據(jù)一方面的用于無(wú)線(xiàn)通信裝置上的數(shù)據(jù)集同步的方法的流程圖;以及
圖10是根據(jù)一方面的用于網(wǎng)絡(luò)裝置上的數(shù)據(jù)集同步的方法的流程圖。
具體實(shí)施例方式
下文現(xiàn)在將參看附圖更完全地描述本發(fā)明的裝置、設(shè)備、方法、計(jì)算機(jī)可讀媒體和
11處理器,附圖中展示本發(fā)明的方面。然而,所述裝置、設(shè)備、方法、計(jì)算機(jī)可讀媒體和處理器 可以許多不同形式實(shí)施,且不應(yīng)解釋為限于本文陳述的方面,而是,提供這些方面以使得本 發(fā)明將為詳盡且完整的,且將本發(fā)明的范圍完全傳達(dá)給所屬領(lǐng)域的技術(shù)人員。相同標(biāo)號(hào)始 終表示相同元件。 如本文使用,詞語(yǔ)"示范性"意味著"用作實(shí)例、例子或說(shuō)明"。本文描述為"示范 性"的任何方面均不一定解釋為比其它方面優(yōu)選或有利。 本文描述的一個(gè)或一個(gè)以上方面是結(jié)合無(wú)線(xiàn)通信裝置。無(wú)線(xiàn)通信裝置也可稱(chēng)為訂 戶(hù)臺(tái)、訂戶(hù)單元、移動(dòng)臺(tái)、移動(dòng)裝置、遠(yuǎn)程臺(tái)、接入點(diǎn)、遠(yuǎn)程終端、接入終端、用戶(hù)終端、用戶(hù)代 理、用戶(hù)裝置或用戶(hù)設(shè)備。訂戶(hù)臺(tái)可為蜂窩式電話(huà)、無(wú)繩電話(huà)、會(huì)話(huà)起始協(xié)議(SIP)電話(huà)、無(wú) 線(xiàn)本地回路(WLL)臺(tái)、個(gè)人數(shù)字助理(PDA)、具有無(wú)線(xiàn)連接能力的手持式裝置,或連接到無(wú) 線(xiàn)調(diào)制解調(diào)器的其它處理裝置。 本發(fā)明方面中的一者或一者以上提供用于以無(wú)線(xiàn)方式同步存儲(chǔ)于無(wú)線(xiàn)裝置上和 網(wǎng)絡(luò)裝置(例如網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù))處的數(shù)據(jù)集的方法、系統(tǒng)、設(shè)備和計(jì)算機(jī)程序產(chǎn)品。 本發(fā)明方面中的一者或一者以上提供了簡(jiǎn)化且有效率的同步過(guò)程,借此可在無(wú)線(xiàn)裝置與網(wǎng) 絡(luò)裝置之間的無(wú)線(xiàn)通信的單個(gè)往返行程中完成同步。另外,通過(guò)創(chuàng)建允許網(wǎng)絡(luò)數(shù)據(jù)集與無(wú) 線(xiàn)裝置數(shù)據(jù)集無(wú)關(guān)(即,網(wǎng)絡(luò)服務(wù)器可能不要求完全的改變歷史且網(wǎng)絡(luò)服務(wù)器可能不需要 知道或跟蹤每一無(wú)線(xiàn)裝置的無(wú)線(xiàn)裝置數(shù)據(jù)集版本)的同步過(guò)程來(lái)進(jìn)一步實(shí)現(xiàn)簡(jiǎn)化和效率。 本發(fā)明的方面還提供穩(wěn)健的同步過(guò)程,使得通信失敗允許重新應(yīng)用所述同步過(guò)程,而不必 實(shí)施數(shù)據(jù)集的完全同步。在此方面,本發(fā)明方面中的一者或一者以上適合于同步在無(wú)線(xiàn)社 區(qū)類(lèi)型環(huán)境(例如無(wú)線(xiàn)游戲社區(qū)等)中或在提供離線(xiàn)模式使用的應(yīng)用程序(例如電子郵 件、游戲等)中使用的數(shù)據(jù)集。 參看圖l,根據(jù)本發(fā)明方面提供用于無(wú)線(xiàn)數(shù)據(jù)集同步的系統(tǒng)的方框圖描繪。系統(tǒng) IO包含一個(gè)或一個(gè)以上無(wú)線(xiàn)裝置12和一網(wǎng)絡(luò)裝置14,例如具有對(duì)應(yīng)數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)服務(wù)器, 無(wú)線(xiàn)裝置12和網(wǎng)絡(luò)裝置14經(jīng)由無(wú)線(xiàn)網(wǎng)絡(luò)16無(wú)線(xiàn)通信。無(wú)線(xiàn)裝置12中的一者或一者以上 和網(wǎng)絡(luò)裝置14將存儲(chǔ)需要同步的數(shù)據(jù)集18和48。在一些方面中,例如在無(wú)線(xiàn)社區(qū)類(lèi)型環(huán) 境中,網(wǎng)絡(luò)裝置14可起初將網(wǎng)絡(luò)裝置數(shù)據(jù)集48分布到一個(gè)或一個(gè)以上無(wú)線(xiàn)裝置12,所述無(wú) 線(xiàn)裝置12存儲(chǔ)所接收的數(shù)據(jù)集作為無(wú)線(xiàn)裝置數(shù)據(jù)集18。隨著時(shí)間過(guò)去,網(wǎng)絡(luò)服務(wù)器14和 一個(gè)或一個(gè)以上無(wú)線(xiàn)裝置12中的任一者或兩者可更新其相應(yīng)的數(shù)據(jù)集48和18。由此,系 統(tǒng)10提供允許一個(gè)或一個(gè)以上無(wú)線(xiàn)裝置12和網(wǎng)絡(luò)裝置14經(jīng)由無(wú)線(xiàn)通信同步其相應(yīng)數(shù)據(jù) 集18和48的設(shè)備和方法。 無(wú)線(xiàn)裝置12包含計(jì)算機(jī)平臺(tái)20,其具有處理器22和存儲(chǔ)器24。無(wú)線(xiàn)裝置12的 存儲(chǔ)器24包含同步模塊26,其可操作以同步數(shù)據(jù)集18和48。同步模塊26可依賴(lài)于輕型 數(shù)據(jù)交換協(xié)議作為載體協(xié)議,以便將同步過(guò)程限于無(wú)線(xiàn)裝置12與網(wǎng)絡(luò)裝置14之間的無(wú)線(xiàn) 通信的單個(gè)往返行程。輕型數(shù)據(jù)交換協(xié)議可在特征上基于兩個(gè)結(jié)構(gòu)、一名稱(chēng)/配對(duì)值集合 以及一有序值列表而建置。名稱(chēng)/值對(duì)可包含對(duì)象、記錄、結(jié)構(gòu)、字典、散列表、有鍵列表、關(guān) 聯(lián)數(shù)組等。有序值列表可包含數(shù)組、向量、列表、序列或列表。輕型數(shù)據(jù)交換協(xié)議的一個(gè)實(shí) 例是JavaScript 對(duì)象符號(hào)(JS0N)。在JS0N中,對(duì)象是無(wú)序的一組名稱(chēng)/值對(duì),數(shù)組是有 序的值集合,且值可為字符串、數(shù)字、真/假/空指示符、對(duì)象或數(shù)組。不同于其它數(shù)據(jù)交換 協(xié)議,JSON支持?jǐn)?shù)組,且由此需要較簡(jiǎn)單的語(yǔ)法和較少的標(biāo)記。JSON的規(guī)則且簡(jiǎn)單的語(yǔ)法
12結(jié)構(gòu)與內(nèi)建的數(shù)值和數(shù)組支持相結(jié)合提供了在更簡(jiǎn)單的分析、更接近的數(shù)據(jù)結(jié)構(gòu)表示以及 更小大小的消息方面優(yōu)于其它數(shù)據(jù)交換協(xié)議的更好優(yōu)點(diǎn)。 同步模塊26可操作以產(chǎn)生同步請(qǐng)求消息30,其傳輸?shù)骄W(wǎng)絡(luò)裝置14且操作以請(qǐng)求 與網(wǎng)絡(luò)裝置14的數(shù)據(jù)集同步。同步請(qǐng)求消息30形成單個(gè)往返行程同步過(guò)程的第一分支。 在一些方面中,同步模塊26可進(jìn)一步編譯無(wú)線(xiàn)裝置改變列表28,其指示從先前同步過(guò)程以 來(lái)對(duì)數(shù)據(jù)集18做出的改變。改變可包含對(duì)數(shù)據(jù)集18的添加、插入和/或刪除。同步模塊 26還可操作以用于例如在同步請(qǐng)求消息30中將無(wú)線(xiàn)裝置改變列表28傳送到網(wǎng)絡(luò)裝置14。 同步模塊26還可操作以接收同步確認(rèn)消息32,其形成單個(gè)往返行程同步過(guò)程的第二分支。 同步確認(rèn)消息32用以檢驗(yàn)同步過(guò)程的完成。此外,同步確認(rèn)消息32可包含網(wǎng)絡(luò)裝置改變 列表34,其指示自從先前同步過(guò)程以來(lái)對(duì)對(duì)應(yīng)網(wǎng)絡(luò)數(shù)據(jù)集48做出的改變。因此,系統(tǒng)10有 利地提供經(jīng)由同步請(qǐng)求消息30和同步確認(rèn)消息32在單個(gè)往返行程中無(wú)線(xiàn)裝置數(shù)據(jù)集18 與網(wǎng)絡(luò)裝置數(shù)據(jù)集48之間的同步。 無(wú)線(xiàn)裝置數(shù)據(jù)集18將在特征上具有版本號(hào)19,其指示對(duì)應(yīng)于來(lái)自與網(wǎng)絡(luò)數(shù)據(jù)庫(kù) 的上次同步的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)版本的數(shù)據(jù)集版本。此外,每一無(wú)線(xiàn)裝置數(shù)據(jù)集18將包含一個(gè)或 多個(gè)數(shù)據(jù)項(xiàng)目36。數(shù)據(jù)項(xiàng)目36可包含一個(gè)或一個(gè)以上數(shù)據(jù)字段38。應(yīng)注意,雖然說(shuō)明的 數(shù)據(jù)項(xiàng)目36包含不同數(shù)目的數(shù)據(jù)字段,但任何數(shù)據(jù)項(xiàng)目36可能包含任何數(shù)目的數(shù)據(jù)字段 38。根據(jù)一些方面,對(duì)數(shù)據(jù)集做出的改變反映在數(shù)據(jù)項(xiàng)目36方面而非數(shù)據(jù)字段38方面,例 如,如果相應(yīng)數(shù)據(jù)項(xiàng)目的任何字段改變,那么將相應(yīng)數(shù)據(jù)項(xiàng)目視為被改變。因此,為了提供 具有冪等性質(zhì)的同步過(guò)程(其意味著對(duì)無(wú)線(xiàn)裝置數(shù)據(jù)集的改變導(dǎo)致對(duì)網(wǎng)絡(luò)數(shù)據(jù)集和/或另 一無(wú)線(xiàn)裝置數(shù)據(jù)集的相同改變),無(wú)線(xiàn)裝置改變列表28包含關(guān)于數(shù)據(jù)項(xiàng)目的改變。因此,無(wú) 線(xiàn)裝置改變列表28包含所有正被添加或刪除,或已被添加、刪除或改變對(duì)應(yīng)數(shù)據(jù)字段的任 何數(shù)據(jù)項(xiàng)目。 網(wǎng)絡(luò)裝置14包含計(jì)算機(jī)平臺(tái)40,其具有處理器42和存儲(chǔ)器44。網(wǎng)絡(luò)裝置14的 存儲(chǔ)器44包含同步模塊46,其可操作以同步網(wǎng)絡(luò)裝置數(shù)據(jù)集48和一個(gè)或一個(gè)以上無(wú)線(xiàn)裝 置數(shù)據(jù)集18。類(lèi)似于無(wú)線(xiàn)裝置12上的同步模塊26,同步模塊46可利用相同的輕型數(shù)據(jù)交 換協(xié)議作為載體協(xié)議,以便減小帶寬且允許同步過(guò)程在無(wú)線(xiàn)裝置12與網(wǎng)絡(luò)裝置14之間的 無(wú)線(xiàn)通信的單個(gè)往返行程中發(fā)生。 同步模塊46可操作以接收同步請(qǐng)求消息30且在請(qǐng)求消息30中實(shí)施任何無(wú)線(xiàn)裝 置改變列表28。同步模塊46還可操作以編譯網(wǎng)絡(luò)改變列表34,其指示自從相應(yīng)無(wú)線(xiàn)裝置 12采取的先前同步過(guò)程以來(lái)對(duì)網(wǎng)絡(luò)數(shù)據(jù)集48做出的改變。換句話(huà)說(shuō),網(wǎng)絡(luò)裝置改變列表 34包括基于所接收無(wú)線(xiàn)裝置數(shù)據(jù)集版本19與網(wǎng)絡(luò)數(shù)據(jù)集版本50之間的差異的網(wǎng)絡(luò)數(shù)據(jù)集 48中的"增量"或凈改變。同步模塊46另外可操作以用于在同步確認(rèn)消息32中將網(wǎng)絡(luò)裝 置改變列表34傳送到請(qǐng)求的無(wú)線(xiàn)裝置12。 根據(jù)本發(fā)明方面,網(wǎng)絡(luò)數(shù)據(jù)集48將在如何指示改變方面不同于對(duì)應(yīng)的無(wú)線(xiàn)裝置 數(shù)據(jù)集18。網(wǎng)絡(luò)數(shù)據(jù)集48將在特征上具有版本號(hào)50,其指示網(wǎng)絡(luò)數(shù)據(jù)集版本。每一數(shù)據(jù) 集48將包含一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)目52。類(lèi)似于形成無(wú)線(xiàn)裝置數(shù)據(jù)集18的數(shù)據(jù)項(xiàng)目36,每一 數(shù)據(jù)項(xiàng)目52可包含一個(gè)或一個(gè)以上數(shù)據(jù)字段54。根據(jù)本發(fā)明方面,對(duì)網(wǎng)絡(luò)數(shù)據(jù)集48做出 的改變反映在數(shù)據(jù)項(xiàng)目32方面,其指示對(duì)一個(gè)或一個(gè)以上數(shù)據(jù)字段54的改變。
網(wǎng)絡(luò)數(shù)據(jù)集48中的每一數(shù)據(jù)項(xiàng)目50將具有對(duì)應(yīng)的版本號(hào)56,其指示當(dāng)前數(shù)據(jù)項(xiàng)
13目版本。在一個(gè)方面中,數(shù)據(jù)項(xiàng)目版本號(hào)56在所有數(shù)據(jù)項(xiàng)目上是唯一的,且是基于對(duì)相應(yīng) 數(shù)據(jù)項(xiàng)目做出的改變而更新。舉例來(lái)說(shuō),在某些方面中,網(wǎng)絡(luò)數(shù)據(jù)集版本號(hào)50反映最高編 號(hào)的數(shù)據(jù)項(xiàng)目版本號(hào)56。由此,在一個(gè)方面中,當(dāng)網(wǎng)絡(luò)裝置14接收到指示當(dāng)前無(wú)線(xiàn)裝置數(shù) 據(jù)集版本號(hào)19的同步請(qǐng)求消息30時(shí),且在執(zhí)行任何無(wú)線(xiàn)裝置改變列表28之后,同步模塊 46將網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50與無(wú)線(xiàn)裝置版本號(hào)19進(jìn)行比較,且編譯網(wǎng)絡(luò)裝置改變列表 34,所述網(wǎng)絡(luò)裝置改變列表34包含具有大于無(wú)線(xiàn)裝置版本號(hào)19(即,當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集 版本號(hào)19與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50之間的增量)的版本號(hào)56的數(shù)據(jù)項(xiàng)目52。在 一個(gè)方面中,為了在執(zhí)行無(wú)線(xiàn)裝置改變列表28之后僅向相應(yīng)無(wú)線(xiàn)裝置12提供凈改變,進(jìn)而 進(jìn)一步減小消息的大小,網(wǎng)絡(luò)裝置改變列表34中將不包含任何具有在基于無(wú)線(xiàn)裝置改變 列表28的增量?jī)?nèi)的版本56的數(shù)據(jù)項(xiàng)目52。在此情況下,相應(yīng)無(wú)線(xiàn)裝置12已在無(wú)線(xiàn)裝置的 無(wú)線(xiàn)裝置數(shù)據(jù)集18中具有相應(yīng)數(shù)據(jù)項(xiàng)目的最新值。下文將論述對(duì)數(shù)據(jù)項(xiàng)目版本號(hào)56以及 其如何用以編譯網(wǎng)絡(luò)裝置改變列表34的進(jìn)一步解釋。 圖2是根據(jù)本發(fā)明方面的無(wú)線(xiàn)裝置數(shù)據(jù)集18的方框圖表示。數(shù)據(jù)集18包含指示 數(shù)據(jù)集id/名稱(chēng)的數(shù)據(jù)集識(shí)別符70和指示當(dāng)前數(shù)據(jù)集版本號(hào)的數(shù)據(jù)集版本號(hào)19。數(shù)據(jù)集 版本號(hào)19可在同步過(guò)程的成功完成后更新。數(shù)據(jù)集18還包含一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)目36,其 各自具有一個(gè)或一個(gè)以上數(shù)據(jù)字段38。如先前所述,對(duì)數(shù)據(jù)集的改變可反映在數(shù)據(jù)項(xiàng)目36 方面而非反映在數(shù)據(jù)字段38方面。因此,為了確保同步過(guò)程的冪等性質(zhì)(其意味著對(duì)無(wú)線(xiàn) 裝置數(shù)據(jù)集的改變導(dǎo)致對(duì)網(wǎng)絡(luò)數(shù)據(jù)集和/或另一無(wú)線(xiàn)裝置數(shù)據(jù)集的相同改變),無(wú)線(xiàn)裝置 改變列表包含呈數(shù)據(jù)項(xiàng)目形式的改變。數(shù)據(jù)集18還包含用于每一數(shù)據(jù)項(xiàng)目的改變指示符 72,其指示自從先前同步過(guò)程以來(lái)數(shù)據(jù)項(xiàng)目中是否已發(fā)生改變。在一個(gè)方面中,改變指示符 字段72可包括用以指示對(duì)數(shù)據(jù)項(xiàng)目的改變的修改位(dirty bit)。修改位提供了基于更改 或改變對(duì)數(shù)據(jù)項(xiàng)目進(jìn)行標(biāo)記或加旗標(biāo)。 舉例來(lái)說(shuō),在一個(gè)方面中,如果相關(guān)聯(lián)數(shù)據(jù)項(xiàng)目自從先前同步過(guò)程以來(lái)未經(jīng)歷任 何改變,那么改變指示符72可具有"0"值。此外,如果相關(guān)聯(lián)數(shù)據(jù)項(xiàng)目已經(jīng)更新(例如,對(duì) 數(shù)據(jù)項(xiàng)目的插入、刪除或改變)或如果相應(yīng)數(shù)據(jù)項(xiàng)目是新添加的數(shù)據(jù)項(xiàng)目,那么改變指示 符72可具有"l"值。另外,如果相應(yīng)數(shù)據(jù)項(xiàng)目已經(jīng)刪除,那么改變指示符72可具有"2"值。 改變指示符是在編譯無(wú)線(xiàn)裝置改變列表28(如圖1所示)時(shí)使用。如果改變指示符72指 示改變,例如,如果指示符被設(shè)定為"1"或"2",那么無(wú)線(xiàn)裝置改變列表28中將包含對(duì)應(yīng)的 數(shù)據(jù)項(xiàng)目。 一旦同步過(guò)程成功完成,那么將所有改變指示符復(fù)位以指示沒(méi)有進(jìn)行任何改變, 例如復(fù)位到"0"。 根據(jù)一個(gè)方面,可能必須經(jīng)由改變指示符72在已經(jīng)更新或添加的數(shù)據(jù)項(xiàng)目(例 如,具有設(shè)定為"l"的改變指示符的數(shù)據(jù)項(xiàng)目)與已經(jīng)刪除的數(shù)據(jù)項(xiàng)目(例如,具有設(shè)定為 "2"的改變指示符的數(shù)據(jù)項(xiàng)目)之間進(jìn)行區(qū)分。這是因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)集處理數(shù)據(jù)項(xiàng)目的刪除 的方式不同于處理對(duì)數(shù)據(jù)項(xiàng)目的改變或添加的方式,且因此,需要經(jīng)由改變列表28向網(wǎng)絡(luò) 通知數(shù)據(jù)項(xiàng)目是否已經(jīng)刪除。 圖3是根據(jù)本發(fā)明方面的網(wǎng)絡(luò)裝置數(shù)據(jù)集48的方框圖表示。網(wǎng)絡(luò)裝置數(shù)據(jù)集48 包含指示數(shù)據(jù)集id/名稱(chēng)的網(wǎng)絡(luò)裝置數(shù)據(jù)集識(shí)別符80和指示當(dāng)前數(shù)據(jù)集版本號(hào)的數(shù)據(jù)集 版本號(hào)50。網(wǎng)絡(luò)裝置數(shù)據(jù)集48還包含多個(gè)數(shù)據(jù)項(xiàng)目52,其各自具有一個(gè)或一個(gè)以上數(shù)據(jù) 字段54。每一數(shù)據(jù)項(xiàng)目具有對(duì)應(yīng)的數(shù)據(jù)項(xiàng)目版本號(hào)56。
反映指派給數(shù)據(jù)項(xiàng)目52的最高版本號(hào)56的數(shù)據(jù)集版本號(hào)50可在實(shí)施無(wú)線(xiàn)裝置 改變列表28(圖1所示)時(shí)(其修正已經(jīng)改變的數(shù)據(jù)項(xiàng)目的版本號(hào)56)更新。舉例來(lái)說(shuō), 如果無(wú)線(xiàn)裝置改變列表28包含對(duì)三個(gè)數(shù)據(jù)項(xiàng)目的改變,且當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50 為"16",那么對(duì)改變的實(shí)施將導(dǎo)致三個(gè)數(shù)據(jù)項(xiàng)目52將分別被指派"17"、" 18"和"19"的數(shù) 據(jù)項(xiàng)目版本號(hào)56,且網(wǎng)絡(luò)數(shù)據(jù)集版本號(hào)將被更新為"19"(即,指派給網(wǎng)絡(luò)裝置數(shù)據(jù)集48內(nèi) 的數(shù)據(jù)項(xiàng)目52的最高版本號(hào)56)。 網(wǎng)絡(luò)裝置數(shù)據(jù)集48還可包含刪除指示符82,其在一個(gè)實(shí)例中稱(chēng)為墓碑 (tombstone)。墓碑指示符82將經(jīng)設(shè)定以指示相關(guān)聯(lián)數(shù)據(jù)項(xiàng)目52已經(jīng)從數(shù)據(jù)集刪除。然 而,經(jīng)刪除數(shù)據(jù)項(xiàng)目52將通常被維持在數(shù)據(jù)集48中至少歷時(shí)預(yù)定時(shí)間周期,以用于提供在 網(wǎng)絡(luò)裝置處重新創(chuàng)建數(shù)據(jù)集的先前版本(如果應(yīng)用程序規(guī)定此情況)的手段。另外,通過(guò) 提供指示數(shù)據(jù)項(xiàng)目52已經(jīng)刪除的墓碑82,對(duì)更新或以另外方式改變帶墓碑的數(shù)據(jù)項(xiàng)目52 的后續(xù)嘗試被忽略。 參看圖4,根據(jù)一個(gè)方面,描繪無(wú)線(xiàn)裝置12的詳細(xì)方框圖表示。無(wú)線(xiàn)裝置12可包 含任何類(lèi)型的計(jì)算機(jī)化通信裝置,例如蜂窩式電話(huà)、個(gè)人數(shù)字助理(PDA)、雙向文本尋呼機(jī)、 便攜式計(jì)算機(jī),以及甚至單獨(dú)的計(jì)算機(jī)平臺(tái),其具有無(wú)線(xiàn)通信入口且還可能具有到達(dá)網(wǎng)絡(luò) 或因特網(wǎng)的有線(xiàn)連接。無(wú)線(xiàn)通信裝置可為遠(yuǎn)程從屬裝置,或不具有其最終用戶(hù)而是僅在無(wú) 線(xiàn)網(wǎng)絡(luò)上傳送數(shù)據(jù)的其它裝置,例如遠(yuǎn)程傳感器、診斷工具、數(shù)據(jù)中繼器等。用于數(shù)據(jù)集同 步的本發(fā)明設(shè)備和方法可因此對(duì)任何形式的包含無(wú)線(xiàn)通信入口的無(wú)線(xiàn)通信裝置或無(wú)線(xiàn)計(jì) 算機(jī)模塊執(zhí)行,包含但不限于無(wú)線(xiàn)調(diào)制解調(diào)器、PCMCIA卡、接入終端、桌上型計(jì)算機(jī)或其任 何組合或子組合。 無(wú)線(xiàn)裝置12包含計(jì)算機(jī)平臺(tái)20,其可在無(wú)線(xiàn)網(wǎng)絡(luò)上傳輸數(shù)據(jù),且可接收并執(zhí)行例 行程序和應(yīng)用程序。計(jì)算機(jī)平臺(tái)20包含存儲(chǔ)器24,存儲(chǔ)器24可包括易失性和非易失性存 儲(chǔ)器,例如只讀和/或隨機(jī)存取存儲(chǔ)器(RAM和ROM) 、 EPR0M、 EEPR0M、快閃卡或計(jì)算機(jī)平臺(tái) 中常見(jiàn)的任何存儲(chǔ)器。此外,存儲(chǔ)器24可包含一個(gè)或一個(gè)以上快閃存儲(chǔ)器單元,或可為任 何次級(jí)或三級(jí)存儲(chǔ)裝置,例如磁性媒體、光學(xué)媒體、磁帶或者軟磁盤(pán)或硬磁盤(pán)。
此外,計(jì)算機(jī)平臺(tái)20還包含處理器22,其可為專(zhuān)用集成電路("ASIC")或其它芯 片集、處理器、邏輯電路或其它數(shù)據(jù)處理裝置。處理器22或例如ASIC等的其它處理器可執(zhí) 行應(yīng)用程序編程接口 ( "API")層100,其與任何駐存的程序介接,例如存儲(chǔ)于無(wú)線(xiàn)裝置12 的存儲(chǔ)器24中的同步模塊26。 API 100通常是在相應(yīng)無(wú)線(xiàn)裝置上執(zhí)行的運(yùn)行時(shí)間環(huán)境。一 種此類(lèi)運(yùn)行時(shí)間環(huán)境是由加利福尼亞圣地亞哥的高通公司(QUALCO匪Incorporated)開(kāi)發(fā) 的無(wú)線(xiàn)二進(jìn)制運(yùn)行時(shí)間環(huán)境(Binary Runtime Environment for Wireless , BREW②)軟 件??衫闷渌\(yùn)行時(shí)間環(huán)境,其例如操作以控制無(wú)線(xiàn)計(jì)算裝置上的應(yīng)用程序的執(zhí)行。
處理器22包含以硬件、固件、軟件及其組合實(shí)施的各種處理子系統(tǒng)102,其允許實(shí) 現(xiàn)通信裝置12的功能性和通信裝置在無(wú)線(xiàn)網(wǎng)絡(luò)上的可操作性。舉例來(lái)說(shuō),處理子系統(tǒng)100 允許起始和維持與其它聯(lián)網(wǎng)裝置的通信且與其交換數(shù)據(jù)。在將通信裝置定義為蜂窩式電話(huà) 的方面中,通信處理器22可另外包含一個(gè)處理子系統(tǒng)100或處理子系統(tǒng)100的組合,例如 聲音、非易失性存儲(chǔ)器、文件系統(tǒng)、傳輸、接收、搜索程序、層1、層2、層3、主控制、遠(yuǎn)程程序、 手持機(jī)、電源管理、數(shù)字信號(hào)處理器、消息接發(fā)、呼叫管理器、Bluetooth②系統(tǒng)、Bluetooth⑧ LPOS、位置引擎、用戶(hù)接口、休眠、數(shù)據(jù)服務(wù)、安全性、鑒定、USIM/SIM、語(yǔ)音服務(wù)、圖形、USB、
15例如MPEG等的多媒體、GPRS等(為了清楚,其全都沒(méi)有在圖2中個(gè)別描繪)。對(duì)于所揭示 方面,處理器22的處理子系統(tǒng)100可包含與同步模塊26交互的任何子系統(tǒng)組件。
計(jì)算機(jī)平臺(tái)20另外包含以硬件、固件、軟件及其組合實(shí)施的通信模塊108,其允許 實(shí)現(xiàn)無(wú)線(xiàn)通信裝置12的各種組件之間以及通信裝置12與無(wú)線(xiàn)網(wǎng)絡(luò)16之間的通信。在所 描述的方面中,通信模塊108允許實(shí)現(xiàn)無(wú)線(xiàn)通信裝置12與網(wǎng)絡(luò)裝置14之間的所有同步訊 務(wù)(correspondence)的通信。通信模塊108可包含必備的硬件、固件、軟件和/或其組合 以用于建立無(wú)線(xiàn)網(wǎng)絡(luò)通信連接。 另外,無(wú)線(xiàn)通信裝置12具有用于產(chǎn)生對(duì)通信裝置的輸入的輸入機(jī)制118,和用于 產(chǎn)生供通信裝置的用戶(hù)使用的信息的輸出機(jī)制120。舉例來(lái)說(shuō),輸入機(jī)制102可包含例如 按鍵或鍵盤(pán)、鼠標(biāo)、觸摸屏幕顯示器、麥克風(fēng)等的機(jī)制。在某些方面中,輸入機(jī)制118提供了 以用戶(hù)輸入來(lái)起始同步過(guò)程。此外,例如,輸出機(jī)制120可包含顯示器、音頻揚(yáng)聲器、觸覺(jué)反 饋機(jī)制等。在所說(shuō)明的方面中,輸出機(jī)制104可包含顯示器,其可操作以顯示指示同步被起 始、在進(jìn)程中、成功完成和/或失敗等的消息。 計(jì)算機(jī)平臺(tái)20的存儲(chǔ)器24包含同步模塊26,其可操作以同步數(shù)據(jù)集18。同步模 塊26可由預(yù)定用戶(hù)動(dòng)作、預(yù)定裝置動(dòng)作和/或在預(yù)定時(shí)間起始。用戶(hù)動(dòng)作可包含接合預(yù)定 用戶(hù)接口,例如無(wú)線(xiàn)裝置上的指定的小鍵盤(pán)或按鈕。預(yù)定裝置動(dòng)作可包含無(wú)線(xiàn)網(wǎng)絡(luò)信號(hào)的 激發(fā),以使得只要將裝置觸發(fā)到在線(xiàn)模式便發(fā)生同步,以適應(yīng)在離線(xiàn)模式期間對(duì)數(shù)據(jù)集做 出的改變。 同步模塊26可依賴(lài)于輕型數(shù)據(jù)交換協(xié)議作為載體協(xié)議,以便將同步過(guò)程限于無(wú) 線(xiàn)裝置12與網(wǎng)絡(luò)裝置14之間的無(wú)線(xiàn)通信的單個(gè)往返行程。輕型數(shù)據(jù)交換協(xié)議可在特征上 建置于兩個(gè)結(jié)構(gòu)、一名稱(chēng)/配對(duì)值集合以及一有序值列表上。名稱(chēng)/值對(duì)可包含對(duì)象、記錄、 結(jié)構(gòu)、字典、散列表、有鍵列表、關(guān)聯(lián)數(shù)組等。有序值列表可包含數(shù)組、向量、列表、序列或列 表。輕型數(shù)據(jù)交換協(xié)議的一個(gè)實(shí)例是JavaScript 對(duì)象符號(hào)(JSON)。在JSON中,對(duì)象是
無(wú)序的一組名稱(chēng)/值對(duì),數(shù)組是有序的值集合,且值可為字符串、數(shù)字、真/假/空指示符、 對(duì)象或數(shù)組。 同步模塊26包含同步請(qǐng)求消息產(chǎn)生器104,其可操作以產(chǎn)生和傳送同步請(qǐng)求消息 30。同步請(qǐng)求消息包含當(dāng)前數(shù)據(jù)集版本號(hào)19,且如果自從先前同步會(huì)話(huà)以來(lái)已對(duì)數(shù)據(jù)集18 發(fā)生任何改變,那么還包含無(wú)線(xiàn)裝置改變列表28。由此,同步請(qǐng)求消息產(chǎn)生器104包含改 變列表編譯器106,其可操作以編譯數(shù)據(jù)集18中的自從先前同步會(huì)話(huà)以來(lái)已經(jīng)改變的數(shù)據(jù) 項(xiàng)目36的改變列表28。在此方面,編譯器106檢查例如修改位等的改變指示符72以檢驗(yàn) 是否已發(fā)生改變。如果改變指示符72指示改變,那么將數(shù)據(jù)項(xiàng)目添加到改變列表28。如 先前所述,在某些方面中,同步過(guò)程涉及數(shù)據(jù)項(xiàng)目36,而非數(shù)據(jù)項(xiàng)目的子集(稱(chēng)為數(shù)據(jù)字段 38(如圖1所示))。因此,改變的整個(gè)數(shù)據(jù)項(xiàng)目36包含在改變列表28中。然而應(yīng)注意, 在某些方面中,可能僅將相應(yīng)數(shù)據(jù)字段38和對(duì)對(duì)應(yīng)數(shù)據(jù)項(xiàng)目36的參考包含于改變列表28 中。 如先前所述,改變指示符72可指示添加的數(shù)據(jù)項(xiàng)目、對(duì)數(shù)據(jù)項(xiàng)目的插入、對(duì)數(shù)據(jù) 項(xiàng)目的刪除、對(duì)數(shù)據(jù)項(xiàng)目的改變或刪除的數(shù)據(jù)項(xiàng)目。為了確保在網(wǎng)絡(luò)裝置14處適當(dāng)?shù)夭⑷?改變,改變指示符72可在添加或改變的數(shù)據(jù)項(xiàng)目與刪除的數(shù)據(jù)項(xiàng)目之間進(jìn)行區(qū)分。舉例來(lái) 說(shuō),添加或改變的數(shù)據(jù)項(xiàng)目可被指派"l"的位值,且刪除的數(shù)據(jù)項(xiàng)目可被指派"2"的值。
16
—旦同步請(qǐng)求消息產(chǎn)生器104已產(chǎn)生同步請(qǐng)求消息30,無(wú)線(xiàn)裝置12便實(shí)施通信模 塊108以便利同步請(qǐng)求消息30的無(wú)線(xiàn)通信。根據(jù)本發(fā)明方面,同步請(qǐng)求消息的通信形成了 完成同步過(guò)程所需的通信的單個(gè)往返行程的第一分支。 同步模塊26另外包含同步確認(rèn)消息實(shí)施器110,其可操作以用于從網(wǎng)絡(luò)裝置14接 收同步確認(rèn)消息32且相應(yīng)地處理消息。同步確認(rèn)消息32形成了完成同步過(guò)程所需的通信 的單個(gè)往返行程的第二分支。在某些方面中,同步確認(rèn)消息32可包含指示在網(wǎng)絡(luò)裝置級(jí)處 同步是否成功的同步狀態(tài)指示符,以及網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50(圖1所示)。在其它方面 中,同步確認(rèn)消息32就其本身來(lái)說(shuō)包括成功同步會(huì)話(huà)的指示符。 在一些應(yīng)用中,同步確認(rèn)消息32可包含網(wǎng)絡(luò)裝置改變列表34,其對(duì)應(yīng)于對(duì)應(yīng)網(wǎng) 絡(luò)裝置數(shù)據(jù)集48(圖1所示)中的已經(jīng)改變且需要并入無(wú)線(xiàn)裝置數(shù)據(jù)集18中的數(shù)據(jù)項(xiàng)目 52(圖1所示)。由此,同步確認(rèn)消息實(shí)施器110包含數(shù)據(jù)集更新器112,其可操作以用于根 據(jù)所接收的網(wǎng)絡(luò)裝置改變列表34對(duì)數(shù)據(jù)集19中的數(shù)據(jù)項(xiàng)目36做出改變。另外,數(shù)據(jù)集更 新器112包含版本更新器116,其可操作以用于更新無(wú)線(xiàn)裝置數(shù)據(jù)集18的版本號(hào)19以反映 如同步確認(rèn)消息32中指示的當(dāng)前網(wǎng)絡(luò)裝置版本號(hào)50。數(shù)據(jù)集更新器112包含改變指示符 復(fù)位器116,其可操作以在通知同步過(guò)程的成功完成時(shí)復(fù)位所有改變指示符72以指示"無(wú) 改變"狀態(tài)。 參看圖5,根據(jù)另一方面,說(shuō)明可操作以用于同步數(shù)據(jù)集的網(wǎng)絡(luò)裝置14的方框圖。 網(wǎng)絡(luò)裝置14可包括任何類(lèi)型的硬件、服務(wù)器、個(gè)人計(jì)算機(jī)、微型計(jì)算機(jī)、主計(jì)算機(jī)或任何專(zhuān) 用或通用計(jì)算裝置的任何計(jì)算裝置中的至少一者。此外,本文描述為在網(wǎng)絡(luò)裝置14上操 作或由網(wǎng)絡(luò)裝置14執(zhí)行的模塊和應(yīng)用程序可完全在網(wǎng)絡(luò)裝置14上執(zhí)行,或者在其它方面 中,單獨(dú)的服務(wù)器、數(shù)據(jù)庫(kù)或計(jì)算機(jī)裝置可協(xié)同工作以向各方提供呈可用格式的數(shù)據(jù),和/ 或在無(wú)線(xiàn)裝置12與由網(wǎng)絡(luò)裝置14執(zhí)行的模塊和應(yīng)用程序之間的數(shù)據(jù)流中提供單獨(dú)的控制 層。 網(wǎng)絡(luò)裝置14包含計(jì)算機(jī)平臺(tái)40,其可在無(wú)線(xiàn)網(wǎng)絡(luò)16(圖1所示)上傳輸和接收 數(shù)據(jù),且可執(zhí)行例行程序和應(yīng)用程序。計(jì)算機(jī)平臺(tái)40包含存儲(chǔ)器42,其可包括易失性和非 易失性存儲(chǔ)器,例如只讀和/或隨機(jī)存取存儲(chǔ)器(RAM和ROM) 、 EPROM、 EEPROM、快閃存儲(chǔ)卡 或計(jì)算機(jī)平臺(tái)中常見(jiàn)的任何存儲(chǔ)器。此外,存儲(chǔ)器42可包含一個(gè)或一個(gè)以上快閃存儲(chǔ)器單 元,或可為任何次級(jí)或三級(jí)存儲(chǔ)裝置,例如磁性媒體、光學(xué)媒體、磁帶或者軟磁盤(pán)或硬磁盤(pán)。
此外,計(jì)算機(jī)平臺(tái)40還包含處理器44,其可為專(zhuān)用集成電路("ASIC")或其它芯 片集、邏輯電路或其它數(shù)據(jù)處理裝置。處理器44包含以硬件、固件、軟件及其組合實(shí)施的 各種處理子系統(tǒng)130,其允許實(shí)現(xiàn)網(wǎng)絡(luò)裝置14的功能性和網(wǎng)絡(luò)裝置在無(wú)線(xiàn)網(wǎng)絡(luò)上的可操作 性。舉例來(lái)說(shuō),處理子系統(tǒng)130允許起始和維持與其它聯(lián)網(wǎng)裝置的通信且與其交換數(shù)據(jù)。對(duì) 于所揭示的方面,處理器44的處理子系統(tǒng)130可包含與同步模塊46交互的任何子系統(tǒng)組 件。 計(jì)算機(jī)平臺(tái)40進(jìn)一步包含以硬件、固件、軟件及其組合實(shí)施的通信模塊132,其允 許實(shí)現(xiàn)網(wǎng)絡(luò)裝置14的各種組件之間以及網(wǎng)絡(luò)裝置14與無(wú)線(xiàn)通信裝置12之間的通信。通 信模塊132可包含必備的硬件、固件、軟件和/或其組合以用于建立無(wú)線(xiàn)通信連接。通信模 塊132可操作以接收在無(wú)線(xiàn)網(wǎng)絡(luò)16上傳送的同步請(qǐng)求消息30,且在無(wú)線(xiàn)網(wǎng)絡(luò)16上傳送同 步確認(rèn)消息32。
網(wǎng)絡(luò)裝置14的存儲(chǔ)器42包含同步模塊46,其可操作以接收和處理同步請(qǐng)求消息 30,且響應(yīng)于請(qǐng)求消息30而產(chǎn)生和傳送同步確認(rèn)消息32。由此,同步模塊46包含同步請(qǐng) 求消息實(shí)施器134,其可操作以接收請(qǐng)求消息30且相應(yīng)地處理消息。如果無(wú)線(xiàn)裝置數(shù)據(jù)集 18 (圖1和4所示)自從先前同步會(huì)話(huà)以來(lái)已經(jīng)歷數(shù)據(jù)項(xiàng)目36 (圖1和4所示)改變,那么 同步請(qǐng)求消息30將包含無(wú)線(xiàn)裝置改變列表28,其包含已改變的數(shù)據(jù)項(xiàng)目。
同步請(qǐng)求消息實(shí)施器134另外包含數(shù)據(jù)集更新器136,其可操作以根據(jù)無(wú)線(xiàn)裝置 改變列表28更新網(wǎng)絡(luò)裝置上的對(duì)應(yīng)數(shù)據(jù)集48。由此,數(shù)據(jù)集更新器136將根據(jù)無(wú)線(xiàn)裝置 改變列表28中的經(jīng)改變數(shù)據(jù)項(xiàng)目來(lái)改變數(shù)據(jù)項(xiàng)目52,例如添加到數(shù)據(jù)項(xiàng)目、從數(shù)據(jù)項(xiàng)目刪 除、改變數(shù)據(jù)項(xiàng)目、添加數(shù)據(jù)項(xiàng)目或刪除數(shù)據(jù)項(xiàng)目。數(shù)據(jù)集更新器136包含數(shù)據(jù)項(xiàng)目版本更 新器138,其可操作以用于基于對(duì)數(shù)據(jù)項(xiàng)目的改變來(lái)更新數(shù)據(jù)項(xiàng)目52的版本號(hào)56。每一數(shù) 據(jù)項(xiàng)目52被指派版本號(hào)56且對(duì)數(shù)據(jù)項(xiàng)目52的任何改變均將指示新的版本號(hào)56。版本號(hào) 56是從當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50之后的下一號(hào)開(kāi)始循序指派的。舉例來(lái)說(shuō),如果當(dāng)前 數(shù)據(jù)集版本號(hào)50是"20",且無(wú)線(xiàn)裝置改變列表28包含對(duì)四個(gè)數(shù)據(jù)項(xiàng)目的改變,那么數(shù)據(jù)項(xiàng) 目52將被指派經(jīng)更新的版本號(hào)56 :"21"、"22"、"23"和"24"。數(shù)據(jù)集更新器136另外包含 數(shù)據(jù)集版本更新器140,其可操作以用于基于對(duì)數(shù)據(jù)集48中的任何數(shù)據(jù)項(xiàng)目52的改變來(lái)更 新網(wǎng)絡(luò)裝置數(shù)據(jù)集48的版本號(hào)50。在一個(gè)實(shí)例中,數(shù)據(jù)集版本號(hào)48等同于最高數(shù)據(jù)項(xiàng)目 版本號(hào)56。因此,在其中四個(gè)數(shù)據(jù)項(xiàng)目52改變且指派"21 "、"22"、"23"和"24"的經(jīng)更新 版本號(hào)56的先前提出實(shí)例中,網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)50從"20"更新到"24"。
另外,數(shù)據(jù)集更新器136將包含刪除指示符設(shè)定器142,其可操作以用于針對(duì)已從 數(shù)據(jù)集48刪除的任何數(shù)據(jù)項(xiàng)目52設(shè)定刪除指示符82 (另外稱(chēng)為墓碑)。在此方面,正被刪 除的數(shù)據(jù)項(xiàng)目52被指派經(jīng)更新的版本號(hào)56,且刪除指示符82被設(shè)定。刪除指示符82提 供了將刪除的項(xiàng)目52標(biāo)記為刪除但以另外方式維持在數(shù)據(jù)集48內(nèi)。通過(guò)在數(shù)據(jù)集48中 維持刪除的數(shù)據(jù)項(xiàng)目52,網(wǎng)絡(luò)裝置可重新創(chuàng)建數(shù)據(jù)集的先前版本(如果同步會(huì)話(huà)批準(zhǔn)此情 況)且阻止更新相應(yīng)帶墓碑的數(shù)據(jù)項(xiàng)目52的未來(lái)嘗試。 同步模塊46另外包含可操作以產(chǎn)生同步確認(rèn)消息32的同步確認(rèn)消息產(chǎn)生器144, 同步確認(rèn)消息32包含同步狀態(tài)指示符(例如,同步成功、同步失敗等)以及網(wǎng)絡(luò)裝置數(shù)據(jù) 集48的經(jīng)更新和/或當(dāng)前版本號(hào)50。如果網(wǎng)絡(luò)裝置數(shù)據(jù)集48自從與請(qǐng)求的無(wú)線(xiàn)裝置12 的先前同步會(huì)話(huà)以來(lái)已經(jīng)歷數(shù)據(jù)項(xiàng)目52改變,那么同步確認(rèn)消息32可另外包含網(wǎng)絡(luò)裝置 改變列表34。由此,同步確認(rèn)消息產(chǎn)生器144包含改變列表編譯器146以用于編譯網(wǎng)絡(luò)裝 置改變列表34。網(wǎng)絡(luò)裝置改變列表34將包含具有版本號(hào)56的數(shù)據(jù)項(xiàng)目52,所述版本號(hào)56 大于同步請(qǐng)求消息30中指示的無(wú)線(xiàn)裝置12的版本號(hào)19且小于或等于在網(wǎng)絡(luò)裝置數(shù)據(jù)集 48的更新之前網(wǎng)絡(luò)裝置數(shù)據(jù)集48的版本號(hào)50(即,在接收到同步請(qǐng)求消息30后網(wǎng)絡(luò)裝置 數(shù)據(jù)集48的版本號(hào)50)。 在同步確認(rèn)消息32的產(chǎn)生后,經(jīng)由通信模塊132將消息傳送到請(qǐng)求的無(wú)線(xiàn)裝置 12。類(lèi)似于同步請(qǐng)求消息30,可經(jīng)由例如JavaScript對(duì)象符號(hào)(JSON)協(xié)議的輕型數(shù)據(jù)交 換載體協(xié)議傳送同步確認(rèn)消息32。 圖6表示蜂窩式網(wǎng)絡(luò)的方框圖。無(wú)線(xiàn)網(wǎng)絡(luò)16可包括蜂窩式網(wǎng)絡(luò),且由此可經(jīng)實(shí)施 以向網(wǎng)絡(luò)裝置14傳送同步請(qǐng)求消息30和從網(wǎng)絡(luò)裝置14接收同步確認(rèn)消息32。參看圖6, 在一個(gè)方面中,無(wú)線(xiàn)裝置12包含無(wú)線(xiàn)通信裝置,例如蜂窩式電話(huà)。在本發(fā)明方面中,無(wú)線(xiàn)通
18信裝置經(jīng)配置以經(jīng)由蜂窩式網(wǎng)絡(luò)150通信。蜂窩式網(wǎng)絡(luò)150向無(wú)線(xiàn)通信裝置12提供了分別 向網(wǎng)絡(luò)裝置14傳送同步請(qǐng)求消息30和從網(wǎng)絡(luò)裝置14接收同步確認(rèn)消息32的能力。蜂窩 式電話(huà)網(wǎng)絡(luò)150可包含經(jīng)由運(yùn)營(yíng)商網(wǎng)絡(luò)154連接到有線(xiàn)網(wǎng)絡(luò)152的無(wú)線(xiàn)網(wǎng)絡(luò)16。圖6是更 完全地說(shuō)明無(wú)線(xiàn)通信網(wǎng)絡(luò)的組件以及本發(fā)明系統(tǒng)的一個(gè)方面的元件的相互關(guān)系的代表圖。 蜂窩式電話(huà)網(wǎng)絡(luò)150僅是示范性的,且可包含例如無(wú)線(xiàn)通信裝置12的遠(yuǎn)程模塊借以在彼此 之間和/或在無(wú)線(xiàn)網(wǎng)絡(luò)16的組件(包含但不限于,無(wú)線(xiàn)網(wǎng)絡(luò)運(yùn)營(yíng)商和/或服務(wù)器)之間無(wú) 線(xiàn)通信的任何系統(tǒng)。 在網(wǎng)絡(luò)150中,例如網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)裝置14可經(jīng)由有線(xiàn)網(wǎng)絡(luò)152(例如,局域 網(wǎng),LAN)與用于存儲(chǔ)數(shù)據(jù)集48的單獨(dú)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)156通信。此外,數(shù)據(jù)管理服務(wù)器158可 與網(wǎng)絡(luò)裝置14通信以提供后處理能力、數(shù)據(jù)流控制等。網(wǎng)絡(luò)裝置14、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)156和數(shù) 據(jù)管理服務(wù)器158可與提供蜂窩式電信服務(wù)所需的任何其它網(wǎng)絡(luò)組件一起存在于蜂窩式 電話(huà)網(wǎng)絡(luò)150上。網(wǎng)絡(luò)裝置14和/或數(shù)據(jù)管理服務(wù)器158經(jīng)由數(shù)據(jù)鏈路160和162與運(yùn)營(yíng) 商網(wǎng)絡(luò)154通信,所述數(shù)據(jù)鏈路可為例如因特網(wǎng)、安全LAN、WAN或其它網(wǎng)絡(luò)的數(shù)據(jù)鏈路。運(yùn) 營(yíng)商網(wǎng)絡(luò)154控制發(fā)送到移動(dòng)交換中心("MSC")164的消息(大體上為數(shù)據(jù)包)。此外,運(yùn) 營(yíng)商網(wǎng)絡(luò)154通過(guò)例如因特網(wǎng)和/或POTS ("普通老式電話(huà)服務(wù)")的網(wǎng)絡(luò)162與MSC 164 通信。通常,在網(wǎng)絡(luò)162中,網(wǎng)絡(luò)或因特網(wǎng)部分傳送數(shù)據(jù),且P0TS部分傳送語(yǔ)音信息。MSC 164可通過(guò)例如用于數(shù)據(jù)傳送的數(shù)據(jù)網(wǎng)絡(luò)和/或因特網(wǎng)部分和用于語(yǔ)音信息的P0TS部分的 另一網(wǎng)絡(luò)168連接到多個(gè)基站("BTS")166。 BTS 166最終通過(guò)任何可接受的無(wú)線(xiàn)方法以 無(wú)線(xiàn)方式向無(wú)線(xiàn)通信裝置12廣播消息。 圖7和8提供根據(jù)本發(fā)明方面的數(shù)據(jù)集同步的實(shí)例。參看圖7,在同步會(huì)話(huà)之前,無(wú) 線(xiàn)裝置數(shù)據(jù)集200處于版本"3"且對(duì)應(yīng)的網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集300處于版本"4"。無(wú)線(xiàn)裝置 數(shù)據(jù)集200的版本"3"包含三個(gè)數(shù)據(jù)項(xiàng)目210,名為"profile. im"、"profile. tagline"和 "profile, avatar"。每一數(shù)據(jù)項(xiàng)目210具有對(duì)應(yīng)的值220 :"profile. im"值是"PLAYER45", "profile. tagline,,值是"GO TME !",且"profile. avatar"值是"Abe. png"。每一數(shù)據(jù) 項(xiàng)目210具有對(duì)應(yīng)的改變指示符字段230。改變指示符字段230指示名為"profile, im" 和"profile, avatar"的數(shù)據(jù)項(xiàng)目210自從先前同步會(huì)話(huà)以來(lái)沒(méi)有經(jīng)歷任何改變,且名為 "profile, tagline"的數(shù)據(jù)項(xiàng)目210自從先前同步會(huì)話(huà)以來(lái)已經(jīng)歷改變。
網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集300的版本"4"包含四個(gè)數(shù)據(jù)項(xiàng)目310,名為"profile, im"、 "profile, tagline,,、"profile. age,,禾口"profile, avatar,,。每一數(shù)據(jù)項(xiàng)目310具有對(duì)應(yīng)的 值320-"profile. im"值是"PLAYER45"'"profile. tagline"值是"THE BEST ! "'"profile. age"值是"22",且"profile. avatar"值是"Abc. png"。每一數(shù)據(jù)項(xiàng)目310具有對(duì)應(yīng)的版本 號(hào)340 :"profile. im,,是版本'T, "profile, tagline,,是版本"3,,, "profile, age,,是版本 "4",且"profile, avatar"是版本"2"。此外,每一數(shù)據(jù)項(xiàng)目310可具有對(duì)應(yīng)的刪除指示符 350(另外稱(chēng)為墓碑)以指示相應(yīng)數(shù)據(jù)項(xiàng)目已從相應(yīng)數(shù)據(jù)集刪除。在數(shù)據(jù)集300中,沒(méi)有數(shù) 據(jù)項(xiàng)目310被刪除,且因此沒(méi)有設(shè)定墓碑以指示刪除。 接著基于同步請(qǐng)求消息30而發(fā)生無(wú)線(xiàn)裝置數(shù)據(jù)集200與網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集300 之間的同步。特定來(lái)說(shuō),無(wú)線(xiàn)裝置12產(chǎn)生同步請(qǐng)求消息30且將同步請(qǐng)求消息30發(fā)送到網(wǎng) 絡(luò)裝置14。如果適用,那么無(wú)線(xiàn)裝置12基于具有值"l"的改變指示符230而編譯改變列表 28,其在此情況下包含數(shù)據(jù)項(xiàng)目"profile. tagline"和對(duì)應(yīng)值"LET' S PLAY !"。由此,在此情況下,無(wú)線(xiàn)裝置改變列表28和當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本19(即,版本"3")被包含在傳 送到網(wǎng)絡(luò)服務(wù)器的同步請(qǐng)求消息30中。又,在事件355處,網(wǎng)絡(luò)服務(wù)器14接收同步請(qǐng)求消 息30,且如果適用,便實(shí)施改變列表28中的改變,更新對(duì)應(yīng)的改變數(shù)據(jù)項(xiàng)目版本號(hào)340,且 更新網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)50。 網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集360描繪在無(wú)線(xiàn)裝置改變列表中的改變已被實(shí)施、數(shù)據(jù)項(xiàng)目版 本號(hào)已被修正且網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)已被修正之后的數(shù)據(jù)集。具體來(lái)說(shuō),已基于無(wú)線(xiàn) 裝置改變列表28而改變名為"profile, tagline"的數(shù)據(jù)項(xiàng)目310以反映"G0 TME !"的 值。此外,用于名為"profile, tagline"的數(shù)據(jù)項(xiàng)目310的數(shù)據(jù)項(xiàng)目版本號(hào)340已經(jīng)從版 本"3"更新到版本"5",且網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)50已經(jīng)從版本"4"更新到版本"5",其 中版本"5"對(duì)應(yīng)于最高定序的數(shù)據(jù)項(xiàng)目版本340。 另夕卜,響應(yīng)于接收到同步請(qǐng)求消息30,網(wǎng)絡(luò)服務(wù)器14產(chǎn)生同步確認(rèn)消息32且將同 步確認(rèn)消息32發(fā)送到請(qǐng)求的無(wú)線(xiàn)裝置12。同步確認(rèn)消息32包含最新的無(wú)線(xiàn)裝置數(shù)據(jù)集 版本50,且如果適用,那么可包含網(wǎng)絡(luò)裝置改變列表34以使請(qǐng)求的無(wú)線(xiàn)裝置與相應(yīng)數(shù)據(jù)集 的最新版本同步。在此情況下,例如一旦已在網(wǎng)絡(luò)服務(wù)器處實(shí)施無(wú)線(xiàn)裝置改變,那么網(wǎng)絡(luò)服 務(wù)器便編譯網(wǎng)絡(luò)服務(wù)器改變列表34以供包含于同步確認(rèn)消息32內(nèi),且將所述確認(rèn)消息傳 送到無(wú)線(xiàn)裝置。網(wǎng)絡(luò)裝置改變列表34包含具有大于所接收無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)直到網(wǎng) 絡(luò)服務(wù)器數(shù)據(jù)集的當(dāng)前版本號(hào)的版本號(hào)減去由無(wú)線(xiàn)裝置改變列表28引起的任何改變(例 如,最近網(wǎng)絡(luò)裝置數(shù)據(jù)集版本與當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本之間的增量)的所有數(shù)據(jù)項(xiàng)目。 因此,在圖7的實(shí)例中,網(wǎng)絡(luò)服務(wù)器改變列表34包含具有值"22"的名為"profile. age"的 數(shù)據(jù)項(xiàng)目310,因?yàn)閷?duì)應(yīng)數(shù)據(jù)項(xiàng)目版本號(hào)為"4",其大于無(wú)線(xiàn)裝置版本號(hào)"3";但不包含名為 "profile, tagline"的數(shù)據(jù)項(xiàng)目310的值"G0 TIME !",因?yàn)榇藬?shù)據(jù)項(xiàng)目版本是基于無(wú)線(xiàn)裝 置改變列表28。此外,在某些方面中,同步確認(rèn)消息32可包含同步狀態(tài)指示符。因此,在所 說(shuō)明實(shí)例中,同步確認(rèn)消息包含網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)"5"、網(wǎng)絡(luò)裝置改變列表34,且可 包含"同步成功"指示符。 無(wú)線(xiàn)裝置數(shù)據(jù)集240描繪在已接收到同步確認(rèn)消息32、網(wǎng)絡(luò)裝置改變列表34 已被實(shí)施且無(wú)線(xiàn)裝置版本號(hào)19已被修正之后的數(shù)據(jù)集。具體來(lái)說(shuō),具有值"22"的名為 "profile, age"的數(shù)據(jù)項(xiàng)目210已添加到數(shù)據(jù)集240,且數(shù)據(jù)集版本號(hào)19已從"3"更新到 "5"。 參看圖8,繼續(xù)先前實(shí)例,基于使用無(wú)線(xiàn)裝置數(shù)據(jù)集250的應(yīng)用程序的操作,對(duì)應(yīng) 于名為"profile, tagline"的數(shù)據(jù)項(xiàng)目210的值220已被清除或刪除。由此,在同步會(huì)話(huà) 之前,無(wú)線(xiàn)裝置數(shù)據(jù)集250具有值為"5"的版本19,且對(duì)應(yīng)網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集360具有值為 "5"的版本50。無(wú)線(xiàn)裝置數(shù)據(jù)集250的版本"5"包含四個(gè)數(shù)據(jù)項(xiàng)目210,名為"profile. im"、 "profile, tagline,,、"profile. age,,禾口"profile, avatar,,。每一數(shù)據(jù)項(xiàng)目210具有對(duì)應(yīng)的 值220 -"profile. im"值是"PLAYER45","profile, tagline"值是空或刪除,"profile. age" 值是"22",且"prof ile. avatar"值是"Abc. png"。每一數(shù)據(jù)項(xiàng)目210具有對(duì)應(yīng)的改變指示 符字段230。改變指示符字段230指示名為"profile, im"、"profile. age"和"profile. avatar"的數(shù)據(jù)項(xiàng)目210自從先前同步會(huì)話(huà)以來(lái)尚未經(jīng)歷改變,且名為"profile. tagline" 的數(shù)據(jù)項(xiàng)目210自從先前同步會(huì)話(huà)以來(lái)已被刪除。在此情況下,通過(guò)將對(duì)應(yīng)于改變指示符 230的位設(shè)定為"2"來(lái)指示數(shù)據(jù)項(xiàng)目210的刪除。
網(wǎng)絡(luò)裝置數(shù)據(jù)集370的版本"5"包含四個(gè)數(shù)據(jù)項(xiàng)目310,名為"profile, im"、 "profile. tagline,V'profile. age,,禾口"profile avatar.,,。每一數(shù)據(jù)項(xiàng)目310具有對(duì)應(yīng)的 值320-"profile. im"值是"PLAYER45","profile. tagline"值是"Go TIME ! "'"profile. age"值是"22",且"prof ile. avatar"值是"Abe. png"。此外,每一數(shù)據(jù)項(xiàng)目310具有對(duì)應(yīng) 的片反本號(hào)340 -"profile, im,,是片反本"l,,, "profile, tagline,,是片反本"5,,, "profile, age,, 是版本"4",且"profile avatar"是版本"2"。另外,每一數(shù)據(jù)項(xiàng)目310可具有對(duì)應(yīng)的刪除 指示符(另外稱(chēng)為墓碑)350以指示相應(yīng)數(shù)據(jù)項(xiàng)目已從數(shù)據(jù)集刪除。對(duì)于網(wǎng)絡(luò)裝置數(shù)據(jù)集 370,沒(méi)有數(shù)據(jù)項(xiàng)目310被刪除,且因此沒(méi)有設(shè)定墓碑350以指示刪除。
接著基于由相應(yīng)無(wú)線(xiàn)裝置12產(chǎn)生且發(fā)送到相應(yīng)網(wǎng)絡(luò)裝置14的同步請(qǐng)求消息30 而發(fā)生無(wú)線(xiàn)裝置數(shù)據(jù)集250與網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集370之間的同步。在此情況下,無(wú)線(xiàn)裝置 編譯包含數(shù)據(jù)項(xiàng)目"profile, tagline"和用于對(duì)應(yīng)改變指示符230的值"2"的無(wú)線(xiàn)裝置改 變列表28,借此表示從無(wú)線(xiàn)裝置數(shù)據(jù)集250刪除相應(yīng)數(shù)據(jù)項(xiàng)目。 無(wú)線(xiàn)裝置改變列表28和無(wú)線(xiàn)裝置數(shù)據(jù)集版本19的當(dāng)前值(例如,在此情況下為 版本"5")被包含于傳送到具有對(duì)應(yīng)網(wǎng)絡(luò)裝置數(shù)據(jù)集的網(wǎng)絡(luò)裝置14的同步請(qǐng)求消息30中。 而網(wǎng)絡(luò)裝置接收同步請(qǐng)求消息30,且在事件375處,實(shí)施無(wú)線(xiàn)裝置改變列表28中的改變,更 新相應(yīng)的改變數(shù)據(jù)項(xiàng)目版本號(hào)340,且更新網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)50。
網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集380描繪在無(wú)線(xiàn)裝置改變列表30中的改變已被實(shí)施、數(shù)據(jù) 項(xiàng)目版本號(hào)已被修正且網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)已被修正之后的數(shù)據(jù)集。具體來(lái)說(shuō),名 為"profile, tagline"的數(shù)據(jù)項(xiàng)目310具有以一個(gè)值(在此實(shí)例中為"X")更新的墓 碑指示符350,所述值指定相應(yīng)數(shù)據(jù)項(xiàng)目已被從網(wǎng)絡(luò)裝置數(shù)據(jù)集刪除。此外,用于名為 "profiletagline"的數(shù)據(jù)項(xiàng)目310的數(shù)據(jù)項(xiàng)目版本號(hào)340已從版本"5"更新到版本"6"以 反映對(duì)數(shù)據(jù)項(xiàng)目的改變,且網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)已從版本"5"更新到版本"6",其中版 本"6"是最高定序的數(shù)據(jù)項(xiàng)目版本340。 —旦改變已經(jīng)實(shí)施,網(wǎng)絡(luò)服務(wù)器便產(chǎn)生同步確認(rèn)消息32且將確認(rèn)消息傳送到無(wú) 線(xiàn)裝置。由于自從先前同步會(huì)話(huà)以來(lái)在網(wǎng)絡(luò)裝置數(shù)據(jù)集380中沒(méi)有發(fā)生改變,因此不編譯 網(wǎng)絡(luò)服務(wù)器改變列表34,且因此同步確認(rèn)消息中不包含網(wǎng)絡(luò)服務(wù)器改變列表34。由此,在 圖8的實(shí)例中,同步確認(rèn)消息32包含經(jīng)更新的網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)50。因此,在所說(shuō) 明實(shí)例中,同步確認(rèn)消息32包含網(wǎng)絡(luò)服務(wù)器數(shù)據(jù)集版本號(hào)"6"。 無(wú)線(xiàn)裝置數(shù)據(jù)集260描繪在已接收到同步確認(rèn)消息32且無(wú)線(xiàn)裝置版本號(hào)19已被 修正之后的數(shù)據(jù)集。在此情況下,由于無(wú)線(xiàn)裝置數(shù)據(jù)集的先前版本指示數(shù)據(jù)項(xiàng)目被刪除,因 此在接收到同步確認(rèn)消息32后,無(wú)線(xiàn)裝置12能夠從無(wú)線(xiàn)裝置數(shù)據(jù)集刪除相應(yīng)數(shù)據(jù)項(xiàng)目。具 體來(lái)說(shuō),名為"profile. tagline"的數(shù)據(jù)項(xiàng)目210已被從無(wú)線(xiàn)裝置數(shù)據(jù)集260刪除,且數(shù)據(jù) 集版本號(hào)19已從"5"更新到"6"。 應(yīng)注意,可能利用其它方法來(lái)從無(wú)線(xiàn)裝置數(shù)據(jù)集刪除數(shù)據(jù)項(xiàng)目。舉例來(lái)說(shuō),由于可 將數(shù)據(jù)項(xiàng)目的刪除視為重要類(lèi)型的更新或改變,因此系統(tǒng)可允許網(wǎng)絡(luò)裝置例如通過(guò)在網(wǎng)絡(luò) 裝置改變列表32中包含墓碑指示符350以向無(wú)線(xiàn)裝置確認(rèn)從無(wú)線(xiàn)裝置數(shù)據(jù)集刪除相應(yīng)數(shù) 據(jù)項(xiàng)目是適當(dāng)?shù)膩?lái)確認(rèn)刪除。 參看圖9,描繪用于無(wú)線(xiàn)裝置處的數(shù)據(jù)集同步的方法的流程圖。在事件400處,在 無(wú)線(xiàn)裝置處起始同步會(huì)話(huà)。同步會(huì)話(huà)的起始可通過(guò)預(yù)定用戶(hù)動(dòng)作(例如接合預(yù)定小鍵盤(pán))、
21預(yù)定事件(例如觸發(fā)在線(xiàn)模式)、預(yù)定時(shí)間和/或類(lèi)似物來(lái)完成。在事件410處,同步模塊 檢查數(shù)據(jù)集中的每一數(shù)據(jù)項(xiàng)目的改變指示符,且在事件420處,確定改變指示符中的任一 者是否已經(jīng)設(shè)定以指示對(duì)數(shù)據(jù)項(xiàng)目的改變、數(shù)據(jù)項(xiàng)目的添加或數(shù)據(jù)項(xiàng)目的刪除。
如果確定改變指示符中的一者或一者以上已經(jīng)設(shè)定以指示對(duì)數(shù)據(jù)項(xiàng)目的改變,那 么在事件430處,基于改變指示符設(shè)定而編譯無(wú)線(xiàn)裝置改變。舉例來(lái)說(shuō),指示對(duì)數(shù)據(jù)項(xiàng)目的 改變或數(shù)據(jù)項(xiàng)目的添加的改變指示符將要求在經(jīng)編譯的改變列表中并入所改變的或添加 的數(shù)據(jù)項(xiàng)目。另外,指示數(shù)據(jù)項(xiàng)目的刪除的改變指示符將要求在經(jīng)編譯改變列表中的改變 中識(shí)別數(shù)據(jù)項(xiàng)目和刪除指示符。 在事件440處,產(chǎn)生同步請(qǐng)求消息,其包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào),且如果適 用,則包含無(wú)線(xiàn)裝置改變列表。在事件450處,將同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置。在某些方 面中,經(jīng)由例如JavaScript對(duì)象符號(hào)(JSON)協(xié)議等的輕型數(shù)據(jù)交換載體協(xié)議傳送同步請(qǐng) 求消息。 在事件460處,無(wú)線(xiàn)裝置確定預(yù)定時(shí)間是否已過(guò)去。所述預(yù)定時(shí)間通常經(jīng)定義以 提供用以接收同步確認(rèn)消息的可允許時(shí)間。如果預(yù)定時(shí)間已過(guò)去,那么會(huì)話(huà)假定包含同步 請(qǐng)求消息的通信失敗或包含同步確認(rèn)消息的通信已失敗。如果預(yù)定時(shí)間已過(guò)去,那么方法 返回到事件400,且起始新的同步會(huì)話(huà)。由此,本發(fā)明方面允許了穩(wěn)健的同步方法,借此通信 失敗提供了起始新的"軟"同步會(huì)話(huà)而無(wú)需執(zhí)行"完全"同步程序(即,交換和替換存儲(chǔ)于 無(wú)線(xiàn)裝置或網(wǎng)絡(luò)裝置處的整個(gè)數(shù)據(jù)集)。然而應(yīng)注意,可例如在預(yù)定數(shù)目的"軟"同步失敗 之后和/或基于從網(wǎng)絡(luò)裝置接收到錯(cuò)誤消息而實(shí)施"完全"同步,如下文所述。
在事件470處,如果預(yù)定時(shí)間未過(guò)去,意味著同步會(huì)話(huà)仍在可允許的時(shí)間限制內(nèi), 那么無(wú)線(xiàn)裝置從網(wǎng)絡(luò)裝置(另外稱(chēng)為同步服務(wù)器)接收同步確認(rèn)消息。同步確認(rèn)消息包含 當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)、同步狀態(tài)指示符以及任何適用的網(wǎng)絡(luò)裝置改變列表。任選地, 在事件480處,檢查同步狀態(tài)指示符以確定在網(wǎng)絡(luò)裝置處是否成功執(zhí)行同步。如果同步不 成功,那么在事件490處,無(wú)線(xiàn)裝置起始"完全"同步程序。在一個(gè)方面中,完全同步要求無(wú) 線(xiàn)裝置將整個(gè)數(shù)據(jù)集傳送到網(wǎng)絡(luò)裝置以用于完全同步。 如果同步狀態(tài)指示符指示在網(wǎng)絡(luò)裝置處同步成功,那么在事件500處,無(wú)線(xiàn)裝置 確定同步確認(rèn)消息是否包含網(wǎng)絡(luò)裝置改變列表。如果在確認(rèn)消息中包含改變列表,那么在 事件510處,對(duì)數(shù)據(jù)集實(shí)施適當(dāng)?shù)母淖?,包含?duì)數(shù)據(jù)項(xiàng)目的改變、添加數(shù)據(jù)項(xiàng)目和/或從數(shù) 據(jù)集刪除數(shù)據(jù)項(xiàng)目。 一旦對(duì)數(shù)據(jù)集的改變已實(shí)施,在事件520處,便更新無(wú)線(xiàn)裝置數(shù)據(jù)集 版本號(hào)以反映如確認(rèn)消息中指示的網(wǎng)絡(luò)裝置數(shù)據(jù)集的版本號(hào)。在事件530處,將所有數(shù)據(jù) 項(xiàng)目改變指示符復(fù)位以指示"無(wú)改變",且無(wú)線(xiàn)裝置等待直到在事件400處起始新的同步會(huì) 話(huà)。 如果在事件500處,無(wú)線(xiàn)裝置確定同步確認(rèn)消息中不包含改變列表,那么在事件 540處,確定當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)是否不同于如確認(rèn)消息中指示的網(wǎng)絡(luò)裝置數(shù)據(jù)集 修正號(hào)。如果數(shù)據(jù)集版本號(hào)不同,那么在事件520處,更新無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)以反映如 確認(rèn)消息中指示的網(wǎng)絡(luò)裝置數(shù)據(jù)集的版本號(hào),且在事件530處,將所有數(shù)據(jù)項(xiàng)目改變指示 符復(fù)位以指示"無(wú)改變",且無(wú)線(xiàn)裝置等待直到在事件400處起始新的同步會(huì)話(huà)。如果數(shù)據(jù) 集版本號(hào)并非不同,那么在事件530處,將所有數(shù)據(jù)項(xiàng)目改變指示符復(fù)位以指示"無(wú)改變", 且無(wú)線(xiàn)裝置等待直到在事件400處起始新的同步會(huì)話(huà)。
參看圖10,描繪用于網(wǎng)絡(luò)裝置處的數(shù)據(jù)集同步的方法的流程圖。在事件600處,網(wǎng) 絡(luò)裝置接收來(lái)自無(wú)線(xiàn)裝置的同步請(qǐng)求消息。在事件610處,確定請(qǐng)求消息是否包含無(wú)線(xiàn)裝 置改變列表。如果請(qǐng)求消息中包含改變列表,那么在事件620處,確定是否列表中的任何改 變對(duì)應(yīng)于數(shù)據(jù)項(xiàng)目刪除。如果改變對(duì)應(yīng)于刪除,那么在事件630處,針對(duì)刪除的數(shù)據(jù)項(xiàng)目設(shè) 定墓碑/刪除指示符,且在事件640處,更新用于刪除項(xiàng)目的數(shù)據(jù)項(xiàng)目版本號(hào)。經(jīng)更新數(shù)據(jù) 項(xiàng)目版本號(hào)反映在最高數(shù)據(jù)項(xiàng)目版本號(hào)之后的下一序號(hào)。 在事件650處,確定是否在改變列表中提供了額外的數(shù)據(jù)項(xiàng)目刪除。如果改變列 表中包含額外刪除,那么過(guò)程返回到事件630,且針對(duì)額外刪除的數(shù)據(jù)項(xiàng)目提供墓碑/刪除 指示符,且在事件640處,更新用于刪除項(xiàng)目的數(shù)據(jù)項(xiàng)目版本號(hào)。如果在事件650處,確定 改變列表中不包含額外刪除,那么在事件660處,確定列表中的任何改變是否對(duì)應(yīng)于數(shù)據(jù) 項(xiàng)目改變和/或數(shù)據(jù)項(xiàng)目添加。 如果改變對(duì)應(yīng)于添加/改變,那么在事件670處,確定在網(wǎng)絡(luò)裝置數(shù)據(jù)集中的正被 改變的數(shù)據(jù)項(xiàng)目是否具有墓碑/刪除指示符(借此指示對(duì)相應(yīng)數(shù)據(jù)項(xiàng)目無(wú)法做出進(jìn)一步 更新)。如果正被改變的數(shù)據(jù)項(xiàng)目具有墓碑/刪除指示符,那么在事件680處,過(guò)程前進(jìn)到 事件710以確定在改變列表中是否存在任何其余的具有更新/添加的項(xiàng)目,其隨后返回到 事件670,如上所述。如果正被改變的數(shù)據(jù)項(xiàng)目不具有墓碑/刪除指示符,那么在事件690 處,通過(guò)用改變列表中的數(shù)據(jù)項(xiàng)目替換當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集中的數(shù)據(jù)項(xiàng)目來(lái)進(jìn)行適用的數(shù) 據(jù)項(xiàng)目改變,或?qū)?shù)據(jù)集進(jìn)行適用的數(shù)據(jù)項(xiàng)目添加。在事件700處,更新用于經(jīng)改變的或添 加的數(shù)據(jù)項(xiàng)目的數(shù)據(jù)項(xiàng)目版本號(hào)。經(jīng)更新的數(shù)據(jù)項(xiàng)目版本號(hào)反映在最高數(shù)據(jù)項(xiàng)目版本號(hào)之 后的下一序號(hào)。 在事件710處,確定是否有任何額外數(shù)據(jù)項(xiàng)目改變或添加保留在改變列表中。如 果額外改變/添加存在于改變列表中,那么過(guò)程返回到事件670。如果沒(méi)有額外改變/添加 存在于改變列表中,那么在事件720處,將網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)設(shè)定為最高數(shù)據(jù)項(xiàng)目版 本號(hào)。另外,在事件660處,如果改變列表不包含任何改變/添加,那么在事件720處,將網(wǎng) 絡(luò)裝置數(shù)據(jù)集版本號(hào)設(shè)定為最高數(shù)據(jù)項(xiàng)目版本號(hào)。 在事件730處,無(wú)線(xiàn)裝置編譯數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置改變列表,所述數(shù)據(jù)項(xiàng)目具有 大于如請(qǐng)求消息中指示的無(wú)線(xiàn)裝置版本號(hào)且直到恰在接收到請(qǐng)求消息之前的網(wǎng)絡(luò)裝置數(shù) 據(jù)集版本號(hào)的版本號(hào)。 任選地,在事件740處,確定同步過(guò)程是否成功。在一個(gè)實(shí)例中,不成功的同步過(guò) 程可為各種原因的結(jié)果,包含但不限于,網(wǎng)絡(luò)裝置處的數(shù)據(jù)庫(kù)故障、為產(chǎn)生存儲(chǔ)器空間而清 除帶墓碑項(xiàng)目,或可能需要無(wú)線(xiàn)裝置執(zhí)行完全同步的任何其它原因,例如無(wú)線(xiàn)裝置已長(zhǎng)時(shí) 間沒(méi)有連接到無(wú)線(xiàn)網(wǎng)絡(luò)。如果同步不成功,那么在事件750處,產(chǎn)生同步錯(cuò)誤消息,且在事 件760處,將同步錯(cuò)誤消息傳送到請(qǐng)求的無(wú)線(xiàn)裝置。 如果確定同步過(guò)程是成功的,那么在事件770處,產(chǎn)生同步確認(rèn)消息,其包含當(dāng)前 網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)、同步狀態(tài)指示符以及(如果適用)網(wǎng)絡(luò)裝置改變列表。在事件780 處,將同步確認(rèn)消息傳送到請(qǐng)求的無(wú)線(xiàn)裝置。 如果在事件610處,確定同步請(qǐng)求消息不包含無(wú)線(xiàn)裝置改變列表,那么在事件790 處,確定無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)是否不同于當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)。如果無(wú)線(xiàn)裝置數(shù) 據(jù)集版本號(hào)并非不同于當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么在事件750處,網(wǎng)絡(luò)裝置產(chǎn)生包
23含當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和同步狀態(tài)指示符的同步確認(rèn)消息。 如果無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么在事件730 處,無(wú)線(xiàn)裝置編譯數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置改變列表,所述數(shù)據(jù)項(xiàng)目具有大于如請(qǐng)求消息中指 示的無(wú)線(xiàn)裝置版本號(hào)且直到恰在接收到請(qǐng)求消息之前的網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的版本號(hào)。 在事件740處,確定同步過(guò)程是否成功。如果同步不成功,那么在事件750處,產(chǎn)生同步錯(cuò) 誤消息,且在事件760處,將同步錯(cuò)誤消息傳送到請(qǐng)求的無(wú)線(xiàn)裝置。 如果確定同步過(guò)程是成功的,那么在事件770處,產(chǎn)生同步確認(rèn)消息,其包含當(dāng)前 網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)、同步狀態(tài)指示符以及(如果適用)網(wǎng)絡(luò)裝置改變列表。在事件780 處,將同步確認(rèn)消息傳送到請(qǐng)求的無(wú)線(xiàn)裝置。 結(jié)合本文揭示的實(shí)施例描述的各種說(shuō)明性邏輯、邏輯塊、模塊和電路可用通用處 理器、數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或其它可 編程邏輯裝置、離散門(mén)或晶體管邏輯、離散硬件組件或其經(jīng)設(shè)計(jì)以執(zhí)行本文描述的功能的 任何組合來(lái)實(shí)施或執(zhí)行。通用處理器可為微處理器,但在替代方案中,處理器可為任何常規(guī) 處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可實(shí)施為計(jì)算裝置的組合,例如DSP與微處 理器的組合、多個(gè)微處理器、結(jié)合DSP核心的一個(gè)或一個(gè)以上微處理器,或任何其它此種配 置。另外,至少一個(gè)處理器可包括可操作以執(zhí)行上文所述步驟和/或動(dòng)作中的一者或一者 以上的一個(gè)或一個(gè)以上模塊。 此外,個(gè)別地或以任何組合,結(jié)合本文揭示的方面描述的方法或算法的步驟和/ 或動(dòng)作可直接以硬件、以處理器執(zhí)行的軟件模塊或以?xún)烧叩慕M合來(lái)實(shí)施。軟件模塊可駐存 在RAM存儲(chǔ)器、快閃存儲(chǔ)器、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤(pán)、可拆 卸式盤(pán)、CD-ROM或此項(xiàng)技術(shù)中已知的任何其它形式的存儲(chǔ)媒體中。示范性存儲(chǔ)媒體可耦合 到處理器,使得處理器可從存儲(chǔ)媒體讀取信息和向存儲(chǔ)媒體寫(xiě)入信息。在替代方案中,存儲(chǔ) 媒體可與處理器成一體式。此外在某些方面中,處理器和存儲(chǔ)媒體可駐存在ASIC中。另 外,ASIC可駐存在用戶(hù)終端中,在替代方案中,處理器和存儲(chǔ)媒體可作為離散組件駐存在用 戶(hù)終端中。另外,在某些方面中,方法或算法的步驟和/或動(dòng)作可作為代碼和/或指令中的 一者或任何組合或集合而駐存在可并入到計(jì)算機(jī)程序產(chǎn)品中的機(jī)器可讀媒體和/或計(jì)算 機(jī)可讀媒體上。 雖然上述揭示內(nèi)容展示說(shuō)明性方面和/或?qū)嵤├?,但?yīng)注意,在不脫離如所附權(quán) 利要求書(shū)定義的所描述方面和/或?qū)嵤├姆秶那闆r下可在本文中做出各種改變和修 改。此外,雖然所描述實(shí)施例的元件可以單數(shù)形式描述或主張,但也預(yù)期復(fù)數(shù)形式,除非明 確規(guī)定限于單數(shù)形式。另外,任何方面和/或?qū)嵤├娜炕蛞徊糠挚膳c任何其它方面和 /或?qū)嵤├娜炕蛞徊糠忠黄鹄?,除非另外?guī)定。 因此,本發(fā)明方面提供了用于以無(wú)線(xiàn)方式同步存儲(chǔ)于無(wú)線(xiàn)裝置上和網(wǎng)絡(luò)裝置(例 如網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù))處的數(shù)據(jù)集的方法、裝置、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。如所描述,本 發(fā)明方面提供了簡(jiǎn)化且有效率的同步過(guò)程,借此可在無(wú)線(xiàn)裝置與網(wǎng)絡(luò)裝置之間的無(wú)線(xiàn)通信 的單個(gè)往返行程中完成同步。單個(gè)往返行程通信提供了網(wǎng)絡(luò)資源的較少使用、較短的總體 同步循環(huán)時(shí)間,且減少了造成同步過(guò)程失敗的例如呼叫丟失等無(wú)線(xiàn)網(wǎng)絡(luò)故障的可能性。另 外,通過(guò)創(chuàng)建允許網(wǎng)絡(luò)數(shù)據(jù)集與無(wú)線(xiàn)裝置數(shù)據(jù)集無(wú)關(guān)(即,網(wǎng)絡(luò)服務(wù)器不要求完全的改變 歷史且網(wǎng)絡(luò)服務(wù)器不需要知道無(wú)線(xiàn)裝置數(shù)據(jù)集版本)的同步過(guò)程來(lái)進(jìn)一步實(shí)現(xiàn)簡(jiǎn)化和效率。本發(fā)明的方面還提供穩(wěn)健的同步過(guò)程,使得通信失敗允許重新應(yīng)用所述同步過(guò)程,而不 必實(shí)施數(shù)據(jù)集的完全同步。 得益于上述描述和相關(guān)聯(lián)圖式中呈現(xiàn)的教示的益處的本領(lǐng)域技術(shù)人員將明了許 多修改和其它方面。因此應(yīng)了解,所述本發(fā)明方面將不限于所揭示的特定方面,且所述修改 和其它方面希望包含在所附權(quán)利要求書(shū)的范圍內(nèi)。雖然本文采用特定術(shù)語(yǔ),但其是僅在一 般且描述性意義上使用且不用于限制目的。因此,希望所描述方面涵蓋所有屬于所附權(quán)利 要求書(shū)的精神和范圍內(nèi)的所有此些更改、修改和變化。此外,在詳細(xì)描述或權(quán)利要求書(shū)中 使用術(shù)語(yǔ)"包含"的程度上,希望此術(shù)語(yǔ)以類(lèi)似于當(dāng)用作權(quán)利要求中的過(guò)渡詞語(yǔ)時(shí)解釋術(shù)語(yǔ) "包括"時(shí)的方式為開(kāi)放性的。
權(quán)利要求
一種用于使無(wú)線(xiàn)裝置上的數(shù)據(jù)集同步的方法,所述方法包括產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息;以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置;響應(yīng)于所述同步請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息;且其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
2. 根據(jù)權(quán)利要求1所述的方法,其中產(chǎn)生同步請(qǐng)求消息進(jìn)一步包括 檢驗(yàn)用于所述無(wú)線(xiàn)裝置數(shù)據(jù)集中的每一數(shù)據(jù)項(xiàng)目的改變指示符的狀態(tài); 基于用于所述數(shù)據(jù)項(xiàng)目中的一者或一者以上的所述改變指示符指示改變而編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的無(wú)線(xiàn)裝置改變列表;以及 在所述同步請(qǐng)求消息中包含所述無(wú)線(xiàn)裝置改變列表。
3. 根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括如果所述確認(rèn)消息中的所述網(wǎng)絡(luò)裝置數(shù) 據(jù)集版本號(hào)不同于所述當(dāng)前無(wú)線(xiàn)裝置版本號(hào),那么將所述當(dāng)前無(wú)線(xiàn)裝置版本號(hào)改變?yōu)樗?網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)。
4. 根據(jù)權(quán)利要求1所述的方法,其中以無(wú)線(xiàn)方式接收同步確認(rèn)消息進(jìn)一步包括接收包 含所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中的一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置改變列表。
5. 根據(jù)權(quán)利要求4所述的方法,其進(jìn)一步包括根據(jù)所述網(wǎng)絡(luò)裝置改變列表來(lái)改變所述 無(wú)線(xiàn)裝置數(shù)據(jù)集。
6. 根據(jù)權(quán)利要求1所述的方法,其中經(jīng)由輕型、支持?jǐn)?shù)組的數(shù)據(jù)交換載體協(xié)議傳送所 述同步請(qǐng)求消息和所述同步確認(rèn)消息。
7. 根據(jù)權(quán)利要求6所述的方法,其中經(jīng)由JavaScript對(duì)象符號(hào)(JS0N)協(xié)議傳送所述 同步請(qǐng)求消息和所述同步確認(rèn)消息。
8. 根據(jù)權(quán)利要求1所述的方法,其中以無(wú)線(xiàn)方式接收同步確認(rèn)消息進(jìn)一步包括選自由 同步成功指示符和同步失敗指示符組成的群組的同步狀態(tài)指示符。
9. 根據(jù)權(quán)利要求8所述的方法,其中以無(wú)線(xiàn)方式接收包含同步失敗指示符的同步確認(rèn) 消息進(jìn)一步包括基于所述同步失敗指示符起始所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的完全 同步。
10. 根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包括將所述當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集傳送到所 述網(wǎng)絡(luò)裝置;接收所述網(wǎng)絡(luò)裝置數(shù)據(jù)集以及將所述當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集改變?yōu)樗鼍W(wǎng)絡(luò)裝 置數(shù)據(jù)集。
11. 至少一種經(jīng)配置以用于數(shù)據(jù)集的同步的處理器,其包括第一模塊,其用于產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息;第二模塊,其用于以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置;以及 第三模塊,其用于響應(yīng)于所述同步請(qǐng)求消息的所述傳送,以無(wú)線(xiàn)方式接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
12. —種用于數(shù)據(jù)集的同步的計(jì)算機(jī)程序產(chǎn)品,其包括 計(jì)算機(jī)可讀媒體,其包括用于致使計(jì)算機(jī)產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息 的至少一個(gè)指令;用于致使所述計(jì)算機(jī)以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置的至少一個(gè)指令;用于致使所述計(jì)算機(jī)響應(yīng)于所述同步請(qǐng)求消息的所述傳送以無(wú)線(xiàn)方式接收包含網(wǎng)絡(luò) 裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息的至少一個(gè)指令,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述 網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
13. —種設(shè)備,其包括用于產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)數(shù)據(jù)集的同步請(qǐng)求消息的裝置; 用于以無(wú)線(xiàn)方式將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置的裝置;以及用于響應(yīng)于所述同步請(qǐng)求消息的所述傳送以無(wú)線(xiàn)方式接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本 號(hào)的同步確認(rèn)消息的裝置,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述 網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
14. 一種無(wú)線(xiàn)通信裝置,其包括 計(jì)算機(jī)平臺(tái),其包含一存儲(chǔ)器和至少一個(gè)處理器; 數(shù)據(jù)集,其存儲(chǔ)在所述存儲(chǔ)器中且包含多個(gè)數(shù)據(jù)項(xiàng)目;以及同步模塊,其存儲(chǔ)在所述存儲(chǔ)器中、可由所述至少一個(gè)處理器執(zhí)行且可操作以 產(chǎn)生包含當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的針對(duì)所述數(shù)據(jù)集的同步請(qǐng)求消息,將所述同步請(qǐng)求消息傳送到網(wǎng)絡(luò)裝置,且響應(yīng)于所述同步請(qǐng)求消息的所述傳送而接收包含網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)的同步確認(rèn)消息,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的通信的單個(gè)往返行程的同步。
15. 根據(jù)權(quán)利要求14所述的裝置,其中所述同步模塊進(jìn)一步可操作以檢驗(yàn)用于所述無(wú) 線(xiàn)裝置數(shù)據(jù)集中的每一數(shù)據(jù)項(xiàng)目的改變指示符的狀態(tài),基于所述狀態(tài)改變< 指示符而編譯包 含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的無(wú)線(xiàn)裝置改變列表,以及在所述同步請(qǐng)求消息中包含 所述無(wú)線(xiàn)裝置改變列表。
16. 根據(jù)權(quán)利要求14所述的裝置,其中所述同步模塊進(jìn)一步可操作以如果所述確認(rèn)消息中的所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)不同于所述當(dāng)前無(wú)線(xiàn)裝置版本號(hào),那么將所述當(dāng)前無(wú) 線(xiàn)裝置版本號(hào)改變?yōu)樗鼍W(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)。
17. 根據(jù)權(quán)利要求14所述的裝置,其中所述同步模塊進(jìn)一步可操作以以無(wú)線(xiàn)方式接收 同步確認(rèn)消息,所述同步確認(rèn)消息包含網(wǎng)絡(luò)裝置改變列表,所述網(wǎng)絡(luò)裝置改變列表包含所 述網(wǎng)絡(luò)裝置數(shù)據(jù)集中的一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目。
18. 根據(jù)權(quán)利要求17所述的裝置,其中所述同步模塊進(jìn)一步可操作以根據(jù)所述網(wǎng)絡(luò)裝 置改變列表來(lái)改變所述無(wú)線(xiàn)裝置數(shù)據(jù)集。
19. 根據(jù)權(quán)利要求14所述的裝置,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息是經(jīng)由輕型、支持?jǐn)?shù)組的數(shù)據(jù)交換載體協(xié)議傳送。
20. 根據(jù)權(quán)利要求19所述的裝置,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息是經(jīng)由 JavaScript對(duì)象符號(hào)(JS0N)協(xié)議傳送。
21. 根據(jù)權(quán)利要求14所述的裝置,其中所述同步確認(rèn)消息進(jìn)一步包括選自由同步成功 指示符和同步失敗指示符組成的指示符群組的同步狀態(tài)指示符。
22. 根據(jù)權(quán)利要求21所述的裝置,其中可操作以以無(wú)線(xiàn)方式接收包含同步狀態(tài)指示符 的同步確認(rèn)消息的所述同步模塊進(jìn)一步可操作以基于所述同步失敗指示符起始所述無(wú)線(xiàn) 裝置與所述網(wǎng)絡(luò)裝置之間的完全同步。
23. 根據(jù)權(quán)利要求22所述的裝置,其中所述同步模塊進(jìn)一步可操作以將所述當(dāng)前無(wú)線(xiàn) 裝置數(shù)據(jù)集傳送到所述網(wǎng)絡(luò)裝置;響應(yīng)于傳送所述當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集而接收所述網(wǎng)絡(luò)裝 置數(shù)據(jù)集,以及將所述當(dāng)前無(wú)線(xiàn)裝置數(shù)據(jù)集改變?yōu)樗鼍W(wǎng)絡(luò)裝置數(shù)據(jù)集。
24. —種用于使網(wǎng)絡(luò)裝置上的數(shù)據(jù)集同步的方法,所述方法包括 在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息; 將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較; 如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表;產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息;以及以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò) 裝置之間的通信的單個(gè)往返行程的同步。
25. 根據(jù)權(quán)利要求24所述的方法,其中接收同步請(qǐng)求消息進(jìn)一步包括接收包含一個(gè)或 一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表。
26. 根據(jù)權(quán)利要求25所述的方法,其進(jìn)一步包括在所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中改變所述無(wú) 線(xiàn)裝置數(shù)據(jù)集改變列表中所包含的所述經(jīng)改變數(shù)據(jù)項(xiàng)目。
27. 根據(jù)權(quán)利要求25所述的方法,其中在所述網(wǎng)絡(luò)裝置數(shù)據(jù)集中改變所述經(jīng)改變數(shù)據(jù) 項(xiàng)目進(jìn)一步包括為所述無(wú)線(xiàn)裝置數(shù)據(jù)集上已刪除的數(shù)據(jù)項(xiàng)目提供刪除指示符而不從所述 網(wǎng)絡(luò)裝置數(shù)據(jù)集刪除所述數(shù)據(jù)項(xiàng)目。
28. 根據(jù)權(quán)利要求26所述的方法,其進(jìn)一步包括基于所述數(shù)據(jù)項(xiàng)目中的所述改變而更 新數(shù)據(jù)項(xiàng)目版本號(hào),以及更新所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)以反映最高定序的經(jīng)改變數(shù)據(jù)項(xiàng) 目的所述版本號(hào)。
29. 根據(jù)權(quán)利要求28所述的方法,其中產(chǎn)生同步確認(rèn)消息進(jìn)一步包括產(chǎn)生包含所述經(jīng) 更新網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息。
30. 根據(jù)權(quán)利要求24所述的方法,其中經(jīng)由輕型、支持?jǐn)?shù)組的數(shù)據(jù)交換載體協(xié)議傳送 所述同步請(qǐng)求消息和所述同步確認(rèn)消息。
31. 根據(jù)權(quán)利要求30所述的方法,其中經(jīng)由JavaScript對(duì)象符號(hào)(JS0N)協(xié)議傳送所 述同步請(qǐng)求消息和所述同步確認(rèn)消息。
32. 根據(jù)權(quán)利要求24所述的方法,其中所述網(wǎng)絡(luò)裝置在接收到所述同步請(qǐng)求消息之前 不知道所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)。
33. 至少一種經(jīng)配置以用于數(shù)據(jù)集的同步的處理器,其包括第一模塊,其用于在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng) 求消息;第二模塊,其用于將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較;第三模塊,其用于如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝 置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列 表;第四模塊,其用于產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù) 據(jù)集改變列表的同步確認(rèn)消息;以及第五模塊,其用于以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò) 裝置之間的通信的單個(gè)往返行程的同步。
34. —種用于數(shù)據(jù)集的同步的計(jì)算機(jī)程序產(chǎn)品,其包括 計(jì)算機(jī)可讀媒體,其包括用于致使計(jì)算機(jī)在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng) 求消息的至少一個(gè)指令;用于致使所述計(jì)算機(jī)將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn) 行比較的至少一個(gè)指令;用于致使所述計(jì)算機(jī)如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò) 裝置數(shù)據(jù)集版本號(hào)那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變 列表的至少一個(gè)指令;用于致使所述計(jì)算機(jī)產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝 置數(shù)據(jù)集改變列表的同步確認(rèn)消息的至少一個(gè)指令;以及用于致使所述計(jì)算機(jī)以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息的至少一個(gè)指令,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò) 裝置之間的通信的單個(gè)往返行程的同步。
35. —種設(shè)備,其包括用于在網(wǎng)絡(luò)裝置處以無(wú)線(xiàn)方式接收包含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息的裝置;用于將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)進(jìn)行比較的裝置;用于如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本 號(hào)那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的裝置;用于產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列 表的同步確認(rèn)消息的裝置;以及用于以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息的裝置,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò) 裝置之間的通信的單個(gè)往返行程的同步。
36. —種網(wǎng)絡(luò)裝置,其包括計(jì)算機(jī)平臺(tái),其包含一存儲(chǔ)器和至少一個(gè)處理器; 數(shù)據(jù)集,其存儲(chǔ)在所述存儲(chǔ)器中且包含多個(gè)數(shù)據(jù)項(xiàng)目;同步模塊,其存儲(chǔ)在所述存儲(chǔ)器中、可由所述至少一個(gè)處理器執(zhí)行且可操作以接收包 含無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)的同步請(qǐng)求消息;將所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)與當(dāng)前網(wǎng)絡(luò)裝置 數(shù)據(jù)集版本號(hào)進(jìn)行比較,如果所述比較指示所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)不同于所述網(wǎng)絡(luò)裝 置數(shù)據(jù)集版本號(hào),那么編譯包含一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目的網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列 表;產(chǎn)生包含所述當(dāng)前網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同 步確認(rèn)消息;以及以無(wú)線(xiàn)方式傳送所述同步確認(rèn)消息,其中所述同步請(qǐng)求消息和所述同步確認(rèn)消息可操作以提供基于無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò) 裝置之間的通信的單個(gè)往返行程的同步。
37. 根據(jù)權(quán)利要求36所述的裝置,其中所述同步模塊進(jìn)一步可操作以接收同步請(qǐng)求消 息,所述同步請(qǐng)求消息包含無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表,所述無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表包含 一個(gè)或一個(gè)以上經(jīng)改變數(shù)據(jù)項(xiàng)目。
38. 根據(jù)權(quán)利要求37所述的裝置,其中所述同步模塊進(jìn)一步可操作以在所述網(wǎng)絡(luò)裝置 數(shù)據(jù)集中改變所述無(wú)線(xiàn)裝置數(shù)據(jù)集改變列表中所包含的所述經(jīng)改變數(shù)據(jù)項(xiàng)目。
39. 根據(jù)權(quán)利要求37所述的裝置,其中同步模塊進(jìn)一步可操作以為所述無(wú)線(xiàn)裝置數(shù)據(jù) 集上已刪除的數(shù)據(jù)項(xiàng)目提供刪除指示符而不從所述網(wǎng)絡(luò)裝置數(shù)據(jù)集刪除所述數(shù)據(jù)項(xiàng)目。
40. 根據(jù)權(quán)利要求37所述的裝置,其中所述同步模塊進(jìn)一步可操作以基于所述數(shù)據(jù)項(xiàng) 目中的所述改變而更新數(shù)據(jù)項(xiàng)目版本號(hào),以及更新所述網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)以反映最高 定序的經(jīng)改變數(shù)據(jù)項(xiàng)目的所述版本號(hào)。
41. 根據(jù)權(quán)利要求40所述的裝置,其中所述同步模塊進(jìn)一步可操作以產(chǎn)生包含所述經(jīng) 更新網(wǎng)絡(luò)裝置數(shù)據(jù)集版本號(hào)和任何經(jīng)編譯網(wǎng)絡(luò)裝置數(shù)據(jù)集改變列表的同步確認(rèn)消息。
42. 根據(jù)權(quán)利要求36所述的裝置,其中所述網(wǎng)絡(luò)裝置在接收到所述同步請(qǐng)求消息之前 不知道所述無(wú)線(xiàn)裝置數(shù)據(jù)集版本號(hào)。
全文摘要
本發(fā)明提供了用于以無(wú)線(xiàn)方式使存儲(chǔ)于無(wú)線(xiàn)裝置上和網(wǎng)絡(luò)裝置(例如網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)庫(kù))處的數(shù)據(jù)集同步的方法、設(shè)備、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明方面提供了簡(jiǎn)化且有效率的同步過(guò)程,借此可在所述無(wú)線(xiàn)裝置與所述網(wǎng)絡(luò)裝置之間的無(wú)線(xiàn)通信的單個(gè)往返行程中完成同步。單個(gè)往返行程同步實(shí)現(xiàn)了網(wǎng)絡(luò)資源的較少使用、較短的總體同步循環(huán)時(shí)間,且減少了造成同步過(guò)程失敗的例如呼叫丟失等無(wú)線(xiàn)網(wǎng)絡(luò)故障的可能性。另外,通過(guò)創(chuàng)建允許網(wǎng)絡(luò)數(shù)據(jù)集與無(wú)線(xiàn)裝置數(shù)據(jù)集無(wú)關(guān)(即,網(wǎng)絡(luò)服務(wù)器不要求完全的改變歷史且網(wǎng)絡(luò)服務(wù)器不需要知道無(wú)線(xiàn)裝置數(shù)據(jù)集版本)的同步過(guò)程,進(jìn)一步實(shí)現(xiàn)了簡(jiǎn)化和效率。所述同步可應(yīng)用于基于網(wǎng)絡(luò)的游戲應(yīng)用程序。
文檔編號(hào)H04L29/08GK101743736SQ200880020531
公開(kāi)日2010年6月16日 申請(qǐng)日期2008年6月19日 優(yōu)先權(quán)日2007年6月19日
發(fā)明者布雷恩·H·凱利, 蘇迪爾·科甘蒂, 馬修·霍爾菲爾德 申請(qǐng)人:高通股份有限公司