提交 8bd168fa 编写于 作者: D dboy190

fix review problem

Signed-off-by: Ndboy190 <dulei1@huawei.com>
上级 a49a5a94
......@@ -16,7 +16,7 @@
- [数据库备份与恢复](data-backup-and-restore.md)
- [数据库加密](data-encryption.md)
- [基于设备分类和数据分级的访问控制](access-control-by-device-and-data-level.md)
- 同设备跨应用数据共享
- 跨应用数据共享
- [跨应用数据共享概述](data-share-overview.md)
- [标准化数据定义](unified-data-definition.md)
- 一对多数据共享(仅对系统应用开放)
......
# 跨应用数据共享
## 功能简介
数据共享提供了向其他应用共享以及管理其数据的方法,支持不同应用之间的数据协同。
在许多应用场景中都需要用到数据共享,比如将电话簿、短信、媒体库中的数据共享给其他应用等。当然,不是所有的数据都允许其他应用访问,比如帐号、密码等;有些数据也只允许其他应用查询而不允许其删改,比如短信等。所以针对不同数据共享场景以及数据隐私保护,设计一个安全、便捷的跨应用数据共享机制是十分必要的。
# 基本概念
## 基本概念
在进行跨应用数据共享开发前,先了解以下相关概念。
......@@ -18,61 +20,67 @@
- **谓词**:用户访问数据库中的数据所使用的筛选条件,经常被应用在更新数据、删除数据和查询数据等场景。
- **私有数据**:指应用管理的私有数据,该类数据的管理和使用遵循应用定义的准则,由应用规约该类数据的访问方式以及需要的权限。
## 标准化数据定义
- **公有数据**:指应用托管到数据管理服务的数据,该类数据由应用和数据管理服务共同管理,遵循应用和数据管理服务规约的数据访问形式,权限管理和生命周期管理。
当出现多应用数据共享时,需要统一的OpenHarmony数据语言,构建OpenHarmony数据跨应用、跨设备交互标准,降低应用/业务数据交互成本,跨应用数据共享遵循以下数据定义:
## 应用私有数据共享
**基础数据类型:** File、Text等,能够进行跨应用、跨设备以及跨平台流转,如图1和图2所示。
数据提供方无需进行繁琐的封装,可直接使用DataShare向其他应用共享数据;对数据访问方来说,因DataShare的访问方式不会因数据提供的方式而不同,只需要学习和使用一套接口即可,大大减少了学习时间和开发难度。
**图1** UDMF File数据类型示意图
跨应用数据共享有两种方式:
![UDMF_FILE](figures/udmf_type_File.png)
- **使用DataShareExtensionAbility实现数据共享**
**图2** UDMF Text数据类型示意图
这种方式通过在HAP中实现一个extension,在extension中可以实现回调,在访问方调用对应接口时,会自动拉起提供方对应的extension,并调用对应回调。
![UDMF_TEXT](figures/udmf_type_Text.png)
这种方式适用于跨应用数据访问时有业务的操作,不仅是对数据库的增删改查的情况
**系统相关数据类型(System Defined Type, SDT):** 与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)等,该类数据可以实现系统/平台内的跨应用、跨设备流转,如图3所示
- **通过静默访问实现数据共享**
**图3** UDMF SDT数据类型示意图
这种方式通过在HAP中配置数据库的访问规则,在访问方调用对应接口时,会自动通过系统服务读取HAP配置规则,按照规则返回数据,不会拉起数据提供方。
![UDMF_SDT](figures/udmf_type_SDT.png)
这种方式适用于跨应用数据访问仅为数据库的增删改查,没有特殊业务的情况
**应用自定义数据类型(App Defined Type, ADT):** 单个应用自定义的数据,该类数据可以实现应用内的跨平台与跨设备流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用
## 公有数据共享
**图4** UDMF ADT数据类型示意图
区别于应用私有数据的共享,统一数据管理框架(Unified Data Management Framework, UDMF)提供一种新的数据共享与交互方式,应用可以根据UDMF提供的标准化接口,
将数据写入UDMF不同的数据通道。写入UDMF中的数据依据应用定义的权限、数据通道定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理,
写入通道中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通道中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。
![UDMF_ADT](figures/udmf_type_ADT.png)
### 标准化数据定义
## 一对多数据共享
当出现多应用数据共享时,需要统一的OpenHarmony数据语言,构建OpenHarmony数据跨应用、跨设备交互标准,降低应用/业务数据交互成本,公有数据共享遵循以下数据定义:
数据提供方无需进行繁琐的封装,可直接使用DataShare向其他应用共享数据;对数据访问方来说,因DataShare的访问方式不会因数据提供的方式而不同,只需要学习和使用一套接口即可,大大减少了学习时间和开发难度。
**基础数据类型:** File、Text等,能够进行跨应用、跨设备以及跨平台流转,如图1和图2所示。
跨应用数据共享有两种方式:
**图1** UDMF File数据类型示意图
- **使用DataShareExtensionAbility实现数据共享**
![UDMF_FILE](figures/udmf_type_File.png)
这种方式通过在HAP中实现一个extension,在extension中可以实现回调,在访问方调用对应接口时,会自动拉起提供方对应的extension,并调用对应回调。
**图2** UDMF Text数据类型示意图
这种方式适用于跨应用数据访问时有业务的操作,不仅是对数据库的增删改查的情况。
![UDMF_TEXT](figures/udmf_type_Text.png)
- **通过数据管理服务实现数据共享静默访问**
**系统相关数据类型(System Defined Type, SDT):** 与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)等,该类数据可以实现系统/平台内的跨应用、跨设备流转,如图3所示
这种方式通过在HAP中配置数据库的访问规则,在访问方调用对应接口时,会自动通过系统服务读取HAP配置规则,按照规则返回数据,不会拉起数据提供方
**图3** UDMF SDT数据类型示意图
这种方式适用于跨应用数据访问仅为数据库的增删改查或托管数据到数据管理服务,没有特殊业务的情况。
如果你的应用是系统签名,最佳实践方式是以上两种方式一起用。首次创建数据时使用DataShareExtensionAbility拉起创建,后续访问和修改数据通过数据管理服务实现数据共享,即可实现只有首次访问会拉起数据提供者。
![UDMF_SDT](figures/udmf_type_SDT.png)
### 约束限制
**应用自定义数据类型(App Defined Type, ADT):** 单个应用自定义的数据,该类数据可以实现应用内的跨平台与跨设备流转,如图4所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用
- DataShare受到数据提供方所使用数据库的一些限制。例如支持的数据模型、Key的长度、Value的长度、每个应用程序支持同时打开数据库的最大数量等,都会受到使用的数据库的限制
**图4** UDMF ADT数据类型示意图
- 因DataShare内部实现依赖于IPC通信,所以数据集、谓词、结果集等的载荷受到IPC通信的约束与限制。
![UDMF_ADT](figures/udmf_type_ADT.png)
- 当前仅支持在Stage模型下,进行同设备跨应用数据共享相关能力的开发。
## 多对多数据共享
区别于一对多数据共享,统一数据管理框架(Unified Data Management Framework, UDMF)提供一种新的数据共享与交互方式,应用可以根据UDMF提供的标准化接口,
将数据写入UDMF不同的数据通道。写入UDMF中的数据依据应用定义的权限、数据通道定义的权限以及整个UDMF框架定义的权限管理逻辑进行管理,
写入通道中的数据的生命周期的管理也遵循上述逻辑。这样离散在各个应用的碎片化数据可以在UDMF的不同通道中形成聚合效应,提升开发者跨应用数据协同的效率,同时提升用户的数据体验。
### 标准化数据通路
### 通过标准化数据通路实现数据共享
同时,UDMF提供安全、标准化数据通路,支持标准化数据接入与读取,降低业务跨应用数据交互成本。
......
# 同设备跨应用数据共享概述
## 功能简介
数据共享(DataShare) 提供了向其他应用共享以及管理其数据的方法,支持同个设备上不同应用之间的数据共享。
在许多应用场景中都需要用到数据共享,比如将电话簿、短信、媒体库中的数据共享给其他应用等。当然,不是所有的数据都允许其他应用访问,比如帐号、密码等;有些数据也只允许其他应用查询而不允许其删改,比如短信等。所以对于各种数据共享场景,DataShare这样一个安全、便捷的可以跨应用的数据共享机制是十分必要的。
## 基本概念
在进行同设备跨应用数据共享开发前,先了解以下相关概念。
- **数据提供方**:提供数据及实现相关业务的应用程序,也称为生产者或服务端。
- **数据访问方**:访问数据提供方所提供的数据或业务的应用程序,也称为消费者或客户端。
- **数据集**:用户要插入的数据集合,可以是一条或多条数据。数据集以键值对的形式存在,键为字符串类型,值支持数字、字符串、布尔值、无符号整型数组等多种数据类型。
- **结果集**:用户查询之后的结果集合,其提供了灵活的数据访问方式,以便用户获取各项数据。
- **谓词**:用户访问数据库中的数据所使用的筛选条件,经常被应用在更新数据、删除数据和查询数据等场景。
## 具体实现
数据提供方无需进行繁琐的封装,可直接使用DataShare向其他应用共享数据;对数据访问方来说,因DataShare的访问方式不会因数据提供的方式而不同,只需要学习和使用一套接口即可,大大减少了学习时间和开发难度。
跨应用数据共享有两种方式:
- **使用DataShareExtensionAbility实现数据共享**
这种方式通过在HAP中实现一个extension,在extension中可以实现回调,在访问方调用对应接口时,会自动拉起提供方对应的extension,并调用对应回调。
这种方式适用于跨应用数据访问时有业务的操作,不仅是对数据库的增删改查的情况。
- **通过数据管理服务实现数据共享静默访问**
这种方式通过在HAP中配置数据库的访问规则,在访问方调用对应接口时,会自动通过系统服务读取HAP配置规则,按照规则返回数据,不会拉起数据提供方。
这种方式适用于跨应用数据访问仅为数据库的增删改查或托管数据到数据管理服务,没有特殊业务的情况。
如果你的应用是系统签名,最佳实践方式是以上两种方式一起用。首次创建数据时使用DataShareExtensionAbility拉起创建,后续访问和修改数据通过数据管理服务实现数据共享,即可实现只有首次访问会拉起数据提供者。
## 约束限制
- DataShare受到数据提供方所使用数据库的一些限制。例如支持的数据模型、Key的长度、Value的长度、每个应用程序支持同时打开数据库的最大数量等,都会受到使用的数据库的限制。
- 因DataShare内部实现依赖于IPC通信,所以数据集、谓词、结果集等的载荷受到IPC通信的约束与限制。
- 当前仅支持在Stage模型下,进行同设备跨应用数据共享相关能力的开发。
......@@ -7,7 +7,7 @@
例如:当设备1上的应用A在分布式数据库中增、删、改数据后,设备2上的应用A也可以获取到该数据库变化。可在分布式图库、备忘录、联系人、文件管理器等场景中使用。
不同应用间订阅数据库变化通知,则请参考[同设备跨应用数据共享](share-device-data-across-apps-overview.md)实现。
不同应用间订阅数据库变化通知,则请参考[跨应用数据共享](data-share-overview.md)实现。
根据跨设备同步数据生命周期的不同,可以分为:
......
......@@ -537,10 +537,14 @@
- [数据库备份与恢复](database/data-backup-and-restore.md)
- [数据库加密](database/data-encryption.md)
- [基于设备分类和数据分级的访问控制](database/access-control-by-device-and-data-level.md)
- 同设备跨应用数据共享(仅对系统应用开放)
- [同设备跨应用数据共享概述](database/share-device-data-across-apps-overview.md)
- [通过DataShareExtensionAbility实现数据共享](database/share-data-by-datashareextensionability.md)
- [通过数据管理服务实现数据共享静默访问](database/share-data-by-silent-access.md)
- 跨应用数据共享
- [跨应用数据共享概述](database/data-share-overview.md)
- [标准化数据定义](database/unified-data-definition.md)
- 一对多数据共享(仅对系统应用开放)
- [通过DataShareExtensionAbility实现数据共享](database/share-data-by-datashareextensionability.md)
- [通过数据管理服务实现数据共享静默访问](database/share-data-by-silent-access.md)
- 多对多数据共享
- [通过标准化数据通路实现数据共享](database/unified-data-channels.md)
- 文件管理
- [文件管理概述](file-management/file-management-overview.md)
- 应用文件
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册