distributeddatamgr_udmf/README_zh.md
genglingxia 7d7b4b2500 review fix
mv service dir to innerkitsimpl

Signed-off-by: genglingxia <genglingxia3@huawei.com>
2023-11-15 20:50:22 +08:00

5.6 KiB
Executable File
Raw Blame History

统一数据管理框架

简介

从数据管理角度出发随着OpenHarmony中数据跨应用、跨设备流转场景和需求的不断增加流转过程中会存在数据协同通道繁杂、数据协同标准不一致、数据协同安全策略不一致、应用适配复杂度高、开发工作量增多等诸多痛点问题。统一数据管理框架Unified Data Management Framework, UDMF旨在定义数据跨应用、跨设备以及跨平台过程中的各项标准提供统一的OpenHarmony数据语言和标准化的数据接入与读取通路。

架构介绍

UDMF提供统一的OpenHarmony数据语言和标准化的数据接入与读取通路。

统一的OpenHarmony数据语言 构建OpenHarmony数据跨应用、跨设备交互的标准定义降低应用/业务数据交互成本,促进数据生态建设。

标准化的数据接入与读取通路: 提供安全、标准化的数据通路,降低业务跨应用、跨设备数据交互的成本。

UDMF的整体架构如图1所示业务层对外提供标准化的数据定义和数据接入与读取的业务接口。统一数据管理框架层提供标准化数据定义和数据接入与读取的具体实现同时负责管理数据的生命周期、安全性、权限和存储。存储模块层负责数据的具体保存可以使用分布式KVDB、分布式数据对象和分布式RDB进行数据存储。

图1 UDMF架构图

架构图

标准化数据定义

UDMF提供了标准化的数据定义统一定义了以下几种不同的数据类型。

基础数据类型: File、Text等能够进行跨应用、跨设备以及跨平台流转。File、Text数据类型可见图2和图3它们具有继承关系和层次结构衍生出多种具体子类。

图2 UDMF File数据类型示意图

架构图

图3 UDMF Text数据类型示意图

架构图

系统相关数据类型System Defined Type, SDT 与具体的平台/操作系统绑定如FormUI卡片信息、AppItemApp描述信息、PixelMap缩略图格式该类数据可以实现系统/平台内的跨应用、跨设备流转如图4所示。

图4 UDMF SDT数据类型示意图

架构图

应用自定义数据类型App Defined Type, ADT 单个应用自定义的数据该类数据可以实现应用内的跨平台与跨设备流转如图5所示为例应用可自定义MyFile类型文件格式在应用生态内部使用。

图5 UDMF ADT数据类型示意图

架构图

标准化数据通路

UDMF定义了标准化的数据接入与读取通路为各种业务场景如跨应用跨设备数据拖拽提供了跨应用、跨设备的数据接入与读取通路通路中的数据URI定义为udmf://intension/bundleName/groupName/guid其中各组成部分的含义分别为
udmf: 协议名表示使用UDMF提供的数据通路。
intension: 通道分类,对应不同的业务场景(如数据拖拽)。
bundleName: 数据来源应用的包名称。
groupName: 分组名称,支持批量数据分组管理。
guid: 系统生成的数据id全局唯一。

约束限制

  • UDMF中每条数据记录大小不超过2MB。
  • UDMF支持批量数据记录的分组管理每个分组整体大小不超过4MB。

目录

UDMF代码仓的目录结构和对应目录的功能描述如下

foundation/distributeddatamgr/udmf  # udmf统一数据管理部件
├── frameworks                      # udmf的核心逻辑
│   ├── common                      # 公共工具
│   ├── innerkitsimpl               # nativie接口具体实现
│   │   ├── client                  # native客户端
│   │   ├── common                  # native接口公共工具类
│   │   ├── data                    # 数据结构定义
│   │   ├── service                 # 服务模块
│   │   └── test                    # 测试目录
│   ├── jskitsimpl                  # js接口具体实现
│   │   ├── common                  # js接口公共工具类
│   │   |── data                    # 统一数据公共接口实现
|   |   └── unittest                # js单元测试目录
├── interfaces                      # udmf对外接口声明
│   ├── innerkits                   # nativie接口声明
│   │   ├── client                  # client接口声明
│   │   ├── common                  # 公共工具类声明
│   │   └── data                    # 数据结构声明
│   └── jskits                      # napi接口声明
│       ├── common                  # napi工具类声明
│       ├── data                    # napi数据封装声明
│       └── module                  # 统一数据模块注册
├── BUILD.gn                        # 编译配置文件
├── bundle.json                     # 模块配置文件
├── LICENSE                         # License文件
├── OAT.xml                         # OAT扫描策略
├── README_zh.md                    # Readme中文介绍
└── udmf.gni                        # 编译配置头文件

相关仓