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

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

3天內(nèi)不再提示

HarmonyOS NEXT分布式系統(tǒng)硬件資源池應用場景技術(shù)原理及接入實踐

話說科技 ? 來源:話說科技 ? 作者:話說科技 ? 2023-12-13 17:25 ? 次閱讀

隨著智能設(shè)備的發(fā)展和普及,越來越多的智能設(shè)備已經(jīng)深入人們的生活,比如手機,PC,平板,各類穿戴設(shè)備等。目前單個設(shè)備的外設(shè)資源已經(jīng)非常豐富,硬件能力也很強大。但像是手機、PC、平板等設(shè)備都有的相機、音頻、屏幕、鍵盤鼠標等外設(shè)資源都屬于各個設(shè)備自身,如果涉及跨設(shè)備協(xié)同操作就會比較繁瑣。

比如當我們?nèi)粘T赑C端進行文檔編輯時,若需要從平板復制一段文字,或者使用手機拍攝照片然后分別將素材插入文檔時,就需要我們分別在不同的設(shè)備上操作,然后將物料再行匯總發(fā)送至PC端口進行編輯,過程十分麻煩。如果應用開發(fā)者從應用層面實現(xiàn)設(shè)備間硬件能力共享,不但開發(fā)者工作量和難度非常大,各個應用之間也需要重復開發(fā),能力難以復用和繼承。

為此,HarmonyOS NEXT提出了硬件資源池的理念,把各個設(shè)備的硬件外設(shè)抽象為外設(shè)信息單元,外設(shè)信息在各個可信設(shè)備之間自動同步,打破各個設(shè)備硬件的孤立狀態(tài),讓設(shè)備間硬件外設(shè)全局共享。這樣就實現(xiàn)了外設(shè)信息的全局可見,再結(jié)合分布式硬件虛擬化技術(shù),實現(xiàn)任意設(shè)備之間的硬件外設(shè)能力跨設(shè)備調(diào)用;

分布式硬件資源池作為系統(tǒng)能力下沉系統(tǒng)底層,北向開發(fā)者并不會感知資源池的存在;跨設(shè)備硬件和本地硬件使用同一套API,開發(fā)者調(diào)用跨設(shè)備硬件體驗和本地硬件一致,如此更加開發(fā)者調(diào)用跨設(shè)備硬件,開發(fā)者也無需再關(guān)注硬件底層細節(jié),可將更多時間專注于業(yè)務創(chuàng)新。

HarmonyOS NEXT采用硬件資源池的理念,結(jié)合多個設(shè)備優(yōu)勢硬件為用戶提供更優(yōu)體驗的同時,還能支持消費者和開發(fā)者多種創(chuàng)新體驗。

NO.1 消費者場景

從消費者層面來看,華為分布式硬件可支持智慧辦公、智慧出行等多種創(chuàng)新場景。

例如在智慧辦公場景中,使用一套PC鍵盤鼠標即可和周邊平板等設(shè)備跨設(shè)備操作;在多屏協(xié)同時,手機屏幕可直接顯示到平板,手機視頻通話也可以使用平板的麥克風和攝像頭,用戶在平板上即可同時操作手機平板兩臺設(shè)備,無需在設(shè)備間來回切換。

在智慧出行場景中,當用戶進入座艙,手機上的音樂和通話就可自動接續(xù)到車機,使用車機的音頻外設(shè)播音和拾音功能,以及使用車機的攝像頭進行視頻通話;當手機導航接續(xù)到車機后,車機的GPS信號也可以共享給手機,結(jié)合手機GPS信號提供更高精度的定位數(shù)據(jù)。

結(jié)合以上兩種場景可知,在智慧辦公和智慧出行場景中,用戶都可以通過分布式硬件資源池,為用戶提供更好的服務體驗。

開發(fā)者場景

對于開發(fā)者來說,因為分布式硬件資源池將跨設(shè)備硬件調(diào)用的復雜度都封裝在了系統(tǒng)底層,跨設(shè)備硬件可復用本地硬件的API,因此開發(fā)者學習和適配難度可以做到最低。

以分布式相機為例,相機接口可以同時查詢到本地相機和跨設(shè)備相機外設(shè),接著本地相機和跨設(shè)備相機就可通過ConnectionType.CAMERA_CONNECTION_REMOTE屬性相互區(qū)分,開發(fā)者通過該屬性過濾出分布式相機后,其他操作和本地相機完全一致,開發(fā)者無需為使用跨設(shè)備硬件學習一套獨立的API,有效簡化開發(fā)者開發(fā)難度。

很多開發(fā)者可能會問,硬件資源池是怎樣的開發(fā)原理,我們可用相機和音頻為例進行講解。

假設(shè)設(shè)備A和設(shè)備B都有各自的相機和音頻外設(shè),驅(qū)動層有對應的本地相機和本地音頻驅(qū)動。

分布式硬件從各自設(shè)備本地采集相機和音頻驅(qū)動信息,存入分布式數(shù)據(jù)庫。如果AB兩個設(shè)備建立了可信關(guān)系并且通過軟總線組網(wǎng)上線成功,分布式數(shù)據(jù)庫會在AB兩個設(shè)備之間自動同步各自的本地外設(shè)數(shù)據(jù)信息,這樣,設(shè)備A分布式硬件可以拿到設(shè)備B的相機和音頻外設(shè)規(guī)格數(shù)據(jù),同樣,設(shè)備B也可以拿到設(shè)備A的相機和音頻外設(shè)規(guī)格數(shù)據(jù)。

以設(shè)備A的流程為例,分布式硬件收到對端設(shè)備B的硬件規(guī)格數(shù)據(jù)后,在驅(qū)動層注冊對應的虛擬相機和虛擬音頻驅(qū)動,虛擬驅(qū)動相當于對端設(shè)備物理硬件在本地的代理;虛擬驅(qū)動實現(xiàn)和本地硬件驅(qū)動相同的HDI接口。他們的區(qū)別在于,本地硬件驅(qū)動操作本地物理硬件,虛擬硬件驅(qū)動控制和數(shù)據(jù)傳輸通過軟總線作用于對端分布式硬件。由于和本地硬件實現(xiàn)同樣的HDI接口,設(shè)備B相機和音頻對應的虛擬硬件可以被相機服務和音頻服務發(fā)現(xiàn)并管理,包括外設(shè)的查詢,相機的預覽拍照錄像,音頻的播放,聲音的錄制等功能。

對稱的,在設(shè)備B上會執(zhí)行同樣的過程,為設(shè)備A相機和音頻外設(shè)注冊對應虛擬驅(qū)動,從而實現(xiàn)設(shè)備B上對設(shè)備A硬件外設(shè)的查詢和使用。

如此就實現(xiàn)了外設(shè)信息在設(shè)備間互通共享,信息感知自動注冊虛擬硬件,注冊后即可用,成為一個無中心對稱的分布式硬件外設(shè)管理系統(tǒng)。同時,分布式硬件框架定義了外設(shè)熱插拔,虛擬硬件?;畹葯C制,保證業(yè)務可靠性。在運行時,各個硬件外設(shè)的業(yè)務運行于獨立進程中,在進程層面保證不同硬件的虛擬化業(yè)務互相隔離,提高了業(yè)務可靠性。

基于上述分析,開發(fā)者可以看到分布式硬件與南向硬件的交互涉及"硬件信息采集"和"驅(qū)動注冊"兩類業(yè)務,與此對應,分布式硬件針對南向硬件接入定義了兩類接口。一類是硬件規(guī)格采集接口,一類是驅(qū)動注冊與準備接口。

在硬件規(guī)格采集接口中,直接定義了規(guī)格信息的采集以及外設(shè)熱插拔事件監(jiān)聽等功能;由于我們是跨設(shè)備硬件調(diào)用,涉及雙端設(shè)備的硬件,因此我們定義使用周邊其他設(shè)備硬件外設(shè)的一端為Source端,共享本地硬件給其他設(shè)備調(diào)用的一端為Sink端,驅(qū)動注冊與準備接口包括Source和Sink兩端。

Source端包括初始化,釋放以及虛擬驅(qū)動注冊/去注冊等功能;Sink端主要是初始化和釋放接口,用于響應Source端的控制指令,比如播放聲音或者采集視頻畫面。在設(shè)備組網(wǎng)上線后,分布式硬件框架調(diào)用各個硬件類型的南向接口實現(xiàn),分別初始化各類硬件的Source和Sink端業(yè)務進程,為后續(xù)的硬件跨設(shè)備調(diào)用做好準備。

由于分布式硬件良好的南向接入解耦設(shè)計,如果有新硬件外設(shè)接入,只需要如下三步即可,以分布式相機配置為例,開發(fā)者可以基于下方實例進行參考:

Step 1:定義硬件外設(shè)類型枚舉值CAMERA

Step 2:實現(xiàn)分布式硬件框架定義的南向接入接口,分別實現(xiàn)為三個so

實現(xiàn)分布式硬件框架定義的硬件規(guī)格采集接口IHardwareHandler,并編譯獲得接口實現(xiàn)libdistributed_camera_handler.z.so

實現(xiàn)Source側(cè)接入接口IDistributedHardwareSource,并編譯獲得接口實現(xiàn)libdistributed_camera_source_sdk.z.so

實現(xiàn)Sink側(cè)接入接口IDistributedHardwareSink,并編譯獲得接口實現(xiàn)libdistributed_camera_sink_sdk.z.so

Step 3:在分布式硬件子部件配置文件中,添加新硬件外設(shè)相關(guān)配置,包括外設(shè)類型,南向接口實現(xiàn)的so名稱,版本號,以及Source和Sink端服務分配的服務Id

注意:該配置由產(chǎn)品定義確定,不同的產(chǎn)品可能使用不同的分布式能力。以RK3568開發(fā)板為例,配置如下:

三個接口的so實現(xiàn)后,開發(fā)者可將編譯打包到系統(tǒng)庫路徑下,同時配置到分布式硬件部件配置文件中,設(shè)備組網(wǎng)上線后,就能看到分布式相機的dcamera進程已經(jīng)成功啟動,表明相機外設(shè)已經(jīng)納入資源池管理,成為分布式相機。

從下述截圖也可以看到分布式硬件其他相關(guān)進程,dhardware就是分布式硬件資源池管理框架進程,顧名思義,dcamera是分布式相機進程,dinput是分布式鍵鼠輸入進程,dscreen是分布式屏幕進程。

當前在OpenHarmony開源社區(qū),已經(jīng)開源了硬件資源池管理框架,分布式相機,分布式音頻,分布式屏幕,分布式輸入的代碼倉,開放了相機,音頻,屏幕和鍵鼠輸入外設(shè)的跨設(shè)備控制源碼,關(guān)于硬件資源池的詳細實現(xiàn),可以參考我們的開源代碼倉,更多參考代碼,可關(guān)注HarmonyOS開發(fā)者官方微信。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 分布式系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    19193
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1966

    瀏覽量

    29962
收藏 人收藏

    評論

    相關(guān)推薦

    HarmonyOS應用開發(fā)-分布式任務調(diào)度

    1. 介紹本篇CodeLab將實現(xiàn)的內(nèi)容HarmonyOS是面向全場景多終端的分布式操作系統(tǒng),使得應用程序的開發(fā)打破了智能終端互通的性能和數(shù)據(jù)壁壘,業(yè)務邏輯原子化開發(fā),適配多端。通過一
    發(fā)表于 09-18 09:21

    HarmonyOS應用開發(fā)-分布式設(shè)計

    設(shè)計理念HarmonyOS 是面向未來全場景智慧生活方式的分布式操作系統(tǒng)。對消費者而言,HarmonyOS 將生活
    發(fā)表于 09-22 17:11

    HarmonyOS鴻蒙操作系統(tǒng)之什么是“基于微內(nèi)核的全場景分布式操作系統(tǒng)”?

    HarmonyOS鴻蒙操作系統(tǒng)之什么是“基于微內(nèi)核的全場景分布式操作系統(tǒng)”?即使作為理工科的人咋一眼看上去似乎也不太懂這是什么,就像區(qū)塊鏈這
    發(fā)表于 09-23 17:06

    HarmonyOS分布式數(shù)據(jù)庫,為啥這么牛?

    案例和接入流程 最后,基于 HarmonyOS 分布式數(shù)據(jù)管理等分布式技術(shù)能力,金山辦公移動端技術(shù)
    發(fā)表于 11-19 15:38

    HDC2021技術(shù)分論壇:分布式軟時鐘有多重要?

    的吞吐能力。多級動態(tài)緩沖技術(shù),合理調(diào)度提升端到端運力。二、分布式系統(tǒng)的新挑戰(zhàn)分布式軟總線已經(jīng)在發(fā)現(xiàn)與連接、傳輸方面做了很多,有了很大提升。
    發(fā)表于 11-09 17:24

    HDC2021技術(shù)分論壇:跨端分布式計算技術(shù)初探

    功能上無法對智能化沉浸體驗的應用提供全方位的支持,導致很多應用場景難以得到實現(xiàn)。為了解決移動端算力瓶頸,HarmonyOS跨端分布式計算應運而生,給用戶帶來易協(xié)同、低延遲和高穩(wěn)定的
    發(fā)表于 11-15 14:54

    HarmonyOS分布式應用框架深入解讀

    給原始的應用,既有系統(tǒng)多模統(tǒng)一的交互模塊,對應用來說是其實感知不到的,不知道事件來自本端還是另一端。HarmonyOS基本架構(gòu):分布式硬件現(xiàn)在的設(shè)備包含的
    發(fā)表于 11-22 15:15

    HDC2021技術(shù)分論壇:跨端分布式計算技術(shù)初探

    技術(shù)。在傳統(tǒng)分布式用場景下,設(shè)備間更多的采用藍牙或者WIFI direct等方式D2D的通信模型,過于厚重,協(xié)議的層次并非都必要,協(xié)議的接續(xù)和交互流程也不盡精簡。HarmonyOS
    發(fā)表于 11-23 17:06

    如何高效完成HarmonyOS分布式應用測試?

    作者:liuxun,HarmonyOS測試架構(gòu)師HarmonyOS是新一代的智能終端操作系統(tǒng),給開發(fā)者提供了設(shè)備發(fā)現(xiàn)、設(shè)備連接、跨設(shè)備調(diào)用等豐富的分布式API。隨著越來越多的開發(fā)者投入
    發(fā)表于 12-13 18:07

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

    ,并能夠基于業(yè)務和網(wǎng)絡(luò)狀態(tài)進行質(zhì)量優(yōu)化和合理調(diào)度,是家庭環(huán)境下最大的挑戰(zhàn)。二、分布式軟總線介紹全場景下,HarmonyOS通過分布式軟總線技術(shù)
    發(fā)表于 01-06 11:32

    OpenHarmony3.1 Release版本特性解析——OpenHarmony硬件資源化架構(gòu)介紹

    李剛OpenHarmony 分布式硬件管理 SIG 成員華為技術(shù)有限公司分布式硬件專家OpenHarmony 作為面向全
    發(fā)表于 05-23 16:42

    OpenHarmony 分布式硬件關(guān)鍵技術(shù)

    。超級終端可以根據(jù)用戶期望,通過分布式技術(shù)將多個設(shè)備組合起來,使設(shè)備間的硬件資源共享,實現(xiàn)硬件的“自由”擴展,并可以在不同的業(yè)務
    發(fā)表于 08-24 17:25

    分布式系統(tǒng)硬件資源原理和接入實踐

    把各個設(shè)備的硬件外設(shè)抽象為外設(shè)信息單元,外設(shè)信息在各個可信設(shè)備之間自動同步,如此,實現(xiàn)了外設(shè)信息的全局可見;結(jié)合分布式硬件虛擬化技術(shù),實現(xiàn)任意設(shè)備之間的
    發(fā)表于 12-06 10:02

    redis分布式鎖的應用場景有哪些

    Redis分布式鎖是一種基于Redis實現(xiàn)的分布式鎖機制,可以在分布式環(huán)境下確保資源的獨占性,避免并發(fā)訪問時的數(shù)據(jù)爭用問題。下面將詳細介紹Redis
    的頭像 發(fā)表于 12-04 11:21 ?1357次閱讀

    技術(shù)視界】分布式系統(tǒng)硬件資源原理和接入實踐

    的是分布式硬件技術(shù)專家的分享,希望為您的開發(fā)之路帶來啟發(fā)~ 作者:ZhangChuang,華為分布式硬件
    的頭像 發(fā)表于 12-05 21:35 ?719次閱讀
    【<b class='flag-5'>技術(shù)</b>視界】<b class='flag-5'>分布式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>硬件</b><b class='flag-5'>資源</b><b class='flag-5'>池</b>原理和<b class='flag-5'>接入</b><b class='flag-5'>實踐</b>