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 ...
随机推荐
- 设计模式-观察者模式Observe的实现
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...
- 字符串反转&说反话
题目描述 写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串.(字符串长度不超过1000) 输入描述: 输入N个字符 输出描述: 输出该字符串反转后的字符串 示例1 输入 abcd 输出 d ...
- vuecli中配置webpack加快打包速度
webpack4中webpack 的DllPlugin插件可以将常见的库文件作为dll文件来,每次打包的时候就不用再次打包库文件了. 但是游鱼西在vuecli中已经去除这个选项,意识到带来的打包速度提 ...
- 《头号玩家》AI电影调研报告(一)
观<头号玩家>AI电影调研报告 一. 前言 有一部电影,上映开始就能让世界各不同年龄段.身处不同文化的人在一瞬间达到心意相通:其中的一些镜头,让影迷.游戏迷.ACG爱好者等拥有截然不同兴趣 ...
- Visual Studio 2022 git error Unable to negotiate with xx.xxx.xxxx port 22: no matching host key type found. Their offer: ssh-rsa
前言 前两天因为升级了Git导致git提交拉取的时候都提示下面这个异常,然后经过一番折腾以后终于把这个问题解决了.但是今天我升级了下Visual Studio 2022将其升级到了17.1.3版本然后 ...
- Mybatis个人笔记
Mybatis 简介 官网地址:mybatis – MyBatis 3 | 简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 ...
- springboot+springsecurity+mybatis plus注解实现对方法的权限处理
文章目录 接上文 [springboot+springsecurity+mybatis plus之用户授权](https://blog.csdn.net/Kevinnsm/article/detail ...
- 使用 Jenkins 进行持续集成与发布流程图
应用构建和发布流程说明: 用户向 Gitlab 提交代码,代码中必须包含 Dockerfile 将代码提交到远程仓库 用户在发布应用时需要填写 git 仓库地址和分支.服务类型.服务名称.资源数量.实 ...
- Redis4.0.14 迁槽失败
线上一个redis集群中主节点使用的内存达到了9.78g,按照redis单个实例最大内存不要超出10g的规范,扩容操作就放在了今天晚上进行.因为之前redis迁槽都是采用 redis-trib.rb ...
- html 移动端与PC端之间的转换
href 里面写路径 if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackB ...