一种数字资产的更新系统及其方法
【专利摘要】本发明涉及计算机【技术领域】,尤其是一种数字资产的更新系统及其方法。包括客户端、服务端、时间服务器和数据库;所述的客户端可以为多个,每个客户端有唯一的标识符,维护一份属于自己的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引以及由时间服务器提供的最后更新时间;所述的服务器,提供数字资源的数据库;数据库中保存有系统的索引列表;所述的时间服务器,提供一个准确、可靠的最后更新时间;所有客户端的“最后更新时间”都由时间服务器统一提供,防止由于时间误差而导致的数据异常问题。本发明提供了一套可靠、有效的多终端数据一致性维护的系统和方法;可以用于多终端数据维护。
【专利说明】一种数字资产的更新系统及其方法
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其是一种一种数字资产的更新系统及其方法。
【背景技术】
[0002]在当前的更新技术当中,很多都是基于单一客户端的场景下进行的在线实时数据更新,导致在空间和网络的方面限制比较多。但是,如今终端的类型不再是单一的PC端,手机、平板电脑等移动终端不断推陈出新并且占据巨大的市场份额。一个用户需要在不同的终端、不同的地点、不同的时间去使用应用软件,从而也导致用户的数据在多个终端上难以保持一致的问题。显然,随着数据本身和用户多设备的增加,目前的更新技术已经不能适应用户的需求。因此现在越来越多的软件都针对用户多设备的特点实现新的更新技术。
【发明内容】
[0003]本发明解决的技术问题之一在于提供一种数字资产的更新系统;解决目前多设备、多地点、不同时间情况下更新数据不一致的问题。
[0004]本发明解决的技术问题之二在于提供一种数字资产的更新方法;能够实现将多个客户端上的业务系统脱离联机环境进行业务操作,并在网络允许的情况下能够独立进行更新操作,完成和在线联机同样的业务功能,并且能够维护各终端数据的一致性,使原有固定的业务不再受到空间限制。
[0005]本发明解决上述技术问题之一的技术方案是:
[0006]包括客户端、服务端、时间服务器和数据库;
[0007]所述的客户端可以为多个,每个客户端有唯一的标识符,维护一份属于自己的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引以及由时间服务器提供的最后更新时间;
[0008]所述的服务器,提供数字资源的数据库;数据库中保存有系统的索引列表;
[0009]所述的时间服务器,提供一个准确、可靠的最后更新时间;所有客户端的“最后更新时间”都由时间服务器统一提供,防止由于时间误差而导致的数据异常问题。
[0010]本发明解决上述技术问题之二的技术方案是:
[0011]每个客户端都有一个唯一的标识符,并且维护一份属于自己的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引以及由时间服务器提供的最后更新时间;服务端数据库的索引列表中的每条数据都通过标识符标识这条数据来源于哪一个客户端;
[0012]更新时,首先进行数据更新,然后更新索引列表;保持每个客户端数据与索引列表的一致性;数据更新操作包括元数据和资源的上传以及下载,各个数据更新操作相对独立,支持并发执行;
[0013]在索引更新操作中,服务端通过对比自身索引列表和客户端提交的索引列表,得到索引更新结果;该结果中包含该用户其他来源的客户端在最后更新时间到目前为止的操作信息以及新的最后更新时间;[0014]客户端根据索弓I更新操作中的响应结果,生成数据更新各操作的请求信息;
[0015]客户端将历史遗留操作合并到请求信息后通过多线程发送数据更新请求,最后判断服务端的响应结果,成功则更新本地索引列表中的相关数据,失败则将加入历史遗留操作中,延迟到下一次更新操作执行。
[0016]数字资产表示属于用户个人所有的笔记内容的单位载体;一条数字资产由元数据和资源两部分组成;数字资产与资源是一对多关系,多条数字资产可以引用同一份资源。
[0017]所述的索引更新是:
[0018]客户端向服务端提交“索引更新”请求,请求中包括一份用于服务端更新用户在本地客户端执行删除操作的数字资产id列表、用于判断该资源在服务端是否存在而避免重复提交的资源id列表、来源、用户唯一标识符和本地索引列表的最后更新时间;
[0019]服务端根据客户端提交的数字资产id列表删除相应数字资产,再更新索引列表中相关数字资产的来源和状态;
[0020]服务端查找索引列表中客户端的“最后更新时间”到目前为止该用户在其他来源的客户端的操作信息,并加入响应结果中;
[0021]服务端根据资源id列表检查数据库中是否存在相同的资源,并将检查判断结果加入响应结果中;
[0022]服务端将新的最后更新时间加入到响应结果中,并以XML的数据形式发回到客户端;
[0023]客户端解析服务端的响应结果,合并相应的数据更新操作和历史遗留操作,生成数据更新请求信息;并将服务端发来的“最后更新时间”更新到索引列表中。如果没有收到响应信息,则视为索引更新失败,结束整个更新操作。
[0024]所述的元数据下载是:
[0025]如果索引更新结果中有状态为新增或者修改的数字资产,则向服务端提交“元数据下载”请求,请求中包括一份数字资产id和状态的数字资产列表、用户唯一标识符,否则不需要提交请求;
[0026]服务端得到“元数据下载”请求,将状态为新增的数字资产元数据(不包括资源)和状态为修改的数字资产修改部分加入响应结果中;
[0027]服务端将响应结果以XML的数据形式发送回客户端;
[0028]客户端根据响应结果获得数字资产的元数据和修改部分,更新本地数据后再更新本地索引列表;如果没有获得响应或响应异常,则视为“元数据下载”操作失败,并将该操作添加到历史遗留操作中。
[0029]所述的元数据上传是:
[0030]将上一次最后更新时间至这次最后更新时间这段时间内本地新增的数字资产作为请求信息,向服务端发送“元数据上传”请求;
[0031]服务端接收“元数据上传”请求,并将数字资产写入数据库;
[0032]更新服务端的索引列表;
[0033]向服务端发送一个空响应结果;
[0034]客户端接收到空响应结果则表示“元数据上传”操作成功,否则视为操作失败,并将该操作添加到历史遗留操作中。
[0035]所述的资源上传和下载是:
[0036]客户端将需要上传到服务端的资源列表或者需要下载的资源id列表作为请求信息,向服务端发送“资源上传和下载”请求;
[0037]服务端根据请求信息判断是资源上传还是资源下载,如果是资源上传,则将资源写入到数据库中,再返回一个空响应结果;如果是资源下载,则根据资源id列表查找相关资源,将查找结果加入响应结果后返回;
[0038]判断服务端的响应结果,如果是正常响应则“资源上传和下载”操作成功,否则视为“资源上传和下载”操作失败,并将该操作加入到历史遗留操作中。
[0039]本发明所有终端的“最后更新时间”都由时间服务器统一提供,防止由于时间误差而导致的数据异常问题。每个终端都维护一份属于自身的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引;通过个索引列表之间的对比来更新数据最终实现数据一致性的维护。各个数据更新操作都相对独立,支持通过并发高效执行。终端上数据更新操作中任何一步失败都会并入到下一次更新索引列表里;从而保证数据的最终一致性。通过本发明的使用,可以保证每次更新操作在时间上的原子性,防止由于多终端之间的时间差引起的数据异常问题;可以通过数据更新让用户在脱离联机的环境上进行和在线联机同样的业务操作;可以使用户在任意终端获取该用户在其他终端中已经更新的业务操作。本发明提供了一套可靠、有效的多终端数据一致性维护的系统和方法。
【专利附图】
【附图说明】
[0040]下面结合附图对本发明进一步说明:
[0041]图1是本发明系统框图;
[0042]图2是本发明方法户端流程图;
[0043]图3是本发明方法具体实施时序图。
【具体实施方式】
[0044]如图1-3所示,本发明:
[0045]1.每个客户端都有一个唯一的标识符(origin)并且维护一份属于自己索引列表,列表中记录记录从上次更新到目前为止发生变化的数据索引以及由服务器提供的最后更新时间,而且服务端的索引列表中的每条数据都通过origin标识这条数据来源于哪一个客户端;
[0046]2.先更新数据,后更新索引列表。保持每个客户端数据与索引列表的一致性。
[0047]3.在索引更新操作中,服务端通过对比自身索引列表和客户端提交的索引列表,得到索引更新结果。该结果中包含该用户其他来源的客户端在最后更新时间到到目前为止的操作信息以及新的最后更新时间。
[0048]4.客户端根据索弓I更新操作中的响应结果,生成数据更新各操作的请求信息。
[0049]5.客户端将历史遗留操作合并到请求信息后通过多线程发送数据更新请求,最后判断服务端的响应结果,成功则更新本地索引列表中的相关数据,失败则将加入历史遗留操作中,延迟到下一次更新操作执行。[0050]本发明数字资产:表示属于用户个人所有的笔记内容的单位载体。一条数字资产由元数据和资源两部分组成。另外,数字资产与资源是一对多关系,也就是说多条数字资产可以引用同一份资源。
[0051]具体实施步骤:
[0052]1.索引更新
[0053]1.1客户端向服务端提交“索引更新”请求,请求中包括一份数字资产id列表(用于服务端更新用户在本地客户端执行的删除操作)、资源id列表(用于判断该资源在服务端是否存在,避免重复提交)、来源(origin)、用户唯一标识符(owner)和本地索引列表的最后更新时间。
[0054]1.2服务端根据客户端提交的数字资产id列表删除相应数字资产,再更新索引列表中相关数字资产的来源和状态。
[0055]1.3服务端查找索引列表中客户端的“最后更新时间”到目前为止该用户在其他来源的客户端的操作信息,并加入响应结果中。
[0056]1.4服务端根据资源id列表检查数据库中是否存在相同的资源,并将检查判断结果加入响应结果中。
[0057]1.5服务端将新的最后更新时间加入到响应结果中,并以XML的数据形式发回到
客户端。
[0058]1.6客户端解析服务端的响应结果,合并相应的数据更新操作和历史遗留操作,生成数据更新请求信息。并将服务端发来的“最后更新时间”更新到索引列表中。如果没有收到响应信息,则视为索引更新失败,结束整个更新操作。
[0059]2.元数据下载
[0060]2.1如果索引更新结果中有状态为C(新增)或者U(修改)的数字资产,则向服务端提交“元数据下载”请求,请求中包括一份数字资产列表(数字资产id、状态)和用户唯一标识符(owner)。否则不需要提交请求。
[0061]2.2服务端得到“元数据下载”请求,将状态为C (新增)的数字资产元数据(不包括资源)和状态为U(修改)的数字资产修改部分加入响应结果中。
[0062]2.3服务端将响应结果以XML的数据形式发送回客户端。
[0063]2.4客户端根据响应结果获得数字资产的元数据和修改部分,更新本地数据后再更新本地索引列表。如果没有获得响应或响应异常,则视为“元数据下载”操作失败,并将该操作添加到历史遗留操作中。
[0064]3.元数据上传
[0065]3.1将上一次最后更新时间至这次最后更新时间这段时间内本地新增的数字资产作为请求信息,向服务端发送“元数据上传”请求。
[0066]3.2服务端接收“元数据上传”请求,并将数字资产写入数据库。
[0067]3.3更新服务端的索引列表。
[0068]3.4向服务端发送一个空响应结果。
[0069]3.5客户端接收到空响应结果则表示“元数据上传”操作成功,否则视为操作失败,并将该操作添加到历史遗留操作中。
[0070]4.资源上传和下载[0071]4.1客户端将需要上传到服务端的资源列表或者需要下载的资源id列表作为请求信息,向服务端发送“资源上传和下载”请求。
[0072]4.2服务端根据请求信息判断是资源上传还是资源下载,如果是资源上传,则将资源写入到数据库中,再返回一个空响应结果;如果是资源下载,则根据资源id列表查找相关资源,将查找结果加入响应结果后返回。
[0073]4.3判断服务端的响应结果,如果是正常响应则“资源上传和下载”操作成功,否则视为“资源上传和下载”操作失败,并将该操作加入到历史遗留操作中
[0074]此外,
[0075]1.“索引更新”和“元数据上传”请求信息中需要包含来源(origin)用于分辨数字资产来自于哪个客户端,因为这两个请求需要服务端更新索引列表。
[0076]2.考虑到数字资产与资源存在多对一的关系和资源的大小问题会影响响应时间,所以将资源的上传和下载分离到“资源上传和下载”的请求当中。
[0077]3.“元数据下载”、“元数据上传”和“资源上传和下载”操作在发送请求前都需要合并历史遗留操作后再进行请求发送。
[0078]4.“元数据下载”、“元数据上传”和“资源上传和下载”不存在先后次序约束,可以并发执行,从而增加更新效率。
【权利要求】
1.一种数字资产更新系统,其特征在于:包括客户端、服务端、时间服务器和数据库; 所述的客户端可以为多个,每个客户端有唯一的标识符,维护一份属于自己的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引以及由时间服务器提供的最后更新时间; 所述的服务器,提供数字资源的数据库;数据库中保存有系统的索引列表; 所述的时间服务器,提供一个准确、可靠的最后更新时间;所有客户端的“最后更新时间”都由时间服务器统一提供,防止由于时间误差而导致的数据异常问题。
2.—种权利要求1所述系统的数字资产更新方法,其特征在于: 每个客户端都有一个唯一的标识符,并且维护一份属于自己的索引列表,列表中记录从上次更新到目前为止发生变化的数据索引以及由时间服务器提供的最后更新时间;服务端数据库的索引列表中的每条数据都通过标识符标识这条数据来源于哪一个客户端;更新时,首先进行数据更新,然后更新索引列表;保持每个客户端数据与索引列表的一致性;数据更新操作包括元数据和资源的上传以及下载,各个数据更新操作相对独立,支持并发执行; 在索引更新操作中,服务端通过对比自身索引列表和客户端提交的索引列表,得到索引更新结果;该结果中包含该用户其他来源的客户端在最后更新时间到目前为止的操作信息以及新的最后更新时间; 客户端根据索引更新操作中的响应结果,生成数据更新各操作的请求信息; 客户端将历史遗留操作合并到请求信息后通过多线程发送数据更新请求,最后判断服务端的响应结果,成功则更 新本地索引列表中的相关数据,失败则将加入历史遗留操作中,延迟到下一次更新操作执行。
3.根据权利要求2所述的数字资产更新方法,其特征在于:数字资产表示属于用户个人所有的笔记内容的单位载体;一条数字资产由元数据和资源两部分组成;数字资产与资源是一对多关系,多条数字资产可以引用同一份资源。
4.根据权利要求2或3所述的数字资产更新方法,其特征在于:所述的索引更新是: 客户端向服务端提交“索引更新”请求,请求中包括一份用于服务端更新用户在本地客户端执行删除操作的数字资产id列表、用于判断该资源在服务端是否存在而避免重复提交的资源id列表、来源、用户唯一标识符和本地索引列表的最后更新时间; 服务端根据客户端提交的数字资产id列表删除相应数字资产,再更新索引列表中相关数字资产的来源和状态; 服务端查找索引列表中客户端的“最后更新时间”到目前为止该用户在其他来源的客户端的操作信息,并加入响应结果中; 服务端根据资源id列表检查数据库中是否存在相同的资源,并将检查判断结果加入响应结果中; 服务端将新的最后更新时间加入到响应结果中,并以XML的数据形式发回到客户端;客户端解析服务端的响应结果,合并相应的数据更新操作和历史遗留操作,生成数据更新请求信息;并将服务端发来的“最后更新时间”更新到索引列表中。如果没有收到响应信息,则视为索引更新失败,结束整个更新操作。
5.根据权利要求4所述的数字资产更新方法,其特征在于:所述的元数据下载是:如果索引更新结果中有状态为新增或者修改的数字资产,则向服务端提交“元数据下载”请求,请求中包括一份数字资产id和状态的数字资产列表、用户唯一标识符,否则不需要提交请求; 服务端得到“元数据下载”请求,将状态为新增的数字资产元数据(不包括资源)和状态为修改的数字资产修改部分加入响应结果中; 服务端将响应结果以XML的数据形式发送回客户端; 客户端根据响应结果获得数字资产的元数据和修改部分,更新本地数据后再更新本地索引列表;如果没有获得响应或响应异常,则视为“元数据下载”操作失败,并将该操作添加到历史遗留操作中。
6.根据权利要求4所述的数字资产更新方法,其特征在于:所述的元数据上传是: 将上一次最后更新时间至这次最后更新时间这段时间内本地新增的数字资产作为请求信息,向服务端发送“元数据上传”请求; 服务端接收“元数据上传”请求,并将数字资产写入数据库; 更新服务端的索引列表; 向服务端发送一个空响应结果; 客户端接收到空响应结果则表示“元数据上传”操作成功,否则视为操作失败,并将该操作添加到历史遗留操作中。
7.根据权利要求4所述的数字资产更新方法,其特征在于:所述的资源上传和下载是: 客户端将需要上传到服务端的资源列表或者需要下载的资源id列表作为请求信息,向服务端发送“资源上传和下载”请求; 服务端根据请求信息判断是资源上传还是资源下载,如果是资源上传,则将资源写入到数据库中,再返回一个空响应结果;如果是资源下载,则根据资源id列表查找相关资源,将查找结果加入响应结果后返回; 判断服务端的响应结果,如果是正常响应则“资源上传和下载”操作成功,否则视为“资源上传和下载”操作失败,并将该操作加入到历史遗留操作中。
8.根据权利要求5所述的数字资产更新方法,其特征在于:所述的元数据上传是: 将上一次最后更新时间至这次最后更新时间这段时间内本地新增的数字资产作为请求信息,向服务端发送“元数据上传”请求; 服务端接收“元数据上传”请求,并将数字资产写入数据库; 更新服务端的索引列表; 向服务端发送一个空响应结果; 客户端接收到空响应结果则表示“元数据上传”操作成功,否则视为操作失败,并将该操作添加到历史遗留操作中。
9.根据权利要求8所述的数字资产更新方法,其特征在于:所述的资源上传和下载是: 客户端将需要上传到服务端的资源列表或者需要下载的资源id列表作为请求信息,向服务端发送“资源上传和下载”请求; 服务端根据请求信息判断是资源上传还是资源下载,如果是资源上传,则将资源写入到数据库中,再返回一个空响应结果;如果是资源下载,则根据资源id列表查找相关资源,将查找结果加入响应结果后返回; 判断服务端的响应结果,如果是正常响应则“资源上传和下载”操作成功,否则视为“资源上传和下载”操作失败,并将该操作加入到历史遗留操作中。
【文档编号】H04L29/06GK103475721SQ201310416671
【公开日】2013年12月25日 申请日期:2013年9月12日 优先权日:2013年9月12日
【发明者】吴冠权, 肖翱, 施巍松, 徐志伟, 岳强 申请人:广东电子工业研究院有限公司