Web of Things

Overview of WoT. Source: Lagally et al. 2023a, fig. 29.
Overview of WoT. Source: Lagally et al. 2023a, fig. 29.

Web of Things (WoT) is a set of building blocks that seeks to make the Internet of Things (IoT) more interoperable and usable. It simplifies application development (including cross-domain applications) by adopting the web paradigm. Web developers will have a low barrier to entry when programming for the IoT.

The key concepts of WoT include Thing Description, Thing Model, Interaction Model, Hypermedia Controls, Protocol Bindings, Profiles, Discovery and Binding Templates. IoT devices (aka Things) are treated as web resources, which makes WoT a Resource-Oriented Architecture (ROA).

WoT is standardized by the W3C. There are developer tools and implementations. As of December 2023, widespread industry adoption of WoT is yet to happen. Highly resource-constrained devices that can't run a web stack will not be able to adopt WoT.

Discussion

  • Why do we need the Web of Things (WoT)?
    WoT explainer. Source: W3C 2021.

    The IoT ecosystem is fragmented. Applications or devices from different vendors don't talk to one another due to differing data models. Consumers need to use multiple mobile apps to interact with their IoT devices. While IoT has managed to network different devices via various connectivity protocols (Zigbee, IEEE 802.15.4, NB-IoT, Thread, etc.), there's a disconnect at the application layer.

    For developers, this disconnect translates to more effort integrating new devices and services. Each application exposes its own APIs. This results in tight coupling between clients and service providers. It's more effort maintaining and evolving these services.

    WoT brings interoperability at the application layer with a unifying data model. It reuses the web paradigm. IoT devices can be treated as web resources. Just as documents on the web are interlinked and easily navigated, Things can be linked, discovered, queried and acted upon. Mature web standards such as REST, HTTP, JSON, AJAX and URI can be used to achieve this. This means that web developers can become IoT developers. They can create reusable IoT building blocks rather than custom proprietary implementations that work for limited use cases.

  • What integration patterns does WoT cover?
    Three possible WoT integration patterns. Source: Francis 2017.
    Three possible WoT integration patterns. Source: Francis 2017.

    An IoT device can directly expose a WoT API. This is the simplest integration pattern. It's also challenging from a security perspective or if the device is behind a firewall. For more resource-constrained devices running LPWAN protocols, direct access is difficult. They would connect to the cloud via a gateway, which exposes the WoT API. When devices spread over a large area need to cooperate, they would connect to the cloud in different ways and the cloud exposes the WoT API.

    Let's consider specific use cases. A remote controller connects directly to an electrical appliance in a trusted environment. Similarly, a sensor acting as a control agent connects to an electrical appliance. A remote control outside a trusted environment connects to a gateway or a edge device which then connects to an electrical appliance. Connected devices are mapped to digital twins that can be accessed via a client device. A device can be controlled via its digital twin in the cloud. These various integration patterns can be combined through system integration.

  • What's the architecture of WoT?
    WoT architecture. Source: Guinard 2017, slide 16.
    WoT architecture. Source: Guinard 2017, slide 16.

    WoT standardizes a layered architecture of four layers (lower to higher): Access, Find, Share and Compose. The protocols or techniques used at each of these layers are already widely used on the web. These four layers can't be mapped to the OSI model, nor are they strictly defined at the interfaces. They're really a collection of services to ease the development of IoT solutions.

    At the access layer, solution architects have to think about resource, representation and interface designs. They should also define how resources are interlinked. At the find layer, web clients can discover root URLs, the syntax and semantics of interacting with Things. At the compose layer, tools such as Node-RED and IFTTT can help create mashups.

  • What are Thing Description (TD) and Thing Model (TM) in WoT?
    Thing Model and its relation to Thing Description. Source: Kaebisch et al. 2023, fig. 5.
    Thing Model and its relation to Thing Description. Source: Kaebisch et al. 2023, fig. 5.

    TD is something like the business card of the Thing. It reveals everything about the Thing. It informs the protocol, data encoding, data structure, and security mechanism used by the Thing. TD itself is in JSON-LD format and is exposed by the Thing or can be discovered by consumers from a Thing Description Directory (TDD).

    In object-oriented programming, objects are instantiated from classes. Likewise, a TD can be seen as an instantiation of a TM. A TM is a logical description of a Thing's interface and interactions. However, it doesn't contain instance-specific information such as an IP address, serial number of GPS location. A TM can include security details if those are applicable for all instances of that TM.

    Both TD and TM are represented and serialized in JSON-LD format. Whereas a TD can be validated against its TM, a TM can't be validated.

  • What's the WoT interaction model?
    The WoT interaction model. Source: W3C 2023d.
    The WoT interaction model. Source: W3C 2023d.

    Apart from links, a Thing may expose three types of interaction affordances:

    • Properties: Property is a state of the Thing. State may be read-only or read-write. Properties can be made observable. Sensor values, stateful actuators, configuration, status and computation results are examples.
    • Actions: Action invokes a function of the Thing. Action can be used to update one or more properties including read-only ones.
    • Events: Event is used to asynchronously send data from the Thing to a consumer. Focus is on state transitions rather than the state itself. Examples include alarms or samples of a time series.

    Like documents on the web, WoT also links and forms. These are called hypermedia controls. Links are used to discover and interlink Things. Forms enable more complex operations than what's possible by simply dereferencing a URI.

  • What are protocol bindings in WoT?
    From binding templates to protocol bindings. Source: Lagally et al. 2023a, fig. 31.
    From binding templates to protocol bindings. Source: Lagally et al. 2023a, fig. 31.

    WoT's abstractions make it protocol agnostic. It doesn't matter if a Thing uses MQTT, CoAP, Modbus or any other connectivity protocol. WoT's interaction model unifies all these so that applications talk in terms of properties, actions and events. But abstractions have to be translated into protocol actions. This is provided by protocol bindings. For a door handle for example, protocol binding tells how to open/close the door at the level of knob or lever.

    W3C has published a non-normative document called WoT Binding Templates. This gives blueprints on how to write TDs for different IoT platforms or standards. This includes protocol-specific metadata, payload formats, and usage in specific IoT platforms. The consumer of a TD would implement the template, that is, the protocol stack, media type encoder/decoder and platform stack.

  • Who has implemented WoT?

    W3C maintains a list of developer resources. This include tools, implementations, TD directories and WoT middleware. For example, Eclipse Thingweb is a Node.js implementation to expose and consume TD. From other sources, there are implementations in Python, Java, Rust and Dart. Among the TD directories are TinyIoT Thing Directory and WoTHive. Major WoT deployments during 2012-2021 have been documented.

    Krellian Ltd. offers WebThings Gateway and WebThings Framework. WebThings was initially developed at Mozilla. However, its API differs from W3C specifications in many ways.

    The sayWoT! platform from evosoft (a Siemens subsidiary) gives web and cloud developers an easy way to develop IoT solutions. One study compared many WoT platforms including WoT-SDN, HomeWeb, KNX-WoT, EXIP, WTIF, SOCRADES, WoTKit, µWoTO, and more.

    WoT is being leveraged to create digital twins. WoTwins and Eclipse Ditto with WoT integration are examples of this. Ortiz et al. used WoT TD effectively in real-time IoT data processing in smart ports use case. WoTemu is an emulation framework for WoT edge architecture.

  • What standards cover WoT?

    The W3C is standardizing WoT. The following are the main normative specifications:

    Informative specifications include WoT Scripting API, WoT Binding Templates, WoT Security and Privacy Guidelines, and WoT Use Cases and Requirements.

    Beginners can start at the W3C WoT webpage for latest updates, community groups, documentation and tooling.

    At the IETF, there's a draft titled Guidance on RESTful Design for Internet of Things Systems. This is relevant to WoT.

  • What are some limitations of WoT?

    WoT depends on the web stack. Hence, it's not suited for very low-power devices or mesh deployments.

    Matter protocol, known earlier as Project CHIP, is an alternative to WoT. This is promoted by the Connectivity Standards Alliance (CSA), formerly called Zigbee Alliance. Matter is based on Thread, IPv6 and Dotdot. While Matter is not web friendly like WoT, it appears to have better industry traction. However, Matter devices that expose WoT TDs can talk to WoT devices.

    There's a claim that WoT hasn't adequately addressed security, privacy and data sharing issues. This is especially important when IoT devices are directly exposed to the web. Devices are energy inefficient since they're always on. They're vulnerable to DoS attacks.

    WoT alone can't solve complex problems such as optimize workflows across many IoT devices or applications. Hypermedea and EnvGuard are two approaches to solve this. Larian et al. compared many WoT platforms. They noted that current IoT middleware and WoT resource discovery need to be improved. Legacy systems would require custom code to interface to the WoT architecture.

Milestones

Nov
2007

Wilde uses the term "Web of Things" in a paper titled Putting Things to REST. He makes the case for treating a Thing (such as a sensor) as a web resource. It could then be accessed via RESTful calls rather than the more restrictive SOAP/WSDL API calls. Web concepts of URI, HTTP, HTML, XML and loosely coupling can be applied effectively towards Things.

2011

Guinard publishes his Doctor of Science dissertation in the field of Web of Things. In 2016, he co-authors (with Trifa) a book titled Building the Web of Things. Guinard sees WoT as

A refinement of the Internet of Things (IoT) by integrating smart things not only into the Internet (the network), but into the Web (the application layer).
Jul
2013

Web of Things Community Group is created. Subsequently in 2014, a workshop is held (June) and an Interest Group is formed (November).

Dec
2016

Following the first in-person meeting and a WoT Plugfest in 2015, the W3C WoT Working Group is formed. It's aim is to produce two normative specifications (Architecture, Thing Description) and two informative specifications (Scripting API, Binding Templates).

Jun
2018

From the Eclipse Foundation, the first commit on GitHub is made for the Eclipse Thingweb project. The project aims to provide Node.js components and tools for developers to build IoT systems that conform to W3C WoT standards. The project releases v0.5.0 in October.

Apr
2020
Evolution of WoT leading to approval as W3C Recommendation documents. Source: W3C 2023a.
Evolution of WoT leading to approval as W3C Recommendation documents. Source: W3C 2023a.

W3C publishes WoT Architecture and WoT Thing Description as separate W3C Recommendation documents.

Jul
2022
Structure of the OpenAPI Web Thing template. Source: Tzavaras et al. 2023, fig. 3.
Structure of the OpenAPI Web Thing template. Source: Tzavaras et al. 2023, fig. 3.

Tzavaras et al. propose using OpenAPI descriptions and ontologies to bring Things closer to the world of Semantic Web. Thing Descriptions can be created in OpenAPI while also conforming to W3C WoT architecture. They argue that OpenAPI is already a mature standard. It provides a uniform way to interact with web services and Things.

Nov
2022

Markus Reigl at Siemens comments that WoT will do for IoT what HTML did for the WWW in the 1990s. TD is not a mere concept. It leads to executable software code. He predicts IoT standardization will gain momentum.

Dec
2023

W3C publishes WoT Architecture 1.1 and WoT Thing Description 1.1 as W3C Recommendation documents. In addition, WoT Discover is also published as a W3C Recommendation.

Sample Code

  • // Thing Description for a Smart Door
    // Source: https://www.researchgate.net/profile/Euripides-Petrakis/publication/366522765_OpenAPI_framework_for_the_Web_of_Things/links/645b734439c408339b3a5356/OpenAPI-framework-for-the-Web-of-Things.pdf
    // Accessed: 2023-12-08
     
    {
        "@context": "http://www.w3.org/ns/td",
        "id": "urn:dev:ops:32473-WoTSmartDoor-1234",
        "title": "MySmartDoor",
        "securityDefinitions": {
            "basic_sc": {
                "scheme": "basic",
                "in": "header"
            }
        },
        "security": "basic_sc",
        "properties": {
            "state": {
                "type": "string",
                "forms": [
                    {
                        "href": "https://mysmartdoor.example.com/state"
                    }
                ]
            }
        },
        "actions": {
            "lock": {
                "forms": [
                    {
                        "href": "https://mysmartdoor.example.com/lock"
                    }
                ]
            },
            "unlock": {
                "forms": [
                    {
                        "href": "https://mysmartdoor.example.com/unlock"
                    }
                ]
            }
        },
        "events": {
            "opening": {
                "description": "Smart door opens",
                "data": {
                    "type": "string"
                },
                "forms": [
                    {
                        "href": "https://mysmartdoor.example.com/open",
                        "subprotocol": "longpoll"
                    }
                ]
            }
        }
    }
     

References

  1. Charpenay, V., A. Zimmermann, M. Lefrançois, and O. Boissier. 2022. "Hypermedea: A Framework for Web (of Things) Agents." WWW ’22: Companion Proceedings of the Web Conference 2022, ACM, New York, NY, USA, Apr 2022, Lyon (Virtual), France. pp.176-179. doi: 10.1145/3487553.3524243. Accessed 2023-12-08.
  2. Cimmino, A. and R. García-Castro. 2022. "WoTHive: Enabling Syntactic and Semantic Discovery in the Web of Things." Open Journal of Internet Of Things (OJIOT), RonPub, vol. 8, no. 1, pp. 54-65. Accessed 2023-12-08.
  3. Cimmino, A., M. McCool, F. Tavakolizadeh, and K. Toumura (eds). 2023. "Web of Things (WoT) Discovery." W3C Recommendation, December 5. Accessed 2023-12-08.
  4. Eclipse Ditto. 2023. "WoT (Web of Things) integration." Documentation, Eclipse Ditto v3.4, March 8. Accessed 2023-12-08.
  5. Eclipse Thingweb. 2023. "eclipse-thingweb/node-wot." On GitHub, December 7. Accessed 2023-12-08.
  6. Francis, B. 2017. "Building the Web of Things." Hacks blog, Mozilla, June 28. Accessed 2023-12-08.
  7. Guinard, D. 2011. "A Web of Things Application Architecture - Integrating the Real-World into the Web." Dissertation, Diss. ETH No. 19891, Doctor of Science, ETH Zurich. Accessed 2023-12-08.
  8. Guinard, D. 2017. "Building the Web of Things: One layer at a time!" Slides, IoT Week Geneva, June 6-9. Accessed 2023-12-08.
  9. Guinard, D. and V. Trifa. 2016. "Building the Web of Things." First Edition, June 1. Manning Publications. Accessed 2023-12-08.
  10. Guinard, D., V. Trifa, F. Mattern, and E. Wilde. 2011. "From the Internet of Things to the Web of Things: Resource-oriented Architecture and Best Practices." In: Uckelmann, D., M. Harrison, and F. Michahelles (eds), Architecting the Internet of Things. Springer, Berlin, Heidelberg. doi: 10.1007/978-3-642-19157-2_5. Accessed 2023-12-08.
  11. Hill, S. 2023. "Here’s What the ‘Matter’ Smart Home Standard Is All About." Wired, October 23. Accessed 2023-12-08.
  12. Kaebisch, S., M. McCool, and E. Korkan (eds). 2023. "Web of Things (WoT) Thing Description 1.1." W3C Recommendation, December 5. Accessed 2023-12-08.
  13. Keränen, A., M. Kovatsch, and K. Hartke. 2023. "Guidance on RESTful Design for Internet of Things Systems." Internet-Draft, IETF, July 25. Accessed 2023-12-08.
  14. Lagally, M., R. Matsukura, M. McCool, and K. Toumura (eds). 2023a. "Web of Things (WoT) Architecture 1.1." W3C Recommendation, December 5. Accessed 2023-12-08.
  15. Lagally, M., B. Francis, M. McCool, R. Matsukura, S. Kaebisch, and T. Mizushima. 2023b. "Web of Things (WoT) Profile." W3C Working Draft, January 18. Accessed 2023-12-08.
  16. Larian, H., A. Larian, M. Sharifi, and H. Movahednejad. 2022. "Towards Web of Things Middleware: A Systematic Review." arXiv, v1, January 20. Accessed 2023-12-08.
  17. Mangas, A.G., F.J.S. Alonso, D.F.G. Martínez, and F.D. Díaz. 2022. "WoTemu: An emulation framework for edge computing architectures based on the Web of Things." Computer Networks, vol. 209, article no. 108868, May 22. Accessed 2023-12-08.
  18. MobiDev. 2021. "Introduction to the Web of Things." IoT For All, December 16. Updated 2023-01-19. Accessed 2023-12-08.
  19. Nikolaus, K. 2022. "A new era for the Internet of Things." Siemens, November 14. Accessed 2023-12-08.
  20. Ortiz, G., J. Boubeta-Puig, J. Criado, D. Corral-Plaza, A. Garcia-de-Prado, I. Medina-Bulo, and L. Iribarne. 2022. "A microservice architecture for real-time IoT data processing: A reusable Web of things approach for smart ports." Computer Standards & Interfaces, vol. 81, article no. 103622, April. doi: 10.1016/j.csi.2021.103604. Accessed 2023-12-08.
  21. Rupareliya, K. 2022. "Introduction to Web of Things (WoT): Here's Everything You Need to Know." Embedded Computing Design, January 20. Accessed 2023-12-08.
  22. Schenk, M. 2023. "Matter and the Web of Things." Bachelor's Thesis, Software & Information Engineering, Technische Universität Wien, July 27. Accessed 2023-12-08.
  23. Sciullo, L., A. Trotta, F. Montori, L. Bononi, and M. Di Felice. 2022a. "WoTwins: Automatic Digital Twin Generator for the Web of Things." IEEE 23rd International Symposium on a World of Wireless, Mobile and Multimedia Networks (WoWMoM), Belfast, United Kingdom, pp. 607-612. doi: 10.1109/WoWMoM54355.2022.00095. Accessed 2023-12-08.
  24. Stirbu, V. 2008. "Towards a RESTful Plug and Play Experience in the Web of Things." IEEE International Conference on Semantic Computing, Santa Monica, CA, USA, pp. 512-517. doi: 10.1109/ICSC.2008.51. Accessed 2023-12-08.
  25. Sun, B., L. Shen, J. Ren, Z. Dong, and X. Peng. 2023. "EnvGuard : Guaranteeing Environment-Centric Properties in Web of Things." arXiv, v1, December 6. Accessed 2023-12-08.
  26. Tuohy, J.P. 2023. "What Matters about Matter, the new smart home standard." The Verge, January 28. Accessed 2023-12-08.
  27. Tzavaras, A, N. Mainas, and E.G.M. Petrakis. 2022. "Thing Ontologies for the Semantic Web of Things." 13th International Conference on Information, Intelligence, Systems & Applications (IISA), Corfu, Greece, pp. 1-8, July 18-20. doi: 10.1109/IISA56318.2022.9904401. Accessed 2023-12-08.
  28. Tzavaras, A., N. Mainas, and E.G.M. Petrakis. 2023. "OpenAPI framework for the Web of Things." Internet of Things, vol. 21, article no. 100675, April. doi: 10.1016/j.iot.2022.100675. Accessed 2023-12-08.
  29. W3C. 2021. "Web of Things (WoT) explainer video." W3C, on YouTube, March 1. Accessed 2023-12-09.
  30. W3C. 2023a. "About." W3C. Accessed 2023-12-08.
  31. W3C. 2023b. "W3C WoT – Working Group." W3C. Accessed 2023-12-08.
  32. W3C. 2023c. "Developer Resources." W3C. Accessed 2023-12-09.
  33. W3C. 2023d. "Documentation." W3C. Accessed 2023-12-08.
  34. WebThings. 2020. "Mozilla W3C Differences." Wiki, WebThings, on GitHub, June 25. Accessed 2023-12-09.
  35. WebThings. 2023. "Homepage." WebThings. Accessed 2023-12-09.
  36. Wilde, E. 2007. "Putting Things to REST." UCB iSchool Report 2007-015, November. Accessed 2023-12-08.
  37. Zyrianoff, I., L. Gigli, F. Montori, C. Aguzzi, S. Kaebisch, and M. Di Felice. 2022. "Seamless Integration of RESTful Web Services with the Web of Things." IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops), Pisa, Italy, pp. 427-432. doi: 10.1109/PerComWorkshops53856.2022.9767531. Accessed 2023-12-08.
  38. evosoft. 2021. "sayIoT! Homepage." evosoft, September 13. Accessed 2023-12-08.

Further Reading

  1. W3C Web of Things
  2. W3C WoT on GitHub
  3. Eclipse Thingweb
  4. Sciullo, L., L. Gigli, F. Montori, A. Trotta, and M. D. Felice. 2022a. "A Survey on the Web of Things." IEEE Access, vol. 10, pp. 47570-47596. doi: 10.1109/ACCESS.2022.3171575. Accessed 2023-12-08.

Article Stats

Author-wise Stats for Article Edits

Author
No. of Edits
No. of Chats
DevCoins
5
0
1546
1952
Words
2
Likes
2544
Hits

Cite As

Devopedia. 2023. "Web of Things." Version 5, December 10. Accessed 2024-06-25. https://devopedia.org/web-of-things
Contributed by
1 author


Last updated on
2023-12-10 13:43:37