Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / IoT

Architectures for the Web of Things

4.60/5 (4 votes)
30 Dec 2015CPOL5 min read 19K  
Architectures for the Web of Things

In the Web of Things (WoT), special communication networks composed of sensor nodes, actuator nodes and service nodes form the basis for new types of web applications, which are directly connected to the real world via sensors and actuators, and can be private, such as smart home apps, personal robotics apps and factory control applications, or public, such as air pollution monitoring systems and city parking management systems.

An Internet-of-Things (IoT) system is a communication network consisting of sensor nodes, actuator nodes and service nodes, such that at least one node is connected to the Internet. A sensor node consists of a controller to which one or more sensors and a communication unit are attached. An actuator node consists of a controller to which one or more actuators, zero or more sensors and a communication unit are attached.

A WoT system is an IoT system that is built with web technologies. These technologies do not only include the classical web technologies HTTP(S), HTML, CSS and JavaScript, but also the more recent web technologies Server-Sent Events, Web Sockets, and the Constrained Application Protocol (CoAP), which is a kind of downsized version of HTTP.

There are three recent trends promoting the WoT. First, the web's infrastructure has progressed dramatically:

  1. by extending the internet's address space with IPV6,
  2. by continuously increasing the speed and bandwidth of internet connections, and 
  3. by improving the speed of HTTP with HTTP 2.0 as well as introducing near-real-time web protocols like Web Sockets.

Second, the widespread use of smartphones and tablets, containing various sensors, has created a large pool of sensing and computing resources for the WoT. Third, the increasing availability of many kinds of cheap sensors, actuators and other electronics components has led to the development of a large Do It Yourself (DIY) robotics and WoT community, creating lots of open source software and hardware, and publishing a great variety of DIY projects (e.g., on the instructables website). The availability of all these resources, and, in particular, of low-cost hardware, creates new opportunities for WoT and robotics-related research and education.

For instance, a simple WoT project can be the temperature monitoring of a room by using a cheap temperature sensor, like the Texas Instruments LM352 (available for about 1 Euro), attached to an Arduino microcontroller (available for about 5 Euro) connected to the Internet via an ESP8266 Wi-Fi module (for about 5 Euro). More complex WoT systems, like a home security and monitoring system or a home robot that is able to move around and talk to people, can be built with hardware costs of a few hundreds Euro, only, possibly using a no-longer-needed smartphone as the control computer and exploiting its (GSM/3G and WiFi) communication and its (GPS, microphone, camera) sensing capabilities.

We should distinguish between the following three important cases of WoT architectures:

  1. The office/factory WoT architecture

    The office/factory WoT architecture: WoT systems that do not have the limitations implied by constrained resource devices. These systems can use ordinary networking and web technologies such as Ethernet or IEEE 802.11 for wireless networking, SOAP via HTTPS for application-level messaging, and SOAP-based (web service) co-ordination and security techniques.

  2. The home/DIY WoT architecture

    The home/DIY WoT architecture: Home (possibly do-it-yourself) WoT systems based on constrained resource devices having unlimited power supply (not using batteries), such that power consumption is not a concern. These systems need an alternative software/technology stack that is adapted to the limited main memory, storage and processor speed of the constrained resource devices. Ethernet (or IEEE 802.11) can still be used for (wireless) networking, but only CoAP or an HTTP subset, and no HTTPS, can be used for application-level messaging.

  3. The deployment-in-the-wild WoT architecture

    The deployment-in-the-wild WoT architecture: WoT systems based on constrained resource devices that are battery-powered, requiring low-energy wireless networking technologies, such as IEEE 802.15.4, possibly using a mesh network for overcoming larger distances to a collection point, and small footprint software technologies, such as CoAP for application-level messaging. These systems often have higher packet error rates and a lower throughput (say, of only tens of kbit/s).

The issue of using the new Internet Protocol (IP) version 6 (IPv6) instead of the established version 4 (IPv4) is orthogonal to the WoT. The main issue solved by IPv6, allowing a greater address space than IPv4, is not necessarily an issue for WoT systems, which can, in many cases, be built with either of them. Of course, the increasing use of IoT apps will contribute to the increasing demand for IP addresses. But since most IoT/WoT devices will not have to be reachable via a public IP address, the expected explosive growth of the IoT/WoT will not imply a similar explosion of the IP address space.

The following are desirable features of a WoT system:

  • Self-configuration: the dynamic composition of a WoT system by nodes joining and leaving the network at any time
  • Self-diagnosis: automatic discovery of failures and faults of the components of a WoT system
  • Self-optimization of constrained energy (battery-based) WoT systems: automatic monitoring and on/off-time control of components

For the success of the WoT, it will be crucial to develop simple and robust solutions for these features, in addition to establishing reference architectures based on low-cost standard components such as the Arduino micro-controller or the Raspberry Pi single-board computer.

You can find articles about the WoT on web-engineering.info:

Stay tuned for more tutorial articles and books on building WoT apps!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)