Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

編織數據管理

現在您已經了解了Weave的主要組件,下面讓我們看一下它的某些功能是如何在更高層次上進行處理的。

作為Weave架構的一部分,Nest生態系統中用於日常操作的幾乎所有功能都被映射到資源和特徵上。 數據管理 概要文件使用發布-訂閱模型管理所有特徵請求。這些請求是特定於數據管理概要文件的消息

在這種類型的模型中,發布者發布特徵(要監視的數據),而訂閱者對那些發布的特徵(正在監視的數據)的變化做出反應。此功能稱為實時特徵管理

數據管理配置文件是Weave的主力軍,通常稱為Weave數據管理(WDM)。

要求

請求 是WDM實時特徵管理的關鍵要素。請求是對特徵採取行動標準請求 ,並帶有預期的響應。這些與特徵的命令不同,因為它們不是而且不能在模式中定義,並且不特定於任何特徵。

有三種類型的標準請求:

  • 通知 標準請求,該請求將特質屬性的狀態或與該特質相關的特定事件通知訂戶。
  • 更新 標準請求以更改特徵屬性的狀態。
  • 查看 標準請求以查看特徵的屬性。

協議角色

WDM協議角色有兩種類型:發布者和訂閱者。這些角色是在特徵級別分配的。

發行人

WDM 發布者角色生成一個或多個模式的版本化實例並將其提供給一個或多個訂戶,並向有關訂戶發送有關模式更改的通知。這些通知是通知標準請求。

例如,假設特徵A由資源1發布並由資源2訂閱。 如圖1所示,如果特徵A發生了變化:

  1. WDM從資源1向特徵A的所有訂戶發送通知請求 ,並通知他們更改。
  2. 每個訂戶都相應地更新其特徵A的實例。
WDM Publisher通知請求
圖1-WDM發布者請求

模式中的其他特徵也會發生相同的情況。例如,如果資源2發布了特性B,資源1訂閱了特性B,而特性B發生了變化:

  1. WDM從資源2向特徵B的所有訂戶發送一個通知請求 ,通知他們更改。
  2. 每個訂戶都相應地更新其特徵B的實例。

訂戶

WDM 訂戶角色查看並使用一個或多個外部發布模式的版本化實例。它可以使用更新請求來更改已發布模式的版本化實例,或者發出特定於應用程序的命令

例如,假設資源2要更改由資源1發布的特性A。 如圖2所示,要更改特性A:

  1. WDM將更新請求從資源2發送到資源1,以請求對特徵A進行更改。
  2. 資源1的特徵A已更改。
  3. WDM從資源1向特徵A的所有訂戶發送通知請求 ,並通知他們更改。
  4. 每個訂戶都相應地更新其特徵A的實例。
WDM訂戶查看和更新
圖2-WDM訂戶請求

訂閱者還可以向特徵的發布者發送查看請求 ,以查看對該特徵的屬性併保持其自身的特徵實例與發布者同步。

訂閱類型

WDM訂閱有兩種類型。訂閱建立與訂閱 請求。 圖3說明了建立單向訂閱的基本消息流。

WDM單向訂閱
圖3-WDM單向訂閱

單程

單向訂閱涉及從訂戶到發布者的一個或多個特徵實例請求。例如,移動設備從服務中檢索房屋(建築物)的狀態。

相互

相互訂閱是指資源彼此訂閱,並且兩者同時充當發布者和訂閱者。例如,Nest Secure系統中的Nest Guard和Nest Detect。相互訂閱允許兩個資源以比兩個單向訂閱更有效的方式來管理已發布的架構並維護其訂閱的運行狀況和活動性。

讓我們看一個簡單的示例,說明WDM如何使用移動應用程序處理對設備區域設置的更改。

此示例涉及三個資源和兩個特徵, 如圖4所示:

  • 設備(訂戶)
  • 服務(發布者)
  • 移動應用程序(訂戶)
  • 語言環境功能”特徵可用語言環境”屬性
  • 語言環境設置特徵活動語言環境屬性

這兩個特徵均由服務資源發布,並由設備和移動應用程序資源訂閱。每個訂閱者都充當對服務資源上的特徵發布者的單向訂閱。

此示例中的所有資源都是相同的Weave織物

WDM示例
圖4-WDM示例

更新流程

假設用戶使用其移動應用程序通過連接的移動應用程序將設備的語言環境從en_US更改為fr_FR如圖5所示,WDM中的更新流程為:

  1. 移動應用程序資源(訂戶)向服務資源(發布者)發送更新請求 ,以將“語言環境設置”特徵的“活動語言環境”屬性更改為“ fr_FR ,這是“語言環境功能”特徵的“可用語言環境”屬性的有效值之一。
  2. 服務資源在其架構副本中更改“語言環境設置”特徵的“活動語言環境”屬性。
  3. 服務資源發送一個通知請求關於改變到區域設置性狀任何用戶。
  4. 設備和移動應用資源(用戶)都接收服務資源的通知要求 ,並在其架構的副本更新的區域設置性狀的活動區域設置屬性。
WDM更新流程順序
圖5-WDM更新流程

WDM的好處

當您要做的只是從移動應用程序更改設備上的區域設置時,這似乎非常複雜。但是,通過將版本化的架構,發布-訂閱模式和請求包裝到WDM概要文件中,Weave可以確保所有資源之間的數據完整性。

它還可以確保活動性,因此,當設備重新啟動時,它會立即將其已發布特徵的狀態通知所有訂閱者,觀察已訂閱特徵的狀態,並在其架構副本中反映所有這些狀態而不會丟失功能。

超越訂閱

如果資源取消訂閱特徵,則該資源將保留該特徵的最後已知版本的副本。它不再接收通知請求從出版商為特徵,但仍然可以發送更新請求給出版商。

甚至從未訂閱特徵發布者的資源也可以向他們發送請求。例如,資源可能不需要了解特徵的狀態,但是可能想要發送更新請求來響應外部事件來更改該特徵的狀態。

回顧

您學到了什麼:

  • 編織數據管理(WDM) 是用於實時特徵管理的編織配置文件,可確保所有資源的活動性和數據完整性
  • 請求是對特徵的動作的標準請求,具有預期的響應
  • WDM具有兩個協議角色:
    • 發布者-特定特徵的真相來源,發送通知請求
    • 訂閱服務器—觀察已發布的架構,發送視圖 更新 命令 請求
  • WDM具有兩種訂閱模式:
    • 單向—請求從訂閱者流向發布者
    • 相互-設備互相訂閱
  • 訂閱是通過訂閱請求建立的
  • 資源可以將WDM消息發送到特徵,即使它們沒有被訂閱

有關更多詳細信息,請參閱: