01
一個近場通信的例子
1.1 全場景智慧生活的典型問題
在全場景智慧生活當(dāng)中,設(shè)備種類和數(shù)量越來越多,各種富設(shè)備(如智慧屏、PC、PAD、音箱)以及各種瘦設(shè)備(如IOT的智能門鎖、攝像頭、智能燈、智能窗簾)的近場通信方式各不相同,有wifi、藍(lán)牙、NFC、usb、zigbee等。
在這么多種近場通信方式選擇上,如何讓這些設(shè)備便捷、高效地通信,從而實(shí)現(xiàn)上層應(yīng)用無需考慮設(shè)備差異,就如同使用“一個設(shè)備”一樣,流暢地使用多個設(shè)備的能力,是全場景智慧生活中面臨的一個典型問題。HarmonyOS分布式軟總線為這個問題提供了可靠的解決方案,并通過簡單的API接口向開發(fā)者開放出來。
1.2 如何保障控制消息(Message)低時延高可靠
下圖是一個家庭場景中典型的富瘦設(shè)備的組網(wǎng)圖,主要包含兩類業(yè)務(wù),黑色線條的上網(wǎng)業(yè)務(wù),紅色線條的近場業(yè)務(wù)。橫向的近場通信業(yè)務(wù)的物理通道,比縱向的上網(wǎng)業(yè)務(wù)的物理通道種類更多,帶寬也不同,HarmonyOS分布式軟總線完全屏蔽了底層通信的差異,讓上層應(yīng)用通過使用幾個簡單的軟總線接口,就像使用本地接口一樣,輕松實(shí)現(xiàn)多設(shè)備間高速通信。
舉個例子,將手機(jī)上的游戲App的操作界面投屏到PAD上,如何實(shí)現(xiàn)在PAD上進(jìn)行手機(jī)上游戲APP的控制如在手機(jī)上控制一樣的流暢?其中,使用軟總線的SendMessage接口完成PAD到手機(jī)的反控操作(華為Cast+技術(shù))Message的無延遲傳輸,起到了一個關(guān)鍵的作用。具體實(shí)現(xiàn)如下:
前提條件:
1、 手機(jī)、PAD均搭載了HarmonyOS,具備分布式軟總線能力
2、 手機(jī)已經(jīng)把游戲APP的操作界面投屏到PAD上
過程描述:
1、 手機(jī)首先使用軟總線的發(fā)現(xiàn)能力發(fā)現(xiàn)PAD設(shè)備,并把手機(jī)上游戲APP的操作界面投屏到PAD。
2、 因為游戲APP本身在手機(jī)上,所以在PAD上操作手機(jī)游戲APP,就是從PAD到手機(jī)的“反控操作”,即PAD上控制消息Message反饋到手機(jī)上執(zhí)行,PAD和手機(jī)之間需要通過軟總線建立控制通道。軟總線要選擇最優(yōu)傳輸通道,并保障該通道上的數(shù)據(jù)得到高優(yōu)先級的傳輸。
3、 PAD調(diào)用SendMessage接口把控制消息Message反饋給手機(jī)。
4、 手機(jī)收到PAD的反控消息并執(zhí)行,并把執(zhí)行后的結(jié)果再反饋到PAD上。整個過程的時延要求在百毫秒級。
上面描述的過程看似簡單,實(shí)際上底層通信使用到了HarmonyOS分布式軟總線的發(fā)現(xiàn)、連接和傳輸?shù)哪芰Α1敬尾恢v發(fā)現(xiàn)和連接的技術(shù)點(diǎn),僅對傳輸?shù)膶?shí)現(xiàn)原理進(jìn)行解釋。
02
近場Message/Byte傳輸實(shí)現(xiàn)原理
2.1 實(shí)現(xiàn)過程描述
HarmonyOS分布式軟總線提供了兩個接口,分別用于近場通信場景下長短消息的傳輸,分別是SendMessage和SendByte,實(shí)現(xiàn)原理相同,如下圖所示:
圖中APP X統(tǒng)一代表不同的上層應(yīng)用App。具體過程描述:
1)設(shè)備A和設(shè)備B的APP X會在初始化階段向軟總線注冊回調(diào)通知接口,用于在傳輸通道打開、數(shù)據(jù)接收后通知到APP X
2)設(shè)備A的APP X要向設(shè)備B上的APP X發(fā)送消息,設(shè)備A的APP X首先把設(shè)備B的設(shè)備ID信息、以及標(biāo)識APP X的信息傳遞給軟總線,請求一個傳輸通道。
3)軟總線要根據(jù)當(dāng)前兩個設(shè)備已有的物理通道種類(BR/BLE/WIFI2.4/Wifi 5G/P2P),以及物理通道的負(fù)載和設(shè)備的狀態(tài),決策選擇一個最優(yōu)的傳輸通道的底層連接,同時完成傳輸層的連接建立,和傳輸標(biāo)識的內(nèi)核態(tài)到用戶態(tài)的映射,最后把傳輸通道標(biāo)識傳遞到兩個設(shè)備的上層APP X。
4)設(shè)備A的APP X拿到通道標(biāo)識后再調(diào)用SendMessage/SendByte接口和設(shè)備B的APP X進(jìn)行通信。設(shè)備B的APP X也可以使用相同的方法和設(shè)備A進(jìn)行通信。
5)傳輸結(jié)束后,設(shè)備A的APP X可以調(diào)用關(guān)閉傳輸接口完成傳輸通道資源的釋放。
2.2 Message/Byte傳輸注意事項
1)Message類型主要用于低時延、高可靠業(yè)務(wù),比如游戲的控制命令、IoT設(shè)備的開關(guān)(燈的開關(guān)、門窗的開關(guān))等等,數(shù)據(jù)量最大不超過4KB。
2)SendMessage對Message類型消息的傳輸,HarmonyOS軟總線在底層實(shí)現(xiàn)按照最高優(yōu)先級進(jìn)行傳輸,例如空口使用最高優(yōu)先級VO隊列。因此在實(shí)際使用中,為了獲得更低的時延,最好是一幀數(shù)據(jù)就能把Message消息發(fā)送完成。比如1.5KB大小,保證空口一幀就發(fā)送完成,減少空口的資源競爭和退避帶來的時延開銷。
3)Byte類型主要用于傳輸比Message類型消息大,時延要求沒那么高的業(yè)務(wù)。比如傳輸一個圖片的縮略圖。通常最大不超過4M大小。具體大小取決于設(shè)備的內(nèi)存大小,有些設(shè)備內(nèi)存小,則其Byte類型消息不會超過4M。
4)SendByte除了用于時延要求不高的基本業(yè)務(wù)數(shù)據(jù)傳輸外,也可以用于探測網(wǎng)絡(luò)端與端之間的時延,比如探測當(dāng)前網(wǎng)絡(luò)傳輸1MB數(shù)據(jù)需要多少時間。
5)在支持多種物理鏈路的情況下,不建議上層應(yīng)用指定具體的物理鏈路,讓HarmonyOS系統(tǒng)自動選擇,系統(tǒng)會根據(jù)當(dāng)前的網(wǎng)絡(luò)情況選擇最優(yōu)的傳輸通道。
6)傳輸?shù)幕卣{(diào)接口,不要有阻塞性動作,特別是對于持續(xù)性的傳輸,如果在回調(diào)中有阻塞性動作,會導(dǎo)致傳輸性能下降。 本次為大家簡單介紹HarmonyOS Message/Byte類型消息的底層傳輸原理,這兩個都是數(shù)據(jù)量比較小(Byte/M)且非持續(xù)性的消息傳輸,對于規(guī)格比較大(G)且有持續(xù)性傳輸要求的File和Stream類型數(shù)據(jù)傳輸,會在后續(xù)技術(shù)解析文章中進(jìn)行講解,敬請期待!
本文作者:zhangkesi,華為軟件架構(gòu)設(shè)計工程師
編輯:jq
-
音箱
+關(guān)注
關(guān)注
36文章
641瀏覽量
68053 -
PC
+關(guān)注
關(guān)注
9文章
2107瀏覽量
154758 -
IOT
+關(guān)注
關(guān)注
187文章
4231瀏覽量
197756 -
智能門鎖
+關(guān)注
關(guān)注
17文章
1858瀏覽量
43450 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3753瀏覽量
16676
原文標(biāo)題:華為架構(gòu)師解讀:HarmonyOS低時延高可靠消息傳輸原理
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
HarmonyOS應(yīng)用點(diǎn)擊響應(yīng)時延優(yōu)化指導(dǎo)
![<b class='flag-5'>HarmonyOS</b>應(yīng)用點(diǎn)擊響應(yīng)時<b class='flag-5'>延</b>優(yōu)化指導(dǎo)](https://file1.elecfans.com/web3/M00/05/09/wKgZPGd8hNeASDUjAAAjWA3pqcc436.png)
HarmonyOS應(yīng)用點(diǎn)擊完成時延問題定位流程及原理
![<b class='flag-5'>HarmonyOS</b>應(yīng)用點(diǎn)擊完成時<b class='flag-5'>延</b>問題定位流程及原理](https://file1.elecfans.com/web3/M00/03/67/wKgZPGdo1n2ARoftAAAtb-RayUc754.png)
如何提高CAN總線的傳輸可靠性
AWTK 最新動態(tài):支持鴻蒙系統(tǒng)(HarmonyOS Next)
![AWTK 最新動態(tài):支持鴻蒙系統(tǒng)(<b class='flag-5'>HarmonyOS</b> Next)](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
TLV3201電流檢測電路的時延應(yīng)該怎么算?
高可靠繼電器的設(shè)計與制造
![](https://file1.elecfans.com/web2/M00/E7/54/wKgaomZHFRuAMZl_AAUy02aPbyE170.png)
GMSL技術(shù) 實(shí)現(xiàn)高帶寬、低延遲和高可靠性數(shù)據(jù)傳輸# ADI# GMSL# 汽車# 數(shù)據(jù)傳輸
HarmonyOS實(shí)戰(zhàn)開發(fā)-如何實(shí)現(xiàn)音頻低時延錄制和播放,AudioVivid音樂播放的相關(guān)功能
金融信創(chuàng)優(yōu)秀解決方案-超低時延網(wǎng)絡(luò)解決方案
![金融信創(chuàng)優(yōu)秀解決方案-超低時<b class='flag-5'>延</b>網(wǎng)絡(luò)解決方案](https://file1.elecfans.com/web2/M00/DF/65/wKgaomYwkFeAUGteAABV2G-m-NY027.png)
光纖布線如何保證數(shù)據(jù)可靠傳輸
網(wǎng)絡(luò)解碼矩陣:醫(yī)院高清視頻傳輸的可靠保障
![網(wǎng)絡(luò)解碼矩陣:醫(yī)院高清視頻<b class='flag-5'>傳輸</b>的<b class='flag-5'>可靠</b>保障](https://file1.elecfans.com/web2/M00/C6/99/wKgaomYBQ1KAWvw8AAeRWs9_kyY144.png)
CAN總線的傳輸距離與采樣點(diǎn)、傳輸時延之間的關(guān)系,你弄明白了嗎?
![CAN總線的<b class='flag-5'>傳輸</b>距離與采樣點(diǎn)、<b class='flag-5'>傳輸</b>時<b class='flag-5'>延</b>之間的關(guān)系,你弄明白了嗎?](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
光傳送網(wǎng)(OTN)助力實(shí)現(xiàn)超高速、高帶寬數(shù)據(jù)傳輸
![光傳送網(wǎng)(OTN)助力實(shí)現(xiàn)超高速、<b class='flag-5'>高</b>帶寬數(shù)據(jù)<b class='flag-5'>傳輸</b>](https://file1.elecfans.com/web2/M00/C3/2F/wKgaomXhSnWAWLczAABXkl5rtTc062.png)
光路科技FR-TSN系列:打造工業(yè)物聯(lián)網(wǎng)時代的傳輸新標(biāo)準(zhǔn)
![光路科技FR-TSN系列:打造工業(yè)物聯(lián)網(wǎng)時代的<b class='flag-5'>傳輸</b>新標(biāo)準(zhǔn)](https://file1.elecfans.com/web2/M00/C1/0A/wKgZomXcSueAdhS3AACHD3im7B4784.png)
評論