日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

什么是分布式數(shù)據(jù)對象呢?

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-06-07 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

3月底發(fā)布的OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)3.1 Release版本中,新增了分布式數(shù)據(jù)對象特性。什么是分布式數(shù)據(jù)對象呢?本期就讓我們一起來了解一下~

一、背景介紹

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

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

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

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

0dde95e2-e59a-11ec-ba43-dac502259ad0.jpg

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

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

為此,本次 OpenHarmony v3.1 Release 版本新增了分布式數(shù)據(jù)對象特性。分布式數(shù)據(jù)對象為開發(fā)者在分布式應(yīng)用場景下提供簡單易用的 JS 接口,輕松實現(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ù)具體如何實現(xiàn)的呢?讓我們來一一解析~

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

分布式數(shù)據(jù)對象,最重要的功能就是對象之間的數(shù)據(jù)同步??尚沤M網(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)系。

0dfe75ec-e59a-11ec-ba43-dac502259ad0.png

圖2對象的同步關(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ù)同步時只需同步此變更的屬性。

0e247940-e59a-11ec-ba43-dac502259ad0.png

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

2.對象的生命周期

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

0e6976a8-e59a-11ec-ba43-dac502259ad0.png

圖4生命周期

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

0e8dbe14-e59a-11ec-ba43-dac502259ad0.png

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

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

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

本端或遠(yuǎn)端設(shè)備下線,或者 sessionID 被清除,那么對象又切回本地對象狀態(tài)。分布式對象實例和對應(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ù)對象實例。

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

3. 考慮到性能和用戶體驗,分布式數(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)系。一個對象的屬性變更會自動同步到另一個對象,從而實現(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 代碼示例:



		

import distributedObject from '@ohos.data.distributedDataObject'//創(chuàng)建對象,對象包含三個屬性:name、age和isVisvar g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});//設(shè)置sessionID為“123456”g_object.setSessionId("123456"); //設(shè)置監(jiān)聽對象變更的回調(diào)changeCallback : function (sessionId, changeData) { if (changeData != null && changeData != undefined) { changeData.forEach(element => { console.info("changed !" + element + " " + g_object[element]); }); }} g_object.on("change",this.changeCallback);

2. 設(shè)備 B 的 JS 代碼示例:




		

//創(chuàng)建對象,對象包含三個屬性:name、age和isVisvar g_object = distributedObject.createDistributedObject({name:"Amy", age:undefined, isVis:false});//設(shè)置sessionID為“123456”,這個session里已經(jīng)有設(shè)備A的對象g_object.setSessionId("123456"); //監(jiān)聽狀態(tài)變更statusCallback : function (sessionId, networkid, status) {//成功加入session并檢測到設(shè)備A上線if (status == "online" && networkid == networkid_A) {//此時設(shè)備A的age值是18,而本地age值是undefined,通過console.info自動同步設(shè)備A的age數(shù)據(jù)到本地。如果想使用本地數(shù)據(jù),可以把a(bǔ)ge初始值改為有效值,像name一樣。 console.info ("age = {g_object.age}"); g_object.name = "jack"; //此時設(shè)備A的changeCallback收到對象變更的回調(diào),打印出“changed !name jack”。//后續(xù)使用g_object.做的屬性修改都會自動同步給設(shè)備A,同時g_object.屬性訪問的數(shù)據(jù)都是session中的最新數(shù)據(jù)(也包括設(shè)備A上的修改)。設(shè)備A和B相當(dāng)于使用同一個全局變量g_object。 }}g_object.on("status",this.statusCallback);

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

https://gitee.com/openharmony/distributeddatamgr_objectstore

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

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    9

    瀏覽量

    9168
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3979

    瀏覽量

    21390

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

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    AI Ceph 分布式存儲教程資料大模型學(xué)習(xí)資料2026

    往往成為瓶頸。 AI 分布式存儲實戰(zhàn)的首要科技突破,在于摒棄了傳統(tǒng)的層級目錄結(jié)構(gòu),轉(zhuǎn)向扁平化的對象存儲與鍵值存儲架構(gòu)。通過去除元數(shù)據(jù)節(jié)點的中心化瓶頸,采用哈希環(huán)或一致性哈希算法進(jìn)行數(shù)據(jù)
    發(fā)表于 05-01 17:35

    2022全新版!Java分布式架構(gòu)設(shè)計與開發(fā)實戰(zhàn)(完結(jié))

    2022全新版!Java分布式架構(gòu)設(shè)計與開發(fā)實戰(zhàn)(完結(jié)) 分庫分表實戰(zhàn):Java海量數(shù)據(jù)存儲架構(gòu)設(shè)計 在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,隨著業(yè)務(wù)規(guī)模的指數(shù)級增長,數(shù)據(jù)庫性能瓶頸已成為制約系統(tǒng)發(fā)展的關(guān)鍵因素。當(dāng)單
    發(fā)表于 03-30 15:20

    TiDB分布式數(shù)據(jù)庫運(yùn)維實踐

    TiDB 是 PingCAP 開發(fā)的開源分布式關(guān)系型數(shù)據(jù)庫,兼容 MySQL 5.7 協(xié)議,底層存儲基于 TiKV(分布式 KV 存儲)和 RocksDB。它解決的核心問題是:當(dāng)單機(jī) MySQL 無法承載
    的頭像 發(fā)表于 03-04 15:44 ?350次閱讀

    分布式 IO 選型注意事項

    在工業(yè) 4.0 浪潮推動下,分布式 IO 作為工業(yè)互聯(lián)的核心底層設(shè)備,已成為制造業(yè)實現(xiàn)設(shè)備互聯(lián)、數(shù)據(jù)采集、柔性生產(chǎn)的關(guān)鍵支撐。本文將助力企業(yè)避開選型誤區(qū),最大化發(fā)揮分布式 IO 的應(yīng)用價值。? 產(chǎn)品
    的頭像 發(fā)表于 12-30 14:14 ?558次閱讀
    <b class='flag-5'>分布式</b> IO 選型注意事項

    光伏規(guī)約轉(zhuǎn)換器分布式光伏調(diào)控“四可”并網(wǎng)實施案例

    1.背景近年來,隨著國家分布式光伏的利好政策,各地分布式光伏裝機(jī)規(guī)模增加迅猛。分布式光伏具有間歇性、分散性、隨機(jī)性等特點,由于電網(wǎng)末端容量受限,海量分布式光伏接入電網(wǎng)可能引發(fā)電網(wǎng)潮流方
    的頭像 發(fā)表于 12-19 10:13 ?4408次閱讀
    光伏規(guī)約轉(zhuǎn)換器<b class='flag-5'>分布式</b>光伏調(diào)控“四可”并網(wǎng)實施案例

    如何解決分布式光伏計量難題?

    %。同時,可提升發(fā)電效率、降低發(fā)電成本的新型技術(shù)逐步落地,推動光伏系統(tǒng)向更高效、更緊湊的方向發(fā)展,進(jìn)而對電表在精度、數(shù)據(jù)更新速度及適配性方面也提出了更高要求。 分布式光伏遇計量難題 分布式光伏常用 “自己發(fā)的電自己用,用不完的賣
    的頭像 發(fā)表于 11-07 14:55 ?445次閱讀
    如何解決<b class='flag-5'>分布式</b>光伏計量難題?

    【節(jié)能學(xué)院】Acrel-1000DP分布式光伏監(jiān)控系統(tǒng)在奉賢平高食品 4.4MW 分布式光伏中應(yīng)用

    分布式光伏本地和遠(yuǎn)程通信方案,并研究分布式光伏采集模型的構(gòu)建、多源數(shù)據(jù)融合估計、面向分布式光伏的有功、無功功率優(yōu)化控制等關(guān)鍵技術(shù),實現(xiàn)了對小容量工商業(yè)
    的頭像 發(fā)表于 08-23 08:04 ?3695次閱讀
    【節(jié)能學(xué)院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏監(jiān)控系統(tǒng)在奉賢平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中應(yīng)用

    分布式光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案

    分布式光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案 柏峰【BF-GFQX】一、系統(tǒng)目標(biāo) :分布式光伏發(fā)電監(jiān)測系統(tǒng)旨在通過智能化的監(jiān)測手段,實現(xiàn)對分布式光伏電站的全方位、高精度、實時化管理。該系統(tǒng)能
    的頭像 發(fā)表于 08-22 10:51 ?3513次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)電監(jiān)測系統(tǒng)技術(shù)方案

    分布式光伏總出問題?安科瑞分布式光伏監(jiān)控系統(tǒng)來“救場”

    一、分布式光伏的痛點大揭秘 在 “雙碳” 目標(biāo)的大力推動下,分布式光伏作為綠色能源領(lǐng)域的重要力量,正以前所未有的速度蓬勃發(fā)展,越來越多的企業(yè)和家庭選擇安裝分布式光伏系統(tǒng)。然而,隨著分布式
    的頭像 發(fā)表于 07-16 16:50 ?981次閱讀
    <b class='flag-5'>分布式</b>光伏總出問題?安科瑞<b class='flag-5'>分布式</b>光伏監(jiān)控系統(tǒng)來“救場”

    Ceph分布式存儲系統(tǒng)解析

    在當(dāng)今數(shù)據(jù)爆炸的時代,企業(yè)對存儲系統(tǒng)的需求日益增長,傳統(tǒng)的集中式存儲已經(jīng)無法滿足大規(guī)模數(shù)據(jù)處理的要求。分布式存儲系統(tǒng)應(yīng)運(yùn)而生,而Ceph作為開源分布式存儲系統(tǒng)的佼佼者,以其高可用性、高
    的頭像 發(fā)表于 07-14 11:15 ?1261次閱讀

    分布式IO選型指南:2025年分布式無線遠(yuǎn)程IO品牌及采集控制方案詳解

    近年來,隨著工業(yè)物聯(lián)網(wǎng)(IIoT)、智能制造和工業(yè)4.0的深入發(fā)展,分布式無線遠(yuǎn)程IO模塊在工業(yè)控制領(lǐng)域的應(yīng)用愈發(fā)廣泛。這種模塊通過無線方式實現(xiàn)遠(yuǎn)程數(shù)據(jù)采集與控制,極大地提高了工業(yè)設(shè)施的靈活性和效率
    的頭像 發(fā)表于 06-23 09:48 ?1500次閱讀

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

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

    曙光存儲領(lǐng)跑中國分布式存儲市場

    近日,賽迪顧問發(fā)布《中國分布式存儲市場研究報告(2025)》,指出2024 年中國分布式存儲市場首次超過集中式存儲,規(guī)模達(dá) 198.2 億元,增速 43.7%。
    的頭像 發(fā)表于 05-19 16:50 ?1491次閱讀

    分布式光纖傳感的用途

    生態(tài)災(zāi)難。這些場景中,一種名為"分布式光纖傳感"的技術(shù)正悄然編織著一張無形的感知網(wǎng)絡(luò),用光信號的"語言"實時翻譯著環(huán)境的細(xì)微變化。 一、技術(shù)原理:光與物質(zhì)的"對話" 分布式光纖傳感技術(shù)的核心,在于將光纖本身轉(zhuǎn)化為兼具傳感與傳輸功能的"智能神
    的頭像 發(fā)表于 05-11 17:26 ?1659次閱讀

    分布式光伏電力問題層出不窮?安科瑞分布式光伏運(yùn)維系統(tǒng)來“救場”

    一、分布式光伏電力運(yùn)維,痛點大揭秘? ? 分布式光伏作為實現(xiàn)綠色能源轉(zhuǎn)型的關(guān)鍵一環(huán),近年來在我國得到了迅猛發(fā)展。國家能源局數(shù)據(jù)顯示,截至 2023 年底,中國分布式光伏電站累計并網(wǎng)容量
    的頭像 發(fā)表于 05-07 17:14 ?1123次閱讀
    <b class='flag-5'>分布式</b>光伏電力問題層出不窮?安科瑞<b class='flag-5'>分布式</b>光伏運(yùn)維系統(tǒng)來“救場”
    石渠县| 融水| 漠河县| 西吉县| 青浦区| 通城县| 五华县| 丰台区| 榆树市| 武夷山市| 舞阳县| 宜州市| 惠安县| 龙游县| 喀喇沁旗| 临清市| 武鸣县| 克山县| 比如县| 响水县| 寻甸| 屯门区| 新邵县| 临城县| 临江市| 蓬安县| 甘肃省| 德阳市| 龙岩市| 紫金县| 虹口区| 布尔津县| 荔浦县| 固原市| 越西县| 莆田市| 建德市| 巴彦县| 土默特右旗| 汕头市| 南召县|