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

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

3天內不再提示

【技術視界】分布式系統硬件資源池原理和接入實踐

HarmonyOS開發(fā)者 ? 來源:未知 ? 2023-12-05 21:35 ? 次閱讀
# 技術視界# 【技術視界】欄目為開發(fā)者提供華為研發(fā)專家對于HarmonyOS關鍵技術的專業(yè)解讀,從不同角度、不同方面幫助開發(fā)者更好更快地掌握HarmonyOS相關開發(fā)知識。本期文章為大家?guī)淼氖欠植际接布夹g專家的分享,希望為您的開發(fā)之路帶來啟發(fā)~

作者:ZhangChuang,華為分布式硬件技術專家

硬件資源池理念產生背景

隨著智能設備的發(fā)展和普及,越來越多的智能設備已經深入人們的生活,比如手機,PC,平板,各類穿戴設備等。當前單個設備的外設資源已經非常豐富,硬件能力也很強大。像我們的手機PC、平板都有相機,音頻屏幕,鍵鼠等各種外設資源;但是這些硬件外設是屬于各個設備自身的,如果涉及到跨設備的協同操作就會比較繁瑣。比如用戶正在PC上編輯文檔,需要從平板復制一段文字,或者使用手機拍攝照片,然后插入文檔作為素材,需要用戶在各個設備上分別操作,然后發(fā)送文字或者圖片到PC,然后再回到PC進行編輯,非常繁瑣。如果應用開發(fā)者從應用層實現設備間硬件能力共享,對于應用開發(fā)者工作量和難度非常大,而且各個應用之間需要重復開發(fā),能力難以復用和繼承。

wKgZomVvKDOAJYOfAAFY4UE7BIQ273.png

圖1 單設備硬件孤立難以共享

為此,鴻蒙系統提出了硬件資源池的理念,打破了各個設備硬件的孤立狀態(tài),能夠做到設備間硬件外設全局共享。我們把各個設備的硬件外設抽象為外設信息單元,外設信息在各個可信設備之間自動同步,如此,實現了外設信息的全局可見;結合分布式硬件虛擬化技術,實現任意設備之間的硬件外設能力跨設備調用;分布式硬件資源池作為系統能力下沉系統底層,北向開發(fā)者不感知資源池的存在;跨設備硬件和本地硬件使用同一套API,開發(fā)者調用跨設備硬件體驗和本地硬件一致,如此明顯的便利了開發(fā)者調用跨設備硬件,開發(fā)者無需關注硬件底層細節(jié),專注于業(yè)務創(chuàng)新。

wKgZomVvKDOAJ11rAAG6Wffp6kE793.png圖2 硬件資源池打破硬件邊界,全局共享

鴻蒙系統硬件資源池支持場景

鴻蒙系統采用硬件資源池的理念,能夠結合多個設備的優(yōu)勢硬件為用戶提供更優(yōu)的體驗,同時支持了消費者和開發(fā)者的多種創(chuàng)新體驗。

2.1消費者場景

在消費者層面,華為分布式硬件支持智慧辦公,智慧出行等多種創(chuàng)新場景。例如智慧辦公場景中,使用一套PC鍵鼠即可和周邊平板等設備跨設備操作,使用到鍵鼠外設的跨設備操控能力;多屏協同場景中,手機屏幕顯示到平板,手機視頻通話可以使用平板的麥克風和攝像頭,用戶在平板上即可同時操作手機平板兩臺設備,避免設備間來回切換,操作方便,這個場景使用到了麥克風,揚聲器,攝像頭和屏幕等硬件的跨設備分布式能力。

在智慧出行場景中,用戶在手機上聽音樂或者視頻通話,進入座艙后,手機上的音樂和通話可以自動接續(xù)到車機,使用車機的音頻外設播音和拾音,使用車機的攝像頭進行視頻通話,更加符合用戶在座艙中的使用習慣;手機導航接續(xù)到車機后,車機的GPS信號可以共享給手機,結合手機GPS信號提供更高精度的定位數據;可以看到,在智慧出行場景中,可以通過分布式硬件資源池結合手機和車機的優(yōu)勢硬件,為用戶提供更好的服務體驗。

wKgZomVvKDOAeId3AAPNpEwT8Tc565.png

圖3 鴻蒙硬件資源池支持各類消費者場景

2.2開發(fā)者場景

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

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

圖4 分布式硬件開發(fā)者使用示例

硬件資源池原理

以相機和音頻為例,假設設備A和設備B都有各自的相機和音頻外設,驅動層有對應的本地相機和本地音頻驅動。

wKgZomVvKDOAc72oAAIrBK7Y66k422.png

圖5分布式硬件資源池原理示意

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

以設備A的流程為例,分布式硬件收到對端設備B的硬件規(guī)格數據后,在驅動層注冊對應的虛擬相機和虛擬音頻驅動,虛擬驅動相當于對端設備物理硬件在本地的代理;虛擬驅動實現和本地硬件驅動相同的HDI接口,區(qū)別在于,本地硬件驅動操作本地物理硬件,虛擬硬件驅動控制和數據傳輸通過軟總線作用于對端分布式硬件。

由于和本地硬件實現同樣的HDI接口,設備B相機和音頻對應的虛擬硬件可以被相機服務和音頻服務發(fā)現并管理,包括外設的查詢,相機的預覽拍照錄像,音頻的播放,聲音的錄制等功能。

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

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

詳細實現可以參考分布硬件管理框架源碼:https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk

硬件資源池接入實踐

4.1接口定義

通過前文分析,可以看到分布式硬件與南向硬件的交互涉及"硬件信息采集"和"驅動注冊"兩類業(yè)務,與此對應,分布式硬件針對南向硬件接入定義了兩類接口。一類是硬件規(guī)格采集接口,一類是驅動注冊與準備接口。

wKgZomVvKDSANz9mAAHDLSFkP1Y245.png

圖6 分布式硬件資源池接入接口

(1)硬件規(guī)格采集接口

硬件規(guī)格采集接口定義了規(guī)格信息的采集以及外設熱插拔事件監(jiān)聽等功能。

接口鏈接:https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk/blob/master/common/utils/include/ihardware_handler.h

(2)驅動注冊與準備接口

由于我們是跨設備硬件調用,涉及雙端設備的硬件,我們定義使用周邊其他設備硬件外設的一端為Source端,共享本地硬件給其他設備調用的一端為Sink端。

驅動注冊與準備接口包括Source和Sink兩端。

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

Source端接口鏈接:https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk/blob/master/common/utils/include/idistributed_hardware_source.h

Sink端接口鏈接:https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk/blob/master/common/utils/include/idistributed_hardware_sink.h

4.2硬件接入實例

由于分布式硬件良好的南向接入解耦設計,如果有新硬件外設接入,只需要如下三步即可,以分布式相機配置為例。

Step1:定義硬件外設類型枚舉值CAMERA。

enumclassDHType:uint32_t{
UNKNOWN=0x0,//unknowndevice
CAMERA=0x01,//Camera
AUDIO=0x02,//Mic
SCREEN=0x08,//Display
GPS=0x10,//GPS
INPUT=0x20,//Keyboard
MAX_DH=0x80000000
};
(左右滑動查看更多)

文件鏈接:https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk/blob/master/common/utils/include/device_type.h

Step2:實現分布式硬件框架定義的南向接入接口,分別實現為三個so。

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

參考代碼:https://gitee.com/openharmony/distributedhardware_distributed_camera/blob/master/services/cameraservice/cameraoperator/handler/include/dcamera_handler.h

2、實現Source側接入接口IDistributedHardwareSource,并編譯獲得接口實現libdistributed_camera_source_sdk.z.so。

參考代碼:https://gitee.com/openharmony/distributedhardware_distributed_camera/blob/master/interfaces/inner_kits/native_cpp/camera_source/include/dcamera_source_handler.h

3、實現Sink側接入接口IDistributedHardwareSink,并編譯獲得接口實現libdistributed_camera_sink_sdk.z.so。

參考代碼:

https://gitee.com/openharmony/distributedhardware_distributed_camera/blob/master/interfaces/inner_kits/native_cpp/camera_sink/include/dcamera_sink_handler.h

Step3:在分布式硬件子部件配置文件中,添加新硬件外設相關配置,包括外設類型,南向接口實現的so名稱,版本號,以及Source和Sink端服務分配的服務Id。

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

{
"name":"distributed_camera",
"type":"CAMERA",
"comp_handler_loc":"libdistributed_camera_handler.z.so",
"comp_handler_version":"1.0",
"comp_source_loc":"libdistributed_camera_source_sdk.z.so",
"comp_source_version":"1.0",
"comp_source_sa_id":4803,
"comp_sink_loc":"libdistributed_camera_sink_sdk.z.so",
"comp_sink_version":"1.0",
"comp_sink_sa_id":4804
}

左右滑動查看更多)

配置鏈接:https://gitee.com/openharmony/device_board_hihope/blob/master/rk3568/distributedhardware/distributed_hardware_components_cfg.json

三個接口的so實現后,編譯打包到系統庫路徑下,同時配置到分布式硬件部件配置文件中,設備組網上線后,可以看到分布式相機的dcamera進程已經成功啟動,表明相機外設已經納入資源池管理,成為分布式相機。

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

wKgZomVvKDSARBpJAAF4EIX1ys0175.png圖7 分布式硬件相關進程

社區(qū)已開源分布式硬件代碼倉

當前在OpenHarmony開源社區(qū),已經開源了硬件資源池管理框架,分布式相機,分布式音頻,分布式屏幕,分布式輸入的代碼倉,開放了相機,音頻,屏幕和鍵鼠輸入外設的跨設備控制源碼,關于硬件資源池的詳細實現,可以參考我們的開源代碼倉。1、分布式硬件框架(distributedhardware_distributed_hardware_fwk)https://gitee.com/openharmony/distributedhardware_distributed_hardware_fwk

2、分布式相機(distributedhardware_distributed_camera)

https://gitee.com/openharmony/distributedhardware_distributed_camera

3、分布式音頻(distributedhardware_distributed_audio)

https://gitee.com/openharmony/distributedhardware_distributed_audio

4、分布式屏幕(distributedhardware_distributed_screen)

https://gitee.com/openharmony/distributedhardware_distributed_screen

5、分布式輸入(distributedhardware_distributed_input)

https://gitee.com/openharmony/distributedhardware_distributed_input

更多推薦

wKgZomVvKDSAcElAAADXrK0uGFA001.gif點擊下方圖片鏈接,查看更多欄目內容


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

    關注

    79

    文章

    1980

    瀏覽量

    30282

原文標題:【技術視界】分布式系統硬件資源池原理和接入實踐

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于ptp的分布式系統設計

    在現代分布式系統中,精確的時間同步對于確保數據一致性、系統穩(wěn)定性和性能至關重要。PTP(Precision Time Protocol)是一種網絡協議,用于在分布式
    的頭像 發(fā)表于 12-29 10:09 ?128次閱讀

    輸電線路分布式故障定位系統的智能化發(fā)展與創(chuàng)新實踐

    TLKS-PMG-DSC輸電線路分布式故障定位系統。該系統采用分布式傳感器技術,實現對輸電線路的全面實時監(jiān)控,能夠在故障發(fā)生時迅速鎖定故障位
    的頭像 發(fā)表于 11-29 10:51 ?264次閱讀
    輸電線路<b class='flag-5'>分布式</b>故障定位<b class='flag-5'>系統</b>的智能化發(fā)展與創(chuàng)新<b class='flag-5'>實踐</b>

    分布式光伏發(fā)電系統的應用

    分布式光伏發(fā)電系統現狀? Q/GDW1480-2015 《分布式電源接入電網技術規(guī)定》:分布式
    的頭像 發(fā)表于 11-21 16:31 ?230次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)電<b class='flag-5'>系統</b>的應用

    分布式通信的原理和實現高效分布式通信背后的技術NVLink的演進

    大型模型的大小已經超出了單個 GPU 的范圍。所以就需要實現跨多個 GPU 的模型訓練,這種訓練方式就涉及到了分布式通信和 NVLink。 當談及分布式通信和 NVLink 時,我們進入了一個引人入勝且不斷演進的技術領域,下面我
    的頭像 發(fā)表于 11-18 09:39 ?495次閱讀
    <b class='flag-5'>分布式</b>通信的原理和實現高效<b class='flag-5'>分布式</b>通信背后的<b class='flag-5'>技術</b>NVLink的演進

    淺談屋頂分布式光伏發(fā)電技術的設計與應用

    【摘要】為了緩解城市用電緊張袁降低人們的用電成本,可以在工業(yè)園區(qū)、辦公樓屋頂等場所應用屋頂分布式光伏發(fā)電技術進行就近轉換、并網發(fā)電袁充分利用建筑物屋頂的太陽資源。概述屋頂分布式光伏發(fā)電
    的頭像 發(fā)表于 11-11 15:10 ?630次閱讀
    淺談屋頂<b class='flag-5'>分布式</b>光伏發(fā)電<b class='flag-5'>技術</b>的設計與應用

    安科瑞分布式光伏系統在某重工企業(yè)18MW分布式光伏中應用

    ,江蘇省分布式光伏有2228萬千瓦新增接入空間! 表:江蘇省分布式光伏接入能力規(guī)劃 根據國家能源局統計數據,截止2023年底,江蘇省分布式
    的頭像 發(fā)表于 07-19 11:30 ?531次閱讀
    安科瑞<b class='flag-5'>分布式</b>光伏<b class='flag-5'>系統</b>在某重工企業(yè)18MW<b class='flag-5'>分布式</b>光伏中應用

    EasyGo使用筆記丨分布式光伏集群并網控制硬件在環(huán)仿真應用

    進行控制;對于逆變器的控制,采用三相空間矢量脈寬調制(SVPWM)控制算法以及電壓電流雙閉環(huán)控制算法。最后構建了分布式光伏集群并網發(fā)電系統的綜合仿真模型,并在MATLAB/Simulink平臺上成功實現
    發(fā)表于 07-12 17:20

    分布式光伏接入導致農村臺區(qū)電壓越限,CET中電技術如何解決?

    分布式光伏的接入也容易導致農村臺區(qū)整體電壓越限,引發(fā)經常性的電壓故障報警,影響著供配電系統的安全穩(wěn)定運行。對此,CET中電技術推出CET農村臺區(qū)電壓治理解決方案,方
    的頭像 發(fā)表于 06-21 08:35 ?980次閱讀
    因<b class='flag-5'>分布式</b>光伏<b class='flag-5'>接入</b>導致農村臺區(qū)電壓越限,CET中電<b class='flag-5'>技術</b>如何解決?

    分布式智慧終端在金融行業(yè)安全監(jiān)管的應用實踐

    訊維分布式智慧終端在金融行業(yè)安全監(jiān)管方面的應用實踐,展現出了其在保障金融安全、提升監(jiān)管效率方面的顯著優(yōu)勢。以下是對其應用實踐的詳細分析: 一、全面安全監(jiān)管與風險預警 訊維分布式智慧終端
    的頭像 發(fā)表于 04-07 15:33 ?346次閱讀

    基于分布式運維管理平臺的智慧城市運維實踐

    基于分布式運維管理平臺的智慧城市運維實踐是一個涉及多個層面和維度的復雜過程。下面將從幾個關鍵方面對其實踐進行概述: 首先,智慧城市運維的核心在于實現對城市各個系統和服務的全面感知、智能
    的頭像 發(fā)表于 03-26 16:12 ?540次閱讀

    分布式綜合管理平臺在公共安全領域的成功實踐

    的成功實踐。 訊維分布式綜合管理平臺通過集成各類公共安全相關的視頻監(jiān)控、報警系統、應急通信等資源,實現了對公共安全事件的全面監(jiān)控和快速響應。在多個城市的公共安全
    的頭像 發(fā)表于 03-18 16:13 ?357次閱讀

    工商業(yè)企業(yè)屋頂光伏 分布式光伏發(fā)電系統

    電網技術規(guī)定》:分布式電源并網電壓等級可根據各并網點裝機容量進行初步選擇,推薦如下:8kW?及以下可接入220V;8kW~400kW可接入380V;400kW~6000kW可
    的頭像 發(fā)表于 03-15 14:21 ?1250次閱讀
    工商業(yè)企業(yè)屋頂光伏 <b class='flag-5'>分布式</b>光伏發(fā)電<b class='flag-5'>系統</b>

    分布式大屏控制系統的屏幕同步技術

    分布式大屏控制系統的屏幕同步技術是確保系統內多個顯示屏幕顯示相同內容的關鍵技術之一。以下是實現屏幕同步的幾種
    的頭像 發(fā)表于 01-29 14:40 ?879次閱讀

    分布式大屏控制系統的工作原理

    分布式大屏控制系統是一種基于分布式計算、云計算和大數據技術的控制系統,具有高效、穩(wěn)定、靈活的特點。該系統
    的頭像 發(fā)表于 01-29 14:24 ?785次閱讀

    什么是分布式架構?

    分布式架構是指將一個系統或應用拆分成多個獨立的節(jié)點,這些節(jié)點通過網絡連接進行通信和協作,以實現共同完成任務的一種架構模式。這種架構模式旨在提高系統的可擴展性、可靠性和性能表現。 一、分布式
    的頭像 發(fā)表于 01-12 15:04 ?1277次閱讀
    什么是<b class='flag-5'>分布式</b>架構?