0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

新能力让数据多端协同更便捷,数据跨端迁移更高效

物联网星球 来源:物联网星球 作者:物联网星球 2022-01-12 16:07 次阅读

作者: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直接打开、编辑远端文件,不需要进行跨设备的文件发送。

实现代码示例如下:

  1. var parameter = {
  2. “want”: {
  3. action”: “action.com.huawei.filecenter.PICKER_ACITON”
  4. },
  5. };
  6. featureAbility.startAbilityForResult(parameter, (err, data) => {
  7. ………// 可直接打开、编辑远端文件
  8. })

复制代码

实现效果如图8所示,用户在本机上可以选择远端设备,可以看到远端设备上的文件列表,并且能直接打开和编辑远端文件。

图8 直接打开远端文件

2.文件的“跨端迁移”

场景说明:设备A分享一个公共文件给设备B,在设备B上打开该文件。

实现说明:此场景下,设备A并没有将文件真的发送给设备B,而是在设备A和设备B之间建立了文件的映射关系,设备B通过此映射关系远程访问设备A上的文件。具体实现流程如图9所示。

图9 文件的“跨端迁移”

实现步骤和示例代码如下:

(1)设备A分享文件句柄给设备B。

  1. handoffHelper.creator(networkID, fd);

复制代码


(2)设备A和设备B建立文件的映射关系。

(3)设备B收到文件分享消息后,响应消息并获取文件的URI。

  1. let helper1 = DataAbilityHelper.creator(getContext());

复制代码


(4)设备B上的应用通过URI打开远端文件。

  1. helper1.openFile(Uri, "rw",function(fd) {
  2. …………
  3. })

复制代码


五、结束语


分布式数据管理平台新增变量和文件的全局访问框架,以及文件分享框架,帮助开发者更便捷地实现数据的“多端协同”,更高效地实现数据的“跨端迁移”。这些新能力将在HarmonyOS的新版本中体现,敬请期待!

HarmonyOS正在不断成长,期待更多的开发者加入我们,一起见证HarmonyOS的成长!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6508

    浏览量

    87538
  • 开发者
    +关注

    关注

    1

    文章

    499

    浏览量

    16366
  • 鸿蒙
    +关注

    关注

    55

    文章

    1547

    浏览量

    42104
  • HarmonyOS
    +关注

    关注

    79

    文章

    1765

    浏览量

    29228
收藏 人收藏

    评论

    相关推荐

    自动化测量软件,直径测量更便捷

    传输方面,软件的测量数据可以通过有线、无线网络向用户指定的电脑、手机、生产车间控制系统传送指定的数据,用户也可以通过电脑访问方式、手机APP访问方式读取测量软件数据库内的测量、统计数据
    发表于 01-16 10:40

    DigiPCBA(便捷高效硬件项目协同设计工具)上手视频演示

    `现在电子发烧友推出的DigiPCBA——一款便捷高效硬件项目协同设计工具帮您实现专属梦想。一款便捷高效硬件项目
    发表于 03-18 11:04

    HarmonyOS应用框架如何解决多设备交互问题?

    应用框架中提供了两种基础功能,分别是:多端协同迁移。接下来我们将介绍HarmonyOS的上述两个
    发表于 08-12 11:03

    HarmonyOS原子化服务卡片开发-分布式体验学习

    方案流转有2种技术方案来满足不同的业务场景。·迁移:指在A运行的用户应用程序,迁移到B端上并从迁移
    发表于 09-07 09:38

    HarmonyOS教程—基于设备迁移和分布式文件能力,实现邮件的设备编辑和附件的调用

    操作。想要解决这些问题,我们可以通过HarmonyOS的分布式能力实现任务的设备迁移,保证业务在手机、平板等终端间无缝衔接,轻松的完成多设备之间的协同办公。本篇Codelab文档,我
    发表于 09-09 10:03

    HDC2021技术分论坛:分布式计算技术初探

    的分布式卸载和协同能力组合成能胜任各种新业务场景需求的超级终端图1 分布式计算能力简单一句话来概括就是“
    发表于 11-15 14:54

    HDC2021技术分论坛:分布式计算技术初探

    池为用户的高体验应用提供随需算力和特定能力的分布式卸载和协同能力组合成能胜任各种新业务场景需求的超级终端图1 分布式计算
    发表于 11-23 17:06

    能力数据多端协同更便捷数据迁移更高效

    ,帮助开发者更便捷地实现数据的“多端协同”,更高效地实现数据的“
    发表于 01-11 10:41

    通过HarmonyOS分布式能力实现任务的设备迁移设计资料分享

    的文档或图片素材,此时需要在不同设备间反复操作。想要解决这些问题,我们可以通过 HarmonyOS 的分布式能力实现任务的设备迁移,保证业务在手机、平板等终端间无缝衔接,轻松的完成多设备之间的
    发表于 03-25 16:59

    DevEco Studio新特性分享-语言调试,调试更便捷高效

    HarmonyOS应用及服务的一站式集成开发环境。本次分享DevEco Studio 3.1 Canary1上线的新特性- ArkTS与C++语言调试,调试更便捷高效。 一、什么是
    发表于 01-04 11:45

    HarmonyOS应用相关术语

    ,是HarmonyOS中负责处理公共事件的订阅、发布和退订的系统服务。Cross-device migration,迁移是一种实现用户应用程序流转的技术方案。指在A运行的用户应用
    发表于 01-06 14:55

    ArkUI新能力,助力应用开发更便捷

    的用户体验。随着HarmonyOS 3.1版本的发布,ArkUI也新增许多能力,助力应用开发更便捷。 ArkUI框架新增能力概览 ArkUI能力一直在不断构建中,如下图所示,蓝色模块
    发表于 02-15 11:40

    OpenHarmony应用模型的构成要素与Stage优势

    便捷实现迁移。 在多端协同场景下,应用组件具备组件间通信的RPC调用
    发表于 09-26 16:48

    工业树莓派远程I/O控制套装—更高效、更灵活、更便捷

    虹科工业树莓派远程I/O套装—以虹科工业树莓派RevPi Connect作为主站设备,虹科HK-MXB系列作为从站设备,套装搭配,扩展方便,为您提供更灵活、更高效更便捷数据采集方案。
    的头像 发表于 04-20 17:22 609次阅读

    讯维融合通信系统:让沟通更智能、更便捷更高效

    融合通信系统,作为现代通信技术的杰出代表,正以其独特的优势助力企业、组织乃至个人实现更智能、更便捷更高效的沟通。讯维融合通信系统,作为其中的佼佼者,以其卓越的性能和广泛的应用领域,为用户带来
    的头像 发表于 04-12 16:28 117次阅读