OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)作為面向全場(chǎng)景、全連接、全智能時(shí)代的分布式操作系統(tǒng),通過(guò)將各類不同終端設(shè)備的能力進(jìn)行整合,實(shí)現(xiàn)硬件互助、資源共享,為用戶提供流暢的全場(chǎng)景體驗(yàn)。本期,我們通過(guò)介紹 OpenHarmony 的硬件資源池化模型,為大家揭曉 OpenHarmony 是如何實(shí)現(xiàn)多設(shè)備協(xié)同的。
1.硬件資源訪問(wèn)的演進(jìn)
硬件資源訪問(wèn)是多設(shè)備進(jìn)行協(xié)同的關(guān)鍵。OpenHarmony 發(fā)展至今,硬件資源訪問(wèn)經(jīng)歷了從“一對(duì)一”到“多對(duì)多”的演進(jìn)過(guò)程。
1.1 一對(duì)一
在設(shè)計(jì)初期,為解決兩臺(tái)設(shè)備間的協(xié)同問(wèn)題,我們通過(guò) OpenHarmony 提供的分布式設(shè)備虛擬化能力將兩臺(tái)設(shè)備的硬件資源進(jìn)行融合,實(shí)現(xiàn)了“一對(duì)一”的硬件資源訪問(wèn)。這便是硬件資源池化模型的雛形。
1.2 多對(duì)多
隨著全場(chǎng)景智慧生活的不斷深入,“一對(duì)一”的設(shè)備硬件資源訪問(wèn)方式已不能滿足某些復(fù)雜場(chǎng)景的業(yè)務(wù)需求。OpenHarmony 對(duì)分布式技術(shù)不斷探索與創(chuàng)新,通過(guò)增強(qiáng)原來(lái)的分布式設(shè)備虛擬化能力,將多臺(tái)設(shè)備的各種硬件資源,如屏幕、相機(jī)、擴(kuò)音器、鍵盤(pán)、傳感器及存儲(chǔ)器等予以抽象,形成“超級(jí)虛擬終端”內(nèi)的統(tǒng)一硬件資源池,并支持硬件資源的按需分配和重新組合,真正實(shí)現(xiàn)了硬件資源的全局調(diào)用。組成“超級(jí)虛擬終端”的多個(gè)設(shè)備,能訪問(wèn)硬件資源池內(nèi)的多種硬件資源,這便是“多對(duì)多”的硬件資源訪問(wèn)。
基于“硬件資源池化”,開(kāi)發(fā)者可以根據(jù)不同的業(yè)務(wù)場(chǎng)景,在硬件資源池內(nèi)選擇并匹配合適的能力模塊,充分發(fā)揮不同設(shè)備的能力優(yōu)勢(shì),從而構(gòu)建全新的用戶體驗(yàn)。
2.硬件資源池化模型
基于“硬件資源池化”的創(chuàng)新理念,OpenHarmony 融合硬件虛擬化、硬件資源管理及硬件數(shù)據(jù)管理等能力,構(gòu)建了硬件資源池化模型,對(duì)外提供了統(tǒng)一的硬件能力開(kāi)放接口,讓開(kāi)發(fā)者輕松實(shí)現(xiàn)高效開(kāi)發(fā)。
如圖3所示,硬件資源池化模型將各類設(shè)備的硬件資源進(jìn)行抽象,為北向應(yīng)用提供各種分布式服務(wù),比如分布式相機(jī)、分布式屏幕、分布式音頻和分布式輸入等,同時(shí)提供統(tǒng)一的設(shè)備管理和分布式硬件框架。
圖3 硬件資源池化模型
下面為大家一一介紹硬件資源池化模型的各個(gè)組成部分。
2.1 設(shè)備管理
設(shè)備管理(即 DeviceManager)服務(wù),提供設(shè)備發(fā)現(xiàn)、認(rèn)證管理、可信設(shè)備管理和設(shè)備狀態(tài)管理等能力。
圖4 設(shè)備管理(DeviceManager)
OpenHarmony 為開(kāi)發(fā)者提供了一套設(shè)備管理接口,用于分布式設(shè)備間監(jiān)聽(tīng)、發(fā)現(xiàn)和認(rèn)證,如圖 5 所示。
圖5 設(shè)備管理接口
設(shè)備管理接口的使用示例代碼如下:
// 創(chuàng)建DeviceManager實(shí)例:
deviceManager.createDeviceManager('com.ohos.xxxx', (err, dm) => {
this.log("createDeviceManager err:" + JSON.stringify(err) + ' --success:' + JSON.stringify(dm))
if (err) return;
dmClass = dm;
dmClass.on('serviceDie', data => this.log("serviceDie on:" + JSON.stringify(data)))
});
// 查詢可信設(shè)備列表
var array = dmClass.getTrustedDeviceListSync();
// 獲取本地設(shè)備信息
var localDeviceInfo = dmClass.getLocalDeviceInfoSync();
// 開(kāi)始設(shè)備發(fā)現(xiàn)(發(fā)現(xiàn)周邊不可信設(shè)備)
var subscribeId = 0;
dmClass.on('deviceFound', (data) => {
if (data == null) {
this.log("deviceFound error data=null")
return;
}
this.logList.push("deviceFound:" + JSON.stringify(data));
});
dmClass.on('discoverFail', (data) => {
this.log("discoverFail on:" + JSON.stringify(data));
});
subscribeId = Math.floor(Math.random() * 10000 + 1000)
var info = {
"subscribeId": subscribeId,
"mode": 0xAA,
"medium": 0,
"freq": 2,
"isSameAccount": false,
"isWakeRemote": true,
"capability": 0
};
dmClass.startDeviceDiscovery(info);
// 停止設(shè)備發(fā)現(xiàn)(需要和startDeviceDiscovery接口配對(duì)使用)
dmClass.stopDeviceDiscovery(subscribeId);
// 設(shè)備認(rèn)證
var deviceInfo ={
"deviceId": "XXXXXXXX",
"deviceName": "",
deviceType: 0
};
let extraInfo = {
"appIcon": new Uint8Array(), // app圖標(biāo),可選參數(shù),可不填
"appThumbnail": new Uint8Array(), // app縮略圖,可選參數(shù),可不填
"appName": "xxxxxxxx", // 對(duì)端設(shè)備應(yīng)用名稱
"appDescription": "xxxxxxxx", // app描述
"business": '0',
"displayOwner": 0,
}
// 設(shè)備取消認(rèn)證
dmClass.unAuthenticateDevice(this.deviceInfo);
DeviceManager 的更多詳情,請(qǐng)參考以下代碼倉(cāng):
https://gitee.com/openharmony/device_manager
2.2 分布式硬件框架
分布式硬件框架為硬件資源池化模型提供了接入管理、能力查詢、狀態(tài)管理、權(quán)限管理以及版本管理等硬件資源管理能力,如圖6所示:
圖6 分布式硬件框架
分布式硬件框架的各模塊說(shuō)明如下:
圖9 分布式相機(jī)的模塊說(shuō)明
分布式相機(jī)的更多詳情,請(qǐng)參考分布式相機(jī)代碼倉(cāng):
https://gitee.com/openharmony/distributed_camera
2.4 分布式屏幕
分布式屏幕提供了屏幕設(shè)備的硬件資源軟件抽象能力,為 OpenHarmony 系統(tǒng)框架提供系統(tǒng)投屏、屏幕鏡像、屏幕分割等能力的實(shí)現(xiàn)。分布式屏幕的框架圖如下所示:
圖10 分布式屏幕
分布式屏幕的各模塊說(shuō)明如下:
圖11 分布式屏幕的模塊說(shuō)明
分布式屏幕的更多詳情,請(qǐng)參考以下代碼倉(cāng):
https://gitee.com/openharmony/distributed_screen
3.結(jié)束語(yǔ)
除了分布式相機(jī)和分布式屏幕外,硬件資源池化模型在后續(xù)版本還將提供分布式音頻和分布式輸入能力。分布式音頻將提供對(duì)麥克風(fēng)、喇叭、聽(tīng)筒等音頻設(shè)備的硬件資源池化能力,通過(guò)音頻服務(wù)提供給應(yīng)用開(kāi)發(fā)者,使得開(kāi)發(fā)者能夠自由選擇、切換、組合音頻設(shè)備,提升用戶的使用體驗(yàn)。分布式輸入將提供對(duì)鍵盤(pán)、鼠標(biāo)等輸入設(shè)備的硬件資源池化能力,通過(guò)輸入服務(wù)讓?xiě)?yīng)用開(kāi)發(fā)者能跨設(shè)備調(diào)用輸入能力,實(shí)現(xiàn)多設(shè)備協(xié)同。
硬件資源池化模型仍在建設(shè)中,期待廣大開(kāi)發(fā)者共同加入我們,共同見(jiàn)證萬(wàn)物互聯(lián)時(shí)代的無(wú)限可能!
審核編輯 :李倩
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7152瀏覽量
125630 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3854瀏覽量
18644
原文標(biāo)題:OpenHarmony 3.1 Release版本關(guān)鍵特性解析——OpenHarmony硬件資源池化模型
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于OpenHarmony打造新一代智能化解決方案
基于RAKsmart云服務(wù)器的AI大模型實(shí)時(shí)推理方案設(shè)計(jì)
TECS OpenStack資源池虛機(jī)寫(xiě)磁盤(pán)時(shí)延高告警的問(wèn)題處理

英麥科半導(dǎo)體薄膜功率電感進(jìn)入OPPO的ODM資源池
TECS OpenStack資源池時(shí)間同步失敗的故障分析

TECS OpenStack資源池虛機(jī)殘留導(dǎo)致網(wǎng)元異常的問(wèn)題處理

AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測(cè)模型
【「大模型啟示錄」閱讀體驗(yàn)】如何在客服領(lǐng)域應(yīng)用大模型
華秋電子 | 電子發(fā)燒友亮相OpenHarmony人才生態(tài)大會(huì)2024
OpenHarmony人才生態(tài)大會(huì)南向生態(tài)社區(qū)發(fā)展論壇在武漢圓滿舉辦
海外IP代理池:解鎖全球網(wǎng)絡(luò)資源的重要工具
祝賀致遠(yuǎn)電子“AWTK開(kāi)源GUI引擎”入選2024年關(guān)鍵軟件產(chǎn)品資源池

50萬(wàn)獎(jiǎng)金池!開(kāi)放原子大賽——第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽正式啟動(dòng)
打造異構(gòu)計(jì)算新標(biāo)桿!國(guó)數(shù)集聯(lián)發(fā)布首款CXL混合資源池參考設(shè)計(jì)

評(píng)論