0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新能力讓數(shù)據(jù)多端協(xié)同更便捷,數(shù)據(jù)跨端遷移更高效

物聯(lián)網(wǎng)星球 ? 來(lái)源:物聯(lián)網(wǎng)星球 ? 作者:物聯(lián)網(wǎng)星球 ? 2022-01-12 16:07 ? 次閱讀

作者:yijian,終端OS分布式文件系統(tǒng)專家;gongashi,終端OS分布式數(shù)據(jù)管理專家


HarmonyOS作為分布式操作系統(tǒng),其分布式數(shù)據(jù)管理能力非常重要。我們也一直圍繞持續(xù)為開(kāi)發(fā)者帶來(lái)全局“一份”數(shù)據(jù)的開(kāi)發(fā)體驗(yàn)的目標(biāo),在不斷增強(qiáng)和提升HarmonyOS的分布式數(shù)據(jù)管理能力。本期我們就來(lái)為大家詳細(xì)介紹分布式數(shù)據(jù)管理的新能力。

一、分布式數(shù)據(jù)管理平臺(tái)面臨的挑戰(zhàn)


我們先來(lái)看一個(gè)典型的分布式場(chǎng)景:

手機(jī)和智慧屏協(xié)同進(jìn)行文檔演示,手機(jī)上的文檔演示狀態(tài)(比如翻頁(yè)、頁(yè)面放大、頁(yè)面縮小和涂鴉等)需要同步到智慧屏,同樣智慧屏上的文檔演示狀態(tài)也需要同步到手機(jī)上。

圖1 分布式文檔演示場(chǎng)景

要實(shí)現(xiàn)以上場(chǎng)景,開(kāi)發(fā)者面臨以下兩個(gè)挑戰(zhàn):


挑戰(zhàn)1:如何更便捷地實(shí)現(xiàn)數(shù)據(jù)的“多端協(xié)同”?


手機(jī)上的文檔演示狀態(tài)同步到智慧屏上,智慧屏上的文檔演示狀態(tài)也同步到手機(jī)上,這其實(shí)就是數(shù)據(jù)的“多端協(xié)同”。要實(shí)現(xiàn)數(shù)據(jù)的“多端協(xié)同”,需要開(kāi)發(fā)者完成消息處理邏輯,包括:建立通信鏈接、消息收發(fā)處理、錯(cuò)誤處理和性能調(diào)優(yōu)等,工作量非常大。此外,設(shè)備越多,調(diào)試復(fù)雜度將呈指數(shù)增長(zhǎng)。


挑戰(zhàn)2:如何更高效地實(shí)現(xiàn)數(shù)據(jù)的“跨端遷移”?


手機(jī)和智慧屏協(xié)同進(jìn)行文檔演示時(shí),手機(jī)上的文檔要發(fā)送到智慧屏上操作,這就涉及到數(shù)據(jù)的“跨端遷移”。以往通常的做法是建立兩個(gè)設(shè)備的通信連接,手機(jī)發(fā)送文檔給智慧屏,智慧屏接收后打開(kāi)和修改文檔,再將文檔發(fā)回給手機(jī)。這種實(shí)現(xiàn)方式很復(fù)雜,而且文件來(lái)回傳輸也非常影響用戶的操作效率。

二、分布式數(shù)據(jù)管理平臺(tái)

面對(duì)上面兩個(gè)挑戰(zhàn),HarmonyOS的解決辦法是:在分布式數(shù)據(jù)管理平臺(tái)提供全局訪問(wèn)框架和分享框架,來(lái)支撐開(kāi)發(fā)者在訪問(wèn)、遷移、協(xié)同、分享等分布式場(chǎng)景下的業(yè)務(wù)創(chuàng)新。

圖2 分布式數(shù)據(jù)管理平臺(tái)


圖2中,全局訪問(wèn)框架和分享框架中的數(shù)據(jù)庫(kù),在HarmonyOS 2就已經(jīng)發(fā)布了,我們也在往期推文中介紹過(guò),本期不再贅述。全局訪問(wèn)框架和分享框架中標(biāo)黃的“變量”和“文件”是即將在HarmonyOS新版本中發(fā)布的內(nèi)容,接下來(lái)為大家詳細(xì)介紹。

三、變量的全局訪問(wèn)


對(duì)于挑戰(zhàn)1,為了更便捷地實(shí)現(xiàn)數(shù)據(jù)的“多端協(xié)同”,HarmonyOS提供了變量的全局訪問(wèn)框架。

上面分布式文檔演示場(chǎng)景中,文檔演示狀態(tài)(比如翻頁(yè)、頁(yè)面放大、頁(yè)面縮小和涂鴉等)其實(shí)就是變量。如果這些變量支持“全局”訪問(wèn),那么開(kāi)發(fā)者跨設(shè)備訪問(wèn)這些變量就能像操作本地變量一樣,數(shù)據(jù)就能夠自動(dòng)高效、便捷地多端同步了。為了實(shí)現(xiàn)變量的“全局”訪問(wèn),HarmonyOS提出了“分布式數(shù)據(jù)對(duì)象”的概念,將變量封裝成分布式數(shù)據(jù)對(duì)象。


1.“分布式數(shù)據(jù)對(duì)象”的設(shè)計(jì)理念


分布式數(shù)據(jù)對(duì)象的設(shè)計(jì)理念如圖3所示?;诜植际杰浛偩€能力和分布式內(nèi)存數(shù)據(jù)庫(kù)的跨設(shè)備同步能力,HarmonyOS構(gòu)建了基于JS對(duì)象(也就是分布式數(shù)據(jù)對(duì)象)的接口。開(kāi)發(fā)者直接使用此接口就可以實(shí)現(xiàn)跨設(shè)備的數(shù)據(jù)同步,無(wú)需關(guān)注底層通信過(guò)程,可以更關(guān)注于業(yè)務(wù)邏輯的開(kāi)發(fā)。

圖3 “分布式數(shù)據(jù)對(duì)象”設(shè)計(jì)理念



2.三步使用“分布式數(shù)據(jù)對(duì)象”


“分布式數(shù)據(jù)對(duì)象”接口極為簡(jiǎn)單、易用,只需要3個(gè)步驟:

(1)定義JS對(duì)象的時(shí)候繼承DistributedDataObject基類

(2)設(shè)置objectiD、sessionID

(3)訂閱分布式數(shù)據(jù)對(duì)象的變化(可選)

此外,其他與本地對(duì)象操作完全一致。

“分布式數(shù)據(jù)對(duì)象”接口的基類、方法和參數(shù)說(shuō)明如下:

圖4 “分布式數(shù)據(jù)對(duì)象”接口說(shuō)明



下面我們來(lái)看看“分布式數(shù)據(jù)對(duì)象”接口使用的示例代碼。圖5是多端協(xié)同發(fā)起方的示例代碼,圖6是多端協(xié)同接收方的示例代碼。

圖5 多端協(xié)同發(fā)起方的示例代碼



圖6 多端協(xié)同接收方的示例代碼

四、文件的全局訪問(wèn)和分享


對(duì)于挑戰(zhàn)2,為了更高效地實(shí)現(xiàn)數(shù)據(jù)的“跨端遷移”,HarmonyOS提供了文件的全局訪問(wèn)框架和分享框架。(為了方便理解,圖7僅展示了分布式數(shù)據(jù)管理平臺(tái)中的文件部分。)

圖7 分布式數(shù)據(jù)管理平臺(tái)(文件部分)


如圖7所示,文件訪問(wèn)框架分為應(yīng)用文件訪問(wèn)框架和公共文件訪問(wèn)框架。

HarmonyOS 2已經(jīng)提供應(yīng)用文件訪問(wèn)框架,HarmonyOS即將發(fā)布的新版本中會(huì)新增公共文件訪問(wèn)框架和文件共享框架,增強(qiáng)文件的全局訪問(wèn)和分享能力,從而實(shí)現(xiàn)屏蔽物理存儲(chǔ)位置,達(dá)到讓應(yīng)用可以像訪問(wèn)本地文件一樣訪問(wèn)遠(yuǎn)端文件的目標(biāo)。

基于新增的公共文件訪問(wèn)框架和文件共享框架,我們來(lái)看看如何實(shí)現(xiàn)兩個(gè)典型的文件使用場(chǎng)景:

1.直接打開(kāi)遠(yuǎn)端文件

場(chǎng)景說(shuō)明:直接在設(shè)備A上打開(kāi)設(shè)備B上的公共文件。

實(shí)現(xiàn)說(shuō)明:開(kāi)發(fā)者將分布式文件系統(tǒng)接入文件選擇器(File Picker),應(yīng)用就可以通過(guò)分布式的File Picker直接打開(kāi)、編輯遠(yuǎn)端文件,不需要進(jìn)行跨設(shè)備的文件發(fā)送。

實(shí)現(xiàn)代碼示例如下:

  1. var parameter = {
  2. “want”: {
  3. action”: “action.com.huawei.filecenter.PICKER_ACITON”
  4. },
  5. };
  6. featureAbility.startAbilityForResult(parameter, (err, data) => {
  7. ………// 可直接打開(kāi)、編輯遠(yuǎn)端文件
  8. })

復(fù)制代碼

實(shí)現(xiàn)效果如圖8所示,用戶在本機(jī)上可以選擇遠(yuǎn)端設(shè)備,可以看到遠(yuǎn)端設(shè)備上的文件列表,并且能直接打開(kāi)和編輯遠(yuǎn)端文件。

圖8 直接打開(kāi)遠(yuǎn)端文件

2.文件的“跨端遷移”

場(chǎng)景說(shuō)明:設(shè)備A分享一個(gè)公共文件給設(shè)備B,在設(shè)備B上打開(kāi)該文件。

實(shí)現(xiàn)說(shuō)明:此場(chǎng)景下,設(shè)備A并沒(méi)有將文件真的發(fā)送給設(shè)備B,而是在設(shè)備A和設(shè)備B之間建立了文件的映射關(guān)系,設(shè)備B通過(guò)此映射關(guān)系遠(yuǎn)程訪問(wèn)設(shè)備A上的文件。具體實(shí)現(xiàn)流程如圖9所示。

圖9 文件的“跨端遷移”

實(shí)現(xiàn)步驟和示例代碼如下:

(1)設(shè)備A分享文件句柄給設(shè)備B。

  1. handoffHelper.creator(networkID, fd);

復(fù)制代碼


(2)設(shè)備A和設(shè)備B建立文件的映射關(guān)系。

(3)設(shè)備B收到文件分享消息后,響應(yīng)消息并獲取文件的URI。

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

復(fù)制代碼


(4)設(shè)備B上的應(yīng)用通過(guò)URI打開(kāi)遠(yuǎn)端文件。

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

復(fù)制代碼


五、結(jié)束語(yǔ)


分布式數(shù)據(jù)管理平臺(tái)新增變量和文件的全局訪問(wèn)框架,以及文件分享框架,幫助開(kāi)發(fā)者更便捷地實(shí)現(xiàn)數(shù)據(jù)的“多端協(xié)同”,更高效地實(shí)現(xiàn)數(shù)據(jù)的“跨端遷移”。這些新能力將在HarmonyOS的新版本中體現(xiàn),敬請(qǐng)期待!

HarmonyOS正在不斷成長(zhǎng),期待更多的開(kāi)發(fā)者加入我們,一起見(jiàn)證HarmonyOS的成長(zhǎng)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7035

    瀏覽量

    89045
  • 開(kāi)發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    17013
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2352

    瀏覽量

    42863
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1975

    瀏覽量

    30209
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自動(dòng)化測(cè)量軟件,直徑測(cè)量更便捷

    傳輸方面,軟件的測(cè)量數(shù)據(jù)可以通過(guò)有線、無(wú)線網(wǎng)絡(luò)向用戶指定的電腦、手機(jī)、生產(chǎn)車間控制系統(tǒng)傳送指定的數(shù)據(jù),用戶也可以通過(guò)電腦訪問(wèn)方式、手機(jī)APP訪問(wèn)方式讀取測(cè)量軟件數(shù)據(jù)庫(kù)內(nèi)的測(cè)量、統(tǒng)計(jì)數(shù)據(jù)
    發(fā)表于 01-16 10:40

    DigiPCBA(便捷高效硬件項(xiàng)目協(xié)同設(shè)計(jì)工具)上手視頻演示

    `現(xiàn)在電子發(fā)燒友推出的DigiPCBA——一款便捷高效硬件項(xiàng)目協(xié)同設(shè)計(jì)工具幫您實(shí)現(xiàn)專屬夢(mèng)想。一款便捷高效硬件項(xiàng)目
    發(fā)表于 03-18 11:04

    HDC2021技術(shù)分論壇:分布式計(jì)算技術(shù)初探

    的分布式卸載和協(xié)同能力組合成能勝任各種新業(yè)務(wù)場(chǎng)景需求的超級(jí)終端圖1 分布式計(jì)算能力簡(jiǎn)單一句話來(lái)概括就是“
    發(fā)表于 11-15 14:54

    HDC2021技術(shù)分論壇:分布式計(jì)算技術(shù)初探

    池為用戶的高體驗(yàn)應(yīng)用提供隨需算力和特定能力的分布式卸載和協(xié)同能力組合成能勝任各種新業(yè)務(wù)場(chǎng)景需求的超級(jí)終端圖1 分布式計(jì)算
    發(fā)表于 11-23 17:06

    能力數(shù)據(jù)多端協(xié)同更便捷,數(shù)據(jù)遷移更高效!

    ,幫助開(kāi)發(fā)者更便捷地實(shí)現(xiàn)數(shù)據(jù)的“多端協(xié)同”,更高效地實(shí)現(xiàn)數(shù)據(jù)的“
    發(fā)表于 01-11 10:41

    通過(guò)HarmonyOS分布式能力實(shí)現(xiàn)任務(wù)的設(shè)備遷移設(shè)計(jì)資料分享

    的文檔或圖片素材,此時(shí)需要在不同設(shè)備間反復(fù)操作。想要解決這些問(wèn)題,我們可以通過(guò) HarmonyOS 的分布式能力實(shí)現(xiàn)任務(wù)的設(shè)備遷移,保證業(yè)務(wù)在手機(jī)、平板等終端間無(wú)縫銜接,輕松的完成多設(shè)備之間的
    發(fā)表于 03-25 16:59

    DevEco Studio新特性分享-語(yǔ)言調(diào)試,調(diào)試更便捷高效

    HarmonyOS應(yīng)用及服務(wù)的一站式集成開(kāi)發(fā)環(huán)境。本次分享DevEco Studio 3.1 Canary1上線的新特性- ArkTS與C++語(yǔ)言調(diào)試,調(diào)試更便捷高效。 一、什么是
    發(fā)表于 01-04 11:45

    ArkUI新能力,助力應(yīng)用開(kāi)發(fā)更便捷

    的用戶體驗(yàn)。隨著HarmonyOS 3.1版本的發(fā)布,ArkUI也新增許多能力,助力應(yīng)用開(kāi)發(fā)更便捷。 ArkUI框架新增能力概覽 ArkUI能力一直在不斷構(gòu)建中,如下圖所示,藍(lán)色模塊
    發(fā)表于 02-15 11:40

    OpenHarmony應(yīng)用模型的構(gòu)成要素與Stage優(yōu)勢(shì)

    ,便捷實(shí)現(xiàn)遷移。 在多端協(xié)同場(chǎng)景下,應(yīng)用組件具備組件間通信的RPC調(diào)用
    發(fā)表于 09-26 16:48

    2021年OPPO開(kāi)發(fā)者大會(huì) Color OS提供統(tǒng)一協(xié)同能力

    2021年OPPO開(kāi)發(fā)者大會(huì)劉海鋒:Color OS提供統(tǒng)一協(xié)同能力,設(shè)備之間可以統(tǒng)一連接數(shù)據(jù)服務(wù)。
    的頭像 發(fā)表于 10-27 14:25 ?1830次閱讀
    2021年OPPO開(kāi)發(fā)者大會(huì) Color OS提供統(tǒng)一<b class='flag-5'>跨</b><b class='flag-5'>端</b><b class='flag-5'>協(xié)同</b><b class='flag-5'>能力</b>

    HarmonyOS中如何進(jìn)行遷移

    ?? 流轉(zhuǎn)在 HarmonyOS 中泛指多設(shè)備分布式操作,也是 HarmonyOS 的亮點(diǎn)之一。 ???? 流轉(zhuǎn)按體驗(yàn)可以分為遷移多端協(xié)同
    的頭像 發(fā)表于 11-15 09:38 ?2442次閱讀

    DevEco Studio新特性分享-語(yǔ)言調(diào)試,調(diào)試更便捷高效

    調(diào)試更便捷高效。 一 什么是語(yǔ)言調(diào)試 在日常開(kāi)發(fā)活動(dòng)中,開(kāi)發(fā)者會(huì)靈活運(yùn)用每種開(kāi)發(fā)語(yǔ)言的長(zhǎng)處來(lái)編寫程序,在一個(gè)工程中可能會(huì)包含多種語(yǔ)言。 一般情況下,會(huì)在HarmonyOS的工程中
    的頭像 發(fā)表于 01-05 13:00 ?1334次閱讀

    工業(yè)樹(shù)莓派遠(yuǎn)程I/O控制套裝—更高效、更靈活、更便捷

    虹科工業(yè)樹(shù)莓派遠(yuǎn)程I/O套裝—以虹科工業(yè)樹(shù)莓派RevPi Connect作為主站設(shè)備,虹科HK-MXB系列作為從站設(shè)備,套裝搭配,擴(kuò)展方便,為您提供更靈活、更高效、更便捷數(shù)據(jù)采集方案。
    的頭像 發(fā)表于 04-20 17:22 ?784次閱讀

    訊維融合通信系統(tǒng):溝通更智能、更便捷、更高效

    融合通信系統(tǒng),作為現(xiàn)代通信技術(shù)的杰出代表,正以其獨(dú)特的優(yōu)勢(shì)助力企業(yè)、組織乃至個(gè)人實(shí)現(xiàn)更智能、更便捷、更高效的溝通。訊維融合通信系統(tǒng),作為其中的佼佼者,以其卓越的性能和廣泛的應(yīng)用領(lǐng)域,為用戶帶來(lái)
    的頭像 發(fā)表于 04-12 16:28 ?440次閱讀

    鴻蒙開(kāi)發(fā):應(yīng)用組件設(shè)備交互(流轉(zhuǎn))【多端協(xié)同

    由于“多端協(xié)同任務(wù)管理”能力尚未具備,開(kāi)發(fā)者當(dāng)前只能通過(guò)開(kāi)發(fā)系統(tǒng)應(yīng)用獲取設(shè)備列表,不支持三方應(yīng)用接入。
    的頭像 發(fā)表于 06-13 10:42 ?806次閱讀
    鴻蒙開(kāi)發(fā):應(yīng)用組件<b class='flag-5'>跨</b>設(shè)備交互(流轉(zhuǎn))【<b class='flag-5'>多端</b><b class='flag-5'>協(xié)同</b>】