0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony硬件资源池化模型

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-05-11 10:24 次阅读

OpenAtom OpenHarmony(以下简称“OpenHarmony”)作为面向全场景、全连接、全智能时代的分布式操作系统,通过将各类不同终端设备的能力进行整合,实现硬件互助、资源共享,为用户提供流畅的全场景体验。本期,我们通过介绍 OpenHarmony 的硬件资源池化模型,为大家揭晓 OpenHarmony 是如何实现多设备协同的。

1.硬件资源访问的演进

硬件资源访问是多设备进行协同的关键。OpenHarmony 发展至今,硬件资源访问经历了从“一对一”到“多对多”的演进过程。

1.1 一对一

在设计初期,为解决两台设备间的协同问题,我们通过 OpenHarmony 提供的分布式设备虚拟化能力将两台设备的硬件资源进行融合,实现了“一对一”的硬件资源访问。这便是硬件资源池化模型的雏形。

eb8dbd9e-c6f7-11ec-bce3-dac502259ad0.jpg

图1 “一对一”的硬件资源访问

1.2 多对多

随着全场景智慧生活的不断深入,“一对一”的设备硬件资源访问方式已不能满足某些复杂场景的业务需求。OpenHarmony 对分布式技术不断探索与创新,通过增强原来的分布式设备虚拟化能力,将多台设备的各种硬件资源,如屏幕、相机、扩音器、键盘、传感器及存储器等予以抽象,形成“超级虚拟终端”内的统一硬件资源池,并支持硬件资源的按需分配和重新组合,真正实现了硬件资源的全局调用。组成“超级虚拟终端”的多个设备,能访问硬件资源池内的多种硬件资源,这便是“多对多”的硬件资源访问。

ebb3a900-c6f7-11ec-bce3-dac502259ad0.jpg

图2 硬件资源池化(多对多)

基于“硬件资源池化”,开发者可以根据不同的业务场景,在硬件资源池内选择并匹配合适的能力模块,充分发挥不同设备的能力优势,从而构建全新的用户体验。

2.硬件资源池化模型

基于“硬件资源池化”的创新理念,OpenHarmony 融合硬件虚拟化、硬件资源管理及硬件数据管理等能力,构建了硬件资源池化模型,对外提供了统一的硬件能力开放接口,让开发者轻松实现高效开发。

如图3所示,硬件资源池化模型将各类设备的硬件资源进行抽象,为北向应用提供各种分布式服务,比如分布式相机、分布式屏幕、分布式音频和分布式输入等,同时提供统一的设备管理和分布式硬件框架。

ebdf5bb8-c6f7-11ec-bce3-dac502259ad0.jpg

图3 硬件资源池化模型

下面为大家一一介绍硬件资源池化模型的各个组成部分。

2.1 设备管理

设备管理(即 DeviceManager)服务,提供设备发现、认证管理、可信设备管理和设备状态管理等能力。

ec2bb8be-c6f7-11ec-bce3-dac502259ad0.jpg

图4 设备管理(DeviceManager)

OpenHarmony 为开发者提供了一套设备管理接口,用于分布式设备间监听、发现和认证,如图 5 所示。

ec4221e4-c6f7-11ec-bce3-dac502259ad0.jpg

图5 设备管理接口

设备管理接口的使用示例代码如下:


// 创建DeviceManager实例: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)))});// 查询可信设备列表var array = dmClass.getTrustedDeviceListSync();// 获取本地设备信息var localDeviceInfo = dmClass.getLocalDeviceInfoSync();// 开始设备发现(发现周边不可信设备)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);// 停止设备发现(需要和startDeviceDiscovery接口配对使用)dmClass.stopDeviceDiscovery(subscribeId);// 设备认证var deviceInfo ={    "deviceId": "XXXXXXXX",    "deviceName": "",    deviceType: 0};let extraInfo = {    "appIcon": new Uint8Array(), // app图标,可选参数,可不填    "appThumbnail": new Uint8Array(), // app缩略图,可选参数,可不填    "appName": "xxxxxxxx", // 对端设备应用名称    "appDescription": "xxxxxxxx", // app描述    "business": '0',    "displayOwner": 0,}// 设备取消认证dmClass.unAuthenticateDevice(this.deviceInfo);

DeviceManager 的更多详情,请参考以下代码仓:

https://gitee.com/openharmony/device_manager

2.2 分布式硬件框架

分布式硬件框架为硬件资源池化模型提供了接入管理、能力查询、状态管理、权限管理以及版本管理等硬件资源管理能力,如图6所示:

ec7290f4-c6f7-11ec-bce3-dac502259ad0.jpg

图6 分布式硬件框架

分布式硬件框架的各模块说明如下:

ec969314-c6f7-11ec-bce3-dac502259ad0.jpg

图9 分布式相机的模块说明

分布式相机的更多详情,请参考分布式相机代码仓:

https://gitee.com/openharmony/distributed_camera

2.4 分布式屏幕

分布式屏幕提供了屏幕设备的硬件资源软件抽象能力,为 OpenHarmony 系统框架提供系统投屏、屏幕镜像、屏幕分割等能力的实现。分布式屏幕的框架图如下所示:

eccd909e-c6f7-11ec-bce3-dac502259ad0.jpg

图10 分布式屏幕

分布式屏幕的各模块说明如下:

eced8278-c6f7-11ec-bce3-dac502259ad0.jpg

图11 分布式屏幕的模块说明

分布式屏幕的更多详情,请参考以下代码仓:

https://gitee.com/openharmony/distributed_screen

3.结束语

除了分布式相机和分布式屏幕外,硬件资源池化模型在后续版本还将提供分布式音频和分布式输入能力。分布式音频将提供对麦克风、喇叭、听筒等音频设备的硬件资源池化能力,通过音频服务提供给应用开发者,使得开发者能够自由选择、切换、组合音频设备,提升用户的使用体验。分布式输入将提供对键盘、鼠标等输入设备的硬件资源池化能力,通过输入服务让应用开发者能跨设备调用输入能力,实现多设备协同。

硬件资源池化模型仍在建设中,期待广大开发者共同加入我们,共同见证万物互联时代的无限可能!

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6808

    浏览量

    123287
  • OpenHarmony
    +关注

    关注

    25

    文章

    3716

    浏览量

    16260

原文标题:OpenHarmony 3.1 Release版本关键特性解析——OpenHarmony硬件资源池化模型

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    海外IP代理:解锁全球网络资源的重要工具

    海外IP代理作为一种网络工具,确实在解锁全球网络资源方面发挥着重要作用。通过使用海外IP代理,用户可以绕过地理位置限制,访问特定国家或地区的网络资源,这对于跨国企业、研究人员、数据
    的头像 发表于 11-14 07:36 189次阅读

    祝贺致远电子“AWTK开源GUI引擎”入选2024年关键软件产品资源

    ,广州市启动了2024年关键软件产品资源入库项目。10月22日,广州市工业和信息局公布了入库名单,致远电子的“AWTK跨平台开源GUI框架”凭借卓越的技术实力、
    的头像 发表于 10-25 08:07 372次阅读
    祝贺致远电子“AWTK开源GUI引擎”入选2024年关键软件产品<b class='flag-5'>资源</b><b class='flag-5'>池</b>

    50万奖金!开放原子大赛——第二届OpenHarmony创新应用挑战赛正式启动

    平台。 扫码添加小助手立即报名 在这场赛事中,你可以获得: ● 50万奖励:8大奖项为你而来,还可获得OpenHarmony开发设备 ● 打造超强影响力:多家媒体传播报道,官方媒介宣传 ● 十七
    发表于 10-24 15:40

    打造异构计算新标杆!国数集联发布首款CXL混合资源参考设计

    今日,领先的高速互联芯片及方案设计厂商国数集联发布业界首创的CXL混合资源(Compute Express Link Hybrid Resource Pool ,以下简称“CHRP”)参考设计。该
    的头像 发表于 08-06 14:19 312次阅读
    打造异构计算新标杆!国数集联发布首款CXL混合<b class='flag-5'>资源</b><b class='flag-5'>池</b>参考设计

    优刻得与联想AI实验室携手共建高效AI资源

    近日,云计算服务提供商优刻得(UCloud)与联想AI实验室宣布达成战略合作,双方将共同打造一个高效且灵活的本地AI资源,旨在加速AI技术的研发与应用创新。此次合作标志着优刻得在推动AI与云计算深度融合方面迈出了重要一步。
    的头像 发表于 07-14 14:19 1088次阅读

    基于MATLAB 的质量守恒空模型(JFO 模型

    可有大佬会基于MATLAB 的质量守恒空模型(JFO 模型
    发表于 07-05 23:32

    卷积神经网络中层的作用

    。其中,层(Pooling Layer)作为CNN的重要组成部分,在降低模型复杂度、提高计算效率以及增强模型的不变性和鲁棒性方面发挥着关键作用。本文将从多个方面深入探讨
    的头像 发表于 07-03 15:58 1652次阅读

    卷积神经网络cnn中层的主要作用

    (Pooling Layer)是一个关键的组成部分,它对卷积层的输出进行下采样,降低特征图(Feature Map)的空间维度,从而减少计算量和参数数量,提高模型的泛能力。 层是
    的头像 发表于 07-02 14:50 1190次阅读

    聆思CSK6视觉语音大模型AI开发板入门资源合集(硬件资料、大模型语音/多模态交互/英语评测SDK合集)

    =nTn9kMMCU 附件中有更详细的软硬件详细资料和资源下载信息,可以按需下载。 后续会持续发布进阶资源,欢迎保持关注! 遇到问题可以发在评论区一起讨论! 【大模型开发板使用示例
    发表于 06-18 17:33

    一种利用光电容积描记(PPG)信号和深度学习模型对高血压分类的新方法

    。 AvgPool_VGG-16 平均是卷积神经网络中广泛使用的操作,它计算特征图块的平均值并用于减小特征图的大小。该方法旨在减少模型中的参数,以提高其稳健性和效率。与最大
    发表于 05-11 20:01

    超融合基础架构的软硬件设计思路

    简单来说,超融合基础架构就是在业务节点上运行服务器虚拟软件和存储虚拟软件,将所有的计算节点通过网络聚合成一个统一的虚拟计算和虚拟存储资源,以
    的头像 发表于 04-25 10:28 1790次阅读
    超融合基础架构的软<b class='flag-5'>硬件</b>设计思路

    OpenHarmony语言基础类库【@ohos.taskpool(启动任务)】

    任务(taskpool)作用是为应用程序提供一个多线程的运行环境,降低整体资源的消耗、提高系统的整体性能,且您无需关心线程实例的生命周期。您可以使用任务API创建后台任务(Task),并对所创
    的头像 发表于 04-24 17:45 346次阅读
    <b class='flag-5'>OpenHarmony</b>语言基础类库【@ohos.taskpool(启动任务<b class='flag-5'>池</b>)】

    鸿蒙OpenHarmony【快速入门概述】

    OpenHarmony是一款面向全场景的开源分布式操作系统,采用组件设计,支持在128KiB到xGiB RAM资源的设备上运行系统组件,设备开发者可基于目标硬件能力自由选择系统组件进
    的头像 发表于 04-19 15:14 444次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【快速入门概述】

    开放原子开源大赛—基于OpenHarmony的团结引擎应用开发赛正式启动!

    所有开发者开放,只要完成注册并认证,即可报名参与。你将有机会深入实践OpenHarmony开源项目与Unity中国团结引擎,更有机会赢取丰厚的奖励与荣誉激励。赛事共设立了62个奖项,总奖金高达45万元
    发表于 03-13 10:45

    什么是动态线程?动态线程的简单实现思路

    因此,动态可监控线程一种针对以上痛点开发的线程管理工具。主要可实现功能有:提供对 Spring 应用内线程实例的全局管控、应用运行时动态变更线程参数以及线程
    的头像 发表于 02-28 10:42 639次阅读