CN101102311A - 一种协商数据同步机制的方法、客户端及系统 - Google Patents
一种协商数据同步机制的方法、客户端及系统 Download PDFInfo
- Publication number
- CN101102311A CN101102311A CNA2007101080785A CN200710108078A CN101102311A CN 101102311 A CN101102311 A CN 101102311A CN A2007101080785 A CNA2007101080785 A CN A2007101080785A CN 200710108078 A CN200710108078 A CN 200710108078A CN 101102311 A CN101102311 A CN 101102311A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization mechanism
- behavior
- sync
- server
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种协商数据同步机制的方法、系统及客户端,该方法包括:服务器收到客户端发送的携带数据同步机制协商参数的数据同步请求;服务器获取所述的同步机制协商参数,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制,并将所确定的数据同步机制返回给客户端。本发明更加灵活地使客户端与服务器之间协商数据同步机制,使用户使用客户端更加方便。
Description
技术领域
本发明涉及在网络中进行数据同步的技术,特别涉及一种协商数据同步机制的方法、客户端及系统。
背景技术
为了在多个平台及网络之间实现个人信息及企业的数据同步,于2000年2月份创建了SyncML。创建SyncML的目的在于,使用户、设备开发商、基础构件开发商、数据提供商、应用软件开发商以及服务提供商协同工作,真正实现使用任何客户端均可随时随地的访问任何网络数据。
SyncML的典型应用是移动设备和网络服务设备之间的数据同步,除此之外,还可以用于两台对等设备的数据同步,如在两台计算机之间进行数据同步。在经过同步初始化阶段的设备能力信息协商以后,客户端将自身修改的数据发送给服务器进行同步;服务器将自身修改的数据发送给客户端进行同步,以保证双方数据的同步。
目前,进行数据同步的数据同步机制主要有表1所示的几种。
同步机制 | 描述信息 |
双向同步(Two-way sync) | 双向同步是通常所使用的一种同步方式,采用该方式,同步的客户端和服务器相互仅交换彼此设备中的数据修改信息,未修改的数据信息不交换。客户端首先发送其修改信息 |
慢同步(Slow sync) | 慢同步是双向同步的一种特殊机制,不同之处在于必须对数据进行逐条、逐个字段的进行比较处理。同步时,客户端必须把自身所有数据都发送到服务器,然后服务器对客户端发送的数据和服务器自身数据进行逐个字段的同步分析 |
客户端单向同步(0ne-waysync from client only) | 客户端单向同步是一种单边方式的同步,只有客户端发送其数据修改信息到服务器,而服务器并不把服务器的数据修改信息发给客户端。 |
客户端刷新(Refresh sync | 客户端刷新是一种单边方式的同步。客户端把自身所有数据都发送到 |
from client only) | 服务器,服务器用客户端发送的数据来覆盖服务器中该用户的所有数据,即服务器中的数据和客户端的数据完全一致 |
服务器单向同步(0ne-waysync from server only) | 服务器单向同步和客户端单向同步类似。只有服务器发送其数据修改信息到客户端,而客户端并不把自身的数据修改信息发给服务器。 |
服务器刷新(Refresh syncfrom server only) | 服务器刷新和客户端刷新类似。服务器把自身存储的用户所有数据都发送给客户端,客户端用服务器发送的数据来覆盖客户端自身的所有数据,即客户端中的数据和服务器中的用户数据完全一致. |
服务器通知同步(ServerAlerted Sync) | 服务器通知同步是指由服务器首先提醒客户端来执行同步操作,即由服务器指示客户端开始一个特定机制的同步操作,仅仅是服务器通知客户端,要求其发起某种同步,后续同步方式可能为以上六种同步方式 |
表1
以下采用双向同步机制的例子说明如何进行数据同步。其他同步机制的数据同步都是双向同步机制的特殊情况,例如,慢同步机制可以看成是客户端和服务器发送全部用户数据的双向同步机制、单向同步机制是单方向发送用户数据的双向同步机制以及刷新同步机制是单方向发送用户数据的慢同步机制等。
图1为现有技术采用双向同步机制在客户端与服务器之间进行数据同步的方法流程图,该方法涉及的实体有客户端和服务器,其具体步骤为:
步骤100、客户端向服务器发送同步初始化包。
步骤101、服务器向客户端发送同步初始化包。
步骤100以及步骤101主要进行同步初始化,同步初始化主要完成身份鉴权、需要同步的数据的协商以及设备能力信息的协商等,其中,设备能力信息的协商为支持同步哪些数据以及支持哪些同步机制等。
步骤102、客户端向服务器发送同步数据。
步骤103、服务器向客户端发送同步数据。
在步骤102以及步骤103中,客户端根据数据的状态,数据的状态可以为新增、更新、删除以及移动等,将发生修改的数据发送给服务器,服务器根据接收到的数据修改自身存储的数据以达到数据同步的目的后,也根据自身存储的数据的状态,将发生修改的数据发送给客户端,客户端根据接收到的数据修改自身存储的数据以达到数据同步的目的。
步骤104、客户端接收到同步数据后,向服务器发送确认同步完成消息。
步骤105、服务器接收到同步数据后,向客户端发送确认同步完成消息。
在图1所述的方法中,很多步骤都使用了消息包,这是因为:客户端和服务器之间的具有相同功能的交互过程需要持续多次才能完成,而在表示时,只用了一来一回的两种消息包。
实现数据同步过程的系统包括客户端和服务器,客户端可以与服务器进行消息交互。其中,在客户端侧还具有客户端数据库,用于存储客户端所属用户需要的数据,该客户端数据库可以设置在客户端中,也可以单独设置;在服务器侧还具有服务器数据库,用于存放服务器的数据,该服务器数据库可以设置在服务器中或者单独设置。
客户端通常可以为计算机、移动终端或个人数字助理(PDA)等智能终端。在客户端数据库存储的数据可以包括:通讯录、日程、便笺、短信和电子邮件等。这些数据均有标准规范定义其格式,客户端可以将所存储的数据转换成标准格式的数据发送给服务器,服务器对接收到的数据处理后可以将处理后的数据保存在服务器数据库中。
服务器通常可以为计算机或进行数据同步网络的网络服务器,可以接收来自客户端的数据同步消息或数据同步命令,也可以向客户端发送数据同步消息或数据同步命令。
目前使用固定的编码来标识数据同步机制,比如200表示双向同步;在初始化阶段客户端使用<Alert>命令携带其希望发起的数据同步机制,以及使用<Anchor>携带数据同步状态信息。例如:
<Alert>
<CmdID>1</CmdID>
<Data>200(表示双向同步)</Data><!--200=TWO_WAY_ALERT-->
<Item>
<Target><LocURI>./contacts/james_bond</LocURi></Target>
<Source><LocURI>./dev-contacts</LocURI></Source>
<Meta>
<Anchor xmlns=’syncml:metinf’>(表示数据同步状态信息)
<Last>234</Last>
<Next>276</Next>
</Anchor>
</Meta>
</Item>
</Alert>
在同步数据的机制中客户端和服务器之间采用锚(Anchor)来分别标记上一次的数据同步状态信息,Anchor是数据库级别的,即当客户端和服务器之间完成一次数据同步时,在各自的数据库中分别设置相同的Anchor信息。在后续进行服务器和客户端之间的数据同步时,客户端或服务器判断自身的数据库设置的Anchor信息是否与对方数据库设置的Anchor信息相同,如果相同,则客户端和服务器的状态信息匹配;否则,客户端和服务器的状态信息不匹配,发起慢同步机制。
客户端和服务器之间更新Anchor信息的具体步骤为:
步骤1、客户端向服务器发送同步初始化数据包,该同步初始化数据包携带上一次与服务器进行同步的Anchor信息以及本次进行同步的Anchor信息。
步骤2、服务器接收到同步初始化数据包,比较该数据包携带的上一次与服务器进行同步的Anchor信息与自身数据库存储的Anchor信息,如果相同,则服务器同意客户端发起的数据同步机制,进行后续数据同步流程,同步完成后服务器将自身数据库的Anchor信息更新为该同步数据包携带的本次进行同步的Anchor信息;否则,服务器返回响应要求客户端发起慢同步机制进行数据同步。
图2为现有技术采用慢同步机制进行数据同步的方法流程图,其具体步骤为:
步骤200、客户端向服务器发送自身数据库中所有保存的数据,该数据携带在数据同步消息中发送。
客户端在存储数据时,可以为每一条数据分配一个本地唯一标识(LUID)进行标识,在发送时,将每一条数据对应的LUID与该数据一起发送。
相应地,在服务器数据库中,每一条数据都分别有一个网络唯一标识(GUID),且还设置有GUID与LUID的映射表。
步骤201、服务器对客户端发送的每一条数据,与自身数据库中存储的数据进行一一比较,如果能够在服务器数据库中找到相同的数据,则保存该数据对应的LUID到映射表中,对应于该数据的GUID,向客户端返回执行成功消息;如果不能够在服务器数据库中找到相同的数据,则保存该条数据且分配GUID,将所分配的GUID和该条数据的LUID在映射表中对应,向客户端返回数据添加成功消息。
步骤202、服务器比较完成后,将服务器数据库中与从客户端接收到的不相同的数据,发送给客户端,客户端将这些数据添加到自身数据库中,这些数据也可以携带在数据同步完成消息中发送。
步骤203、客户端发送确认数据同步完成消息给服务器,该消息携带其添加数据的LUID映射信息。
步骤204、服务器将接收到该消息携带的信息在映射表中进行同一数据的GUID和LUID之间的映射后,向客户端返回确认数据同步完成的响应消息。
从上述分析可以看出,目前在协商数据同步机制时存在着缺点:数据同步类型协商方法非常不灵活,由于客户端只是发送标识数据同步机制的编码,服务器只能接受客户端要求的同步机制或者强制发起慢同步,实际上并不存在协商过程;而且数据同步机制的编码限定了同步方向和同步行为都是固定的,同步方向和同步行为之间无法组合。例如当客户端发起慢同步时,其仅为双向慢同步,而不支持客户端到服务器、或者服务器到客户端的单向慢同步。这样,就会导致增加一种同步行为,则需要增加一系列的编码用于表示与不同同步方向的组合得到的数据同步机制,很不方便。更进一步地,目前客户端实现中直接显示数据同步机制让用户选择,而往往用户无法理解这种数据同步机制的含义以及带来的结果是什么,造成用户使用客户端发起某种数据同步机制的数据同步过程的不方便性。
另外,由于造成客户端数据库和服务器数据库的Anchor信息不匹配的原因有很多,如上一次进行数据同步过程意外中断,中断的原因为客户端取消上一次数据同步过程、客户端和服务器之间的网络中断等;客户端升级软件或用户更换使用的客户端等。如果服务器判断得到自身数据库和客户端数据库的Anchor信息不匹配就发起慢同步机制,有很大可能违背使用客户端的用户意愿。如:用户仅仅希望将客户端的数据备份到服务器,即当正常情况下,使用客户端到服务器的单向同步可以满足用户需求;当上一次数据同步过程失败的情况下,使用客户端到服务器的单向刷新同步就可以满足用户需求,而不需要发起慢同步。当由于客户端和服务器之间的网络中断而导致客户端数据库和服务器数据库的Anchor信息不匹配时,目前服务器根据判断得到自身数据库和客户端数据库的Anchor信息不匹配,强制发起慢同步机制,会存在在数据同步过程中重复同步数据的问题,改变了用户发起的数据同步机制,这不仅违背了使用客户端的用户意愿,而且不允许客户端在异常情况下协商所采用的数据同步机制。
发明内容
有鉴于此,本发明实施例提供了一种协商数据同步机制的方法,该方法更加灵活地使客户端与服务器之间协商数据同步机制,使用户使用客户端更加方便。
本发明实施例还提供一种协商数据同步机制的客户端,该客户端能够灵活地向服务器发起数据同步机制,使用户使用客户端更加方便。
本发明实施例还提供一种协商数据同步机制的系统,该系统更加灵活地使客户端与服务器之间协商数据同步机制,使用户使用客户端更加方便。
本发明的技术方案是这样实现的:
一种协商数据同步机制的方法,该方法包括:
服务器收到客户端发送的携带数据同步机制协商参数的数据同步请求;
服务器获取所述的同步机制协商参数,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制,并将所确定的数据同步机制返回给客户端。
本发明实施例提供的另一种同步机制的方法,包括下述步骤:
收到携带数据同步机制协商参数的数据同步请求,所述的同步机制协商参数携带有数据同步请求发送方选择的同步方向和/或同步行为;
获取所述的同步机制协商参数,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制,并将所确定的数据同步机制返回给同步请求发送方。
本发明实施例提供的一种协商数据同步机制的系统,包括:
客户端和与客户端进行消息交互的服务器;
所述的客户端用于向服务器发送携带数据同步机制协商参数的数据同步请求,并接收服务器返回的数据同步机制;或者根据服务器发送的数据同步请求中携带的同步类型协商参数确定本次数据同步所采用的数据同步机制后,返回给服务器;
所述的服务器根据该请求携带的同步类型协商参数确定本次数据同步所采用的数据同步机制后,返回给客户端;或者向客户端发送携带数据同步机制协商参数的数据同步请求,并接收客户端返回的数据同步机制。
本发明实施例还提供了一种数据同步的客户端,包括:
用户接口,用于接收用户输入的用户行为发送给用户行为选择模块,并向用户展示来自用户行为选择模块的用户行为选项特征;
用户行为选择模块,用于为用户提供用户行为且通过用户接口显示给用户,接收来自用户接口的用户输入的用户行为后发送给同步机制分析模块;
同步机制分析模块:用于将用户行为转化为同步机制协商参数,构造携带同步机制协商参数的数据同步请求提供给数据同步模块发送给服务器;或者通过数据同步模块接收服务器所采用的数据同步机制,判断是否接受,如果是,发起对应的数据同步流程;如果否,则重新确定同步机制协商参数并重新协商。
本发明实施例还提供了一种同步的服务器,包括:
数据同步模块,用于接收客户端发送的数据同步请求,所述的同步请求中携带有数据同步机制协商参数,并将所述同步请求转发出去;
同步机制分析模块,用于根据接收到的所述的同步请求中携带的数据同步机制协商参数确定数据同步机制,并通过数据同步模块将所确定的数据同步机制返回给客户端。
从上述方案可以看出,本发明客户端可以提供同步方向和同步行为供用户选择,用户选择后客户端发起向服务器的数据同步机制协商请求,该请求用同步方向和/或同步行为替代现有技术的编码来表示数据同步机制,服务器可以根据该请求携带的同步方向和/或同步行为确定本次数据同步过程采用的数据同步机制,返回给客户端。由于用户可以根据同步方向和/或同步行为确定所发起的数据同步机制的含义以及带来的结果是什么,从而使用户使用客户端更加方便。由于客户端发送的数据同步机制协商请求携带的为同步方向和/或同步行为,而不是唯一标识一个数据同步机制的编码,所以更加灵活地使客户端与服务器之间协商数据同步机制。
更进一步地,当服务器判断客户端发送的数据同步请求中携带的同步行为、或/和同步方向是否符合设定的条件,如果是,则采用符合设定条件的数据同步机制返回给客户端;如果否,则再判断客户端发送的数据同步请求中是否携带保持同步方向不变的标志,如果否,则采用慢同步机制进行本次数据同步或重新与客户端协商数据同步机制,如果是,服务器从所设置的数据同步机制中选择一个对应于该请求所携带的同步行为、或/和同步方向的数据同步机制返回给客户端。因此,本发明允许用户选择同步方向和行为来发起能够达到用户期望的数据同步机制,并且不会当服务判断得到自身数据库和客户端数据库的状态信息不匹配就直接发起慢同步机制,提高使用客户端的用户的体验度。
附图说明
图1为现有技术采用双向同步机制在客户端与服务器之间进行数据同步的方法流程图;
图2为现有技术采用慢同步机制进行数据同步的方法流程图;
图3为本发明提供的协商数据同步机制的方法流程图;
图4为本发明提供的协商数据同步机制的系统示意图;
图5为本发明提供的协商数据同步机制的客户端示意图;
图6为本发明协商数据同步机制的方法实施例一的流程图;
图7为本发明协商数据同步机制的方法实施例二的流程图;
图8为本发明协商数据同步机制的方法实施例三的流程图;
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚明白,以下举具体实施例并参照附图,对本发明进行进一步详细的说明。
本发明实施例提供一种协商数据同步机制的方法,其实施方式如图3所示:
步骤300、客户端向服务器发送携带数据同步机制协商参数的数据同步请求;
步骤301、服务器根据该请求所携带的数据同步机制协商参数确定本次数据同步过程所采用的数据同步机制,返回给客户端。
在本发明实施例中,数据同步机制协商参数包括同步方向、和/或同步行为。
本发明实施例所述同步方向包括仅客户端到服务器,或者仅服务器到客户端,或者客户端和服务器之间的双向。
本发明实施例所述同步方向确定了同步数据的流向,其中仅客户端到服务器方向表明在同步阶段仅客户端向服务器发送同步数据;仅服务器到客户端方向表明在同步阶段仅服务器向客户端发送同步数据;客户端和服务器之间的双向表明在同步阶段客户端和服务器互相发送同步数据。
本发明实施例所述同步行为包括快行为、慢行为、刷新行为、智能行为和设备能力协商行为中的一种或多种的组合。
本发明实施例所述同步行为确定了客户端和服务器的处理动作,其中慢行为表明发送方发送修改的数据、部分数据或者所有数据,接收方将所接收数据与自身存储的数据进行逐字段的比较后进行同步;快行为即普通同步行为,表明发送方发送修改的数据或者部分数据,接收方根据同步命令直接同步或者冲突检测后根据仲裁结果进行同步,不对数据进行逐字段的比较;刷新行为表明发送方发送修改的数据、部分数据或者所有数据,接收方使用接收到的数据直接覆盖自身的数据;智能行为指发送方和接收方之间发送指纹数据,以此判断哪些数据是相同的不需要同步的,哪些数据是需要同步的;设备能力协商行为指的是客户端与服务器之间进行的关于设备能力信息(包括客户端或者服务器)的通信,使得相互之间可以知道对方的设备能力信息及其变化,服务器通过了解客户端的设备能力信息及其变化,可以选取更合适的数据同步机制,而通过将设备能力协商行为携带在数据同步机制协商参数中作为同步行为的一种,请求服务器进行设备能力协商,可以将同步行为和设备能力协商行为相互独立,将设备能力协商行为作为一个可以选择的行为,而不是必须进行的行为,从而避免了现有技术中进行同步初始化操作时一般都包括设备能力信息协商过程,该过程占用较多时间,造成数据同步过程不必要地被延长,同步效率较低。
本发明实施例可以根据需要对上述同步行为进行组合,例如刷新行为和智能行为的组合,即先判断哪些数据是相同的,则这些数据不需要覆盖,然后将需要发送的数据覆盖对端剩余数据;或者扩展新的同步行为,例如定义智能刷新行为、或者改变上述行为的含义。这些均不应该理解为对本发明的限制。也可以将设备能力协商行为与其他同步行为进行组合,如当客户端或者服务器的设备能力信息变更时,在客户端发送同步操作请求时,可以将需要同步的行为,如慢性为与设备能力协商行为组合,客户端也可以单独提出设备能力协商行为请求,这些均不应该理解为对本发明的限制。
在同步状态正常的情况下,服务器可以根据客户端发送的同步机制协商参数确定需要采用的数据同步机制,并在同步响应中通知客户端是否接受此同步请求。
所述数据同步机制协商参数进一步包括同步方向不改变的标志或者服务器默认配置为同步方向不改变标志,用于指示当服务判断得到同步状态不匹配时选择合适的数据同步机制时不要改变客户端要求的同步方向。本发明实施例可以在服务器中设置所确定的数据同步机制与客户端所选择的数据同步机制的对应关系,这个对应关系为多对一,该对应关系为表1所示:
客户端所选择的数据同步行为 服务器确定的数据同步行为
刷新行为 (1)刷新行为或(2)智能行为和刷新行为的组合
快行为 (1)智能行为和快行为的组合或(2)慢行为
表1
如表1所示,在客户端选择了同步方向以后,服务器可以根据对应关系选择表1中的(1)或(2)所述的数据同步机制作为本次数据同步的数据同步机制与客户端进行协商。
未来数据同步规范中可能会新增新的数据同步机制,但是数据同步机制之间仍然存在必然的对应关系,数据同步机制的变更不应理解为对本发明的限制。
在本发明实施例中,智能同步机制的产生,是为了减少数据同步时的数据传输量,如果采用类似摘要技术则存在一定的限制,即,在某些情况下,比如需要进行数据同步过程的数据量小且小数据时,慢同步机制或刷新同步机制要比智能同步机制的效果好。因此,在具体实现时,可以在服务器中设置同步数据策略,服务器根据所设置的同步数据策略选择表1中的(1)或(2)所述的数据同步机制。
设置同步数据策略的基本依据是:当智能同步过程中数据指纹的传输量相对于所减少的数据同步过程中的数据传输量比较小,甚至忽略不计时,采用表1中的(2)作为所确定的数据同步机制;否则,采用表1中的(1)作为所确定的数据同步机制。
在本发明实施例中,所采用的同步数据策略如以下所述。
1)当客户端发起的是刷新同步行为且确定了同步方向,则服务器采用表2中所示的同步数据策略确定本次数据同步过程采用的数据同步机制。
客户端发起的数据同步机制 | 同步数据策略 | 服务器确定的数据同步机制 |
客户端刷新同步 | 服务器数据库中没有数据或者具有的数据和客户端数据库中的数据之间的比率小于M% | 客户端刷新同步 |
服务器数据库中有数据且具有的数据和客户端数据库中的数据之间的比率不小于M% | 客户端刷新智能同步 | |
服务器刷新同步 | 客户端数据库中没有数据或者具有的数据和服务器数据库中的数据之间的比率小于M% | 服务器刷新同步 |
客户端数据库中有数据且具有的数据和服务器数据库中的数据之间的比率不小于M% | 服务器刷新智能同步 |
表2
当然,服务器也可以根据其他同步数据策略确定本次数据同步过程采用的数据同步机制,表2只不过是举例说明,具体策略的设定不应理解为对本发明的限制。
2)当客户端发起的是快行为且确定了客户端到服务器方向的单向同步方向,则服务器采用表3中所示的同步数据策略确定本次数据同步过程采用的数据同步机制。
同步数据策略 | 服务器确定的数据同步机制 |
小数据机制,如同步数据的机制为vCard机制,或者同步数据大小低于N(KB)的数据 | 客户端到服务器单向,慢行为 |
大数据机制,如同步数据的机制为file机制,或者同步数据大小不低于N(KB)的数据 | 客户端到服务器单向,智能行为和快行为的组合 |
同步数据的总数据条目小于K个 | 客户端到服务器单向,慢行为 |
小数据机制,总条目数大于K,修改条目数比率小于M% | 客户端到服务器单向,智能行为和快行为的组合;这种情况下,客户端在协商数据同步机制时携带所同步数据的修改比率信息 |
大数据机制,总条目数大于K,修改条目数比率大于M% | 客户端到服务器单向,慢行为,在这种情况下,客户端在协商数据同步机制时携带所同步数据的修改比率信息 |
表3
3)当客户端发起的是快行为且确定了双向的同步方向,则服务器采用表4中所示的同步数据策略确定本次数据同步过程采用的数据同步机制。
同步数据策略 | 服务器确定的数据同步机制 |
小数据机制 | 双向,慢行为 |
大数据机制 | 双向,智能和快行为的组合 |
同步数据的总数据条目小于K个 | 双向,慢行为 |
小数据机制,总条目数大于K,修改条目数比率小于M% | 双向,智能行为和快行为的组合;这种情况下,客户端在协商数据同步机制时携带所同步数据的修改比率信息 |
大数据机制,同步数据机制为vCard机制,总条目数大于K,修改条目数比率大于M% | 双向,慢行为,在这种情况下,客户端在协商数据同步机制时携带所同步数据的修改比率信息 |
表4
上述大数据机制、小数据机制可以通过被同步数据的类型或者数据量来确定;
当然,为了确定当前同步数据策略,客户端还需要将要同步数据的信息发送给服务器,如要同步数据的数量、要同步数据的类型、要同步数据中所修改数据所占的比率信息等。
本发明还提出了单向慢同步机制,可以包括由客户端到服务器的慢同步机制和服务器到客户端的慢同步机制两种,如表5所示:
同步机制码 | 数据同步机制 | 说明 |
215 | 客户端到服务器的单向慢同步 | 客户端把自身数据库中所有数据都发送到服务器,服务器对所发送的数据和自身数据库中数据进行逐个的同步,之后服务器不向客户端发送同步数据 |
216 | 服务器到客户端的单向慢同步 | 客户端把自身数据库中所有数据都发送到服务器,服务器对所发送的数据和自身数据库中数据进行逐个的比较,之后服务器给客户端发送需要同步的数据,对于客户端发到服务器的数据,服务器并不进行同步 |
表5
客户端可以将自己选择的数据同步机制用同步方向和同步行为相结合的方式发送给服务器,服务器根据客户端发送的同步方向、和/或同步行为和所设置的对应关系共同确定对应的一个数据同步机制后返回给客户端。
对于数据同步机制的协商,根据服务器处理过程的不同,有两种方案。一种是服务器根据所有的信息进行集中判断,此时服务器和客户端的状态信息是否匹配作为服务器判断客户端发送的同步方向和/或同步行为是否符合设定的条件的依据之一,并进一步根据判断结果进行相应处理。另一种是服务器有顺序有步骤地判断,先判断服务器和客户端的状态信息是否匹配,再对客户端发送的同步方向和/或同步行为是否符合设定的条件进行判断,以便服务器根据判断结果进一步处理。
先介绍集中判断的情况。服务器接收到客户端发送的数据同步请求、同步数据的信息,以及同步状态信息后,服务器根据客户端发送的信息,以及服务器数据库的同步数据信息、同步状态信息、服务器设定的条件等,进行是否符合条件判断。其中,客户端发送的数据同步请求包括同步方向、和/或同步行为,和/或保持同步方向不变的标志以及同步数据信息等;客户端发送的同步数据信息包括待同步数据的类型、数据的数目、数据元素标识有效性、修改日志的有效性、同步数据的指纹、要同步数据中修改数据所占比率信息等信息;客户端发送的同步状态信息包括同步锚信息,用于判断上次会话是否成功等。服务器数据库的同步数据信息包括服务器的数据元素标识映射表的有效性、修改日志的有效性、同步数据的指纹等。服务器同步状态信息包括同步锚信息,用于判断上次会话是否成功等。
对于服务器设定的条件,包括但不限于下面的一些条件:
(1)如果客户端发送的同步状态信息与服务器存储的同步状态信息不匹配,即上次会话没有成功完成,客户端发送上次会话没有收到成功状态响应的数据元素或其标识/指纹信息对,或者客户端发送所有的数据元素,或其标识/指纹信息对。
在这种条件下,如果客户端只发送修改的数据,服务器会要求客户端发送所有的数据,或其标识/指纹信息对。
(2)如果同步双方中有一方的数据元素标识映射表无效或修改日志无效,客户端应先发送所有数据元素的标识及指纹,或直接发送所有数据元素。
在这种条件下,如果客户端只发送修改的数据,服务器的数据元素标识映射表无效或修改日志无效,服务器会要求客户端先发送所有数据元素的标识及指纹。
(3)如果客户端的指纹算法不唯一(即可能对两个不同的数据元素算出相同的指纹),客户端应该不发送指纹,而是直接发送数据元素。
另一种情况,即服务器也可以有顺序、有步骤地分别进行判断。首先,当服务器判断客户端和服务器的会话状态信息匹配时,选择符合条件的同步机制。一般情况下,服务器会选用客户端同步请求中的同步机制,此时服务器还可以对客户端的同步机制中的数据进行同步数据的选择,同步数据的选择包括修改的数据、全部数据、某些特定数据。特定数据的选择基于指纹的判断以及冲突检测的情况等。如果服务器的数据元素标识映射表无效或修改日志无效,服务器需要选择另外的符合条件的数据同步机制。比如,要求客户端发送数据标识/指纹信息对,或发送全部数据元素。当服务器判断得到客户端和服务器的状态信息不匹配时,首先判断客户端发送的数据同步请求中携带的同步方向、和/或同步行为是否符合设定的条件,这些设定条件可以参考前面的说明。如果是,则采用符合设定条件的数据同步机制进行本次数据同步;如果否,服务器判断客户端发送的数据同步请求中是否携带保持同步方向不变的标志或者是否存储有默认保持同步方向不改变标志,如果是,服务器从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制返回给客户端,如果否,服务器根据本地策略选择一种数据同步机制返回客户端或与客户端重新协商数据同步机制。在本发明实施例中,保持同步方向不变标志实际上就是保持客户端发起的数据同步请求中携带的数据同步机制方向不变的标志,如果携带的数据同步机制方向只有一个,则保持这一个数据同步机制方向不变。此外,本发明实施例中服务器根据本地策略选择的数据同步机制中还可以包括同步数据的选择,同步数据的选择包括修改的数据、全部数据、某些特定数据。特定数据的选择基于指纹的判断以及冲突检测的情况等。
在本发明实施例中,客户端发起的数据同步机制协商参数还可以包括至少一组备选的同步方向、和/或同步行为,这时,服务器判断客户端发送的数据同步请求中携带的同步行为、或/和同步方向是否符合设定的条件的过程为:
第一步、判断客户端发送的数据同步请求中携带的主用同步行为、或/和同步方向是否符合设定的条件,如果是,则采用符合设定条件的数据同步机制进行本次数据同步;否则,转入第二步;
第二步、判断客户端发送的数据同步请求中携带的其中一个备用同步行为、或/和同步方向是否符合设定的条件,如果是,则采用符合设定条件的数据同步机制进行本次数据同步;否则,转入第二步继续判断,直到判断完所有所携带的备用同步行为、或/和同步方向。
以上这两种方法可以组合使用。
客户端发送同步机制协商参数可以通过扩展现有协议元素的含义,或者增加新的协议元素来实现,举一个具体的实施例进行说明。
<Alert CmdID=’1’Direction=’fromclient’ Behavior=’fast’
DirectionNoChange=’true’>
<Anchor>同步状态信息</Anchor>
<TargetURI>目标数据库地址</TargetURI>
<SourceURI>源数据库地址</SourceURI>
</Alert>
其中,Direction和Behavior属性分别代表同步方向和同步行为,其中DirectionNoChange为保证同步方向不变的标志。以上协议元素的表示法不应该理解为对本发明的限制。
数据同步状态信息可以在现有技术的<Achor>协议元素中携带,也可以采取新的机制在其他协议元素中携带,数据同步状态信息的协商不应该理解为对本发明的限制。
本发明还提供一种协商数据同步的系统,该系统如图4所示,包括:客户端和与客户端进行消息交互的服务器,其中,客户端向服务器发送携带数据同步机制协商参数的数据同步请求,服务器根据该请求携带的同步类型协商参数确定本次数据同步所采用的数据同步机制。
服务器包括数据同步模块和同步机制分析模块,其中,数据同步模块用于接收客户端发送的数据同步请求且将该请求转发给同步机制分析模块,同步机制分析模块根据接收到该请求携带的数据同步机制协商参数(包括同步行为、或/和同步方向)确定数据同步机制,通过数据同步模块返回给客户端。
客户端包括用户接口、用户行为选择模块、同步机制分析模块和数据同步模块,其中,
用户接口,用于接收用户输入的用户行为发送给用户行为选择模块,并向用户展示来自用户行为选择模块的用户行为选项等特征;
用户行为选择模块,用于为用户提供用户行为且通过用户接口显示给用户,接收来自用户接口的用户输入的用户行为后发送给同步机制分析模块;
同步机制分析模块:用于将用户行为转化为同步机制协商参数,提供给数据同步模块发送给服务器;或者通过数据同步模块接收服务器确认的数据同步机制,判断是否接受,如接受则发起对应的数据同步流程;如不接受,则可以重新确定同步机制协商参数并重新协商。
当然,本发明还提供一种客户端,如图5所示,该客户端与图4所述系统中的客户端相同。
举三个例子说明本发明当客户端和服务器之间的状态不匹配时,如何进行数据同步机制的协商的。
图6为本发明协商数据同步机制的方法实施例一的流程图,其具体步骤为:
步骤600、客户端向服务器发起数据同步初始化消息,该消息携带客户端的同步状态信息,该消息还携带有数据同步方向标志和要同步数据的信息。
在本发明中,该数据同步初始化消息可以为数据同步请求,这时,图6所述的过程不仅可以在数据同步初始化阶段进行,而且还可以在数据同步阶段进行。
步骤601、服务器接收到该消息后,判断该消息所携带的同步状态信息是否和自身数据库存储的数据状态信息相同,如果是,执行步骤605;如果否,执行步骤602。
步骤602、服务器根据该消息携带的保持同步方向不变的标志或者根据服务器默认同步方向不改变的设置判断是否要求数据同步方向保持不变,即和客户端发起的数据同步机制方向相同,如果是,执行步骤603;否则,执行步骤606;
步骤603、服务器根据该消息携带的同步方向判断是否为单向同步,如果是,执行步骤604;否则,执行步骤607;
步骤604、服务器根据该消息携带的要同步数据的信息确定同步数据策略,从表3中选择相应的单向同步机制进行本次数据同步,且在数据同步初始化消息的响应消息中携带所选择的数据同步机制,客户端接收到该响应消息后采用所携带的数据同步机制与服务器之间进行本次数据同步。
步骤605、服务器选择符合条件的数据同步机制作为本次数据同步的机制与客户端之间进行本次数据同步,且在数据同步初始化消息的响应消息中携带所确定的数据同步机制,客户端接收到该响应消息后采用所携带的数据同步机制与服务器之间进行本次数据同步。
步骤606、服务器根据该消息携带的同步数据的信息确定同步数据策略,选择相应的其中一个数据同步机制与客户端之间进行本次数据同步,且在数据同步初始化消息的响应消息中携带所选择的数据同步机制,客户端接收到该响应消息后采用所携带的数据同步机制与服务器之间进行本次数据同步。
步骤607、服务器根据该请求携带的同步数据的信息确定同步数据策略,从表4中选择相应的双向同步机制进行本次数据同步,且在数据同步初始化消息的响应消息中携带所选择的数据同步机制,客户端接收到该响应消息后采用所携带的数据同步机制与服务器之间进行本次数据同步。
图7为本发明协商数据同步机制的方法实施例二的流程图,其具体步骤为:
步骤700、客户端向服务器发起数据同步初始化消息,该消息携带客户端的同步状态信息,该消息还携带有选择的同步方向、和/或同步行为和要同步数据的信息,选择的数据同步机制包括主选的同步方向、和/或同步行为和备选的同步方向、和/或同步行为。
在本发明实施例中,该数据同步初始化消息可以为数据同步请求,这时,图7所述的过程不仅可以在数据同步初始化阶段进行,而且还可以在数据同步阶段进行。
步骤701、服务器接收到该消息后,判断该消息所携带的同步状态信息是否和自身数据库存储的数据状态信息相同,如果是,执行步骤708;如果否,执行步骤702。
步骤702、服务器根据该消息携带的要同步数据的信息确定同步数据策略,根据对应关系得到所确定同步数据策略所对应的数据同步机制,判断该消息所携带的主选的同步方向、和/或同步行为是否符合得到的数据同步机制,如果是,执行步骤709;否则,执行步骤703。
步骤703、服务器判断该消息所携带的备选的同步方向、和/或同步行为是否已经为空,如果否,执行步骤704;否则,执行步骤710。
步骤704、服务器获取该消息所携带的其中一个备选的同步方向、和/或同步行为,转入步骤705。
步骤705、服务器判断该备选的同步方向、和/或同步行为是否符合得到的数据同步机制,如果是,则执行步骤706;否则,返回步骤703继续执行,直到获取完所有的该消息携带的备选的同步方向、和/或同步行为。
步骤706、服务器将该备选的同步方向、和/或同步行为作为本次数据同步的机制,执行步骤707。
步骤707、服务器向客户端发送数据同步机制确认消息,携带本次数据同步所采用的数据同步机制。
在发送时,也可以采用同步方向、和/或同步行为。
步骤708、服务器将主选的同步方向、和/或同步行为作为本次数据同步的机制,执行步骤707。
步骤709、服务器将确定的数据同步机制作为本次数据同步的机制,执行步骤707。
步骤710、服务器根据本地策略选择一种数据同步机制作为本次数据同步的机制或与客户端重新协商数据同步机制,执行步骤707。
在本步骤中,也可以采用图6所述的方法进行数据同步机制的最终确定。
在图7所述的方法中,客户端向服务器提供了一个主选的数据同步机制,多个备选的数据同步机制,在服务器判断出上一次数据同步过程失败时,首先判断主选的数据同步机制是否合适,如果不合适,再判断备选的数据同步机制是否合适,如果也不合适,最后再根据同步数据策略选择一个数据同步机制。
图8为本发明协商数据同步机制的方法实施例三的流程图,其具体步骤为:
步骤800、客户端向服务器发起数据同步初始化消息,该消息携带客户端的同步状态信息,该消息还携带有选择的同步方向、和/或同步行为和要同步数据的信息,选择的数据同步机制包括主选的同步方向、和/或同步行为和备选的同步方向、和/或同步行为。
在本发明中,该数据同步初始化消息可以为数据同步请求,这时,图8所述的过程不仅可以在数据同步初始化阶段进行,而且还可以在数据同步阶段进行。
步骤801、服务器接收到该消息后,判断该消息所携带的同步状态信息是否和自身数据库存储的数据状态信息相同,如果是,执行步骤805;如果否,执行步骤802。
步骤802、服务器根据该消息携带的要同步数据的信息确定同步数据策略,根据对应关系得到所确定同步数据策略所对应的数据同步机制。
步骤803、服务器判断该数据同步机制中是否有该消息所携带的主选的同步方向、和/或同步行为或备选的同步方向、和/或同步行为,如果是,执行步骤804;否则,执行步骤806。
步骤804、服务器将该消息所携带的主选的同步方向、和/或同步行为或备选的同步方向、和/或同步行为作为本次数据同步的机制,返回给客户端。
如果该多个数据同步机制中既包括该消息所携带的主选的同步方向、和/或同步行为,又包括该消息所携带的备选的同步方向、和/或同步行为,则服务器将该消息所携带的主选的同步方向、和/或同步行为作为本次数据同步的机制。
步骤805、服务器将该消息携带的主选的同步方向、和/或同步行为作为本次数据同步的机制,返回给客户端。
步骤806、服务器向客户端返回该消息的失败响应,要求与客户端重新协商本次数据同步所采用的数据同步机制。
举四个具体实施例说明本发明。
实施例一:客户端数据库中数据的类型为文件类型,客户端发起客户端到服务器的单向同步、快行为,即仅将客户端修改的数据同步到服务器上。由于客户端和服务器之间网络信号原因,导致数据同步过程中断,客户端重新发起同步,仍选择了相同的方向和行为。
首先,客户端向服务器发起数据同步请求,该请求还携带有要同步数据的类型为文件类型和自身数据库的同步状态信息;
其次,服务器检测到客户端和服务器的状态信息不匹配,且根据要同步数据的类型为文件类型,确定进行客户端到服务器的单向智能行为和快行为的组合,在数据同步请求的响应消息中要求客户端发起由服务器确认的数据同步机制;
最后,客户端接收到该响应消息后与服务器之间进行由服务器确认的数据同步机制。
实施例二:首先,客户端仅希望使用同步能力实现备份功能,即将客户端数据库中的数据发送到服务器进行备份,因此选择客户端到服务器的单向同步机制,如果在数据同步过程中数据同步失败,则直接执行客户端到服务器的单向刷新同步机制全部覆盖服务器数据库中对应于该客户端所有的数据,客户端将客户端到服务器的单向刷新行为机制携带在数据同步请求中发送给服务器。
其次,服务器检测到客户端数据库和服务器数据库的状态信息不匹配,且检测到客户端同步方向不改变标志,接受客户端选择的单向刷新行为机制,在数据同步请求的响应消息中要求客户端发起从客户端到服务器的单向刷新行为机制,而不强制要求发起慢同步;
最后,客户端接收到该响应消息后与服务器之间进行单向刷新同步机制的数据同步。
实施例三:用户A将客户端借给用户B使用以后,客户端中存储了用户B的很多数据,用户A希望通过一次仅服务器到客户端的刷新同步机制,将服务器数据覆盖客户端数据,这个过程与实施例二的过程相同,只不过方向更改为由服务器到客户端进行单向刷新行为机制的数据同步过程。
实施例四:用户A所使用的客户端提供如下一些用户可以理解的用户行为选项:1、傻瓜选项,即用户行为:备份操作、下载操作、保证双方数据完全一致操作,其中,“备份操作”可以对应到以下协商参数:
(1)方向,客户端到服务器;
(2)行为,刷新行为;
(3)携带保持同步方向不改变的标记、或者备选同步方向、和/或同步行为为“客户端到服务器、智能行为和刷新行为的组合”,也可以定义“智能行为和刷新行为的组合”为“智能刷新行为”。
正常情况下,服务器接受客户端要求的同步方向和行为协商参数,确认为“客户端到服务器的单向刷新行为”并返回客户端,客户端发起数据同步;异常情况下,服务器确认为“客户端到服务器的单向智能刷新行为”并返回客户端,客户端发起数据同步。
类似地,“下载操作”可以对应为:
(1)方向:服务器到客户端;
(2)行为:刷新行为;
(3)携带同步方向不改变标记,或者备选同步方向和行为为“服务器到客户端、单向智能刷新行为”。
“保证双方数据完全一致操作”可以对应为:
(1)方向:双向;
(2)行为:快同步;
(3)携带同步方向不改变标记,或者备选同步方向和行为为“双向、智能行为和快行为的组合”或者“双向、慢行为”。
2、高级选项:用户可以选择同步方向、同步行为、同步数据信息(数据类型、数据的数目、同步数据标识有效性、修改日志的有效性、同步数据的指纹、要同步数据中修改数据所占比率信息等信息)。例如用户选择了双向同步,要求流量较小,选择了通讯录同步(同步条目共10条),则客户端转换为如下参数:
(1)方向:客户端到服务器;
(2)行为:快行为;
(3)携带同步方向不改变标记,或者备选同步方向和行为为“双向、慢行为”。
如果用户选择的通讯录条目为100条,则上述的(3)变更为:
(3)携带同步方向不改变标记,或者备选同步方向和行为为“双向、智能行为和快行为的组合”。
实施例五:用户A所使用的客户端在不同的场合经常需要同步不同的数据类型:电话本、日程、短消息等。其终端和服务器的设备能力信息在网络上也保存有一份,可以使用URI访问;在同步之前,或者设备能力信息发生变更时,客户端希望和服务器之间协商设备能力信息并保存,供数据同步时使用。可以通过如下几种方式来实现设备能力的协商:
(1)协商所有的设备能力信息;
(2)根据数据类型协商相关设备能力信息;一般情况下,设备能力信息包含一些公用的信息,例如软件版本号等;另外还包含一些数据类型特定的信息,例如特定于电话本的字段等;
(3)使用URI指明待协商的设备能力信息;设备能力信息可以被保存在XML文档,使用URI可以指向整个文档、某个片断、特定的元素或者属性值;
(4)使用表达式指明待协商的设备能力信息;使用表达式可以指示特定的设备能力,例如指明所有MIME相关的设备能力信息,或所有值类型为整型的设备能力信息等。
客户端向服务器发送数据同步请求,其行为为设备能力协商行为,附加的参数指明协商设备能力信息的方式,方向参数则指明是仅客户端向服务器发送设备能力信息、还是仅服务器向客户端发送设备能力信息,或者双方都发送。如果客户端向服务器发送数据同步请求所携带的数据同步机制协商参数中的同步行为可以仅包括设备能力协商行为,则此时服务器根据该数据同步机制协商参数中所包括的设备能力协商行为方式,即上述四种设备能力协商方式进行设备能力协商。
在本发明中,客户端和服务器的地位属于对等的,对于功能比较强大的客户端,如个人数字助理(PDA)或计算机等客户端,也可以按照服务器一样的架构以及处理流程进行同步机制协商过程;相应的处理过程与上述服务器处理客户端的数据同步请求一样,在此不再详述。对于功能比较弱的服务器,本发明实施例也可以将功能比较弱的服务器作为客户端向其他服务器发送数据同步请求,相应的处理过程与上述服务器处理客户端的数据同步请求一样,在此不再详述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (29)
1、一种同步机制的方法,其特征在于,该方法包括:
服务器收到客户端发送的携带数据同步机制协商参数的数据同步请求;
服务器获取所述的同步机制协商参数,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制,并将所确定的数据同步机制返回给客户端。
2、如权利要求1所述的方法,其特征在于,所述数据同步机制协商参数包括同步方向、或/和同步行为;或
表示客户端选择同步方向、和/或同步行为的信息。
3、如权利要求2所述的方法,其特征在于,所述同步方向为客户端到服务器、或者服务器到客户端以及客户端和服务器之间的双向中的一种;
所述同步行为包括快行为、慢行为、刷新行为、智能行为和设备能力协商行为中的一种或多种的组合。
4、如权利要求2所述的方法,其特征在于,所述确定本次数据同步所采用的数据同步机制具体为:
当服务器判断客户端发送的同步方向、或/和同步行为符合设定的条件时,以客户端发送的同步方向、或/和同步行为作为本次数据同步所采用的数据同步机制。
5、如权利要求2所述的方法,其特征在于,所述确定本次数据同步所采用的数据同步机制具体为:
当服务器判断客户端发送的同步方向、或/和同步行为不符合设定的条件时,服务器根据策略从设置的数据同步机制中选择一种数据同步机制作为本次数据同步所采用的数据同步机制。
6、如权利要求5所述的方法,其特征在于,当客户端发送的数据同步请求中携带保持同步方向不变的标志或者存储有默认保持同步方向不改变标志时,所述服务器根据策略选择数据同步机制具体包括:服务器根据策略从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制作为本次数据同步所采用的数据同步机制。
7、如权利要求4所述的方法,其特征在于,所述数据同步机制协商参数进一步还包括至少一组备选的同步方向、和/或同步行为,当服务器判断客户端发送的主选的同步方向、或/和同步行为符合设定的条件时;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
以客户端发送的主选的同步方向、或/和同步行为作为本次数据同步所采用的数据同步机制。
8、如权利要求5所述的方法,其特征在于,所述数据同步机制协商参数进一步还包括至少一组备选的同步方向、和/或同步行为,
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
服务器判断客户端主选的同步方向、和/或同步行为是否符合所述服务器根据策略从设置的数据同步机制中选择的一种数据同步机制,如果是,则以所述主选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制;如果否,则进一步判断客户端备选的同步方向、和/或同步行为是否有符合所述服务器根据策略从设置的数据同步机制中选择的一种数据同步机制,如果有,则以所符合的备选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制,如果所有备选的同步方向、和/或同步行为都不符合所述服务器根据策略从设置的数据同步机制中选择的一种数据同步机制时,则以所述主选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制。
9、如权利要求6所述的方法,其特征在于,所述数据同步机制协商参数进一步还包括至少一组备选的同步方向、和/或同步行为;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
服务器判断客户端主选的同步方向、和/或同步行为是否符合服务器根据策略从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制,如果是,则以所述主选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制;如果否,则进一步判断客户端备选的同步方向、和/或同步行为是否有符合服务器根据策略从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制,如果有,则以所符合的备选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制,如果所有备选的同步方向、和/或同步行为都不符合服务器根据策略从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制时,则以所述主选的同步方向、和/或同步行为作为本次数据同步所采用的数据同步机制。
10、如权利要求5所述的方法,其特征在于,所述数据同步机制协商参数进一步还包括至少一组备选的同步方向、和/或同步行为;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
确定服务器根据策略从设置的数据同步机制中选择的一种数据同步机制中是否有所述的主选的同步方向和/或同步行为,或备选的同步方向和/或同步行为,如果有,则将主选的同步方向和/或同步行为,或备选的同步方向和/或同步行为作为本次数据同步所采用的数据同步机制。
11、如权利要求6所述的方法,其特征在于,所述数据同步机制协商参数进一步还包括至少一组备选的同步方向、和/或同步行为;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
确定服务器根据策略从所设置的数据同步机制中选择一个与该请求所携带同步行为的同步方向相同的数据同步机制中是否有所述的主选的同步方向和/或同步行为,或备选的同步方向和/或同步行为,如果有,则将主选的同步方向和/或同步行为,或备选的同步方向和/或同步行为作为本次数据同步所采用的数据同步机制。
12、如权利要求4或5所述的方法,其特征在于,所述数据同步请求中还携带有同步数据的信息,所述的同步数据的信息作为服务器判断客户端发送的同步方向、或/和同步行为是否符合设定的条件的依据。
13、如权利要求5或6所述的方法,其特征在于,所述数据同步请求还携带有同步数据的信息;
所述的服务器根据策略从设置的数据同步机制中选择一种数据同步机制作为本次数据同步所采用的数据同步机制具体为:服务器根据所述的同步数据的信息确定当前同步数据策略,并进一步根据确定的策略从从设置的数据同步机制中选择一种数据同步机制作为本次数据同步所采用的数据同步机制。
14、如权利要求12所述的方法,其特征在于,所述同步数据的信息至少包括下述内容之一:同步数据的数目、同步数据的类型、同步数据标识有效性、修改日志的有效性、数据指纹信息、和要同步数据中修改数据所占比率信息。
15、如权利要求1所述的方法,其特征在于,服务器所确定的数据同步机制包括对待同步数据的选择,包括全部数据元素、修改的数据元素、指定的数据元素。
16、如权利要求3所述的方法,其特征在于,所述同步行为为设备能力信息协商行为时,所述的同步机制协商参数还包括指示设备能力协商行为方式的参数;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
服务器根据设备能力协商行为方式的参数确定待协商的设备能力信息集合。
17、如权利要求3所述的方法,其特征在于,所述同步行为为设备能力信息协商行为时,所述的同步机制协商参数还包括指示设备能力协商行为方式的参数;
根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
服务器根据设备能力协商行为方式的参数确定待协商的设备能力信息集合,并根据同步机制协商参数中的同步方向和/或其他同步行为确定本次数据同步所采用的数据同步机制。
18、如权利要求16或17所述的方法,其特征在于,所述的设备能力协商行为方式包含协商全部设备能力信息、根据同步数据类型确定设备能力信息、根据外部URI协商设备能力信息、或根据表达式协商设备能力信息。
19、一种同步机制的方法,其特征在于,该方法包括:
收到携带数据同步机制协商参数的数据同步请求,所述的同步机制协商参数携带有数据同步请求发送方选择的同步方向和/或同步行为;
获取所述的同步机制协商参数,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制,并将所确定的数据同步机制返回给同步请求发送方。
20、如权利要求19所述的方法,其特征在于,所述同步方向为客户端到服务器、或者服务器到客户端以及客户端和服务器之间的双向中的一种;
所述同步行为包括快行为、慢行为、刷新行为、智能行为和设备能力协商行为中的一种或多种的组合。
21、如权利要求20所述的方法,其特征在于,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
当发送方发送的同步方向、或/和同步行为符合设定的条件时,以发送方发送的符合设定条件的同步方向、或/和同步行为作为本次数据同步所采用的数据同步机制。
22、如权利要求20所述的方法,其特征在于,根据所述的同步机制协商参数确定本次数据同步所采用的数据同步机制具体为:
当发送方发送的同步方向、或/和同步行为不符合设定的条件时,数据同步请求的接受方根据策略从设置的数据同步机制中选择一种数据同步机制作为本次数据同步所采用的数据同步机制。
23、如权利要求21或22所述的方法,其特征在于,所述数据同步请求还携带有同步数据的信息,所述的同步数据的信息作为数据同步请求的接受方判断发送方发送的同步方向、或/和同步行为是否符合设定的条件的依据。
24、如权利要求23所述的方法,其特征在于,所述同步数据的信息至少包括下述内容之一:同步数据的数目、同步数据的类型、同步数据标识有效性、修改日志的有效性、数据指纹信息、和要同步数据中修改数据所占比率信息。
25、一种数据同步的系统,其特征在于,包括:客户端和与客户端进行消息交互的服务器;
所述的客户端用于向服务器发送携带数据同步机制协商参数的数据同步请求,并接收服务器返回的数据同步机制;或者根据服务器发送的数据同步请求中携带的同步类型协商参数确定本次数据同步所采用的数据同步机制后,返回给服务器;
所述的服务器根据该请求携带的同步类型协商参数确定本次数据同步所采用的数据同步机制后,返回给客户端;或者向客户端发送携带数据同步机制协商参数的数据同步请求,并接收客户端返回的数据同步机制。
26、如权利要求25所述的系统,其特征在于,所述服务器包括数据同步模块和同步机制分析模块,其中,
数据同步模块用于接收客户端发送的数据同步请求且将该请求转发给同步机制分析模块;
同步机制分析模块根据接收到该请求携带的数据同步机制协商参数确定数据同步机制,通过数据同步模块返回给客户端。
27、如权利要求25所述的系统,其特征在于,所述客户端包括用户接口、用户行为选择模块、同步机制分析模块和数据同步模块,其中,
用户接口,用于接收用户输入的用户行为发送给用户行为选择模块,并向用户展示来自用户行为选择模块的用户行为选项特征;
用户行为选择模块,用于为用户提供用户行为且通过用户接口显示给用户,接收来自用户接口的用户输入的用户行为后发送给同步机制分析模块;同步机制分析模块:用于将用户行为转化为同步机制协商参数,构造携带同步机制协商参数的数据同步请求提供给数据同步模块发送给服务器;或者通过数据同步模块接收服务器确认的数据同步机制。
28、一种数据同步的客户端,其特征在于,包括:
用户接口,用于接收用户输入的用户行为发送给用户行为选择模块,并向用户展示来自用户行为选择模块的用户行为选项特征;
用户行为选择模块,用于为用户提供用户行为且通过用户接口显示给用户,接收来自用户接口的用户输入的用户行为后发送给同步机制分析模块;
同步机制分析模块:用于将用户行为转化为同步机制协商参数,构造携带同步机制协商参数的数据同步请求提供给数据同步模块发送给服务器;或者通过数据同步模块接收服务器所采用的数据同步机制,判断是否接受,如果是,发起对应的数据同步流程;如果否,则重新确定同步机制协商参数并重新协商。
29、一种数据同步的服务器,其特征在于,所述的服务器包括:
数据同步模块,用于接收客户端发送的数据同步请求,所述的同步请求中携带有数据同步机制协商参数,并将所述同步请求转发出去;
同步机制分析模块,用于根据接收到的所述的同步请求中携带的数据同步机制协商参数确定数据同步机制,并通过数据同步模块将所确定的数据同步机制返回给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101080785A CN101102311B (zh) | 2006-07-08 | 2007-05-24 | 一种协商数据同步机制的方法、客户端及系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610101251 | 2006-07-08 | ||
CN200610101251.4 | 2006-07-08 | ||
CN2007101080785A CN101102311B (zh) | 2006-07-08 | 2007-05-24 | 一种协商数据同步机制的方法、客户端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101102311A true CN101102311A (zh) | 2008-01-09 |
CN101102311B CN101102311B (zh) | 2012-04-04 |
Family
ID=39036402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101080785A Active CN101102311B (zh) | 2006-07-08 | 2007-05-24 | 一种协商数据同步机制的方法、客户端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101102311B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143146A (zh) * | 2010-11-09 | 2011-08-03 | 华为技术有限公司 | 企业通信录更新方法和设备及系统 |
CN102752294A (zh) * | 2012-06-19 | 2012-10-24 | 中国科学院计算技术研究所 | 基于设备能力的多终端数据同步方法和系统 |
CN103200146A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团安徽有限公司 | 终端和服务器的数据同步方法和装置 |
CN105635069A (zh) * | 2014-11-04 | 2016-06-01 | 华为技术有限公司 | Ipdr工作模式协商方法和装置 |
CN106815275A (zh) * | 2015-12-02 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种通过备用数据库实现主备数据库同步的方法与设备 |
WO2019232992A1 (zh) * | 2018-06-04 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据展示方法、电子设备及存储介质 |
US20230094648A1 (en) * | 2021-09-30 | 2023-03-30 | Dropbox, Inc. | Backup feature provided by bidirectional synchronized content management system |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103647630A (zh) * | 2013-12-04 | 2014-03-19 | 青岛海尔软件有限公司 | 一种基于物联网的数据同步方法 |
CN106375354B (zh) * | 2015-07-20 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1625878B (zh) * | 2002-04-15 | 2010-06-16 | 诺基亚有限公司 | 用于处理同步相关信息的方法和设备 |
CN1794724A (zh) * | 2005-10-27 | 2006-06-28 | 华为技术有限公司 | 在SyncML层实现数据同步的方法 |
-
2007
- 2007-05-24 CN CN2007101080785A patent/CN101102311B/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143146A (zh) * | 2010-11-09 | 2011-08-03 | 华为技术有限公司 | 企业通信录更新方法和设备及系统 |
CN102143146B (zh) * | 2010-11-09 | 2015-04-08 | 华为技术有限公司 | 企业通信录更新方法和设备及系统 |
CN103200146A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团安徽有限公司 | 终端和服务器的数据同步方法和装置 |
CN103200146B (zh) * | 2012-01-04 | 2016-05-25 | 中国移动通信集团安徽有限公司 | 终端和服务器的数据同步方法和装置 |
CN102752294A (zh) * | 2012-06-19 | 2012-10-24 | 中国科学院计算技术研究所 | 基于设备能力的多终端数据同步方法和系统 |
CN105635069A (zh) * | 2014-11-04 | 2016-06-01 | 华为技术有限公司 | Ipdr工作模式协商方法和装置 |
CN106815275A (zh) * | 2015-12-02 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种通过备用数据库实现主备数据库同步的方法与设备 |
CN106815275B (zh) * | 2015-12-02 | 2020-11-27 | 阿里巴巴集团控股有限公司 | 一种通过备用数据库实现主备数据库同步的方法与设备 |
WO2019232992A1 (zh) * | 2018-06-04 | 2019-12-12 | 平安科技(深圳)有限公司 | 数据展示方法、电子设备及存储介质 |
US20230094648A1 (en) * | 2021-09-30 | 2023-03-30 | Dropbox, Inc. | Backup feature provided by bidirectional synchronized content management system |
US12111845B2 (en) * | 2021-09-30 | 2024-10-08 | Dropbox, Inc. | Backup feature provided by bidirectional synchronized content management system |
Also Published As
Publication number | Publication date |
---|---|
CN101102311B (zh) | 2012-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101102311B (zh) | 一种协商数据同步机制的方法、客户端及系统 | |
US7317907B2 (en) | Synchronizing server and device data using device data schema | |
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
CN100401289C (zh) | 配置同步会话 | |
US6973299B2 (en) | Unified contact list | |
US7957723B2 (en) | Sharing information feed data | |
CN1326346C (zh) | 在服务器的请求消息具有最大长度的同步系统中由服务器发起同步的方法 | |
JP4791485B2 (ja) | 3層同期システム内で空更新イベントを処理するための方法、コンピュータ・プログラム、およびバイパス装置 | |
CA2534606C (en) | Synchronizing server and device data using device data schema | |
CN101132293B (zh) | 一种个人信息的处理方法、系统和装置 | |
US20040058644A1 (en) | Relay device, information transmission device, and information transmission method | |
US8751442B2 (en) | Synchronization associated duplicate data resolution | |
JP2009140515A (ja) | 中断された同期プロセスに対処してデータを同期させる方法、装置、システム | |
CN102769640B (zh) | 用户信息的更新方法、服务器以及系统 | |
CN103986742A (zh) | 文件同步的方法及相关电子装置 | |
CN103248654A (zh) | 虚拟桌面服务参数的协商方法、装置及系统 | |
CN101808160A (zh) | 一种应用于移动终端的文件处理方法及移动终端 | |
CN102378400A (zh) | 蓝牙服务的管理方法和装置 | |
CN110018875A (zh) | 一种基于idv的桌面同步实现方法 | |
US20140372375A1 (en) | Contact data sharing | |
CN103248668A (zh) | 虚拟桌面服务参数的协商方法、装置及系统 | |
CN118337846B (zh) | 分布式网络的代理通信方法、装置、系统、设备及介质 | |
CA2496478C (en) | Apparatus, and associated method, for facilitating synchronization of databases connected by way of a radio air interface | |
TWI249114B (en) | System and method for synchronizing data between a mobile computing device and a remote server | |
CN117560248A (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 |