Web of Things
W3C

Documentation

Table of Contents

 

Web of Things in a Nutshell

Typically, in classical IoT projects, developers have to face a challenging situation. They have to understand a heterogeneous technology landscape consisting of diverse IoT systems and services from different vendors and manufacturers. This diversity includes variations in communication protocols, data models for payload data exchange, and security requirements. IoT applications are usually developed using high effort applied to a narrow and specific use case. During their lifetime, such applications are difficult to extend, maintain or reuse.

IoT Projects

 

Web of Things

The Web of Things (WoT) provides a set of standardized technology building blocks that help to simplify IoT application development by following the well-known and successful Web paradigm. This approach increases flexibility and interoperability, especially for cross-domain applications, as well as enabling reuse of established standards and tools. WoT unlocks commercial potential being held back by IoT fragmentation

Please read the WoT Architecture document to get more background on WoT use cases and basic paradigms.

 

WoT Interactions

WoT introduces a simple interaction abstraction based on properties, events, and actions. Any IoT network interface can be described in terms of this abstraction. By using this abstraction, applications have a common anchor to retrieve an IoT service’s metadata as well as way to understand what and how the data and an IoT services' functions can be accessed.

Please read here to get more background about the properties-action-event paradigm.

WoT Interactions

 

WoT Building Blocks

WoT Thing Description (TD)

An IoT device's metadata, including all information needed to enable this common abstraction, is documented in what is called WoT Thing Description (TD). The TD is a central building block in the W3C Web of Things and can be considered as the entry point of an IoT instance (much like the index.html of a Web site). It provides information on which data and functions are provided, which protocol is used, how data is encoded and structured, and security mechanism is used to control access, and further machine-readable and human-readable metadata. A TD is expressed in JSON-LD and can be provided by an IoT device itself or hosted externally in a repository such as a TD Directory.

Please read here to get more background on the WoT Thing Description.

 

In general, WoT is a protocol agnostic approach and provides a common mechanism to define how specific protocols such as MQTT, HTTP, CoAP or Modbus can be mapped to the WoT’s interaction properties-action-event abstraction.

This mapping and protocol specific metadata are provided by the WoT Binding Templates. A binding template for a specific protocol provides a guideline how a client can activate each WoT interaction abstraction through a corresponding network-facing interface for that protocol.

Please read here to get more background on WoT Binding Templates.

WoT Mappings

The (optional) WoT Scripting API building block defines an ECMAScript (JavaScript) API that closely follows the WoT Thing Description specification and supports the WoT interaction abstraction. It defines the interface between behavior implementations and a scripting-based WoT runtime. Please note however that implementations of WoT are not limited to scripting environments. Programming language APIs in Java or C/C++ can also be derived from the WoT Scripting API.

Please read here to get more background on the WoT Scripting API.

The Web of Things also provides guidance on WoT Security and Privacy. WoT provides guidelines for the secure implementation and configuration of Things. Security and privacy should be considered in any system implementing W3C WoT.

Please read here to get more background on WoT Security and Privacy.

 

Further Reading