CN1992631A - 用于使大对象数据同步的方法 - Google Patents

用于使大对象数据同步的方法 Download PDF

Info

Publication number
CN1992631A
CN1992631A CN 200510097059 CN200510097059A CN1992631A CN 1992631 A CN1992631 A CN 1992631A CN 200510097059 CN200510097059 CN 200510097059 CN 200510097059 A CN200510097059 A CN 200510097059A CN 1992631 A CN1992631 A CN 1992631A
Authority
CN
China
Prior art keywords
server
object data
client
large object
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510097059
Other languages
English (en)
Other versions
CN100484025C (zh
Inventor
景文军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Mobility LLC
Google Technology Holdings LLC
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Priority to CNB2005100970598A priority Critical patent/CN100484025C/zh
Publication of CN1992631A publication Critical patent/CN1992631A/zh
Application granted granted Critical
Publication of CN100484025C publication Critical patent/CN100484025C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于使数据在移动设备与服务器之间同步的方法,该方法使得能够有效地使大对象数据同步。根据一个方面,从服务器的角度描述,本方法包括在服务器处对接收自移动设备的客户同步包进行处理(步骤405)。客户同步包包括描述第一客户大对象数据的第一客户大对象元数据。第一客户大对象元数据然后被与描述第一服务器大对象数据的第一服务器大对象元数据进行比较(步骤410)。服务器状态代码然后被从服务器传送到移动设备,指示第一客户大对象数据与第一服务器大对象数据不同(步骤415)。第一客户大对象数据和第一服务器大对象数据然后在服务器处被同步,其中,第一客户大对象数据响应于服务器状态代码而接收自移动设备(步骤420)。

Description

用于使大对象数据同步的方法
技术领域
本发明一般地涉及使数据在移动设备与服务器之间同步。本发明具体地但非排他性地涉及使包含在个人信息管理器(PIM)数据中的大对象数据同步。
背景技术
移动电话服务的用户一般要求从移动服务提供商提供高等级的方便性。因此先进的移动电话特征,例如国际漫游、空中(Over-The-Air,OTA)供应和不同类型手持装置之间的互操作性,也愈加普遍。
在二十世纪九十年代早期,全球移动通信系统(GSM)网络开始使用用户识别模块(SIM)来为用户提供方便的认证过程以及给移动设备提供可移动存储器。通用移动电信系统用户识别模块(RUIM)提供与SIM相似的功能,但是其是用于宽带码分多址(WCDMA)/UMTS(3G)电话的。另外,可移动用户识别模块(RUIM)使得能够跨CDMA和GSM网国际漫游,并且使得用户能够对他们的手持装置进行升级而无需对例如他们的个人识别信息和他们的电话/地址本的特征进行重新编程。SIM、USIM和RUIM一般是包含用于存储信息的嵌入式计算机芯片的小塑料卡,所述信息例如安全数据、预订数据、电话/地址本数据、网络设置和与具体服务特征相关的其它信息。
因此,现在国际旅行者可以进行跨网的“弹性漫游”。例如,用户仅仅通过将RUIM从CDMA电话上拆下并将RUIM放到GSM电话中就可以从CDMA网漫游到GSM网。然后,用户的网络数据和个人数据立刻就可被新的网络识别。移动用户还因为其它原因而在手持装置之间传送识别模块。例如,用户可能拥有多个移动电话,而每一个都具有独特的特征,例如不同的摄像或蓝牙选择。那么用户可以选择携带对特定环境最适合的特定电话。此外,用户常常在第一电话中出现低电池电量状况时将他们的识别模块从第一电话转换到第二电话。
例如应用程序数据的与移动电话相关的数据和例如任务、日历和地址本条目的个人信息管理器(PIM)数据,经常被存储在与电话相关联的多个存储位置。例如,相同的地址本数据可以存储在嵌入在电话中的静态存储器、SIM卡以及操作上连接到由移动服务提供商操作的服务器上的存储器中。此外,便携式存储器例如SIM、USIM和RUIM的增多使用以及大对象数据例如图像、声音和视频文件的增多传输,已经导致更多的数据存储在与移动服务相关联的存储器中。
因此已经开发了例如SyncML(同步标记语言)的标准来提供用于跨多个网络、平台和设备的远程数据和个人信息的同步的通用方法。这种标准旨在支持例如超文本传输协议(HTTP)、无线会话协议(WSP)和对象交换协议(OBEX)的各种传输协议,以及例如个人数据(例如V卡和V日历数据)、关系数据和XML文档的数据的多种数据格式。
但是,现有标准没有提供用于使大对象数据同步的有效方法。例如铃声或图像文件的大对象数据的多个副本可以存储在与移动电话相关联的多个存储器中,并且每一个副本都可能冗余地且不必要地与存储在服务器处的大对象数据同步。这种不必要的同步是对包括带宽和电源资源的网络和移动设备资源的浪费。
发明内容
根据一方面,本发明是从服务器角度描述的用于使大对象数据同步的方法。该方法包括在服务器处处理接收自移动设备的客户同步包。客户同步包包括描述第一客户大对象数据的第一客户大对象元数据。第一客户大对象元数据然后被与描述第一服务器大对象数据的第一服务器大对象元数据进行比较。服务器状态代码然后被从服务器传送到移动设备,指示第一客户大对象数据与第一服务器大对象数据是不同的。第一客户大对象数据和第一服务器大对象数据然后在服务器处被同步,在服务器处响应于服务器状态代码第一客户大对象数据被从移动设备接收。
根据另一个方面,本发明是从移动设备角度描述的用于使大对象数据同步的方法。该方法包括将客户同步包从移动设备传送到服务器。客户同步包包括描述第一客户大对象数据的第一客户大对象元数据。接收自服务器的服务器状态代码然后在移动设备处被处理。服务器状态代码指示第一客户大对象数据与第一服务器大对象数据是不同的。然后,响应于服务器状态代码,包括第一客户大对象数据的第一客户大对象数据包被从移动设备传送到服务器。
本发明因此提供了用于使大对象数据同步的有效方法。例如声音、图像或视频文件的大对象数据的多个副本可以被存储在与移动设备相关联的多个存储器中,但是每一个副本不会与存储在服务器处的大对象数据冗余地或不必要地同步。相反,大对象数据仅在必要时被同步,从而使例如带宽和电源资源的网络和移动设备资源得以节约。
附图说明
为了使本发明易于理解和有效实施,现在将参考参照附图图示的示例性实施例,其中在所有各图中相同的标号指代相同的或功能相似的单元。附图以及下面的详细描述包含在说明书中且构成其一部分,用于根据本发明进一步说明实施例以及解释各种原理和优点,其中:
图1是图示执行本发明方法的无线电话形式的移动设备的示意图;
图2是图示根据1.2版SyncML标准的双路同步方法的消息序列图(MSC);
图3是图示根据本发明实施例的双路同步方法的MSC;
图4是图示从服务器角度描述的根据本发明实施例用于使大对象数据同步的方法的总体流程图;以及
图5是图示从移动设备角度描述的根据本发明实施例用于使大对象数据同步的方法的总体流程图。
本领域技术人员将了解图中的单元是为了简单、清楚来描述的,不一定是按照比例画的。例如,图中某些单元的尺寸相对于其它单元可能被放大,以有助于增进对本发明实施例的理解。
具体实施方式
在详细描述根据本发明的实施例之前,应该注意实施例主要在于用于使大对象数据同步的方法步骤以及与方法相关的装置部件的组合。因此,装置部件和方法步骤在图中在合适处由传统符号表示,仅仅示出了与用于理解本发明实施例相关的那些特定细节,以避免以受益于本文的描述的本领域普通技术人员很容易明白的细节来模糊本公开内容。
在本文中,例如左和右、第一和第二等的关系术语可以仅仅被用来将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示在这种实体或动作之间的任何实际上的这种关系或顺序。术语“包括”、“包含”或其任何其它变化形式旨在覆盖非穷举的包含,因此包括一系列单元的过程、方法、产品或装置不仅仅包括这些单元,而是可以包括没有明确列出的或者这种过程、方法、产品或装置非固有的其它单元。如果没有更多限制,出现在“包括”之后的单元不排除在包括该单元的过程、方法、产品或装置中额外的相同单元的存在。
现在参照图1,示意图图示了执行本发明方法的无线电话100形式的移动设备。电话100包括被耦合成与处理器103通信的射频通信单元102。电话100还包括被耦合成与处理器103通信的键盘106和显示屏幕105。如本领域技术人员将很清楚的,屏幕105可以是触摸屏从而使得键盘106为可选。
处理器103包括带有相关联的代码只读存储器(ROM)112的编码器/解码器111,只读存储器112存储用于编码和解码可能由无线电话100发送的或者接收的语音或其它信号的数据。处理器103还包括通过公用数据和地址总线117耦合到编码器/解码器111的微处理器113、字符只读存储器(ROM)、随机访问存储器(RAM)104、静态可编程存储器116和SIM接口118。操作上耦合到SIM接口118的静态可编程存储器116和SIM的每一个可以存储选出的进入文本消息以及电话号码数据库TND(电话簿)等等,TND包括用于电话号码的号码域和用于与号码域中号码之一相关联的标识符的名字域。例如,电话号码数据库TND中的一个条目可能是91999111111(输入在号码域中),其名字域中相关联的标识符为“Steven C!at work”。
微处理器113具有用于耦合到键盘106、屏幕105和警报器115的端口,警报器115典型地包含警报扬声器、振动电动机和相关联的驱动器。此外,微处理器113具有用于耦合到麦克风135和通信扬声器140的端口。字符只读存储器114存储用于对可能由通信单元102接收的文本消息进行解码或编码的代码。在该实施例中,字符只读存储器114还存储用于微处理器113的操作代码(OC)和用于执行与无线电话100相关联的功能的代码。
射频通信单元102是具有公用天线107的组合式接收器和传送器。通信单元102具有经由射频放大器109耦合到天线107的收发器。收发器108还被耦合到将通信单元102耦合到处理器103的组合式调制器/解调器110。
现在参照图2,消息序列图(MSC)200图示了根据1.2版SyncML标准的双路同步方法。首先,SyncMl客户设备205和SyncML服务器210被配置成能够彼此通信。用户215然后通过在客户设备205处输入同步命令而起动同步方法。客户初始化包(包1)然后被从设备205传送到服务器210。服务器210然后通过将服务器初始化包(包2)发送到设备205而作出响应。接下来,设备205准备需要被发送到服务器210的数据,并将同步包(包3)传送到服务器210。例如,同步包可以包括存储在连接到设备205的SIM卡中的个人信息管理器(PIM)数据。服务器210接收同步包、更新其数据库并将状态和同步包(包4)传送到设备205。设备205然后接收同步包,用它更新其数据库,例如存储在SIM卡上的数据库,并将状态包(包5)传送到服务器210。服务器210然后传送确认包(包6)到设备205。最后,设备205向用户215提供同步已成功完成的指示。
根据1.2版SyncML标准,客户初始化包和服务器初始化包两者都是一般的同步初始化包,它们不能提供有关将被同步的数据的详细信息。例如声音、图像或视频文件的大对象数据经常被自动同步,而不管这种大对象数据是否需要同步。例如,相同的图像文件可以嵌入在存储于SIM卡的联络数据库中的多个v卡中。在与联络数据库有关的同步处理过程中,相同的图像文件将在移动设备205与服务器210之间被空中传送多次。这种不必要的冗余的传送浪费了网络带宽,还浪费了移动设备205的处理器和电源资源。
现在参照图3,MSC 300图示了根据本发明实施例的双路同步方法。首先,例如无线电话100的客户移动设备和服务器310被配置成能够彼此通信。用户315通过输入同步命令而起动同步方法,然后电话100将客户初始化包(包1)传送到服务器310。服务器310然后将服务器初始化包(包2)传送到电话100。接下来,电话100准备合适的同步数据和描述大对象数据的客户大对象元数据。例如,客户大对象元数据可以包括大对象数据的属性,例如文件名、文件大小、检验和或者与大对象数据是否应该被同步相关的其它元数据。电话100然后将包括客户大对象元数据的客户同步包(包3)传送到服务器310。
服务器310然后将客户大对象元数据与描述服务器大对象数据的服务器大对象元数据进行比较。例如,客户大对象元数据可以包括图像文件名以及指示与图像文件相关联的图像文件何时被最后修改的时间戳。服务器大对象元数据可以包括相同的图像文件名和相关联的时间戳。服务器310将客户大对象元数据中的时间戳与服务器大对象元数据中的时间戳相比较。如果时间戳是相同的,那么服务器310认定存储在服务器310处的图像文件与存储在电话100处的图像文件是相同的,并且不需要图像文件的同步和传送。或者,如果时间戳是不同的,那么服务器310认定存储在服务器310处的图像文件与存储在电话100处的图像文件不同,从而需要图像文件的同步与传送。
在将客户大对象元数据与服务器大对象元数据进行比较之后,服务器310向电话100传送包括指示比较结果的服务器状态代码的服务器同步包(包4)。例如,样本状态代码可以如下定义:
·代码250:新文件,传递大对象数据;
·代码251:现有文件的新版本,传递大对象数据;
·代码252:现有文件的老版本,不传递大对象数据;
·代码351:大对象数据同步错误,重新发送请求。
如将由本领域技术人员了解的,多种其它的状态代码定义也都在本发明的范围之内,包括基于大对象元数据的比较指示大对象数据是否应该被同步的任何类型的信息。
包4还可以包括描述额外服务器大对象数据的额外服务器大对象元数据。这种额外服务器大对象数据可以包括例如既存储在服务器310处又存储在电话100处的图像文件,服务器310确定该文件应该被同步,但是该文件在被从电话100发送到服务器310的客户同步包中没有被描述。额外服务器大对象元数据因此作为对电话100的询问,并从电话100请求关于额外服务器大对象数据是否需要被传递到电话100并被同步的响应。额外服务器大对象元数据然后在电话100处被与额外客户大对象元数据进行比较。
如果在包4中接收的状态代码指示大对象数据需要被从电话100传递到服务器310,那么电话100将客户大对象数据包(包5)传送到服务器310,该包包括所要求的大对象数据。客户大对象数据包还可以包括响应于包4中所含的额外服务器大对象元数据的客户状态代码。可用客户状态代码可以与服务器状态代码相同,例如前面列出的样本状态代码,并指示额外的服务器大对象元数据与额外的客户大对象元数据在电话100处的比较结果。
如果客户状态代码指示额外的服务器大对象数据应该被传送和同步,那么服务器310响应于接收自电话100的客户状态代码将服务器大对象数据包(包6)传送到电话100。电话100然后将数据更新状态包(包7)传送到服务器310,服务器310将映射确认包(包8)传送回电话100。最后,上述同步过程的结果例如通过显示在电话100的显示屏105上的消息而被提供给用户315。
为了使本发明的一般特征更加清楚,下面是使用样本可扩展标记语言(XML)代码实现本发明特定实施例的一组示例性包1到8。下面的包1到8对应于图3中示出的包1到8。在下面的XML示例中,电话100请求包括嵌入式图像的新v卡记录的同步,服务器310请求新联络记录的同步。
示例包1:从客户到服务器的客户初始化包:
(与标准SyncML初始化包1相同。)
样本代码:
<SyncML xmlns=″syncml:SYNCML1.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=″syncml:mgtinf″>
       <Last>474</Last>
       <Next>475</Next>
      </Anchor>
     </Meta>
    </Item>
   </Alert>
   ……
   <Final/>
  </SyncBody>
</SyncML>
示例包2:从服务器到客户的服务器初始化包:
(与标准SyncML初始化包2相同。)
样本代码:
<SyncML xmlns=″syncml:SYNCML1.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=″syncml:metinf″>text/x-vcard</Type>
     <Anchor xmlns=″syncml:metinf″>
      <Last>20051208T045312Z</Last>
      <Next>20051208T045548Z</Next>
     </Anchor>
    </Meta>
   </Item>
  </Alert>
  <Final/>
 </SyncBody>
</SyncML>
示例包3:从客户到服务器的客户同步包:
样本代码:
<SyncML xmlms=″syncml:SYNCML1.1″>
 <SyncHdr>
……
 </SyncHdr>
 <SyncBody>
……
  <Sync>
……
   <Add>
    <CmdID>10</CmdID>
    <Meta>
     <Type xmlns=″syncml:metinf″>text/x-vcard</Type>
    </Meta>
    <Item>
     <Source>
             <LocURI>86</LocURI>
            </Source>
            <Data><![CDATA[BEGIN:VCARD
       VERSION:2.1
       N;CHARSET=UTF-8:B;A
       TEL;CELL;HOME;CHARSET=UTF-8:1111
       PHOTO;ENCODING=BASE64;TYPE=JPEG:PhoneRecordImage.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=″syncml:SYNCML1.1″>
   <SyncHdr>
……
   </SyncHdr>
   <SyncBody>
……
    <Status>
     <CmdID>3</CmdID>
     <MsgRef>2</MsgRef>
     <CmdRef>10</CmdRef>
     <Cmd>Add</Cmd>
     <SourceRef>86</SourceRef>
     <Data>201</Data>
<!—在这里增加了新的通用元素“AttData”,其是通过元数据的比较而得出的状态代码,指示新文件需要大对象数据的传递。>
<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=″syncml:metinf″>text/x-vcard</Type>
       </Meta>
       <Item>
        <Source>
         <LocURI>T-0</LocURI>
        </Source>
        <Data><![CDATA[BEGIN:VCARD
    VERSION:2.1
    N:D;C
    TEL;WORK:2222
    PHOTO;ENCODING=BASE64;JPEG:ServerRecordImage.jpg
    END:VCARD]]></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>
<!状态代码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=′syncml:metinf′>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 7:AttData 251-->
    <CmdID>4</CmdID>
 ……
 <Replace><!--Replace client′s file by using server side one-->
 <CmdId>5</CmdId>
 <Meta><Type xmlns=′syncml:metinf′>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:从客户到服务器的数据更新状态包:
样本代码:
……
     <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=″syncml:SYNCML1.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>
根据本发明的实施例,例如电话100的移动设备在使存储在各种位置中的大对象数据同步方面具有很大的灵活性。例如,从显示屏105上的同步菜单中,用户315可以定义限定电话100与服务器310之间的同步过程将如何运行的各种同步参数。这种同步参数可以包括将根据本发明方法而被同步的文件类型的定义以及将根据现有技术标准而被自动同步的文件类型的定义。同步参数还可以包括大对象数据的定义,例如大小大于500千字节的所有文件。因而根据本发明的实施例,用户315对大对象数据的同步的控制有很大改进。
现在参照图4,总体流程图图示了根据本发明实施例从服务器310角度描述的用于使大对象数据同步的方法400。首先,在步骤405,接收自例如无线电话100的移动设备的客户同步包在服务器310被处理。客户同步包包括描述第一客户大对象数据的第一客户大对象元数据。例如,第一客户大对象数据可以包含图像文件,第一大对象元数据可以包括图像文件的属性,例如文件名、指示文件何时被创建的时间戳以及指示文件何时被最后修改的时间戳。在步骤410,第一客户大对象元数据被与描述第一服务器大对象数据的第一服务器大对象元数据进行比较。例如,第一服务器大对象数据可以是具有与第一客户大对象数据相同文件名、但是具有指示服务器处的文件比电话100处的文件更新近被修改的时间戳的图像文件。
因此在步骤415,服务器状态代码被从服务器310传送到移动设备,该代码指示第一客户大对象数据与第一服务器大对象数据不同。服务器状态代码被在服务器同步包中从服务器传送到移动设备,所述服务器同步包还包括描述第二服务器大对象数据的第二服务器大对象元数据。例如,第二服务器大对象数据可以包括既存储在服务器310处又存储在移动设备处的图像文件,服务器310确定其应该被同步,但是其在被从移动设备发送到服务器310的客户同步包中没有被描述。在步骤420,第一客户大对象数据和第一服务器大对象数据在服务器310处被同步,在服务器310处响应于服务器状态代码第一客户大对象数据被从移动设备接收。
在步骤425,响应于接收自移动设备的客户状态代码,第二服务器大对象数据被传送到移动设备。客户状态代码源自在移动设备处第二大对象元数据与描述第二客户大对象数据的第二客户大对象元数据的比较。最后,在步骤430,接收自移动设备的数据更新状态包在服务器310处被处理。数据更新状态包指示第二服务器大对象数据是否在移动设备处被成功地与第二客户大对象数据同步。
现在参照图5,总体流程图图示了从例如电话100的移动设备角度描述的用于使大对象数据同步的方法500。在步骤505,客户同步包被从移动设备传送到服务器310。客户同步包包括描述第一客户大对象数据的第一客户大对象元数据。在步骤510,接收自服务器310的服务器状态代码在移动设备处被处理。服务器状态代码在服务器同步包中被从服务器310传送到移动设备,所述服务器同步包还包括描述第二服务器大对象数据的第二服务器大对象元数据。基于服务器310处客户同步包的处理,服务器状态代码指示第一客户大对象数据与第一服务器大对象数据不同。
在步骤515,第二服务器大对象元数据被与描述第二客户大对象数据的第二客户大对象元数据进行比较。然后在步骤520,响应于服务器状态代码,第一客户大对象数据包被从移动设备传送到服务器310。第一客户大对象数据包包括第一客户大对象数据以及指示第二服务器大对象数据与第二客户大对象数据不同的客户状态代码两者。在步骤525,第二客户大对象数据和第二服务器大对象数据在移动设备处被同步。响应于客户状态代码,第二服务器大对象数据被从服务器310接收。最后,在步骤530,数据更新状态包被从移动设备传送到服务器310,指示第二服务器大对象数据在移动设备处被成功地与第二客户大对象数据同步。
因此本发明提供了用于使大对象数据同步的有效方法。例如声音、图像或视频文件的大对象数据的多个副本可以被存储在与无线电话100相关联的多个存储器中,但是每一个副本不会被冗余地或不必要地与在服务器310处存储的大对象数据同步。相反,大对象数据仅在必要时被同步,从而节省了例如带宽和电源资源的网络和移动设备资源。
上面详细的描述只是提供了示例性的实施例,并不是要限制本发明的范围、适用性或配置。实际上,示例性实施例的详细描述向本领域的普通技术人员提供了使他们能够实施本发明示例性实施例的描述。应该理解,可以在单元和步骤的功能及安排中作出多种改变而不脱离如所附权利要求给出的本发明的精神和范围。将理解,这里描述的本发明的实施例可以由一个或多个传统的处理器和所唯一存储的程序指令组成,所述指令控制所述一个或多个处理器结合某些非处理器电路来实现如这里描述的使大对象数据同步的一些、大部分或全部功能。非处理器电路可以包括但不限于无线电接收器、无线电发送器、信号驱动器、时钟电路、电源电路和用户输入设备。这样,这些功能可以被解释为用于使大对象数据同步的方法的步骤。或者,一些或所有功能可以由没有存储的程序指令的状态机实现,或者在一个或多个特定用途集成电路(ASIC)中实现,其中,每一个功能或者某些功能的一些组合被实现为定制逻辑。当然,也可以使用两者方法的组合。这样,在这里已经描述了用于这些功能的方法和方式。此外,可以预见,本领域的普通技术人员,虽然可能还需要由例如可用时间、现有技术和经济考虑而激发的很多努力和许多设计选择,但是在受到这里所公开的概念和原理的指导时,将很容易就能够通过最少的试验而产生这种软件指令和程序以及IC。
在前面的说明书中,已经描述了本发明的特定实施例。但是,本领域的普通技术人员了解可以作出各种改进和改变而不脱离如下面权利要求阐述的本发明的范围。因此,说明书和附图将被看作是说明性的而非限制性的,并且所有这种改进都将包含在本发明的范围之内。好处、优点、问题的解决办法以及可能使任何好处、优点或问题解决方法发生或变得更加明显的任何元素,都不能被解释为是权利要求之任一个或全部的关键的、所必需的或者必要的特征或元素。本发明仅由包括该申请未决期间作出的任何修改的所附权利要求及这些权利要求的所有等同内容限定。

Claims (17)

1.一种用于使大对象数据同步的方法,包括:
在服务器处处理接收自移动设备的客户同步包,所述客户同步包包括描述第一客户大对象数据的第一客户大对象元数据;
将第一客户大对象元数据与描述第一服务器大对象数据的第一服务器大对象元数据进行比较;
将指示第一客户大对象数据与第一服务器大对象数据不同的服务器状态代码从服务器传送到移动设备;以及
在服务器处使第一客户大对象数据与第一服务器大对象数据同步,在服务器处响应于服务器状态代码第一客户大对象数据被从移动设备接收。
2.权利要求1的方法,其中,服务器状态代码被在服务器同步包中从服务器传送到移动设备,所述服务器同步包还包括描述第二服务器大对象数据的第二服务器大对象元数据。
3.权利要求2的方法,还包括:
响应于接收自移动设备的客户状态代码,将第二服务器大对象数据传送到移动设备;以及
在服务器处处理接收自移动设备的数据更新状态包,所述数据更新状态包指示第二服务器大对象数据在移动设备处被与第二客户大对象数据同步。
4.权利要求1的方法,其中,大对象数据是图像、声音或视频数据。
5.权利要求1的方法,其中,所述方法在双路同步标记语言同步过程中执行,并且大对象数据嵌入在v卡中。
6.权利要求1的方法,其中,第一客户大对象数据包括大于500千字节的总体大小。
7.权利要求1的方法,其中,将客户大对象元数据与第一服务器大对象元数据进行比较包括将客户大对象数据的总体大小与第一服务器大对象数据的总体大小进行比较。
8.权利要求1的方法,其中,将第一客户大对象元数据与第一服务器大对象元数据进行比较包括将与第一客户大对象数据相关的时间戳和与第一服务器大对象数据相关的时间戳进行比较。
9.权利要求1的方法,其中,第一客户大对象元数据包括文件名、文件大小或检验和。
10.一种用于使大对象数据同步的方法,包括:
将客户同步包从移动设备传送到服务器,所述客户同步包包括描述第一客户大对象数据的第一客户大对象元数据;
在移动设备处对接收自服务器的服务器状态代码进行处理,其中服务器状态代码指示第一客户大对象数据与第一服务器大对象数据不同;以及
响应于服务器状态代码,将包括第一客户大对象数据的第一客户大对象数据包从移动设备传送到服务器。
11.权利要求10的方法,其中,服务器状态代码被在服务器同步包中从服务器传送到移动设备,所述服务器同步包还包括描述第二服务器大对象数据的第二服务器大对象元数据。
12.权利要求11的方法,还包括:
将第二服务器大对象元数据与描述第二客户大对象数据的第二客户大对象元数据进行比较;
在第一客户大对象数据包中传输指示第二服务器大对象数据与第二客户大对象数据不同的客户状态代码;
在移动设备处使第二客户大对象数据与第二服务器大对象数据同步,其中,响应于客户状态代码第二服务器大对象数据被从服务器接收;以及
将指示第二服务器大对象数据在移动设备处被与第二客户大对象数据同步的数据更新状态包从移动设备传送到服务器。
13.权利要求10的方法,其中,大对象数据包括图像、声音或视频数据。
14.权利要求10的方法,其中,所述方法在双路同步标记语言同步过程中执行,并且大对象数据嵌入在v卡中。
15.权利要求10的方法,其中,大对象数据包括大于500千字节的总体大小。
16.权利要求12的方法,其中,将第二服务器大对象元数据与第二客户大对象元数据进行比较包括将与第二服务器大对象数据相关的时间戳和与第二客户大对象数据相关的时间戳进行比较。
17.权利要求10的方法,其中,第一客户大对象元数据包括文件名、文件大小或检验和。
CNB2005100970598A 2005-12-30 2005-12-30 用于使大对象数据同步的方法 Active CN100484025C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100970598A CN100484025C (zh) 2005-12-30 2005-12-30 用于使大对象数据同步的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100970598A CN100484025C (zh) 2005-12-30 2005-12-30 用于使大对象数据同步的方法

Publications (2)

Publication Number Publication Date
CN1992631A true CN1992631A (zh) 2007-07-04
CN100484025C CN100484025C (zh) 2009-04-29

Family

ID=38214594

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100970598A Active CN100484025C (zh) 2005-12-30 2005-12-30 用于使大对象数据同步的方法

Country Status (1)

Country Link
CN (1) CN100484025C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152398A (zh) * 2013-02-07 2013-06-12 中国科学院计算技术研究所 一种多终端文件间的文件同步方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694335B1 (en) * 1999-10-04 2004-02-17 Microsoft Corporation Method, computer readable medium, and system for monitoring the state of a collection of resources
CN100342334C (zh) * 2002-06-20 2007-10-10 国际商业机器公司 从服务器刷新客户端时再同步化客户端装置的系统和方法
KR100808414B1 (ko) * 2004-06-08 2008-02-29 엘지전자 주식회사 이동단말의 클라이언트 세션 복구방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152398A (zh) * 2013-02-07 2013-06-12 中国科学院计算技术研究所 一种多终端文件间的文件同步方法及系统
CN103152398B (zh) * 2013-02-07 2016-05-11 中国科学院计算技术研究所 一种多终端文件间的文件同步方法及系统

Also Published As

Publication number Publication date
CN100484025C (zh) 2009-04-29

Similar Documents

Publication Publication Date Title
CN100336352C (zh) 内容发布系统、描述数据发布设备和内容发布方法
CN1269337C (zh) 内容自适应服务控制方法
CN1126411C (zh) 通信系统、管理一个通信系统和移动用户设备的方法
CN1471293A (zh) 使用环境设定系统、电子设备、无线通信终端、程序
CN101077024A (zh) 用于通过无线电通信网络配置无线电终端的方法、相关的网络及其计算机程序产品
CN1969292A (zh) 用户轮廓管理系统
CN1889742A (zh) 基于设备管理的数据共享方法及其数据备份恢复方法
CN1384689A (zh) 用于存储及访问多媒体消息传送服务相关信息的方法及其装置
CN1832457A (zh) 数据包通信装置及功能扩展方法
CN1882119A (zh) 一种实现电路域和分组域互切换的装置、系统和方法
CN1416276A (zh) 中间数据接收装置、方法、程序和记录媒体以及发送装置、传输方法
CN1893352A (zh) 一种因特网协议多媒体子系统的鉴权方法
CN1444356A (zh) 数据通信方法
CN1745556A (zh) 数据装置和无线通信单元之间的控制和状态协议
CN1507202A (zh) 设备管理系统、设备管理终端、网络设备、终端程序、设备程序以及设备管理方法
CN1706126A (zh) 移动通信网络的测位系统和测位方法
CN1500241A (zh) 数据处理系统和方法、信息处理装置和方法以及存储介质
CN1778126A (zh) 用于将多媒体消息多次元素插入多媒体消息中的方法和系统
CN1852267A (zh) 一种不同类型存在系统间的互连方法及互连服务器
CN1940939A (zh) 信息管理设备、信息管理系统和计算机可用介质
CN1498509A (zh) 宿留和执行客户软件的无线电通信模块以及用于实施客户驱动软件的匹配过程
CN1992631A (zh) 用于使大对象数据同步的方法
CN1925410A (zh) 表决消息创建、处理、及结果确定方法和控制协议、表决评估、会议服务器部件和通信终端
CN1968120A (zh) 一种管理群组信息的方法和系统
CN1242590C (zh) 用于管理时间来与其他装置同步的时间管理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MOTOROLA MOBILE CO., LTD.

Free format text: FORMER OWNER: MOTOROLA INC.

Effective date: 20101229

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20101229

Address after: Illinois Instrunment

Patentee after: MOTOROLA MOBILITY, Inc.

Address before: Illinois Instrunment

Patentee before: Motorola, Inc.

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Illinois State

Patentee after: MOTOROLA MOBILITY LLC

Address before: Illinois State

Patentee before: MOTOROLA MOBILITY, Inc.

CP02 Change in the address of a patent holder

Address after: Illinois State

Patentee after: MOTOROLA MOBILITY, Inc.

Address before: Illinois Instrunment

Patentee before: MOTOROLA MOBILITY, Inc.

TR01 Transfer of patent right

Effective date of registration: 20160612

Address after: California, USA

Patentee after: Google Technology Holdings LLC

Address before: Illinois State

Patentee before: MOTOROLA MOBILITY LLC