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

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

3天内不再提示

HarmonyOS NEXT分布式系统硬件资源池应用场景技术原理及接入实践

话说科技 来源:话说科技 作者:话说科技 2023-12-13 17:25 次阅读

随着智能设备的发展和普及,越来越多的智能设备已经深入人们的生活,比如手机,PC,平板,各类穿戴设备等。目前单个设备的外设资源已经非常丰富,硬件能力也很强大。但像是手机、PC、平板等设备都有的相机、音频、屏幕、键盘鼠标等外设资源都属于各个设备自身,如果涉及跨设备协同操作就会比较繁琐。

比如当我们日常在PC端进行文档编辑时,若需要从平板复制一段文字,或者使用手机拍摄照片然后分别将素材插入文档时,就需要我们分别在不同的设备上操作,然后将物料再行汇总发送至PC端口进行编辑,过程十分麻烦。如果应用开发者从应用层面实现设备间硬件能力共享,不但开发者工作量和难度非常大,各个应用之间也需要重复开发,能力难以复用和继承。

为此,HarmonyOS NEXT提出了硬件资源池的理念,把各个设备的硬件外设抽象为外设信息单元,外设信息在各个可信设备之间自动同步,打破各个设备硬件的孤立状态,让设备间硬件外设全局共享。这样就实现了外设信息的全局可见,再结合分布式硬件虚拟化技术,实现任意设备之间的硬件外设能力跨设备调用;

分布式硬件资源池作为系统能力下沉系统底层,北向开发者并不会感知资源池的存在;跨设备硬件和本地硬件使用同一套API,开发者调用跨设备硬件体验和本地硬件一致,如此更加开发者调用跨设备硬件,开发者也无需再关注硬件底层细节,可将更多时间专注于业务创新。

HarmonyOS NEXT采用硬件资源池的理念,结合多个设备优势硬件为用户提供更优体验的同时,还能支持消费者和开发者多种创新体验。

NO.1 消费者场景

从消费者层面来看,华为分布式硬件可支持智慧办公、智慧出行等多种创新场景。

例如在智慧办公场景中,使用一套PC键盘鼠标即可和周边平板等设备跨设备操作;在多屏协同时,手机屏幕可直接显示到平板,手机视频通话也可以使用平板的麦克风和摄像头,用户在平板上即可同时操作手机平板两台设备,无需在设备间来回切换。

在智慧出行场景中,当用户进入座舱,手机上的音乐和通话就可自动接续到车机,使用车机的音频外设播音和拾音功能,以及使用车机的摄像头进行视频通话;当手机导航接续到车机后,车机的GPS信号也可以共享给手机,结合手机GPS信号提供更高精度的定位数据。

结合以上两种场景可知,在智慧办公和智慧出行场景中,用户都可以通过分布式硬件资源池,为用户提供更好的服务体验。

开发者场景

对于开发者来说,因为分布式硬件资源池将跨设备硬件调用的复杂度都封装在了系统底层,跨设备硬件可复用本地硬件的API,因此开发者学习和适配难度可以做到最低。

以分布式相机为例,相机接口可以同时查询到本地相机和跨设备相机外设,接着本地相机和跨设备相机就可通过ConnectionType.CAMERA_CONNECTION_REMOTE属性相互区分,开发者通过该属性过滤出分布式相机后,其他操作和本地相机完全一致,开发者无需为使用跨设备硬件学习一套独立的API,有效简化开发者开发难度。

很多开发者可能会问,硬件资源池是怎样的开发原理,我们可用相机和音频为例进行讲解。

假设设备A和设备B都有各自的相机和音频外设,驱动层有对应的本地相机和本地音频驱动。

分布式硬件从各自设备本地采集相机和音频驱动信息,存入分布式数据库。如果AB两个设备建立了可信关系并且通过软总线组网上线成功,分布式数据库会在AB两个设备之间自动同步各自的本地外设数据信息,这样,设备A分布式硬件可以拿到设备B的相机和音频外设规格数据,同样,设备B也可以拿到设备A的相机和音频外设规格数据。

以设备A的流程为例,分布式硬件收到对端设备B的硬件规格数据后,在驱动层注册对应的虚拟相机和虚拟音频驱动,虚拟驱动相当于对端设备物理硬件在本地的代理;虚拟驱动实现和本地硬件驱动相同的HDI接口。他们的区别在于,本地硬件驱动操作本地物理硬件,虚拟硬件驱动控制和数据传输通过软总线作用于对端分布式硬件。由于和本地硬件实现同样的HDI接口,设备B相机和音频对应的虚拟硬件可以被相机服务和音频服务发现并管理,包括外设的查询,相机的预览拍照录像,音频的播放,声音的录制等功能。

对称的,在设备B上会执行同样的过程,为设备A相机和音频外设注册对应虚拟驱动,从而实现设备B上对设备A硬件外设的查询和使用。

如此就实现了外设信息在设备间互通共享,信息感知自动注册虚拟硬件,注册后即可用,成为一个无中心对称的分布式硬件外设管理系统。同时,分布式硬件框架定义了外设热插拔,虚拟硬件保活等机制,保证业务可靠性。在运行时,各个硬件外设的业务运行于独立进程中,在进程层面保证不同硬件的虚拟化业务互相隔离,提高了业务可靠性。

基于上述分析,开发者可以看到分布式硬件与南向硬件的交互涉及"硬件信息采集"和"驱动注册"两类业务,与此对应,分布式硬件针对南向硬件接入定义了两类接口。一类是硬件规格采集接口,一类是驱动注册与准备接口。

在硬件规格采集接口中,直接定义了规格信息的采集以及外设热插拔事件监听等功能;由于我们是跨设备硬件调用,涉及双端设备的硬件,因此我们定义使用周边其他设备硬件外设的一端为Source端,共享本地硬件给其他设备调用的一端为Sink端,驱动注册与准备接口包括Source和Sink两端。

Source端包括初始化,释放以及虚拟驱动注册/去注册等功能;Sink端主要是初始化和释放接口,用于响应Source端的控制指令,比如播放声音或者采集视频画面。在设备组网上线后,分布式硬件框架调用各个硬件类型的南向接口实现,分别初始化各类硬件的Source和Sink端业务进程,为后续的硬件跨设备调用做好准备。

由于分布式硬件良好的南向接入解耦设计,如果有新硬件外设接入,只需要如下三步即可,以分布式相机配置为例,开发者可以基于下方实例进行参考:

Step 1:定义硬件外设类型枚举值CAMERA

Step 2:实现分布式硬件框架定义的南向接入接口,分别实现为三个so

实现分布式硬件框架定义的硬件规格采集接口IHardwareHandler,并编译获得接口实现libdistributed_camera_handler.z.so

实现Source侧接入接口IDistributedHardwareSource,并编译获得接口实现libdistributed_camera_source_sdk.z.so

实现Sink侧接入接口IDistributedHardwareSink,并编译获得接口实现libdistributed_camera_sink_sdk.z.so

Step 3:在分布式硬件子部件配置文件中,添加新硬件外设相关配置,包括外设类型,南向接口实现的so名称,版本号,以及Source和Sink端服务分配的服务Id

注意:该配置由产品定义确定,不同的产品可能使用不同的分布式能力。以RK3568开发板为例,配置如下:

三个接口的so实现后,开发者可将编译打包到系统库路径下,同时配置到分布式硬件部件配置文件中,设备组网上线后,就能看到分布式相机的dcamera进程已经成功启动,表明相机外设已经纳入资源池管理,成为分布式相机。

从下述截图也可以看到分布式硬件其他相关进程,dhardware就是分布式硬件资源池管理框架进程,顾名思义,dcamera是分布式相机进程,dinput是分布式键鼠输入进程,dscreen是分布式屏幕进程。

当前在OpenHarmony开源社区,已经开源了硬件资源池管理框架,分布式相机,分布式音频,分布式屏幕,分布式输入的代码仓,开放了相机,音频,屏幕和键鼠输入外设的跨设备控制源码,关于硬件资源池的详细实现,可以参考我们的开源代码仓,更多参考代码,可关注HarmonyOS开发者官方微信。

审核编辑 黄宇

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

    关注

    0

    文章

    146

    浏览量

    19194
  • HarmonyOS
    +关注

    关注

    79

    文章

    1966

    浏览量

    29970
收藏 人收藏

    评论

    相关推荐

    HarmonyOS应用开发-分布式任务调度

    1. 介绍本篇CodeLab将实现的内容HarmonyOS是面向全场景多终端的分布式操作系统,使得应用程序的开发打破了智能终端互通的性能和数据壁垒,业务逻辑原子化开发,适配多端。通过一
    发表于 09-18 09:21

    HarmonyOS应用开发-分布式设计

    设计理念HarmonyOS 是面向未来全场景智慧生活方式的分布式操作系统。对消费者而言,HarmonyOS 将生活
    发表于 09-22 17:11

    HarmonyOS鸿蒙操作系统之什么是“基于微内核的全场景分布式操作系统”?

    HarmonyOS鸿蒙操作系统之什么是“基于微内核的全场景分布式操作系统”?即使作为理工科的人咋一眼看上去似乎也不太懂这是什么,就像区块链这
    发表于 09-23 17:06

    HarmonyOS分布式数据库,为啥这么牛?

    案例和接入流程 最后,基于 HarmonyOS 分布式数据管理等分布式技术能力,金山办公移动端技术
    发表于 11-19 15:38

    HDC2021技术分论坛:分布式软时钟有多重要?

    的吞吐能力。多级动态缓冲技术,合理调度提升端到端运力。二、分布式系统的新挑战分布式软总线已经在发现与连接、传输方面做了很多,有了很大提升。
    发表于 11-09 17:24

    HDC2021技术分论坛:跨端分布式计算技术初探

    功能上无法对智能化沉浸体验的应用提供全方位的支持,导致很多应用场景难以得到实现。为了解决移动端算力瓶颈,HarmonyOS跨端分布式计算应运而生,给用户带来易协同、低延迟和高稳定的
    发表于 11-15 14:54

    HarmonyOS分布式应用框架深入解读

    给原始的应用,既有系统多模统一的交互模块,对应用来说是其实感知不到的,不知道事件来自本端还是另一端。HarmonyOS基本架构:分布式硬件现在的设备包含的
    发表于 11-22 15:15

    HDC2021技术分论坛:跨端分布式计算技术初探

    技术。在传统分布式用场景下,设备间更多的采用蓝牙或者WIFI direct等方式D2D的通信模型,过于厚重,协议的层次并非都必要,协议的接续和交互流程也不尽精简。HarmonyOS
    发表于 11-23 17:06

    如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现、设备连接、跨设备调用等丰富的分布式API。随着越来越多的开发者投入
    发表于 12-13 18:07

    一文带你看懂分布式软总线在家庭场景的应用

    ,并能够基于业务和网络状态进行质量优化和合理调度,是家庭环境下最大的挑战。二、分布式软总线介绍全场景下,HarmonyOS通过分布式软总线技术
    发表于 01-06 11:32

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

    李刚OpenHarmony 分布式硬件管理 SIG 成员华为技术有限公司分布式硬件专家OpenHarmony 作为面向全
    发表于 05-23 16:42

    OpenHarmony 分布式硬件关键技术

    。超级终端可以根据用户期望,通过分布式技术将多个设备组合起来,使设备间的硬件资源共享,实现硬件的“自由”扩展,并可以在不同的业务
    发表于 08-24 17:25

    分布式系统硬件资源原理和接入实践

    把各个设备的硬件外设抽象为外设信息单元,外设信息在各个可信设备之间自动同步,如此,实现了外设信息的全局可见;结合分布式硬件虚拟化技术,实现任意设备之间的
    发表于 12-06 10:02

    redis分布式锁的应用场景有哪些

    Redis分布式锁是一种基于Redis实现的分布式锁机制,可以在分布式环境下确保资源的独占性,避免并发访问时的数据争用问题。下面将详细介绍Redis
    的头像 发表于 12-04 11:21 1366次阅读

    技术视界】分布式系统硬件资源原理和接入实践

    的是分布式硬件技术专家的分享,希望为您的开发之路带来启发~ 作者:ZhangChuang,华为分布式硬件
    的头像 发表于 12-05 21:35 722次阅读
    【<b class='flag-5'>技术</b>视界】<b class='flag-5'>分布式</b><b class='flag-5'>系统</b><b class='flag-5'>硬件</b><b class='flag-5'>资源</b><b class='flag-5'>池</b>原理和<b class='flag-5'>接入</b><b class='flag-5'>实践</b>