国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是分布式數據對象呢?

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

掃碼添加小助手

加入工程師交流群

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

一、背景介紹

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

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

示例:可觸屏和TV的協作

在 TV/PAD 上觀看視頻時,在可觸屏設備上控制 TV/PAD 上的播放狀態、進度、音量和速度等,實現多端控制。

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

圖1 多端控制,解放設備限制

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

為此,本次 OpenHarmony v3.1 Release 版本新增了分布式數據對象特性。分布式數據對象為開發者在分布式應用場景下提供簡單易用的 JS 接口,輕松實現多設備間同應用的數據協同,同時設備間可以監聽對象的狀態和數據變更。與傳統方式相比,分布式數據對象大大減少了開發者的工作量。

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

二、原理解析

這么簡單高效的分布式數據對象技術具體如何實現的呢?讓我們來一一解析~

1.對象的數據同步

分布式數據對象,最重要的功能就是對象之間的數據同步。可信組網內的設備可以在本地創建分布式數據對象,并設置 sessionID。不同設備上的分布式數據對象,通過設置相同的 sessionID,建立對象之間的同步關系。

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

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

圖2對象的同步關系

一個同步關系中,一個設備只能有一個對象加入。比如圖 3 中,設備 A 的“分布式數據對象 1”已經加入了 session1 的同步關系,所以,設備 A 的“分布式數據對象 2”就加入失敗了。

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

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

(2)監聽數據變更,感知其他對象對共享對象數據的修改。

(3)監聽狀態變更,感知其他對象的加入和離開。

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

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

圖3數據視圖

2.對象的生命周期

接下來,我們從生命周期的角度來全面認識一下分布式數據對象。

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

圖4生命周期

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

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

圖5對象的三種狀態

根據條件變化,對象在這三種狀態之間會來回切換:

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

本端或遠端設備下線,或者 sessionID 被清除,那么對象又切回本地對象狀態。分布式對象實例和對應的內存數據庫都保存在應用程序的進程空間,當應用程序退出后,分布式對象和內存數據庫也隨之銷毀,對象直接進入未初始化狀態。

三、開發約束及案例

經過上面的介紹,大家對分布式數據對象已經有了充分的了解了,下面就要介紹開發者們最關心的“怎么用”的問題了。

在使用分布式數據對象之前,我們先說明一下相關的開發約束:

1. 單個應用程序最多只能創建 16 個分布式數據對象實例。

2. 考慮到性能和用戶體驗,最多不超過 3 個設備進行數據協同。

3. 考慮到性能和用戶體驗,分布式數據對象大小限制在 500KB 以內。

4. 分布式數據對象的數據同步發生在同一個應用程序下,且同 session ID 之間。

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

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

1. 創建對象

2. 設置 sessionID

3. 設置監聽對象變更的回調

4. 監聽狀態變更

代碼示例如下:

1. 設備 A 的 JS 代碼示例:



		

import distributedObject from '@ohos.data.distributedDataObject'//創建對象,對象包含三個屬性:name、age和isVisvar g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false});//設置sessionID為“123456”g_object.setSessionId("123456"); //設置監聽對象變更的回調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. 設備 B 的 JS 代碼示例:




		

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

本期,我們為大家講解了分布式數據對象的產生背景、原理及開發案例。如果你想體驗更詳細的分布式數據對象,歡迎加入 OpenHarmony 開源項目,項目對應分布式數據庫倉庫地址:

https://gitee.com/openharmony/distributeddatamgr_objectstore

后續倉庫還將陸續發出分布式數據對象的 sample 哦,敬請期待!

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 分布式數據
    +關注

    關注

    0

    文章

    9

    瀏覽量

    9161
  • OpenHarmony
    +關注

    關注

    33

    文章

    3952

    瀏覽量

    21115

原文標題:分布式數據對象:超級終端的"全局變量"

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TiDB分布式數據庫運維實踐

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

    分布式 IO 選型注意事項

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

    光伏規約轉換器分布式光伏調控“四可”并網實施案例

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

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

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

    【節能學院】Acrel-1000DP分布式光伏監控系統在奉賢平高食品 4.4MW 分布式光伏中應用

    分布式光伏本地和遠程通信方案,并研究分布式光伏采集模型的構建、多源數據融合估計、面向分布式光伏的有功、無功功率優化控制等關鍵技術,實現了對小容量工商業
    的頭像 發表于 08-23 08:04 ?3503次閱讀
    【節能學院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏監控系統在奉賢平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中應用

    分布式光伏發電監測系統技術方案

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

    Ceph分布式存儲系統解析

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

    雙電機分布式驅動汽車高速穩定性機電耦合控制

    摘要:為了利用所設計的雙電機防滑差速驅動系統來提高分布式驅動汽車的動力學性能,在前期同軸耦合驅動控制理論研究的基礎上,開展該車的高速穩定性機電耦合控制研究。建立并驗證包含所設計驅動系統在內的分布式
    發表于 06-18 16:37

    曙光存儲領跑中國分布式存儲市場

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

    分布式光伏電力問題層出不窮?安科瑞分布式光伏運維系統來“救場”

    一、分布式光伏電力運維,痛點大揭秘? ? 分布式光伏作為實現綠色能源轉型的關鍵一環,近年來在我國得到了迅猛發展。國家能源局數據顯示,截至 2023 年底,中國分布式光伏電站累計并網容量
    的頭像 發表于 05-07 17:14 ?975次閱讀
    <b class='flag-5'>分布式</b>光伏電力問題層出不窮?安科瑞<b class='flag-5'>分布式</b>光伏運維系統來“救場”

    分布式存儲數據恢復—虛擬機上hbase和hive數據數據恢復案例

    分布式存儲數據恢復環境: 16臺某品牌R730xd服務器節點,每臺服務器節點上有數臺虛擬機。 虛擬機上部署Hbase和Hive數據庫。 分布式存儲故障:
    的頭像 發表于 04-17 11:05 ?725次閱讀

    分布式光伏如何實現防逆流

    ,對規劃建設新型能源體系、達成“雙碳”目標具有重要意義。 針對分布式光伏政策提倡就地消納,不允許并網,對于新上的分布式光伏需要設置防逆流管理,那我們應當在哪里監視分布式光伏發電系
    的頭像 發表于 03-25 16:03 ?566次閱讀
    <b class='flag-5'>分布式</b>光伏如何實現防逆流

    分布式光伏如何實現防逆流?

    分布式光伏如何實現防逆流
    的頭像 發表于 03-24 13:31 ?836次閱讀
    <b class='flag-5'>分布式</b>光伏如何實現防逆流?

    分布式dtu和分散dtu說明介紹

    分布式dtu和分散dtu有保護測控單元和綜合通訊單元組成,自愈采用基于通用面向對象變電站事件(GOOSE)的高速網絡通信方 ,利用配電網中相鄰開關的故障信息,快速定位故障位置并自動
    的頭像 發表于 03-19 22:25 ?3390次閱讀
    <b class='flag-5'>分布式</b>dtu和分散<b class='flag-5'>式</b>dtu說明介紹

    MCU分布式模塊化自動測量單元:數據傳輸與處理能力如何?

    在現代工程監測中,MCU分布式模塊化自動測量單元(MCU)以其靈活的配置和強大的數據處理能力,成為了各類安全監測項目的理想選擇。本文將深入探討MCU的工作原理、數據傳輸方式以及其在實際應用中的優勢
    的頭像 發表于 03-12 14:09 ?878次閱讀
    MCU<b class='flag-5'>分布式</b>模塊化自動測量單元:<b class='flag-5'>數據</b>傳輸與處理能力如何?