一种移动终端处理数据冲突的方法和装置的制造方法

文档序号:10555627阅读:210来源:国知局
一种移动终端处理数据冲突的方法和装置的制造方法
【专利摘要】本发明实施例提供一种移动终端处理数据冲突的方法和装置,其中方法包括:登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据;如果所述请求数据存在数据冲突,客户端将所述请求数据的sourceid删除,并为所述请求数据生成新sourceid;客户端将具有所述新sourceid的请求数据上传到服务器上。本发明实施例解决了通过冲突事件处理机制解决了现有技术中多个客户端修改同一个便签会丢掉的问题。
【专利说明】
一种移动终端处理数据冲突的方法和装置
技术领域
[0001]本发明实施例涉及移动终端技术领域,尤其涉及一种移动终端处理数据冲突的方法和装置。
【背景技术】
[0002]近年来,随着移动通信技术的飞速发展和移动终端智能化趋势的加快,人们正走入一个新的移动互联网时代。多种多样具备网络连接能力的移动终端,诸如手机、平板电脑、电纸书等的出现,带给人们随时随地访问互联网的便捷。Android的出现,更是将移动终端推向了以应用和数据为主导的时代。今天的移动终端平台具备了办公、娱乐、社交等多种功能,其存储的数据也变得更加丰富,例如图片、音乐、视频、动画等等。
[0003]用户在享受不同类型移动终端带来的便捷时,也遇到了多终端存储的数据统一性管理的问题。多终端数据同步的现有方案之一可以基于SyncML(Synchronizat1n MarkupLanguage)协议进行,SyncML是通用的移动数据同步化协议,可以在兼容的设备、程序及网络进行数据同步。
[0004]此外,移动终端上的原有同步架构可以处理同步事件,使登录了一个账号的移动终端能够保持数据的同步。
[0005]例如:
[0006]A、B两个移动终端登录同一账号的情况下,
[0007]当A新增一个便签,同步后,B也会得到这个新增的便签;
[0008]当A改变一个便签的内容,同步后,B也会改变这个便签;
[0009]当A删除一个便签,同步后,B也会删除这个便签。
[0010]但是有一种场合,当A、B同时修改一个便签,那情形会是怎样呢?
[0011]图1为现有技术中客户端数据同步的流程示意图,具体步骤如下:
[0012]客户端新建一个数据A到服务器,此时A的etag为null;
[0013]服务器处理成功后在服务器保留A和A的etag,给A的etag传给客户端;
[0014]客户端修改A,把A和客户端A的etag传给服务器;
[0015]服务器把客户端传来的etag和服务器的etag相比较。如果相同修改成功服务器会更新etag,并把新的etag传给客户端。如果不同返回错误码412,认为发生了冲突。
[0016]可以看出,数据每一次同步后,服务器都会给这个数据一个特殊字符串etag,该etag代表当前数据在服务器的版本。
[0017]同步数据的时候,数据可能在多个客户端展现,不同的数据用sourceid来唯一标示。sourceid是在向服务器新增数据的时候,给数据生成的唯一的字符串。服务器也用sourceid来表示一个数据,数据在服务器插入成功后,同时把数据对应的sourceid更新到数据库中。
[0018]如果两个客户端对同一个版本数据比如便签NI做了修改,移动终端A把NI修改为Nll,移动终端B把NI修改为NI 2。
[0019]如果A请求先到达服务器,根据etag的逻辑,NI的etag和服务器上的etag是相同的,那么服务器上的NI就被修改成了Nll,并且服务器和客户端A都将更新这个数据的etag。
[0020]于是当第二个客户端B的请求过来的时候,服务器发现B的etag不一样,就会认为这是一种冲突请求,那第二个客户端B的请求会失败。
[0021]根据原有同步框架的逻辑,B请求失败后,就会把服务器上的Nll同步到B客户端,使得B上的NI 2又变成了 NI I。
[0022]这样,N12这个修改就丢掉了。
[0023]如果两个客户端同时修改同一个便签,会丢掉一个客户端的修改数据,这对用户来说是不可接受的。

【发明内容】

[0024]本发明实施例提供一种移动终端处理数据冲突的方法和装置,通过冲突事件处理机制解决了现有技术中多个客户端修改同一个便签会丢掉的问题。
[0025]本发明实施例提供一种移动终端处理数据冲突的方法,包括:
[0026]登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据;
[0027]如果所述请求数据存在数据冲突,客户端将所述请求数据的sourceid删除,并为所述请求数据生成新sourceid;
[0028]客户端将具有所述新sourceid的请求数据上传到服务器上。
[0029]本发明实施例提供一种用于处理冲突事件的移动终端,包括:
[0030]第一处理模块,用于向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据;
[0031]第二处理模块,用于如果所述请求数据存在数据冲突,将所述请求数据的source id删除,并为所述请求数据生成新source id;
[0032]第三处理模块,用于将具有所述新sourceid的请求数据上传到服务器上。
[0033]和现有技术相比,本发明实施例提供的移动终端处理数据冲突的方法和装置,通过为存在数据冲突的请求数据重新生成新sourceid,具有新sourceid的请求数据就是一个新的请求数据了,因此不会再存在数据冲突,从而解决了现有技术中多个客户端修改同一个便签会丢掉修改数据的问题。
【附图说明】
[0034]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为现有技术中客户端数据同步的流程示意图;
[0036]图2为本发明的一个具体实施例中移动终端处理数据冲突的方法的流程示意图;
[0037]图3为本发明的一个具体实施例中移动终端处理数据冲突的方法的详细流程示意图;
[0038]图4为本发明的一个具体实施例中用于处理冲突事件的装置的架构示意图。
【具体实施方式】
[0039]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0040]实施例一:
[0041]图2为本发明的一个具体实施例中移动终端处理数据冲突的方法的流程示意图。
[0042]如图2所示,该方法应用于移动终端上,包括:
[0043]步骤S21,登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据;
[0044]步骤S22,如果请求数据存在数据冲突,客户端将请求数据的sourceid删除,并为请求数据生成新sourceid;
[0045]步骤S23,客户端将具有新sourceid的请求数据上传到服务器上。
[0046]实施例二:
[0047]图3为本发明的一个具体实施例中移动终端处理数据冲突的方法的详细流程示意图。
[0048]如图3所示,该方法应用于移动终端上,包括:
[0049]步骤S31,登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据。
[0050]在本步骤中,登录同一帐号的不同客户端分别向服务器上传新增修改删除的请求,这可以是一个批量执行操作的过程,例如,客户端向服务器新增或者修改100个数据,这100个数据放到可以一个新增修改删除请求。
[0051 ]其中新增修改删除请求可以是httpPut请求,具体操作为:定义数据格式,按照定义的数据格式序列化100个数据,并将序列化后的100个数据放到httpPut请求中。
[0052]步骤S32,服务器接收到请求数据后,判断请求数据是否存在数据冲突,如果是,进行步骤S33;如果否,进行步骤S35。
[0053]在本步骤中,向服务器新增数据是不会发生冲突的。冲突发生在修改和删除的请求上,加上同步的先后顺序冲突操作分为三种:
[0054]1.修改-修改冲突;
[0055]2.修改-删除冲突,这是修改的请求先到达服务器。
[0056]3.删除-修改冲突,删除的请求先到达服务器。
[0057]数据每一次同步后,服务器都会给客户端这个数据一个特殊字符串etag,该etag代表当前数据在服务器的版本。
[0058]例如,如果移动终端A和移动终端B这两个客户端对同一个版本数据NI做了修改,移动终端A把NI修改为Nll,移动终端B把NI修改为NI 2。
[0059]如果A的请求先到达服务器,根据etag的逻辑,NI的etag和服务器上的etag是相同的,那么服务器上的NI就被修改成了Nll,并且服务器和客户端A都将更新这个数据的etag。[ΟΟ?Ο]于是当B的请求过来的时候,服务器发现B的etag不一样,就会认为这个请求包括冲突数据。
[0061]在现有技术中,B的请求会失败,则服务器上的Nll会同步到B,使得B修改的N12又变成了NI I。这样,NI 2这个修改就丢掉了。
[0062]在本发明具体实施例中,如果服务器接收到登录同一帐号的不同客户端的请求数据后,根据请求数据的etag判断出该请求数据存在数据冲突时,并不会直接向B反馈请求失败。
[0063]步骤S33,服务器向客户端返回新增修改删除回应,该新增修改删除回应包括请求数据的状态码。
[0064]在本步骤中,如果服务器接收到登录同一帐号的不同客户端的请求数据后,根据请求数据的etag判断该请求数据存在数据冲突时,会向客户端返回新增修改删除回应,该新增修改删除回应包括请求数据的状态码,例如状态码为412代表该请求数据存在数据冲关O
[0065]步骤S34,客户端接收服务器返回的新增修改删除回应,根据新增修改删除回应中请求数据的状态码确定请求数据存在数据冲突时,将请求数据的sourceid删除,并为请求数据生成新sourceid ο
[0066]在本步骤中,sourceid是在向服务器新增修改删除数据的时候,给数据生成的唯一的字符串。
[0067]客户端接收服务器返回的新增修改删除回应,如果新增修改删除回应中请求数据的状态码为412,则表示请求数据存在数据冲突。
[0068]客户端可以将请求数据的sourceid删除,并为请求数据生成新sourceid,清除该请求数据的etag。
[0069]因为sourceid是唯一标识一个数据的,由于存在数据冲突的请求数据的sourceid已经改变成新sourceid,从而具有新sourceid的请求数据就是一个新的请求数据了。
[ΟΟΤ?]步骤S35,客户端将新增修改删除请求中的具有新sourceid的请求数据上传到服务器上。
[0071 ] 在本步骤中,sourceid是唯一标识一个数据的,对于服务器来说,具有新sourceid的请求数据就是一个新的请求数据了,因此不会再存在数据冲突。
[0072]步骤S36,服务器根据请求数据进行修改并同步到客户端。
[0073]在本步骤中,如果服务器接收到的数据请求不存在数据冲突,则服务器按照现有的方式进行处理,即根据etag的逻辑,请求数据的etag和服务器上的etag是相同的,那么服务器上的数据就被修改成了请求数据,并且服务器和客户端都将更新这个数据的etag。
[0074]实施例三:
[0075]图4为本发明的一个具体实施例中用于处理冲突事件的移动终端的结构示意图。
[0076]如图4所示,本发明的装置包括:
[0077]第一处理模块41,用于向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据;
[0078]第二处理模块42,用于如果请求数据存在数据冲突,将请求数据的sourceid删除,并为请求数据生成新sourceid;
[0079]第三处理模块43,用于将具有新sourceid的请求数据上传到服务器上。
[0080]具体地,
[0081 ]所述第一处理模块,具体用于:
[0082]定义数据格式;
[0083]按照定义的所述数据序列化请求数据;
[0084]将序列化后的请求数据放到httpPut请求中;
[0085]向服务器发送httpPut请求。
[0086]所述第二处理模块,具体用于:
[0087]接收服务器返回的新增修改删除回应;
[0088]如果从所述新增修改删除回应中获取到数据冲突的状态码,则确定存在数据冲关;
[0089]将所述请求数据的sourceid删除,为所述请求数据生成新sourceid,并清除所述请求数据的etag。
[0090]本发明实施例提供的移动终端处理数据冲突的方法和装置,通过为存在数据冲突的请求数据重新生成新source id,具有新source id的请求数据就是一个新的请求数据了,因此不会再存在数据冲突,从而解决了现有技术中多个客户端修改同一个便签会丢掉修改数据的问题。
[0091]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0092]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0093]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种移动终端处理数据冲突的方法,其特征在于,包括: 登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据; 如果所述请求数据存在数据冲突,客户端将所述请求数据的sourceid删除,并为所述请求数据生成新sourceid; 客户端将具有所述新sourceid的请求数据上传到服务器上。2.根据权利要求1所述的移动终端处理数据冲突的方法,其特征在于,所述登录同一帐号的不同客户端分别向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据的步骤包括: 定义数据格式; 按照定义的所述数据序列化请求数据; 将序列化后的请求数据放到httpPut请求中; 登录同一帐号的不同客户端分别向服务器发送httpPut请求。3.根据权利要求1所述的移动终端处理数据冲突的方法,其特征在于,所述方法还包括: 服务器接收到登录同一帐号的不同客户端的请求数据后,根据所述请求数据的etag判断是否存在数据冲突; 如果请求数据的etag和服务器上的etag不同,则存在数据冲突,服务器向客户端返回新增修改删除回应,所述新增修改删除回应包括请求数据的状态码。4.根据权利要求3所述的移动终端处理数据冲突的方法,其特征在于,所述方法还包括: 预先设置数据冲突的状态码; 如果客户端从服务器返回的新增修改删除回应中获取到数据冲突的状态码,则确定存在数据冲突。5.根据权利要求1所述的移动终端处理数据冲突的方法,其特征在于,所述客户端将所述请求数据的sourceid删除,并为所述请求数据生成新sourceid的步骤包括: 客户端将所述请求数据的sourceid删除,为所述请求数据生成新sourceid,并清除所述请求数据的etag。6.一种用于处理冲突事件的移动终端,其特征在于,包括: 第一处理模块,用于向服务器发送新增修改删除请求,所述新增修改删除请求中包含请求数据; 第二处理模块,用于如果所述请求数据存在数据冲突,将所述请求数据的sourceid删除,并为所述请求数据生成新sourceid; 第三处理模块,用于将具有所述新sourceid的请求数据上传到服务器上。7.根据权利要求6所述的用于处理冲突事件的移动终端,其特征在于,所述第一处理模块,具体用于: 定义数据格式; 按照定义的所述数据序列化请求数据; 将序列化后的请求数据放到httpPut请求中; 向服务器发送httpPut请求。8.根据权利要求7所述的移动终端处理数据冲突的方法,其特征在于,所述第二处理模块,具体用于: 接收服务器返回的新增修改删除回应; 如果从所述新增修改删除回应中获取到数据冲突的状态码,则确定存在数据冲突; 将所述请求数据的sourceid删除,为所述请求数据生成新source id,并清除所述请求数据的etag。
【文档编号】H04L29/08GK105915572SQ201510921272
【公开日】2016年8月31日
【申请日】2015年12月12日
【发明人】江丹, 杨丹
【申请人】乐视移动智能信息技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1