OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)作為分布式操作系統(tǒng),讓多個(gè)設(shè)備之間能夠相互感知,進(jìn)而整合成一個(gè)超級(jí)終端。從而實(shí)現(xiàn)設(shè)備與設(shè)備之間取長(zhǎng)補(bǔ)短、相互幫助,為用戶提供自然流暢的分布式體驗(yàn)。那么超級(jí)終端中,設(shè)備的能力和狀態(tài)如何管理?設(shè)備之間如何進(jìn)行信息協(xié)同?要回答這些問(wèn)題,就不得不提我們本期的主角——DeviceProfile。
什么是DeviceProfile?
超級(jí)終端中的設(shè)備之間如何能實(shí)現(xiàn)取長(zhǎng)補(bǔ)短、相互幫助?首先,就必須知道每個(gè)設(shè)備的能力,以及設(shè)備是否在線。對(duì)此,OpenHarmony 提出了“設(shè)備畫像”,也就是通過(guò) DeviceProfile 來(lái)記錄設(shè)備的能力和狀態(tài)等信息。
DeviceProfile 是設(shè)備硬件能力和系統(tǒng)軟件特征的管理器,記錄的典型設(shè)備信息有設(shè)備類型、設(shè)備名稱、存儲(chǔ)容量、是否折疊屏、有無(wú)屏幕、分辨率、設(shè)備安全等級(jí)、設(shè)備 OS 類型、OS 版本號(hào)等。
(備注:DeviceProfile 支持分布式部署在多個(gè)設(shè)備上,所以 DeviceProfile 也稱為分布式 DeviceProfile。)
DeviceProfile的組成結(jié)構(gòu)
接下來(lái),我們來(lái)看看 DeviceProfile 的組成結(jié)構(gòu)。
圖1 DeviceProfile的組成結(jié)構(gòu)
如圖 1 所示, DeviceProfile 主要包含以下模塊:
?數(shù)據(jù)管理:提供設(shè)備信息的插入、刪除、查詢、同步等數(shù)據(jù)管理功能;
?訂閱管理:訂閱和取消訂閱遠(yuǎn)端設(shè)備的同步完成事件和數(shù)據(jù)變更事件;
?安全管理:管控本地設(shè)備 DeviceProfile 的訪問(wèn)權(quán)限,保障數(shù)據(jù)在可信范圍內(nèi)獲取。
DeviceProfile的典型業(yè)務(wù)流程
分布式 DeviceProfile 基于分布式軟總線、分布式數(shù)據(jù)管理、分布式 Profile 等技術(shù)特性,構(gòu)建統(tǒng)一的設(shè)備信息管理機(jī)制。支持對(duì)設(shè)備信息的插入、刪除、查詢、跨設(shè)備同步、同步完成及數(shù)據(jù)變更事件監(jiān)聽(tīng)等操作。
圖 2 展示了兩個(gè)設(shè)備的分布式 DeviceProfile 及其內(nèi)部業(yè)務(wù)流程。
圖2 分布式DeviceProfile
在介紹業(yè)務(wù)流程之前,先讓我們來(lái)認(rèn)識(shí)一下圖 2 中涉及到的幾個(gè)模塊。
? DP Client 和 CS(Content Sensor)都是 DeviceProfile 一部分。DP Client 是 DeviceProfile 的客戶端,其他服務(wù)可以通過(guò) DP Client 來(lái)調(diào)用 DeviceProfile 的接口進(jìn)行數(shù)據(jù)同步、數(shù)據(jù)變更等。CS 負(fù)責(zé)采集本設(shè)備的設(shè)備信息;
? HiChain:設(shè)備互信認(rèn)證服務(wù),管理設(shè)備的可信群組;
?分布式數(shù)據(jù)管理服務(wù):DeviceProfile 通過(guò)分布式數(shù)據(jù)管理服務(wù)插入、更新、查詢、刪除及同步設(shè)備信息。
接下來(lái),我們就來(lái)詳細(xì)介紹分布式 DeviceProfile 的典型業(yè)務(wù)流程。
1.插入/刪除本地設(shè)備信息
CS 模塊定期探測(cè)本地設(shè)備的能力信息。當(dāng)設(shè)備能力發(fā)生變化時(shí),CS 發(fā)送給本地 DeviceProfile,本地 DeviceProfile 再通過(guò)分布式數(shù)據(jù)管理服務(wù)插入或更新設(shè)備信息。
當(dāng)設(shè)備的某項(xiàng)能力很久未使用,本地 DeviceProfile 會(huì)通過(guò)分布式數(shù)據(jù)管理服務(wù)刪除設(shè)備信息。
設(shè)備信息插入的內(nèi)部流程圖如圖 3 所示。本地 DeviceProfile 通過(guò) PutDeviceProfile 接口,請(qǐng)求寫入一條設(shè)備信息記錄。如果數(shù)據(jù)庫(kù)已經(jīng)初始化完成,DeviceProfileStorageManager 會(huì)直接調(diào)用 OnLineSyncTable 的 PutDeviceProfile 寫入數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)經(jīng)初始化未完成,則先將數(shù)據(jù)寫入臨時(shí)緩存,等初始化完成后再寫入數(shù)據(jù)庫(kù),并清理緩存。
圖3 設(shè)備信息插入流程圖
2.跨設(shè)備同步設(shè)備信息
跨設(shè)備同步設(shè)備信息分為兩種場(chǎng)景:
(1)設(shè)備上線時(shí)自動(dòng)觸發(fā)同步
如圖 2,當(dāng) Device B 上線時(shí),Device A 的 DeviceProfile 會(huì)從分布式軟總線收到上線通知。DeviceProfile 的安全管理模塊通過(guò)與 HiChain 交互,獲知 Device B 在可信群組內(nèi)。此時(shí),自動(dòng)觸發(fā)同步,Device A 將自己的設(shè)備信息推送給 Device B 實(shí)現(xiàn)同步。同樣的,Device A 上線時(shí),Device B 也會(huì)收到上線通知,觸發(fā) Device B 主動(dòng)推送自己的設(shè)備信息給 Device A 實(shí)現(xiàn)同步。
(2)通過(guò) DP Client 調(diào)用接口觸發(fā)同步
系統(tǒng)服務(wù)也可以通過(guò) DP Client 調(diào)用 SyncDeviceProfile 接口,觸發(fā)兩個(gè)設(shè)備的分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。
跨設(shè)備同步設(shè)備信息的內(nèi)部流程如圖 4 所示。設(shè)備 A 的 DeviceProfile 通過(guò) SyncDeviceProfile 接口發(fā)起同步請(qǐng)求,再通過(guò) CheckTrustGroup 接口獲取本設(shè)備(即設(shè)備 A)和需要同步設(shè)備(即設(shè)備 B)的可信群組信息。如果兩個(gè)設(shè)備的 GroupType 類型為 1(同賬號(hào)組網(wǎng))或者 256(點(diǎn)對(duì)點(diǎn)無(wú)賬號(hào)組網(wǎng)),并且 Visibility(可見(jiàn)性)為 public,則說(shuō)明兩個(gè)設(shè)備之間可信。設(shè)備 A 將自己的設(shè)備信息推送給設(shè)備 B。
圖4 跨設(shè)備同步設(shè)備信息
3.查詢?cè)O(shè)備信息
跨設(shè)備同步設(shè)備信息之后,本地設(shè)備上除了自己設(shè)備的信息,還有遠(yuǎn)端設(shè)備的信息。因而,在本地設(shè)備上就可以查詢本地和遠(yuǎn)端設(shè)備信息,DeviceProfile 通過(guò) deviceid 來(lái)判斷是否為遠(yuǎn)端設(shè)備。DeviceProfile 提供的查詢接口為 GetDeviceProfile 接口,具體查詢流程如圖 5 所示。
圖5 查詢遠(yuǎn)端設(shè)備信息
4.訂閱同步完成/數(shù)據(jù)變更事件
DeviceProfile 提供兩類事件的訂閱和取消訂閱功能:
?同步完成事件
跨設(shè)備同步設(shè)備信息時(shí),支持訂閱同步完成事件。比如 Device A 同步 Device B 的設(shè)備信息,如果 Device B 訂閱了同步完成事件,則同步完成后 Device B 會(huì)收到 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 會(huì)收到數(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文章
6545瀏覽量
122755 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3548瀏覽量
15746
原文標(biāo)題:OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——分布式DeviceProfile
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論