作者:yijian,终端os分布式文件系统专家;gongashi,终端os分布式数据管理专家
harmonyos作为分布式操作系统,其分布式数据管理能力非常重要。我们也一直围绕持续为开发者带来全局“一份”数据的开发体验的目标,在不断增强和提升harmonyos的分布式数据管理能力。本期我们就来为大家详细介绍分布式数据管理的新能力。
一、分布式数据管理平台面临的挑战
我们先来看一个典型的分布式场景:
手机和智慧屏协同进行文档演示,手机上的文档演示状态(比如翻页、页面放大、页面缩小和涂鸦等)需要同步到智慧屏,同样智慧屏上的文档演示状态也需要同步到手机上。
图1 分布式文档演示场景
要实现以上场景,开发者面临以下两个挑战:
挑战1:如何更便捷地实现数据的“多端协同”?
手机上的文档演示状态同步到智慧屏上,智慧屏上的文档演示状态也同步到手机上,这其实就是数据的“多端协同”。要实现数据的“多端协同”,需要开发者完成消息处理逻辑,包括:建立通信链接、消息收发处理、错误处理和性能调优等,工作量非常大。此外,设备越多,调试复杂度将呈指数增长。
挑战2:如何更高效地实现数据的“跨端迁移”?
手机和智慧屏协同进行文档演示时,手机上的文档要发送到智慧屏上操作,这就涉及到数据的“跨端迁移”。以往通常的做法是建立两个设备的通信连接,手机发送文档给智慧屏,智慧屏接收后打开和修改文档,再将文档发回给手机。这种实现方式很复杂,而且文件来回传输也非常影响用户的操作效率。
二、分布式数据管理平台
面对上面两个挑战,harmonyos的解决办法是:在分布式数据管理平台提供全局访问框架和分享框架,来支撑开发者在访问、迁移、协同、分享等分布式场景下的业务创新。
图2 分布式数据管理平台
图2中,全局访问框架和分享框架中的数据库,在harmonyos 2就已经发布了,我们也在往期推文中介绍过,本期不再赘述。全局访问框架和分享框架中标黄的“变量”和“文件”是即将在harmonyos新版本中发布的内容,接下来为大家详细介绍。
三、变量的全局访问
对于挑战1,为了更便捷地实现数据的“多端协同”,harmonyos提供了变量的全局访问框架。
上面分布式文档演示场景中,文档演示状态(比如翻页、页面放大、页面缩小和涂鸦等)其实就是变量。如果这些变量支持“全局”访问,那么开发者跨设备访问这些变量就能像操作本地变量一样,数据就能够自动高效、便捷地多端同步了。为了实现变量的“全局”访问,harmonyos提出了“分布式数据对象”的概念,将变量封装成分布式数据对象。
1. “分布式数据对象”的设计理念
分布式数据对象的设计理念如图3所示。基于分布式软总线能力和分布式内存数据库的跨设备同步能力,harmonyos构建了基于js对象(也就是分布式数据对象)的接口。开发者直接使用此接口就可以实现跨设备的数据同步,无需关注底层通信过程,可以更关注于业务逻辑的开发。
图3 “分布式数据对象”设计理念
2. 三步使用“分布式数据对象”
“分布式数据对象”接口极为简单、易用,只需要3个步骤:
(1)定义js对象的时候继承distributeddataobject基类
(2)设置objectid、sessionid
(3)订阅分布式数据对象的变化(可选)
此外,其他与本地对象操作完全一致。
“分布式数据对象”接口的基类、方法和参数说明如下:
图4 “分布式数据对象”接口说明
下面我们来看看“分布式数据对象”接口使用的示例代码。图5是多端协同发起方的示例代码,图6是多端协同接收方的示例代码。
图5 多端协同发起方的示例代码
图6 多端协同接收方的示例代码
四、文件的全局访问和分享
对于挑战2,为了更高效地实现数据的“跨端迁移”,harmonyos提供了文件的全局访问框架和分享框架。(为了方便理解,图7仅展示了分布式数据管理平台中的文件部分。)
图7 分布式数据管理平台(文件部分)
如图7所示,文件访问框架分为应用文件访问框架和公共文件访问框架。
harmonyos 2已经提供应用文件访问框架,harmonyos即将发布的新版本中会新增公共文件访问框架和文件共享框架,增强文件的全局访问和分享能力,从而实现屏蔽物理存储位置,达到让应用可以像访问本地文件一样访问远端文件的目标。
基于新增的公共文件访问框架和文件共享框架,我们来看看如何实现两个典型的文件使用场景:
1. 直接打开远端文件
场景说明:直接在设备a上打开设备b上的公共文件。
实现说明:开发者将分布式文件系统接入文件选择器(file picker),应用就可以通过分布式的file picker直接打开、编辑远端文件,不需要进行跨设备的文件发送。
实现代码示例如下:
var parameter = {
“want”: {
“action”: “action.com.huawei.filecenter.picker_aciton”
},
};
featureability.startabilityforresult(parameter, (err, data) => {
………// 可直接打开、编辑远端文件
}) 复制代码
实现效果如图8所示,用户在本机上可以选择远端设备,可以看到远端设备上的文件列表,并且能直接打开和编辑远端文件。
图8 直接打开远端文件
2. 文件的“跨端迁移”
场景说明:设备a分享一个公共文件给设备b,在设备b上打开该文件。
实现说明:此场景下,设备a并没有将文件真的发送给设备b,而是在设备a和设备b之间建立了文件的映射关系,设备b通过此映射关系远程访问设备a上的文件。具体实现流程如图9所示。
图9 文件的“跨端迁移”
实现步骤和示例代码如下:
(1)设备a分享文件句柄给设备b。
handoffhelper.creator(networkid, fd); 复制代码
(2)设备a和设备b建立文件的映射关系。
(3)设备b收到文件分享消息后,响应消息并获取文件的uri。
let helper1 = dataabilityhelper.creator(getcontext()); 复制代码
(4)设备b上的应用通过uri打开远端文件。
helper1.openfile(uri, rw, function(fd) {
…………
}) 复制代码
五、结束语
分布式数据管理平台新增变量和文件的全局访问框架,以及文件分享框架,帮助开发者更便捷地实现数据的“多端协同”,更高效地实现数据的“跨端迁移”。这些新能力将在harmonyos的新版本中体现,敬请期待!
harmonyos正在不断成长,期待更多的开发者加入我们,一起见证harmonyos的成长!
深刻认识差模电压和共模电压
蔚来EC6可以看作是ES6的后备版本
iPhone8最新消息:取消Home键,首次采用无线充电功能
嵌入式ai应用开发
你觉得区块链具有颠覆意义吗
新能力让数据多端协同更便捷,数据跨端迁移更高效
RF检波器的类型及应用范围
有没有音质比较好的蓝牙耳机?音质出色的蓝牙耳机推荐
模块电源使用四大注意事项
镜面显示屏已成为了智慧厕所广告投放的全新方式
光耦应用电路设计方法与光耦工作原理解读 光耦应用电路图实例
触控显示设备对应接口所实现的不同功能分享
Dedrone开发空中无人机检测系统,现已获得1500万美元融资
人工智能的寒冬已经过去,DNN会是趋势
TCF792器件的原理、特点及实现三相全波半控整流电路的设计
便利店信息发布系统解决方案,堪称时间管理大师
阿里腾讯布局东南亚地区 电子支付格局将变
中电港与紫光国微签署战略合作协议
AI对于娱乐产业的技术化改造 已经深刻的融入到人类的社会生活中去
摩托罗拉Edge S采用该新芯片组并于1月26日推出