主頁 > 移動端開發 > 一文帶你看懂分布式軟總線在家庭場景的應用

一文帶你看懂分布式軟總線在家庭場景的應用

2022-01-06 18:11:55 移動端開發

作者:maerli,華為軟體架構師

 

HarmonyOS分布式作業系統定位為萬物互聯時代的作業系統,覆寫手機、平板、智慧屏、智能穿戴、智慧車機以及智能家居等記憶體從KB到GB級的多種終端,并在系統層讓多終端融為一體,形成超級終端,為消費者帶來全場景智慧生活新體驗,

 

如何讓各種不同的設備融合為一體,形成超級終端呢?這就需要分布式軟總線來實作,

 

分布式軟總線為設備間的無縫互聯提供了統一的分布式通信能力,能夠快速發現并連接設備,高效地傳輸任務和資料,

 

一、全場景面臨的挑戰


全場景應用涉及作業、生活、出行和學習的方方面面,旨在更好地服務人們,提供便捷、高質量、豐富多彩的超級終端的體驗,無論是運動、出行、辦公還是家庭生活都是全場景超級終端所涉及的范圍,

 

為了讓大家更好地了解全場景超級終端,以及分布式軟總線面臨的各種挑戰,下面我們以家庭場景為例詳細講解,

 

圖1 家庭場景

 

設備型別:涉及的設備數量眾多,比如手機、PAD、便攜PC、智慧屏、電視盒子、智能家電、健身器材等,既有個人終端設備,又有影音娛樂設備,還有大量的各種智能家居終端,

 

連接方式:涉及Wi-Fi、以太網、藍牙、Zigbee、PLC

 

典型業務:在家庭中,各類智能設備為人們帶來豐富多彩的智慧體驗,其場景多不勝舉,為方便大家理解,這里給出幾個例子,↓

  • 來訪客人按下智能門鎖門鈴按鈕,智能音箱播放鈴聲,同時在電視螢屏上以畫中畫的方式展示出客人的影像,
  • 用戶在電視上看到一檔美食節目,將烹飪方法和指導從電視轉移到廚房的電冰箱螢屏上,然后在節目指導下一步步完成美食制作,
  • 用戶通過手機下發烹飪命令給烤箱、電飯煲等烹飪電器,由烹飪電器自動完成美食的加工,
  • 用戶運動后,運動器材將采集的運動健康資料自動同步給冰箱,冰箱推薦出一系列最適宜體力恢復和營養補充的健康菜譜,用戶可以通過冰箱自動下單采購補充缺乏的食材,

 

挑戰:家庭場景下涉及的設備數量眾多,在豐富人們生活的同時,也為設備互聯互通帶來了巨大的挑戰,同時,設備間的連接方式復雜,并且由于房屋結構的關系,無線信號干擾、衰減、遮掩的問題也較多,另外,由于家庭場景下業務的多樣性,如何通過網路構建使得設備之間的互聯互通更加可靠、安全,并能夠基于業務和網路狀態進行質量優化和合理調度,是家庭環境下最大的挑戰,

 

二、分布式軟總線介紹


全場景下,HarmonyOS通過分布式軟總線技術連接不同設備構建超級終端的程序中,涉及到多種多樣通信方式的選擇和使用,而每一種技術、協議在實作和應用上都有很多差異,對于HarmonyOS應用開發者或設備開發者,要全部掌握所有在全場景智慧生活中所涉及的各類通信技術,其難度和成本可想而知,

 

因此如何讓這些基于HarmonyOS構建的設備便捷、高效地互相通信;并且實作上層應用無需考慮設備差異,就如同使用“一個設備”一樣,流暢地使用多個設備的能力,是HarmonyOS分布式設計中最重要的價值思考,

 

HarmonyOS分布式軟總線為此應運而生,為HarmonyOS分布式通信提供了可靠的解決方案,并通過一系列簡單的API介面服務于整個HarmonyOS系統,

 

分布式軟總線,向上對開發者屏蔽了技術的復雜性;向下則通過優秀的演算法和實作為HarmonyOS構建出一套高性能的分布式通信,

 

如圖2所示,HarmonyOS分布式軟總線從邏輯架構上將分布式通信抽象為由四個部分組成的業務模型:發現、連接、組網和傳輸,這四個部分在整個軟總線業務邏輯中分工合作,通過構筑分布式通信框架,達成分布式軟總線通信的目標,

 

圖2 分布式軟總線業務模型

 

1. 發現

 

通過分布式軟總線的發現技術,發現周邊的分布式設備的存在,一個設備可以是被發現方,可以是主動發現方,也可以二者兼而有之,

  • 支持通過Wi-Fi、藍牙、以太網等不同的媒介發現設備,
  • 支持根據不同設備的能力,選擇合適的發現媒介,
  • 支持根據設備特點和業務需求提供合適的發現頻次、掃描周期等發現策略,


2. 連接

 

通過分布式軟總線的連接技術,連接周邊的分布式設備,分布式軟總線根據分布式設備的能力和業務需求,選擇合適的通信媒介和最恰當的連接技術,建立通信鏈路,為后續的組網和傳輸提供基礎能力,

 

3. 組網

 

通過分布式軟總線的組網技術,可以將不同能力、不同特征的分布式設備組成一張網路,使得設備分布式網路不限于單一的或者一對一的連接關系,而是將整個全場景下涉及的設備組成了有一張動態網路,在這張網路中,每個設備的通信能力、業務能力都可以得到有效的管理,從而當業務需要時,通過分布式軟總線的網路,可以隨時提供業務需要的設備能力資訊,也可以為業務通道的建立提供支撐,

 

4. 傳輸

 

通過分布式軟總線的傳輸技術,為分布式業務提供業務資料的傳輸能力,對業務資料和QoS(Quality of Service,服務質量)要求進行抽象,并根據網路負載和設備能力為業務提供合適的傳輸技術,既保證單業務的通信訴求,又保證整個分布式網路內多業務的傳輸質量,

 

圖3 分布式軟總線資料模型

 

如圖3所示,HarmonyOS分布式軟總線將傳輸的資料抽象為四種資料模型:訊息、位元組、檔案和流,基于不同的資料模型,可以針對性地構建合適的傳輸方案和QoS策略,

  • 訊息:用于實時性和可靠性要求極高短資料(比如控制類指令)的傳輸,
  • 位元組:用于時延要求不高的基本業務資料傳輸,
  • 檔案:主要用于設備間檔案的傳輸和同步,通常要求較大的傳輸帶寬,但實時性要求不高,
  • 流:一般用于音視頻流的傳輸,既要求高帶寬,又要求低時延,


訊息和位元組資料模型,主要服務于設備間任務流轉能力的構建,是分布式軟總線中任務總線能力的基礎,檔案和流資料模型,主要服務于設備間分布式資料傳輸,是分布式軟總線中資料總線能力的基礎,

 

分布式軟總線通過簡化設計、優化傳輸、主動抗干擾、智能調度等技術的有機結合,為HarmonyOS提供了高帶寬、低時延、低功耗、安全可靠的設備間通信能力,分布式軟總線也為接入超級終端的設備間無縫互聯提供了統一的、與物理連接無關的極簡API,其業務模型和四種資料模型覆寫了全場景下分布式業務跨終端近場通信的訴求,

 

三、分布式軟總線的應用


為了讓大家更直觀地理解分布式軟總線,下面我們結合家庭場景的一個典型業務來講一講業務是如何使用分布式軟總線能力的,

 

以門鎖門鈴和電視螢屏上的畫中畫為例,當門鈴按下的時刻,門鎖產品通過分布式軟總線就可以發現支持畫中畫功能的電視,門鈴上的分布式調度通過軟總線喚起電視上的畫中畫;同時也就可以建立起智能門鎖上攝像頭畫面傳遞到電視螢屏畫中畫的高速傳輸通道,

 

主要流程步驟如圖4所示:

 

圖4 家庭場景下分布式軟總線的應用

 

  • 步驟1:智能門鎖上電后,分布式軟總線啟動發現流程,
  • 步驟2、3:分布式軟總線發現智慧屏設備后,啟動組網流程,完成智能門鎖與智慧屏之間的可信認證,
  • 步驟4.1、4.2、4.3:分布式軟總線分別向智能門鎖和智慧屏上報對方設備上線,
  • 步驟5、6:當客人按下門鈴時,智能門鎖的門鎖業務請求分布式調度啟動智慧屏畫中畫,
  • 步驟7:智能門鎖的分布式調度將“啟影片中畫”的指令封裝為訊息,請求分布式軟總線將該訊息發送至智慧屏的分布式調度,
  • 步驟8、9:分布式軟總線通過訊息傳輸功能將“啟影片中畫”指令發送到智慧屏的分布式調度,
  • 步驟10:智慧屏的分布式調度收到“啟影片中畫”指令后,啟影片中畫FA,
  • 步驟11:智慧門鎖的門鎖業務請求分布式軟總線將捕獲的攝像頭畫面傳輸至智慧屏畫中畫,
  • 步驟12、13:分布式軟總線通過流傳輸功能,將門鎖側攝像頭畫面發送至智慧屏,智慧屏的畫中畫收到門鎖攝像頭畫面后,在畫中畫FA中播放,

 

說明:為了方便理解,圖4略去了設備管理子系統和分布式硬體子系統的處理流程,業務實際是通過分布式設備管理收到的設備上線的通知;門鎖捕獲攝像頭視頻和攝像頭視頻畫中畫播放,涉及到業務通過分布式硬體子系統提供的攝像頭虛擬化能力,

 

四、結束語


分布式軟總線技術是基于華為多年的通信技識訓累,參考計算機硬體總線,在1+8+N設備間搭建一條“無形”的總線,具備自發現、自組網、高帶寬低時延的特點,通過分布式軟總線,全場景設備間完成設備虛擬化、跨設備服務呼叫、多屏協同、檔案分享等分布式業務,

 

分布式軟總線致力于實作近場設備間統一的分布式通信能力,提供不區分鏈路的設備發現和傳輸介面,具備快速發現并連接設備,高效分發任務和傳輸資料,分布式軟總線是HarmonyOS架構中的底層技術,是HarmonyOS的大動脈,其總的目標是實作設備間無感發現,零等待傳輸,對開發者而言,無需關注組網方式與底層協議,

 

經過上面的介紹,相信大家對全場景和分布式軟總線有了更深的了解,歡迎更多的開發者加入進來,豐富全場景,共筑鴻蒙生態!

 

掃碼添加開發者小助手微信

獲取更多HarmonyOS開發資源和開發者活動資訊

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404315.html

標籤:其他

上一篇:濾鏡也能復制粘貼?視頻編輯服務專屬濾鏡一鍵搞定

下一篇:濾鏡也能復制粘貼?視頻編輯服務專屬濾鏡一鍵搞定

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more