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

openatom openharmony(以下简称“openharmony”)作为分布式操作系统,让多个设备之间能够相互感知,进而整合成一个超级终端。从而实现设备与设备之间取长补短、相互帮助,为用户提供自然流畅的分布式体验。那么超级终端中,设备的能力和状态如何管理?设备之间如何进行信息协同?要回答这些问题,就不得不提我们本期的主角——deviceprofile。  
什么是deviceprofile?
超级终端中的设备之间如何能实现取长补短、相互帮助?首先,就必须知道每个设备的能力,以及设备是否在线。对此,openharmony 提出了“设备画像”,也就是通过 deviceprofile 来记录设备的能力和状态等信息。
deviceprofile 是设备硬件能力和系统软件特征的管理器,记录的典型设备信息有设备类型、设备名称、存储容量、是否折叠屏、有无屏幕、分辨率、设备安全等级、设备 os 类型、os 版本号等。
(备注:deviceprofile 支持分布式部署在多个设备上,所以 deviceprofile 也称为分布式 deviceprofile。)
deviceprofile的组成结构
接下来,我们来看看 deviceprofile 的组成结构。
图1 deviceprofile的组成结构
如图 1 所示, deviceprofile 主要包含以下模块:
ㆍ 数据管理:提供设备信息的插入、删除、查询、同步等数据管理功能;
ㆍ 订阅管理:订阅和取消订阅远端设备的同步完成事件和数据变更事件;
ㆍ 安全管理:管控本地设备 deviceprofile 的访问权限,保障数据在可信范围内获取。
deviceprofile的典型业务流程
分布式 deviceprofile 基于分布式软总线、分布式数据管理、分布式 profile 等技术特性,构建统一的设备信息管理机制。支持对设备信息的插入、删除、查询、跨设备同步、同步完成及数据变更事件监听等操作。
图 2 展示了两个设备的分布式 deviceprofile 及其内部业务流程。
图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 写入数据库。如果数据库经初始化未完成,则先将数据写入临时缓存,等初始化完成后再写入数据库,并清理缓存。
图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。
图4 跨设备同步设备信息  
3.查询设备信息
跨设备同步设备信息之后,本地设备上除了自己设备的信息,还有远端设备的信息。因而,在本地设备上就可以查询本地和远端设备信息,deviceprofile 通过 deviceid 来判断是否为远端设备。deviceprofile 提供的查询接口为 getdeviceprofile 接口,具体查询流程如图 5 所示。
图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 展示了同步完成事件的订阅流程。
图6 同步完成事件的订阅流程  


关于异丙醇各个方面的技术分析
第二十六讲 寄存器和移位寄存器
机器视觉Sherlock软件在检测零件定位中的应用研究分析
漏电开关的4P和3P+N断路器到底有什么区别
视频处理器真正实现多频一显功能
OpenHarmony 3.1 Beta版本关键特性解析——分布式DeviceProfile
iphone8什么时候上市?最新消息:iphone8无Home键全面屏稳了!大神再爆苹果8谍照,要价超一万的黑科技手机买吗?
如何选择多速电机还是变频电机?
文心一言的蝴蝶振翅,云计算的飓风狂飙
景旺电子科技成果评审会在江西召开
如何选择适合自己企业的软件,ERP软件排名作参考
诺基亚获苹果专利授权营收超过Lumia手机
一加电视在海外市场率先上市,定位于高端旗舰产品
广州3700建筑为亚运亮灯
英特尔宣布未来将聚焦于六个工程领域的技术策略
什么是CSCW (Computer Supported Co
黑鲨游戏手机3线上推出,突破游戏帧率限制
功放电路设计要点
意法半导体通过两项并购,进一步增强STM32微控制器的无线连接功能
浅谈ldc1000的单片机测试数据程序