sync-app-data-across-devices-overview.md 3.0 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9
# 同应用跨设备数据同步概述


## 场景介绍

跨设备数据同步功能(即分布式功能),指将数据同步到一个组网环境中的其他设备。常用于用户应用程序数据内容在可信认证的不同设备间,进行自由同步、修改和查询。

例如:当设备1上的应用A在分布式数据库中增、删、改数据后,设备2上的应用A也可以获取到该数据库变化。可在分布式图库、备忘录、联系人、文件管理器等场景中使用。

10
不同应用间订阅数据库变化通知,请参考[同设备跨应用数据共享](share-device-data-across-apps-overview.md)实现。
Z
zengyawen 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

根据跨设备同步数据生命周期不同,可以分为:

- 临时数据生命周期较短,通常保存内存中。比如游戏应用产生的过程数据,建议使用分布式数据对象;

- 持久数据生命周期较长,需要保存到存储的数据库中,根据数据关系和特点,选择关系型或者键值型数据库。比如图库应用的各种相册、封面、图片等属性信息,建议使用关系型数据库;图库应用的具体图片缩略图,建议使用键值型数据库。


## 基本概念

在分布式场景中,会涉及多个设备,组网内设备之间看到的数据是否一致称为分布式数据库的一致性。


分布式数据库一致性可以分为强一致性、弱一致性和最终一致性。


- 强一致性:是指某一设备成功增、删、改数据后,组网内设备对该数据的读取操作都将得到更新后的值。对于已改变写的数据的读取,最终都能取得已更新的数据,但不完全保证能立即取得已更新的数据。

- 弱一致性:是指某一设备成功增、删、改数据后,组网内设备可能读取到本次更新后的数据,也可能读取不到,不能保证在多长时间后每个设备的数据一定是一致的。

- 最终一致性:是指某一设备成功增、删、改数据后,组网内设备可能读取不到本次更新后的数据,但在某个时间窗口之后组网内设备的数据能够达到一致状态。


强一致性对分布式数据的管理要求非常高,在服务器的分布式场景可能会遇到。因为移动终端设备的不常在线、以及无中心的特性,所以同应用跨设备数据同步不支持强一致性,只支持最终一致性。


## 跨设备同步访问控制机制

数据跨设备同步时,数据管理基于设备等级和[数据安全标签](access-control-by-device-and-data-level.md#基本概念)进行访问控制。规则为,数据只允许向数据安全标签不高于设备安全等级的设备同步数据,具体访问控制矩阵如下:

41 42 43 44 45 46 47
|设备安全级别|可同步的数据安全标签|
|---|---|
|SL1|S1|
|SL2|S1~S2|
|SL3|S1~S3|
|SL4|S1~S4|
|SL5|S1~S4| 
Z
zengyawen 已提交
48 49

例如,对于类似rk3568、hi3516的开发板设备,设备安全等级为SL1,若创建数据安全标签为S1的数据库,则此数据库数据可以在这些设备间同步;若创建的数据库标签为S2-S4,则不能同步。