OpenHarmony硬件資源池化架構(gòu)介紹
OpenHarmony作為面向全場景、全連接、全智能時代的分布式操作系統(tǒng),通過將各類不同終端設(shè)備的能力進行整合,實現(xiàn)硬件互助、資源共享,為用戶提供流暢的全場景體驗。本期,我們通過介紹OpenHarmony的硬件資源池化框架,為大家揭曉O(shè)penHarmony是如何實現(xiàn)多設(shè)備協(xié)同的。
1. 硬件資源訪問的演進硬件資源訪問是多設(shè)備進行協(xié)同的關(guān)鍵。OpenHarmony發(fā)展至今,硬件資源訪問經(jīng)歷了從“一對一”到“一對多”的演進過程。
2.1 一對一
在設(shè)計初期,為解決兩臺設(shè)備間的協(xié)同問題,我們通過系統(tǒng)提供的分布式設(shè)備虛擬化平臺將兩臺設(shè)備的硬件資源進行融合,實現(xiàn)了“一對一”的硬件資源訪問。
圖1 “一對一”的硬件資源訪問模型
應(yīng)用通過集成多設(shè)備虛擬化Kit,對設(shè)備虛擬化平臺進行訪問。設(shè)備虛擬化平臺提供設(shè)備A和設(shè)備B之間的數(shù)據(jù)交互以及設(shè)備的虛擬化能力,進而完成設(shè)備A的應(yīng)用訪問設(shè)備B的硬件能力,實現(xiàn)“一對一”的硬件資源訪問。這種訪問模型可以基本滿足兩個設(shè)備之間的資源訪問,但是同時也存在一定的掣肘:
● 第一點是應(yīng)用需要集成多設(shè)備虛擬化Kit包才能完成硬件資源的訪問,增加了開發(fā)工作量。
● 第二點是該訪問模型限制了設(shè)備A的應(yīng)用在同一時刻只能訪問設(shè)備B的硬件能力,即只能完成“一對一”的硬件資源訪問。
2.2 一對多
隨著全場景智慧生活的不斷深入,“一對一”的設(shè)備硬件資源訪問方式已不能滿足某些復(fù)雜場景的業(yè)務(wù)需求。OpenHarmony對分布式技術(shù)不斷探索與創(chuàng)新,通過增強原來的分布式設(shè)備虛擬化能力,將多臺設(shè)備的各種硬件資源,如屏幕、相機、擴音器、鍵盤、傳感器及存儲器等予以抽象,形成“超級虛擬終端”內(nèi)的統(tǒng)一硬件資源池,并支持硬件資源的按需分配和重新組合,真正實現(xiàn)了硬件資源的全局調(diào)用。應(yīng)用需要使用哪種分布式的硬件能力,只需要訪問對應(yīng)的服務(wù),不再需要集成Kit;并且由硬件資源池提供的多種硬件資源可以同時被不同的應(yīng)用訪問,實現(xiàn)“一對多”的硬件資源訪問。
圖2 “一對多”的硬件資源訪問模型
基于“硬件資源池化”,開發(fā)者可以根據(jù)不同的業(yè)務(wù)場景,在硬件資源池內(nèi)選擇并匹配合適的能力模塊,充分發(fā)揮不同設(shè)備的能力優(yōu)勢,從而構(gòu)建全新的用戶體驗。
2. 硬件資源池化框架基于“硬件資源池化”的創(chuàng)新理念,OpenHarmony融合硬件虛擬化、硬件資源管理及硬件數(shù)據(jù)管理等能力,構(gòu)建了硬件資源池化框架,對外提供了統(tǒng)一的硬件能力開放接口,讓開發(fā)者輕松實現(xiàn)應(yīng)用開發(fā)。如圖3所示,硬件資源池化框架將各類設(shè)備的硬件資源進行抽象,為北向應(yīng)用提供各種分布式服務(wù),比如分布式相機、分布式屏幕、分布式音頻和分布式輸入等,同時提供統(tǒng)一的設(shè)備管理和分布式硬件框架對硬件資源進行管理。
圖3 硬件資源池化框架
下面為大家介紹硬件資源池化框架的各個組成部分。
1. 設(shè)備管理(DeviceManager)
該組件在OpenHarmony系統(tǒng)中提供與帳號無關(guān)的分布式設(shè)備的認證組網(wǎng)能力,并為開發(fā)者提供了一套用于分布式設(shè)備發(fā)現(xiàn)和認證的接口,如圖4所示。當(dāng)前支持同時管理的設(shè)備數(shù)量最大規(guī)格為20個設(shè)備。
圖4 設(shè)備管理組件
詳細信息請參考碼云平臺OpenHarmony項目設(shè)備管理的代碼倉:
https://gitee.com/openharmony/device_manager
2. 分布式硬件框架(DistributedHardwareFwk)
該組件為硬件資源池化提供信息管理能力,其主要能力包括接入管理、能力查詢、狀態(tài)管理、權(quán)限管理以及版本管理等。
詳細信息請參考碼云平臺OpenHarmony項目分布式硬件框架的代碼倉:https://gitee.com/openharmony/distributed_hardware_fwk
3. 分布式相機(Distributed Camera)
該組件提供跨設(shè)備相機訪問的能力,將其他終端的設(shè)備的相機硬件能力進行抽象,作為硬件資源池中的相機能力提供給其他設(shè)備調(diào)用。
詳細信息請參考碼云平臺OpenHarmony項目分布式相機的代碼倉:https://gitee.com/openharmony/distributed_camera
4. 分布式屏幕(Distributed Screen)
該組件提供跨設(shè)備屏幕能力調(diào)用,為OpenHarmony系統(tǒng)框架提供系統(tǒng)投屏、屏幕鏡像、屏幕分割等能力的實現(xiàn)。
詳細信息請參考碼云平臺OpenHarmony項目分布式屏幕的代碼倉:https://gitee.com/openharmony/distributed_screen
3. 后續(xù)規(guī)劃除了分布式相機和分布式屏幕外,硬件資源池化框架在后續(xù)版本還將提供分布式音頻和分布式輸入能力。分布式音頻將提供對麥克風(fēng)、喇叭、聽筒等音頻設(shè)備的硬件資源池化能力,通過音頻服務(wù)提供給應(yīng)用開發(fā)者,使得開發(fā)者能夠自由選擇、切換、組合音頻設(shè)備,提升用戶的使用體驗。分布式輸入將提供對鍵盤、鼠標等輸入設(shè)備的硬件資源池化能力,通過輸入服務(wù)讓應(yīng)用開發(fā)者能跨設(shè)備調(diào)用輸入能力,實現(xiàn)多設(shè)備協(xié)同。
硬件資源池化框架仍在建設(shè)中,期待廣大開發(fā)者共同加入我們,共同見證萬物互聯(lián)時代的無限可能!
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。