OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)作為分布式操作系統(tǒng),讓多個設(shè)備之間能夠相互感知,進(jìn)而整合成一個超級終端。從而實(shí)現(xiàn)設(shè)備與設(shè)備之間取長補(bǔ)短、相互幫助,為用戶提供自然流暢的分布式體驗(yàn)。那么超級終端中,設(shè)備的能力和狀態(tài)如何管理?設(shè)備之間如何進(jìn)行信息協(xié)同?要回答這些問題,就不得不提我們本期的主角——DeviceProfile。
什么是DeviceProfile?
超級終端中的設(shè)備之間如何能實(shí)現(xiàn)取長補(bǔ)短、相互幫助?首先,就必須知道每個設(shè)備的能力,以及設(shè)備是否在線。對此,OpenHarmony 提出了“設(shè)備畫像”,也就是通過 DeviceProfile 來記錄設(shè)備的能力和狀態(tài)等信息。
DeviceProfile 是設(shè)備硬件能力和系統(tǒng)軟件特征的管理器,記錄的典型設(shè)備信息有設(shè)備類型、設(shè)備名稱、存儲容量、是否折疊屏、有無屏幕、分辨率、設(shè)備安全等級、設(shè)備 OS 類型、OS 版本號等。
(備注:DeviceProfile 支持分布式部署在多個設(shè)備上,所以 DeviceProfile 也稱為分布式 DeviceProfile。)
DeviceProfile的組成結(jié)構(gòu)
接下來,我們來看看 DeviceProfile 的組成結(jié)構(gòu)。
圖1 DeviceProfile的組成結(jié)構(gòu)
如圖 1 所示, DeviceProfile 主要包含以下模塊:
?數(shù)據(jù)管理:提供設(shè)備信息的插入、刪除、查詢、同步等數(shù)據(jù)管理功能;
?訂閱管理:訂閱和取消訂閱遠(yuǎn)端設(shè)備的同步完成事件和數(shù)據(jù)變更事件;
?安全管理:管控本地設(shè)備 DeviceProfile 的訪問權(quán)限,保障數(shù)據(jù)在可信范圍內(nèi)獲取。
DeviceProfile的典型業(yè)務(wù)流程
分布式 DeviceProfile 基于分布式軟總線、分布式數(shù)據(jù)管理、分布式 Profile 等技術(shù)特性,構(gòu)建統(tǒng)一的設(shè)備信息管理機(jī)制。支持對設(shè)備信息的插入、刪除、查詢、跨設(shè)備同步、同步完成及數(shù)據(jù)變更事件監(jiān)聽等操作。
圖 2 展示了兩個設(shè)備的分布式 DeviceProfile 及其內(nèi)部業(yè)務(wù)流程。
圖2 分布式DeviceProfile
在介紹業(yè)務(wù)流程之前,先讓我們來認(rèn)識一下圖 2 中涉及到的幾個模塊。
? DP Client 和 CS(Content Sensor)都是 DeviceProfile 一部分。DP Client 是 DeviceProfile 的客戶端,其他服務(wù)可以通過 DP Client 來調(diào)用 DeviceProfile 的接口進(jìn)行數(shù)據(jù)同步、數(shù)據(jù)變更等。CS 負(fù)責(zé)采集本設(shè)備的設(shè)備信息;
? HiChain:設(shè)備互信認(rèn)證服務(wù),管理設(shè)備的可信群組;
?分布式數(shù)據(jù)管理服務(wù):DeviceProfile 通過分布式數(shù)據(jù)管理服務(wù)插入、更新、查詢、刪除及同步設(shè)備信息。
接下來,我們就來詳細(xì)介紹分布式 DeviceProfile 的典型業(yè)務(wù)流程。
1.插入/刪除本地設(shè)備信息
CS 模塊定期探測本地設(shè)備的能力信息。當(dāng)設(shè)備能力發(fā)生變化時,CS 發(fā)送給本地 DeviceProfile,本地 DeviceProfile 再通過分布式數(shù)據(jù)管理服務(wù)插入或更新設(shè)備信息。
當(dāng)設(shè)備的某項(xiàng)能力很久未使用,本地 DeviceProfile 會通過分布式數(shù)據(jù)管理服務(wù)刪除設(shè)備信息。
設(shè)備信息插入的內(nèi)部流程圖如圖 3 所示。本地 DeviceProfile 通過 PutDeviceProfile 接口,請求寫入一條設(shè)備信息記錄。如果數(shù)據(jù)庫已經(jīng)初始化完成,DeviceProfileStorageManager 會直接調(diào)用 OnLineSyncTable 的 PutDeviceProfile 寫入數(shù)據(jù)庫。如果數(shù)據(jù)庫經(jīng)初始化未完成,則先將數(shù)據(jù)寫入臨時緩存,等初始化完成后再寫入數(shù)據(jù)庫,并清理緩存。
圖3 設(shè)備信息插入流程圖
2.跨設(shè)備同步設(shè)備信息
跨設(shè)備同步設(shè)備信息分為兩種場景:
(1)設(shè)備上線時自動觸發(fā)同步
如圖 2,當(dāng) Device B 上線時,Device A 的 DeviceProfile 會從分布式軟總線收到上線通知。DeviceProfile 的安全管理模塊通過與 HiChain 交互,獲知 Device B 在可信群組內(nèi)。此時,自動觸發(fā)同步,Device A 將自己的設(shè)備信息推送給 Device B 實(shí)現(xiàn)同步。同樣的,Device A 上線時,Device B 也會收到上線通知,觸發(fā) Device B 主動推送自己的設(shè)備信息給 Device A 實(shí)現(xiàn)同步。
(2)通過 DP Client 調(diào)用接口觸發(fā)同步
系統(tǒng)服務(wù)也可以通過 DP Client 調(diào)用 SyncDeviceProfile 接口,觸發(fā)兩個設(shè)備的分布式數(shù)據(jù)庫的數(shù)據(jù)同步。
跨設(shè)備同步設(shè)備信息的內(nèi)部流程如圖 4 所示。設(shè)備 A 的 DeviceProfile 通過 SyncDeviceProfile 接口發(fā)起同步請求,再通過 CheckTrustGroup 接口獲取本設(shè)備(即設(shè)備 A)和需要同步設(shè)備(即設(shè)備 B)的可信群組信息。如果兩個設(shè)備的 GroupType 類型為 1(同賬號組網(wǎng))或者 256(點(diǎn)對點(diǎn)無賬號組網(wǎng)),并且 Visibility(可見性)為 public,則說明兩個設(shè)備之間可信。設(shè)備 A 將自己的設(shè)備信息推送給設(shè)備 B。
圖4 跨設(shè)備同步設(shè)備信息
3.查詢設(shè)備信息
跨設(shè)備同步設(shè)備信息之后,本地設(shè)備上除了自己設(shè)備的信息,還有遠(yuǎn)端設(shè)備的信息。因而,在本地設(shè)備上就可以查詢本地和遠(yuǎn)端設(shè)備信息,DeviceProfile 通過 deviceid 來判斷是否為遠(yuǎn)端設(shè)備。DeviceProfile 提供的查詢接口為 GetDeviceProfile 接口,具體查詢流程如圖 5 所示。
圖5 查詢遠(yuǎn)端設(shè)備信息
4.訂閱同步完成/數(shù)據(jù)變更事件
DeviceProfile 提供兩類事件的訂閱和取消訂閱功能:
?同步完成事件
跨設(shè)備同步設(shè)備信息時,支持訂閱同步完成事件。比如 Device A 同步 Device B 的設(shè)備信息,如果 Device B 訂閱了同步完成事件,則同步完成后 Device B 會收到 Device A 發(fā)送的同步完成通知。如果 Device B 取消訂閱同步完成事件,則后續(xù)同步完成后不再收到通知。
DeviceProfile 提供的同步完成事件訂閱接口為 SubscribeProfileEvent 接口,取消訂閱的接口為 UnsubscribeProfileEvent 接口。
?數(shù)據(jù)變更事件
DeviceProfile 支持遠(yuǎn)程訂閱數(shù)據(jù)變更事件,比如,Device B 可以訂閱 Device A 的數(shù)據(jù)變更事件。當(dāng) Device A 的數(shù)據(jù)發(fā)生變更,Device B 會收到數(shù)據(jù)變更通知。如果 Device B 取消訂閱數(shù)據(jù)變更事件,則后續(xù)不再收到數(shù)據(jù)變更通知。
DeviceProfile 提供的數(shù)據(jù)變更事件訂閱接口為 SubscribeProfileChange 接口,取消訂閱的接口為 SubscribeProfileChange 接口。
同步完成事件、數(shù)據(jù)變更事件的訂閱流程相似。圖 6 展示了同步完成事件的訂閱流程。
圖6 同步完成事件的訂閱流程
審核編輯 :李倩
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6900瀏覽量
123814 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3753瀏覽量
16669
原文標(biāo)題:OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——分布式DeviceProfile
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
OpenHarmony南向開發(fā)案例:【分布式畫板】
![<b class='flag-5'>OpenHarmony</b>南向開發(fā)案例:【<b class='flag-5'>分布式</b>畫板】](https://file1.elecfans.com/web2/M00/C8/01/wKgZomYX7ECAEPWcAAaI_H_y4DI580.jpg)
OpenHarmony 2.2 Beta2 版本發(fā)布,具備典型的分布式能力和媒體類產(chǎn)品開發(fā)能力
OpenHarmony 3.1 Release全面解析
OpenHarmony 3.1 Release全面解析
喜大普奔!OpenHarmony 3.1新特性—DAYU200能打電話了!
OpenHarmony3.1分布式技術(shù)資料合集
OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——OpenHarmony圖形框架
【直播回顧】OpenHarmony 3.1 Release版本南北向關(guān)鍵能力解讀
OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——分布式DeviceProfile
OpenHarmony技術(shù)日全面解讀3.1 Release版本,系統(tǒng)基礎(chǔ)能力再升級
【項(xiàng)目連載】詳細(xì)分享OpenHarmony v3.1 Beta版本
OpenHarmony3.1 Release版本特性解析——OpenHarmony硬件資源池化架構(gòu)介紹
【開發(fā)樣例】OpenHarmony分布式購物車
OpenHarmony 分布式硬件關(guān)鍵技術(shù)
OpenHarmony技術(shù)論壇:分布式相機(jī)和分布式圖庫功能
![<b class='flag-5'>OpenHarmony</b>技術(shù)論壇:<b class='flag-5'>分布式</b>相機(jī)和<b class='flag-5'>分布式</b>圖庫功能](https://file.elecfans.com/web2/M00/3F/1F/poYBAGJmSv-ASqk1AA8Dhi9OakI548.png)
評論