一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种移动分布式系统数据同步的方法和设备与流程

2022-02-25 18:40:06 来源:中国专利 TAG:


1.本技术涉及终端领域,并且更具体的,涉及一种移动分布式系统数据同步的方法和设备。


背景技术:

2.移动分布式系统是一种全新的分布式系统,不同于传统的分布式系统。如传统分布式系统是主从机构,而移动分布式系统是一种对等结构的分布式,系统成员设备是平等的,不存在主从关系;传统分布式系统要求系统成员设备实时在线,而移动分布式系统不要求成员设备实时在线。正因为移动分布式系统的结构、功能等有别于传统分布式系统,因此传统分布式系统数据同步的方法不适用于移动分布式系统。因此,移动分布式系统数据如何同步是一项亟待解决的问题。


技术实现要素:

3.本技术提供了一种移动分布式系统数据同步的方法和设备,所述方法实现移动分布式系统中设备间数据异步同步。
4.第一方面,提供了一种移动分布式系统数据同步的方法,包括:第一设备向第二设备发送第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;第一设备接收第二设备发送的第一同步消息,所述第一同步消息是所述第二设备在接收到所述第一查询请求,并判断有第一媒体资产变更后向所述第一设备发送的,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作;所述第一设备根据所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的第一媒体资产和所述第一媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的设备。
5.在所述方法中,所述第一设备向所述第二设备发送所述第一查询请求;所述第二设备在接收到所述第一查询请求,并判断有第一媒体资产变更后向所述第一设备发送所述第一同步消息,所述第一设备根据所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、第一更改列表和第一设备列表,实现了移动分布式系统的异步同步。
6.应理解,媒体资产是指多种不同格式的文件,如音频、视频、图片等文件,媒体资产可以对应的媒体资产的元数据,而不是媒体资产的本身数据。如文件音频a,其媒体资产可以是音频a的元数据(音频a的存储位置、音频a的大小、音频a的拥有者等数据属性信息)。
7.媒体资产变更是指设备上的媒体资产发生了变化,可以是设备上新增了媒体资产,也可以是修改设备上原有的媒体资产内容。如第二设备录制了音频a,则第二设备上的媒体资产变更是指第二设备录制了音频a,又如,第二设备修改了音频b,音频b是第二设备
的原有媒体资产,则第二设备上的媒体资产变更是指第二设备修改了音频b。
8.结合第一方面,在第一方面的某些实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述第一媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第二设备的设备id。
9.结合第一方面,在第一方面的某些实现方式中,所述第一同步变更内容包括第二设备的媒体资产变更内容,所述第一同步设备包括所述第二设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第一媒体资产变更内容的索引,所述第一同步设备中包括与第二设备相关的索引,所述更改列表的索引用于查找所述第一媒体资产变更内容,所述与第二设备相关的索引用于查找与所述第二设备相关的信息。
10.应理解,所述第二设备相关的信息可以包括所述第二设备的类型、所述第二设备的称和所述第二设备的存储大小等一个或多个信息。
11.结合第一方面,在第一方面的某些实现方式中,所述第一设备接收第二设备发送的第一同步消息之前,所述方法还包括:所述第一设备上的媒体资产发生变更,所述第一设备新增第二更改列表,所述第二更改列表包括第二更改列表id和所述第一设备上的媒体资产变更内容。
12.通过在第一设备上的媒体资产发生变更时,所述第一设备新增第二更改列表,所述第二更改列表包括第二更改列表id和所述第一设备上的媒体资产变更内容可以实现满足移动分布式系统中成员设备离开分布式系统后线状态时,设备上的媒体资产变更依然有效。
13.结合第一方面,在第一方面的某些实现方式中,所述第一设备接收第二设备发送的第一同步消息后,所述方法还包括:所述第一设备根据所述第一同步消息,生成第二同步记录,所述第二同步记录包括第二同步节点、所述第二更改列表和第二设备列表;所述第二同步节点包含第二同步节点id,第二同步时间戳、第二父同步节点标识、第二同步变更内容和第二同步设备中的一个或多个,所述第二同步节点id用于标识第二数据同步;在所述第二更改列表中,增加第二设备的媒体资产变更内容;在所述第二设备列表中增加所述第二设备的设备id。
14.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一设备向所述第二设备发送第二查询请求,所述第二查询请求用于查询所述第二设备上是否有媒体资产变更;所述第一设备接收所述第二设备发送的第二同步消息,所述第二同步消息是所述第二设备接收到所述第二查询请求,并判断有第二媒体资产变更后向所述第一设备发送的,所述第二同步消息携带有所述第二设备的第二媒体资产变更内容,所述第二媒体资产变更内容包括发生变更的第二媒体资产和所述第二媒体资产变更对应的动作;所述第一设备根据所述第二同步消息,生成第三同步记录,所述第三同步记录包括第三同步节点、第三更改列表和第三设备列表,所述第三同步节点中包括:第三同步节点id,第三同步时间戳、第三父同步节点标识、第三同步变更内容和第三同步设备中的一个或多个,其中,所述第三
同步节点id用于标识三数据同步;第三更改列表包括第三更改列表id,所述第二设备的第二媒体资产变更内内容;所述第三设备列表包括第三设备列表id,和所述第二设备的设备id;移除所述第一设备列表id中的所述第二设备的设备id。
15.如果所述第一设备与所述第二设备进行了多次数据同步,在同步记录的设备列表只保留最新的一次数据同步的第二设备的设备id,删除之前的设备列表中的第二设备的设备id,使得第一设备与第二设备再进行数据同步时,可以快速查找到之前已进行过的数据同步的状态信息,并且,删除之前的设备列表中的第二设备的设备id可以节省第一设备的存储空间。
16.结合第一方面,在第一方面的某些实现方式中,所述第一设备列表中的设备id为空,删除所述第一设备列表。
17.在所述第一设备列表中的设备id为空时,删除所述第一设备列表可以节省第一设备的存储空间。
18.结合第一方面,在第一方面的某些实现方式中,当所述第一同步节点为根(root)节点时,删除所述根节点和所述第一更改列表,与所述根节点的相邻同步节点成为新的根节点。
19.应理解,根节点为所述第一设备第一次与移动分布式系统的其他设备进行数据同步时创建的节点。
20.当所述第一同步节点为根(root)节点时,删除所述根节点和所述第一更改列表,可以节省第一设备的存储空间。
21.结合第一方面,在第一方面的某些实现方式中,所述第三同步节点为顶(top)节点,所述顶节点和所述根节点之间的节点为中间(middle)节点。
22.结合第一方面,在第一方面的某些实现方式中,当所述第一设备与所述第二设备的数据同步过程异常终止时,创建临时中间节点,所述临时中间节点中包含临时状态标识,所述临时中间节点用于保存未完成数据同步的同步数据。
23.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:在所述第一数据同步时,所述第一设备接收所述第二设备发送的第一哈希值,所述第一哈希值是所述第二设备根据所述第一媒体资产变更内容进行的哈希运算得到的,所述第一同步消息包括所述第一哈希值;所述第一设备根据所述第一更改列表内容进行哈希计算,得到第二哈希值;当所述第一设备判断所述第一哈希值与所述第二哈希值相等时,所述第一设备确定所述本次数据同步成功。
24.在所述第一设备同步所述第二设备的数据时,通过校验所述第一哈希值和所述第二哈希值,确保数据同步的正确性。
25.第二方面,提供了一种移动分布式系统数据同步的方法,包括:第二设备接收第一设备发送的第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;
26.所述第二设备根据所述第一查询请求,确定有第一媒体资产变更,向所述第一设备发送第一同步消息,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作。
27.结合第二方面,在第二方面的某些实现方式中,所述第二设备接收第一设备发送的第一查询请求之前,所述方法还包括:
28.所述第二设备上的所述第一媒体资产发生变更,所述第二设备新增第一更改列表;
29.所述方法还包括:
30.所述第二设备向所述第一设备发送第三查询请求,所述第三查询请求用于查询所述第一设备上是否有媒体资产变更;
31.所述第二设备接收所述第一设备发送的第一反馈消息,所述第一反馈消息是所述第一设备在接收到所述第三查询请求,并判断所述第一设备上没有媒体资产变更后向所述第二设备发送的,所述第一反馈消息用于标识所述第一设备上没有发生媒体资产变更;
32.所述第二设备根据所述第一反馈消息和所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、所述第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的媒体资产和所述媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的设备。
33.结合第二方面,在第二方面的某些实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第一设备的设备id。
34.结合第二方面,在第二方面的某些实现方式中,所述第一同步变更内容包括第二设备的媒体资产变更内容,所述第一同步设备包括所述第一设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第二设备的媒体资产变更内容的索引,所述第一同步设备中包括与第一设备相关的索引,所述第二设备的媒体资产变更内容的索引用于查找所述第二设备的媒体资产变更内容,所述与第一设备相关的索引用于查找与所述第一设备相关的信息。
35.结合第二方面,在第二方面的某些实现方式中,所述第二设备根据所述第一查询请求,判断有第一媒体资产变更,包括:所述第二设备根据所述第一查询请求和第二设备上的同步记录,判断有第一媒体资产变更;或者,所述第二设备根据所述第一查询请求和第二设备上的更改列表,判断有第一媒体资产变更。
36.结合第二方面,在第二方面的某些实现方式中,所述第一同步消息包括第一哈希值,所述第一哈希值是所述第二设备根据所述第一媒体资产变更内容进行哈希运算得到的。
37.第三方面,提供了一种设备,所述设备为第一设备,包括:收发单元,用于向第二设备发送第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;
38.所述收发单元还用于接收第二设备发送的第一同步消息,所述第一同步消息是所述第二设备在接收到所述第一查询请求,并判断有第一媒体资产变更后向所述第一设备发
送的,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作;处理单元,用于根据所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的第一媒体资产和所述第一媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的设备。
39.结合第三方面,在第三方面的某些实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述第一媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第二设备的设备id。
40.结合第三方面,在第三方面的某些实现方式中,所述第一同步变更内容包括第二设备的第一媒体资产变更内容,所述第一同步设备包括所述第二设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第一媒体资产变更内容的索引,所述第一同步设备中包括与第二设备相关的索引,所述第一媒体资产变更内容的索引用于查找所述第一媒体资产变更内容,所述与第二设备相关的索引用于查找与所述第二设备相关的信息。
41.结合第三方面,在第三方面的某些实现方式中,所述第一设备接收第二设备发送的第一同步消息之前,所述第一设备上的媒体资产发生变更,所述处理单元还用于:新增第二更改列表,所述第二更改列表包括第二更改列表id和所述第一设备上的媒体资产变更内容。
42.结合第三方面,在第三方面的某些实现方式中,所述第一设备接收第二设备发送的第一同步消息后,所述处理单元还用于:所述第一设备根据所述第一同步消息,生成第二同步记录,所述第二同步记录包括第二同步节点、所述第二更改列表和第二设备列表;所述第二同步节点包含第二同步节点id,第二同步时间戳、第二父同步节点标识、第二同步变更内容和第二同步设备中的一个或多个,所述第二同步节点id用于标识第二数据同步;在所述第二更改列表中,增加第二设备的媒体资产变更内容;在所述第二设备列表中增加所述第二设备的设备id。
43.结合第三方面,在第三方面的某些实现方式中,所述收发单元还用于:向所述第二设备发送第二查询请求,所述第二查询请求用于查询所述第二设备上是否有媒体资产变更;
44.接收所述第二设备发送的第二同步消息,所述第二同步消息是所述第二设备接收到所述第二查询请求,并判断有第二媒体资产变更后向所述第一设备发送的,所述第二同步消息携带有所述第二设备的第二媒体资产变更内容,所述第二媒体资产变更内容包括发生变更的第二媒体资产和所述第二媒体资产变更对应的动作;所述处理单元还用于:根据所述第二同步消息,生成第三同步记录,所述第三同步记录包括第三同步节点、第三更改列表和第三设备列表,其中,所述第三同步节点中包括第三同步节点id,第三同步时间戳、第
三父同步节点标识、第三同步变更内容和第三同步设备中的一个或多个,其中,所述第三同步节点id用于标识三数据同步;第三更改列表包括第三更改列表id,所述第二设备的第二媒体资产变更内内容;所述第三设备列表包括第三设备列表id,和所述第二设备的设备id;
45.所述处理单元还用于:移除所述第一设备列表id中的所述第二设备的设备id。
46.结合第三方面,在第三方面的某些实现方式中,所述第一设备列表中的设备id为空,所述处理单元删除所述第一设备列表。
47.结合第三方面,在第三方面的某些实现方式中,当所述第一同步节点为根(root)节点时,删除所述根节点和所述第一更改列表,与所述根节点的相邻同步节点成为新的根节点。
48.结合第三方面,在第三方面的某些实现方式中,所述第三同步节点为顶(top)节点,所述顶节点和所述根节点之间的节点为中间(middle)节点。
49.结合第三方面,在第三方面的某些实现方式中,当所述第一设备与所述第二设备的数据同步过程异常终止时,所述处理单元还用于:创建临时中间节点,所述临时中间节点中包含临时状态标识,所述临时中间节点用于保存未完成数据同步的同步数据。
50.结合第三方面,在第三方面的某些实现方式中,在所述第一数据同步时,所述收发单元还用于接收所述第二设备发送的第一哈希值,所述第一哈希值是所述第二设备根据所述第一媒体资产变更内容进行的哈希运算得到的,所述第一同步消息包括所述第一哈希值;
51.所述处理单元还用于根据所述第一更改列表内容进行哈希计算,得到第二哈希值;当所述处理单元判断所述第一哈希值与所述第二哈希值相等时,所述处理单元确定所述本次数据同步成功。
52.第四方面,提供了一种设备,所述设备为第二设备,包括:收发单元,用于接收第一设备发送的第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;处理单元,用于根据所述第一查询请求,确定有第一媒体资产变更,向所述第一设备发送第一同步消息,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作。
53.结合第四方面,在第四方面的某些实现方式中,所述第二设备上的所述第一媒体资产发生变更,所述处理单元还用于新增第一更改列表;所述收发单元还用于:向所述第一设备发送第三查询请求,所述第三查询请求用于查询所述第一设备上是否有媒体资产变更;
54.接收所述第一设备发送的第一反馈消息,所述第一反馈消息是所述第一设备在接收到所述第三查询请求,并判断所述第一设备上没有媒体资产变更后向所述第二设备发送的,所述第一反馈消息用于标识所述第一设备上没有发生媒体资产变更;所述处理单元还用于:
55.根据所述第一反馈消息和所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、所述第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的媒体资产和所述媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的
设备。
56.结合第四方面,在第四方面的某些实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第一设备的设备id。
57.结合第四方面,在第四方面的某些实现方式中,所述第一同步变更内容包括第二设备的媒体资产变更内容,所述第一同步设备包括所述第一设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第二设备的媒体资产变更内容的索引,所述第一同步设备中包括与第一设备相关的索引,所述第二设备的媒体资产变更内容的索引用于查找所述第二设备的媒体资产变更内容,所述与第一设备相关的索引用于查找与所述第一设备相关的信息。
58.结合第四方面,在第四方面的某些实现方式中,所述处理单元具体用于:根据所述第一查询请求和第二设备上的同步记录,判断有第一媒体资产变更;或者,根据所述第一查询请求和第二设备上的更改列表,判断有第一媒体资产变更。
59.结合第四方面,在第四方面的某些实现方式中,所述第一同步消息包括第一哈希值,所述第一哈希值是所述处理单元根据所述第一媒体资产变更内容进行哈希运算得到的。
60.第五方面,提供了一种装置,包括处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述装置执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
61.第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,实现上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
62.第七方面,提供了一种芯片,包括处理器和接口;所述处理器用于读取指令以执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
63.可选地,所述芯片还可以包括存储器,所述存储器中存储有指令,处理器用于执行存储器中存储的指令或源于其他的指令。
64.第八方面,提供了一种移动分布式系统,所述系统包括具有实现上述第一方面的各方法及各种可能设计的功能的装置和具有实现上述第二方面的各方法及各种可能设计的功能的装置。
附图说明
65.图1是本技术实施例的操作系统的一种示意性结构框图;
66.图2是本技术实施例的一种应用场景的示意图;
67.图3a是本技术实施例的分布式系统一致性的要求的示意图;
68.图3b是本技术实施例的分布式系统一致性的要求的示意图;
69.图3c是本技术实施例的分布式系统一致性的要求的示意图;
70.图4a是本技术实施例的同步记录的示意性框图;
71.图4b是本技术实施例的同步记录的示意性框图;
72.图4c是本技术实施例的同步记录的示意性框图;
73.图5a是本技术实施例的同步记录的示意性框图;
74.图5b是本技术实施例的同步记录的示意性框图;
75.图5c是本技术实施例的同步记录的示意性框图;
76.图6a是本技术实施例的同步记录的示意性框图;
77.图6b是本技术实施例的同步记录的示意性框图;
78.图6c是本技术实施例的同步记录的示意性框图;
79.图7是本技术实施例的设备a与其他设备已经进行了数据同步和设备b与其他设备已经进行了数据同步的示意性框图;
80.图8是本技术实施例的设备b有媒体资产变更时的示意性框图;
81.图9是本技术实施例的一种移动分布式系统数据同步的方法的示意性流程图;
82.图10是本技术实施例的一种移动分布式系统数据同步的方法的示意性流程图;
83.图11是本技术实施例的设备a与设备b数据同步的示意性框图;
84.图12是本技术实施例的设备a有媒体资产变更时的示意性框图;
85.图13是本技术实施例的一种移动分布式系统数据同步的方法的示意性流程图;
86.图14是本技术实施例的一种移动分布式系统数据同步的方法的示意性流程图;
87.图15是本技术实施例的设备a与设备b数据同步的示意性框图;
88.图16是本技术实施例的设备b有媒体资产变更时的示意性框图;
89.图17是本技术实施例的一种移动分布式系统数据同步的方法的示意性流程图;
90.图18是本技术实施例的设备a与设备b数据同步的示意性框图;
91.图19是本技术实施例的移动分布式系统有状态数据同步结构示意性框图;
92.图20示出了本技术实施例的装置的示意性框图;
93.图21为本技术提供的一种终端设备的结构示意图。
具体实施方式
94.下面将结合附图,对本技术中的技术方案进行描述。
95.为了更好地理解本技术,下面先对本技术出现的术语进行说明。
96.操作系统(operating system,os):管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。常见的操作系统有:ios操作系统、android操作系统和microsoft windows系列操作系统等,其中,ios操作系统是由苹果公司开发的手持设备操作系统,android操作系统是一种基于linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,microsoft windows系列操作系统是在微软给ibm机器设计的ms-dos的基础上设计的
图形操作系统。
97.下面以android操作系统为例,对操作系统架构进行简单说明。如图1所示,图1示出了一种android操作系统的示意性框图。android操作系统同其它操作系统一样,采用了分层的架构,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
98.应用程序层可以包括一系列应用程序包。
99.如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。
100.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
101.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
102.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
103.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
104.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
105.电话管理器用于提供设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
106.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
107.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
108.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
109.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
110.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
111.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
112.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
113.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
114.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
115.2d图形引擎是2d绘图的绘图引擎。
116.数据库:一个按数据结构来存储和管理数据的计算机软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库是存放数据的仓库,它的存储空间很大,可以存放百万条、千万条、上亿条数据。数据库中的数据按照一定的规则存放,数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。
117.数据库中存储有元数据(metadata),元数据为描述数据的数据(data about data),又称中介数据、中继数据,主要是描述数据属性(property)的信息,如描述数据的内容、覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等信息,是数据和数据用户之间的桥梁。元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。元数据可以为数据的多种属性信息,如数据的名称、数据的大小、数据的数据类型、数据的长度、数据的字段、数据的位置、数据的拥有者等。
118.应理解,本技术实施例中的数据同步是指元数据的同步,即设备之间同步更改的数据的属性信息,如存储位置等信息,具体的数据可以不进行同步。
119.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
120.本技术实施例的技术方案可以应用于各种通信系统,例如:全球移动通信(global system for mobile communications,gsm)系统、码分多址(code division multiple access,cdma)系统、宽带码分多址(wideband code division multiple access,wcdma)系统、通用分组无线业务(general packet radio service,gprs)、长期演进(long term evolution,lte)系统、lte频分双工(frequency division duplex,fdd)系统、lte时分双工(time division duplex,tdd)、通用移动通信系统(universal mobile telecommunication system,umts)、全球互联微波接入(worldwide interoperability for microwave access,wimax)通信系统、第五代(5th generation,5g)系统或新无线(new radio,nr),此外,还可以适用于使用后续的演进系统,如第六代6g通信系统、甚至更高级的第七代7g通信系统等。
121.本技术实施例中的终端设备也可以称为:用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
122.终端设备可以是无线终端也可以是有线终端,无线终端可以是指向用户提供语音和/或其他业务数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(radio access network,ran)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personal communication service,pcs)电话、无绳电话、会话发起协议(session initiation protocol,sip)话机、
无线本地环路(wireless local loop,wll)站、个人数字助理(personal digital assistant,pda)等设备。无线终端也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobile station)、移动台(mobile)、远程站(remote station)、远程终端(remote terminal)、接入终端(access terminal)、用户终端(user terminal)、用户代理(user agent)、用户设备(user device or user equipment),移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车载设备、可穿戴设备,5g网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,plmn)中的终端设备等,本技术实施例对此并不限定。
123.作为示例而非限定,在本技术实施例中,可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
124.此外,在本技术实施例中,终端设备还可以是物联网(internet of things,iot)系统中的终端设备,iot是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
125.而如上介绍的各种终端设备,如果位于车辆上(例如放置在车辆内或安装在车辆内),都可以认为是车载终端设备,车载终端设备例如也称为车载单元(on-board unit,obu)。
126.本技术实施例中,终端设备还可以包括中继(relay)。或者理解为,能够与基站进行数据通信的都可以看作终端设备。
127.下面对本技术实施例的一种应用场景进行介绍,图2示出了本技术实施例的一种应用场景100的示意图。在图2中包括终端设备110、终端设备120、终端设备130和终端设备140。其中,该终端设备110、该终端设备120、该终端设备130和该终端设备140组成了移动分布式系统。
128.图2中的终端设备可以是智能手机,也可以是笔记本电脑,还可以是车载电脑等其他终端设备,图1所示的移动分布式系统中包括的终端设备可以是上述各种形式的终端设备。
129.应理解,图2所示的移动分布式系统中还可以包括更多的终端设备。本技术实施例在图中不再一一示出。
130.该移动分布式系统具备以下特点:
131.移动分布式系统是对等结构的分布式,系统成员设备是平等的,不存在主从关系;
132.移动分布式系统由手机、手表、tv、车机、音响等智能终端设备组成,这些终端设备
是移动分布式系统的成员设备;
133.移动分布式系统是松散系统,不要求系统成员设备实时在线;
134.移动分布式系统的应用、服务、数据等资源分散部署在不同的系统成员设备上;系统成员设备可用的资源包含本地资源和分布式资源,每个成员设备保持系统数据信息的同步;
135.移动分布式系统成员设备在线时,在线的成员设备可以分享本地资源(本设备的应用、服务、数据等资源)给移动分布式系统中的其它成员设备;同时用户可通过在线的成员设备无感的使用分布式资源(移动分布式系统中其他成员设备的应用、服务、数据等资源);
136.移动分布式系统成员设备离线时,该离线的成员设备的用户仍然可以使用该离线设备的本地资源(如本设备的应用、服务、数据等资源);
137.移动分布式系统成员设备重新上线后,重新上线的成员设备可以根据本地数据资源状态(本地数据资源状态为本地所记录的本地数据资源的变化)分享本地资源给移动分布式系统中的其他成员设备,并且分布式系统的其他成员设备也可以根据其他成员设备的本地数据资源状态将数据资源分享给重新上线的成员设备;
138.移动分布式系统的成员设备通过分布式中间件交互,其中分布式中间件用于实现分布式系统各成员设备之间的交互,如无线网络,实现本地数据资源和分布式数据资源的一致性、本地数据资源和分布式数据资源的可用性、成员设备全状态(在线/离线)下的资源有效性/容错性。
139.其中,一致性、可用性和分区容错性是分布式系统(传统分布式系统和移动分布式系统)数据同步需要满足的要求。下面分别进行介绍:
140.分区容错:大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是区间之间会出现失去连接,通信可能存在失败的情况。
141.一致性是指写操作之后的读操作,必须返回该值。图3具体说明一致性的要求,图3中g1和g2分别为分布式系统的两台服务器。图3a中,分布式系统某条记录是v0,用户向g1发起一个写操作,将其改为v1。接下来,用户的读操作就会得到v1,如图3a所示。
142.用户有可能向g2发起读操作,由于g2的值没有发生变化,因此返回的是v0。g1和g2读操作的结果不一致,这就不满足一致性了,如图3b所示。
143.为了让g2也能变为v1,就要在g1写操作的时候,让g1向g2发送一条消息,要求g2也改成v1。这样当用户向g2发起读操作,也能得到v1,如图3c所示。
144.可用性是指只要收到用户的请求,服务器就必须给出回应。用户可以选择向g1或g2发起读操作。不管是哪台服务器,只要收到请求,就必须告诉用户,到底是v0还是v1,否则就不满足可用性。
145.应理解,移动分布式系统包括的设备可以是可移动的终端设备,也可以包括固定的不可移动的终端设备。移动分布式系统根据其结构特点还可以称为对等式分布式系统。
146.传统分布式系统一般是主从结构;传统分布式系统由多个服务器组成;传统分布式系统要求系统成员设备实时在线等。由此可见,移动式分布式系统不同于传统分布式系统。
147.传统分布式系统数据同步一般采用两种标准化的数据同步协议,分别是raft协议
和paxos协议。raft协议是经典分布式一致性算法,强leader型算法。每个节点有“主节点”、“候选节点”、“从节点”三个状态,可以在三个状态之间变换。客户端只能从主节点写数据,从节点里读数据。它的吞吐量基本就是leader的吞吐量,它无法抵御节点恶意篡改数据的攻击。raft协议只支持主从结构分布式,支持分布式一致性与可用性,在连接状态时,支持分区容错性,在断开状态时,服务器不提供本地服务。移动分布式系统是对等结构分布式,要求成员设备离线时仍然可用,如手机断网时仍然可以拍照、编辑图片等。所以raft不满足移动分布式系统成员设备离线状态时保持本地资源可用和本地资源有效性的诉求。
148.paxos协议算法能提供不同场合不同种类的一致性算法。paxos协议把每次数据请求比喻成一次提案(proposal),每个提案都有一个独立的编号,提案会转发到提交者(proposer)来提交,提案必须经过投票委员会(quorum)接受才会生效,投票委员会中的节点叫做acceptor。角色分为proposers,acceptors(允许身兼数职):proposers提出提案,提案信息包括提案编号和提议的value;acceptor收到提案后可以接受(accept)提案。若提案获得多数acceptors的接受,则称该提案被批准(chosen)。paxos支持对等结构分布式,但不支持异步同步,成员重新上线后,必须无条件和分布式系统保持数据一致。移动分布式系统成员设备重新上线后,要求能够上传本地数据资源和本地数据资源状态,如手机断网时拍摄的照片、编辑的图片等信息在接入系统后,能够分享给其他成员设备。所以paxos不满足移动分布式系统成员设备重新上线时保持本地数据资源一致性和本地数据资源有效性/容错性的诉求。
149.paxos的改进方法fast paxos,multi paxos提供主从分布式系统,部分支持异步同步(这里所说的异步同步是指数据同步不是实时同步),和raft类似,不支持对等结构分布式,不满足移动分布式系统成员设备离线状态时保持本地资源可用和本地资源有效性的诉求,且未考虑分区容错的情况。
150.有鉴于此,本技术提出了一种移动分布式系统数据同步的方法和终端设备,该方法用于实现移动分布式系统的数据同步。
151.移动分布式操作系统数据同步方法处理的目标数据主要包括同步记录。其中,同步记录(synchronous recording)包括同步节点,更改列表(change list),设备列表(device list)。同步记录可以存储于数据库,文件系统,内存中等。
152.同步节点:每次数据批量同步的时候会形成一条同步记录节点。一条同步记录包括一个同步节点。该同步节点包含同步节点标识(identity document,id)(以下简称同步节点id,用于标识本次数据同步,区别于其他时间的数据同步)、同步时间戳(本次数据同步的发生时间)、父同步节点标识id(上一次数据同步的同步id)、本次同步变更内容、本次同步的设备。
153.更改列表:记录每次媒体资产的变更内容,一旦生成则不可变更,该媒体资产的变更可以是设备本身媒体资产的变更,如设备a录制了音频a,则设备a上的更改列表会记录设备a录制音频a;该媒体资产的变更也可以是进行同步的设备的媒体资产的变更,如设备a与设备b进行数据同步,设备b创建了音频b,则设备a上的更改列表会记录音频b;更改列表包括更改列表id和媒体资产变更内容,其中,所述媒体资产变更内容包括发生变更的媒体资产和媒体资产变更对应的动作。其中,更改列表id用于标识本次媒体资产更改,区别于其他时间的媒体资产更改,媒体资产指的是设备上的多种不同格式的文件,如音频、视频、图片
等文件。媒体资产对应的动作可以是创建、修改、删除、移动等常规操作日志(创建、修改、删除、移动等都属于一种日志),也可以是扩展属性的变更操作日志,如修改文件大小的变更操作日志,或者其他类型的日志,如更改文件访问权限的日志。在更改列表中,还可以包括更改的内容的属性信息,例如,更改内容为创建图片a,则更改内容还包括该图片a的大小,格式,存储路径,作者,创建时间等多种属性信息。更改列表是每个设备上自身存在的记录媒体资产变更的列表,更改列表可以存储于数据库,文件系统,内存中等。
154.设备列表:记录进行本次数据同步的设备或节点,设备列表可以包括:设备列表id和设备id。设备列表id用于标识本次数据同步的设备列表,区别于其他时间数据同步的设备列表,设备id用于标识设备,不同设备的设备标识不同。
155.对同步记录进行的操作包括顶(top)节点更新、根(root)节点更新、设备列表删除、临时中间(middle)节点创建四类操作。
156.top节点更新:新的数据同步发生时,创建新的top节点,原top节点蜕变为中间节点。下面通过图4具体说明top节点更新过程。如图4所示,设备d首次进行数据批量同步时会创建根root节点,新的数据同步发生时,创建top节点,top节点与root节点之间的节点为中间节点。
157.如设备d在第一时刻与设备a进行数据同步,示例性的,本次数据同步为设备d第一次进行的数据同步,同步的内容为同步设备a上的文件a。则设备d创建root节点,如图4a所示。
158.root节点包括以下信息:
159.同步id:s
x

160.时间戳:第一时刻;
161.同步父id:空;其中,同步父id是指本次数据同步的相邻的上一次数据同步的同步节点标识,因为本次数据同步为设备d第一次进行的数据同步,所以同步父id为空。
162.本次同步变更内容:文件a的索引;
163.本次同步的设备:设备a的索引。
164.如设备d在第二时刻与设备b进行数据同步,示例性的,本次数据同步为设备d第二次进行的数据同步,同步的内容为同步设备b上的文件b。则设备d创建新的top节点,如图4b所示。
165.新的top节点包括以下信息:
166.同步id:sy;
167.时间戳:第二时刻;
168.同步父id:s
x

169.本次同步变更内容:文件b的索引;
170.本次同步的设备:设备b的索引。
171.如设备d在第三时刻与设备c进行数据同步,示例性的,本次数据同步为设备d第二次进行的数据同步,同步的内容为同步设备c上的文件c。则设备d创建新的top节点,原top节点sy蜕变为中间节点,如图4c所示。
172.新的top节点包括以下信息:
173.同步id:s
y 1

174.时间戳:第三时刻;
175.同步父id:sy;
176.本次同步变更内容:文件c的索引;
177.本次同步的设备:设备c的索引。
178.应理解,在同步节点列表包括本次同步变更内容中还可以记录本次同步变更内容的属性信息,例如,本次同步内容为创建图片a,则更改内容还包括该图片a的大小,格式,存储路径等多种属性信息。
179.还应理解,本次同步变更内容中可以记录本次同步变更的具体内容,本次同步的设备中可以记录本次同步的设备的标识id。
180.还应理解,本次同步变更内容和本次同步的设备中记录的可以是更改列表的索引和设备列表的索引,根据该更改列表的索引和该设备列表的索引可以查找到本次数据同步对应的更改列表和设备列表。如本次同步变更内容为更改列表存储位置的指针,根据该指针可以指向该更改列表,本次同步的设备可以是设备列表存储位置的指针,根据该指针可以指向该设备列表。
181.还应理解,本次同步变更内容中可以记录本次同步变更内容的索引,本次同步的设备中可以记录与本次同步的设备的相关的索引,本次同步变更内容的索引用于查找本次媒体资产变更内容,与本次同步的设备的相关的索引用于查找与本次同步的设备相关的信息。
182.device list节点删除:如果中间节点设备列表中设备减为零,可以删除当前设备列表。
183.下面通过图5具体说明设备列表删除过程。如图5所示,移动分布式系统包括设备a、设备b、设备c和设备d,设备a与该移动分布式系统包括的其他设备已经进行了数据同步,在设备a上的同步记录中已经创建了同步节点、更改列表和设备列表,如图5a所示,其中同步节点中包括:
184.root节点s
x

185.root节点s
x
对应的更改列表包括:
186.更改列表id:c
x

187.root节点对应的设备列表包括:
188.设备列表id:d
x

189.中间节点sy,
190.中间节点sy对应的更改列表包括:
191.更改列表id:cy;
192.中间节点sy对应的设备列表包括:
193.设备列表id:dy,
194.设备id:设备d;
195.top节点s
y 1

196.top节点s
y 1
对应的更改列表包括:
197.更改列表id:c
y 1

198.top节点s
y 1
对应的设备列表包括:
199.设备列表id:d
y 1

200.设备id:设备b和设备c。
201.当前,设备d数据发生变化,设备d需要与设备a进行数据同步,设备a上的同步记录中会产生新的top节点s
y 2
,原top节点s
y 1
蜕变为中间节点,
202.top节点s
y 2
对应的更改列表包括:
203.更改列表id:c
y 2

204.top节点s
y 2
对应的设备列表包括:
205.设备列表id:d
y 2

206.设备id:设备d。
207.设备a与设备d完成本次数据同步后,可以删除中间节点sy对应的设备列表dy中的设备d,如图5b所示,保留与设备d进行数据同步的最新的设备列表的记录,有助于设备a下次与设备d进行数据同步时可以更快确定前一次的数据同步的内容,并且设备a与设备d进行数据同步的信息会记录在更改列表中,因此删掉设备列表dy中的设备d不会对中间节点sy进行的数据同步产生任何影响。
208.当删除设备列表dy中的设备d后,设备列表dy中设备减为零,可以删除当前设备列表dy,如图5c所示。
209.root节点更新:root节点设备列表中设备减为零,删除本root节点,相邻中间节点成为新root节点。
210.下面通过图6具体说明根节点更新过程。如图6所示,移动分布式系统包括设备a、设备b、设备c和设备d,设备a与该移动分布式系统包括的其他设备已经进行了数据同步,在设备a上的同步记录中已经创建了同步节点、更改列表和设备列表,如图6a所示,其中同步节点中包括:
211.root节点s
x

212.root节点s
x
对应的更改列表包括:
213.更改列表id:c
x

214.root节点对应的设备列表包括:
215.设备列表id:d
x

216.设备id:设备d;
217.中间节点sy,
218.中间节点sy对应的更改列表包括:
219.更改列表id:cy;
220.中间节点sy对应的设备列表包括:
221.设备列表id:dy,
222.设备id:设备b;
223.top节点s
y 1

224.top节点s
y 1
对应的更改列表包括:
225.更改列表id:c
y 1

226.top节点s
y 1
对应的设备列表包括:
227.设备列表id:d
y 1

228.设备id:设备c。
229.当前,设备d数据发生变化,设备d需要与设备a进行数据同步,设备a上的同步记录中会产生新的top节点s
y 2
,原top节点s
y 1
蜕变为中间节点,top节点s
y 2
对应的更改列表包括:
230.更改列表id:c
y 2

231.top节点s
y 2
对应的设备列表包括:
232.设备列表id:d
y 2

233.设备id:设备d。
234.设备a与设备d完成本次数据同步后,可以删除根节点s
x
对应的设备列表d
x
中的设备d,如图6b所示。当删除设备列表d
x
中的设备d后,设备列表d
x
中设备减为零,可以删除根节点s
x
,相邻的中间节点sy为新的根节点,如图6c所示,其中,删除根节点只是删除了根节点的id,但根节点包括的内容如同步时间戳、同步父id、本次同步变更内容、本次同步的设备等还保留。
235.临时中间节点创建:数据同步过程异常终止,创建临时中间节点。数据同步过程异常终止可以是同步数据出错,数据同步过程终止;也可以是进行数据同步的设备突然发生故障,数据同步过程终止。在数据同步过程异常终止时,可标记原进行数据同步的top节点为临时中间节点,临时中间节点中包含临时状态标识,临时中间节点用于保存未完成数据同步的同步数据,当再次数据同步完成后,可以删除临时中间节点。
236.下面,以两个设备之间的数据同步为例,对本技术的移动分布式系统有状态数据同步方法进行说明。
237.实施例一主要描述当移动分布式系统中的设备a没有数据变更,设备b有数据的变更时,设备a与设备b如何进行数据同步。
238.移动分布式系统包括设备a与设备b,设备a与该移动分布式系统包括的其他设备已经进行了数据同步,设备b也与该移动分布式系统包括的其他设备已经进行了数据同步,具体如图7所示,图7是本技术实施例的设备a与其他设备已经进行了数据同步和设备b与其他设备已经进行了数据同步的示意性框图。
239.在设备a上的同步记录中已经创建了多个同步节点、多个更改列表和多个设备列表,如:
240.root节点s
x
,root节点s
x
对应的更改列表包括:更改列表id:c
x
;root节点的同步记录对应的设备列表包括:设备列表id:d
x

241.中间节点sy,中间节点sy对应的更改列表包括:更改列表id:cy;中间节点的同步记录对应的设备列表包括:设备列表id:dy;
242.top节点s
y 1
,top节点s
y 1
的同步记录对应的更改列表包括:更改列表id:c
y 1
;top节点s
y 1
的同步记录对应的设备列表包括:设备列表id:d
y 1
,设备id:设备d(设备id为设备d表示本次数据同步是设备a同步了设备d的数据)。
243.在设备b上的同步记录中已经创建了多个同步节点、多个更改列表和多个设备列表,如:
244.root节点s
x
,root节点s
x
对应的更改列表包括:更改列表id:c
x
;root节点对应的设备列表包括:设备列表id:d
x

245.中间节点sy,中间节点sy对应的更改列表包括:更改列表id:cy;中间节点对应的设备列表包括:设备列表id:dy;
246.top节点s
y 1
,top节点s
y 1
对应的更改列表包括:更改列表id:c
y 1
;top节点s
y 1
的同步记录对应的设备列表包括:设备列表id:d
y 1
,设备id:设备d(设备id为设备d表示本次数据同步是设备b同步了设备d的数据)。
247.当设备b发生媒体资产变更时,如设备b下载音频b,设备b在更改列表中新增更改列表,如新增更改列表id:c
y 2
,更改列表c
y 2
的内容为下载音频b,具体如图8所示,图8是本技术实施例的设备b有媒体资产变更时的示意性框图。
248.应理解,该设备b可以是离开移动分布式系统时发生的数据变更,也可以是在处于该移动式分布式系统中时发生的数据变更,处于该移动式分布式系统即设备b没有离开移动分布式系统,如用户在家庭内构建了移动分布式系统,该移动分布式系统包括终端设备1、终端设备2和终端设备3,位于该移动式分布式系统指终端设备位于家庭内。
249.下面结合图9详细说明本技术提供的一种移动分布式系统数据同步的方法,图9是本技术实施例的一种移动分布式系统数据同步的方法200的示意性流程图,该方法200可以应用在图1所示的场景中,当然也可以应用在其他场景中,本技术实施例在此不作限制。
250.还应理解,在本技术实施例中,以设备a(作为第一设备)和设备b(作为第二设备)作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于设备a和设备b的芯片、芯片系统、或处理器等。
251.如图9所示,图9中示出的方法200可以包括s201至s206。下面结合图9详细说明方法200中的各个步骤。
252.s201,设备b的媒体资产发生变更,设备b新增第一更改列表,第一更改列表包括第一更改列表id和设备b上的媒体资产变更内容。
253.s202,设备a向设备b发送第一查询请求,该第一查询请求用于查询设备b上是否有媒体资产变更。
254.s203,设备b接收设备a发送的第一查询请求。
255.s204,该设备b根据该第一查询请求,确定有第一媒体资产变更,向该设备a发送第一同步消息,该第一同步消息携带有该设备b的第一媒体资产变更内容,该第一媒体资产变更内容包括发生变更的第一媒体资产和该第一媒体资产变更对应的动作,如第一同步消息包括设备b下载音频b,或者该第一同步消息中携带的第一媒体资产变更内容为:下载音频b,该第一同步消息还可以携带第一媒体资产变更内容的元数据,即音频b的元数据。其中,发生变更的第一媒体资产为音频b,第一媒体资产变更对应的动作为下载。
256.s205,设备a接收设备b发送的该第一同步消息。
257.s206,该设备a根据该第一同步消息,生成第一同步记录,其中,该第一同步记录包括第一同步节点、第一更改列表和第一设备列表,该第一同步节点用于记录第一数据同步的信息,该第一更改列表用于记录该第一数据同步中发生变更的第一媒体资产和该第一媒体资产变更对应的动作,该第一设备列表用于记录该第一数据同步的设备。
258.应理解,该第一数据同步,可以理解为设备a接收到第一同步消息后,生成第一同步记录的过程,就是一次数据同步。
259.通过该设备a向该设备b发送该第一查询请求;该设备b在接收到该第一查询请求,
并判断有第一媒体资产变更后向该设备a发送该第一同步消息,该设备a根据该第一同步消息,生成第一同步记录,其中,该第一同步记录包括第一同步节点、第一更改列表和第一设备列表,实现了移动分布式系统的异步同步。
260.应理解,在设备a向设备b发送第一查询请求时,设备b也可以向设备a发送第三查询请求,下面结合图10详细说明本技术提供的一种移动分布式系统数据同步的方法,图10是本技术实施例的一种移动分布式系统数据同步的方法300的示意性流程图,该方法300可以应用在图1所示的场景中,当然也可以应用在其他场景中,本技术实施例在此不作限制。
261.还应理解,在本技术实施例中,以设备a和设备b作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于设备a和设备b的芯片、芯片系统、或处理器等。
262.如图10所示,图10中示出的方法300可以包括s301至s306。下面结合图10详细说明方法300中的各个步骤。
263.s301(即s201),设备b的媒体资产发生变更,设备b新增第一更改列表,第一更改列表包括第一更改列表id和设备b上的媒体资产变更内容。
264.s302,设备b向设备a发送第三查询请求,该第三查询请求用于查询设备a上是否有媒体资产变更。
265.s303,设备a接收设备b发送的第三查询请求。
266.s304,该设备a根据该第三查询请求,确定没有媒体资产变更,向该设备b发送第一反馈消息,该第一反馈消息用于告知该设备b设备a上没有媒体资产变更。
267.s305,设备b接收设备a发送的该第一反馈消息。
268.s306,该设备b根据该第一反馈消息和第一同步消息,生成第一同步记录(可以理解为是设备b上的第一同步记录),其中,该第一同步消息为该设备b向该设备a发送的第一同步消息,该第一同步消息携带有该设备b的第一媒体资产变更内容,该第一媒体资产变更内容包括发生变更的第一媒体资产和该第一媒体资产变更对应的动作,该第一同步记录包括第一同步节点、第一更改列表和第一设备列表,该第一同步节点用于第一数据同步的信息;该第一更改列表用于记录第一数据同步中发生变更的媒体资产和该媒体资产变更对应的动作,该第一更改列表即设备b在s301中新增的第一更改列表,此时由于设备a上没有媒体资产变更,所以此时第一更新列表不会增加新的内容;该第一设备列表用于记录该次数据同步的设备。
269.应理解,该第一数据同步,可以理解为设备b接收到第一反馈消息后,在设备b上生成第一同步记录的过程,就是一次数据同步。
270.下面结合图11具体说明设备a和设备b生成第一同步记录的过程。图11是本技术实施例的设备a与设备b数据同步的示意性框图。
271.在图11中,左边的设备为设备a,设备a上生成第一同步节点,第一同步节点为top节点,原top节点sy 1变为中间节点,top节点包括以下信息中的一个或多个:第一同步节点标识s
y 2
、第一同步时间戳第m时刻、第一父同步节点标识s
y 1
、第一同步变更内容和第一同步设备。
272.可选的,该第一同步变更内容包括设备b的媒体资产变更内容,该第一同步设备包括该设备b的设备id;或者,该第一同步变更内容中包括第一更改列表的索引,该第一同步
设备中包括设备a列表的索引,该更改列表的索引用于查找该第一更改列表,该设备列表的索引用于查找该设备a列表;或者,该第一同步变更内容中包括该第一媒体资产变更内容的索引,该第一同步设备中包括与设备b相关的索引,该更改列表的索引用于查找该第一媒体资产变更内容,该与设备b相关的索引用于查找与该设备b相关的信息。
273.应理解,该设备b相关的信息可以包括该设备b的类型、该设备b的称和该设备b的存储大小等一个或多个信息。
274.设备a创建第一更改列表,第一更改列表包括第一更改列表id:c
y 2
,和设备b下载音频b。
275.设备a创建第一设备列表,第一设备列表包括第一设备列表id:d
y 2
,设备id:设备b。
276.设备a根据同步记录的变更状态信息在数据库中进行更改列表对应的元数据的同步。该元数据为设备b下载的音频b的元数据,如下载的音频b的存储位置,下载时间,音频b的大小等属性信息。其中,设备b下载的音频b的元数据,可以是在设备a与设备b进行数据同步时,由设备b将设备b下载的音频b的元数据传递给设备a。
277.右边的设备为设备b,对于设备b来讲,设备a没有数据更新,但是设备b自身有媒体资产更新,并且设备a同步了设备b的媒体资产更新的内容,在设备b上生成第一同步节点,第一同步节点为top节点,原top节点sy 1变为中间节点,top节点包括以下信息中的一个或多个:第一同步节点标识s
y 2
、第一同步时间戳第m时刻、第一父同步节点标识s
y 1
、第一同步变更内容和第一同步设备。
278.设备b在该第一更改列表中c
y 2
,不作任何改变。
279.设备b创建第一设备列表,第一设备列表包括第一设备列表id:d
y 2
,设备id:设备a。
280.应理解,在本技术实施例中,仅以设备a与设备b进行数据同步为例,设备a或者设备b还可以向移动分布式系统中其他所有在线设备发送查询消息。
281.实施例二,主要描述当移动分布式系统中的设备a有媒体资产变更,设备b有媒体资产变更时,设备a与设备b如何进行数据同步,其中设备b有媒体资产变更的过程可以参考图8进行理解。
282.该设备a接收设备b发送的该第一同步消息之前,该设备a上的媒体资产发生变更,如该设备a创建图片a,该设备a新增第二更改列表,该第二更改列表包括第二更改列表id:c
y 2
和该设备a上的媒体资产变更内容:创建图片a,如图12所示,图12是本技术实施例的设备a有媒体资产变更时的示意性框图。
283.下面结合图13详细说明本技术提供的一种移动分布式系统数据同步的方法,图13是本技术实施例的一种移动分布式系统数据同步的方法400的示意性流程图,该方法400可以应用在图1所示的场景中,当然也可以应用在其他场景中,本技术实施例在此不作限制。
284.还应理解,在本技术实施例中,以设备a和设备b作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于设备a和设备b的芯片、芯片系统、或处理器等。
285.如图13所示,图13中示出的方法400可以包括s401至s407。下面结合图13详细说明方法400中的各个步骤。
286.s401(即s201,s301),设备b的媒体资产发生变更,设备b新增第一更改列表,第一更改列表包括第一更改列表id和设备b上的媒体资产变更内容
287.s402,设备a的媒体资产发生变更,设备a新增第二更改列表,第二更改列表包括第二更改列表id和设备a上的媒体资产变更内容。
288.此处s401和s402顺序不做限定。
289.s403,设备a向设备b发送第一查询请求,该第一查询请求用于查询设备b上是否有媒体资产变更。
290.s404,设备b接收设备a发送的第一查询请求。
291.s405,该设备b根据该第一查询请求,确定有第一媒体资产变更,向该设备a发送第一同步消息,该第一同步消息携带有该设备b的第一媒体资产变更内容,该第一媒体资产变更内容包括发生变更的第一媒体资产和该第一媒体资产变更对应的动作,如第一同步消息携带设备b的媒体资产变更内容:下载音频b,该第一同步消息还可以携带第一媒体资产变更内容的元数据。
292.s406,设备a接收设备b发送的该第一同步消息。
293.s407,该设备a根据该第一同步消息,生成第二同步记录,第二同步记录包括第二同步节点、第二更改列表和第二设备列表;该第二同步节点包含第二同步节点id,第二同步时间戳、第二父同步节点标识、第二同步变更内容和第二同步设备中的一个或多个,该第二同步节点id用于标识第二数据同步;在该第二更改列表中,增加设备b的媒体资产变更内容;在该第二设备列表中增加该设备b的设备id。
294.设备a由于存在媒体资产变更,之前已经生成了第二更改列表,因此在与设备b进行数据同步后,设备a的在第二更改列表中新增加设备b的媒体资产变更内容。
295.下面结合图14详细说明本技术提供的一种移动分布式系统数据同步的方法,图14是本技术实施例的一种移动分布式系统数据同步的方法500的示意性流程图,该方法500可以应用在图1所示的场景中,当然也可以应用在其他场景中,本技术实施例在此不作限制。
296.还应理解,在本技术实施例中,以设备a和设备b作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于设备a和设备b的芯片、芯片系统、或处理器等。
297.如图14所示,图14中示出的方法500可以包括s501至s505。下面结合图14详细说明方法500中的各个步骤。
298.s501(即s201,s302,s401),设备b的媒体资产发生变更,设备b新增第一更改列表,第一更改列表包括更改列表id和设备b上的媒体资产变更内容。
299.s502(即s402),设备a的媒体资产发生变更,设备a新增第二更改列表,第二更改列表包括第二更改列表id和设备a上的媒体资产变更内容。
300.此处s501和s502顺序不做限定。
301.s503,设备b向设备a发送第四查询请求,该第四查询请求用于查询设备a上是否有媒体资产变更。
302.s504,设备a接收设备b发送的第四查询请求。
303.s505,该设备a根据该第四查询请求,确定有第一媒体资产变更,向该设备b发送第三同步消息,该第三同步消息携带有该设备a的第一媒体资产变更内容,该第一媒体资产变
更内容包括设备a上发生变更的第一媒体资产和该第一媒体资产变更对应的动作,如第三同步消息包括设备a的媒体资产变更内容:创建图片a,该第三同步消息还可以携带第一媒体资产变更内容的元数据。
304.s506,设备b接收设备a发送的该第三同步消息。
305.s507,该设备b根据该第三同步消息,生成第二同步记录(设备b上的第二同步记录),该第二同步记录包括第二同步节点、该第一更改列表和第二设备列表;该第二同步节点包含第二同步节点id,第二同步时间戳、第二父同步节点标识、第二同步变更内容和第二同步设备中的一个或多个,该第二同步节点id用于标识第二数据同步;在该第二更改列表中,增加第一设备的媒体资产变更内容;在该第二设备列表中增加该第一设备的设备id。
306.下面结合图15具体说明设备a和设备b生成同步记录的过程。图15是本技术实施例的设备a与设备b数据同步的示意性框图。
307.在图15中,左边的设备为设备a,设备a上生成新同步节点,新同步节点为top节点,原top节点s
y 1
变为中间节点,top节点包括以下信息中的一个或多个:同步节点标识s
y 2
、同步时间戳第m时刻、父同步节点标识s
y 1
、同步变更内容和同步设备。
308.该设备a在该更改列表c
y 2
中,增加设备b的媒体资产变更内容,如更改列表内容包括:设备a创建图片a和设备b下载音频b。
309.设备a创建设备列表,设备列表包括设备列表id:d
y 2
,设备id:设备b。
310.设备a根据同步记录的变更状态信息在数据库中进行更改列表对应的元数据的同步。
311.右边的设备为设备b,对于设备b来讲,设备a有媒体资产更新,在设备b上生成新的同步节点,新同步节点为top节点,原top节点s
y 1
变为中间节点,top节点包括以下信息中的一个或多个:同步节点标识s
y 2
、同步时间戳第m时刻、父同步节点标识s
y 1
、同步变更内容和同步设备。
312.该设备b在该更改列表c
y 2
中,增加设备a的媒体资产变更内容,如更改列表内容包括:设备a创建图片a和设备b下载音频b。
313.设备b创建设备列表,设备列表包括设备a列表id:d
y 2
,设备id:设备a。
314.实施例三,主要描述当移动分布式系统中的设备a和设备b已经进行过数据同步后,因为设备b的媒体资产发生变更(如设备b发生数据再次变更时,如设备b下载音频c,设备b在更改列表中新增更改列表,如新增更改列表id:c
y 3
,更改列表c
y 3
的内容为下载音频c,如图16所示)又要进行数据同步时,设备a与设备b如何进行数据同步。
315.下面结合图17详细说明本技术提供的一种移动分布式系统数据同步的方法,图17是本技术实施例的一种移动分布式系统数据同步的方法600的示意性流程图,该方法600可以应用在图1所示的场景中,当然也可以应用在其他场景中,本技术实施例在此不作限制。
316.还应理解,在本技术实施例中,以设备a和设备b作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于设备a和设备b的芯片、芯片系统、或处理器等。
317.如图17所示,图17中示出的方法600可以包括s601至s606。下面结合图17详细说明方法600中的各个步骤。
318.s601,设备b的媒体资产发生变更,设备b新增第三更改列表,第三更改列表包括更
改列表id和设备b上的媒体资产变更内容。
319.s602,设备a向设备b发送第二查询请求,该第二查询请求用于查询设备b上是否有媒体资产变更。
320.s603,设备b接收设备a发送的第二查询请求。
321.s604,该设备b根据该第二查询请求,确定有第二媒体资产变更,向该设备a发送第二同步消息,该第二同步消息携带有该设备b的第二媒体资产变更内容,该第二媒体资产变更内容包括发生变更的第二媒体资产和该第二媒体资产变更对应的动作,如第二同步消息包括设备b下载音频b,该第二同步消息还可以携带第二媒体资产变更内容的元数据。
322.s605,设备a接收设备b发送的该第二同步消息。
323.s606,设备a根据该第二同步消息,生成第三同步记录,该第三同步记录包括第三同步节点、第三更改列表和第三设备列表,该第三同步节点中包括:第三同步节点id,第三同步时间戳、第三父同步节点标识、第三同步变更内容和第三同步设备中的一个或多个,其中,该第三同步节点id用于标识三数据同步;第三更改列表包括第三更改列表id,该第二设备的第二媒体资产变更内内容;该第三设备列表包括第三设备列表id,和该第二设备的设备id。
324.s607,设备a移除该第一设备列表id中的设备b的设备id。
325.应理解,上述方法600描述了设备a与设备b已经进行过一次数据同步,当设备b的媒体资产再次更新时,设备a如何同步设备b,同样,设备b也会同步设备a的数据,只是设备a上没有媒体资产更新,设备b会生成新的同步记录,新的同步记录包括新的节点、第三更改列表和设备列表,设备b移除该第一设备列表id中的设备a的设备id,具体细节可以参考设备a的过程,此处不再赘述。
326.下面结合图18具体说明设备a和设备b生成第三同步记录的过程。图18是本技术实施例的设备a与设备b数据同步的示意性框图。
327.在图18中,左边的设备为设备a,设备a上生成第三同步节点,第三同步节点为top节点,原top节点s
y 2
变为中间节点,top节点包括以下信息中的一个或多个:第三同步节点标识s
y 3
、第三同步时间戳第m 1时刻、第三父同步节点标识s
y 2
、第三同步变更内容和第三同步设备。
328.设备a创建第三更改列表,第三更改列表包括第三更改列表id:c
y 3
,和设备b下载音频c。
329.设备a创建第三设备列表,第三设备列表包括设备a列表id:d
y 3
,设备id:设备b。
330.设备a移除该第一设备列表id中的该设备b的设备id。设备a根据同步记录的变更状态信息在数据库中进行更改列表对应的元数据的同步。
331.设备a根据同步记录的变更状态信息在数据库中进行更改列表对应的元数据的同步。
332.右边的设备为设备b,对于设备b来讲,设备a没有数据更新,但是设备b自身有媒体资产更新,并且设备a同步了设备b的媒体资产更新的内容,在设备b上生成新同步节点,新同步节点为top节点,原top节点s
y 2
变为中间节点,top节点包括以下信息中的一个或多个:同步节点标识s
y 3
、同步时间戳第m 1时刻、父同步节点标识s
y 2
、同步变更内容和同步设备。
333.在该更改列表c
y 3
中,不作任何改变。
334.设备b创建设备列表,设备列表包括设备列表id:d
y 3
,设备id:设备a。
335.设备b移除第四设备列表id中的该设备a的设备id。设备b根据第三同步记录的变更状态信息在数据库中进行更改列表对应的元数据的同步。
336.上述实施例具体描述了在移动式分布式系统中终端设备如何进行数据同步,终端设备进行数据同步时需要考虑数据的安全性,不能使得同步的数据被任意篡改等。本技术实施例还提出了一种移动分布式系统数据同步的方法,该方法实现日志数据块链化和状态加密,保证日志数据防篡改。
337.本技术实施例主要根据哈希算法来实现日志数据块链化和状态加密,保证日志数据防篡改。为了更清楚的理解本技术实施例,下面简单描述哈希算法。
338.哈希算法是将任意长度的二进制字符串映射为定长二进制字符串的映射规则我们称为散列(hash)算法,又叫哈希(hash)算法,而通过原始数据映射之后得到的二进制值称为哈希值。哈希算法主要特点:
339.1.从哈希值不能反向推导原始数据,具有单向计算性,极难逆推;
340.2.对输入数据敏感,哪怕只改了一个bit,最后得到的哈希值完全不相同,具有雪崩效应;
341.3.散列冲突的概率极小,哈希因子key不同,计算出来的哈希值一样的概率极小。
342.图19是本技术实施例的移动分布式系统有状态数据同步结构示意性框图。在不同设备进行数据同步时,数据更改的设备会对更改列表中的每次更改的内容进行哈希运算,得到第一哈希值,并将该第一哈希值发送给进行数据同步的设备,进行数据同步的设备根据同步后的更改列表进行哈希计算,得到第二哈希值,如果该第一哈希值等于该第二哈希值则说明本次数据同步成功,否则不成功。具体参照图19进行说明。
343.为了更清楚的理解本技术实施例,首先对图19中的参数进行解释说明。
344.如图19所示,c1是c2的父节点;
345.f
cn
:表示更改列表表头的内容;
346.f
ln
:表示更改列表的节点内容,如删除图片,删除音乐,创建图片等;
347.nouce:一次性随机数,申请节点生成,即数据更改的设备生成,nouce会加密传递给接收节点,通常在第一次建立连接时,申请节点将nouce传递给接收节点。其中,接收节点为进行数据同步的设备;
348.h
cn
:更改列表表头的哈希值,各个节点独立生成,不传递。
349.h
ln
:更改列表中每个更改记录的哈希值,申请节点生成,明文传递,接收节点验证;
350.change log:每次更改内容。
351.图19所示的节点可以看作请求节点,其中c1是c2的父节点,在请求节点上,父节点c1更改列表表头的哈希值根据式(1)计算:
352.h
c1
=hash(f
c1
,nouce)
ꢀꢀ
(1)
353.更改记录l1的哈希值根据式(2)计算:
354.h
l1
=hash(h
c1
,f
l1
)
ꢀꢀ
(2)
355.更改记录l2的哈希值根据式(3)计算:
356.h
l2
=hash(h
c1
,h
l1
,f
l2
)
ꢀꢀ
(3)
357.更改记录l3的哈希值根据式(4)计算:
358.h
l3
=hash(h
c1
,h
l2
,f
l3
)
ꢀꢀ
(4)
359.更改记录l4的哈希值根据式(5)计算:
360.h
l4
=hash(h
c1
,h
l3
,f
l4
)
ꢀꢀ
(5)
361.更改记录l5的哈希值根据式(6)计算:
362.h
l5
=hash(h
c1
,h
l4
,f
l5
)
ꢀꢀ
(6)
363.其中,节点c1更改列表中每次更改记录ln的哈希因子为c1更改列表表头的哈希值、上一次更改记录l
n-1
的哈希值和ln的更改内容。
364.子节点c2更改列表表头的哈希值根据式(7)计算:
365.h
c2
=hash(h
c1
,h
l5
,f
c2
)
ꢀꢀ
(7)
366.其中,式(7)中的h
l5
为c1节点最后一个节点。
367.子节点c2更改列表中更改记录l6的哈希值根据式(8)计算:
368.h
l6
=hash(h
c2
,f
l6
)
ꢀꢀ
(8)
369.更改记录l7的哈希值根据式(9)计算:
370.h
l7
=hash(h
c1
,h
l6
,f
l7
)
ꢀꢀ
(9)
371.其中,节点c2更改列表中每次更改记录ln的哈希因子为c2更改列表表头的哈希值、上一次更改记录l
n-1
的哈希值和ln的更改内容。
372.请求节点对同步数据块做逐节点的同步状态、同步内容及系统秘钥hash,请求节点计算每次数据同步变更的并传递给接收节点,接收节点解析同步数据时,在更改列表节点中引入保护机制,通过父节点的pre-hash和父节点内容进行hash得到比较和如果等于表示此次同步内容正确,可以进行数据同步;如果不等于表示此次同步内容错误,需要重新进行数据同步。
373.应理解,上述图19所示的本技术实施例可以结合在图4-图19所示的本技术实施例中,即分布式系统数据同步时引入校验机制,确保同步数据的可靠性和安全性。
374.以上结合图1至图19对本技术实施例的一种移动分布式系统数据同步的方法做了详细说明。以下,结合图20至图21对本技术实施例装置进行详细说明。
375.图20示出了本技术实施例的装置800的示意性框图。
376.一些实施例中,该装置700可以为终端设备,也可以为芯片或电路,比如可设置于终端设备的芯片或电路。
377.一些实施例中,该装置700可以为接入网设备,也可以为芯片或电路,比如可设置于接入网设备的芯片或电路。
378.一些实施例中,该装置700可以为核心网设备,也可以为芯片或电路,比如可设置于核心网设备的芯片或电路。
379.一种可能的方式中,该装置700可以包括处理单元710(即,处理器的一例)和收发单元730。一些可能的实现方式中,处理单元710还可以称为确定单元。一些可能的实现方式中,收发单元730可以包括接收单元和发送单元。
380.在一种实现方式中,收发单元730可以通过收发器或者收发器相关电路或者接口电路实现。
381.在一种实现方式中,该装置还可以包括存储单元720。一种可能的方式中,该存储
单元720用于存储指令。在一种实现方式中,该存储单元也可以用于存储数据或者信息。存储单元720可以通过存储器实现。
382.一些可能的设计中,该处理单元710用于执行该存储单元720存储的指令,以使装置700实现如上述方法中终端设备执行的步骤。或者,该处理单元710可以用于调用存储单元720的数据,以使装置700实现如上述方法中终端设备执行的步骤。
383.一些可能的设计中,该处理单元710用于执行该存储单元720存储的指令,以使装置700实现如上述方法中接入网设备执行的步骤。或者,该处理单元710可以用于调用存储单元720的数据,以使装置700实现如上述方法中接入网设备执行的步骤。
384.例如,该处理单元710、存储单元720、收发单元730可以通过内部连接通路互相通信,传递控制和/或数据信号。例如,该存储单元720用于存储计算机程序,该处理单元710可以用于从该存储单元720中调用并运行该计算计程序,以控制收发单元730接收信号和/或发送信号,完成上述方法中终端设备或接入网设备的步骤。该存储单元720可以集成在处理单元710中,也可以与处理单元710分开设置。
385.可选地,若该装置700为终端设备(例如,智能手机,或笔记本电脑),该收发单元730包括接收器和发送器。其中,接收器和发送器可以为相同或者不同的物理实体。为相同的物理实体时,可以统称为收发器。
386.当该装置700为终端设备时,收发单元730在发送信息时可以为发送单元或发射器,收发单元730在接收信息时可以为接收单元或接收器,收发单元可以为收发器,此收发器、发射器或接收器可以为射频电路,当该装置包含存储单元时,该存储单元用于存储计算机指令,该处理器与存储器通信连接,处理器执行存储器存储的计算机指令,使该装置可以执行方法200、方法500或者方法600。其中,处理器可以是一个通用中央处理器(cpu),微处理器,特定应用集成电路(application specific intergrated circuit,asic)。
387.可选地,若该装置700为芯片或电路,该收发单元730包括输入接口和输出接口。
388.当该装置700为芯片时,收发单元730可以是输入和/或输出接口、管脚或电路等。该处理单元710可执行存储单元存储的计算机执行指令,以使该装置可以执行方法200、方法500或者方法600。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
389.作为一种实现方式,收发单元730的功能可以考虑通过收发电路或者收发的专用芯片实现。处理单元710可以考虑通过专用处理芯片、处理电路、处理单元或者通用芯片实现。
390.作为另一种实现方式,可以考虑使用通用计算机的方式来实现本技术实施例提供的通信设备(例如终端设备,或接入网设备)。即将实现处理单元710、收发单元730功能的程序代码存储在存储单元720中,通用处理单元通过执行存储单元720中的代码来实现处理单元710、收发单元730的功能。
391.一些实施例中,装置700可以为第一设备,或设置于第一设备的芯片或电路。当装置700为第一设备,或设置于第一设备的芯片或电路时,收发单元730用于向第二设备发送第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;所述收
发单元730还用于接收第二设备发送的第一同步消息,所述第一同步消息是所述第二设备在接收到所述第一查询请求,并判断有第一媒体资产变更后向所述第一设备发送的,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作;处理单元710,用于根据所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的第一媒体资产和所述第一媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的设备。
392.在一种实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述第一媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第二设备的设备id。
393.在一种实现方式中,所述第一同步变更内容包括第二设备的第一媒体资产变更内容,所述第一同步设备包括所述第二设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第一媒体资产变更内容的索引,所述第一同步设备中包括与第二设备相关的索引,所述第一媒体资产变更内容的索引用于查找所述第一媒体资产变更内容,所述与第二设备相关的索引用于查找与所述第二设备相关的信息。
394.在一种实现方式中,所述第一设备接收第二设备发送的第一同步消息之前,所述第一设备上的媒体资产发生变更,所述处理单元710还用于:新增第二更改列表,所述第二更改列表包括第二更改列表id和所述第一设备上的媒体资产变更内容。
395.在一种实现方式中,所述第一设备接收第二设备发送的第一同步消息后,所述处理单元710还用于:所述第一设备根据所述第一同步消息,生成第二同步记录,所述第二同步记录包括第二同步节点、所述第二更改列表和第二设备列表;所述第二同步节点包含第二同步节点id,第二同步时间戳、第二父同步节点标识、第二同步变更内容和第二同步设备中的一个或多个,所述第二同步节点id用于标识第二数据同步;在所述第二更改列表中,增加第二设备的媒体资产变更内容;在所述第二设备列表中增加所述第二设备的设备id。
396.在一种实现方式中,所述收发单元730还用于:向所述第二设备发送第二查询请求,所述第二查询请求用于查询所述第二设备上是否有媒体资产变更;接收所述第二设备发送的第二同步消息,所述第二同步消息是所述第二设备接收到所述第二查询请求,并判断有第二媒体资产变更后向所述第一设备发送的,所述第二同步消息携带有所述第二设备的第二媒体资产变更内容,所述第二媒体资产变更内容包括发生变更的第二媒体资产和所述第二媒体资产变更对应的动作;所述处理单元710还用于:根据所述第二同步消息,生成第三同步记录,所述第三同步记录包括第三同步节点、第三更改列表和第三设备列表,其中,所述第三同步节点中包括第三同步节点id,第三同步时间戳、第三父同步节点标识、第三同步变更内容和第三同步设备中的一个或多个,其中,所述第三同步节点id用于标识三数据同步;第三更改列表包括第三更改列表id,所述第二设备的第二媒体资产变更内内容;
所述第三设备列表包括第三设备列表id,和所述第二设备的设备id;
397.所述处理单元还用于:移除所述第一设备列表id中的所述第二设备的设备id。
398.在一种实现方式中,所述第一设备列表中的设备id为空,所述处理单元删除所述第一设备列表。
399.在一种实现方式中,当所述第一同步节点为根(root)节点时,删除所述根节点和所述第一更改列表,与所述根节点的相邻同步节点成为新的根节点。
400.在一种实现方式中,所述第三同步节点为顶(top)节点,所述顶节点和所述根节点之间的节点为中间(middle)节点。
401.在一种实现方式中,当所述第一设备与所述第二设备的数据同步过程异常终止时,所述处理单元710还用于:创建临时中间节点,所述临时中间节点中包含临时状态标识,所述临时中间节点用于保存未完成数据同步的同步数据。
402.在一种实现方式中,在所述第一数据同步时,所述收发单元730还用于接收所述第二设备发送的第一哈希值,所述第一哈希值是所述第二设备根据所述第一媒体资产变更内容进行的哈希运算得到的,所述第一同步消息包括所述第一哈希值;所述处理单元710还用于根据所述第一更改列表内容进行哈希计算,得到第二哈希值;当所述处理单元判断所述第一哈希值与所述第二哈希值相等时,所述处理单元确定所述本次数据同步成功。
403.当该装置700配置在或本身即为第一设备时,装置700中各模块或单元可以用于执行上述方法中设备a所执行的各动作或处理过程,这里,为了避免赘述,省略其详细说明。
404.一些实施例中,装置700可以为第二设备,或设置于第二设备的芯片或电路。当装置700为第二设备,或设置于第二设备的芯片或电路时,收发单元730用于接收第一设备发送的第一查询请求,所述第一查询请求用于查询所述第二设备上是否有媒体资产变更;处理单元710用于根据所述第一查询请求,确定有第一媒体资产变更,向所述第一设备发送第一同步消息,所述第一同步消息携带有所述第二设备的第一媒体资产变更内容,所述第一媒体资产变更内容包括发生变更的第一媒体资产和所述第一媒体资产变更对应的动作。
405.在一种实现方式中,所述第二设备上的所述第一媒体资产发生变更,所述处理单元710还用于新增第一更改列表;所述收发单元730还用于:向所述第一设备发送第三查询请求,所述第三查询请求用于查询所述第一设备上是否有媒体资产变更;接收所述第一设备发送的第一反馈消息,所述第一反馈消息是所述第一设备在接收到所述第三查询请求,并判断所述第一设备上没有媒体资产变更后向所述第二设备发送的,所述第一反馈消息用于标识所述第一设备上没有发生媒体资产变更;所述处理单元710还用于:根据所述第一反馈消息和所述第一同步消息,生成第一同步记录,其中,所述第一同步记录包括第一同步节点、所述第一更改列表和第一设备列表,所述第一同步节点用于记录第一数据同步的信息,所述第一更改列表用于记录所述第一数据同步中发生变更的媒体资产和所述媒体资产变更对应的动作,所述第一设备列表用于记录所述第一数据同步的设备。
406.在一种实现方式中,所述第一同步节点包括:第一同步节点标识、第一同步时间戳、第一父同步节点标识、第一同步变更内容和第一同步设备中的一个或多个,其中所述第一同步节点id用于标识所述第一数据同步;所述第一更改列表包括:第一更改列表id和所述第二设备的所述媒体资产变更内容;所述第一设备列表包括:第一设备列表id和所述第一设备的设备id。
407.在一种实现方式中,所述第一同步变更内容包括第二设备的媒体资产变更内容,所述第一同步设备包括所述第一设备的设备id;或者,所述第一同步变更内容中包括第一更改列表的索引,所述第一同步设备中包括第一设备列表的索引,所述更改列表的索引用于查找所述第一更改列表,所述设备列表的索引用于查找所述第一设备列表;或者,所述第一同步变更内容中包括所述第二设备的媒体资产变更内容的索引,所述第一同步设备中包括与第一设备相关的索引,所述第二设备的媒体资产变更内容的索引用于查找所述第二设备的媒体资产变更内容,所述与第一设备相关的索引用于查找与所述第一设备相关的信息。
408.在一种实现方式中,所述处理单元710具体用于:根据所述第一查询请求和第二设备上的同步记录,判断有第一媒体资产变更;或者,根据所述第一查询请求和第二设备上的更改列表,判断有第一媒体资产变更。
409.在一种实现方式中,所述第一同步消息包括第一哈希值,所述第一哈希值是所述处理单元根据所述第一媒体资产变更内容进行哈希运算得到的。
410.当该装置700配置在或本身即为第二设备时,装置700中各模块或单元可以用于执行上述方法中设备b所执行的各动作或处理过程,这里,为了避免赘述,省略其详细说明。
411.图21为本技术提供的一种终端设备800的结构示意图。该终端设备800可以执行上述方法实施例中第一设备和第二设备执行的动作。
412.为了便于说明,图21仅示出了终端设备的主要部件。如图21所示,终端设备800包括处理器、存储器、控制电路、天线以及输入输出装置。
413.处理器主要用于对通信协议以及通信数据进行处理,以及对整个终端设备进行控制,执行软件程序,处理软件程序的数据,例如用于支持终端设备执行上述传输预编码矩阵的指示方法实施例中所描述的动作。存储器主要用于存储软件程序和数据,例如存储上述实施例中所描述的码本。控制电路主要用于基带信号与射频信号的转换以及对射频信号的处理。控制电路和天线一起也可以叫做收发器,主要用于收发电磁波形式的射频信号。输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据以及对用户输出数据。
414.当终端设备开机后,处理器可以读取存储单元中的软件程序,解释并执行软件程序的指令,处理软件程序的数据。当需要通过无线发送数据时,处理器对待发送的数据进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行射频处理后将射频信号通过天线以电磁波的形式向外发送。当有数据发送到终端设备时,射频电路通过天线接收到射频信号,将射频信号转换为基带信号,并将基带信号输出至处理器,处理器将基带信号转换为数据并对该数据进行处理。
415.本领域技术人员可以理解,为了便于说明,图21仅示出了一个存储器和处理器。在实际的终端设备中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本技术实施例对此不做限制。
416.例如,处理器可以包括基带处理器和中央处理器,基带处理器主要用于对通信协议以及通信数据进行处理,中央处理器主要用于对整个终端设备进行控制,执行软件程序,处理软件程序的数据。图21中的处理器集成了基带处理器和中央处理器的功能,本领域技术人员可以理解,基带处理器和中央处理器也可以是各自独立的处理器,通过总线等技术
互联。本领域技术人员可以理解,终端设备可以包括多个基带处理器以适应不同的网络制式,终端设备可以包括多个中央处理器以增强其处理能力,终端设备的各个部件可以通过各种总线连接。所述基带处理器也可以表述为基带处理电路或者基带处理芯片。所述中央处理器也可以表述为中央处理电路或者中央处理芯片。对通信协议以及通信数据进行处理的功能可以内置在处理器中,也可以以软件程序的形式存储在存储单元中,由处理器执行软件程序以实现基带处理功能。
417.示例性的,在本技术实施例中,可以将具有收发功能的天线和控制电路视为终端设备800的收发单元810,将具有处理功能的处理器视为终端设备800的处理单元820。如图21所示,终端设备800包括收发单元810和处理单元820。收发单元也可以称为收发器、收发机、收发装置等。可选的,可以将收发单元810中用于实现接收功能的器件视为接收单元,将收发单元810中用于实现发送功能的器件视为发送单元,即收发单元包括接收单元和发送单元。示例性的,接收单元也可以称为接收机、接收器、接收电路等,发送单元可以称为发射机、发射器或者发射电路等。
418.应理解,本技术实施例中,该处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
419.还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
420.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多
个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
421.本技术实施例还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一实施例中的第一设备执行的步骤,或者第二设备执行的步骤。
422.本技术实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一实施例中的第一设备执行的步骤,或者第二设备执行的步骤。
423.本技术实施例还提供了一种系统芯片,该系统芯片包括:通信单元和处理单元。该处理单元,例如可以是处理器。该通信单元例如可以是通信接口、输入/输出接口、管脚或电路等。该处理单元可执行计算机指令,以使该通信装置内的芯片执行上述本技术实施例提供的第一设备执行的步骤,或者第二设备执行的步骤。
424.可选地,该计算机指令被存储在存储单元中。
425.根据本技术实施例提供的方法,本技术实施例还提供一种通信系统,其包括前述的第一设备和第二设备。
426.本技术中的各个实施例可以独立的使用,也可以进行联合的使用,这里不做限定。
427.另外,本技术的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本技术中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,eprom)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
428.应理解,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或一个以上;“a和b中的至少一个”,类似于“a和/或b”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和b中的至少一个,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
429.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
430.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
431.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
432.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
433.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
434.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
435.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献