一种数据同步方法

文档序号:7621193阅读:109来源:国知局
专利名称:一种数据同步方法
技术领域
本发明涉及一种客户端与服务器端的数据同步方法,特别是涉及一种高效率的数据同步方法。
背景技术
随着移动通信技术的发展,更多的移动终端的增值业务被开发出来,SyncML同步技术就是其中之一。SyncML(Synchronization Markup Language)是一种与平台无关的信息同步标准协议。现存的大部分同步解决方案绝大部分依赖于某个厂商、应用,或者是某个操作系统,而SyncML的目的就是要提供一个开放标准。目前,该标准已经得到更多公司的产品的支持。
OMA SyncML DS协议规定了同步类型,其中最基本的是slow sync和twoway sync。
(1)Two-way sync双向同步是客户端和服务器端交换任何有关修改的数据信息的一种常用的同步类型。在客户端与服务器端对数据进行增加、修改和删除操作,都会被记录下来。使用双向同步模式同步数据时,服务器端与客户端先后获取对方自从上次同步以来的操作记录,并以之更新自身的数据,实现数据同步。
(2)Slow sync慢同步是双向同步的一种特别的形式。慢同步就是将客户端数据库的数据和服务器端的数据库数据逐个进行比较。如果客户端和服务器端的同步锚不匹配或客户端或是服务器端的修改日志遗失时将会请求一个慢同步。实际上,慢同步就意味着客户端发送所有的数据到服务器端,服务器端对客户端的所有数据进行逐个字段的分析、比较,并将服务器端的数据发送到客户端。在同步分析完成后,服务器端将所有的修改信息返回客户端。然后,客户端返回所有的数据的映射信息,并添加到服务端。
因此,慢同步的执行与双向同步相比,需要传输所有的数据并逐个比较,工作量也大很多,占用更多的资源。
图1是现有的同步过程。启动同步(步骤101)后首先判断此次同步是否为第一次同步(步骤102),如果是第一次同步则采用慢同步的方式(步骤103),如果不是即以前已经发生过同步过程,则判断上一次同步是否发生了同步失败(步骤104)。如果上一次发生了同步失败,则有可能发生数据丢失,此时应进行慢同步(步骤103);若上次没有发生同步失败,数据传输正常,则此时应采取双向同步(步骤105),节约资源,提高效率。其后仍要观察同步过程是否发生了新的同步失败(步骤106),如果没有其他因素的干扰,未发生同步失败,则此次同步顺利完成(步骤107)。若发生同步失败,则进行是否再启动的判断(步骤108)。如果重新启动同步,则重新判断此次同步是否为第一次同步(步骤102),后续步骤循环同上;若不准备同步,则直接结束(步骤109)。
可看得出,SyncML规范没有严格规定Slow Sync的启动条件,只要同步失败,下次同步就要盲目地启动Slow Sync。但有些时候是双向同步执行中没有数据交互发生的情况下同步失败的,这种时候没必要执行慢同步,而应采用只交换上次同步后修改数据的双向同步。
目前市场上也拥有多种个人信息管理系统(PIMS)数据同步解决方案。这些产品可为PC及移动信息终端设备如手机、PDA等提供跨平台、跨设备、跨网络的数据交换、同步及备份功能。数据类型可以是个人信息如电话名片、日程、便签等,也可以是企业的客户资源信息。同步方式支持本地同步和网络同步,只要兼容SyncML标准的终端产品,而不依赖于特定的平台和设备制造商。

发明内容
本发明所要解决的技术问题在于防止数据同步失败后盲目启动慢同步,减少慢同步的次数,节约费用及资源,提高同步效率。
为实现上述目的,本发明提供了一种同步方法,包括如下步骤(1)启动本次同步;(2)判断是否为第一次同步;(3)如果是,则采取慢同步方式进行数据同步,转到步骤(9);(4)如果否,则判断上次同步是否发生了同步失败;(5)如果上次同步未发生同步失败,则本次同步采取双向同步方式;
(6)如果上次同步发生了同步失败,则判断上次同步同步失败时是否发生了数据交互或者上次同步是否为慢同步;(7)如果上次同步同步失败时未发生数据交互并且上次同步不是慢同步,则本次同步采取双向同步方式,转步骤(9);(8)如果上次同步同步失败时已发生数据交互或者上次同步是慢同步,则转到步骤(3);(9)监控本次同步是否发生了同步失败;(10)如果本次同步未发生同步失败则此次同步顺利完成;(11)如果本次同步发生了同步失败,则判断是否需要重新启动同步;(12)如果需要重新启动同步,转步骤(2);(13)如果不需要重新启动同步,则此次同步过程结束。
所述的同步失败包括无效的客户端设置,网络不可用从而导致无法和服务器建立连接,服务器端不可用,认证失败,路径不可用。
所述的无效的客户端设置指没有设置ID、PASSWORD、数据库地址中之一或其群组。
所述的网络不可用指网络不稳定或连接超时。
所述的服务器端不可用指服务器端设备故障或超负荷。
所述的认证失败指ID、PASSWORD错误。
所述的双向同步和慢同步都包括客户端初始化,网络初始化,同步初始化,及数据交互的过程。
所述的客户端数据被发送到服务器端、服务器端数据以及状态回复将被发送到客户端、客户端发送映射信息和状态回复到服务器端以及服务器端发送状态回复到客户端的过程涉及到数据交互。
本发明只有在确实必要的情况下才启动慢同步,减少了慢同步的次数,节约费用及资源,提高同步效率。


图1为现有的同步过程示意图。
图2为客户端与服务器端同步的一般流程示意图。
图3为本发明的同步过程示意图。
具体实施例方式
以下结合附图详细说明本发明的实质,但并不作为对本发明的限定。
本发明提供的是一种更加高效的客户端与服务器端之间的数据同步方法。其主要特点在于在上一次的同步失败重新启动同步时,首先要对上一次的同步进行判断,只有在上次同步为慢同步或上次同步进行了数据交互的情况下才采取慢同步的方式。如此一来可以减少不必要的慢同步的次数,节约费用与资源,又能提高数据同步的效率。
请参阅图2,其为客户端与服务器端同步的一般流程。双向同步及慢同步皆适用于该流程,只是传输的数据有所不同。用户启动同步后(步骤201),客户端开始初始化(步骤202),随后网络初始化(步骤203)、同步初始化(步骤204)相继进行。随后,客户端数据被发送到服务器端(步骤205),服务器接收并加以参照,对自身数据进行增加、修改、删除。其后服务器端数据以及状态回复将被发送到客户端(步骤206),客户端接收并参照该数据增加、修改、删除自身的数据,随即发送映射信息和状态回复到服务器端(步骤207),服务器端接收后发送状态回复到客户端(步骤208),从而实现了双方的数据同步过程。
如图所示,虚线A以上的步骤中并不涉及数据交互过程,因此即使此时发生同步失败也不会影响下一次同步的数据质量。而虚线A以下步骤均涉及两端数据的传递与修改,因此一旦发生同步失败,必定造成数据丢失等诸多问题从而影响了双方下次数据同步的正确性。
在现有技术中,只要发生了同步失败,下一次的数据同步就采用慢同步的方式。慢同步需要将客户端及服务器端所有的数据都发送给对方,因此耗费的时间占用的资源较多,效率不高。但如果同步失败发生在执行虚线A以上的某个步骤的时候,即同步过程尚处于初始化阶段,尚未进行到数据交互的部分,则不影响下次同步的数据质量。此时下一次同步采取双向同步方式重新进行客户端、网络、同步的初始化,即可校正错误,也可保证后续的数据传输的正确性。如仍要采取慢同步的方式,这就造成了对传输资源和传输时间的浪费。因此本发明针对这一问题进一步对同步失败所发生的具体时机进行划分,只有在确实需要慢同步以保证数据准确的时候才启动慢同步,降低使用慢同步的次数,提高同步效率。
本发明的具体流程请参阅图3。用户启动同步(步骤301)以后,首先进行此次同步是否为第一次同步的判断(步骤302)。如果是第一次同步,为了保证双方后续的数据传输、修改过程的正确以及统一性,应当采取慢同步的方式(步骤303),客户端与服务器端相互交换自身数据,参照对方数据增删自身数据,确保双方数据的一致。如果不是第一次同步,应当继续判断上次同步是否发生了同步失败(步骤304)。如果上次并未发生同步失败,即数据的交互过程是正常而平稳的,则此次同步只需要启动双向同步(步骤306)。双向同步的双方仅传输自上次同步以来进行了更新的数据给对方,传输数据量少,效率高,但有可能发生用户端与服务器端对同一数据进行修改从而发生数据冲突的情况,当然SyncML协议另有一套避免冲突的方法,此处并不赘叙。如果上次同步发生了同步失败,那么仍要继续判断在发生同步失败时是否已发生了数据交互(步骤305),对应于图2,即同步过程是否已进行到虚线A以下的步骤,如果已发生数据交互,则此次同步必须采取慢同步的方式;或者判断上次同步是否为慢同步,如果上次为慢同步代表上次同步中需要一次双方数据准确保持一致的过程,既然发生了同步失败,那么显然此次同步仍然应该采取慢同步的方式以确保后续的同步过程的正常有序。只有在上次发生同步失败的同步过程是双向同步且发生同步失败时还未进行数据交互时,此次同步才能执行双向同步(步骤306)。从而在有效降低慢同步的次数的同时确保数据的安全,节约了费用与资源。同步过程按照选定的类型进行,在后续过程中仍要监控是否发生了新的同步同步失败(步骤307),如果未发生则同步顺利完成(步骤308),此次同步的过程结束(步骤310)。如果同步过程中又发生了同步失败则需再次判断是否再启动同步(步骤309),如重新启动同步则重新执行判断此次同步是否为第一次同步的步骤(步骤302),后续步骤循环执行,直至结束。如不需重新启动同步则此次同步的过程结束(步骤310)。
本发明中,同步失败的情况主要包括无效的客户端设置,例如没有设置ID、PASSWORD、数据库地址等;网络不可用导致无法和服务器建立连接如网络不稳定,连接超时等;服务器端不可用,如服务器端设备故障,超负荷等;认证失败,如ID、PASSWORD错误等;路径不可用。
本发明的主要优点在于,在上次同步发生了同步失败的情况下并不笼统的在本次同步中选用慢同步方式,而是更进一步区分上次是否为慢同步以及上次同步失败时是否已进行了数据交互,当上次同步为双向同步且同步失败时还未发生数据交互时,本次同步将采取双向同步的方式,这样一来只有在必要时才采取慢同步方式,有效降低了慢同步的次数,同时也可保证数据同步的准确性,还可节约费用以及资源。
以上所述并不用以限定本发明,任何本领域的普通技术人员在不违反本发明的精神与范围内所作的修改或更动,均应属于本发明的专利保护范围。
权利要求
1.一种数据同步方法,其特征在于,包括如下步骤(1)启动本次同步;(2)判断是否为第一次同步;(3)如果是,则采取慢同步方式进行数据同步,转到步骤(9);(4)如果否,则判断上次同步是否发生了同步失败;(5)如果上次同步未发生同步失败,则本次同步采取双向同步方式;(6)如果上次同步发生了同步失败,则判断上次同步失败时是否发生了数据交互或者上次同步是否为慢同步;(7)如果上次同步失败时未发生数据交互并且上次同步不是慢同步,则本次同步采取双向同步方式,转步骤(9);(8)如果上次同步失败时已发生数据交互或者上次同步是慢同步,则转到步骤(3);(9)监控本次同步是否发生了同步失败;(10)如果本次同步未发生同步失败则此次同步顺利完成;(11)如果本次同步发生了同步失败,则判断是否需要重新启动同步;(12)如果需要重新启动同步,转步骤(2);(13)如果不需要重新启动同步,则此次同步过程结束。
2.如权利要求1所述的数据同步方法,其特征在于,所述同步失败包括无效的客户端设置,网络不可用从而导致无法和服务器建立连接,服务器端不可用,认证失败,路径不可用。
3.如权利要求2所述的数据同步方法,其特征在于,所述无效的客户端设置包括没有设置ID、PASSWORD、数据库地址中之一或其组合。
4.如权利要求2所述的数据同步方法,其特征在于,所述网络不可用包括网络不稳定或连接超时。
5.如权利要求2所述的数据同步方法,其特征在于,所述服务器端不可用包括服务器端设备故障或超负荷。
6.如权利要求2所述的数据同步方法,其特征在于,所述认证失败包括ID、PASSWORD错误。
7.如权利要求1所述的数据同步方法,其特征在于,所述双向同步方式和慢同步方式都包括客户端初始化、网络初始化、同步初始化及数据交互过程。
8.如权利要求1或7所述的数据同步方法,其特征在于,所述数据交互包括客户端数据被发送到服务器端、服务器端数据以及状态回复将被发送到客户端、客户端发送映射信息和状态回复到服务器端以及服务器端发送状态回复到客户端。
全文摘要
本发明涉及一种数据同步方法,包括在此次同步不是第一次同步且上次同步发生了同步失败的情况下,判断上次同步是否为慢同步或者发生同步失败之前是否发生了数据交互,如果上次同步是慢同步或者在发生同步失败之前已经发生了数据交互,则采取慢同步的方式,如果上次同步不是慢同步并且在发生同步失败之前没有发生数据交互,则采取双向同步的方式。本发明只有在确实必要的情况下才启动慢同步,减少了慢同步的次数,节约费用及资源,提高同步效率。
文档编号H04L12/24GK1968125SQ20051008691
公开日2007年5月23日 申请日期2005年11月17日 优先权日2005年11月17日
发明者寇涛, 金曙花, 郭江鸿 申请人:乐金电子(中国)研究开发中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1