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

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

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

3天內不再提示

分布式數據對象的產生背景、原理及開發案例

科技觀點 ? 來源:科技觀點 ? 作者:科技觀點 ? 2022-04-27 15:01 ? 次閱讀

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

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

一、背景介紹

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

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

示例1:可觸屏和TV的協作

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

pYYBAGJo6lCAZQOyAAFHY0dggic470.png

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

示例2:詞典筆同步翻譯

使用詞典筆掃描書本內容,在手機/PAD上同步展示翻譯結果、內容鏈接、詞典、例句和音標等。

poYBAGJo6lCAVPQsAACdAP9Evc8276.png

圖2 同步翻譯,學習不限小屏

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

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

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

二、原理解析

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

1. 對象的數據同步

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

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

pYYBAGJo6lCASuZ3AAAs8wf0xhg220.png

圖3 對象的同步關系

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

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

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

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

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

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

poYBAGJo6lGAAGSxAAA5V0ogv58182.png

圖4 數據視圖

2. 對象的生命周期

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

pYYBAGJo6lGAM71LAAAiZAT8rvE420.png

圖5 生命周期

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

poYBAGJo6lGADgx6AAA2nAf5wUA491.png

圖6 對象的三種狀態

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

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

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

三、開發約束及案例

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

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

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

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

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

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

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

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

1. 創建對象

2. 設置sessionID

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

4. 監聽狀態變更

代碼示例如下:

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

pYYBAGJo6lGAbgUSAAD7YzZdNcQ371.png

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

https://gitee.com/openharmony/distributeddatamgr_objectstore

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

審核編輯:湯梓紅

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

    關注

    37

    文章

    6801

    瀏覽量

    123285
  • 分布式數據
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8923
  • OpenHarmony
    +關注

    關注

    25

    文章

    3713

    瀏覽量

    16255
收藏 人收藏

    評論

    相關推薦

    基于分布式對象存儲WDS的信托非結構化數據整合平臺

    基于分布式對象存儲WDS的信托非結構化數據整合平臺
    的頭像 發表于 08-28 09:56 ?329次閱讀
    基于<b class='flag-5'>分布式</b><b class='flag-5'>對象</b>存儲WDS的信托非結構化<b class='flag-5'>數據</b>整合平臺

    基于Openharmony輕量級操作系統的分布式數據管理開發案

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

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

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

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

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

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

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

    HarmonyOS開發實例:【分布式數據服務】

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

    HarmonyOS開發實例:【分布式新聞客戶端】

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

    OpenHarmony開發案例:【分布式遙控器】

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

    HarmonyOS實戰案例:【分布式賬本】

    Demo基于Open Harmony系統使用ETS語言進行編寫,本Demo主要通過設備認證、分布式拉起、分布式數據管理等功能來實現。
    的頭像 發表于 04-12 16:40 ?1313次閱讀
    HarmonyOS實戰案例:【<b class='flag-5'>分布式</b>賬本】

    OpenHarmony南向開發案例:【分布式畫板】

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

    OpenHarmony開發案例:【分布式計算器】

    使用分布式能力實現了一個簡單的計算器應用,可以進行簡單的數值計算,支持遠程拉起另一個設備的計算器應用,兩個計算器應用進行協同計算。
    的頭像 發表于 04-11 15:24 ?1027次閱讀
    OpenHarmony<b class='flag-5'>開發案</b>例:【<b class='flag-5'>分布式</b>計算器】

    HarmonyOS開發實例:【分布式數據管理】

    eTS中分布式數據管理的使用,包括KVManager對象實例的創建和KVStore數據流轉的使用。
    的頭像 發表于 04-11 09:57 ?927次閱讀
    HarmonyOS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>分布式</b><b class='flag-5'>數據</b>管理】

    鴻蒙OS 分布式任務調度

    形式、數據結構、服務描述語言,屏蔽硬件差異;支持遠程啟動、遠程調用、業務無縫遷移等分布式任務。 分布式任務調度平臺在底層實現 Ability(分布式任務調度的基本組件)跨設備的啟動/關
    的頭像 發表于 01-29 16:50 ?489次閱讀

    什么是分布式架構?

    1.獨立性:分布式架構中的各個節點是獨立運行的,它們沒有依賴關系,可以單獨進行升級、維護和擴展。 2.通信性:分布式架構中的各個節點通過網絡連接進行通信和協作,以實現數據的傳輸和共享。 3.負載均衡:
    的頭像 發表于 01-12 15:04 ?1229次閱讀
    什么是<b class='flag-5'>分布式</b>架構?

    分布式IO工業自動化數據采集與分析的核心

    工業自動化生產的效率。在傳統的工業自動化生產中,設備的控制和監測通常采用集中式控制方式,這種方式存在著設備連接復雜、數據傳輸速度慢、故障率高和擴展性差等問題。而分布式IO采用分布式控制方式,將設備按照
    發表于 12-28 14:47
    主站蜘蛛池模板: YELLOW视频直播在线观看高清| 免费。色婬网站| 欧美午夜免费观看福利片| 亚州AV中文无码乱人伦在线| 97色伦亚洲自偷| 国产色婷婷精品人妻蜜桃成熟时| 妹妹我要色| 99E久热只有精品8在线直播| 麻豆精品一区二正一三区| 亚洲色噜噜狠狠站欲八| 疯狂做受XXXX高潮欧美日本| 口内射精颜射极品合集| 校草让我脱了内裤给全班看| YELLOW免费观看2019| 日本2021免费一二三四区| 伊人网伊人网| 国产内射AV徐夜夜| 亚洲精品乱码久久久久久直播| 国产成人精品电影| 欧美午夜不卡在线观看| 超h高h肉h文教室生理课| 蜜桃99影院| jizzjizz3d动漫| 蜜桃传媒星空传媒在线播放| 99久久精品费精品国产一区二| 毛片一区二区三区| jaPanesmature儿母| 入禽太深在线观看免费高清| japanese from色系| 色综合色综合久久综合频道| 厨房玩朋友娇妻中文字幕| 欧美jizz19性欧美| 自慰弄湿白丝袜| 久久成人a毛片免费观看网站| 亚洲高清一区二区三区电影| 国产精品久免费的黄网站| 使劲别停好大好深好爽动态图| 成人国产精品视频频| 人人草人人草| 国产精品自在在线午夜精品| 午夜久久影院|