OpenHarmony3.1 Release版本特性解析——硬體資源池化架構介紹

2022-05-23 21:07:09
李剛
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/device_manager


2.2 分散式硬體框架(DistributedHardwareFwk)


該元件為硬體資源池化提供資訊管理能力,其主要能力包括接入管理、能力查詢、狀態管理、許可權管理以及版本管理等。

 

詳細資訊請參考分散式硬體框架的程式碼倉:https://gitee.com/openharmony/distributed_hardware_fwk


2.3 分散式相機(Distributed Camera)


該元件提供跨裝置相機存取的能力,將其他終端的裝置的相機硬體能力進行抽象,作為硬體資源池中的相機能力提供給其他裝置呼叫。

 

詳細資訊請參考分散式相機的程式碼倉:https://gitee.com/openharmony/distributed_camera


2.4 分散式螢幕(Distributed Screen)


該元件提供跨裝置螢幕能力呼叫,為 OpenHarmony 系統框架提供系統投屏、螢幕映象、螢幕分割等能力的實現。

 

詳細資訊請參考分散式螢幕的程式碼倉:https://gitee.com/openharmony/distributed_screen


三、後續規劃


除了分散式相機和分散式螢幕外,硬體資源池化框架在後續版本還將提供分散式音訊和分散式輸入能力。分散式音訊將提供對麥克風、喇叭、聽筒等音訊裝置的硬體資源池化能力,通過音訊服務提供給應用開發者,使得開發者能夠自由選擇、切換、組合音訊裝置,提升使用者的使用體驗。分散式輸入將提供對鍵盤、滑鼠等輸入裝置的硬體資源池化能力,通過輸入服務讓應用開發者能跨裝置呼叫輸入能力,實現多裝置協同。

 

硬體資源池化框架仍在建設中,期待廣大開發者共同加入我們,共同見證萬物互聯時代的無限可能!