Веб вещей
Веб вещей (англ. Web of Things, WoT) — это совокупность стандартов, разрабатываемых World Wide Web Consortium (W3C) для обеспечения совместимости различных платформ и прикладных областей интернета вещей[1].
Основные компоненты
Описание вещи (Thing Description, TD)
Ключевым компонентом является описание вещи (англ. Thing Description, TD). Thing Description определяет виртуальное или физическое устройство (вещь) и задаёт информационную модель на основе семантического словаря с сериализацией в формате JSON. Thing Description можно рассматривать как основной входной интерфейс к вещи, аналогичный странице JSON для веб-сайта. Описания вещей поддерживают людей и машины за счёт предоставления структурированного описания в JSON: таких как название, идентификатор, описание и прочие метаданные. Кроме того, описания вещей перечисляют все доступные действия, события и свойства, а также механизмы безопасности для доступа к ним. Описания вещей запроектированы гибко для обеспечения интероперабельности и, помимо стандартной функциональности, включают механизм расширения возможностей через Context Extension Framework[2].
Шаблоны привязки (Binding Templates)
В области интернета вещей используется множество различных протоколов для взаимодействия с вещами, так как не существует универсального протокола[3]. Одна из главных задач WoT — управление этим разнообразием протоколов и механизмов взаимодействия. Для решения этой задачи используются шаблоны привязки (англ. Binding Templates): они представляют собой набор метаданных, поддерживающий различные IoT-решения. Один шаблон привязки создаётся один раз и затем может использоваться повторно в описаниях любых вещей[2].
Scripting API
Scripting API (программный интерфейс сценариев WoT) — необязательный компонент WoT, упрощающий разработку приложений для интернета вещей за счёт предоставления API, совместимого с ECMAScript, по аналогии с API браузера для веб-приложений. Предоставляя универсальную среду выполнения, Scripting API решает проблему неоднородности IoT-систем и позволяет создавать сценарии, которые реализуют логику устройств, повышая переносимость модулей приложений[2].
Референсная реализация Scripting API — открытый проект node-wot, созданный в рамках инициативы Eclipse Thingweb[4].
Руководство по безопасности и приватности
Безопасность в архитектуре WoT охватывает все аспекты системы. Для каждого компонента WoT спецификация предусматривает рекомендации, касающиеся безопасности и приватности. Среди инструментов безопасности — открытые метаданные в Thing Description и принцип разделения обязанностей при проектировании Scripting API. Также существует отдельная спецификация WoT Security and Privacy Guidelines, охватывающая широкий круг вопросов безопасности и приватности[2]
История
Идея подключения объектов к Всемирной паутине появилась примерно в 2000 году. В 2002 году в рецензируемой публикации был представлен проект Cooltown,[5]. где рассматривалось использование URL для адресации и HTTP для взаимодействия с физическими объектами (такими как публичные экраны или принтеры).
Вслед за этими работами растущий интерес к интернету вещей поднял вопрос о прикладном уровне IoT[6][3]. Тогда как большая часть исследований в этой области была сосредоточена на сетевых протоколах, возникла необходимость конвергенции данных с устройств IoT на уровне веб-приложений. Исследователи и практики начали рассматривать IoT как платформу для создания новых сценариев использования за счёт потребления данных с устройств веб-приложениями.
К 2007 году идея веба как прикладного уровня IoT оформилась в самостоятельное направление. Над подобными концепциями параллельно работали несколько исследовательских групп, в частности, Доминик Гинард (Dominique Guinard) и Влад Трифа (Vlad Trifa) организовали онлайн-сообщество Web of Things и опубликовали первый манифест WoT, призывающий применять веб-стандарты (англ. REST, лёгкие семантические модели и др.) для построения прикладного уровня IoT. Манифест вышел вместе с реализацией на платформе Sun SPOT. В то же время Дэйв Раггетт (Dave Raggett) из W3C начал продвигать концепцию Web of Things на мероприятиях по IoT. Эрик Вильде опубликовал концептуальную статью Putting Things to REST о применении REST для сенсоров и управления физическими объектами[7]. Одно из ранних упоминаний термина Web of Things встречается в работе Влада Стирбу и соавторов[8].
С 2007 года Трифа, Гинард, Вильде и другие пытались публиковать идеи на рецензируемых конференциях, но их работы часто отклонялись экспертами сообщества беспроводных сенсорных сетей, считавшими интернет- и веб-протоколы избыточными и недостаточно эффективными для реальных устройств[9]. Приоритет отдавался оптимизации памяти, полосы передачи и других ресурсов устройств.
Тем не менее некоторые специалисты из сообщества уже воспринимали эти предложения серьёзно. В 2009 году ряд известных учёных, таких как Дэвид Каллер (David Culler), Джонатан Хуи, Адам Данкелс (Adam Dunkels) и Язар Доган, доказали применимость интернет- и веб-протоколов для маломощных сенсорных узлов[10].[11]
После этого Гинард и Трифа реализовали свои концепции «от конца до конца» и опубликовали работу на Международной конференции по WWW в 2009 году[12]. В 2010 году они совместно с Вильде предложили RESTful-архитектуру для вещей[13]. В том же году они единолично организовали первую международную мастерскую по вебу вещей (International Workshop on the Web of Things)[14], которая впоследствии стала ежегодной и оформила вокруг себя отдельное профессиональное сообщество.
В 2011 году в ETH Zurich были защищены первые диссертации по теме Web of Things: Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks (Влад Трифа)[15] и A Web of Things Application Architecture — Integrating the Real-World into the Web (Доминик Гинард)[16]. На основе этих разработок Симон Майер в своей диссертации особо выделил роль единого интерфейса REST и принципа HATEOAS[17].
В 2014 году интерес к концепции WoT проявил W3C, проведя мастерскую W3C Workshop on the Web of Things (лидер — Дэйв Раггетт, участие компаний Siemens и COMPOSE). Результатом стало создание Interest Group Web of Things при W3C[18] и публикация модели Web Thing Model[19].
В том же 2014 году Siemens объявила о создании исследовательской группы по вебу вещей[20]. В октябре 2014 года Google также проявила интерес к этой концепции через запуск проекта Physical Web на платформе GitHub[21].
В феврале 2017 года Interest Group Web of Things сформулировала необходимый набор стандартов для WoT[22]. Рабочая группа W3C начала работу над четырьмя основными спецификациями: архитектурой WoT[23], описанием вещи WoT Thing Description[24], Scripting API WoT[25] и шаблонами привязки WoT Binding Templates[26].
Примечания
Литература
- Guinard, Dominique. Building the Web of Things / Dominique Guinard, Trifa Vlad. — Manning, 2015. — ISBN 9781617292682.
- Proceedings of International Workshops on the Web of Things.
- Guinard, Dominique; Vlad Trifa; Erik Wilde (2010). “A Resource Oriented Architecture for the Web of Things”. Proc. of IoT 2010 (IEEE International Conference on the Internet of Things). Токио, Япония.
- Guinard, Dominique (2011). A Web of Things Application Architecture – Integrating the Real-World into the Web (PDF) (Ph.D.). ETH Zurich.
- Trifa, Vlad (2011). Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks (PDF) (Ph.D.). ETH Zurich.
- Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. — University of California, Irvine, 2000.
- Richardson, Leonard. RESTful Web Services / Leonard Richardson, Sam Ruby. — O'Reilly, 2007. — ISBN 978-0-596-52926-0.
- Fortuna, Carolina; Grobelnik, Marko (9 марта 2011). Tutorial: The Web of Things. Proceedings of the World Wide Web Conference 2011, Хайдарабад, Индия. Association for Computing Machinery.