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