At first glance, the World Wide Web Consortium (W3C) and the Internet of Things are two different worlds. The consortium is regarded as the authority for web standards and ensures that everyone can find information on the World Wide Web regardless of their device, plan their next trip or do banking. Both the relatively simple web development and the so-called service composition (mashup), in order to integrate and offer different and partly external services such as road maps, weather data or translation services, work largely smoothly.
Web frameworks such as WordPress allow different services to be easily integrated into a website (Fig. 1).
It is precisely this orchestration of services that is less trivial in the Internet of Things. IoT devices offer data and services such as sensor values for the temperature or switching a lamp on and off. Communication works smoothly when companies use all devices from a manufacturer and rely exclusively on its app or ecosystem. A cross-manufacturer service composition is much more difficult. The devices potentially use different communication protocols such as MQTT, Modbus or CoAP. There are various approaches to data models and semantics for serialization, such as JSON, XML, TLV (Type Length Value) or CBOR (Concise Binary Object Representation). Ultimately, the security requirements differ from one another. The challenges do not only exist in the smart home environment, but also for companies in large IoT applications such as building and industrial automation, smart cities, and in the automotive sector.
Since various data points and protocols come together during service orchestration in the IoT, it is usually impossible to reuse applications across projects (Fig. 2).
The building blocks of the Web of Things
At this point, the W3C would like to close a gap with the standardization activity for the Web of Things (WoT). It is explicitly not about establishing yet another IoT standard in the form of an additional protocol or data model, but rather providing tools or so-called technology modules in order to create a uniform level of abstraction for the heterogeneous IoT landscape. It is deliberately kept simple and offers the following three core elements:
- Properties typically map sensor, status or parameter values,
- Actions represent functions with input and output values, for example starting a motor, moving a robot arm or taking a photo,
- Events typically map alarm signals or data streams.
The so-called Thing Description (TD), which maps properties, actions and events, plays a central role. Similar to index.html on a website, it provides the entry point of an IoT device or a service. A TD provides information about the data and functions provided, the type of data serialization and the security mechanisms used for access control. In addition, there is other metadata that can be read by machines or humans. A TD is written in JSON-LD (JavaScript Object Notation for Linked Data) format. The IoT device can provide it directly, or the information is in a repository such as a TD directory.
The Web-of-Thing modules offer uniform access: The interaction paradigm of properties, actions and events offers an abstraction between IoT systems and applications (Fig. 3).
WoT is a protocol-independent approach and offers a uniform mechanism for mapping specific protocols such as MQTT, HTTP, CoAP or Modbus to the abstraction elements Properties, Actions and Events. WoT binding templates exist for the mapping and the protocol-specific metadata. For example, a template for a specific protocol provides a guideline on how a client can activate each WoT interaction abstraction for the protocol via a network-side interface.
The optional component WoT-Scripting-API defines an ECMAScript-API, which is based closely on the TD specification and uses the WoT interaction abstraction. It defines the interface between the behavior implementation and a script-based WoT runtime. The implementation is not limited to scripting environments: programming language APIs in Java or C / C ++ can be derived from the WoT scripting API.
In addition, the Web of Things deals with topics such as discovery and various aspects of security and privacy.