OpenHarmony啃論文成長計劃--零基礎解讀分布式軟總線通訊(緒論)
我們來自OpenHarmony開發者成長計劃:啃論文小隊,我們在歐建深教練的帶領下啃論文。我們是TCCS團隊,全意為The Child Collecting Shells。“我并不知道我在世人眼中是什么模樣,對我來說,我似乎只像是一個在海邊玩耍的男孩,不時找一顆平滑的卵石,或是比較美麗的貝殼來取悅自己,而真理的大海則橫陳在我面前,一無發現。”—牛頓。
我們來自三所高校:
趙坤–安陽工學院。
張君豪–長江大學,junhao_zhang00@foxmail.com。
王羚–黔南科技學院。
本篇緒論主要作者為張君豪,雖然我也什么都看不懂,但是我想就算你是一個什么也不懂的小白,我們也要讓你通過我們這系列文章讀懂分布式軟總線通訊,不僅要大受震撼,更要看懂,看懂且大受震撼是我的追求。
一、分布式軟總線概述
1.1何為總線?
總線(Bus)是計算機各種功能部件之間傳送信息的公共通信干線,它是由導線組成的傳輸線束, 按照計算機所傳輸的信息種類,計算機的總線可以劃分為數據總線、地址總線和控制總線,分別用來傳輸數據、數據地址和控制信號。總線是一種內部結構,它是cpu、內存、輸入、輸出設備傳遞信息的公用通道,主機的各個部件通過總線相連接,外部設備通過相應的接口電路再與總線相連接,從而形成了計算機硬件系統。在計算機系統中,各個部件之間傳送信息的公共通路叫總線,微型計算機是以總線結構來連接各個功能部件的。
說人話,或者舉個栗子,把總線比作一條單車道的鄉村公路,這條路旁邊有很多人家,每戶人家都有門口一條小路連接著這條公路。分時和共享是總線的兩個特點,分時是同一時刻只允許有一個部件向總線發送信息,共享是總線上可以掛接多個部件,各個部件之間互相交換的信息的可通過這組線路分時共享,多個部件可同時從總線上接收相同的信息。套用我們的例子,就是總線這條公路因為是單車道,所以每次只能走一輛車,如果同時有兩輛車就會沖突,這就是分時,每家都有一條小路連接公路,所以每家都可以開車上這條路,每兩家都可以在路上沒人的時候開車去另一家串門聊天,也可以自己在車上裝個喇叭把自己想說的別人讓保密的八卦話傳達給這條路的每一個人,這就是分時共享。
1.2何為分布式軟總線
分布式軟總線技術是基于華為多年的通信技術積累,參考計算機硬件總線,在1+8+N(1-手機、8-車機/音箱/耳機/手表/)設備間搭建一條“無形”的總線,具備自發現、自組網、高帶寬低時延的特點。全場景設備間可以基于軟總線完成設備虛擬化、跨設備服務調用、多屏協同、文件分享等分布式業務。
再借用上面那個例子,你們村子由于交通不好所以本來是對外封閉的,你想聊天最多也只能找找隔壁的翠花或者村頭的王大媽,結果后面國家開始給你們逢山開路、遇水搭橋,一夜之間把在一片所有的村子都聯通了,這個時候你還沒反應過來就有人告訴你隔壁村桂花更漂亮,突然你就發現這個世界多姿多彩了起來,這就是自發現和自組網,于是有一天你決定出門看看風景隔壁村的桂花,你發現這路修的是真不錯,又寬又好,能跑的車多了還能跑的更快了,這就是高帶寬低時延,走著走著你發現誒有一個地方好漂亮桂花天天在這里跳廣場舞,跳廣場舞肯定很不錯,于是你以后就來這里跳廣場舞,盡管你不知道這個地方叫什么,這就是設備虛擬化,最后終于有一天你把隔壁村的桂花娶到了,她從隔壁村嫁到你們村為你服務,這就是跨設備服務調用,結婚那天,你在隔壁村請了個樂隊,在隔壁的隔壁村請了個廚子,還在另一個村請了個主持人,一起來為你舉辦這場婚禮,這就是多屏協調。
1.3分布式軟總線架構
通過協議貨架和軟硬協同層屏蔽各種設備的協議差別,總線中樞模塊負責解析命令完成設備間發現和連接,通過任務和數據兩條總線實現設備間文件傳輸、消息傳輸等功能。
說人話,舉個栗子,假如你是一位古代的皇帝,你看上了鄰國的一位公主,想娶她和她交個朋友,但是你又不好意思直說,于是你就讓手下的大臣揣摩你的心思,總線中樞就好比中樞大臣,負責解析你這位皇帝的命令,在明白了你的意圖后,開始去找鄰國的公主(設備發現),找到后開始聯系威脅鄰國國王(設備連接),最后他屈服了,決定將公主嫁給你,設備ABCD就好比公主過來的各種交通方式(馬車、船等),而WiFi、BT就比作沿途的各類本國軍隊(海軍、陸軍),通過朝廷的圣旨(一道命令)來使各不同的軍隊(不同協議)完成統一任務(協議貨架),然后各類軍隊配合使用其擅長的交通工具(軟硬協同)來護送公主,最后實現你下達的這道命令,不過由于你十分心急,而路途又十分漫長,所以一路士兵快馬加鞭負責告訴你公主走到哪了(數據總線實現消息傳輸),另一路士兵馬車來慢慢的運輸公主(任務總線實現文件傳輸),所以你可以時刻知道公主的位置。通過大家將特定的角色代入上圖應該就能大致明白這幅圖的內容了。
分布式總線的總體目標是實現設備間無感發現,零等待傳輸。實現這個目標需要解決三個問題:
1.3.1設備間的發現和連接
從手動發現,進化成自發現。
比如手機上有很多照片需要傳到個人PC上,我們可以采用藍牙傳輸,首先要打開手機和PC的藍牙發現功能,手機或者PC點擊搜索設備,然后互相配對授權即可連接上,成功連上后就可以發送照片了。 在分享照片這個場景中有很多人為的動作:開啟藍牙發現功能、搜索設備、配對授權,這確實有點麻煩,耗費了很多時間,可能會降低分享的意愿。
軟總線提出了自動發現的概念,實現用戶零等待的自發現體驗,附近同賬號的設備自動發現無需等待。
而通過我們對分布式軟總線的初步窺探,實現自發現依賴于設備虛擬化與普適計算等技術,而設備虛擬化我們即將在下一篇文章通過大佬的學術論文來進行解讀希望我還能舉出來生動形象的例子,歡迎大家催更哦~
1.3.2多設備互聯后的組網技術
軟總線組網-異構網絡組網。
上面的例子中手機傳照片是通過藍牙,假如PC沒有藍牙功能只有WIFI,在傳統的場景中這種可能就不能實現分享傳輸了。因為不同的組網方式之間是隔離的,就好比一個說廣東話的人和一個說武漢話的人很難有效溝通一樣,因為這是兩套方言,也就是兩種溝通方式,所以我們要解決很多異構網絡之間的組網問題。
軟總線提出的異構網絡組網可以很好解決設備間不同協議的交互問題,這就好比中間多了一個翻譯員又會廣東話又會武漢話,所以說廣東話的那個人說的話可以被說武漢話的人聽懂,就解決了手機通過藍牙傳輸,而PC通過WIFI接收照片。解決方案如下圖所示。
設備上線后會向網絡層注冊,同時網絡層會與設備建立通道連接,實時檢測設備的變換。網絡層負責管理設備的上線下線變換,設備間可以監聽自己感興趣的設備,設備上線后可以立即與其建立連接,實現零等待體驗。也就是說你可以理解為有一個管家一直盯著如果有設備上線了就會立馬進行連接,而你就不再需要手動進行連接了,軟總線可以自動構建一個邏輯全連接網絡,用戶或者業務開發者無需關心組網方式與物理協議。對于軟件開發者來說軟總線異構組網可以大大降低其開發成本。
傳統開發模式:在傳統開發模式中開發者需要適配不同網絡協議和標準規范。
分布式開發模式:在HarmonyOS分布式開發模式中開發不再需要關心網絡協議差異,業務開發與設備組網解耦,業務僅需監聽設備上下線,開發成本大大降低。
這方面的相關技術與論文我們也會在對發現和組網結束以后來進行解讀,歡迎大家持續關注哦~
1.3.3多設備多協議間的傳輸技術
傳統協議的傳輸速率差異非常大,時延也難以得到保證。所以軟總線傳輸要實現的目標有:高帶寬(High Speed)、低時延(Low Latency)、高可靠(High Reliability)。軟總線要實現的這三大目標的尖刀武器是:極簡協議。
極簡協議將中間的四層協議棧精簡為一層提升有效載荷,有效傳輸帶寬提升20%,并且在傳統網絡協議的基礎上進行增強:
- 流式傳輸:基于UDP實現數據的保序和可靠傳輸。
- 雙輪驅動:顛覆傳統TCP每包確認機制。
- 不懼網損:摒棄傳統滑動窗口機制,丟包快速恢復,避免阻塞。
- 不懼抖動:智能感知網絡變化,自適應流量控制和擁塞控制。
想要理解這方面的協議可能需要計算機網絡的前序知識,什么?你沒時間不想學?那我們爭取在后面一條龍就像前面總線一樣給你講明白!
本文參考了鴻蒙官方文檔以及百度百科。是對其的進一步理解與翻譯。
ps:我們也是初學者,這僅僅是我的個人理解,可能有誤以及不準確的地方!