HarmonyOS是万物互联时代的操作系统。通过分布式技术,HarmonyOS将多台终端形成一台“超级虚拟终端”,让用户使用多设备如同使用单设备一样简单。那么在这个“超级虚拟终端”中,数据怎么存储?怎么同步?怎么访问?想必是大家最关心的问题。
对于上述问题,HarmonyOS分布式数据管理已经做了充分考虑。分布式数据管理的设计理念就是数据不再与单一物理设备绑定,跨设备的数据处理如同本地数据处理一样方便快捷,让开发者管理跨端数据像单设备一样的简单。
本篇开始就让我们一起揭开分布式数据管理模块的神秘面纱。
在开发智能终端应用和服务时,开发者经常会使用文件和数据库。传统的OS中,开发者实现跨端数据的共享和访问,通常是借助云端完成。但这种实现方式往往面临着云端存储搭建成本高、服务不够便捷、对用户数据和隐私保护不足等诸多挑战。针对这一境况,HarmonyOS在近端将多台终端形成一台“超级虚拟终端”,实现数据全部在本地完成存储,在数据服务的成本、便捷性和安全隐私保护等方面具有非常明显的优势。
示意图如下:
从图中我们可以看出,各个物理设备虽仍保留其本地数据,但对开发者来说,数据已不再与单一物理设备绑定。HarmonyOS提供的是一个基于“超级虚拟终端”的分布式数据,将多个设备的数据集中在一个逻辑上的“超级虚拟终端”本地,让跨端数据处理转变成如同“本地数据”处理一样方便快捷。
举个例子:照片分享。家庭出游时,爸爸、妈妈、爷爷、奶奶都会用各自手机拍了很多照片,每个人拍摄的内容不同,妈妈可能会要求爸爸给自己拍一些单人照,爷爷可能更多倾向于抓拍儿子与孙子孙女亲子互动的画面…….以前家庭对于各自拍摄图片共享的处理方式是通过是社交软件发送,数量一旦庞大将费时费力。然而,使用HarmonyOS分布式数据管理后,只需通过家庭照片共享,全家人可直接在自己手机上浏览、收藏和保存所有人拍摄的照片,省去了麻烦的传输操作。同时,大多数人经常使用的标签分类图片习惯,应用分布式数据管理技术能让用户一次查找到分布在不同终端上的照片,非常方便。
除了生活场景,针对办公领域,HarmonyOS分布式数据管理在文件分享中发挥巨大作用。在笔记本电脑上编辑邮件时,使用HarmonyOS分布式数据管理,用户可以直接选择手机上的文档或者照片作为附件发送,免去从手机转发保存文件或照片的步骤,提高工作效率。
数据安全,隐私保护是用户最关注的问题,跨设备的数据安全尤其受到关注。真正实现既为开发者代码实现减负,又从系统层面保障数据安全。HarmonyOS在为设备建立可信认证,数据的隔离与同步访问控制,数据安全和隐私保护三个方面为数据安全保驾护航,真正实现既为开发者代码实现减负,又从系统层面保障数据安全。
HarmonyOS充分考虑单用户多设备、多用户多设备的场景,为设备认证提供了两种方式。第一种是同账号设备自动连接,第二种是账号无关的设备连接。
同账号设备自动连接,依赖分布式软总线的技术,设备实现自动认证和连接,当其中一个设备开机进入一个网络中,其他同账号的设备在系统层面自动完成设备认证。
针对账号无关的设备连接,HarmonyOS提供扫码方式完成设备认证和连接,只需要调用系统接口生成二维码,再调用系统扫码接口实现扫码操作即可完成认证连接。这个时候,通过权限申请,设备间可以实现应用沙箱内的数据以及应用文件的互访。
对于上述连接过程涉及的设备认证、秘钥管理、会话密钥协商,数据隔离和访问控制等都在系统层面完成,大家无需通过代码实现,既降低开发门槛,又实现在系统层更好地保证安全性和用户隐私。
数据的隔离与同步访问控制
在分布式数据管理中,各应用的数据实现沙箱化隔离。应用之间的数据是被隔离的,每个应用通过分布式文件系统和分布式数据库只能访问到自己沙箱内的文件和数据。
此外,HarmonyOS提供垂直化数据安全的访问保护控制,不同安全风险等级的文件和数据会带上不同的等级标签,打开文件时通过等级标签来控制当前设备状态下是否允许访问。
数据安全和隐私保护
根据相关法律法规(GDPR、HIPPA、NIST…)的数据分类分级保护标准,以及业界最佳实践,HarmonyOS将数据分类成S0/S1/S2/S3/S4共5个保护等级。每个保护等级的数据从生成开始,在其存储,使用,传输的整个生命周期都需要根据对应的安全策略提供不同强度的安全防护。
每个数据(存在文件或者数据库中)在生成的时候都会打上相应的标签,这个标签将伴其一生,指导超级虚拟终端的各个节点对其提供一致强度的安全防护。
同时,超级虚拟终端的访问控制系统支持依据标签进行访问控制策略,保证数据只能在可以提供足够安全防护的节点之间存储,传输和使用。安全级别低的设备不能访问安全级别高的设备中一些比较敏感的,风险等级比较高的数据。
在传统OS下,数据跨设备间同步以及一致性问题都是通过云端同步逻辑来解决。不管是用户操作还是开发者代码实现都较为复杂。从设备A同步到设备B上,开发者至少需要通过6个步骤完成跨端数据同步:
而HarmonyOS提供的分布式数据库技术,与传统数据库操作访问的接口是一样的,也提供增删改查订阅通知等接口能力。但从代码上看,开发者只需要创建分布式数据库,同时设置自动同步,当另一个设备完成变化订阅通知,就能实现同一个数据在另一个设备上完成同步。
// 创建分布式数据库,设置成自动同步
KvStore kvStore = kvManager.getKvStore(new Options().setAutoSync(true), FileMetaDB);
// 订阅数据库变更通知;
kvStore.subscribe(SubscribeType.SUBSCRIBE_TYPE_REMOTE, kvObserver);
// 写入一条数据;
kvStore.putString(fileKey, filePath);
// 感知对端数据变化,业务逻辑处理;
KvStoreObserver kvObserver = new KvStoreObserver() {
@Override
public void onChange(ChangeNotification changeNotification) {
// 业务处理逻辑
}
}
针对数据一致性这一关键问题,HarmonyOS通过三大同步组件(时间同步、水位同步、数据同步)在系统层面解决不同设备之间数据同步相互冲突的问题。
此外,众所周知,设备的认证网络是不确定的,设备经常会出现的反复上下线情况,很多时候设备并不在已经认证好的网络当中。然而在离线状态下,某个设备仍然会产生数据。那么当其他设备重新上线的时候,如何解决数据冲突问题。HarmonyOS在系统层面完成问题解决,无需开发者顾虑。
为了能让大家更好的学习鸿蒙 (OpenHarmony) 开发技术,这边特意整理了《鸿蒙 (OpenHarmony)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……