專利名稱:從服務(wù)器刷新客戶端時(shí)再同步化客戶端裝置的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有計(jì)算能力并利用服務(wù)器的服務(wù)的消費(fèi)電子裝置;本發(fā)明尤其涉及利用更新的對(duì)象組從服務(wù)器刷新這些裝置的操作背景技術(shù)新的家用客戶端裝置、移動(dòng)電話或其它具有計(jì)算能力的消費(fèi)電子裝置使用網(wǎng)絡(luò)瀏覽器從提供互連網(wǎng)服務(wù)的網(wǎng)絡(luò)服務(wù)器把信息下載到本地。與專業(yè)設(shè)備相反,這些廣泛使用的裝置在離線模式下瀏覽本地信息。當(dāng)它們重新連接時(shí),需要根據(jù)服務(wù)器中該裝置已經(jīng)預(yù)定的服務(wù),用網(wǎng)絡(luò)服務(wù)器掌握的更新信息來(lái)刷新該裝置。
這些低成本消費(fèi)裝置的另一個(gè)特征是,在離線模式下,這些裝置可能因維護(hù)或甚至替換的原因而重新初始化。在這種情況中,在重新連接時(shí)必須在服務(wù)器和該裝置之間進(jìn)行再同步,這樣的再同步化還必須考慮到該裝置已經(jīng)預(yù)定的服務(wù)。
通常認(rèn)為,對(duì)于這種裝置,每晚定期刷新,加上按用戶的請(qǐng)求而刷新是適當(dāng)?shù)摹?br>
從服務(wù)器刷新裝置的操作的第一個(gè)問(wèn)題在于將要下載的信息量。因?yàn)樾畔⒖梢悦刻焖⑿乱淮位蚨啻?股價(jià)信息的情況如此),服務(wù)器不知道裝置請(qǐng)求的信息的級(jí)別,并且在重新連接的情況下,服務(wù)器將向每個(gè)客戶端裝置發(fā)送它自己完整的信息組。在每個(gè)裝置下載的信息量在傳輸時(shí)間和傳輸成本方面都較少的情況下,這種方法是可接受的。在所述裝置中本地保存的數(shù)據(jù)的持續(xù)增長(zhǎng)迅速導(dǎo)致難以管理的狀態(tài)。例如,對(duì)于每個(gè)裝置,10M字節(jié)的更新通常需要大于半小時(shí)的傳輸時(shí)間,而如果服務(wù)器有100K個(gè)裝置要更新,將需要巨大而又昂貴的通道來(lái)提供所需要的在這種情況中達(dá)到1兆兆字節(jié)的量。
現(xiàn)有的減少下載信息量的第一種解決方案為,用新級(jí)別的信息來(lái)刷新在線客戶端裝置。這一應(yīng)用于容器(container)的解決方案,已在轉(zhuǎn)讓給International Business Machines Corporation(國(guó)際商務(wù)機(jī)器公司)的美國(guó)專利US6148340中公開(kāi)。其包括在服務(wù)器端記錄(keep track)下載到裝置的容器的上一級(jí)別。為了用新級(jí)別的容器刷新裝置,服務(wù)器只發(fā)送自上次下載以來(lái)修改過(guò)的容器。而且,因?yàn)榉?wù)器保持刷新的級(jí)別,并且在每次客戶端裝置請(qǐng)求時(shí)重新評(píng)定刷新級(jí)別,因此刷新操作指向在線客戶端裝置。
現(xiàn)有技術(shù)的解決方案,高效地減少了網(wǎng)絡(luò)服務(wù)器在刷新操作期間下載到客戶端裝置的信息量。然而,當(dāng)已重新初始化的裝置離線時(shí),該方案不能答復(fù)該裝置再同步化的需要。因此,在重新連接時(shí),在客戶端裝置在其本地存儲(chǔ)器實(shí)際存儲(chǔ)的信息與網(wǎng)絡(luò)服務(wù)器認(rèn)為該客戶端裝置存儲(chǔ)到本地的已下載的信息之間存在差異。
而且,在現(xiàn)有技術(shù)的所述方案中,不考慮客戶端裝置向網(wǎng)絡(luò)服務(wù)器做的當(dāng)前預(yù)定。根據(jù)該方案,從向給定客戶端裝置下載上一級(jí)別的容器起,該客戶端裝置可能已改變預(yù)定的服務(wù)器服務(wù)中的一個(gè)服務(wù),并且可能訪問(wèn)與服務(wù)器根據(jù)這一方案而為該裝置記錄的容器不同的一組信息。
發(fā)明內(nèi)容
因此,本發(fā)明的一個(gè)目的是提供一種方法和系統(tǒng),當(dāng)客戶端裝置向服務(wù)器請(qǐng)求刷新對(duì)應(yīng)于其預(yù)定的服務(wù)的信息時(shí),向客戶端裝置發(fā)送其需要的正確級(jí)別的信息。
本發(fā)明的另一個(gè)目的是只發(fā)送已更新的信息。
本發(fā)明的另一個(gè)目的是,在重新連接時(shí),以根據(jù)當(dāng)前預(yù)定的服務(wù)器服務(wù)的信息級(jí)別再同步化客戶端裝置。
通過(guò)根據(jù)權(quán)利要求1的方法實(shí)現(xiàn)上述目的,所述方法在從服務(wù)器刷新客戶端裝置本地存儲(chǔ)的對(duì)象時(shí)再同步所述客戶端裝置,其中所述客戶端裝置通過(guò)通信裝置遠(yuǎn)程連接到所述服務(wù)器,所述服務(wù)器記錄所述客戶端裝置預(yù)定的交易,所述方法包括以下步驟-在客戶端裝置中讀取數(shù)據(jù)列表,所述數(shù)據(jù)列表包括對(duì)象標(biāo)識(shí)符和用于標(biāo)識(shí)客戶端裝置本地存儲(chǔ)器中存儲(chǔ)的對(duì)象內(nèi)容的摘要;-從所述客戶端裝置向所述服務(wù)器發(fā)送刷新請(qǐng)求消息,所述刷新請(qǐng)求消息包括客戶端裝置標(biāo)識(shí)符和所讀取的數(shù)據(jù)列表;-在服務(wù)器中讀取與由所接收的客戶端裝置標(biāo)識(shí)符標(biāo)識(shí)的所述客戶端裝置所預(yù)定的交易對(duì)應(yīng)的對(duì)象標(biāo)識(shí)符列表;
-在所述服務(wù)器比較從刷新請(qǐng)求中接收的數(shù)據(jù)列表和由所述服務(wù)器存儲(chǔ)的數(shù)據(jù)列表,由所述服務(wù)器存儲(chǔ)的數(shù)據(jù)列表包括對(duì)象標(biāo)識(shí)符和用于標(biāo)識(shí)也由所述服務(wù)器存儲(chǔ)的對(duì)象內(nèi)容的摘要;-從服務(wù)器向客戶端裝置發(fā)送具有對(duì)象列表的刷新答復(fù)消息,該對(duì)象列表包括為與所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)并且為其接收的摘要與服務(wù)器中讀取的摘要不同的對(duì)象,而從服務(wù)器中讀取的對(duì)象標(biāo)識(shí)符及其相應(yīng)摘要和內(nèi)容;-在客戶端裝置接收刷新答復(fù)消息,替換與屬于所述對(duì)象列表的對(duì)象的對(duì)象標(biāo)識(shí)符相對(duì)應(yīng)的本地存儲(chǔ)的對(duì)象的內(nèi)容和數(shù)據(jù)列表中的摘要。
根據(jù)權(quán)利要求2,如果新的對(duì)象屬于客戶端裝置已經(jīng)預(yù)定的交易,服務(wù)器在對(duì)象列表中添加對(duì)應(yīng)于這些新的對(duì)象的信息。根據(jù)權(quán)利要求3,當(dāng)相應(yīng)的對(duì)象不再屬于客戶端裝置預(yù)定的交易時(shí),服務(wù)器在對(duì)象列表中發(fā)送有特定代碼伴隨的對(duì)象標(biāo)識(shí)符??蛻舳搜b置將在其本地存儲(chǔ)器中消除該對(duì)象本身及其相關(guān)的信息。
本方法通過(guò)在服務(wù)器中運(yùn)行的程序產(chǎn)品和在客戶端裝置中運(yùn)行的程序產(chǎn)品實(shí)現(xiàn)。
本發(fā)明的主要優(yōu)點(diǎn)在于,其可以應(yīng)用于經(jīng)常在離線模式下使用的廣泛使用的客戶端裝置。
圖1示出了優(yōu)選實(shí)施例的環(huán)境;圖2示出了存儲(chǔ)在服務(wù)器端用于管理裝置對(duì)象的三個(gè)表,即預(yù)定表、交易對(duì)象表以及對(duì)象表;圖3示出了如何選擇客戶端裝置中更新的對(duì)象;圖4示出了下載到客戶端裝置的對(duì)象列表的格式;圖5示出了在刷新前后位于客戶端裝置中的用戶當(dāng)前對(duì)象表;圖6示出了在客戶端裝置和網(wǎng)絡(luò)服務(wù)器之間的信息交換;圖7示出了刷新和同步客戶端裝置的優(yōu)選實(shí)施例的方法的流程表。
具體實(shí)施例方式
圖1是對(duì)本發(fā)明的環(huán)境的描述。網(wǎng)絡(luò)服務(wù)器(100)通過(guò)網(wǎng)絡(luò)(130)對(duì)客戶端裝置(110、120)提供服務(wù),網(wǎng)絡(luò)(130)可以是互聯(lián)網(wǎng),并可以包括移動(dòng)通信?;ミB網(wǎng)客戶端裝置使用網(wǎng)絡(luò)瀏覽器對(duì)服務(wù)器發(fā)出訪問(wèn)信息的發(fā)送請(qǐng)求,所述信息可以是任何類型的對(duì)象,如HTML頁(yè)面或圖像文件(JPG、GIF等)或音頻文件(WAV、MP3等),并形成通常所稱的網(wǎng)絡(luò)文檔(150)。服務(wù)器記錄客戶端裝置標(biāo)號(hào)(identity),例如對(duì)移動(dòng)電話而言,利用其IMEI(國(guó)際移動(dòng)設(shè)備標(biāo)號(hào))。屏幕電話客戶端裝置可以發(fā)送其互聯(lián)網(wǎng)用具(appliance)的按ISRF標(biāo)準(zhǔn)化的識(shí)別碼。更一般地,所有的客戶端裝置發(fā)送類似于作為唯一標(biāo)識(shí)符的序列號(hào)的識(shí)別碼。
服務(wù)器還記錄由客戶端裝置預(yù)定的服務(wù)及更多其它方面,客戶端裝置可能對(duì)該服務(wù)提供并在其簡(jiǎn)檔中描述的特定信息感興趣。在對(duì)優(yōu)選實(shí)施例的描述中,預(yù)定了一個(gè)簡(jiǎn)單的示例服務(wù),而沒(méi)有簡(jiǎn)檔,但是本領(lǐng)域的技術(shù)人員可以容易地利用客戶端簡(jiǎn)檔改寫(xiě)該優(yōu)選實(shí)施例。所述信息可以是靜態(tài)的,例如用于烹飪信息服務(wù)的菜譜;或者可以每日刷新,例如報(bào)紙;或者每日刷新幾次,例如隨氣象位置(weather site)刷新。根據(jù)優(yōu)選實(shí)施例,服務(wù)器將只發(fā)送與先前發(fā)送的上一級(jí)別相比較新的信息。在圖1中,客戶端裝置已經(jīng)離線,并需要由網(wǎng)絡(luò)服務(wù)器刷新??蛻舳搜b置發(fā)送明確的具有再同步信息的刷新請(qǐng)求,所述再同步信息存儲(chǔ)在該裝置本地,并將幫助服務(wù)器以所需要的正確級(jí)別的信息再同步客戶端裝置。網(wǎng)絡(luò)文檔(150)最初由“來(lái)源服務(wù)器”(140)存儲(chǔ),所述來(lái)源服務(wù)器響應(yīng)請(qǐng)求將所述網(wǎng)絡(luò)文檔發(fā)送到對(duì)用戶客戶端裝置(110、120)提供服務(wù)的遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器(100)。遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器只用已更新的網(wǎng)絡(luò)文檔對(duì)象刷新客戶端裝置??蛻舳搜b置一旦得到刷新,根據(jù)本優(yōu)選實(shí)施例,可以利用已刷新的對(duì)象在本地重建網(wǎng)絡(luò)文檔(150)。
根據(jù)本實(shí)施例,作為網(wǎng)絡(luò)服務(wù)器信息服務(wù)的用戶的客戶端裝置具有通信設(shè)備本地存儲(chǔ)單元,以存儲(chǔ)建立網(wǎng)絡(luò)文檔的對(duì)象;以及至少一個(gè)處理器,以重建網(wǎng)絡(luò)文檔,顯示這些文檔并發(fā)送刷新請(qǐng)求。服務(wù)器通過(guò)下載信息再同步化和刷新所述裝置。所述裝置可以接收所述信息,修改本地存儲(chǔ)的對(duì)象和本地存儲(chǔ)的再同步信息。所述刷新和同步方法可以作為在服務(wù)器和客戶端裝置中的計(jì)算資源中運(yùn)行的程序而實(shí)現(xiàn)。
圖2示出了存儲(chǔ)在服務(wù)器端的三個(gè)表??蛻舳搜b置正瀏覽由對(duì)象構(gòu)成的“本地網(wǎng)頁(yè)”。對(duì)象是作為單個(gè)實(shí)體處理的數(shù)據(jù)塊。對(duì)于本優(yōu)選實(shí)施例的目的而言,對(duì)象是刷新單位(unit)。
服務(wù)器表有預(yù)定表(200)、交易對(duì)象表(210)和對(duì)象表(220)。預(yù)定表用于存儲(chǔ)由交易ID唯一標(biāo)識(shí)、并與由裝置ID唯一標(biāo)識(shí)的給定客戶端裝置相關(guān)聯(lián)的“交易”。每個(gè)交易對(duì)應(yīng)于對(duì)服務(wù)器提供的服務(wù)的預(yù)定。利用該表,服務(wù)器能夠找出所有與給定客戶端裝置相關(guān)的交易。交易對(duì)象表為由交易ID標(biāo)識(shí)的每個(gè)交易存儲(chǔ)與該交易相關(guān)并由服務(wù)器分配的對(duì)象ID唯一標(biāo)識(shí)的對(duì)象的列表。服務(wù)器使用該表找出所有屬于與給定客戶端裝置相關(guān)的交易的對(duì)象ID。對(duì)象表由服務(wù)器維持,使每個(gè)對(duì)象ID與一對(duì)象簽名即“摘要”相關(guān)聯(lián),用于標(biāo)識(shí)為安全性而使用的文本的內(nèi)容。MD5是給出對(duì)象的約化表示的單向混編信息(one-way hash)。MD5簽名使得能夠標(biāo)識(shí)具有較高安全級(jí)別的大文本。在優(yōu)選實(shí)施例中可以使用任何其它“摘要”。服務(wù)器充當(dāng)“代理”功能,從本地或遠(yuǎn)程“來(lái)源服務(wù)器”得到對(duì)象。在每次服務(wù)器從來(lái)源服務(wù)器接收新的對(duì)象時(shí),計(jì)算簽名。對(duì)象表包含最新接收到的對(duì)象值和相應(yīng)的計(jì)算出的簽名。服務(wù)器為每個(gè)對(duì)象ID存儲(chǔ)計(jì)算出的簽名、對(duì)象長(zhǎng)度以及標(biāo)識(shí)提供了包含所述對(duì)象的網(wǎng)絡(luò)文檔的互聯(lián)網(wǎng)或內(nèi)部網(wǎng)來(lái)源服務(wù)器的網(wǎng)址的本地URI(統(tǒng)一資源標(biāo)識(shí)符)或遠(yuǎn)程URL(統(tǒng)一資源定位符地址)。所述地址不用于對(duì)客戶端裝置進(jìn)行刷新和再同步化,而由服務(wù)器用來(lái)周期性地向來(lái)源服務(wù)器要求最新對(duì)象級(jí)別。
圖3示出了對(duì)象組的一個(gè)示例,以及服務(wù)器如何在所有這些對(duì)象中進(jìn)行選擇以刷新客戶端裝置。通過(guò)讀取預(yù)定表(200)和處理對(duì)象表(210)確定屬于給定客戶端裝置的交易的對(duì)象組。作為示例,對(duì)裝置T01而言,包括Obj2、Obj1、Obj3以及Obj4。服務(wù)器獲知在應(yīng)客戶端裝置發(fā)出的請(qǐng)求而進(jìn)行刷新之前客戶端裝置中已駐留哪些對(duì)象,這在將在下文中參考圖6詳細(xì)描述。這些對(duì)象形成對(duì)圖3的第二組,包括Obj5、Obj1、Obj3以及Obj4。服務(wù)器查找兩組間的交集,以確定需要為客戶端裝置更新的對(duì)象Obj1、Obj3和Obj4。對(duì)象Obj5不再是客戶端裝置預(yù)定的交易的一部分,并且服務(wù)器將請(qǐng)求客戶端裝置刪除Obj5及所述裝置中存儲(chǔ)的關(guān)于該對(duì)象的任何信息。對(duì)象Obj2不是已在客戶端裝置中駐留的對(duì)象服務(wù)器必須以該新對(duì)象刷新客戶端裝置。對(duì)于已在客戶端裝置中駐留的對(duì)象,Obj1、Obj3和Obj4,如果客戶端中駐留的版本不具有與其最新版本相同的簽名,服務(wù)器必須以該對(duì)象的最新版本刷新客戶端裝置。因?yàn)樵谟煽蛻舳搜b置發(fā)送的請(qǐng)求中將包括對(duì)象的簽名,所以服務(wù)器將獲知客戶端裝置中駐留的對(duì)象的簽名,這在下文中將參考圖6詳細(xì)描述。
圖4示出了服務(wù)器將下載到客戶端裝置以對(duì)其進(jìn)行刷新的對(duì)象列表的格式。圖4的示例示出了從Obj1到Objn共n個(gè)對(duì)象。對(duì)象列表中的每個(gè)“對(duì)象”包括對(duì)象ID、作為來(lái)自對(duì)象表的最新級(jí)別簽名的對(duì)象簽名、來(lái)自對(duì)象表的對(duì)象長(zhǎng)度、以及從來(lái)源服務(wù)器讀取的對(duì)象本身。
圖5示出了對(duì)客戶端裝置中維持的當(dāng)前用戶對(duì)象組表的更新。該表包括對(duì)象ID和對(duì)象的簽名。由服務(wù)器分配對(duì)象ID,由服務(wù)器計(jì)算簽名,并在前面的刷新操作中下載上述二者。當(dāng)前用戶對(duì)象組表包含從服務(wù)器接收的最新級(jí)別。一旦接收到由客戶端裝置發(fā)送的刷新請(qǐng)求,服務(wù)器將如圖3所示,選擇要下載到客戶端裝置的對(duì)象。當(dāng)客戶端裝置接收到服務(wù)器發(fā)送的對(duì)象列表時(shí),更新本地對(duì)象版本,客戶端裝置還相應(yīng)地更新所述表(所述對(duì)象ID和簽名)。在圖5中,第一個(gè)表是刷新前的先前級(jí)別(500),而第二個(gè)表是在刷新后的最新級(jí)別(510)。示出了與圖3中相同的示例,新級(jí)別(510)不再包括對(duì)Obj5的引用(reference),而引入對(duì)新對(duì)象Obj2的新引用,并且僅更新必須改變的對(duì)象Obj3的簽名,因?yàn)槠浜灻呀?jīng)改變。
圖6示出了在客戶端裝置和服務(wù)器之間交換的消息。示例中所用的協(xié)議是HTTP,其中利用“POST(發(fā)布)”命令發(fā)送請(qǐng)求(600)。發(fā)布的消息遵循本優(yōu)選實(shí)施例的刷新請(qǐng)求語(yǔ)法。該命令是“Refresh(刷新)”,在該示例中終端ID是T01,對(duì)象ID列表和關(guān)聯(lián)的簽名是客戶端裝置中本地存儲(chǔ)的當(dāng)前用戶對(duì)象組表中的內(nèi)容??蛻舳搜b置發(fā)布刷新本地存儲(chǔ)的對(duì)象的請(qǐng)求。對(duì)于這種離線時(shí)工作的客戶端裝置,可以每天發(fā)送一次該請(qǐng)求。服務(wù)器通過(guò)讀取客戶端裝置的識(shí)別號(hào)答復(fù)該請(qǐng)求,并利用兩個(gè)表即預(yù)定表(200)和交易對(duì)象表(210)標(biāo)識(shí)所有對(duì)應(yīng)于該客戶端裝置的交易和所有與這些交易相關(guān)的對(duì)象。根據(jù)圖3所示,服務(wù)器將決定哪些是要為該客戶端裝置(320)更新的候選對(duì)象。然后,通過(guò)讀取對(duì)象表,服務(wù)器對(duì)每個(gè)要刷新的候選對(duì)象讀取簽名。對(duì)象表中存儲(chǔ)的簽名是當(dāng)服務(wù)器從來(lái)源服務(wù)器接收并存儲(chǔ)最新級(jí)別的對(duì)象時(shí)計(jì)算出的簽名。如果對(duì)象表的簽名與來(lái)自客戶端裝置的請(qǐng)求中包括的簽名相同,那么服務(wù)器將不在其答復(fù)中發(fā)送該對(duì)象。在該示例中,Obj1和Obj4具有不同的簽名(分別是S12和S41),所以服務(wù)器將不發(fā)送它們。由客戶端裝置本地存儲(chǔ)的Obj3對(duì)應(yīng)于由簽名S32標(biāo)識(shí)的級(jí)別。在服務(wù)器中,所存儲(chǔ)的級(jí)別具有不同的簽名S31。必須發(fā)送當(dāng)前級(jí)別的Obj3以刷新客戶端裝置。還必須發(fā)送新Obj2,并且服務(wù)器因?yàn)镺bj5不再屬于客戶端裝置預(yù)定的交易,所以必須建議從客戶端裝置的存儲(chǔ)器中刪除Obj5。
圖6中還示出了來(lái)自服務(wù)器的答復(fù)(610)。利用HTTP協(xié)議,服務(wù)器發(fā)送答復(fù)發(fā)布消息的簡(jiǎn)單消息。該命令是“Refresh_response(刷新響應(yīng))”,隨后是根據(jù)參考圖4描述的格式的“Object_list(對(duì)象列表)”。將Obj3與更新的簽名S32、新對(duì)象長(zhǎng)度和對(duì)象內(nèi)容本身一起發(fā)送。將Obj2與以前計(jì)算出的簽名S21、對(duì)象長(zhǎng)度和對(duì)象內(nèi)容本身一起發(fā)送。如上所述,Obj5不再是客戶端裝置的交易的一部分,不對(duì)其刷新,并且刷新響應(yīng)中的簽名識(shí)別號(hào)0和對(duì)象長(zhǎng)度識(shí)別號(hào)0意味著必須從客戶端裝置的本地存儲(chǔ)器中取消該對(duì)象,并且必須從當(dāng)前用戶對(duì)象組表中刪除所述記錄。
如果在致命崩潰的情況下,在維護(hù)或由新裝置替換后重新初始化客戶端裝置,則當(dāng)前用戶對(duì)象組表是空的,而所述請(qǐng)求用于發(fā)送對(duì)應(yīng)于客戶端裝置已經(jīng)預(yù)定的交易的所有對(duì)象。由客戶端裝置發(fā)布的刷新命令將不包括對(duì)象。這是在優(yōu)選實(shí)施例中通知服務(wù)器其需要接收對(duì)應(yīng)于其已預(yù)定的所有交易的所有最新級(jí)別的對(duì)象的方式。
圖7是根據(jù)本優(yōu)選實(shí)施例,利用一組對(duì)象再同步化要刷新的客戶端裝置的方法的流程圖。
步驟700由客戶端裝置執(zhí)行,其中讀取存儲(chǔ)二元組(couple)(對(duì)象ID,簽名)的當(dāng)前用戶對(duì)象組表??蛻舳搜b置在例如互聯(lián)網(wǎng)絡(luò)中使用的HTTP協(xié)議(710)下發(fā)布消息,所述發(fā)布消息是客戶端-服務(wù)器環(huán)境中的客戶端請(qǐng)求。該消息包括根據(jù)參考圖6描述的格式的“Request_refresh(請(qǐng)求_刷新)”命令。其包括從當(dāng)前用戶對(duì)象組表中讀到服務(wù)器中的其預(yù)訂的所述二元組和客戶端裝置唯一標(biāo)識(shí)符。服務(wù)器讀取預(yù)定表(200)和交易對(duì)象表(210),并如參考圖3所述,識(shí)別對(duì)于該給定客戶端裝置而言要更新的候選對(duì)象、要?jiǎng)h除的對(duì)象以及要添加的對(duì)象。服務(wù)器讀取對(duì)象表中要更新的第一候選對(duì)象的簽名。如果該簽名與來(lái)自客戶端裝置的請(qǐng)求_刷新消息中的不同(對(duì)測(cè)試730回答否),那么,在刷新操作中保持該對(duì)象(740)。如果簽名相同(對(duì)測(cè)試730回答是),則讀取下一個(gè)對(duì)象,直到?jīng)]有要更新的候選對(duì)象(對(duì)測(cè)試750回答是),服務(wù)器準(zhǔn)備對(duì)象列表。如果否(對(duì)測(cè)試750回答否),核對(duì)要更新的下一個(gè)候選對(duì)象的簽名和請(qǐng)求_刷新中接收的簽名(730)。
服務(wù)器首先用要更新的對(duì)象建立對(duì)象列表(760)。如參考圖4所述,對(duì)象列表包括每個(gè)對(duì)象的對(duì)象ID、對(duì)象簽名、從對(duì)象表中讀取的對(duì)象長(zhǎng)度、以及服務(wù)器中所存儲(chǔ)的對(duì)象內(nèi)容自身。在對(duì)象列表中,服務(wù)器添加隨交易的改變或交易中的改變而添加的新對(duì)象的對(duì)象ID、對(duì)象簽名、從對(duì)象表中讀取的對(duì)象長(zhǎng)度以及對(duì)象內(nèi)容(770)。包括對(duì)象ID的三元組(triplet)的后面是指示由于交易的改變或交易中的改變而要?jiǎng)h除的對(duì)象的特定代碼。指定將刪除一個(gè)對(duì)象的一種可能是在對(duì)象列表中放入對(duì)象ID、以及對(duì)應(yīng)于簽名和對(duì)象長(zhǎng)度的零值??梢越Y(jié)合對(duì)象ID使用其它任何標(biāo)識(shí),來(lái)通知客戶端裝置將刪除該對(duì)象(770)。服務(wù)器利用客戶端-服務(wù)器HTTP協(xié)議發(fā)送對(duì)刷新請(qǐng)求的響應(yīng)(780)??蛻舳搜b置接收對(duì)象列表,并能夠讀取每個(gè)對(duì)象的對(duì)象ID、對(duì)象簽名、對(duì)象長(zhǎng)度,并利用對(duì)象長(zhǎng)度讀取對(duì)象內(nèi)容,以識(shí)別對(duì)象的結(jié)束。利用接收到的信息,客戶端裝置用對(duì)象ID和對(duì)應(yīng)的簽名更新當(dāng)前用戶對(duì)象組表。其刪除要?jiǎng)h除的對(duì)象條目,并添加新對(duì)象條目。然后,用所發(fā)送的最新級(jí)別在其本地存儲(chǔ)器中替換對(duì)象內(nèi)容本身。服務(wù)器已用其所需要的對(duì)象而刷新和再同步。
權(quán)利要求
1.一種在從服務(wù)器刷新客戶端裝置本地存儲(chǔ)的對(duì)象時(shí)再同步所述客戶端裝置的方法,其中所述客戶端裝置通過(guò)通信裝置遠(yuǎn)程連接到所述服務(wù)器,所述服務(wù)器記錄所述客戶端裝置預(yù)定的交易,所述方法包括以下步驟-在客戶端裝置中讀取數(shù)據(jù)列表,所述數(shù)據(jù)列表包括對(duì)象標(biāo)識(shí)符和用于標(biāo)識(shí)客戶端裝置本地存儲(chǔ)器中存儲(chǔ)的對(duì)象內(nèi)容的摘要;-從所述客戶端裝置向所述服務(wù)器發(fā)送刷新請(qǐng)求消息,所述刷新請(qǐng)求消息包括客戶端裝置標(biāo)識(shí)符和所讀取的數(shù)據(jù)列表;-在服務(wù)器中讀取與由所接收的客戶端裝置標(biāo)識(shí)符標(biāo)識(shí)的所述客戶端裝置所預(yù)定的交易對(duì)應(yīng)的對(duì)象標(biāo)識(shí)符列表;-在所述服務(wù)器比較從刷新請(qǐng)求中接收的數(shù)據(jù)列表和由所述服務(wù)器存儲(chǔ)的數(shù)據(jù)列表,由所述服務(wù)器存儲(chǔ)的數(shù)據(jù)列表包括對(duì)象標(biāo)識(shí)符和用于標(biāo)識(shí)也由所述服務(wù)器存儲(chǔ)的對(duì)象內(nèi)容的摘要;-從服務(wù)器向客戶端裝置發(fā)送具有對(duì)象列表的刷新答復(fù)消息,該對(duì)象列表包括為與所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)并且為其接收的摘要與服務(wù)器中讀取的摘要不同的對(duì)象,而從服務(wù)器中讀取的對(duì)象標(biāo)識(shí)符及其相應(yīng)摘要和內(nèi)容;-在客戶端裝置接收刷新答復(fù)消息,替換與屬于所述對(duì)象列表的對(duì)象的對(duì)象標(biāo)識(shí)符相對(duì)應(yīng)的本地存儲(chǔ)的對(duì)象的內(nèi)容和數(shù)據(jù)列表中的摘要。
2.如權(quán)利要求1所述的方法,其中發(fā)送刷新答復(fù)的步驟還包括以下步驟-在對(duì)象列表中添加為與所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)并且不屬于刷新請(qǐng)求消息中的數(shù)據(jù)列表的對(duì)象,而從服務(wù)器中讀取的對(duì)象標(biāo)識(shí)符及其相應(yīng)摘要和內(nèi)容。
3.如權(quán)利要求1或2所述的方法,其中發(fā)送刷新答復(fù)消息的步驟還包括以下步驟-為屬于刷新請(qǐng)求消息中的數(shù)據(jù)列表而不與所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)的對(duì)象,在對(duì)象列表中添加對(duì)象標(biāo)識(shí)符和特定代碼;接收刷新答復(fù)消息的步驟還包括以下步驟-對(duì)屬于對(duì)象列表并具有特定代碼的對(duì)象,消除本地存儲(chǔ)的對(duì)象的內(nèi)容以及客戶端裝置中的數(shù)據(jù)列表中的所述對(duì)象標(biāo)識(shí)符及其摘要。
4.如權(quán)利要求1或3中任何一個(gè)所述的方法,還包括以下步驟-通過(guò)通信裝置,從連接到所述服務(wù)器的至少另一臺(tái)服務(wù)器接收已存儲(chǔ)在該服務(wù)器中的新版本的對(duì)象內(nèi)容;-用新版本替換已存儲(chǔ)的對(duì)象內(nèi)容,計(jì)算所述新版本的對(duì)象的摘要,并更新與由服務(wù)器中存儲(chǔ)的數(shù)據(jù)列表中的對(duì)象標(biāo)識(shí)符標(biāo)識(shí)的對(duì)象相對(duì)應(yīng)的摘要。
5.如權(quán)利要求1到4中任何一個(gè)所述的方法,還包括以下步驟-在服務(wù)器中保持與終端標(biāo)識(shí)符相關(guān)的交易列表,所述終端標(biāo)識(shí)符標(biāo)識(shí)已預(yù)定所述相關(guān)交易的客戶端裝置;所述服務(wù)器利用所述交易列表和相關(guān)終端標(biāo)識(shí)符,來(lái)執(zhí)行讀取與由所接收的客戶端裝置標(biāo)識(shí)符標(biāo)識(shí)的所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)的對(duì)象標(biāo)識(shí)符列表的步驟。
6.如權(quán)利要求1到5中任何一個(gè)所述的方法,還包括以下步驟-在服務(wù)器中保持與至少一個(gè)對(duì)象標(biāo)識(shí)符相關(guān)的交易列表,所述相關(guān)對(duì)象標(biāo)識(shí)符標(biāo)識(shí)在給定時(shí)間是交易的一部分的對(duì)象;服務(wù)器利用所述交易列表和相關(guān)對(duì)象標(biāo)識(shí)符,來(lái)執(zhí)行讀取與由所接收的客戶端裝置標(biāo)識(shí)符標(biāo)識(shí)的所述客戶端裝置所預(yù)定的交易相對(duì)應(yīng)的對(duì)象標(biāo)識(shí)符列表的步驟。
7.如權(quán)利要求1到6中任何一個(gè)所述的方法,還包括以下步驟-從服務(wù)器為刷新答復(fù)消息中發(fā)送的對(duì)象列表中的每個(gè)對(duì)象,在每個(gè)對(duì)象內(nèi)容前添加對(duì)象內(nèi)容的長(zhǎng)度,對(duì)象標(biāo)識(shí)符、摘要、對(duì)象長(zhǎng)度和對(duì)象內(nèi)容依次寫(xiě)入;以及-為對(duì)象列表中的每個(gè)對(duì)象,從客戶端裝置讀取對(duì)象長(zhǎng)度,并利用對(duì)象長(zhǎng)度來(lái)讀取依次寫(xiě)入的對(duì)象內(nèi)容。
8.如權(quán)利要求1到7中任何一個(gè)所述的方法,其中所述摘要是MD5簽名。
9.如權(quán)利要求1到8中任何一個(gè)所述的方法,其中所述通信裝置是互聯(lián)網(wǎng),所述服務(wù)器以及所述至少另一臺(tái)服務(wù)器是網(wǎng)絡(luò)服務(wù)器,而所述對(duì)象形成網(wǎng)絡(luò)文檔。
10.一種計(jì)算機(jī)程序成品,包括程序代碼指令,用于當(dāng)在計(jì)算機(jī)上執(zhí)行所述程序時(shí),執(zhí)行根據(jù)權(quán)利要求1到9中任何一個(gè)而由客戶端裝置執(zhí)行的方法的步驟。
11.一種計(jì)算機(jī)程序產(chǎn)品,包括程序代碼指令,用于當(dāng)在計(jì)算機(jī)上執(zhí)行所述程序時(shí),執(zhí)行根據(jù)權(quán)利要求1到9中任何一個(gè)而由服務(wù)器執(zhí)行的方法的步驟。
12.一種計(jì)算系統(tǒng),包括適配為執(zhí)行如權(quán)利要求10所述的計(jì)算機(jī)程序的裝置。
13.一種計(jì)算系統(tǒng),包括適配為執(zhí)行如權(quán)利要求11所述的計(jì)算機(jī)程序的裝置。
全文摘要
一種方法和計(jì)算系統(tǒng),用于從服務(wù)器刷新在通過(guò)通信裝置遠(yuǎn)程連接到所述服務(wù)器的客戶端裝置中本地存儲(chǔ)的對(duì)象。所述客戶端裝置發(fā)送刷新請(qǐng)求消息以及其本地存儲(chǔ)器中存儲(chǔ)的對(duì)象標(biāo)識(shí)符列表和對(duì)象自身的摘要。所述服務(wù)器,在檢查客戶端裝置所預(yù)定的交易后,發(fā)送回具有在客戶端裝置中本地存儲(chǔ)并需要刷新的對(duì)象的刷新答復(fù)消息。根據(jù)客戶端裝置所預(yù)定的交易,服務(wù)器還將向客戶端裝置發(fā)送新對(duì)象,并發(fā)送特定代碼以向客戶端裝置指定要?jiǎng)h除不再是交易的一部分的對(duì)象。
文檔編號(hào)G06F17/30GK1653420SQ03811116
公開(kāi)日2005年8月10日 申請(qǐng)日期2003年5月13日 優(yōu)先權(quán)日2002年6月20日
發(fā)明者杰勒德·馬米蓋爾, 喬奎因·皮肯, 皮埃爾·塞康多 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司