Thursday, February 23, 2023 - 05:00
  • Share this article:

Work on the latest version of the Web of Things (WoT) standard, version 1.1, is currently underway. This is exciting news for anyone working with IoT applications, particularly ones that leverage digital twins.

But what is the WoT standard exactly? Why does it matter? And what’s being done with it?

Simplified IoT Development via Web Paradigm

The complexity involved in IoT and edge computing deployments is well-known, and work to connect physical objects with web resources has been taking place since the early 2000s. This work eventually culminated in the creation of the WoT Working Group at the World Wide Web Consortium (W3C) in 2016. 

WoT provides standardized building blocks for simplifying IoT application development by using the Web paradigm. It does this by establishing an interaction model with three components:

  • Properties
  • Actions
  • Events

Properties reflect the state of a physical object (thing), such as sensor values or configuration settings. Actions involve interactions with the physical world, such as unlocking a door. Events communicate specific situations, such as low fuel in a vehicle’s tank. 

In WoT, those three components get defined up into a WoT Thing Description (WoT TD). The WoT TD describes which data and functions the thing provides, which protocol is used to access them, the structure and encoding of the data, and the access control mechanisms involved. You can retrieve a thing’s TD from:

  • The device itself
  • A repository (TD Directory)
  • A third-party intermediary, such as Eclipse Ditto

The thing can also provide additional metadata in machine-readable or human-readable formats.

Though WoT is protocol-agnostic, it provides a mechanism — WoT Binding Templates — to define mapping between the WoT’s properties-action-event abstraction, and specific protocol implementations, such as CoAP, HTTP, and MQTT. Binding templates define how the consumer of a Thing instance can activate the WoT interactions specified in a TD through the interface of a protocol. 

These functionalities make WoT especially well-suited to using digital twins. As an open standard, it not only provides a highly suitable architecture for digital twin applications but does so in a way that avoids the complexity and expense of bespoke solutions. 

Multiple Eclipse Projects Leverage WoT Standard

Unsurprisingly, several Eclipse Foundation projects have built off the W3C’s open WoT standard.

This includes Eclipse Thingweb, an implementation of the WoT standard, the Thingweb node-wot. Node-wot provides:

  • A WoT Thing Description parser and serializer
  • Several protocol bindings implementing the WoT Binding Templates 
  • A runtime system (WoT Runtime) providing the WoT Scripting API for applications. 

It also provides a browser bundle to visualize TDs and to enable the interaction with Things from the Web browser.

There is also the Eclipse Edi{TD}or project, which makes it easier to work with WoT. The project is building a tool with the following key functionalities:

  • Create new Thing Descriptions or Models from scratch
  • Render Thing Descriptions and Models
  • Edit Thing Descriptions and Models
  • Validate Thing Descriptions and Models
  • Export Thing Descriptions and Models from the visual representation into JSON-LD

It’s also worth mentioning that Eclipse Ditto, our Digital Twins platform, also supports WoT. Version 2.4.0, released in March 2022, added support for WoT by referencing WoT Thing Model in Ditto-managed twins describing the Things’ capabilities. This integration allows Ditto-managed twins to be linked to WoT Thing Models. Ditto can then create WoT Thing Integrations containing the API descriptions of the twins. 

This integration provides a few powerful additions to Ditto:

  • Increased interoperability
  • Introspection of twins to find their capabilities
  • Addition of semantic context to Ditto-managed digital twins and their capabilities
  • Description of Ditto twin HTTP APIs in an active IoT standard
  • Backing Ditto-managed twins with WoT models without the need for actual devices to be aware of WoT
  • Opening the door to a new ecosystem of tools

New Version Introduces Thing Models

One of the major changes coming in version 1.1 of WoT is the addition of Thing Models (TM). These define properties, actions, and events for things, but do so without instance-specific details like protocols or binding templates. 

If you’re interested in the WoT model or want to learn more, there are a few things you can do. 

Consider trying out our open source projects:

If you’d like to learn about the latest version of the WoT standard, you can find public drafts for its various parts.

I’ve also written a book, Building Enterprise IoT Solutions With Eclipse IoT Technologies: An Open Source Approach to Edge Computing, which explains (among other things) the concept and utility of WoT in more detail. Consider picking it up if you’d like to learn more!

About the Author

Frédéric Desbiens

Frédéric Desbiens

Frédéric Desbiens is the program manager for IoT and Edge Computing at the Eclipse Foundation.