CN101516131A - 一种数据同步的方法、系统和装置 - Google Patents

一种数据同步的方法、系统和装置 Download PDF

Info

Publication number
CN101516131A
CN101516131A CNA200810008281XA CN200810008281A CN101516131A CN 101516131 A CN101516131 A CN 101516131A CN A200810008281X A CNA200810008281X A CN A200810008281XA CN 200810008281 A CN200810008281 A CN 200810008281A CN 101516131 A CN101516131 A CN 101516131A
Authority
CN
China
Prior art keywords
synchronous
synchronized process
synch command
recipient
session
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
CNA200810008281XA
Other languages
English (en)
Other versions
CN101516131B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200810008281XA priority Critical patent/CN101516131B/zh
Priority to EP12160667.7A priority patent/EP2469429A3/en
Priority to EP08872738A priority patent/EP2182695B1/en
Priority to PCT/CN2008/073157 priority patent/WO2009103212A1/zh
Publication of CN101516131A publication Critical patent/CN101516131A/zh
Priority to US12/783,271 priority patent/US20100228866A1/en
Application granted granted Critical
Publication of CN101516131B publication Critical patent/CN101516131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例公开了一种可应用于开放移动联盟OMA中数据同步DS的方法,包括:向同步接收方发送同步会话请求,建立同步发起方与所述同步接收方的同步会话连接;在所述同步会话连接中启动同步进程,所述同步发起方与所述同步接收方在所述同步进程中进行数据同步。本发明实施例在同步会话中启动同步进程,同步双方在同步进程中进行数据同步,从而实现了灵活地对同步双方的数据进行同步。

Description

一种数据同步的方法、系统和装置
技术领域
本发明实施例涉及通信技术领域,特别涉及一种可应用于OMA(OpenMobile Alliance,开放移动联盟)中数据同步(Data Synchronization,DS)的方法、系统和装置。
背景技术
SyncML(Synchronization Makeup Language,同步标记语言)同步协议定义了在SyncML客户端和SyncML服务器进行同步时的消息交互过程,同时定义的数据同步类型包括双向同步、客户端发起单向同步、服务器端发起单向同步及慢同步、服务器通告同步等。一次SyncML同步过程分为三个阶段,通常需要6个数据包来完成,具体包含的消息包的数量根据同步类型而变化。在同步会话成功结束后,双方需要更新锚值,用于表明会话成功。下次会话开始时,发送方发送锚值给接收方,接收方用接收的锚值与自身存储的锚值比较,如果相同,则认为上次会话成功,否则,认为上次会话失败,启动特殊的同步处理方式。
在SyncML同步协议规定的同步过程中,每次设备需要同步时,都会发起一个同步会话,并且同步会话的流程是固定的,消息包1和消息包2发送初始化信息,消息包3和消息包4交换数据,在消息包5和消息包6发送完之后结束同步会话。
在某些特殊的场景下,比如,在CPM(Converged IP Messaging,融合IP消息)中,终端的Presence(呈现)信息需要实时更新到服务器上,数据更新比较频繁,就需要能实时保持会话连接,随时进行双方更新数据的交换。在有些场景下,传输资源并不受限制,比如,手机与智能卡之间,就很容易保持长时间的会话连接。因此在上述场景下,需要双方能保持连续性的同步会话。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有技术的同步流程是固定的,这种同步流程僵化,不够灵活,在多个同步过程不能同时开始或结束时,只能重新建立会话,才能继续同步。
发明内容
本发明实施例提供一种数据同步的方法、系统和装置,以解决现有的数据同步方式流程僵化、不够灵活的问题。
为达到上述目的,本发明实施例一方面提供一种可应用于开放移动联盟OMA中数据同步DS的方法,包括:向同步接收方发送同步会话请求,建立同步发起方与所述同步接收方的同步会话连接;在所述同步会话连接中启动同步进程,所述同步发起方与所述同步接收方在所述同步进程中进行数据同步。
另一方面,本发明实施例还提供一种可应用于开放移动联盟OMA中数据同步DS的系统,包括:同步发起方,可用于与同步接收方进行数据同步;所述同步接收方,用于接收同步会话请求;所述同步发起方,用于向所述同步接收方发送同步会话请求,建立与所述同步接收方的同步会话连接,在所述同步会话中启动同步进程,并与所述同步接收方在所述同步进程中进行数据同步。
再一方面,本发明实施例还提供一种同步发起方,包括:建立模块,用于向同步接收方发送同步会话请求,建立与所述同步接收方的同步会话连接;启动模块,用于在所述建立模块建立的同步会话中启动同步进程;同步模块,用于与所述同步接收方在所述启动模块启动的同步进程中进行数据同步。
再一方面,本发明实施例还提供一种同步命令的执行方法,包括:接收同步发起方发送的同步命令,所述同步命令包含所述同步命令项的执行指示;根据所述同步命令项的执行指示所指示的方式执行所述同步命令项。
再一方面,本发明实施例还提供一种同步命令的执行系统,包括:同步发起方,用于发送同步命令,所述同步命令包含所述同步命令项的执行指示;同步接收方,用于接收所述同步发起方发送的同步命令,根据所述同步命令项的执行指示所指示的方式执行所述同步命令项。
再一方面,本发明实施例还提供一种同步接收方,包括:同步命令接收模块,用于接收同步发起方发送的同步命令,所述同步命令包含所述同步命令项的执行指示;执行模块,用于根据所述同步命令接收模块接收的同步命令项的执行指示所指示的方式执行所述同步命令项。
再一方面,本发明实施例还提供一种同步会话的维持方法,包括:向同步接收方发送会话维持命令或空闲消息包;接收所述同步接收方回复的确认消息,维持所述同步会话。
与现有技术相比,本发明实施例具有以下优点:本发明实施例在同步会话中启动同步进程,同步发起方和同步接收方在同步进程中进行数据同步,从而实现了灵活地对同步双方的数据进行同步。
附图说明
图1为本发明实施例可应用于OMA中DS的方法的流程图;
图2为本发明实施例同步会话与同步进程的关系示意图;
图3为本发明实施例同步进程和同步会话的结束处理流程示意图;
图4为本发明实施例通过会话维持命令进行会话的维持流程图;
图5为本发明实施例根据同步进程进行同步锚值的更新的流程图;
图6为本发明实施例当同步双方的锚值不匹配时,同步双方协商新的同步流程的示意图;
图7为本发明实施例提出的数据同步方法的同步流程图;
图8为本发明实施例可应用于OMA中DS的系统的结构图;
图9为本发明实施例同步命令的执行系统的结构图。
具体实施方式
本发明实施例提供一种可应用于OMA中数据同步的方法,在同步会话中启动同步进程,同步发送方与同步接收方在同步进程中进行数据同步,从而实现了灵活地对同步双方的数据进行同步。
如图1所示,为本发明实施例可应用于OMA中数据同步的方法的流程图,具体包括以下步骤:
步骤S101,向同步接收方发送同步会话请求,建立同步发起方与同步接收方的同步会话连接。该同步会话中包括一个或多个同步进程,所述多个同步进程包括不同的进程标识。
步骤S102,在同步会话中启动同步进程,同步发起方与同步接收方在同步进程中进行数据同步。
本发明实施例为同步进程添加同步进程结束标识,同步双方根据包含该同步进程结束标识的同步消息包确定结束该同步进程;
本发明实施例还为同步会话添加同步会话结束标识,同步双方根据包含该同步会话结束标识的同步消息包确定结束该同步会话。
如果同步进程包括第一同步进程和第二同步进程,为使同步双方明确知道结束的是哪一个同步进程,本发明实施例将第一同步进程的进程标识与第一同步进程的同步进程结束标识关联,将第二同步进程的进程标识与第二同步进程的同步进程结束标识关联。
在一个同步会话中,在结束一个同步进程后,等待新的同步数据时,同步发起方向同步接收方发送会话维持命令或空闲消息包,并接收同步接收方回复的确认消息,维持该同步会话。优选地,同步双方在会话维持命令中携带认证信息,同步发起方和同步接收方通过该认证信息进行认证,以增强安全性。
在本发明实施例中,会话维持命令或空闲消息包是同步发起方按预定的时间间隔向同步接收方发送的。例如:同步发起方每隔15分钟向同步接收方发送一个会话维持命令或空闲消息包。
在同步进程启动之前,同步发起方与同步接收方各自维护自身的第一锚值,在同步发起方发送给同步接收方的同步进程请求中,携带同步发起方在第一同步进程结束后保存的第一锚值,以及同步发起方新生成的第二锚值。然后,同步接收方判断接收的第一锚值与同步接收方存储的第一锚值是否相同,如果相同,则同步接收方向同步发起方发送与所述同步发起方发送的第二锚值相同的第二锚值,同步进程继续,否则,同步接收方认为上一次同步进程没有正常结束。
在一个同步进程结束时或在同步进程的一个消息包发送完毕时,同步双方更新锚值,该锚值标示同步进程是否成功结束或该同步进程的一个消息包是否成功发送完毕。具体为:同步接收方将同步接收方存储的第一锚值更新为同步发起方发送的第二锚值,并向同步发起方发送确认结束同步进程的确认命令,同步发起方也将同步发起方的第一锚值更新为第二锚值。如果同步过程中出现错误,则同步双方不更新锚值。
另外,本发明实施例还提供了一种同步命令的执行方法,具体为:同步接收方接收同步发起方发送的同步命令,该同步命令包含同步命令项的执行指示,并根据该同步命令项的执行指示所指示的方式执行该同步命令项。
当同步命令项的执行指示为顺序执行指示时,同步接收方根据该顺序执行指示,顺序执行该同步命令项。
当同步命令项的执行指示为原子执行指示时,同步接收方根据该原子执行指示,以原子方式执行该同步命令项。例如:在添加一个文件夹时,如果能够成功添加该文件夹中的所有子文件夹和文件,则成功执行添加操作,如果文件夹中有一个子文件夹或文件添加失败,则整个添加操作失败。
本发明实施例在同步会话中添加同步进程,一个同步会话中可以包含多个同步进程,只要同步会话没有结束,这些同步进程可以在任何一个消息包中启动,只要有一个同步进程没有结束,同步会话就不能结束。在本发明实施例中,与一个同步进程有关的命令必须有统一的标识。每个同步进程都用“SyncAlert”来协商同步的类型与需要同步的对象,使用“Sync”命令执行具体的同步操作。
同步进程的标识可以使用以下两种方法:
1)使用进程ProcessID来标识,它的Schema(语法)规定如下:
<xs:attribute name=″ProcessID″type=″xs:int″/>
同步双方在同步进程中需要使用ProcessID来标识这个同步进程。包括在同步请求命令(SyncAlert)中,同步命令(Sync)中,同步进程结束命令(End_of_Process)中都要使用这个ProcessID。
2)使用关联符Correlator来标识。比如在同步请求中,携带Correlator:
<SyncAlert CmdID=‘12345’>
<Correlator>jalkjkl134</Correlator>
...
</SyncAlert>
在结束同步进程时,也需要使用这个Correlator来表明结束的是哪一个同步进程。
由于ProcessID与Correlator的作用相似,都是本发明实施例的可选方案之一,只是Schema的设计有所不同,本发明实施例以ProcessID为例进行说明。
同步会话与同步进程的关系如图2所示,图2所示仅是本发明实施例中同步会话与同步进程的一种关系,本发明实施例并不局限于此,同步会话也可能有多个同步进程,同步进程也可能是同时进行的,不是交错执行的。
当同步进程交错执行时,需要在每一个同步请求命令(SyncAlert)、同步命令(包括Sync、Alert、Get、Put、Sequence、Atomic等)、同步进程结束命令中都携带ProcessID,这样同步双方才能区分消息包中的命令是属于哪一个同步进程的。
本发明实施例还进一步为同步会话和同步进程添加结束标识,方式如下:
1)对于同步会话,添加End_of_Session标识(会话结束命令),其Schema规定如下:
<xs:element name=″End_of_Session″type=″EmptyType″/>
当消息包中出现这个元素时,就代表会话结束了,如果还需同步,就要发起新的会话过程。
该会话结束命令可以单独放在一个消息包中发送给同步接收方,也可以和其他的同步命令打包在一起发送给同步接收方。若该命令单独放在一个消息包中发送给同步接收方,则同步接收方在接收到该命令后正常结束会话;若该命令和其他的同步命令打包在一起发送给同步接收方,则同步接收方首先执行消息包中的其它同步命令,并在执行完成后直接结束会话,不向同步发送方返回相关同步命令的执行结果;或者,同步接收方也可以缓存最后一个消息包中同步命令的执行结果,以备对方在需要时获取;或者,同步接收方也可以发送一个结束会话的消息给同步发送方,告知同步发送方会话结束。
该会话结束命令也可以使用Alert命令实现,这时需为Alert命令设计一个特定的Code专门用于指示会话正常结束:如1220。
  1220   Session End(会话结束)   告诉对方结束会话。
消息实例为:
<Alert CmdID=”3”Code=”1220”/><!-表示会话结束>
2)对于同步进程,还可用<End_Of_Process>来标识进程的结束,<End_Of_Process>的Schema可以类似于:
<xs:element name=″End_Of_Process″>
<xs:complexType>
<xs:attribute ref=″CmdID″use=″required″/>
<xs:attribute ref=″ProcessID″use=″required″/>
<xs:complexType>
</xs:element>
也可以用Alert命令来结束进程,只是需要扩展一个Alert code。比如,
  1224   Process End(同步进程结束)   告诉对方结束同步进程
由于这两个命令的作用类似,只是Schema稍有不同,本发明实施例以End_of_Process命令为例进行说明。
由于一个会话里面可能会有多个进程,因此结束标识要与同步进程关联,否则,如果一个消息里有多个同步过程同时发生,同步双方将不知道结束的是哪一个同步进程。可以使用进程标识将<SyncAlert>与结束标识<End_Of_Process>相关联。比如使用ProcessID作为进程标识时,同步请求为:
<SyncAlert CmdID=”12345”ProcessID=”1”>
     ...
</SyncAlert>
同步进程结束请求为:
<End_Of_Process CmdID=”23456”ProcessID=”1”/>
同步接收方根据ProcessID即可得知请求结束的是哪一个同步过程。
对于同步进程和同步会话的结束,其处理流程的一个示例如图3所示。
本发明实施例为同步会话过程添加“空闲”指示的方式如下:
添加空闲指示的消息包的格式如下所示,包头(SyncHdr)与原来的消息包一样,包体(SyncBody)只包含<Idle/>和<Final/>元素。对于“空闲”命令,其Schema定义如下:
<xs:element name=″Idle″type=″EmptyType″/>
<xs:complexType name=″EmptyType″/>
消息实例为:
<SyncML>
    <SyncHdr                                             VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“1234“MsgID=“5“>
        <Target><LocURI>......</LocURI></Target>
        <Source><LocURI>......</LocURI></Source>
    </SyncHdr>
    <SyncBody>
        <Idle/><!-空闲标识-->
        <Final/>
    </SyncBody>
    </SyncML>
同步接收方接收到该命令之后,保持会话连接,并返回一个确认消息。如果消息中没有此命令,则为正常的会话消息。
该种包可用于实时同步,在同步双方无数据需要同步的情况下,而且同步双方也没有发送会话结束的标识时,同步双方可发送空闲包,从而保持会话连接,当有数据需要同步时,再发送各种消息包。
另外,在同步会话开始前,同步双方也可以通过发送命令来告诉对方连续性同步的开始。如果没有此命令,则表明会话不是连续性的会话,只包含一个同步进程。
该连续性会话开始命令可以使用Alert命令或一个单独的命令(Continuous_Sync)来实现。如果采用Alert命令,需为Alert命令设计一个特定的Code专门用于指示会话正常结束:如1213,
  1213   Continuous Session Start(会话开始)   告诉对方开始连续性会话
消息实例为:
<Alert CmdID=”3”Code=”1213”/><!-表示连续性会话开始>
如果是采用Continuous_Sync命令,它可以包含在SyncAlert命令里,消息实例为:
<SyncAlert>
    <SyncType.../>
    <Continous_Sync/>
</SyncAlert>
本发明实施例通过会话维持命令进行会话的维持,服务器或终端在确定需要进行会话维持同步动作时(如完成某个同步进程,等待数据更新时),同步发起方向同步接收方发送SyncML消息,该SyncML消息携带会话维持命令,同步接收方回复确认。该过程在需要时是可重复执行的,直至双方中的某一方发送实质性的同步命令给对方。同步双方可每隔一段固定的时间发送一次会话维持命令,比如1分钟。若携带会话维持命令的SyncML消息中含有其它同步命令,则另一方可以忽略该会话维护命令。
其流程如图4所示,本发明实施例以服务器发送会话维持命令为例进行说明,终端向服务器发送会话维持命令的流程与图4所示流程类似,在此不再赘述。
会话维持指令可以使用Alert命令,并为其设计一个新的Alert Code,如下:
  1221   Session Waiting(会话等待)   告诉对方延迟会话
具体命令如下:
<Alert CmdID=”2”Code=”1221”/><!--会话维持指示码-->
终端在接收到服务器发送的会话维持命令后,不做任何实质动作,只保持当前会话,并返回该命令的确认消息,如下:
<Status CmdID=”2”MsgRef=”1”CmdRef=”2”Cmd=”Alert”Code=”200”/>
可选地,同步双方在会话维持命令中携带认证信息,用于同步双方进行认证。认证消息并不占用太多传输资源,但可以增强安全性。
在上述方案中,同步双方可约定一个时间,间断性的发送上述空消息或空闲消息。比如,客户端在完成同步进程后,并不想中断会话,而保持实时同步,则可以每隔15分钟发送一个空闲消息,服务器可以对此消息进行响应,如果客户端收到响应消息,则表明双方并未断开连接,可以继续会话。
加入会话维持特性后,当同步双方有数据更改时,不用重新建立会话连接,可以直接发送修改数据给另一方。这种特性在某些传输资源可靠的场景或对实时同步要求比较高的场景中,作用很大。比如,智能卡与手机之间的同步,并不耗费传输资源,在会话维持的方案下,可以避免服务器发Notification给终端请求会话连接。在CPM中,客户端与服务器的数据更改的比较频繁,需要双方能够及时更新修改的数据。在会话维持的方案下,就可以很好地将更新的数据同步给对方,从而满足业务开展的需要。
还可以用会话维持指令实现定时同步功能,如:每隔15分钟同步一次,则可以发送一个会话维持指令Alert,在其Data中携带维持时间(15分钟),在这15分钟内不再需要发送任何数据但会保持会话。一旦超过会话维持时间,则同步双方需要再发送会话维持命令或发送新的同步命令。
也可以是在一个同步进程完成后,如果隔一段时间(比如15分钟),同步双方都没有新的数据需要传输,则进入休眠模式,保存上下文场景。一旦有一方有新的数据需要传输,则发送唤醒命令,唤醒会话。唤醒命令也可以通过扩展Alert code来实现,比如Alert 1228。
  1228   Session Wakeup(会话唤醒)   告诉对方唤醒会话
会话唤醒后,同步双方继续新的同步数据的传输。
本发明实施例根据同步进程进行同步锚值(Anchor)的更新,Anchor的使用如下:在同步开始前,客户端与服务器维护自身的第一锚值,例如:LastAnchor。在同步请求中,同步发起方将自身存储的LastAnchor及新生成的第二锚值,例如:Next Anchor发送给同步接收方,同步接收方比较接收的LastAnchor以及存储的Last Anchor,如果相同,则同步接收方发送相同的NextAnchor给同步发起方,同步过程继续,否则,则认为上一次同步进程没有正常结束。当同步中的一方接收到另一方发送的结束同步进程的标识<End_Of_Process>,且状态信息显示同步进程成功时,同步接收方将自身的Last Anchor的值更新为Next Anchor。
如果同步过程中出现错误,则双方不应该发送结束同步过程标识,或不更新Anchor。
流程图如图5所示,具体包括以下步骤:
步骤S501,客户端发送同步进程请求1,发送存储的第一锚值Last Anchor(A1)和新生成的第二锚值NextAnchor(A2)给服务器;
步骤S502,服务器比较接收的Last Anchor(A1)和自身存储的Last Anchor(A1),假定这两个值一致,则表明上次会话成功,同步进程继续。
步骤S503,服务器接受客户端的同步请求,并发送Next Anchor给客户端。
步骤S504,同步进程继续,双方互相交换同步数据。
步骤S505,客户端发送结束同步进程的请求给服务器,要求结束同步进程。服务器接收到结束同步进程的请求,将自身存储的Last Anchor的值更新为客户端发送的NextAnchor的值。
步骤S506,服务器发送同意结束同步进程的命令给终端,终端也将自身存储的Last Anchor更新为Next Anchor的值。
在异常情况下,如果同步双方在同步进程中中断或是某一方重置了Anchor的值,则导致两边的Anchor不匹配,则同步双方会协商新的同步流程,如图6所示,
在图6中,服务器端的Anchor被重置为0,导致同步双方的Anchor不匹配。这时,服务器发送新的同步请求,请求客户端发送数据指纹用于判别待同步数据。客户端接受同步请求,并发送数据指纹给服务器,服务器根据数据指纹判断待同步数据,并发送数据标识给客户端。客户端发送需要同步的数据及指纹,服务器也发送服务器端的待同步数据给客户端。接下来,会话正常结束,同步双方进行Anchor的更新。Anchor的更新步骤与前面的类似。
上述方案是对同步进程进行Anchor的更新,也可以根据消息包(Package)或同步命令(Sync)进行Anchor的更新。即同步发起方在每一个同步消息包或同步命令中携带两个Anchor(LastAnchor和NextAnchor)值,如果同步接收方成功接收,则更新Next Anchor的值。如果同步发起方成功接收到来自同步接收方的响应消息,则也更新自身的NextAnchor的值。如此循环。这样,就可以成功标识出每一个同步消息包或同步命令的成功失败。其思想与同步进程中的Anchor相似,但粒度更细。这样可以在异常情况下追踪到不匹配的锚点,重新发送某个失败的消息包或同步命令,而不用重新发送所有的消息包或同步命令,从而节省了传输流量,也提高了同步效率。
下面对同步命令中多个Item之间的顺序(Sequence)执行与原子(Atomic)执行进行介绍,本发明实施例在同步过程中,服务器或客户端给对方下发的同步命令(比如Add、Replace、Delete、Move、Copy等)中可以携带多个Item,以实现使用同一同步命令操作对方的多个数据,例如Replace命令的语法为:
<xs:element name=″Replace″Type=″ReplaceType″/>
<xs:complexType name=″ReplaceType″>
    <xs:sequence>
        <xs:element ref=″NoStatus″minOccurs=″0″/>
        <xs:element ref=″Cred″minOccurs=″0″/>
        <xs:element ref=″Meta″minOccurs=″0″/>
        <xs:element ref=″Item″maxOccurs=″unbounded″/>
    </xs:sequence>
    <xs:attribute ref=″CmdID″use=″required″/>
    <xs:attribute ref=″FieldLevel″use=″optional″/>
</xs:complexType>
即Replace命令可以携带多个Item以指示对多个数据元素执行Replace动作。多个Item项的同步有时需要有序的处理,有时可以无序的处理,是否有序执行由命令发送方确定。比如,在对一个文件夹进行同步时,需要先同步文件夹,再同步文件夹中的文件。为了能够指示对一个同步命令中的多个Item有序执行,服务器或客户端在下发给对方的同步命令中携带Item有序执行的指示,携带方法如下:
1)在Item元素的父元素中携带Sequence属性,该属性指示其下子元素有序执行,添加的Sequence属性的Schema可以为:
<xs:attribute name=″Sequence″type=″xs:boolean″default=”false”/>
如果此属性出现在同步命令中,则表明Item元素需要顺序执行,否则命令接收方可以任意处理,既可以顺序也可以不顺序。如果此属性不出现,则默认为不顺序,由客户端来完成。
消息实例为:
<Replace CmdID=”2”Sequence=”true”>
...
<Item>...</Item>
<Item>...</Item>
</Replace>
2)在Item元素所在的父元素中添加一个指示用的子元素(该元素为Item元素的兄弟元素),比如,Schema可以为:
<xs:element name=″Sequence″type=″EmptyType″/>
3)为要顺序执行的Item加一个壳元素(即为要顺序执行的Item添加一个父元素),壳元素只用于告诉终端该壳中的元素需要顺序执行。
同步接收方在解析出携带在Replace命令中的Item有序执行指示后,顺序对Item指示数据执行该Replace命令。
原子(Atomic)操作表示多个Item项必须以原子方式执行,要么同时成功,要么同时失败。比如添加一个文件夹,如果能够成功,并添加了文件夹里的所有子文件夹和文件,则表示成功执行Add命令,如果命令中有一个文件或子文件夹添加失败,则整个Add操作失败。这样,可以保证数据操作的完整性。
对于原子操作的指示方式与上面类似,携带方法如下:
1)在Item元素的父元素中携带Atomic属性,该属性指示其下子元素Atomic执行,添加的Atomic属性的Schema可以为:
<xs:attribute name=″Atomic″type=″xs:boolean″default=”false”/>
如果此属性出现在同步命令中,则表明Item元素需要以Atomic方式执行,否则命令接收方可以任意处理,即可以Atomic方式执行也可不以Atomic方式执行。如果此属性不出现,则默认为非Atomic方式,由终端实现来完成。
消息实例为:
<Replace CmdID=”2”Atomic=”true”>
...
<Item>...</Item>
<Item>...</Item>
</Replace>
2)在Item元素所在的父元素中添加一个指示用的子元素(该元素为Item元素的兄弟元素),比如,Schema可以为:
<xs:element name=″Atomic″type=″EmptyType″/>
3)为要顺序执行的Item加一个壳元素,壳元素只用于告诉终端该壳中的元素需要Atomic执行。
命令接收方在解析出携带在Replace命令中的Item Atomic执行指示后,Atomic对Item指示数据执行该Replace命令。
对于Atomic执行的多个Item项,只需要返回一个状态码即可。
下面通过一个具体的实施例对本发明实施例提出的数据同步方法进行详细介绍。
现有一台终端设备,IMEI=493005100592800,上面有两个数据库:./Contacts和./Calendar,需要与服务器:http://www.syncml.org/sync-server进行同步,对应的数据库分别为:./dev-contacts和./dev-Calendar。终端持有者希望在一段时间内能够对Calendar数据库实时保持同步,只要有数据发生变化就进行同步操作,除非给出会话结束标识,而且中间可能还会有Contacts数据库的同步。下面图7给出了整个同步流程,其中同步进程1和3均为Calendar数据库的同步,而同步进程2为数据库Contacts的同步。
具体包括如下步骤:
步骤S701,同步会话开始,同步进程1最先启动,开始交换Calendar数据库的同步。同步会话开始时(包含同步进程1启动)的示例如下:
<SyncML>
    <SyncHdr                                             VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”1”>
            <Target><LocURI>http://www.syncml.org/sync-server</LocURI>
    </Target>
    <Source><LocURI>IMEI:493005100592800</LocURI></Source>
    <Cred><!--The authentication is optional.-->
      <Meta><Type>syncml:auth-basic</Type></Meta>
      <Data>QnJ1Y2UyOk9oQmVoYXZl</Data><!--base64formatting of“userid:password”-->
    </Cred>
    <MaxMsgSize>5000</MaxMsgSize>
</SyncHdr>
<SyncBody>
<SyncAlert CmdID=”1”ProcessID=”1”><!-同步进程1启动-->
<SyncType Direction=”twoWay”Behaviour=”Preserve”/><!--TWO WAY ALERT-->
<Target><LocURI>./calendar</LocURI></Target>
            <Source><LocURI>./dev-calendar</LocURI></Source>
        </SyncAlert>
        ...
        <Final/>
    </SyncBody>
</SyncML>
步骤S702,在同步进程1的数据同步过程中,同步进程2启动了,交换的为Contacts数据库中的数据。在同步进程1数据同步过程中,同步进程2启动的示例如下:
<SyncML>
    <SyncHdr                                        VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”2”>
        <Target><LocURI>http://www.syncml.org/sync-server</LocURI></Target>
        <Source><LocURI>IMEI:493005100592800</LocURI></Source>
</SyncHdr>
<SyncBody>
<Status>
     ...
</Status>
<Sync CmdID=”3”ProcessID=”1”><!-同步进程1的同步操作-->
     ...
</Sync>
<SyncAlert CmdID=”4”ProcessID=”2”><!-同步进程2启动-->
<SyncType  Direction=”twoWay”Behaviour=”Preserve”/><!--TWO WAY ALERT-->
            <Target><LocURI>./contacts</LocURI></Target>
            <Source><LocURI>./dev-contacts</LocURI></Source>
        </SyncAlert>
          ...
        <Final/>
    </SyncBody>
</SyncML>
步骤S703,同步进程1交换完数据后就结束了,同步进程2继续。同步进程1结束后,发送结束标识的示例如下:
<SyncML>
    <SyncHdr                                            VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”3”>
        <Target>
            <LocURI>http://www.syncml.org/sync-server</LocURI>
        </Target>
        <Source>
            <LocURI>IMEI:493005100592800</LocURI>
        </Source>
    </SyncHdr>
    <SyncBody>
        <End_Of_Process ProcessID=”1”/><!-同步进程1结束标识-->
        <Sync CmdID=”3”ProcessID=”2”><!-同步进程2的同步操作-->
          ...
        </Sync>
          ...
        <Final/>
    </SyncBody>
</SyncML>
同步进程1的结束标识也可以和同步进程1的同步命令一起打包放在Sync命令中发送。同步接收方首先执行消息包中的其它同步命令,并在执行完成后直接结束会话,不向同步发起方返回相关同步命令的执行结果。命令接收方也可以缓存最后一个包中同步命令的执行结果,以备对方在需要时获取。具体的消息示例如下:
<SyncML>
    <SyncHdr                                    VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”3”>
        <Target><LocURI>http://www.syncml.org/sync-server</LocURI>
    </Target>
        <Source><LocURI>IMEI:493005100592800</LocURI></Source>
    </SyncHdr>
    <SyncBody>
        <Sync CmdID=″2″ProcessID=”1”>
      ...
        </Sync>
        <End_Of_Process ProcessID=”1”/><!-同步进程1结束标识-->
        <Sync CmdID=”3”ProcessID=”2”><!-同步进程2的同步操作-->
         ...
        </Sync>
         ...
        <Final/>
    </SyncBody>
</SyncML>
步骤S704,同步进程2交换完数据结束,这时同步会话中无数据同步操作,但由于没有会话结束标识,因此会话继续维持,同步双方发送“空闲包”。同步会话发送“空闲包”的示例如下:
<SyncML>
    <SyncHdr                                        VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”4”>
          <Target><LocURI>http://www.syncml.org/sync-server</LocURI>
</Target>
          <Source><LocURI>IMEI:493005100592800</LocURI></Source>
    </SyncHdr>
    <SyncBody>
          <Idle/><!-空闲包标识-->
          <Final/>
    </SyncBody>
</SyncML>
步骤S705,Calendar数据库又有数据需要同步,启动同步进程3,同步双方不再发送“空闲包”。
步骤S706,交换完数据后,同步进程3结束。这时如果有同步会话结束标识,该会话就结束,否则继续发送“空闲包”,维持同步会话连接。发送会话标识的示例如下:
<SyncML>
    <SyncHdr                           VerSchema=”2.0”
VerProto=“SyncML/2.0“SessionID=“4“MsgID=”6”>
           <Target><LocURI>http://www.syncml.org/sync-server</LocURI>
    </Target>
           <Source><LocURI>IMEI:493005100592800</LocURI></Source>
    </SyncHdr>
    <SyncBody>
        <End_Of_Session/><!-同步会话结束标识-->
        <Final/>
    </SyncBody>
</SyncML>
本发明实施例提出的应用于OMA中数据同步的方法,在同步会话中启动同步进程,同步双方在同步进程中进行数据同步。本发明实施例实现了数据的实时同步,不需要重新建立会话过程,也不需要重新传输双方的设备能力信息,从而节省了数据传输的流量;并且可以在一个会话过程中实现不同数据库之间的同步进程,而且这些同步进程可以在会话过程的任何阶段启动,增强了数据同步的灵活性;对同步进程添加Anchor,可以标识出同步进程的完成情况,从而在同步进程失败时,可以方便地进行重传,提高了同步效率,也节省了数据传输的流量;解决了同步会话中的混乱问题,提高了同步效率,减少了错误的发生。
如图8所示,为本发明实施例应用于OMA中数据同步的系统的结构图,包括:
同步发起方82,可用于与同步接收方81进行数据同步;
同步接收方81,用于接收同步会话请求;
同步发起方82,用于向同步接收方81发送同步会话请求,建立与同步接收方81的同步会话连接,在同步会话中启动同步进程,并与同步接收方81在同步进程中进行数据同步。
其中,同步发起方82包括:建立模块821,用于向同步接收方81发送同步会话请求,建立与同步接收方81的同步会话连接;
启动模块822,用于在建立模块821建立的同步会话中启动同步进程,该同步进程包括进程标识;
同步模块823,用于与同步接收方81在启动模块822启动的同步进程中进行数据同步。
其中,同步模块823包括:标识添加子模块8231,用于为同步进程添加同步进程结束标识,为同步会话添加同步会话结束标识。
关联子模块8232,用于将标识添加子模块8231添加的同步进程结束标识和所述同步进程的进程标识相关联。
其中,同步模块823还包括:命令发送子模块8233,用于在同步会话过程中,结束一个同步进程后,等待新的同步数据时,向同步接收方81发送会话维持命令或空闲消息包;
确认接收子模块8234,用于接收同步接收方81回复的确认消息,维持该同步会话。
其中,同步模块823还包括:更新子模块8235,用于在一个同步进程结束时或在同步进程的一个消息包发送完毕时,更新锚值,所述锚值表示该同步进程或该同步进程的消息包传输完毕。
如图9所示,为本发明实施例同步命令的执行系统的结构图,包括:
同步发起方91,可用于与同步接收方92进行数据同步;
同步发起方91,用于发送同步命令,该同步命令包含同步命令项的执行指示;
同步接收方92,用于接收同步发起方91发送的同步命令,根据同步命令项的执行指示所指示的方式执行同步命令项。
其中,同步接收方92包括:同步命令接收模块921,用于接收同步发起方91发送的同步命令,该同步命令包含同步命令项的执行指示;
执行模块922,用于根据同步命令接收模块921接收的同步命令项的执行指示所指示的方式执行该同步命令项。
其中,执行模块922包括:顺序执行子模块9221,用于当同步命令项的执行指示为顺序执行指示时,根据顺序执行指示,顺序执行所述同步命令项。
其中,执行模块922包括:原子执行子模块9222,用于当同步命令项的执行指示为原子执行指示时,根据原子执行指示,以原子方式执行所述同步命令项。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (28)

1、一种可应用于开放移动联盟OMA中数据同步DS的方法,其特征在于,包括:
向同步接收方发送同步会话请求,建立同步发起方与所述同步接收方的同步会话连接;
在所述同步会话连接中启动同步进程,所述同步发起方与所述同步接收方在所述同步进程中进行数据同步。
2、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,所述同步会话中包括一个或多个同步进程,所述每个同步进程包括唯一的进程标识。
3、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,还包括:
为所述同步进程添加同步进程结束标识,根据包含所述同步进程结束标识的同步消息包确定结束所述同步进程。
4、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,还包括:
为所述同步会话添加同步会话结束标识,根据包含所述同步会话结束标识的同步消息包确定结束所述同步会话。
5、如权利要求3所述的可应用于OMA中DS的方法,其特征在于,所述同步进程包括:第一同步进程和第二同步进程,所述同步进程结束标识包括:第一同步进程结束标识和第二同步进程结束标识;
所述第一同步进程的进程标识与所述第一同步进程的同步进程结束标识关联,第二同步进程的进程标识与所述第二同步进程的同步进程结束标识关联。
6、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,还包括:所述同步会话中,在结束一个同步进程后,
向所述同步接收方发送会话维持命令或空闲消息包;
接收所述同步接收方回复的确认消息,维持所述同步会话。
7、如权利要求6所述的可应用于OMA中DS的方法,其特征在于,向所述同步接收方发送会话维持命令或空闲消息包包括:
按预定的时间间隔向所述同步接收方发送会话维持命令或空闲消息包。
8、如权利要求6所述的可应用于OMA中DS的方法,其特征在于,所述会话维持命令携带认证信息,所述同步发起方和同步接收方通过所述认证信息进行认证。
9、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,在所述启动同步进程之前,还包括:
所述同步接收方接收所述同步发起方发送的同步进程请求,所述同步进程请求携带所述同步发起方在第一同步进程结束后保存的第一锚值,以及所述同步发起方新生成的第二锚值;
判断所述接收的第一锚值与所述同步接收方存储的第一锚值是否相同;
如果相同,则向所述同步发起方发送与所述同步发起方发送的第二锚值相同的第二锚值。
10、如权利要求1所述的可应用于OMA中DS的方法,其特征在于,还包括:在一个同步进程结束时或在同步进程的一个消息包发送完毕时,更新锚值,所述锚值标示所述同步进程是否成功结束或所述消息包是否成功发送完毕。
11、如权利要求9或10所述的可应用于OMA中DS的方法,其特征在于,所述更新锚值包括:
所述同步接收方将所述同步接收方存储的第一锚值更新为所述同步发起方发送的第二锚值;
向所述同步发起方发送确认结束所述同步进程的确认命令。
12、如权利要求9或10所述的可应用于OMA中DS的方法,其特征在于,所述更新锚值还包括:
所述同步发起方将所述同步发起方的第一锚值更新为第二锚值。
13、一种可应用于开放移动联盟OMA中数据同步DS的系统,其特征在于,包括:
同步发起方,可用于与同步接收方进行数据同步;
所述同步接收方,用于接收同步会话请求;
所述同步发起方,用于向所述同步接收方发送同步会话请求,建立与所述同步接收方的同步会话连接,在所述同步会话中启动同步进程,并与所述同步接收方在所述同步进程中进行数据同步。
14、一种同步发起方,其特征在于,包括:
建立模块,用于向同步接收方发送同步会话请求,建立与所述同步接收方的同步会话连接;
启动模块,用于在所述建立模块建立的同步会话中启动同步进程;
同步模块,用于与所述同步接收方在所述启动模块启动的同步进程中进行数据同步。
15、如权利要求14所述同步发起方,其特征在于,还包括:
标识添加模块,用于为所述同步进程添加同步进程结束标识。
16、如权利要求15所述同步发起方,其特征在于,还包括:
关联模块,用于将所述标识添加模块添加的同步进程结束标识和所述同步进程的进程标识相关联。
17、如权利要求14所述同步发起方,其特征在于,还包括:
命令发送模块,用于在所述同步会话过程中,结束一个同步进程后,向所述同步接收方发送会话维持命令或空闲消息包;
确认接收模块,用于接收所述同步接收方回复的确认消息,维持所述同步会话。
18、如权利要求14所述同步发起方,其特征在于,还包括:
更新模块,用于在一个同步进程结束时或在同步进程的一个消息包发送完毕时,更新锚值,所述锚值表示所述同步进程或所述同步进程的消息包传输完毕。
19、一种同步命令的执行方法,其特征在于,包括:
接收同步发起方发送的同步命令,所述同步命令包含同步命令项的执行指示;
根据所述同步命令项的执行指示所指示的方式执行所述同步命令项。
20、如权利要求19所述同步命令的执行方法,其特征在于,所述同步命令项的执行指示包括:顺序执行指示,
所述根据同步命令项的执行指示所指示的方式执行所述同步命令项包括:
根据所述顺序执行指示,顺序执行所述同步命令项。
21、如权利要求19所述同步命令的执行方法,其特征在于,所述同步命令项的执行指示包括:原子执行指示,
所述根据同步命令项的执行指示所指示的方式执行所述同步命令项包括:
根据所述原子执行指示,以原子方式执行所述同步命令项。
22、一种同步命令的执行系统,其特征在于,包括:
同步发起方,可用于与同步接收方进行数据同步;
所述同步发起方,用于发送同步命令,所述同步命令包含同步命令项的执行指示;
所述同步接收方,用于接收所述同步发起方发送的同步命令,根据所述同步命令项的执行指示所指示的方式执行所述同步命令项。
23、一种同步接收方,其特征在于,包括:
同步命令接收模块,用于接收同步发起方发送的同步命令,所述同步命令包含同步命令项的执行指示;
执行模块,用于根据所述同步命令接收模块接收的同步命令项的执行指示所指示的方式执行所述同步命令项。
24、如权利要求23所述同步接收方,其特征在于,所述执行模块包括:
顺序执行子模块,用于当所述同步命令项的执行指示为顺序执行指示时,根据所述顺序执行指示,顺序执行所述同步命令项。
25、如权利要求23所述同步接收方,其特征在于,所述执行模块包括:
原子执行子模块,用于当所述同步命令项的执行指示为原子执行指示时,根据所述原子执行指示,以原子方式执行所述同步命令项。
26、一种同步会话的维持方法,其特征在于,包括:
向同步接收方发送会话维持命令或空闲消息包;
接收所述同步接收方回复的确认消息,维持所述同步会话。
27、如权利要求26所述同步会话的维持方法,其特征在于,所述同步发起方向同步接收方发送会话维持命令或空闲消息包包括:
所述同步发起方按预定的时间间隔向所述同步接收方发送会话维持命令或空闲消息包。
28、如权利要求26所述同步会话的维持方法,其特征在于,所述会话维持命令携带认证信息,所述同步发起方和同步接收方通过所述认证信息进行认证。
CN200810008281XA 2008-02-18 2008-02-18 一种数据同步的方法、系统和装置 Active CN101516131B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN200810008281XA CN101516131B (zh) 2008-02-18 2008-02-18 一种数据同步的方法、系统和装置
EP12160667.7A EP2469429A3 (en) 2008-02-18 2008-11-21 Method for synchronizing data, system, and apparatus thereof
EP08872738A EP2182695B1 (en) 2008-02-18 2008-11-21 Method, system and device of data synchronization
PCT/CN2008/073157 WO2009103212A1 (zh) 2008-02-18 2008-11-21 一种数据同步的方法、系统和装置
US12/783,271 US20100228866A1 (en) 2008-02-18 2010-05-19 Method for synchronizing data, system, and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810008281XA CN101516131B (zh) 2008-02-18 2008-02-18 一种数据同步的方法、系统和装置

Publications (2)

Publication Number Publication Date
CN101516131A true CN101516131A (zh) 2009-08-26
CN101516131B CN101516131B (zh) 2012-04-04

Family

ID=40985055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810008281XA Active CN101516131B (zh) 2008-02-18 2008-02-18 一种数据同步的方法、系统和装置

Country Status (4)

Country Link
US (1) US20100228866A1 (zh)
EP (2) EP2469429A3 (zh)
CN (1) CN101516131B (zh)
WO (1) WO2009103212A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102630312A (zh) * 2009-11-30 2012-08-08 摩托罗拉移动公司 移动计算设备和具有智能推送管理的方法
CN105391776A (zh) * 2015-10-20 2016-03-09 上海斐讯数据通信技术有限公司 长连接消息的通信方法及系统
CN106464678A (zh) * 2014-03-10 2017-02-22 三坦国际软件公司 在通信中断期间访问数据的客户端装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977819B2 (en) 2010-08-09 2018-05-22 Ianywhere Solutions, Inc. Sharing data on mobile devices
JP5751029B2 (ja) * 2011-06-03 2015-07-22 株式会社リコー 認証装置、プログラムおよび記録媒体
US10452635B2 (en) 2016-03-23 2019-10-22 Microsoft Technology Licensing, Llc Synchronizing files on different computing devices using file anchors
DK3416354T3 (da) * 2017-06-13 2020-10-19 Tritan Software Int Fremgangsmåde og apparat til tovejskommunikation og datareplikation mellem flere placeringer under intermitterende forbindelse
CA3159276A1 (en) 2018-04-10 2019-10-17 Huawei Technologies Co., Ltd. Point-to-point database synchronization over a transport protocol
WO2021080959A1 (en) * 2019-10-21 2021-04-29 The Nielsen Company (Us), Llc Consent management system with consent request process

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
CA2216980C (en) * 1996-10-04 2001-09-25 Hitachi, Ltd. Communication method
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US7035214B1 (en) * 1999-09-28 2006-04-25 Nortel Networks Limited System and method for a negative acknowledgement-based transmission control protocol
US6944642B1 (en) * 1999-10-04 2005-09-13 Microsoft Corporation Systems and methods for detecting and resolving resource conflicts
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US6898642B2 (en) * 2000-04-17 2005-05-24 International Business Machines Corporation Synchronous collaboration based on peer-to-peer communication
US6671700B1 (en) * 2000-05-23 2003-12-30 Palm Source, Inc. Method and apparatus for parallel execution of conduits during simultaneous synchronization of databases
JP4588271B2 (ja) * 2001-09-18 2010-11-24 富士通株式会社 データ同期システム、データ同期方法、データセンタ及びクライアント端末
US7570668B2 (en) * 2001-10-03 2009-08-04 Nokia Corporation Data synchronization
US7076555B1 (en) * 2002-01-23 2006-07-11 Novell, Inc. System and method for transparent takeover of TCP connections between servers
DE60227198D1 (de) * 2002-04-15 2008-07-31 Nokia Corp Verfahren und einrichtung zur behandlung von synchronisationsbezogenen informationen
EP1495420B1 (en) * 2002-04-17 2008-11-12 Nokia Corporation Method and network device for synchronization of database data routed through a router
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US7370064B2 (en) * 2002-08-06 2008-05-06 Yousefi Zadeh Homayoun Database remote replication for back-end tier of multi-tier computer systems
US7505979B2 (en) * 2002-10-21 2009-03-17 Annex Systems Corporation Database accelerator
AU2003302536A1 (en) * 2002-12-02 2004-06-23 Pro-Corp Holdings International Limited Data packet exchange system and method
US20040117440A1 (en) * 2002-12-17 2004-06-17 Singer Mitch Fredrick Media network environment
EP1548994B1 (en) * 2003-11-26 2012-06-27 ST-Ericsson SA Bluetooth polling with fewer poll packets
JP4118800B2 (ja) * 2003-12-26 2008-07-16 ソフトバンクモバイル株式会社 プレゼンス表示システム及びゲートウエイ装置
ATE361495T1 (de) * 2004-03-18 2007-05-15 Alcatel Lucent Verfahren und vorrichtung zur datensynchronisierung eines verteilten datenbanksystems
JP4369811B2 (ja) * 2004-07-09 2009-11-25 パナソニック株式会社 アクセスポイント制御システム及びアクセスポイント制御方法
KR100652650B1 (ko) 2004-07-28 2006-12-06 엘지전자 주식회사 서비스 음영지역에서 동기화를 위한 피티티 서비스 시스템및 방법
US7962448B2 (en) * 2004-12-17 2011-06-14 International Business Machines Corporation Optimizing a three tiered synchronization system by pre-fetching and pre-formatting synchronization data
US8688528B2 (en) * 2004-12-30 2014-04-01 Ebay, Inc. Methods and systems to alert a user of a network-based marketplace event
TWI304550B (en) * 2005-11-03 2008-12-21 Wistron Corp The update method and the system of the network device
CN1956452B (zh) * 2005-10-27 2012-02-29 华为技术有限公司 一种实现数据同步的方法、系统、客户端及服务器
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
CN100487700C (zh) * 2006-07-11 2009-05-13 阿里巴巴集团控股有限公司 数据仓库中的数据处理方法及系统
US7574444B2 (en) * 2006-11-15 2009-08-11 Palm, Inc. Device-side data de-duping
US20080190672A1 (en) * 2007-02-08 2008-08-14 Premark Feg L.L.C. Method to Automatically Synchronizing Scale Database Information
US7809012B2 (en) * 2007-02-16 2010-10-05 Nokia Corporation Managing low-power wireless mediums in multiradio devices
CA2687883C (en) * 2007-06-19 2014-07-08 Qualcomm Incorporated Methods and apparatus for dataset synchronization in a wireless environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102630312A (zh) * 2009-11-30 2012-08-08 摩托罗拉移动公司 移动计算设备和具有智能推送管理的方法
CN102630312B (zh) * 2009-11-30 2015-12-16 摩托罗拉移动有限责任公司 移动计算设备和具有智能推送管理的方法
CN106464678A (zh) * 2014-03-10 2017-02-22 三坦国际软件公司 在通信中断期间访问数据的客户端装置
CN105391776A (zh) * 2015-10-20 2016-03-09 上海斐讯数据通信技术有限公司 长连接消息的通信方法及系统

Also Published As

Publication number Publication date
EP2182695B1 (en) 2012-06-20
EP2469429A3 (en) 2014-08-20
US20100228866A1 (en) 2010-09-09
EP2182695A1 (en) 2010-05-05
EP2469429A2 (en) 2012-06-27
CN101516131B (zh) 2012-04-04
WO2009103212A1 (zh) 2009-08-27
EP2182695A4 (en) 2010-09-08

Similar Documents

Publication Publication Date Title
CN101516131B (zh) 一种数据同步的方法、系统和装置
WO2016177285A1 (zh) 一种数据推送方法及装置
CN108600376B (zh) 基于LoRa的数据传输方法、装置、LoRa网关、系统及存储介质
CN104811459A (zh) 用于消息服务的处理方法、装置及系统、消息服务系统
CN101316221B (zh) 通知消息处理方法及设备
CN102006568A (zh) 用于提供头像服务的方法、设备和系统
CN101102311B (zh) 一种协商数据同步机制的方法、客户端及系统
CN101778134A (zh) 数据同步方法及移动通信终端
CN101631127A (zh) 文件传输方法及客户端
CN104821889B (zh) 一种备份报文的处理方法和设备
US20210096962A1 (en) Data backup method, device and system
CN103199990A (zh) 一种路由协议认证迁移的方法和装置
CN102378123A (zh) 临时组的处理方法及集群系统
US20230259930A1 (en) Cross-chain transaction processing method and apparatus, electronic device, and storage medium
CN103034632A (zh) 一种信息传送方法和系统
CN107241422A (zh) 一种实时将外部用户及用户组信息同步进Apache Ranger的方法
CN102196044A (zh) 数据传输方法及系统
CN108768733B (zh) 区块链账本处理方法、装置及区块链节点
CN101753561B (zh) 业务的集群处理方法及集群系统
JP2005534099A (ja) データベースの同期
CN112291180A (zh) 一种消息负载均衡的方法
CN105119805B (zh) 一种即时通信数据传输方法及即时通信数据传输系统
CN103200211B (zh) 一种数据同步方法、系统和设备
CN103731501A (zh) 基于移动终端的多人协同管理待办事项的方法和系统
CN108694581B (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