Web of Things ( WoT ) describe un conjunto de estándares del Consorcio World Wide Web (W3C) para la interoperabilidad de diferentes plataformas de Internet de las cosas y dominios de aplicación. [1]
Los cuatro bloques de construcción de WoT proporcionan una manera de implementar sistemas que se ajusten a la arquitectura de WoT .
El componente clave de los bloques de construcción de WoT es la descripción de la cosa de WoT . Una descripción de la cosa describe un dispositivo (cosa) virtual o físico. Define un modelo de información de una cosa basado en vocabulario semántico y una serialización basada en JSON . La descripción de la cosa puede considerarse como el punto de entrada principal para una cosa, como una página index.html para un sitio web. Las TD fomentan la interoperabilidad al proporcionar metadatos legibles (y comprensibles) tanto para humanos como para máquinas sobre una cosa, como un título, ID, descripciones, etc. Una descripción de la cosa también describe todas las acciones, eventos y propiedades disponibles de una cosa, así como todos los mecanismos de seguridad disponibles para acceder a ellos. Las TD son muy flexibles para garantizar la interoperabilidad. Además de la funcionalidad estándar, define un mecanismo para extender la funcionalidad (a través del Context Extension Framework). [2]
La IoT utiliza una gran variedad de protocolos para interactuar con las cosas, ya que no existe un protocolo adecuado. Uno de los principales desafíos para la Web de las cosas es manejar la variedad de protocolos y mecanismos de interacción. Este problema se aborda mediante las plantillas de enlace. Las plantillas de enlace de WoT proporcionan una colección de planos de metadatos de comunicación para respaldar varias soluciones de IoT. Una plantilla de enlace se crea solo una vez y luego se puede reutilizar en cualquier descripción de cosa. [2]
La API de secuencias de comandos de WoT es un componente opcional de la Web de las cosas. Facilita el desarrollo de aplicaciones de IoT al proporcionar una API de aplicación basada en ECMAScript de manera similar a cómo los navegadores web proporcionan una API para aplicaciones web. Al tener un sistema de ejecución de aplicaciones universal , la API de secuencias de comandos resuelve el problema de la heterogeneidad de los sistemas de IoT. También permite la creación de secuencias de comandos reutilizables para implementar la lógica del dispositivo, lo que mejora significativamente la portabilidad de los módulos de la aplicación. [2]
La implementación de referencia actual de la API de scripting de WoT es un proyecto de código abierto llamado node-wot, desarrollado por el proyecto Eclipse Thingweb. [3]
En la arquitectura de WoT, la seguridad es relevante para todos los aspectos de la arquitectura. La especificación de cada bloque de construcción de WoT contiene varias consideraciones sobre la seguridad y privacidad de ese bloque en particular. La seguridad está respaldada por ciertas características explícitas, como metadatos públicos en las descripciones de objetos y la separación de preocupaciones en el diseño de la API de secuencias de comandos. También existe una especificación llamada Pautas de seguridad y privacidad de WoT , que orienta una variedad de preocupaciones relacionadas con la seguridad y la privacidad. [2]
Se podría decir que la conexión de objetos a la Web comenzó alrededor del año 2000. En 2002, un artículo revisado por pares presentó el proyecto Cooltown. [4] Este proyecto exploró el uso de URL para direccionar e interactuar mediante HTTP con objetos físicos como pantallas públicas o impresoras.
Tras este trabajo inicial, el creciente interés en la Internet de las cosas y su implementación comenzaron a plantear algunas preguntas sobre la capa de aplicación de la IoT. [5] Si bien la mayor parte del trabajo en el ámbito de la IoT se centró en los protocolos de red, era necesario pensar en la convergencia de datos de los dispositivos de la IoT. Los investigadores y los profesionales comenzaron a visualizar la IoT como un sistema en el que las aplicaciones web podían consumir datos de varios dispositivos para crear nuevos casos de uso.
La idea de la Web como una capa de aplicación para la IoT comenzó a surgir en 2007. Varios investigadores comenzaron a trabajar en paralelo con estos conceptos. Entre ellos, Dominique Guinard y Vlad Trifa iniciaron la comunidad en línea Web of Things y publicaron el primer manifiesto WoT, que abogaba por el uso de estándares web (REST, semántica ligera, etc.) para construir la capa de aplicación de la IoT. El manifiesto se publicó junto con una implementación en la plataforma Sun SPOT. Al mismo tiempo, Dave Raggett del W3C comenzó a hablar sobre una Web of Things en varios eventos del W3C y de la IoT. Erik Wilde publicó "Putting Things to REST", un documento conceptual autoeditado que analiza el uso de REST para detectar y controlar objetos físicos. [6] Las primeras menciones de la Web of Things como término también aparecieron en un documento de Vlad Stirbu et al. [7]
A partir de 2007, Trifa, Guinard, Wilde y otros investigadores intentaron publicar sus ideas y conceptos en conferencias revisadas por pares, pero su trabajo fue rechazado por la comunidad de investigación de redes de sensores inalámbricos sobre la base de que los protocolos de Internet y la Web eran demasiado detallados y limitados en el contexto de dispositivos del mundo real, [8] prefiriendo centrarse en la optimización de la memoria y el uso de la computación, el ancho de banda inalámbrico o ciclos de trabajo muy cortos. [ cita requerida ]
Sin embargo, varios investigadores de la comunidad WSN comenzaron a considerar estas ideas más seriamente. A principios de 2009, varios investigadores respetados de WSN como David Culler, Jonathan Hui, Adam Dunkels y Yazar Dogan evaluaron el uso de protocolos de Internet y Web para nodos de sensores de bajo consumo y demostraron la viabilidad del enfoque. [9] [10]
Posteriormente, Guinard y Trifa presentaron su implementación de extremo a extremo de los conceptos y la presentaron en una publicación revisada por pares aceptada en la conferencia World Wide Web en 2009. [11] Sobre la base de esta implementación y uniendo esfuerzos, Guinard, Trifa y Wilde propusieron en 2010 una arquitectura RESTful para las cosas. [12] Guinard, Trifa y Wilde organizaron el primer Taller Internacional en 2010 sobre la Web de las Cosas [13] y ha sido un evento anual desde entonces. Estos talleres se transformaron en una creciente comunidad de investigadores y profesionales que podían discutir los últimos hallazgos e ideas sobre la Web de las Cosas [ cita requerida ] .
En 2011, se presentaron en la ETH de Zúrich dos de las primeras tesis doctorales sobre la Web de las cosas: Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks de Vlad Trifa [14] y A Web of Things Application Architecture – Integrating the Real-World into the Web de Dominique Guinard [15] . Basándose en este trabajo, Simon Mayer destacó la importancia de la interfaz uniforme de REST, y en particular el principio HATEOAS , en su tesis doctoral [16] .
En 2014, el W3C mostró un creciente interés en la Web de las Cosas y organizó el Taller del W3C sobre la Web de las Cosas [17] , bajo la dirección de Dave Raggett junto con Siemens y el proyecto europeo COMPOSE. Este taller condujo a la creación del Grupo de Interés de la Web de las Cosas en el W3C [18] y a la presentación del Modelo de la Web de las Cosas [19] .
Ese mismo año, Siemens anunció la creación de un grupo de investigación dedicado a la Web de las cosas. [20] En octubre de 2014, Google también anunció su interés en estas ideas lanzando el proyecto Physical Web GitHub. [21]
El Grupo de Interés de la Web de las Cosas identificó el conjunto de estándares necesarios para la Web de las Cosas en febrero de 2017. [22] El Grupo de Trabajo ha comenzado a trabajar en cuatro entregables llamados Arquitectura de WoT, [23] Descripción de Cosas de WoT, [24] API de Scripting de WoT, [25] y Plantillas de Enlace de WoT. [26]