Jump to content

Описание вещи

Описание вещи
Описание вещи
Логотип последней версии, Описание вещи
Расширение имени файла
.jsontd, .td.json, .td.jsonld
Тип интернет-СМИ
приложение/td+json
Разработано W3C
Первоначальный выпуск 9 апреля 2020 г.
Тип формата JSON-LD
Стандартный W3C Сеть вещей
Открытый формат ? Да
Веб-сайт https://www.w3.org/TR/wot-thing-description/

Описание вещи (TD) (или W3C описание вещи WoT (TD) ) — это бесплатная модель открытой информации с форматом представления на основе JSON для Интернета вещей (IoT). TD обеспечивает унифицированный способ описания возможностей устройства или службы Интернета вещей с помощью предлагаемой модели данных и функций, использования протокола и дополнительных метаданных. Использование описаний вещей помогает упростить интеграцию устройств Интернета вещей и их возможностей в приложения Интернета вещей. [1]

TD возник в результате инициативы Web of Things (WoT) международной организации по стандартизации W3C , целью которой является повышение функциональной совместимости в IoT. [2] С апреля 2020 года Описание вещи [3] — это рекомендация W3C (W3C WoT Thing Description 1.0).

В декабре 2023 года W3C опубликовал версию 1.1 рекомендации по описанию вещи. [4]

Принципы

[ редактировать ]

Основным принципом описания вещи является предоставление удобочитаемого и машинно-интерпретируемого описания интерфейса устройства/вещи Интернета вещей. В этом контексте описание вещи WoT для Интернета вещей является тем же, чем index.html для веб-сайта: его можно рассматривать как точку входа в физическую или виртуальную вещь/устройство . [5] Описание вещи не ограничивается конкретным протоколом связи, а скорее предоставляет структуру, называемую шаблоном привязки WoT. [6] Такая привязка протокола определяет отображение возможностей взаимодействия с конкретными сообщениями определенного протокола IoT, такого как MQTT , HTTP , CoAP , Modbus или OPC UA .

Описание вещи WoT определяет 3 вида возможностей взаимодействия: свойство, действие и событие:

Свойство

[ редактировать ]

Возможность взаимодействия, которая раскрывает состояние устройства IoT. Это состояние затем можно получить (прочитать) и при необходимости обновить (записать). Устройства также могут сделать свойства видимыми, передав новое состояние после изменения.

Действие

[ редактировать ]

Возможность взаимодействия, которая позволяет вызывать функцию устройства IoT, которая управляет состоянием (например, включает или выключает лампу) или запускает процесс на устройстве (например, затемняет лампу с течением времени).

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

Компоненты и стандартные технологии

[ редактировать ]
Компоненты описания вещей WoT: платформа расширения контекста, структура безопасности, определения отношений вещей, модель взаимодействия WoT (содержащая свойства, действия и события), модель данных, шаблоны привязки.
Рисунок 1. Компоненты описания вещи WoT.

В целом, описание вещи предназначено для повторного использования и опирается на установленные стандарты Интернета и Интернета, включая:

  • Сериализация. Сериализация JSON информационной модели TD соответствует синтаксису JSON-LD 1.1. [7] JSON-LD открывает возможность расширения контекста и обогащает экземпляры описания вещи дополнительной (например, специфичной для предметной области) семантикой, например, из Schema.org . Это также поддерживает извлечение и понимание соответствующей информации, например, в сценариях обнаружения в приложениях Интернета вещей. [8]
  • Безопасность: Описание вещи поставляется с платформой, которая позволяет предоставлять метаданные в соответствии с существующей схемой безопасности, такой как OAuth2 или аутентификация дайджест-доступа. [9] Благодаря концепции расширения контекста описания вещи можно импортировать определенные схемы безопасности.
  • Ссылки: Вещи могут иметь ссылки на другие Вещи или содержать ссылки на дополнительную информацию. Для определения такого рода отношений описание вещи опирается на хорошо известные веб-ссылки. [10] концепция.
  • Взаимодействия: предлагаемые данные и/или функции вещи назначаются соответствующим свойствам, действиям и событиям возможности взаимодействия.
  • Схема данных: для моделирования данных вещи, которыми можно обмениваться, используется концепция схемы JSON. [11] встроен в описание вещи.
  • Привязки: шаблоны привязок определяют конкретный протокол и метод сериализации для свойств, действий и событий вещи. В качестве идентификации протокола и метода адресации Идентификатор URI [12] используются. Для объявления кодировки сериализации (например, JSON , CBOR , XML , Efficient XML Interchange ) полезной нагрузки, указанной схемой данных, тип носителя [13] присвоение применяется в описании вещи.

Примеры описания вещей

[ редактировать ]
Пример объекта описания вещи.

Ниже приведен пример TD, сериализованный в формате JSON-LD, который имеет одно свойство, одно действие и одно событие. Устройство IoT, представленное этим TD, использует протокол HTTP, но TD может представлять любой протокол со схемой URI , как показано в примере ниже.

{
    "@context": "https://www.w3.org/2019/wot/td/v1",
    "id": "urn:dev:ops:32473-WoTLamp-1234",
    "title": "MyLampThing",
    "securityDefinitions": {
        "basic_sc": {"scheme": "basic", "in":"header"}
    },
    "security": ["basic_sc"],
    "properties": {
        "status" : {
            "type": "string",
            "forms": [{
                "href": "https://mylamp.example.com/status",
                "htv:methodName":"GET"
            }]
        }
    },
    "actions": {
        "toggle" : {
            "forms": [{
                "href": "https://mylamp.example.com/toggle",
                "htv:methodName":"POST"
            }]
        }
    },
    "events":{
        "overheating":{
            "data": {"type": "string"},
            "forms": [{
                "href": "https://mylamp.example.com/oh",
                "htv:methodName":"GET",
                "subprotocol": "longpoll"
            }]
        }
    }
}

Этот TD представляет собой лампу, подключенную к Интернету, которую можно рассматривать как простую версию лампы Philips Hue .

Из этого примера TD клиент знает, что существует одна доступность недвижимости со статусом права собственности (строки 10–16). Кроме того, в строках 13–14 представлена ​​информация о том, что это свойство можно прочитать с помощью HTTP-запроса GET к URI. https://mylamp.example.com/statusи вернет строковое значение статуса. Аналогичным образом указывается доступность действия для переключения состояния переключателя с помощью метода POST на https://mylamp.example.com/toggle ресурс. Доступность событий включает механизм отправки асинхронных сообщений вещью. Здесь подписку на уведомление о возможном перегреве лампы можно получить, используя HTTP с его длинным подпротоколом опроса на https://mylamp.example.com/oh. Использование метода GET или POST указано явно, но его можно опустить, используя допущения по умолчанию, указанные в спецификации TD. Видно, что методы HTTP определяются с использованием "htv:methodName" словарные термины. Эти словарные термины для HTTP включены в словарь TD, который можно найти в "@context" ценить.

В этом примере также указывается basic схема безопасности, требующая имени пользователя и пароля для доступа. Схеме безопасности сначала присваивается имя и соответствующая ей схема в файле. securityDefinitions а затем активируется путем указания этого имени в security раздел. В сочетании с использованием HTTP этот пример демонстрирует использование базовой аутентификации доступа .

Ниже представлена ​​та же подключенная лампа, но с использованием протокола MQTT и без защиты.

{
    "@context": [
        "https://www.w3.org/2019/wot/td/v1",
        {"mqv": "http://www.example.org/mqtt-binding#"}
    ],
    "id": "urn:dev:ops:32473-WoTLamp-1234",
    "title": "MyLampThing",
    "securityDefinitions": {
        "nosec_sc": {"scheme": "nosec"}
    },
    "security": ["nosec_sc"],
    "properties": {
        "status" : {
            "type": "string",
            "forms": [{
                "href": "mqtt://mylamp.example.com/status",
                "mqv:controlPacketValue": "SUBSCRIBE"
            }]
        }
    },
    "actions": {
        "toggle" : {
            "forms": [{
                "href": "mqtt://mylamp.example.com/toggle",
                "mqv:controlPacketValue": "PUBLISH"
            }]
        }
    },
    "events":{
        "overheating":{
            "data": {"type": "string"},
            "forms": [{
                "href": "mqtt://mylamp.example.com/oh",
                "mqv:controlPacketValue": "SUBSCRIBE"
            }]
        }
    }
}

В отличие от последнего TD, здесь формы включают протокол MQTT, указанный в шаблонах привязки WoT. Более конкретно, строки 17, 25 и 34 описывают, какие типы сообщений следует использовать для использования возможностей. Например, вместо подпротокола HTTP GET и longpoll для наблюдения за событием перегрева клиент может подписаться на это событие с помощью протокола MQTT. Более того, устройство WoT с протоколом MQTT может быть как издателем, так и подписчиком. Для возможностей свойств и событий он будет публиковать значения, тогда как для возможностей действий он будет подписываться на темы действий, которые другие издатели MQTT могут инициировать, публикуя в этих темах.

Реализации

[ редактировать ]

Инструменты редактирования и проверки описания вещи

  • Eclipse edi{TD}или: [14] Инструмент для простого проектирования описаний вещей и моделей вещей W3C.
  • Детская площадка ТД: [15] Площадка для проверки экземпляров описания вещи

Реализации с использованием описания вещи

  • Узел Eclipse: [16] Реализация технологий W3C WoT в Node.js
  • ВоТифай: [17] Библиотека реализации WoT, поддерживающая описание вещи.
  • вот-пы: [18] Реализация технологий W3C WoT на Python
  • Node-RED узел-генер: [19] Генерирует узлы на основе описания вещи в Node-RED.
  • РАЗУМНЫЙ: [20] Реализация технологий W3C WoT на Java

См. также

[ редактировать ]
  1. ^ «Сеть вещей через Интернет вещей и ее приложения» . ИнфоQ . Проверено 3 декабря 2020 г.
  2. ^ «Решение для совместимости Интернета вещей – W3C Web of Things» . DATAVERSITY — Обучение работе с данными для бизнес- и ИТ-специалистов . 13 апреля 2020 г. Проверено 13 апреля 2020 г.
  3. ^ Кэбиш, Себастьян; Камия, Такуки; МакКул, Майкл; Шарпене, Виктор; Ковач, Матиас (09 апреля 2020 г.). «Описание вещи в Сети вещей (WoT)» . www.w3.org . Архивировано из оригинала 24 октября 2021 г. Проверено 17 апреля 2020 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  4. ^ Кэбиш, Себастьян; МакКул, Майкл; Коркан, Эге (05 декабря 2023 г.). «Описание вещи Web of Things (WoT) 1.1» . www.w3.org . Архивировано из оригинала 07 декабря 2023 г. Проверено 19 января 2023 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  5. ^ «Решение для совместимости Интернета вещей — W3C Web of Things (WoT)» . W3C . W3C Пресс. 9 апреля 2020 г. Проверено 22 декабря 2020 г.
  6. ^ Костер, Майкл; Коркан, Эге (30 января 2019 г.). «Шаблоны привязки Web of Things (WoT)» . www.w3.org . Архивировано из оригинала 14 апреля 2020 г. Проверено 17 апреля 2020 г. {{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  7. ^ Келлог, Грегг; Шампен, Пьер-Антуан; Лонгли, Дэйв (16 июля 2020 г.). «Синтаксис JSON-LD 1.1» .
  8. ^ Серена, Фернандо; Поведа-Вильялон, Мария; Гарсиа-Кастро, Рауль (22 февраля 2018 г.). Семантическое открытие в сети вещей . Чам, Швейцария: Springer. дои : 10.1007/978-3-319-74433-9_2 . ISBN  978-3-319-74433-9 .
  9. ^ Ред., Р. Шех-Юсеф; Аренс, Д.; Бремер, С. (2015). Шех-Юсеф Р. (ред.). «Аутентификация дайджест-доступа HTTP» . IETF. дои : 10.17487/RFC7616 . S2CID   11159319 . Проверено 1 сентября 2020 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  10. ^ Ноттингем, М. (сентябрь 2017 г.). «Веб-ссылки» . IETF. дои : 10.17487/RFC8288 . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  11. ^ Райт, Остин; Эндрюс, Генри; Лафф, Герайнт. «Проверка схемы JSON: словарь структурной проверки JSON» . Ietf Datatracker . IETF.
  12. ^ Бернерс-Ли, Т.; Филдинг, Р.; Масинтер, Л. (2005). «Единый идентификатор ресурса (URI): общий синтаксис» . IETF. дои : 10.17487/RFC3986 . S2CID   30973664 . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  13. ^ Фрид, Н.; Боренштейн, Н. (1996). «Многоцелевые расширения почты Интернета (MIME), часть вторая: типы носителей» . IETF. дои : 10.17487/RFC2046 . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  14. ^ Редакция Eclipse{TD}или проект , Eclipse Foundation, 04 декабря 2020 г.
  15. ^ Описание вещи Детская площадка , 14.11.2020
  16. ^ thingweb.node-wot. Реализация W3C Web of Things на NodeJS. , Eclipse Foundation, 14 ноября 2019 г. , получено 17 ноября 2019 г.
  17. ^ Коркан, Эге; Хассин, Хассиб Белхадж; Шлотт, Верена Эйлин; Кэбиш, Себастьян; Штайнхорст, Себастьян (07.09.2019). «WoTify: платформа для переноса Интернета вещей на ваши устройства». arXiv : 1909.03296 [ cs.DC ].
  18. ^ Мангас, Андрес Гарсия (08 января 2020 г.), Экспериментальная реализация среды выполнения W3C Web of Things: agmangas/wot-py , получено 15 января 2020 г.
  19. ^ Тоумура, Кунихико (21 мая 2019 г.), GitHub - k-toumura/node-red-nodegen , получено 1 января 2020 г.
  20. ^ «Выпущена Java-реализация для Интернета вещей» . вменяемый.город . Проверено 28 января 2020 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f1d62adae1d0429e9f73453c791d9c6c__1713790440
URL1:https://arc.ask3.ru/arc/aa/f1/6c/f1d62adae1d0429e9f73453c791d9c6c.html
Заголовок, (Title) документа по адресу, URL1:
Thing Description - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)