色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

分布式數(shù)據(jù)對象的產(chǎn)生背景、原理及開發(fā)案例

科技觀點(diǎn) ? 來源:科技觀點(diǎn) ? 作者:科技觀點(diǎn) ? 2022-04-27 15:01 ? 次閱讀

原標(biāo)題:分布式數(shù)據(jù)對象:超級終端的"全局變量"

在3月底發(fā)布的OpenHarmony v3.1 Release版本中,新增了分布式數(shù)據(jù)對象特性。什么是分布式數(shù)據(jù)對象呢?本期就讓我們一起來了解一下。

一、背景介紹

OpenHarmony作為分布式操作系統(tǒng),支持運(yùn)行在不同的終端設(shè)備上。這些終端設(shè)備通過跨端遷移和多端協(xié)同等,可以為用戶提供豐富、流暢的全場景體驗(yàn)。在這種分布式場景下,不同設(shè)備之間需要進(jìn)行數(shù)據(jù)互通來實(shí)現(xiàn)設(shè)備間的配合。

下面先看兩個分布式場景的示例:

示例1:可觸屏和TV的協(xié)作

在TV/PAD上觀看視頻時,在可觸屏設(shè)備上控制TV/PAD上的播放狀態(tài)、進(jìn)度、音量和速度等,實(shí)現(xiàn)多端控制。

pYYBAGJo6lCAZQOyAAFHY0dggic470.png

圖1 多端控制,解放設(shè)備限制

示例2:詞典筆同步翻譯

使用詞典筆掃描書本內(nèi)容,在手機(jī)/PAD上同步展示翻譯結(jié)果、內(nèi)容鏈接、詞典、例句和音標(biāo)等。

poYBAGJo6lCAVPQsAACdAP9Evc8276.png

圖2 同步翻譯,學(xué)習(xí)不限小屏

要實(shí)現(xiàn)上面兩個示例的功能,首先必須實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)同步。傳統(tǒng)方式下,設(shè)備之間的數(shù)據(jù)同步,需要開發(fā)者完成消息處理邏輯,包括:建立通信鏈接、消息收發(fā)處理、錯誤重試、數(shù)據(jù)沖突解決等操作,工作量非常大。而且設(shè)備越多,調(diào)試復(fù)雜度將呈指數(shù)增長。是否有更簡單的實(shí)現(xiàn)方式?經(jīng)過分析,我們發(fā)現(xiàn),示例中的播放狀態(tài)、進(jìn)度、音量和速度等其實(shí)都是變量。如果這些變量支持“全局”訪問,那么開發(fā)者跨設(shè)備訪問這些變量就能像操作本地變量一樣,數(shù)據(jù)就能夠自動高效、便捷地實(shí)現(xiàn)多端同步了。

為此,本次OpenHarmony v3.1 Release版本新增了分布式數(shù)據(jù)對象特性。分布式數(shù)據(jù)對象為開發(fā)者在分布式應(yīng)用場景下提供簡單易用的JS接口,輕松實(shí)現(xiàn)多設(shè)備間同應(yīng)用的數(shù)據(jù)協(xié)同,同時設(shè)備間可以監(jiān)聽對象的狀態(tài)和數(shù)據(jù)變更。與傳統(tǒng)方式相比,分布式數(shù)據(jù)對象大大減少了開發(fā)者的工作量。

(為方便描述,后文中“分布式數(shù)據(jù)對象”也簡稱為“對象”。)

二、原理解析

這么簡單高效的分布式數(shù)據(jù)對象技術(shù)具體如何實(shí)現(xiàn)的呢?讓我們來一一解析~

1. 對象的數(shù)據(jù)同步

分布式數(shù)據(jù)對象,最重要的功能就是對象之間的數(shù)據(jù)同步。可信組網(wǎng)內(nèi)的設(shè)備可以在本地創(chuàng)建分布式數(shù)據(jù)對象,并設(shè)置sessionID。不同設(shè)備上的分布式數(shù)據(jù)對象,通過設(shè)置相同的sessionID,建立對象之間的同步關(guān)系。

如圖3所示,設(shè)備A和設(shè)備B上的“分布式數(shù)據(jù)對象1”,其sessionID均為session1,這兩個對象建立了session1的同步關(guān)系。

pYYBAGJo6lCASuZ3AAAs8wf0xhg220.png

圖3 對象的同步關(guān)系

一個同步關(guān)系中,一個設(shè)備只能有一個對象加入。比如圖3中,設(shè)備A的“分布式數(shù)據(jù)對象1”已經(jīng)加入了session1的同步關(guān)系,所以,設(shè)備A的“分布式數(shù)據(jù)對象2”就加入失敗了。

建立同步關(guān)系后,每個session有一份共享對象數(shù)據(jù)。加入了同一個session的對象,支持以下操作:

(1)讀取/修改session中的數(shù)據(jù)。

(2)監(jiān)聽數(shù)據(jù)變更,感知其他對象對共享對象數(shù)據(jù)的修改。

(3)監(jiān)聽狀態(tài)變更,感知其他對象的加入和離開。

關(guān)于分布式數(shù)據(jù)對象的數(shù)據(jù)同步,值得注意的是,同步的最小單位是“屬性”。比如,圖4中對象1包含三個屬性:name、age和parents。當(dāng)其中一個屬性變更時,則數(shù)據(jù)同步時只需同步此變更的屬性。

poYBAGJo6lGAAGSxAAA5V0ogv58182.png

圖4 數(shù)據(jù)視圖

2. 對象的生命周期

接下來,我們從生命周期的角度來全面認(rèn)識一下分布式數(shù)據(jù)對象。

pYYBAGJo6lGAM71LAAAiZAT8rvE420.png

圖5 生命周期

如圖5所示,對象包括三種狀態(tài):未初始化、本地對象和分布式對象。這三種狀態(tài)說明如下:

poYBAGJo6lGADgx6AAA2nAf5wUA491.png

圖6 對象的三種狀態(tài)

根據(jù)條件變化,對象在這三種狀態(tài)之間會來回切換:

最開始,對象處于未初始化狀態(tài)。實(shí)例化之后,對象就從未初始化狀態(tài)切換到本地對象狀態(tài)。給對象設(shè)置sessionID,收到對端設(shè)備對象上線通知后,此時可以跨設(shè)備同步數(shù)據(jù)了,對象就進(jìn)入了分布式對象狀態(tài)。

本端或遠(yuǎn)端設(shè)備下線,或者sessionID被清除,那么對象又切回本地對象狀態(tài)。分布式對象實(shí)例和對應(yīng)的內(nèi)存數(shù)據(jù)庫都保存在應(yīng)用程序的進(jìn)程空間,當(dāng)應(yīng)用程序退出后,分布式對象和內(nèi)存數(shù)據(jù)庫也隨之銷毀,對象直接進(jìn)入未初始化狀態(tài)。

三、開發(fā)約束及案例

經(jīng)過上面的介紹,大家對分布式數(shù)據(jù)對象已經(jīng)有了充分的了解了,下面就要介紹開發(fā)者們最關(guān)心的“怎么用”的問題了。

在使用分布式數(shù)據(jù)對象之前,我們先說明一下相關(guān)的開發(fā)約束:

1. 單個應(yīng)用程序最多只能創(chuàng)建16個分布式數(shù)據(jù)對象實(shí)例。

2. 考慮到性能和用戶體驗(yàn),最多不超過3個設(shè)備進(jìn)行數(shù)據(jù)協(xié)同。

3. 考慮到性能和用戶體驗(yàn),分布式數(shù)據(jù)對象大小限制在500KB以內(nèi)。

4. 分布式數(shù)據(jù)對象的數(shù)據(jù)同步發(fā)生在同一個應(yīng)用程序下,且同session ID之間。

接下來,我們通過一個簡單的開發(fā)案例來講解如何使用分布式數(shù)據(jù)對象。此案例中,設(shè)備A和設(shè)備B分別創(chuàng)建一個包含3個屬性的對象,這兩個對象加入到同一個session,建立同步關(guān)系。一個對象的屬性變更會自動同步到另一個對象,從而實(shí)現(xiàn) “全局變量”效果。

通過此案例,我們能夠掌握分布式數(shù)據(jù)對象的基本操作,包括:

1. 創(chuàng)建對象

2. 設(shè)置sessionID

3. 設(shè)置監(jiān)聽對象變更的回調(diào)

4. 監(jiān)聽狀態(tài)變更

代碼示例如下:

1. 設(shè)備A的JS代碼示例:

pYYBAGJo6lGAbgUSAAD7YzZdNcQ371.png

本期,我們?yōu)榇蠹抑v解了分布式數(shù)據(jù)對象的產(chǎn)生背景、原理及開發(fā)案例。如果你想體驗(yàn)更詳細(xì)的分布式數(shù)據(jù)對象,歡迎加入OpenHarmony開源項(xiàng)目,項(xiàng)目對應(yīng)分布式數(shù)據(jù)庫倉庫地址:

https://gitee.com/openharmony/distributeddatamgr_objectstore

后續(xù)倉庫還將陸續(xù)發(fā)出分布式數(shù)據(jù)對象的sample哦,敬請期待!

審核編輯:湯梓紅

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

    關(guān)注

    37

    文章

    6942

    瀏覽量

    124177
  • 分布式數(shù)據(jù)

    關(guān)注

    0

    文章

    9

    瀏覽量

    8970
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3770

    瀏覽量

    17053
收藏 人收藏

    評論

    相關(guān)推薦

    分布式存儲有哪幾種類型?

    分布式存儲有哪幾種類型?分布式存儲系統(tǒng)是一種將數(shù)據(jù)分散存儲在多臺獨(dú)立節(jié)點(diǎn)上的技術(shù),根據(jù)數(shù)據(jù)模型可分為鍵值存儲、列式存儲、文檔存儲和圖形存儲等類型;按
    的頭像 發(fā)表于 02-20 11:00 ?167次閱讀

    分布式云化數(shù)據(jù)庫有哪些類型

    分布式云化數(shù)據(jù)庫有哪些類型?分布式云化數(shù)據(jù)庫主要類型包括:關(guān)系型分布式數(shù)據(jù)庫、非關(guān)系型分布式數(shù)據(jù)
    的頭像 發(fā)表于 01-15 09:43 ?184次閱讀

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)文件資產(chǎn)遷移

    設(shè)備文件訪問實(shí)現(xiàn)文件的遷移,難以獲取文件同步完成的時間。為了保證更高的成功率,文件的遷移不建議繼續(xù)通過該方式實(shí)現(xiàn),推薦使用分布式數(shù)據(jù)對象攜帶資產(chǎn)的方式。開發(fā)者此前通過跨設(shè)備文件訪問實(shí)現(xiàn)
    發(fā)表于 12-24 10:11

    HarmonyOS Next 應(yīng)用元服務(wù)開發(fā)-分布式數(shù)據(jù)對象遷移數(shù)據(jù)權(quán)限與基礎(chǔ)數(shù)據(jù)

    設(shè)備文件訪問實(shí)現(xiàn)文件的遷移,難以獲取文件同步完成的時間。為了保證更高的成功率,文件的遷移不建議繼續(xù)通過該方式實(shí)現(xiàn),推薦使用分布式數(shù)據(jù)對象攜帶資產(chǎn)的方式。開發(fā)者此前通過跨設(shè)備文件訪問實(shí)現(xiàn)
    發(fā)表于 12-24 09:40

    基于分布式對象存儲WDS的信托非結(jié)構(gòu)化數(shù)據(jù)整合平臺

    基于分布式對象存儲WDS的信托非結(jié)構(gòu)化數(shù)據(jù)整合平臺
    的頭像 發(fā)表于 08-28 09:56 ?482次閱讀
    基于<b class='flag-5'>分布式</b><b class='flag-5'>對象</b>存儲WDS的信托非結(jié)構(gòu)化<b class='flag-5'>數(shù)據(jù)</b>整合平臺

    基于Openharmony輕量級操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案

    實(shí)驗(yàn)內(nèi)容本例程演示如何在小凌派-RK2206開發(fā)板上使用OpenHarmony輕量級操作系統(tǒng)進(jìn)行KvStore(即分布式數(shù)據(jù)管理)數(shù)據(jù)讀寫。例程:(1)創(chuàng)建兩個線程,一個負(fù)責(zé)寫入KvS
    的頭像 發(fā)表于 08-07 08:23 ?1151次閱讀
    基于Openharmony輕量級操作系統(tǒng)的<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>管理<b class='flag-5'>開發(fā)案</b>例

    鴻蒙開發(fā)管理:ohos.account.distributedAccount 分布式帳號管理

    獲取分布式帳號單實(shí)例對象
    的頭像 發(fā)表于 07-08 10:03 ?354次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>管理:ohos.account.distributedAccount <b class='flag-5'>分布式</b>帳號管理

    鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedDataObject (分布式數(shù)據(jù)對象)】

    本模塊提供管理基本數(shù)據(jù)對象的相關(guān)能力,包括創(chuàng)建、查詢、刪除、修改、訂閱等;同時支持相同應(yīng)用多設(shè)備間的分布式數(shù)據(jù)對象協(xié)同能力。
    的頭像 發(fā)表于 06-07 17:51 ?1594次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>數(shù)據(jù)</b>管理:【@ohos.data.distributedDataObject (<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>對象</b>)】

    鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

    分布式數(shù)據(jù)管理為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫的分布式協(xié)同能力。通過調(diào)用分布式數(shù)據(jù)各個接口,應(yīng)用程
    的頭像 發(fā)表于 06-07 09:30 ?1186次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>接口<b class='flag-5'>數(shù)據(jù)</b>管理:【@ohos.data.distributedData (<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>管理)】

    HarmonyOS開發(fā)實(shí)例:【分布式數(shù)據(jù)服務(wù)】

    分布式數(shù)據(jù)服務(wù)(Distributed Data Service,DDS)為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)分布式的能力。
    的頭像 發(fā)表于 04-18 10:18 ?861次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>實(shí)例:【<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>服務(wù)】

    HarmonyOS開發(fā)實(shí)例:【分布式新聞客戶端】

    基于柵格布局、設(shè)備管理和多端協(xié)同,實(shí)現(xiàn)一次開發(fā),多端部署的分布式新聞客戶端頁面。
    的頭像 發(fā)表于 04-17 15:57 ?992次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>實(shí)例:【<b class='flag-5'>分布式</b>新聞客戶端】

    OpenHarmony開發(fā)案例:【分布式遙控器】

    分布式遙控器將手機(jī)的輸入能力和電視遙控器的遙控能力結(jié)合為一體,從而快速便捷操控電視。
    的頭像 發(fā)表于 04-16 16:44 ?1103次閱讀
    OpenHarmony<b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>分布式</b>遙控器】

    OpenHarmony南向開發(fā)案例:【分布式畫板】

    使用OpenHarmony3.1-Release開發(fā)的應(yīng)用。通過OpenHarmony的分布式技術(shù),使多人能夠一起畫畫。
    的頭像 發(fā)表于 04-12 14:40 ?1172次閱讀
    OpenHarmony南向<b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>分布式</b>畫板】

    OpenHarmony開發(fā)案例:【分布式計(jì)算器】

    使用分布式能力實(shí)現(xiàn)了一個簡單的計(jì)算器應(yīng)用,可以進(jìn)行簡單的數(shù)值計(jì)算,支持遠(yuǎn)程拉起另一個設(shè)備的計(jì)算器應(yīng)用,兩個計(jì)算器應(yīng)用進(jìn)行協(xié)同計(jì)算。
    的頭像 發(fā)表于 04-11 15:24 ?1197次閱讀
    OpenHarmony<b class='flag-5'>開發(fā)案</b>例:【<b class='flag-5'>分布式</b>計(jì)算器】

    HarmonyOS開發(fā)實(shí)例:【分布式數(shù)據(jù)管理】

    eTS中分布式數(shù)據(jù)管理的使用,包括KVManager對象實(shí)例的創(chuàng)建和KVStore數(shù)據(jù)流轉(zhuǎn)的使用。
    的頭像 發(fā)表于 04-11 09:57 ?1033次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>實(shí)例:【<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>管理】
    主站蜘蛛池模板: 国产三级在线观看视频 | 王小军怎么了最新消息 | 欧美gv明星 | 动漫美女被羞羞动漫怪物 | 亚洲天堂999| 亚洲AV噜噜88| 午夜影院和视费x看 | 亚洲国产精品特色大片观看 | 国产成人免费网站在线观看 | 成年人在线视频免费观看 | 性888xxxx入欧美 | 不卡无线在一二三区 | 校花在公车上被内射好舒服 | 花蝴蝶在线观看免费8 | 伦理 电影在线观看百度影音 | 兔费看少妇性L交大片免费 偷偷要色偷偷 | 久久国产精品免费网站 | 伊人久久亚洲综合天堂 | 99久久网站 | 暖暖日本免费播放 | 欧美牲交A欧美牲交 | 亚洲高清国产拍精品动图 | 八妻子秋霞理在线播放 | 美女露100%全身无遮挡 | 色AV色婷婷97人妻久久久 | 91免费精品国自产拍在线可以看 | 好大好爽CAO死我了BL | 99久久蜜臀AV免费看蛮 | 9位美女厕所撒尿11分 | 嗯啊插的好深啊使劲抽视频 | 99久久精品免费看国产免费 | 亚洲第一综合天堂另类专 | 羞羞答答的免费视频在线观看 | 精品国产影院 | 亚洲中字慕日产2020 | 国产成人精品电影在线观看 | 国产精品久久国产三级国不卡顿 | 高肉黄暴NP文公交车 | 国产精品久久精品视 | 国产偷抇久久精品A片蜜臀A | 青青草久久 |