OpenHarmony3.1 Release版本特性解析——硬件资源池化架构介绍

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
三、后续规划
除了分布式相机和分布式屏幕外,硬件资源池化框架在后续版本还将提供分布式音频和分布式输入能力。分布式音频将提供对麦克风、喇叭、听筒等音频设备的硬件资源池化能力,通过音频服务提供给应用开发者,使得开发者能够自由选择、切换、组合音频设备,提升用户的使用体验。分布式输入将提供对键盘、鼠标等输入设备的硬件资源池化能力,通过输入服务让应用开发者能跨设备调用输入能力,实现多设备协同。
硬件资源池化框架仍在建设中,期待广大开发者共同加入我们,共同见证万物互联时代的无限可能!

搜索
复制
OpenHarmony3.1 Release版本特性解析——硬件资源池化架构介绍的更多相关文章
- OpenHarmony3.1 Release版本关键特性解析——Enhanced SWAP内存管理
樊成阳 华为技术有限公司内核专家 陈杰 华为技术有限公司内核专家 OpenAtom OpenHarmony(以下简称"OpenHarmony")是面向全场景泛终端设备的操作系统,终 ...
- HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?
作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...
- OpenHarmony 3.1 Release版本发布
OpenHarmony 3.1 Release 版本概述 当前版本在OpenHarmony 3.1 Beta的基础上,更新支持以下能力: 标准系统基础能力增强 本地基础音视频播放能力.视频硬编解码.相 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载
百度云及其他网盘下载地址:点我 编辑推荐 <深入理解C++11:C++11新特性解析与应用>编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑.系统.深 ...
- Java14版本特性【一文了解】
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- 玩转Windows服务系列——Debug、Release版本的注册和卸载,及其原理
Windows服务Debug版本 注册 Services.exe -regserver 卸载 Services.exe -unregserver Windows服务Release版本 注册 Servi ...
- C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)
因为偶然的机会,在图书馆看到<深入理解C++ 11:C++11新特性解析和应用>这本书,大致扫下,受益匪浅,就果断借出来,对于其中的部分内容进行详读并亲自编程测试相关代码,也就有了整理写出 ...
- MFC中release版本和debug版本区别
最近MFC写了个程序,生成release版,原来正常,后来删掉了些控件再编译运行,结果竟然报内存读写错误,debug却是正常的.后来将“Project Settings” 中 “C++/C ...
随机推荐
- 15_伯德图,为什么是20logM?分贝又是什么?_Bode Plot_Part1
- 2022DASCTF X SU 三月春季挑战赛 Calc
查看代码 #coding=utf-8 from flask import Flask,render_template,url_for,render_template_string,redirect,r ...
- eclipse/myeclipse注释模板的修改
本文转自:http://kaminlee.iteye.com/blog/1101938 Window --> Java --> Code Style --> Code Templat ...
- Java自定义异常类的简单实现
学习目标: 掌握自定义异常类 例题: 需求:自定义异常类,简单判断是否注册成功 代码如下: RegisterException类: /** * @author YanYang * @projectNa ...
- uni-app 解析后台接口返回的HTML
正常使用rich-text是可以解决问题的,但是在支付宝小程序中不显示,在文档中看到" 支付宝小程序 nodes 属性只支持使用 Array 类型.如果需要支持 HTML String,则需 ...
- numpy教程01---ndarray的创建
欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...
- xtrabackup备份和恢复数据脚本
该脚本用于备份和恢复MySQL数据库. 总结xtrabackup备份的两个坑: 1.在恢复数据的过程中,如果中途出错,则数据将会被破坏,后续很难再恢复. 2.在恢复过程中,如果版本过低,在准备全量数据 ...
- 面试 | Java 算法的 ACM 模式
(Java 算法的 ACM 模式) 前言 经常在 LeetCode 上用核心代码模式刷题的小伙伴突然用 ACM 模式可能会适应不过来,把时间花在输入输出上很浪费时间,因此本篇笔记对 Java 算法的 ...
- sqlplus文件查看自带oracle命令的执行过程
问题描述:看到一篇文章 在$ORACLE_HOME/bin/sqlplus中可以查看到数据库命令的查询语句.可以直接编辑sqlplus文件,查到到我们平时标准系统命令的原脚本,但是自己进行编辑查看却是 ...
- 不借助 Javascript,利用 SVG 快速构建马赛克效果
之前在公众号转发了好友 Vajoy 的一篇文章 -- 巧用 CSS 把图片马赛克风格化. 核心是利用了 CSS 中一个很有意思的属性 -- image-rendering,它可以用于设置图像缩放算法. ...