Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Управление данными Weave

Теперь, когда вы понимаете основные компоненты Weave, давайте посмотрим, как некоторые его функции обрабатываются на высоком уровне.

Почти все функциональные возможности в экосистеме Nest для повседневной работы отображаются на ресурсы и характеристики как часть схемы Weave. Профиль управления данными управляет всеми запросами признаков с использованием модели публикации-подписки. Эти запросы являются сообщениями, специфичными для профиля управления данными.

В модели такого типа издатель объявляет признаки (данные для просмотра), а подписчик реагирует на изменения этих опубликованных характеристик (данные просматриваются). Эта функция называется управлением чертами в реальном времени .

Профиль управления данными является рабочей лошадкой Weave и обычно называется Weave Data Management (WDM).

Запросы

Запросы являются ключевым элементом управления чертами WDM в реальном времени. Запросы - это стандартные запросы на действие признака с ожидаемым ответом. Они отличаются от команд черты тем, что они не определены и не могут быть определены в схеме и не являются специфическими для какой-либо черты.

Существует три типа стандартных запросов:

  • Уведомить о Стандартный запрос, который информирует подписчика о состоянии свойства признака или о конкретном событии, связанном с этим признаком.
  • Обновить Стандартный запрос на изменение состояния свойства признака.
  • View Стандартный запрос для просмотра свойств черты.

Роли протокола

Существует два типа ролей протокола WDM: издатель и подписчик. Эти роли назначаются на уровне черты.

издатель

Роль издателя WDM создает и обслуживает версионные экземпляры одной или нескольких схем одному или нескольким подписчикам и отправляет уведомления об изменении схемы заинтересованным подписчикам. Эти уведомления являются стандартными запросами уведомлений .

Например, предположим, что Черта A опубликована Ресурсом 1 и подписана Ресурсом 2. Как показано на рисунке 1 , если Черта A изменяется:

  1. WDM посылает запрос оповещать от ресурса 1 для всех абонентов Тра А, информируя их об изменениях.
  2. Каждый подписчик обновляет свой экземпляр Черты A соответственно.
WDM Publisher уведомить запрос
Рисунок 1 - запросы издателя WDM

То же самое происходит с другими чертами в схеме. Например, если Ресурс 2 публикует черту B, Ресурс 1 подписывается на черту B, а черта B изменяется:

  1. WDM посылает запрос оповещать от ресурса 2 для всех абонентов Тре B, информируя их об изменениях.
  2. Каждый подписчик обновляет свой экземпляр Черты B соответственно.

подписчик

Роль подписчика WDM просматривает и использует версии одной или нескольких опубликованных извне схем. Это может изменить версированный экземпляр опубликованной схемы с запросом на обновление, или выдать команду приложения.

Например, предположим, что Ресурс 2 хочет изменить Черту A, которая опубликована Ресурсом 1. Как показано на рисунке 2 , чтобы изменить Черту A:

  1. WDM отправляет запрос на обновление из Ресурса 2 в Ресурс 1, чтобы запросить изменение для Черты A.
  2. Черта A на Ресурсе 1 изменена.
  3. WDM посылает запрос оповещать от ресурса 1 для всех абонентов Тра А, информируя их об изменениях.
  4. Каждый подписчик обновляет свой экземпляр Черты A соответственно.
Просмотр и обновление подписчика WDM
Рисунок 2 - запросы абонентов WDM

Подписчики также могут отправлять запрос на просмотр признака, чтобы просмотреть свойств этого признака и синхронизировать свои собственные экземпляры признаков с издателем.

Типы подписки

Существует два типа подписок WDM. Подписки создаются с помощью запроса подписки . На рисунке 3 показан основной поток сообщений для установления односторонней подписки.

WDM односторонняя подписка
Рисунок 3 - WDM односторонняя подписка

В одну сторону

Односторонние подписки включают запрос от подписчика к издателю для одного или нескольких экземпляров признаков. Например, мобильное устройство, извлекающее состояние дома (структуры) из службы.

обоюдный

Взаимные подписки - это когда ресурсы подписываются друг на друга, и каждый из них выступает как издатель, так и подписчик. Примером этого являются Nest Guard и Nest Detect, которые являются частью системы Nest Secure. Взаимная подписка позволяет обоим ресурсам управлять опубликованной схемой и поддерживать работоспособность и жизнеспособность своей подписки более эффективным образом, чем две односторонние подписки.

пример

Давайте рассмотрим простой пример того, как WDM обрабатывает изменение локали устройства с помощью мобильного приложения.

В этом примере задействованы три ресурса и две черты, как показано на рисунке 4 :

  • Устройство (подписчик)
  • Сервис (издатель)
  • Мобильное приложение (абонент)
  • Locale Возможности trait Adjust свойство Locales
  • черта Locale Settings свойство Active Locale

Обе характеристики публикуются ресурсом службы и подписываются ресурсами устройства и мобильного приложения. Каждый подписчик действует как односторонняя подписка на издателей признаков на ресурсе Сервиса.

Все ресурсы в этом примере являются частью одной и той же ткани Weave.

Пример WDM
Рисунок 4 - пример WDM

Обновление потока

Допустим, пользователь использует свое мобильное приложение, чтобы изменить языковой стандарт для устройства с en_US на fr_FR , используя подключенное мобильное приложение. Как показано на рисунке 5 , поток обновления в WDM:

  1. Ресурс мобильного приложения (подписчик) отправляет запрос на обновление в ресурс сервиса (издателя), чтобы изменить свойство Active Locale свойства Trait Settings на fr_FR , одно из допустимых значений свойства Available Locales свойства Locale Capabilities.
  2. Ресурс Service изменяет свойство Active Locale свойства черты Locale Settings в своей копии схемы.
  3. Ресурс службы отправляет запрос уведомляет об изменении любых абонентам Настройки Locale признака.
  4. Устройство и Mobile App ресурсы (абоненты) как получить Служащий ресурс уведомить запрос и обновление активного Locale свойства признака Locale Settings в их копии схемы.
Последовательность потоков обновления WDM
Рисунок 5 - поток обновления WDM

Преимущества WDM

Это может показаться очень сложным, когда все, что вам нужно, это изменить локаль на вашем устройстве из мобильного приложения. Но благодаря объединению версионной схемы, шаблона публикации-подписки и запросов в профиль WDM, Weave обеспечивает целостность данных во всех ресурсах.

Это также обеспечивает жизнеспособность, поэтому, когда устройство перезапускается, оно немедленно уведомляет всех подписчиков о состоянии своих опубликованных признаков, наблюдает за состоянием подписанных признаков и отражает все эти состояния в своей копии схемы без потери функциональности.

Вне подписок

Если ресурс отписывается от признака, он сохраняет копию последней известной версии признака. Он больше не принимает запросы уведомить от издателя для этого признака, но все еще может отправить запрос на обновление для этого издателя.

Даже ресурсы, которые никогда не были подписаны на издателя признаков, могут отправлять им запросы. Например, ресурсу может не потребоваться информация о состоянии признака, но может потребоваться отправить запросы на обновление чтобы изменить состояние этого признака в ответ на внешнее событие.

резюмировать

Что вы узнали:

  • Weave Data Management (WDM) - это профиль Weave для управления характеристиками в реальном времени, который обеспечивает жизнеспособность и целостность данных для всех ресурсов.
  • Запросы - это стандартные запросы на действие признака с ожидаемым ответом.
  • WDM имеет две роли протокола:
    • Publisher - источник правды для определенной черты, отправляет уведомления о
    • Подписчик - наблюдает за опубликованной схемой, отправляет view , update или команду
  • WDM имеет две модели подписки:
    • В одну сторону - поток запросов от подписчика к издателю
    • Взаимное - устройства подписываются друг на друга
  • Подписки устанавливаются по запросам подписки
  • Ресурсы могут отправлять сообщения WDM на признаки, даже если они не подписаны на них

Для получения более подробной информации см .: