OpenHarmony 3.1 Release版本特性解析——OpenHarmony硬體資源池化架構介紹

OpenHarmony社群發表於2022-05-25


作者:李剛,OpenHarmony 分散式硬體管理SIG成員
華為技術有限公司分散式硬體專家

OpenHarmony作為面向全場景、全連線、全智慧時代的分散式作業系統,通過將各類不同終端裝置的能力進行整合,實現硬體互助、資源共享,為使用者提供流暢的全場景體驗。本期,我們通過介紹OpenHarmony的硬體資源池化框架,為大家揭曉OpenHarmony是如何實現多裝置協同的。

一、 硬體資源訪問的演進

硬體資源訪問是多裝置進行協同的關鍵。OpenHarmony發展至今,硬體資源訪問經歷了從“一對一”到“一對多”的演進過程。

1.1 一對一
在設計初期,為解決兩臺裝置間的協同問題,我們通過系統提供的分散式裝置虛擬化平臺將兩臺裝置的硬體資源進行融合,實現了“一對一”的硬體資源訪問。

$$ 圖1 “一對一”的硬體資源訪問模型 $$

應用通過整合多裝置虛擬化Kit,對裝置虛擬化平臺進行訪問。裝置虛擬化平臺提供裝置A和裝置B之間的資料互動以及裝置的虛擬化能力,進而完成裝置A的應用訪問裝置B的硬體能力,實現“一對一”的硬體資源訪問。這種訪問模型可以基本滿足兩個裝置之間的資源訪問,但是同時也存在一定的掣肘:

  • 第一點是應用需要整合多裝置虛擬化Kit包才能完成硬體資源的訪問,增加了開發工作量。
  • 第二點是該訪問模型限制了裝置A的應用在同一時刻只能訪問裝置B的硬體能力,即只能完成“一對一”的硬體資源訪問。

1.2 一對多
隨著全場景智慧生活的不斷深入,“一對一”的裝置硬體資源訪問方式已不能滿足某些複雜場景的業務需求。OpenHarmony對分散式技術不斷探索與創新,通過增強原來的分散式裝置虛擬化能力,將多臺裝置的各種硬體資源,如螢幕、相機、擴音器、鍵盤、感測器及儲存器等予以抽象,形成“超級虛擬終端”內的統一硬體資源池,並支援硬體資源的按需分配和重新組合,真正實現了硬體資源的全域性呼叫。應用需要使用哪種分散式的硬體能力,只需要訪問對應的服務,不再需要整合Kit;並且由硬體資源池提供的多種硬體資源可以同時被不同的應用訪問,實現“一對多”的硬體資源訪問。

$$ 圖2 “一對多”的硬體資源訪問模型 $$

基於“硬體資源池化”,開發者可以根據不同的業務場景,在硬體資源池內選擇並匹配合適的能力模組,充分發揮不同裝置的能力優勢,從而構建全新的使用者體驗。

二、 硬體資源池化框架

基於“硬體資源池化”的創新理念,OpenHarmony融合硬體虛擬化、硬體資源管理及硬體資料管理等能力,構建了硬體資源池化框架,對外提供了統一的硬體能力開放介面,讓開發者輕鬆實現應用開發。如圖3所示,硬體資源池化框架將各類裝置的硬體資源進行抽象,為北向應用提供各種分散式服務,比如分散式相機、分散式螢幕、分散式音訊和分散式輸入等,同時提供統一的裝置管理和分散式硬體框架對硬體資源進行管理。

$$ 圖3 硬體資源池化框架 $$

下面為大家介紹硬體資源池化框架的各個組成部分。

2.1 裝置管理(DeviceManager)
該元件在OpenHarmony系統中提供與帳號無關的分散式裝置的認證組網能力,併為開發者提供了一套用於分散式裝置發現和認證的介面,如圖4所示。當前支援同時管理的裝置數量最大規格為20個裝置。

$$ 圖4 裝置管理元件 $$

詳細資訊請參考裝置管理的程式碼倉:
https://gitee.com/openharmony...

2.2 分散式硬體框架(DistributedHardwareFwk)
該元件為硬體資源池化提供資訊管理能力,其主要能力包括接入管理、能力查詢、狀態管理、許可權管理以及版本管理等。
詳細資訊請參考分散式硬體框架的程式碼倉:https://gitee.com/openharmony...

2.3 分散式相機(Distributed Camera)
該元件提供跨裝置相機訪問的能力,將其他終端的裝置的相機硬體能力進行抽象,作為硬體資源池中的相機能力提供給其他裝置呼叫。
詳細資訊請參考分散式相機的程式碼倉:https://gitee.com/openharmony...

2.4 分散式螢幕(Distributed Screen)
該元件提供跨裝置螢幕能力呼叫,為OpenHarmony系統框架提供系統投屏、螢幕映象、螢幕分割等能力的實現。
詳細資訊請參考分散式螢幕的程式碼倉:https://gitee.com/openharmony...

三、 後續規劃

除了分散式相機和分散式螢幕外,硬體資源池化框架在後續版本還將提供分散式音訊和分散式輸入能力。分散式音訊將提供對麥克風、喇叭、聽筒等音訊裝置的硬體資源池化能力,通過音訊服務提供給應用開發者,使得開發者能夠自由選擇、切換、組合音訊裝置,提升使用者的使用體驗。分散式輸入將提供對鍵盤、滑鼠等輸入裝置的硬體資源池化能力,通過輸入服務讓應用開發者能跨裝置呼叫輸入能力,實現多裝置協同。
硬體資源池化框架仍在建設中,期待廣大開發者共同加入我們,共同見證萬物互聯時代的無限可能!

相關文章