專利名稱:用于使大對象數據同步的方法
技術領域:
本發(fā)明一般地涉及使數據在移動設備與服務器之間同步。本發(fā)明具體地但非排他性地涉及使包含在個人信息管理器(PIM)數據中的大對象數據同步。
背景技術:
移動電話服務的用戶一般要求從移動服務提供商提供高等級的方便性。因此先進的移動電話特征,例如國際漫游、空中(Over-The-Air,OTA)供應和不同類型手持裝置之間的互操作性,也愈加普遍。
在二十世紀九十年代早期,全球移動通信系統(tǒng)(GSM)網絡開始使用用戶識別模塊(SIM)來為用戶提供方便的認證過程以及給移動設備提供可移動存儲器。通用移動電信系統(tǒng)用戶識別模塊(RUIM)提供與SIM相似的功能,但是其是用于寬帶碼分多址(WCDMA)/UMTS(3G)電話的。另外,可移動用戶識別模塊(RUIM)使得能夠跨CDMA和GSM網國際漫游,并且使得用戶能夠對他們的手持裝置進行升級而無需對例如他們的個人識別信息和他們的電話/地址本的特征進行重新編程。SIM、USIM和RUIM一般是包含用于存儲信息的嵌入式計算機芯片的小塑料卡,所述信息例如安全數據、預訂數據、電話/地址本數據、網絡設置和與具體服務特征相關的其它信息。
因此,現在國際旅行者可以進行跨網的“彈性漫游”。例如,用戶僅僅通過將RUIM從CDMA電話上拆下并將RUIM放到GSM電話中就可以從CDMA網漫游到GSM網。然后,用戶的網絡數據和個人數據立刻就可被新的網絡識別。移動用戶還因為其它原因而在手持裝置之間傳送識別模塊。例如,用戶可能擁有多個移動電話,而每一個都具有獨特的特征,例如不同的攝像或藍牙選擇。那么用戶可以選擇攜帶對特定環(huán)境最適合的特定電話。此外,用戶常常在第一電話中出現低電池電量狀況時將他們的識別模塊從第一電話轉換到第二電話。
例如應用程序數據的與移動電話相關的數據和例如任務、日歷和地址本條目的個人信息管理器(PIM)數據,經常被存儲在與電話相關聯的多個存儲位置。例如,相同的地址本數據可以存儲在嵌入在電話中的靜態(tài)存儲器、SIM卡以及操作上連接到由移動服務提供商操作的服務器上的存儲器中。此外,便攜式存儲器例如SIM、USIM和RUIM的增多使用以及大對象數據例如圖像、聲音和視頻文件的增多傳輸,已經導致更多的數據存儲在與移動服務相關聯的存儲器中。
因此已經開發(fā)了例如SyncML(同步標記語言)的標準來提供用于跨多個網絡、平臺和設備的遠程數據和個人信息的同步的通用方法。這種標準旨在支持例如超文本傳輸協(xié)議(HTTP)、無線會話協(xié)議(WSP)和對象交換協(xié)議(OBEX)的各種傳輸協(xié)議,以及例如個人數據(例如V卡和V日歷數據)、關系數據和XML文檔的數據的多種數據格式。
但是,現有標準沒有提供用于使大對象數據同步的有效方法。例如鈴聲或圖像文件的大對象數據的多個副本可以存儲在與移動電話相關聯的多個存儲器中,并且每一個副本都可能冗余地且不必要地與存儲在服務器處的大對象數據同步。這種不必要的同步是對包括帶寬和電源資源的網絡和移動設備資源的浪費。
發(fā)明內容根據一方面,本發(fā)明是從服務器角度描述的用于使大對象數據同步的方法。該方法包括在服務器處處理接收自移動設備的客戶同步包。客戶同步包包括描述第一客戶大對象數據的第一客戶大對象元數據。第一客戶大對象元數據然后被與描述第一服務器大對象數據的第一服務器大對象元數據進行比較。服務器狀態(tài)代碼然后被從服務器傳送到移動設備,指示第一客戶大對象數據與第一服務器大對象數據是不同的。第一客戶大對象數據和第一服務器大對象數據然后在服務器處被同步,在服務器處響應于服務器狀態(tài)代碼第一客戶大對象數據被從移動設備接收。
根據另一個方面,本發(fā)明是從移動設備角度描述的用于使大對象數據同步的方法。該方法包括將客戶同步包從移動設備傳送到服務器??蛻敉桨枋龅谝豢蛻舸髮ο髷祿牡谝豢蛻舸髮ο笤獢祿=邮兆苑掌鞯姆掌鳡顟B(tài)代碼然后在移動設備處被處理。服務器狀態(tài)代碼指示第一客戶大對象數據與第一服務器大對象數據是不同的。然后,響應于服務器狀態(tài)代碼,包括第一客戶大對象數據的第一客戶大對象數據包被從移動設備傳送到服務器。
本發(fā)明因此提供了用于使大對象數據同步的有效方法。例如聲音、圖像或視頻文件的大對象數據的多個副本可以被存儲在與移動設備相關聯的多個存儲器中,但是每一個副本不會與存儲在服務器處的大對象數據冗余地或不必要地同步。相反,大對象數據僅在必要時被同步,從而使例如帶寬和電源資源的網絡和移動設備資源得以節(jié)約。
為了使本發(fā)明易于理解和有效實施,現在將參考參照附圖圖示的示例性實施例,其中在所有各圖中相同的標號指代相同的或功能相似的單元。附圖以及下面的詳細描述包含在說明書中且構成其一部分,用于根據本發(fā)明進一步說明實施例以及解釋各種原理和優(yōu)點,其中圖1是圖示執(zhí)行本發(fā)明方法的無線電話形式的移動設備的示意圖;圖2是圖示根據1.2版SyncML標準的雙路同步方法的消息序列圖(MSC);圖3是圖示根據本發(fā)明實施例的雙路同步方法的MSC;圖4是圖示從服務器角度描述的根據本發(fā)明實施例用于使大對象數據同步的方法的總體流程圖;以及圖5是圖示從移動設備角度描述的根據本發(fā)明實施例用于使大對象數據同步的方法的總體流程圖。
本領域技術人員將了解圖中的單元是為了簡單、清楚來描述的,不一定是按照比例畫的。例如,圖中某些單元的尺寸相對于其它單元可能被放大,以有助于增進對本發(fā)明實施例的理解。
具體實施方式在詳細描述根據本發(fā)明的實施例之前,應該注意實施例主要在于用于使大對象數據同步的方法步驟以及與方法相關的裝置部件的組合。因此,裝置部件和方法步驟在圖中在合適處由傳統(tǒng)符號表示,僅僅示出了與用于理解本發(fā)明實施例相關的那些特定細節(jié),以避免以受益于本文的描述的本領域普通技術人員很容易明白的細節(jié)來模糊本公開內容。
在本文中,例如左和右、第一和第二等的關系術語可以僅僅被用來將一個實體或動作與另一個實體或動作區(qū)分開,而不一定要求或暗示在這種實體或動作之間的任何實際上的這種關系或順序。術語“包括”、“包含”或其任何其它變化形式旨在覆蓋非窮舉的包含,因此包括一系列單元的過程、方法、產品或裝置不僅僅包括這些單元,而是可以包括沒有明確列出的或者這種過程、方法、產品或裝置非固有的其它單元。如果沒有更多限制,出現在“包括”之后的單元不排除在包括該單元的過程、方法、產品或裝置中額外的相同單元的存在。
現在參照圖1,示意圖圖示了執(zhí)行本發(fā)明方法的無線電話100形式的移動設備。電話100包括被耦合成與處理器103通信的射頻通信單元102。電話100還包括被耦合成與處理器103通信的鍵盤106和顯示屏幕105。如本領域技術人員將很清楚的,屏幕105可以是觸摸屏從而使得鍵盤106為可選。
處理器103包括帶有相關聯的代碼只讀存儲器(ROM)112的編碼器/解碼器111,只讀存儲器112存儲用于編碼和解碼可能由無線電話100發(fā)送的或者接收的語音或其它信號的數據。處理器103還包括通過公用數據和地址總線117耦合到編碼器/解碼器111的微處理器113、字符只讀存儲器(ROM)、隨機訪問存儲器(RAM)104、靜態(tài)可編程存儲器116和SIM接口118。操作上耦合到SIM接口118的靜態(tài)可編程存儲器116和SIM的每一個可以存儲選出的進入文本消息以及電話號碼數據庫TND(電話簿)等等,TND包括用于電話號碼的號碼域和用于與號碼域中號碼之一相關聯的標識符的名字域。例如,電話號碼數據庫TND中的一個條目可能是91999111111(輸入在號碼域中),其名字域中相關聯的標識符為“Steven C!at work”。
微處理器113具有用于耦合到鍵盤106、屏幕105和警報器115的端口,警報器115典型地包含警報揚聲器、振動電動機和相關聯的驅動器。此外,微處理器113具有用于耦合到麥克風135和通信揚聲器140的端口。字符只讀存儲器114存儲用于對可能由通信單元102接收的文本消息進行解碼或編碼的代碼。在該實施例中,字符只讀存儲器114還存儲用于微處理器113的操作代碼(OC)和用于執(zhí)行與無線電話100相關聯的功能的代碼。
射頻通信單元102是具有公用天線107的組合式接收器和傳送器。通信單元102具有經由射頻放大器109耦合到天線107的收發(fā)器。收發(fā)器108還被耦合到將通信單元102耦合到處理器103的組合式調制器/解調器110。
現在參照圖2,消息序列圖(MSC)200圖示了根據1.2版SyncML標準的雙路同步方法。首先,SyncMl客戶設備205和SyncML服務器210被配置成能夠彼此通信。用戶215然后通過在客戶設備205處輸入同步命令而起動同步方法??蛻舫跏蓟?包1)然后被從設備205傳送到服務器210。服務器210然后通過將服務器初始化包(包2)發(fā)送到設備205而作出響應。接下來,設備205準備需要被發(fā)送到服務器210的數據,并將同步包(包3)傳送到服務器210。例如,同步包可以包括存儲在連接到設備205的SIM卡中的個人信息管理器(PIM)數據。服務器210接收同步包、更新其數據庫并將狀態(tài)和同步包(包4)傳送到設備205。設備205然后接收同步包,用它更新其數據庫,例如存儲在SIM卡上的數據庫,并將狀態(tài)包(包5)傳送到服務器210。服務器210然后傳送確認包(包6)到設備205。最后,設備205向用戶215提供同步已成功完成的指示。
根據1.2版SyncML標準,客戶初始化包和服務器初始化包兩者都是一般的同步初始化包,它們不能提供有關將被同步的數據的詳細信息。例如聲音、圖像或視頻文件的大對象數據經常被自動同步,而不管這種大對象數據是否需要同步。例如,相同的圖像文件可以嵌入在存儲于SIM卡的聯絡數據庫中的多個v卡中。在與聯絡數據庫有關的同步處理過程中,相同的圖像文件將在移動設備205與服務器210之間被空中傳送多次。這種不必要的冗余的傳送浪費了網絡帶寬,還浪費了移動設備205的處理器和電源資源。
現在參照圖3,MSC 300圖示了根據本發(fā)明實施例的雙路同步方法。首先,例如無線電話100的客戶移動設備和服務器310被配置成能夠彼此通信。用戶315通過輸入同步命令而起動同步方法,然后電話100將客戶初始化包(包1)傳送到服務器310。服務器310然后將服務器初始化包(包2)傳送到電話100。接下來,電話100準備合適的同步數據和描述大對象數據的客戶大對象元數據。例如,客戶大對象元數據可以包括大對象數據的屬性,例如文件名、文件大小、檢驗和或者與大對象數據是否應該被同步相關的其它元數據。電話100然后將包括客戶大對象元數據的客戶同步包(包3)傳送到服務器310。
服務器310然后將客戶大對象元數據與描述服務器大對象數據的服務器大對象元數據進行比較。例如,客戶大對象元數據可以包括圖像文件名以及指示與圖像文件相關聯的圖像文件何時被最后修改的時間戳。服務器大對象元數據可以包括相同的圖像文件名和相關聯的時間戳。服務器310將客戶大對象元數據中的時間戳與服務器大對象元數據中的時間戳相比較。如果時間戳是相同的,那么服務器310認定存儲在服務器310處的圖像文件與存儲在電話100處的圖像文件是相同的,并且不需要圖像文件的同步和傳送?;蛘撸绻麜r間戳是不同的,那么服務器310認定存儲在服務器310處的圖像文件與存儲在電話100處的圖像文件不同,從而需要圖像文件的同步與傳送。
在將客戶大對象元數據與服務器大對象元數據進行比較之后,服務器310向電話100傳送包括指示比較結果的服務器狀態(tài)代碼的服務器同步包(包4)。例如,樣本狀態(tài)代碼可以如下定義·代碼250新文件,傳遞大對象數據;·代碼251現有文件的新版本,傳遞大對象數據;·代碼252現有文件的老版本,不傳遞大對象數據;·代碼351大對象數據同步錯誤,重新發(fā)送請求。
如將由本領域技術人員了解的,多種其它的狀態(tài)代碼定義也都在本發(fā)明的范圍之內,包括基于大對象元數據的比較指示大對象數據是否應該被同步的任何類型的信息。
包4還可以包括描述額外服務器大對象數據的額外服務器大對象元數據。這種額外服務器大對象數據可以包括例如既存儲在服務器310處又存儲在電話100處的圖像文件,服務器310確定該文件應該被同步,但是該文件在被從電話100發(fā)送到服務器310的客戶同步包中沒有被描述。額外服務器大對象元數據因此作為對電話100的詢問,并從電話100請求關于額外服務器大對象數據是否需要被傳遞到電話100并被同步的響應。額外服務器大對象元數據然后在電話100處被與額外客戶大對象元數據進行比較。
如果在包4中接收的狀態(tài)代碼指示大對象數據需要被從電話100傳遞到服務器310,那么電話100將客戶大對象數據包(包5)傳送到服務器310,該包包括所要求的大對象數據。客戶大對象數據包還可以包括響應于包4中所含的額外服務器大對象元數據的客戶狀態(tài)代碼。可用客戶狀態(tài)代碼可以與服務器狀態(tài)代碼相同,例如前面列出的樣本狀態(tài)代碼,并指示額外的服務器大對象元數據與額外的客戶大對象元數據在電話100處的比較結果。
如果客戶狀態(tài)代碼指示額外的服務器大對象數據應該被傳送和同步,那么服務器310響應于接收自電話100的客戶狀態(tài)代碼將服務器大對象數據包(包6)傳送到電話100。電話100然后將數據更新狀態(tài)包(包7)傳送到服務器310,服務器310將映射確認包(包8)傳送回電話100。最后,上述同步過程的結果例如通過顯示在電話100的顯示屏105上的消息而被提供給用戶315。
為了使本發(fā)明的一般特征更加清楚,下面是使用樣本可擴展標記語言(XML)代碼實現本發(fā)明特定實施例的一組示例性包1到8。下面的包1到8對應于圖3中示出的包1到8。在下面的XML示例中,電話100請求包括嵌入式圖像的新v卡記錄的同步,服務器310請求新聯絡記錄的同步。
示例包1從客戶到服務器的客戶初始化包(與標準SyncML初始化包1相同。)樣本代碼<SyncML xmlns=″syncmlSYNCML1.1″>
<SyncHdr>
……
<Target>
<LocURI>SyncMLServer</LocURI>
</Target>
<Source>
<LocURI>000000011234564</LocURI>
<LocName>moto</LocName>
</Source>
……</SyncHdr>
<SyncBody>
<Alert>
<CmdID>1</CmdID>
<Data>200</Data>
<Item>
<Target>
<LocURI>Contacts</LocURI>
</Target>
<Source>
<LocURI>./Contact</LocURI>
</Source>
<Meta>
<Anchor xmlns=″syncmlmgtinf″>
<Last>474</Last>
<Next>475</Next>
</Anchor>
</Meta>
</Item>
</Alert>
……<Final/>
</SyncBody>
</SyncML>
示例包2從服務器到客戶的服務器初始化包(與標準SyncML初始化包2相同。)樣本代碼<SyncML xmlns=″syncmlSYNCML1.1″>
<SyncHdr>
……</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>SyncMLServer</TargetRef>
<SourceRef>000000011234564</SourceRef>
<Data>212</Data>
</Status>
……<Alert>
<CmdID>6</CmdID>
<Data>200</Data>
<Item>
<Target>
<LocURI>Contact</LocURI>
</Target>
<Source>
<LocURI>Contacts</LocURI>
</Source>
<Meta>
<Type xmlns=″syncmlmetinf″>text/x-vcard</Type>
<Anchor xmlns=″syncmlmetinf″>
<Last>20051208T045312Z</Last>
<Next>20051208T045548Z</Next>
</Anchor>
</Meta>
</Item>
</Alert>
<Final/>
</SyncBody>
</SyncML>
示例包3從客戶到服務器的客戶同步包樣本代碼<SyncML xmlms=″syncmlSYNCML1.1″>
<SyncHdr>
……</SyncHdr>
<SyncBody>
……<Sync>
……<Add>
<CmdID>10</CmdID>
<Meta>
<Type xmlns=″syncmlmetinf″>text/x-vcard</Type>
</Meta>
<Item>
<Source>
<LocURI>86</LocURI>
</Source>
<Data><![CDATA[BEGINVCARDVERSION2.1N;CHARSET=UTF-8B;ATEL;CELL;HOME;CHARSET=UTF-81111PHOTO;ENCODING=BASE64;TYPE=JPEGPhoneRecordImage.jpg]]></Data>
<!-->v卡中的大對象同步>
<!—該部分對大對象同步是新的。新的公用單元在這里增加作為“附件”,這意味著單獨的大對象。附件的操作只是“增加”或“更新”。用戶可以根據需要定義。新的數據將被增加,并且較新版本應該更新較舊版本。-->
<附件>
<File>
<name>PhoneRecordImage.jpg</name>
<created>20030807T231830</created>
<modified>20030809T015500</modified>
<attributes>
OMA-DS-DataObjFile-V1_2-20040601-C Page 25(26)<h>false</h>
<a>true</a>
</attributes>
</File>
</Attach>
</Item>
</Add>
</Sync>
<Final/>
</SyncBody>
</SyncML>
示例包4從服務器到客戶的服務器同步包樣本代碼
<SyncMLxmlns=″syncmlSYNCML1.1″>
<SyncHdr>
……</SyncHdr>
<SyncBody>
……<Status>
<CmdID>3</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>10</CmdRef>
<Cmd>Add</Cmd>
<SourceRef>86</SourceRef>
<Data>201</Data>
<!—在這里增加了新的通用元素“AttData”,其是通過元數據的比較而得出的狀態(tài)代碼,指示新文件需要大對象數據的傳遞。>
<AttData>250</AttData>
</Status>
<Sync>
<CmdID>4</CmdID>
<Target>
<LocURI>Contact</LocURI>
</Target>
<Source>
<LocURI>Contacts</LocURI>
</Source>
<Add>
<CmdID>5</CmdID>
<Meta>
<Type xmlns=″syncmlmetinf″>text/x-vcard</Type>
</Meta>
<Item>
<Source>
<LocURI>T-0</LocURI>
</Source>
<Data><![CDATA[BEGINVCARDVERSION2.1ND;CTEL;WORK2222PHOTO;ENCODING=BASE64;JPEGServerRecordImage.jpgENDVCARD]]></Data>
<!—這部分對大對象同步是新的。-->
<附件>
<File>
<name>ServerRecordImage.jpg</name>
<created>20030807T231830</created>
<modified>20030809T015500</modified>
<attributes>
OMA-DS-DataObjFile-V1_2-20040601-C Page 25(26)<h>false</h>
<a>true</a>
</attributes>
</File>
</Attach>
</Item>
</Add>
</Sync>
<Final/>
</SyncBody>
</SyncML>
示例包5從客戶到服務器的客戶大對象數據包樣本代碼……<Status>
<CmdID>7</CmdID>
<MsgRef>3</MsgRef>
<CmdRef>5</CmdRef>
<Cmd>Add</Cmd>
<Data>201</Data>
<!狀態(tài)代碼251指示“現有文件的新版本,傳遞大對象數據”-->
<AttData>251</AttData>
</Status>
<!—根據包#4’cmd 3 AttData 250同步到服務器的大對象-->
<Sync>
<CmdID>8</CmdID>
……<Add><!--Add new file from client to server-->
<CmdID>9</CmdID>
<Meta><Type xmlns=′syncmlmetinf′>application/vnd.omads-file+xml</Type></Meta>
<Item>
……<SourceParent><LocURI>86</LocURI></SourceParent>
<!--send the file to server-->
<Data><!CDATA[<File>
<name>PhoneRecordImage.jpg</name>
<created>20030807T231830</created>
<modified>20030809T015500</modified>
<attributes>
OMA-DS-DataObjFile-V1_2-20040601-C Page 25(26)<h>false</h>
<a>true</a>
</attributes>
<body enc=″base64″>
<!--The content of the file goes here-->
……</body>
</File>]]>
</Data>
</Item>
</Add><!--AttData 250-->
</Sync>
……包6從服務器到客戶的服務器大對象數據包樣本代碼
……<!-->>large object patent-->
<Status>
<!--Server′s response of syncing large object from client-->
<CmdID>3</CmdID>
<MsgRef>2</MsgRef>
<CmdRef>9</CmdRef>
<Cmd>Add</Cmd>
<SourceParent>
<LocURI>86</LocURI>
</SourceParent>
<AttData>201</AttData>
</Status>
<Sync>
<!--Sync file to client according to pkg #5′cmd 7AttData 251-->
<CmdID>4</CmdID>
……<Replace><!--Replace client′s file by using server side one-->
<CmdId>5</CmdId>
<Meta><Type xmlns=′syncmlmetinf′>application/vnd.omads-file+xml</Type></Meta>
<Item>
……<SourceParent><LocURI>T-0</LocURI></SourceParent>
<!--Server sends the file to phone-->
<Data><![CDATA[<File>
<name>ServerRecordImage.jpg</name>
<created>20030807T231830</created>
<modified>20030809T015500</modified>
<attributes>
OMA-DS-DataObjFile-V1_2-20040601-C Page 25(26)<h>false</h>
<a>true</a>
</attributes>
<body enc=″base64″>
<!--The content of the file goes here-->
……</body>
</File>]]>
</Data>
</Item>
</Replace><!--AttData 251-->
</Sync>
……包7從客戶到服務器的數據更新狀態(tài)包
樣本代碼……<Status>
<CmdID>8</CmdID>
<MsgRef>4</MsgRef>
<CmdRef>5</CmdRef>
<Cmd>Replace</Cmd>
<SourceParent>
<LocURI>T-0</LocURI>
</SourceParent>
<AttData>201</AttData>
</Status>
<Map>
<CmdID>9</CmdID>
<Target>
<LocURI>Contacts</LocURI>
</Target>
<Source>
<LocURI>./Contact</LocURI>
</Source>
<MapItem>
<Target>
<LocURI>T-0</LocURI>
</Target>
<Source>
<LocURI>87</LocURI>
</Source>
</MapItem>
</Map>
……示例包8從服務器到客戶的映射確認樣本代碼
<SyncML xmlns=″syncmlSYNCML1.1″>
<SyncHdr>
<VerDTD>1.1</VerDTD>
<VerProto>SyncML/1.1</VerProto>
<SessionID>0812523800</SessionID>
<MsgID>5</MsgID>
<Target>
<LocURI>000000011234564</LocURI>
</Target>
<Source>
<LocURI>SyncMLServer</LocURI>
</Source>
</SyncHdr>
<SyncBody>
<Status>
<CmdID>1</CmdID>
<MsgRef>4</MsgRef>
<CmdRef>0</CmdRef>
<Cmd>SyncHdr</Cmd>
<TargetRef>SyncMLServer</TargetRef>
<SourceRef>000000011234564</SourceRef>
<Data>200</Data>
</Status>
<Status>
<CmdID>2</CmdID>
<MsgRef>4</MsgRef>
<CmdRef>9</CmdRef>
<Cmd>Map</Cmd>
<TargetRef>Contacts</TargetRef>
<SourceRef>Contact</SourceRef>
<Data>200</Data>
</Status>
<Final/>
</SyncBody>
</SyncML>
根據本發(fā)明的實施例,例如電話100的移動設備在使存儲在各種位置中的大對象數據同步方面具有很大的靈活性。例如,從顯示屏105上的同步菜單中,用戶315可以定義限定電話100與服務器310之間的同步過程將如何運行的各種同步參數。這種同步參數可以包括將根據本發(fā)明方法而被同步的文件類型的定義以及將根據現有技術標準而被自動同步的文件類型的定義。同步參數還可以包括大對象數據的定義,例如大小大于500千字節(jié)的所有文件。因而根據本發(fā)明的實施例,用戶315對大對象數據的同步的控制有很大改進。
現在參照圖4,總體流程圖圖示了根據本發(fā)明實施例從服務器310角度描述的用于使大對象數據同步的方法400。首先,在步驟405,接收自例如無線電話100的移動設備的客戶同步包在服務器310被處理。客戶同步包包括描述第一客戶大對象數據的第一客戶大對象元數據。例如,第一客戶大對象數據可以包含圖像文件,第一大對象元數據可以包括圖像文件的屬性,例如文件名、指示文件何時被創(chuàng)建的時間戳以及指示文件何時被最后修改的時間戳。在步驟410,第一客戶大對象元數據被與描述第一服務器大對象數據的第一服務器大對象元數據進行比較。例如,第一服務器大對象數據可以是具有與第一客戶大對象數據相同文件名、但是具有指示服務器處的文件比電話100處的文件更新近被修改的時間戳的圖像文件。
因此在步驟415,服務器狀態(tài)代碼被從服務器310傳送到移動設備,該代碼指示第一客戶大對象數據與第一服務器大對象數據不同。服務器狀態(tài)代碼被在服務器同步包中從服務器傳送到移動設備,所述服務器同步包還包括描述第二服務器大對象數據的第二服務器大對象元數據。例如,第二服務器大對象數據可以包括既存儲在服務器310處又存儲在移動設備處的圖像文件,服務器310確定其應該被同步,但是其在被從移動設備發(fā)送到服務器310的客戶同步包中沒有被描述。在步驟420,第一客戶大對象數據和第一服務器大對象數據在服務器310處被同步,在服務器310處響應于服務器狀態(tài)代碼第一客戶大對象數據被從移動設備接收。
在步驟425,響應于接收自移動設備的客戶狀態(tài)代碼,第二服務器大對象數據被傳送到移動設備??蛻魻顟B(tài)代碼源自在移動設備處第二大對象元數據與描述第二客戶大對象數據的第二客戶大對象元數據的比較。最后,在步驟430,接收自移動設備的數據更新狀態(tài)包在服務器310處被處理。數據更新狀態(tài)包指示第二服務器大對象數據是否在移動設備處被成功地與第二客戶大對象數據同步。
現在參照圖5,總體流程圖圖示了從例如電話100的移動設備角度描述的用于使大對象數據同步的方法500。在步驟505,客戶同步包被從移動設備傳送到服務器310??蛻敉桨枋龅谝豢蛻舸髮ο髷祿牡谝豢蛻舸髮ο笤獢祿?。在步驟510,接收自服務器310的服務器狀態(tài)代碼在移動設備處被處理。服務器狀態(tài)代碼在服務器同步包中被從服務器310傳送到移動設備,所述服務器同步包還包括描述第二服務器大對象數據的第二服務器大對象元數據?;诜掌?10處客戶同步包的處理,服務器狀態(tài)代碼指示第一客戶大對象數據與第一服務器大對象數據不同。
在步驟515,第二服務器大對象元數據被與描述第二客戶大對象數據的第二客戶大對象元數據進行比較。然后在步驟520,響應于服務器狀態(tài)代碼,第一客戶大對象數據包被從移動設備傳送到服務器310。第一客戶大對象數據包包括第一客戶大對象數據以及指示第二服務器大對象數據與第二客戶大對象數據不同的客戶狀態(tài)代碼兩者。在步驟525,第二客戶大對象數據和第二服務器大對象數據在移動設備處被同步。響應于客戶狀態(tài)代碼,第二服務器大對象數據被從服務器310接收。最后,在步驟530,數據更新狀態(tài)包被從移動設備傳送到服務器310,指示第二服務器大對象數據在移動設備處被成功地與第二客戶大對象數據同步。
因此本發(fā)明提供了用于使大對象數據同步的有效方法。例如聲音、圖像或視頻文件的大對象數據的多個副本可以被存儲在與無線電話100相關聯的多個存儲器中,但是每一個副本不會被冗余地或不必要地與在服務器310處存儲的大對象數據同步。相反,大對象數據僅在必要時被同步,從而節(jié)省了例如帶寬和電源資源的網絡和移動設備資源。
上面詳細的描述只是提供了示例性的實施例,并不是要限制本發(fā)明的范圍、適用性或配置。實際上,示例性實施例的詳細描述向本領域的普通技術人員提供了使他們能夠實施本發(fā)明示例性實施例的描述。應該理解,可以在單元和步驟的功能及安排中作出多種改變而不脫離如所附權利要求
給出的本發(fā)明的精神和范圍。將理解,這里描述的本發(fā)明的實施例可以由一個或多個傳統(tǒng)的處理器和所唯一存儲的程序指令組成,所述指令控制所述一個或多個處理器結合某些非處理器電路來實現如這里描述的使大對象數據同步的一些、大部分或全部功能。非處理器電路可以包括但不限于無線電接收器、無線電發(fā)送器、信號驅動器、時鐘電路、電源電路和用戶輸入設備。這樣,這些功能可以被解釋為用于使大對象數據同步的方法的步驟。或者,一些或所有功能可以由沒有存儲的程序指令的狀態(tài)機實現,或者在一個或多個特定用途集成電路(ASIC)中實現,其中,每一個功能或者某些功能的一些組合被實現為定制邏輯。當然,也可以使用兩者方法的組合。這樣,在這里已經描述了用于這些功能的方法和方式。此外,可以預見,本領域的普通技術人員,雖然可能還需要由例如可用時間、現有技術和經濟考慮而激發(fā)的很多努力和許多設計選擇,但是在受到這里所公開的概念和原理的指導時,將很容易就能夠通過最少的試驗而產生這種軟件指令和程序以及IC。
在前面的說明書中,已經描述了本發(fā)明的特定實施例。但是,本領域的普通技術人員了解可以作出各種改進和改變而不脫離如下面權利要求
闡述的本發(fā)明的范圍。因此,說明書和附圖將被看作是說明性的而非限制性的,并且所有這種改進都將包含在本發(fā)明的范圍之內。好處、優(yōu)點、問題的解決辦法以及可能使任何好處、優(yōu)點或問題解決方法發(fā)生或變得更加明顯的任何元素,都不能被解釋為是權利要求
之任一個或全部的關鍵的、所必需的或者必要的特征或元素。本發(fā)明僅由包括該申請未決期間作出的任何修改的所附權利要求
及這些權利要求
的所有等同內容限定。
權利要求
1.一種用于使大對象數據同步的方法,包括在服務器處處理接收自移動設備的客戶同步包,所述客戶同步包包括描述第一客戶大對象數據的第一客戶大對象元數據;將第一客戶大對象元數據與描述第一服務器大對象數據的第一服務器大對象元數據進行比較;將指示第一客戶大對象數據與第一服務器大對象數據不同的服務器狀態(tài)代碼從服務器傳送到移動設備;以及在服務器處使第一客戶大對象數據與第一服務器大對象數據同步,在服務器處響應于服務器狀態(tài)代碼第一客戶大對象數據被從移動設備接收。
2.權利要求
1的方法,其中,服務器狀態(tài)代碼被在服務器同步包中從服務器傳送到移動設備,所述服務器同步包還包括描述第二服務器大對象數據的第二服務器大對象元數據。
3.權利要求
2的方法,還包括響應于接收自移動設備的客戶狀態(tài)代碼,將第二服務器大對象數據傳送到移動設備;以及在服務器處處理接收自移動設備的數據更新狀態(tài)包,所述數據更新狀態(tài)包指示第二服務器大對象數據在移動設備處被與第二客戶大對象數據同步。
4.權利要求
1的方法,其中,大對象數據是圖像、聲音或視頻數據。
5.權利要求
1的方法,其中,所述方法在雙路同步標記語言同步過程中執(zhí)行,并且大對象數據嵌入在v卡中。
6.權利要求
1的方法,其中,第一客戶大對象數據包括大于500千字節(jié)的總體大小。
7.權利要求
1的方法,其中,將客戶大對象元數據與第一服務器大對象元數據進行比較包括將客戶大對象數據的總體大小與第一服務器大對象數據的總體大小進行比較。
8.權利要求
1的方法,其中,將第一客戶大對象元數據與第一服務器大對象元數據進行比較包括將與第一客戶大對象數據相關的時間戳和與第一服務器大對象數據相關的時間戳進行比較。
9.權利要求
1的方法,其中,第一客戶大對象元數據包括文件名、文件大小或檢驗和。
10.一種用于使大對象數據同步的方法,包括將客戶同步包從移動設備傳送到服務器,所述客戶同步包包括描述第一客戶大對象數據的第一客戶大對象元數據;在移動設備處對接收自服務器的服務器狀態(tài)代碼進行處理,其中服務器狀態(tài)代碼指示第一客戶大對象數據與第一服務器大對象數據不同;以及響應于服務器狀態(tài)代碼,將包括第一客戶大對象數據的第一客戶大對象數據包從移動設備傳送到服務器。
11.權利要求
10的方法,其中,服務器狀態(tài)代碼被在服務器同步包中從服務器傳送到移動設備,所述服務器同步包還包括描述第二服務器大對象數據的第二服務器大對象元數據。
12.權利要求
11的方法,還包括將第二服務器大對象元數據與描述第二客戶大對象數據的第二客戶大對象元數據進行比較;在第一客戶大對象數據包中傳輸指示第二服務器大對象數據與第二客戶大對象數據不同的客戶狀態(tài)代碼;在移動設備處使第二客戶大對象數據與第二服務器大對象數據同步,其中,響應于客戶狀態(tài)代碼第二服務器大對象數據被從服務器接收;以及將指示第二服務器大對象數據在移動設備處被與第二客戶大對象數據同步的數據更新狀態(tài)包從移動設備傳送到服務器。
13.權利要求
10的方法,其中,大對象數據包括圖像、聲音或視頻數據。
14.權利要求
10的方法,其中,所述方法在雙路同步標記語言同步過程中執(zhí)行,并且大對象數據嵌入在v卡中。
15.權利要求
10的方法,其中,大對象數據包括大于500千字節(jié)的總體大小。
16.權利要求
12的方法,其中,將第二服務器大對象元數據與第二客戶大對象元數據進行比較包括將與第二服務器大對象數據相關的時間戳和與第二客戶大對象數據相關的時間戳進行比較。
17.權利要求
10的方法,其中,第一客戶大對象元數據包括文件名、文件大小或檢驗和。
專利摘要
本發(fā)明提供了一種用于使數據在移動設備與服務器之間同步的方法,該方法使得能夠有效地使大對象數據同步。根據一個方面,從服務器的角度描述,本方法包括在服務器處對接收自移動設備的客戶同步包進行處理(步驟405)??蛻敉桨枋龅谝豢蛻舸髮ο髷祿牡谝豢蛻舸髮ο笤獢祿?。第一客戶大對象元數據然后被與描述第一服務器大對象數據的第一服務器大對象元數據進行比較(步驟410)。服務器狀態(tài)代碼然后被從服務器傳送到移動設備,指示第一客戶大對象數據與第一服務器大對象數據不同(步驟415)。第一客戶大對象數據和第一服務器大對象數據然后在服務器處被同步,其中,第一客戶大對象數據響應于服務器狀態(tài)代碼而接收自移動設備(步驟420)。
文檔編號H04L29/06GK1992631SQ200510097059
公開日2007年7月4日 申請日期2005年12月30日
發(fā)明者景文軍 申請人:摩托羅拉公司導出引文BiBTeX, EndNote, RefMan