久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

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

        一、背景介紹

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

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

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

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

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

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

        示例2:詞典筆同步翻譯

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

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

      圖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ù)增長。是否有更簡單的實(shí)現(xiàn)方式?經(jīng)過分析,我們發(fā)現(xiàn),示例中的播放狀態(tài)、進(jìn)度、音量和速度等其實(shí)都是變量。如果這些變量支持“全局”訪問,那么開發(fā)者跨設(shè)備訪問這些變量就能像操作本地變量一樣,數(shù)據(jù)就能夠自動(dòng)高效、便捷地實(shí)現(xiàn)多端同步了。

        為此,本次OpenHarmony v3.1 Release版本新增了分布式數(shù)據(jù)對(duì)象特性。分布式數(shù)據(jù)對(duì)象為開發(fā)者在分布式應(yīng)用場(chǎng)景下提供簡單易用的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ì)象”也簡稱為“對(duì)象”。)

        二、原理解析

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

        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ì)象,通過設(shè)置相同的sessionID,建立對(duì)象之間的同步關(guān)系。

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

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

      圖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í)只需同步此變更的屬性。

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

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

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

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

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

      圖5 生命周期

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

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

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

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

        最開始,對(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ù)庫都保存在應(yīng)用程序的進(jìn)程空間,當(dāng)應(yīng)用程序退出后,分布式對(duì)象和內(nèi)存數(shù)據(jù)庫也隨之銷毀,對(duì)象直接進(jìn)入未初始化狀態(tài)。

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

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

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

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

        2. 考慮到性能和用戶體驗(yàn),最多不超過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之間。

        接下來,我們通過一個(gè)簡單的開發(fā)案例來講解如何使用分布式數(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) “全局變量”效果。

        通過此案例,我們能夠掌握分布式數(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代碼示例:

      分布式數(shù)據(jù)對(duì)象:超級(jí)終端的“全局變量”

            本期,我們?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ù)庫倉庫地址:

        https://gitee.com/openharmony/distributeddatamgr_objectstore

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

      特別提醒:本網(wǎng)信息來自于互聯(lián)網(wǎng),目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)