Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。
このページは Cloud Translation API によって翻訳されました。
Switch to English

織りデータ管理

Weaveの主要コンポーネントを理解したところで、その機能の一部が高レベルでどのように処理されるかを見てみましょう。

Nestエコシステムの日常業務用のほぼすべての機能は、Weaveスキーマの一部としてリソースと特性にマッピングされています。 Data Management プロファイルは、パブリッシュ/サブスクライブモデルを使用して、特性に対するすべてのリクエストを管理します。これらの要求は、データ管理プロファイルに固有のメッセージです。

このタイプのモデルでは、パブリッシャーは特性(監視するデータ)をアドバタイズし、サブスクライバーはこれらの公開された特性(監視されるデータ)の変更に反応します。この機能は、 リアルタイム特性管理と呼ばれます。

データ管理プロファイルはWeaveの主力製品であり、一般にWeave Data Management(WDM)と呼ばれます。

リクエスト

リクエスト は、WDMのリアルタイム特性管理の重要な要素です。要求は、期待される応答を伴う、特性のアクション標準的な要求です 。これらは、スキーマで定義されておらず、定義することもできず、どのトレイトにも固有ではないという点で、トレイトのコマンドとは異なります。

標準リクエストには次の3つのタイプがあります。

  • 特性プロパティの状態またはその特性に関連する特定のイベントをサブスクライバーに通知する 標準要求を通知します。
  • 標準リクエストを更新して 、特性プロパティの状態を変更します。
  • ビューは 形質のプロパティを表示するための標準的な要求を。

プロトコルの役割

WDMプロトコルの役割には、パブリッシャーとサブスクライバーの2つのタイプがあります。これらの役割は、特性レベルで割り当てられます。

出版社

WDM パブリッシャーロールは、1つ以上のスキーマのバージョン付きインスタンスを作成して1つ以上のサブスクライバーに提供し、スキーマの変更に関する通知を関係するサブスクライバーに送信します。これらの通知は、 通知標準リクエストです。

たとえば、特性Aがリソース1によって発行され、リソース2によってサブスクライブされているとします。 図1に示すように、特性Aが変更された場合:

  1. WDMは通知要求をリソース1から特性Aのすべてのサブスクライバーに送信し、変更を通知します。
  2. 各サブスクライバーは、それに応じて特性Aのインスタンスを更新します。
WDMパブリッシャー通知要求
図1-WDMパブリッシャーの要求

スキーマの他の特性についても同じことが起こります。たとえば、リソース2が特性Bをパブリッシュすると、リソース1が特性Bにサブスクライブし、特性Bが変更されます。

  1. WDMは、リソース2から特性Bのすべてのサブスクライバーに通知要求送信し、変更を通知します。
  2. 各サブスクライバーは、それに応じて特性Bのインスタンスを更新します。

加入者

WDM サブスクライバーロールは、1つ以上の外部公開スキーマのバージョン付きインスタンスを表示して使用します。 更新リクエストで公開スキーマのバージョン付きインスタンスを変更したり、アプリケーション固有のコマンドを発行したりできます。

たとえば、リソース2がリソース1によって公開されている特性Aを変更したいとします。 図2に示すように、特性Aを変更します

  1. WDMは更新要求をリソース2からリソース1に送信して、特性Aへの変更を要求します。
  2. リソース1の特性Aが変更されました。
  3. WDMは、リソース1からトレイトAのすべてのサブスクライバーに通知要求送信し、変更を通知します。
  4. 各サブスクライバーは、それに応じて特性Aのインスタンスを更新します。
WDMサブスクライバービューと更新
図2-WDMサブスクライバーの要求

サブスクライバーは、 ビューリクエストをトレイトのパブリッシャーに送信して、そのトレイトのプロパティを表示し、トレイトの独自のインスタンスをパブリッシャーと同期させることもできます。

サブスクリプションの種類

WDMサブスクリプションには2つのタイプがあります。サブスクリプションは、 subscribe リクエストで確立され図3は、一方向サブスクリプションを確立するための基本的なメッセージフローを示しています。

WDM片方向サブスクリプション
図3-WDM片方向サブスクリプション

一方通行

一方向サブスクリプションには、サブスクライバーからパブリッシャーへの1つ以上の特性インスタンスの要求が含まれます。たとえば、サービスから家(構造)の状態を取得するモバイルデバイス。

相互

相互サブスクリプションは、リソースが互いにサブスクライブし、それぞれがパブリッシャーとサブスクライバーの両方として機能する場合です。この例として、Nest Secureシステムの一部であるNest GuardとNest Detectがあります。相互サブスクリプションを使用すると、両方のリソースで公開スキーマを管理し、2つの一方向サブスクリプションよりも効率的な方法でサブスクリプションの正常性と活性を維持できます。

モバイルアプリを使用してWDMがデバイスのロケールの変更を処理する方法の簡単な例を見てみましょう。

この例には、 図4に示すように、3つのリソースと2つの特性があります。

  • デバイス(サブスクライバー)
  • サービス(パブリッシャー)
  • モバイルアプリ(サブスクライバー)
  • ロケール機能の特性は、利用可能なロケールプロパティをます。
  • ロケール設定特性は、アクティブロケールプロパティをます

どちらのトレイトもサービスリソースによって公開され、デバイスリソースとモバイルアプリリソースによってサブスクライブされます。各サブスクライバーは、サービスリソースの特性パブリッシャーへの一方向サブスクリプションとして機能します。

この例のすべてのリソースは、同じWeaveファブリック一部です。

WDMの例
図4-WDMの例

更新フロー

ユーザーがモバイルアプリを使用し、接続されたモバイルアプリを使用して、デバイスのロケールをen_USからfr_FRに変更するとします。 図5に示すように、WDM内の更新フローは次のとおりです。

  1. モバイルアプリリソース(サブスクライバー)は、 更新要求をサービスリソース(パブリッシャー)に送信して、ロケール設定トレイトのアクティブロケールプロパティを、ロケール機能トレイトの利用可能なロケールプロパティの有効な値の1つであるfr_FRに変更します。
  2. Serviceリソースは、スキーマのコピーのLocale SettingsトレイトのActive Localeプロパティを変更します。
  3. Serviceリソースは、変更に関する通知リクエスト Locale Settingsトレイトのサブスクライバーに送信します。
  4. デバイスリソースとモバイルアプリリソース(サブスクライバー)は両方とも、サービスリソースの通知要求を受信し、スキーマのコピーにあるロケール設定特性のアクティブロケールプロパティを更新します。
WDM更新フローシーケンス
図5-WDM更新フロー

WDMの利点

モバイルアプリからデバイスのロケールを変更するだけの場合、これは非常に複雑に見えるかもしれません。しかし、バージョン管理されたスキーマ、パブリッシュサブスクライブパターン、および要求をまとめてWDMプロファイルにラップすることにより、Weaveはすべてのリソースにわたってデータの整合性を保証します。

また、デバイスの再起動時に、パブリッシュされた特性の状態をすぐにすべてのサブスクライバーに通知し、サブスクライブされた特性の状態を監視し、機能性を失うことなくスキーマのコピーにそれらの状態をすべて反映します。

サブスクリプションを超えて

リソースがトレイトの登録を解除した場合、そのリソースは最後に認識されたバージョンのトレイトのコピーを保持します。その特性のパブリッシャーから通知リクエストを受信しなくなりましたが、 更新リクエストをそのパブリッシャーに送信できます。

特性パブリッシャーにサブスクライブされたことのないリソースであっても、リソースにリクエストを送信できます。たとえば、リソースはトレイトの状態を知る必要はないかもしれませんが、 更新リクエストを送信して、外部イベントに応じてそのトレイトの状態を変更したい場合があります。

要約

学んだこと:

  • 織りデータ管理(WDM) は、リアルタイムの特性管理のための織りプロファイルであり、すべてのリソースにわたって活性とデータの整合性を保証します
  • リクエストは、期待されるレスポンスを伴う、特性のアクションの標準的なリクエストです
  • WDMには2つのプロトコルの役割があります。
    • 出版社-特定の形質の真理の源は、要求の通知送信
    • サブスクライバー—公開されたスキーマをビュー 更新 、またはコマンド リクエストを送信します
  • WDMには2つのサブスクリプションモデルがあります。
    • 一方向—サブスクライバーからパブリッシャーへの要求フロー
    • 相互—デバイスは相互にサブスクライブします
  • サブスクリプションは、 サブスクライブ要求で設定されます
  • リソースは、サブスクライブされていなくても、WDMメッセージをトレイトに送信できます

詳細については、以下を参照してください。