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

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

3天内不再提示

OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-03-17 10:46 次阅读

OpenAtom OpenHarmony(以下简称“OpenHarmony”)作为分布式操作系统,让多个设备之间能够相互感知,进而整合成一个超级终端。从而实现设备与设备之间取长补短、相互帮助,为用户提供自然流畅的分布式体验。那么超级终端中,设备的能力和状态如何管理?设备之间如何进行信息协同?要回答这些问题,就不得不提我们本期的主角——DeviceProfile。

什么是DeviceProfile?

超级终端中的设备之间如何能实现取长补短、相互帮助?首先,就必须知道每个设备的能力,以及设备是否在线。对此,OpenHarmony 提出了“设备画像”,也就是通过 DeviceProfile 来记录设备的能力和状态等信息。

DeviceProfile 是设备硬件能力和系统软件特征的管理器,记录的典型设备信息有设备类型、设备名称、存储容量、是否折叠屏、有无屏幕、分辨率、设备安全等级、设备 OS 类型、OS 版本号等。

(备注:DeviceProfile 支持分布式部署在多个设备上,所以 DeviceProfile 也称为分布式 DeviceProfile。)

DeviceProfile的组成结构

接下来,我们来看看 DeviceProfile 的组成结构。

ac122d3a-a541-11ec-952b-dac502259ad0.jpg

图1 DeviceProfile的组成结构

如图 1 所示, DeviceProfile 主要包含以下模块:

ㆍ数据管理:提供设备信息的插入、删除、查询、同步等数据管理功能;

ㆍ订阅管理:订阅和取消订阅远端设备的同步完成事件和数据变更事件;

ㆍ安全管理:管控本地设备 DeviceProfile 的访问权限,保障数据在可信范围内获取。

DeviceProfile的典型业务流程

分布式 DeviceProfile 基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性,构建统一的设备信息管理机制。支持对设备信息的插入、删除、查询、跨设备同步、同步完成及数据变更事件监听等操作。

图 2 展示了两个设备的分布式 DeviceProfile 及其内部业务流程。

ac268e74-a541-11ec-952b-dac502259ad0.jpg

图2 分布式DeviceProfile

在介绍业务流程之前,先让我们来认识一下图 2 中涉及到的几个模块。

ㆍ DP Client 和 CS(Content Sensor)都是 DeviceProfile 一部分。DP Client 是 DeviceProfile 的客户端,其他服务可以通过 DP Client 来调用 DeviceProfile 的接口进行数据同步、数据变更等。CS 负责采集本设备的设备信息;

ㆍ HiChain:设备互信认证服务,管理设备的可信群组;

ㆍ分布式数据管理服务:DeviceProfile 通过分布式数据管理服务插入、更新、查询、删除及同步设备信息。

接下来,我们就来详细介绍分布式 DeviceProfile 的典型业务流程。

1.插入/删除本地设备信息

CS 模块定期探测本地设备的能力信息。当设备能力发生变化时,CS 发送给本地 DeviceProfile,本地 DeviceProfile 再通过分布式数据管理服务插入或更新设备信息。

当设备的某项能力很久未使用,本地 DeviceProfile 会通过分布式数据管理服务删除设备信息。

设备信息插入的内部流程图如图 3 所示。本地 DeviceProfile 通过 PutDeviceProfile 接口,请求写入一条设备信息记录。如果数据库已经初始化完成,DeviceProfileStorageManager 会直接调用 OnLineSyncTable 的 PutDeviceProfile 写入数据库。如果数据库经初始化未完成,则先将数据写入临时缓存,等初始化完成后再写入数据库,并清理缓存。

ac3f0954-a541-11ec-952b-dac502259ad0.jpg

图3 设备信息插入流程图

2.跨设备同步设备信息

跨设备同步设备信息分为两种场景:

(1)设备上线时自动触发同步

如图 2,当 Device B 上线时,Device A 的 DeviceProfile 会从分布式软总线收到上线通知。DeviceProfile 的安全管理模块通过与 HiChain 交互,获知 Device B 在可信群组内。此时,自动触发同步,Device A 将自己的设备信息推送给 Device B 实现同步。同样的,Device A 上线时,Device B 也会收到上线通知,触发 Device B 主动推送自己的设备信息给 Device A 实现同步。

(2)通过 DP Client 调用接口触发同步

系统服务也可以通过 DP Client 调用 SyncDeviceProfile 接口,触发两个设备的分布式数据库的数据同步。

跨设备同步设备信息的内部流程如图 4 所示。设备 A 的 DeviceProfile 通过 SyncDeviceProfile 接口发起同步请求,再通过 CheckTrustGroup 接口获取本设备(即设备 A)和需要同步设备(即设备 B)的可信群组信息。如果两个设备的 GroupType 类型为 1(同账号组网)或者 256(点对点无账号组网),并且 Visibility(可见性)为 public,则说明两个设备之间可信。设备 A 将自己的设备信息推送给设备 B。

ac5b968c-a541-11ec-952b-dac502259ad0.jpg

图4 跨设备同步设备信息

3.查询设备信息

跨设备同步设备信息之后,本地设备上除了自己设备的信息,还有远端设备的信息。因而,在本地设备上就可以查询本地和远端设备信息,DeviceProfile 通过 deviceid 来判断是否为远端设备。DeviceProfile 提供的查询接口为 GetDeviceProfile 接口,具体查询流程如图 5 所示。

ac6ded82-a541-11ec-952b-dac502259ad0.jpg

图5 查询远端设备信息

4.订阅同步完成/数据变更事件

DeviceProfile 提供两类事件的订阅和取消订阅功能:

ㆍ同步完成事件

跨设备同步设备信息时,支持订阅同步完成事件。比如 Device A 同步 Device B 的设备信息,如果 Device B 订阅了同步完成事件,则同步完成后 Device B 会收到 Device A 发送的同步完成通知。如果 Device B 取消订阅同步完成事件,则后续同步完成后不再收到通知。

DeviceProfile 提供的同步完成事件订阅接口为 SubscribeProfileEvent 接口,取消订阅的接口为 UnsubscribeProfileEvent 接口。

ㆍ数据变更事件

DeviceProfile 支持远程订阅数据变更事件,比如,Device B 可以订阅 Device A 的数据变更事件。当 Device A 的数据发生变更,Device B 会收到数据变更通知。如果 Device B 取消订阅数据变更事件,则后续不再收到数据变更通知。

DeviceProfile 提供的数据变更事件订阅接口为 SubscribeProfileChange 接口,取消订阅的接口为 SubscribeProfileChange 接口。

同步完成事件、数据变更事件的订阅流程相似。图 6 展示了同步完成事件的订阅流程。

ac7da9b6-a541-11ec-952b-dac502259ad0.jpg

图6 同步完成事件的订阅流程

审核编辑 :李倩

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

    关注

    37

    文章

    6747

    浏览量

    123205
  • OpenHarmony
    +关注

    关注

    25

    文章

    3675

    浏览量

    16165

原文标题:OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile

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

收藏 人收藏

    评论

    相关推荐

    OpenHarmony南向开发案例:【分布式画板】

    使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony分布式技术,使多人能够一起画画。
    的头像 发表于 04-12 14:40 1018次阅读
    <b class='flag-5'>OpenHarmony</b>南向开发案例:【<b class='flag-5'>分布式</b>画板】

    OpenHarmony 2.2 Beta2 版本发布,具备典型的分布式能力和媒体类产品开发能力

    多家公司推出了基于 OpenHarmony 项目开发的智能终端,如智能手表、智能家电、智慧屏等。亮点特性/核心特性OpenHarmony 2.2 B
    发表于 08-09 15:15

    OpenHarmony 3.1 Release全面解析

    ,还支持了分布式数据库、分布式全新管理等能力。更多内容可以查看OpenHarmony官方发布的 OpenHarmony 3.1 Releas
    发表于 03-31 10:36

    OpenHarmony 3.1 Release全面解析

    ,还支持了分布式数据库、分布式全新管理等能力。更多内容可以查看OpenHarmony官方发布的 OpenHarmony 3.1 Releas
    发表于 03-31 10:55

    喜大普奔!OpenHarmony 3.1特性—DAYU200能打电话了!

    。(4)2022年3月30号正式发布的OpenHarmony 3.1 版本,应用框架支持卡片,软总线能力进一步增强、分布式数据、分布式硬件、
    发表于 04-04 10:52

    OpenHarmony3.1分布式技术资料合集

    1、OpenHarmony3.1分布式硬件管理框架简介分布式硬件管理框架是为分布式硬件子系统提供信息管理能力的部件。分布式硬件管理框架为
    发表于 04-11 11:50

    OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架

    问题,OpenHarmony 图形栈采取了 UI 与动画分离、测量布局绘制优化等关键技术来提升动画性能。1. UI 与动画分离OpenHarmony 图形栈采用 UI 与动画分离的设计思想,动画的使能和参数下发
    发表于 04-13 18:24

    【直播回顾】OpenHarmony 3.1 Release版本南北向关键能力解读

    OpenHarmony3.1分布式能力新场景探索新版本解锁了开发板的哪些新玩法OpenHarmony在PC端的技术布局……欢迎大家回看4月14日晚的直播《
    发表于 04-15 16:12

    OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile

    类型、设备名称、存储容量、是否折叠屏、有无屏幕、分辨率、设备安全等级、设备 OS 类型、OS 版本号等。(备注:DeviceProfile 支持分布式部署在多个设备上,所以 DevicePro
    发表于 04-25 11:14

    OpenHarmony技术日全面解读3.1 Release版本,系统基础能力再升级

    OpenHarmony 3.1 拥有了复杂图形、安全、电话和分布式增强等全新特性。系统能力的持续迭代,助力 OpenHarmony 开发资
    发表于 04-27 10:15

    【项目连载】详细分享OpenHarmony v3.1 Beta版本

    时间时区管理、DFX新增支持HiSysEvent部件提供查询和订阅接口。标准系统分布式能力增强:包括新增支持分布式DeviceProfile特性
    发表于 04-29 14:55

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

    的实现。详细信息请参考分布式屏幕的代码仓:https://gitee.com/openharmony/distributed_screen三、后续规划除了分布式相机和分布式屏幕外,硬件
    发表于 05-23 16:42

    【开发样例】OpenHarmony分布式购物车

    设计OpenHarmony技术特性eTS UI分布式调度分布式数据管理3.支持OpenHarmony版本
    发表于 07-29 14:17

    OpenHarmony 分布式硬件关键技术

    本文转载自 OpenHarmony TSC 官方《峰会回顾第8期 | OpenHarmony 分布式硬件关键技术》 演讲嘉宾 | 李刚 回顾整理 | 廖涛 排版校对 | 李萍萍 嘉宾
    发表于 08-24 17:25

    OpenHarmony技术论坛:分布式相机和分布式图库功能

    OpenHarmony Tech Day·技术日》 技术论坛 新增分布式相机和分布式图库功能 相比OpenHarmony 3.0版本
    的头像 发表于 04-25 15:06 1801次阅读
    <b class='flag-5'>OpenHarmony</b>技术论坛:<b class='flag-5'>分布式</b>相机和<b class='flag-5'>分布式</b>图库功能