
Weave работает на каждом узле в домашней сети (HAN), на каждом мобильном устройстве, которое помогает с сопряжением или управляет узлом, а также на службе, которая обеспечивает синхронизацию узлов и мобильных устройств. В системе Weave эти элементы — узел, устройство, служба — называются ресурсами
.Weave может предоставить источник достоверных данных для каждого ресурса, а также средства для безопасной связи между ними.
Есть четыре основных компонента Weave. Полезно понять каждый из них на высоком уровне, прежде чем исследовать, как они взаимодействуют друг с другом и распределяются по уровням в системе.
Схема

Схема
— это модель данных для платформы Weave.Схема определяет три элемента:
- Структура признаков Единица основных возможностей, например состояние свойства, уведомление о состоянии или запрос на изменение состояния.
- Интерфейсы Группа свойств, представляющих определенную функцию, например, свойства и события, из которых состоит засов.
- Ресурсы Логический или физический объект, состоящий из характеристик и интерфейсов, например устройство Nest, структура или пользователь.
Думайте о схеме как о базе данных, распределенной по нескольким ресурсам, где «главная» копия каждого признака (источника правды) не находится полностью в одном ресурсе, а распределена по ресурсам на основе признака за признаком. Главный ресурс для признака служит издателем признака, в то время как другие ресурсы являются подписчиками этого признака.
Например, у вас может быть простая схема, содержащая два свойства, общие для трех ресурсов. Ресурс 1 может быть издателем черты A, а ресурс 3 может быть издателем черты B. Остальные ресурсы являются подписчиками этих характеристик:

Кроме того, в зависимости от потребностей системы в качестве издателя одного и того же признака может выступать несколько ресурсов.
Обслуживание
Сервис в Weave часто называют ресурсом, когда с точки зрения схемы он может представлять собой несколько ресурсов. Другими словами — все остальные ресурсы в системе Weave.
Например, датчику может потребоваться опубликовать и подписаться только на признаки, которые имеют отношение к его функциональности, некоторые из которых могут использоваться совместно с другими ресурсами, такими как концентратор или узел. Эти ресурсы могут иметь другие признаки, на которые датчик не подписан. Однако служба может подписаться на все эти характеристики или опубликовать их.
Профили

Функциональность Weave сгруппирована в логические конструкции, называемые OpenWeave доступно около двадцати профилей .
профилей . Каждый профиль соответствует определенному набору функций Weave, который включает такие элементы, как протоколы, типы сообщений и коды ошибок. ВНапример, профиль
управления данными обеспечивает управление признаками в режиме реального времени в шаблоне обмена сообщениями «публикация-подписка». Он может обновлять состояние признака занятости в домашнем ресурсе на основе ввода из другого ресурса (возможно, изменение состояния с «дома» на «в гостях», потому что ваше мобильное устройство обнаруживает, что вас нет дома).Еще один профиль — Echo
. Этот профиль аналогичен сетевому эхо-запросу и используется для проверки подключения к сети, задержки, безопасности и живучести.Еще один профиль — Network Provisioning
. Этот профиль включает функции для сканирования беспроводных сетей и настройки их учетных данных для предоставления ресурса в этой сети.Обмен сообщениями

Для выполнения функций профилей ресурсы в HAN должны иметь возможность обмениваться сообщениями друг с другом. Weave имеет уровень сообщений
, который обрабатывает все сообщения между ресурсами в системе.Существует два типа сообщений:
- Общее сообщение Инкапсулирует общее содержание Weave.
- Туннельное сообщение Инкапсулирует IP-пакет
Каждый профиль имеет собственный набор типов сообщений, которые он использует для передачи своей функциональности. Например, профиль управления данными может отправить общее сообщение запроса на обновление , чтобы изменить состояние признака. Эхо-профиль может отправлять общее сообщение эхо-запроса ресурсу, который в ответ отправляет сообщение эхо -ответа.
Ткань

Для передачи всех этих сообщений между ресурсами должна быть подготовлена
ткани Weave. Fabric — это набор ресурсов с поддержкой Weave, которые взаимодействуют для предоставления услуг другим ресурсам и службам.Все ресурсы в фабрике говорят на общем языке Weave, независимо от базового соединения или типа сети. Каждому узлу в структуре назначается дополнительный адрес IPv6 для безопасного использования приложением Weave.
Weave использует базовую транспортную технологию (например, Wi-Fi или Thread) для отправки сообщений между IPv6-адресами структуры.
Резюме
Что вы узнали:
- В системе Weave узлы, устройства и служба называются ресурсами
- Weave обеспечивает источник достоверных данных и безопасную связь для каждого ресурса в системе Weave.
- Плетение состоит из четырех основных компонентов:
- Схема Модель данных и API
- профилей Протоколы приложений, управляющие набором функций
- Обмен сообщениями Обрабатывает все сообщения между ресурсами.
- ткани Коллекция ресурсов с поддержкой Weave.