stringtranslate.com

Descripción de la cosa

La descripción de cosa (TD) (o descripción de cosa W3C WoT (TD) ) es un modelo de información abierto y libre de regalías con un formato de representación basado en JSON para la Internet de las cosas (IoT). Una TD proporciona una forma unificada de describir las capacidades de un dispositivo o servicio de IoT con su modelo de datos y funciones ofrecidos, uso de protocolo y otros metadatos. El uso de descripciones de cosas ayuda a reducir la complejidad de la integración de dispositivos de IoT y sus capacidades en aplicaciones de IoT. [1]

La TD se originó a partir de la iniciativa Web of Things (WoT) de la organización de estándares internacionales del W3C que tiene la intención de aumentar la interoperabilidad en el IoT. [2] Desde abril de 2020, la Descripción de cosa [3] es una recomendación del W3C (W3C WoT Thing Description 1.0).

En diciembre de 2023, el W3C publicó la versión 1.1 de la recomendación de descripción de cosas. [4]

Principios

El principio principal de la descripción de cosa es proporcionar una descripción de interfaz legible para humanos e interpretable por máquina de un dispositivo/cosa de IoT. En ese contexto, la descripción de cosa de WoT es para IoT lo que index.html es para un sitio web: puede considerarse como el punto de entrada de una cosa/dispositivo físico o virtual . [5] La descripción de cosa no se limita a un protocolo de comunicación específico, sino que proporciona un marco llamado plantilla de enlace de WoT. [6] Dicho enlace de protocolo define el mapeo de una capacidad de interacción a mensajes concretos de un protocolo de IoT específico como MQTT , HTTP , CoAP , Modbus u OPC UA .

La descripción de WoT Thing define 3 tipos de posibilidades de interacción, denominadas Propiedad, Acción y Evento:

Propiedad

Una capacidad de interacción que expone el estado de un dispositivo IoT. Este estado se puede recuperar (leer) y, opcionalmente, actualizar (escribir). Los dispositivos también pueden optar por hacer que las propiedades sean observables al enviar el nuevo estado después de un cambio.

Acción

Una capacidad de interacción que permite invocar una función de un dispositivo IoT, que manipula el estado (por ejemplo, encender o apagar una lámpara) o activa un proceso en el dispositivo (por ejemplo, atenuar una lámpara con el tiempo).

Evento

Una capacidad de interacción que describe una fuente de evento, que envía de forma asincrónica datos de evento a los suscriptores del evento (por ejemplo, alertas de sobrecalentamiento).

Componentes y tecnologías estándar

Componentes de descripción de cosas de WoT: Marco de extensión de contexto, Marco de seguridad, Definiciones de relación de cosas, Modelo de interacción de WoT (que contiene propiedades, acciones y eventos), Modelo de datos, Plantillas de enlace.
Figura 1. Componentes de descripción de cosa de WoT.

En general, la descripción de la cosa está diseñada para reutilizarse y confiar en los estándares establecidos de Internet y la Web, esto incluye:

Ejemplos de descripciones de cosas

Ejemplo de un objeto de descripción de cosa.

A continuación se muestra un ejemplo de TD serializado en formato JSON-LD, que tiene una propiedad, una acción y un evento. El dispositivo IoT representado por este TD utiliza el protocolo HTTP, pero un TD puede representar cualquier protocolo con un esquema URI , como se muestra en el siguiente ejemplo.

{ "@contexto" : "https://www.w3.org/2019/wot/td/v1" ,  "id" : "urn:dev:ops:32473-WoTLamp-1234" ,  "título" : "MiLámpara" ,  "definicionesdeseguridad" : {  "basic_sc" : { "esquema" : "básico" , "en" : "encabezado" }    }, "seguridad" : [ "basic_sc" ],  "propiedades" : {  "estado" : {   "tipo" : "cadena" ,  "formas" : [{  "href" : "https://milampara.ejemplo.com/estado" ,  "htv:nombreMétodo" : "OBTENER" }] } }, "acciones" : {  "alternar" : {   "formas" : [{  "href" : "https://milampara.ejemplo.com/toggle" ,  "htv:nombreMétodo" : "POST" }] } }, "eventos" :{ "sobrecalentamiento" :{ "datos" : { "tipo" : "cadena" },   "formas" : [{  "href" : "https://milampara.ejemplo.com/oh" ,  "htv:nombreMétodo" : "OBTENER" , "subprotocolo" : "longpoll"  }] } }}

Este TD representa una lámpara conectada a Internet, que podría considerarse una versión simple de una lámpara Philips Hue .

A partir de este ejemplo de TD, un cliente sabe que existe una propiedad con el estado del título (líneas 10-16). Además, se proporciona información en las líneas 13-14 de que esta propiedad se puede leer con una solicitud HTTP GET a la URI https://mylamp.example.com/status y devolverá un valor de estado basado en cadena. De manera similar, se especifica una propiedad Action para alternar el estado del interruptor utilizando el método POST en el https://mylamp.example.com/togglerecurso. La propiedad Event permite un mecanismo para que un objeto envíe mensajes asincrónicos. Aquí, se puede obtener una suscripción para recibir una notificación sobre un posible evento de sobrecalentamiento de la lámpara utilizando HTTP con su subprotocolo de sondeo largo en https://mylamp.example.com/oh. El uso del método GET o POST se indica explícitamente, pero se puede omitir utilizando las suposiciones predeterminadas establecidas en la especificación de TD. Se puede ver que los métodos HTTP se definen utilizando los "htv:methodName"términos del vocabulario. Estos términos del vocabulario para HTTP se incluyen en el vocabulario de TD que se encuentra en el "@context"valor.

Este ejemplo también especifica el basicesquema de seguridad, que requiere un nombre de usuario y una contraseña para acceder. A un esquema de seguridad se le asigna primero un nombre y su esquema correspondiente en el securityDefinitionsy luego se activa especificando ese nombre en una securitysección. En combinación con el uso de HTTP, este ejemplo demuestra el uso de la autenticación de acceso básica .

A continuación se muestra la misma lámpara conectada pero utilizando el protocolo MQTT y sin seguridad.

{ "@contexto" : [  "https://www.w3.org/2019/wot/td/v1" , { "mqv" : "http://www.example.org/mqtt-binding#" }  ], "id" : "urn:dev:ops:32473-WoTLamp-1234" ,  "título" : "MiLámpara" ,  "definicionesdeseguridad" : {  "nosec_sc" : { "esquema" : "nosec" }   }, "seguridad" : [ "nosec_sc" ],  "propiedades" : {  "estado" : {   "tipo" : "cadena" ,  "formas" : [{  "href" : "mqtt://milampara.ejemplo.com/estado" ,  "mqv:controlPacketValue" : "SUSCRÍBETE"  }] } }, "acciones" : {  "alternar" : {   "formas" : [{  "href" : "mqtt://milampara.ejemplo.com/toggle" ,  "mqv:controlPacketValue" : "PUBLICAR"  }] } }, "eventos" :{ "sobrecalentamiento" :{ "datos" : { "tipo" : "cadena" },   "formas" : [{  "href" : "mqtt://milampara.ejemplo.com/oh" ,  "mqv:controlPacketValue" : "SUSCRÍBETE"  }] } }}

A diferencia del último TD, aquí los formularios incluyen el protocolo MQTT tal como se especifica en las plantillas de enlace de WoT. Más específicamente, las líneas 17, 25 y 34 describen qué tipos de mensajes se deben usar para usar las posibilidades. Por ejemplo, en lugar de HTTP GET y el subprotocolo longpoll para observar el evento de sobrecalentamiento, un cliente puede suscribirse a este evento utilizando el protocolo MQTT. Además, un dispositivo WoT con protocolo MQTT puede ser tanto un publicador como un suscriptor. Para las posibilidades de propiedad y evento, publicaría los valores, mientras que para las posibilidades de acción se suscribiría a los temas de acción que otros publicadores MQTT pueden activar al publicar en estos temas.

Implementaciones

Herramientas de edición y validación de descripciones de cosas

Implementaciones que utilizan Thing Description

Véase también

Referencias

  1. ^ "Web de las cosas sobre IoT y sus aplicaciones". InfoQ . Consultado el 3 de diciembre de 2020 .
  2. ^ "Solución para la interoperabilidad de IoT: W3C Web of Things". DATAVERSITY - Educación sobre datos para profesionales de TI y empresas . 13 de abril de 2020. Consultado el 13 de abril de 2020 .
  3. ^ Käbisch, Sebastian; Kamiya, Takuki; McCool, Michael; Charpenay, Victor; Kovatsch, Matthias (9 de abril de 2020). «Descripción de objetos de la Web de las cosas (WoT)». www.w3.org . Archivado desde el original el 24 de octubre de 2021 . Consultado el 17 de abril de 2020 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  4. ^ Käbisch, Sebastian; McCool, Michael; Korkan, Ege (5 de diciembre de 2023). «Descripción de objetos de la Web de las cosas (WoT) 1.1». www.w3.org . Archivado desde el original el 7 de diciembre de 2023 . Consultado el 19 de enero de 2023 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  5. ^ "Solución para la interoperabilidad de IoT - W3C Web of Things (WoT)". W3C . Prensa W3C. 9 de abril de 2020 . Consultado el 22 de diciembre de 2020 .
  6. ^ Koster, Michael; Korkan, Ege (30 de enero de 2019). «Plantillas de enlace de la Web de las cosas (WoT)». www.w3.org . Archivado desde el original el 14 de abril de 2020 . Consultado el 17 de abril de 2020 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  7. ^ Kellogg, Gregg; Champin, Pierre-Antoine; Longley, Dave (16 de julio de 2020). "Sintaxis JSON-LD 1.1".
  8. ^ Serena, Fernando; Poveda-Villalón, María; García-Castro, Raúl (22 de febrero de 2018). Descubrimiento semántico en la red de las cosas. Cham, Suiza: Springer. doi :10.1007/978-3-319-74433-9_2. ISBN 978-3-319-74433-9.
  9. ^ Ed., R. Shekh-Yusef; Ahrens, D.; Bremer, S. (2015). Shekh-Yusef, R. (ed.). "Autenticación de acceso HTTP Digest". IETF. doi :10.17487/RFC7616. S2CID  11159319 . Consultado el 1 de septiembre de 2020 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  10. ^ Nottingham, M. (septiembre de 2017). "Enlaces web". IETF. doi :10.17487/RFC8288. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  11. ^ Wright, Austin; Andrews, Henry; Luff, Geraint. "Validación de esquemas JSON: un vocabulario para la validación estructural de JSON". IETF Datatracker . IETF.
  12. ^ Berners-Lee, T.; Fielding, R.; Masinter, L. (2005). "Identificador uniforme de recursos (URI): sintaxis genérica". IETF. doi :10.17487/RFC3986. S2CID  30973664. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  13. ^ Freed, N.; Borenstein, N. (1996). "Extensiones multipropósito de correo de Internet (MIME) Parte dos: tipos de medios". IETF. doi : 10.17487/RFC2046 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  14. ^ Proyecto de edición de Eclipse, Eclipse Foundation, 4 de diciembre de 2020
  15. ^ Descripción de la cosa Patio de juegos, 14 de noviembre de 2020
  16. ^ thingweb.node-wot. Implementación de la Web de las cosas del W3C en NodeJS., Eclipse Foundation, 2019-11-14 , consultado el 2019-11-17
  17. ^ Korkan, Ege; Hassine, Hassib Belhaj; Schlott, Verena Eileen; Käbisch, Sebastián; Steinhorst, Sebastián (7 de septiembre de 2019). "WoTify: una plataforma para llevar la Web de las cosas a tus dispositivos". arXiv : 1909.03296 [cs.DC].
  18. ^ Mangas, Andrés García (8 de enero de 2020), Implementación experimental de un entorno de ejecución de la Web de las cosas del W3C: agmangas/wot-py , consultado el 15 de enero de 2020
  19. ^ Toumura, Kunihiko (21 de mayo de 2019), GitHub - k-toumura/node-red-nodegen , consultado el 15 de enero de 2020
  20. ^ "Implementación de Java para la Web de las cosas veröffentlicht". ciudad.cuerda . Consultado el 28 de enero de 2020 .