• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..17-Mar-2025-

adapter/H17-Mar-2025-790594

figures/H17-Mar-2025-

framework/H17-Mar-2025-36,23328,692

interfaces/H17-Mar-2025-7,1543,239

BUILD.gnH A D17-Mar-20251.3 KiB4538

CODEOWNERSH A D17-Mar-2025770 1514

LICENSEH A D17-Mar-20259.9 KiB177150

OAT.xmlH A D17-Mar-20253.9 KiB6915

README_zh.mdH A D17-Mar-20255.6 KiB9768

bundle.jsonH A D17-Mar-20254.8 KiB169168

udmf.gniH A D17-Mar-20251.5 KiB4932

README_zh.md

1# 统一数据管理框架
2
3## 简介
4从数据管理角度出发,随着OpenHarmony中数据跨应用、跨设备流转场景和需求的不断增加,流转过程中会存在数据协同通道繁杂、数据协同标准不一致、数据协同安全策略不一致、应用适配复杂度高、开发工作量增多等诸多痛点问题。统一数据管理框架(Unified Data Management Framework, UDMF)旨在定义数据跨应用、跨设备以及跨平台过程中的各项标准,提供统一的OpenHarmony数据语言和标准化的数据接入与读取通路。
5
6## 架构介绍
7UDMF提供统一的OpenHarmony数据语言和标准化的数据接入与读取通路。
8
9**统一的OpenHarmony数据语言:** 构建OpenHarmony数据跨应用、跨设备交互的标准定义,降低应用/业务数据交互成本,促进数据生态建设。
10
11**标准化的数据接入与读取通路:** 提供安全、标准化的数据通路,降低业务跨应用、跨设备数据交互的成本。
12
13UDMF的整体架构如图1所示,业务层对外提供标准化的数据定义和数据接入与读取的业务接口。统一数据管理框架层提供标准化数据定义和数据接入与读取的具体实现,同时负责管理数据的生命周期、安全性、权限和存储。存储模块层负责数据的具体保存,可以使用分布式KVDB、分布式数据对象和分布式RDB进行数据存储。
14
15**图1** UDMF架构图
16
17![架构图](figures/udmf_architecture.png)
18
19### 标准化数据定义
20
21UDMF提供了标准化的数据定义,统一定义了以下几种不同的数据类型。
22
23**基础数据类型:** File、Text等,能够进行跨应用、跨设备以及跨平台流转。File、Text数据类型可见图2和图3,它们具有继承关系和层次结构,衍生出多种具体子类。
24
25**图2** UDMF File数据类型示意图
26
27![架构图](figures/udmf_type_File.png)
28
29**图3** UDMF Text数据类型示意图
30
31![架构图](figures/udmf_type_Text.png)
32
33**系统相关数据类型(System Defined Type, SDT):** 与具体的平台/操作系统绑定,如Form(UI卡片信息)、AppItem(App描述信息)、PixelMap(缩略图格式)等,该类数据可以实现系统/平台内的跨应用、跨设备流转,如图4所示。
34
35**图4** UDMF SDT数据类型示意图
36
37![架构图](figures/udmf_type_SDT.png)
38
39**应用自定义数据类型(App Defined Type, ADT):** 单个应用自定义的数据,该类数据可以实现应用内的跨平台与跨设备流转,如图5所示为例,应用可自定义MyFile类型文件格式在应用生态内部使用。
40
41**图5** UDMF ADT数据类型示意图
42
43![架构图](figures/udmf_type_ADT.png)
44
45### 标准化数据通路
46
47UDMF定义了标准化的数据接入与读取通路,为各种业务场景(如跨应用跨设备数据拖拽)提供了跨应用、跨设备的数据接入与读取通路,通路中的数据URI定义为udmf://intension/bundleName/groupName/guid,其中各组成部分的含义分别为:
48**udmf:** 协议名,表示使用UDMF提供的数据通路。
49**intension:** 通道分类,对应不同的业务场景(如数据拖拽)。
50**bundleName:** 数据来源应用的包名称。
51**groupName:** 分组名称,支持批量数据分组管理。
52**guid:** 系统生成的数据id,全局唯一。
53
54## 约束限制
55
56- UDMF中每条数据记录大小不超过2MB。
57- UDMF支持批量数据记录的分组管理,每个分组整体大小不超过4MB。
58
59## 目录
60
61UDMF代码仓的目录结构和对应目录的功能描述如下:
62
63```undefined
64foundation/distributeddatamgr/udmf  # udmf统一数据管理部件
65├── frameworks                      # udmf的核心逻辑
66│   ├── common                      # 公共工具
67│   ├── innerkitsimpl               # nativie接口具体实现
68│   │   ├── client                  # native客户端
69│   │   ├── common                  # native接口公共工具类
70│   │   ├── data                    # 数据结构定义
71│   │   ├── service                 # 服务模块
72│   │   └── test                    # 测试目录
73│   ├── jskitsimpl                  # js接口具体实现
74│   │   ├── common                  # js接口公共工具类
75│   │   |── data                    # 统一数据公共接口实现
76|   |   └── unittest                # js单元测试目录
77├── interfaces                      # udmf对外接口声明
78│   ├── innerkits                   # nativie接口声明
79│   │   ├── client                  # client接口声明
80│   │   ├── common                  # 公共工具类声明
81│   │   └── data                    # 数据结构声明
82│   └── jskits                      # napi接口声明
83│       ├── common                  # napi工具类声明
84│       ├── data                    # napi数据封装声明
85│       └── module                  # 统一数据模块注册
86├── BUILD.gn                        # 编译配置文件
87├── bundle.json                     # 模块配置文件
88├── LICENSE                         # License文件
89├── OAT.xml                         # OAT扫描策略
90├── README_zh.md                    # Readme中文介绍
91└── udmf.gni                        # 编译配置头文件
92```
93## 相关仓
94
95- [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
96
97- [**distributeddatamgr\_kv_store**](https://gitee.com/openharmony/distributeddatamgr_kv_store/blob/master/README_zh.md)