一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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ù)對(duì)象的產(chǎn)生背景、原理及開發(fā)案例

科技觀點(diǎn) ? 來(lái)源:科技觀點(diǎn) ? 作者:科技觀點(diǎn) ? 2022-04-27 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

一、背景介紹

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

下面先看兩個(gè)分布式場(chǎng)景的示例:

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

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

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

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

二、原理解析

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

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

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

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

pYYBAGJo6lCASuZ3AAAs8wf0xhg220.png

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

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

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

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

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

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

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

poYBAGJo6lGAAGSxAAA5V0ogv58182.png

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

2. 對(duì)象的生命周期

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

pYYBAGJo6lGAM71LAAAiZAT8rvE420.png

圖5 生命周期

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

poYBAGJo6lGADgx6AAA2nAf5wUA491.png

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

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

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

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

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

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

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

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

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

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

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

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

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

1. 創(chuàng)建對(duì)象

2. 設(shè)置sessionID

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

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

代碼示例如下:

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

pYYBAGJo6lGAbgUSAAD7YzZdNcQ371.png

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

https://gitee.com/openharmony/distributeddatamgr_objectstore

后續(xù)倉(cāng)庫(kù)還將陸續(xù)發(fā)出分布式數(shù)據(jù)對(duì)象的sample哦,敬請(qǐ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)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7147

    瀏覽量

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

    關(guān)注

    0

    文章

    9

    瀏覽量

    9043
  • OpenHarmony
    +關(guān)注

    關(guān)注

    29

    文章

    3853

    瀏覽量

    18594
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    雙電機(jī)分布式驅(qū)動(dòng)汽車高速穩(wěn)定性機(jī)電耦合控制

    摘要:為了利用所設(shè)計(jì)的雙電機(jī)防滑差速驅(qū)動(dòng)系統(tǒng)來(lái)提高分布式驅(qū)動(dòng)汽車的動(dòng)力學(xué)性能,在前期同軸耦合驅(qū)動(dòng)控制理論研究的基礎(chǔ)上,開展該車的高速穩(wěn)定性機(jī)電耦合控制研究。建立并驗(yàn)證包含所設(shè)計(jì)驅(qū)動(dòng)系統(tǒng)在內(nèi)的分布式
    發(fā)表于 06-18 16:37

    分布式站點(diǎn)設(shè)備出現(xiàn)異常故障如何快速定位并進(jìn)行維護(hù)

    一、行業(yè)背景 隨著數(shù)字化、經(jīng)濟(jì)化進(jìn)程的飛速發(fā)展,分布式站點(diǎn)在各個(gè)行業(yè)中的應(yīng)用愈發(fā)廣泛。無(wú)論是集團(tuán)企業(yè)的分布式工廠,還是城市生命線的供水泵站,亦或是負(fù)責(zé)存儲(chǔ)與處理海量數(shù)據(jù)
    的頭像 發(fā)表于 03-03 11:02 ?304次閱讀
    <b class='flag-5'>分布式</b>站點(diǎn)設(shè)備出現(xiàn)異常故障如何快速定位并進(jìn)行維護(hù)

    分布式存儲(chǔ)有哪幾種類型?

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

    分布式日志追蹤ID實(shí)戰(zhàn)

    作者:京東物流 張小龍 本文通過(guò)介紹分布式應(yīng)用下各個(gè)場(chǎng)景的全局日志ID透?jìng)魉悸?,以及介紹分布式日志追蹤ID簡(jiǎn)單實(shí)現(xiàn)原理和實(shí)戰(zhàn)效果,從而達(dá)到通過(guò)提高日志查詢排查問(wèn)題的效率。 背景 開發(fā)
    的頭像 發(fā)表于 01-20 10:16 ?636次閱讀

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

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

    基于ptp的分布式系統(tǒng)設(shè)計(jì)

    在現(xiàn)代分布式系統(tǒng)中,精確的時(shí)間同步對(duì)于確保數(shù)據(jù)一致性、系統(tǒng)穩(wěn)定性和性能至關(guān)重要。PTP(Precision Time Protocol)是一種網(wǎng)絡(luò)協(xié)議,用于在分布式系統(tǒng)中實(shí)現(xiàn)高精度的時(shí)間同步
    的頭像 發(fā)表于 12-29 10:09 ?564次閱讀

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

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

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

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

    大型工商業(yè)分布式光伏如何配置防逆流方案?

    國(guó)家能源局綜合司發(fā)布的《分布式光伏發(fā)電開發(fā)建設(shè)管理辦法(征求意見稿)》對(duì)分布式光伏發(fā)電項(xiàng)目的開發(fā)建設(shè)提供了更清晰的規(guī)范指導(dǎo),該管理辦法中規(guī)定“大型工商業(yè)
    的頭像 發(fā)表于 12-19 18:04 ?915次閱讀
    大型工商業(yè)<b class='flag-5'>分布式</b>光伏如何配置防逆流方案?

    分布式光伏為企業(yè)帶來(lái)哪些便捷!

    光伏開發(fā)試點(diǎn)方案的通知》中指出:“為加快推進(jìn)屋頂分布式光伏發(fā)展,擬在全國(guó)組織開展整縣(市、區(qū))推進(jìn)屋頂分布式光伏開發(fā)試點(diǎn)工作”? 一,行業(yè)痛點(diǎn): 1,監(jiān)管困難:
    的頭像 發(fā)表于 11-18 15:34 ?736次閱讀
    <b class='flag-5'>分布式</b>光伏為企業(yè)帶來(lái)哪些便捷!

    分布式光纖測(cè)溫解決方案

    分布式光纖測(cè)溫解決方案
    的頭像 發(fā)表于 11-12 01:02 ?562次閱讀
    <b class='flag-5'>分布式</b>光纖測(cè)溫解決方案

    分布式光纖測(cè)溫是什么?應(yīng)用領(lǐng)域是?

    時(shí),該處的散射光特性會(huì)受到影響。通過(guò)高速信號(hào)采集與數(shù)據(jù)處理技術(shù),可以準(zhǔn)確地定位發(fā)生溫度變化的位置,并給出實(shí)時(shí)的溫度信息。簡(jiǎn)而言之,分布式光纖測(cè)溫技術(shù)將整條傳輸光纖作為傳感器,光纖上的每一點(diǎn)都兼具“傳”和“感”
    的頭像 發(fā)表于 10-24 15:30 ?1248次閱讀
    <b class='flag-5'>分布式</b>光纖測(cè)溫是什么?應(yīng)用領(lǐng)域是?

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

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

    安科瑞分布式光伏監(jiān)控系統(tǒng)的應(yīng)用

    隨著“雙碳”目標(biāo)的提出,開發(fā)利用可再生能源已成為必然趨勢(shì)。新能源發(fā)電作為能源利用的一種重要形式,已經(jīng)受到越來(lái)越多的關(guān)注。相對(duì)于大容量、高電壓、遠(yuǎn)距離輸送的集中發(fā)電方式,分布式光伏具有容量小、電壓
    的頭像 發(fā)表于 08-14 08:41 ?604次閱讀
    安科瑞<b class='flag-5'>分布式</b>光伏監(jiān)控系統(tǒng)的應(yīng)用

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

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