Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

编织数据管理

现在您已经了解了Weave的主要组件,下面让我们看一下它的某些功能是如何在更高层次上进行处理的。

Nest生态系统中用于日常操作的几乎所有功能都作为Weave架构的一部分映射到资源和特征上。 数据管理 概要文件使用发布-订阅模型管理所有特征请求。这些请求是特定于数据管理概要文件的消息

在这种类型的模型中,发布者发布特征(要监视的数据),而订阅者对那些已发布特征(正在监视的数据)的变化做出反应。此功能称为实时特征管理

数据管理配置文件是Weave的主力军,通常称为Weave数据管理(WDM)。

要求

请求 是WDM实时特征管理的关键要素。请求是对特征采取行动标准请求 ,并带有预期的响应。这些与特征的命令不同,因为它们不是而且不能在模式中定义,并且不特定于任何特征。

有三种类型的标准请求:

  • 通知 标准请求,该请求将特质属性的状态或与该特质相关的特定事件通知订户。
  • 更新 标准请求以更改trait属性的状态。
  • 查看 标准请求以查看特征的属性。

协议角色

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消息发送到特征,即使它们没有被订阅

有关更多详细信息,请参阅: