最近几天,openatom openharmony首次阐述了openharmony 3.1版本的技术特点数据显示,截至目前,openharmony已经吸引了40多家主仓代码贡献者,聚集了160万 的社区用户,建立了44个特殊兴趣小组,全球下载量达到6300万次,代码提交量达到55000 次

华为专家讲解openharmony开源鸿蒙硬件资源池化模型,利用分布式实

openharmony分布式硬件管理sig成员,华为技术有限公司分布式硬件专家李刚分析了openharmony 3.1发布的关键特征——开放式harmony硬件资源池模型。

openatom openharmony作为面向全场景,全连接,全智能时代的分布式操作系统,整合了各类终端设备的能力,实现硬件互助和资源共享,为用户提供流畅的全场景体验。

在此,专家通过介绍openharmony的硬件资源池模型,揭示openharmony是如何实现多设备协作的。

1.硬件资源访问的演变

硬件资源访问是多设备协作的关键openharmony发展至今,硬件资源访问经历了从一对一到多对多的演变过程

1.1一对一

在设计初期,为了解决两个设备之间的协调问题,我们通过openharmony提供的分布式设备虚拟化能力来整合两个设备的硬件资源,实现一对一的硬件资源访问这是硬件资源池模型的原型

图1一对一访问硬件资源

1.2多对多

伴随着全场景智能生活的深入,设备硬件资源一对一的访问方式已经不能满足一些复杂场景的业务需求openharmony不断探索和创新分布式技术它通过增强原有分布式设备的虚拟化能力,抽象出多个设备的各种硬件资源,如屏幕,摄像头,扬声器,键盘,传感器,存储器等,在超级虚拟终端中形成统一的硬件资源池,支持硬件资源的按需分配和重组,真正实现硬件资源的全球调用组成超级虚拟终端的多个设备可以访问硬件资源池中的多种硬件资源,称为多对多硬件资源访问

图2硬件资源池

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

2.硬件资源池模型

openharmony基于硬件资源池的创新理念,整合硬件虚拟化,硬件资源管理和硬件数据管理的能力,构建硬件资源池模型,提供硬件能力的统一开放接口,让开发者轻松实现高效开发。

如图3所示,硬件资源池模型抽象了各种设备的硬件资源,为北向应用提供各种分布式服务,如分布式摄像机,分布式屏幕,分布式音频和分布式输入,并提供统一的设备管理和分布式硬件框架。

图3硬件资源池模型

这里,我们将逐一介绍硬件资源池模型的组件。

2.1设备管理

设备管理服务,提供设备发现,认证管理,可信设备管理和设备状态管理功能。

图4设备管理

openharmony为开发人员提供了一组设备管理接口,用于分布式设备之间的监控,发现和认证,如图5所示。

图5设备管理界面

设备管理界面的使用示例代码如下:

//创建一个devicemanager实例:device manager . createdevicemanager = gt,this . log '—success:" json . stringify)if(err)return,dmclass = dmdmclass.on('servicedie ',data = gtthis . log(" service dieon:" json . stringify(data)))),//查询可信设备列表var array = dm class . gettrusteddevicelistsync(),//获取本地设备信息varlocaldeviceinfo = dm class . getlocaldeviceinfsync(),//启动设备发现(发现附近不受信任的设备)varsubscribeid = 0,dmclass.on('devicefound ',(data)=gt。if(data null)this . log(" devicefounderrordata = null ")返回,this . log list . push(" device found:" json . stringify(data)),),dmclass.on('discoverfail ',(data)= gt,this . log(" discoverfailon:" json . stringify(data)),),subscribeid = math . floor(math . random()* 10000 1000)varinfo = " subscribeid ":subscribeid," mode":0xaa," medium":0," freq":2," issameaccount":false," iswakeremote":true," capability ":0,dm class . startdevicediscovery(info),//停止设备发现(需要和startdevicediscovery接口配对)dmclass.stopdevicediscovery(订阅id),//设备认证vardeviceinfo = " device id ":" xxxxxxxx "," devicename ":",device type:0,letinfo = "icon": newuint8array(),//icon,可选参数,可选" thumbnail":newuint8array(),// thumbnail,可选参数,可选" name ":"xxxxxx ",//对等设备应用名称" description ":"xxxxxx ",//description "business":' 0 '," displayowner": 0,//设备去认证dm class . un authenticated device(this . device info),

有关设备的更多详细信息,请参考以下代码仓库:

2.2分布式硬件框架

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

图6分布式硬件框架

分布式硬件框架的模块描述如下:

图9分布式摄像机的模块描述

关于分布式摄像机的更多细节,请参考分布式摄像机的代码仓库:

2.4分布式屏幕

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

图10分布式屏幕

分布式屏幕的模块描述如下:

图11分布式屏幕的模块描述

有关分布式屏幕的更多详细信息,请参考以下代码仓库: