Web of Things
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
The Web of Things (WoT) refers to a set of standards developed by the World Wide Web Consortium (W3C) to ensure interoperability across different Internet of things platforms and application domains.[1]
Building blocks
[edit]The four WoT building blocks provide a way to implement systems that conform with the WoT architecture.
Thing Description (TD)
[edit]The key component of WoT building blocks is the WoT Thing Description. A Thing Description defines a virtual or physical device (Thing) and provides an information model based on a semantic vocabulary, with serialization in JSON. The Thing Description can be considered the main entry point for a Thing, similar to an JSON page for a website. Thing Descriptions promote JSONby offering both human- and machine-readable (and understandable) JSONabout a Thing, such as its title, ID, descriptions, and more. Additionally, a Thing Description outlines all available actions, events, and properties of a Thing, as well as the security mechanisms required to access them. Thing Descriptions are highly flexible to ensure interoperability and, in addition to standard functionality, define a mechanism for extending functionality through the Context Extension Framework.[2]
Binding Templates
[edit]IoT uses a wide variety of protocols to interact with Things, as no single protocol is universally suitable. One of the main challenges for the Web of Things is managing the diversity of protocols and interaction mechanisms. This challenge is addressed through Binding Templates. WoT Binding Templates provide a collection of communication metadata blueprints that support various IoT solutions. A Binding Template is created once and can then be reused in any Thing Description.[2]
Scripting API
[edit]The WoT Scripting API is an optional building block of the Web of Things. It simplifies IoT application development by providing an ECMAScript-based application API, similar to how web browsers offer an API for web applications. By providing a universal application runtime system, the Scripting API addresses the issue of heterogeneity in IoT systems. It also enables the creation of reusable scripts to implement device logic, significantly enhancing the portability of application modules.[2]
The current reference implementation of the WoT Scripting API is an open-source project called node-wot, developed by the Eclipse Thingweb project.[3]
Security and Privacy Guidelines
[edit]In the WoT architecture, security is relevant to all aspects of the system. The specification of each WoT building block includes several considerations regarding the security and privacy of that particular block. Security is supported by specific features, such as public metadata in Thing Descriptions and the separation of concerns in the design of the Scripting API. Additionally, there is a specification called the WoT Security and Privacy Guidelines, which addresses a variety of security and privacy-related concerns.[2]
History
[edit]Connecting objects to the Web arguably started around the year 2000. In 2002, a peer-reviewed paper presented the Cooltown project.[4] This project explored the use of URLs to address and HTTP to interact with physical objects such as public screens or printers.
Following this early work, the growing interest in and implementation of the Internet of things started to raise some questions about the application layer of the IoT.[5] While most of the work in the IoT space focused on network protocols, there was a need to think about the convergence of data from IoT devices. Researchers and practitioners started envisioning the IoT as a system where data from various devices could be consumed by Web applications to create new use cases.
The idea of the Web as an application layer for the IoT started to emerge in 2007. Several researchers began working in parallel on these concepts. Among them, Dominique Guinard and Vlad Trifa started the Web of Things online community and published the first WoT manifesto, advocating the use of Web standards (REST, Lightweight semantics, etc.) to build the application layer of the IoT. The manifesto was published together with an implementation on the Sun SPOT platform. At the same time, Dave Raggett from W3C began discussing the Web of Things at various W3C and IoT events. Erik Wilde published "Putting Things to REST," a self-published concept paper looking at utilizing REST to sense and control physical objects.[6] Early mentions of the Web of Things as a term also appeared in a paper by Vlad Stirbu et al.[7]
From 2007 onwards, Trifa, Guinard, Wilde, and other researchers tried publishing their ideas and concepts at peer-reviewed conferences, but their work was rejected by the Wireless Sensor Networks research community on the basis that Internet and Web protocols were too verbose and limited in the context of real-world devices,[8] preferring to focus on optimization of memory and computation usage, wireless bandwidth, or very short duty cycles.[citation needed]
However, a number of researchers in the WSN community began considering these ideas more seriously. In early 2009, several respected WSN researchers, such as David Culler, Jonathan Hui, Adam Dunkels, and Yazar Dogan, evaluated the use of Internet and Web protocols for low-power sensor nodes and showed the feasibility of the approach.[9][10]
Following this, Guinard and Trifa presented their end-to-end implementation of the concepts and presented it in a peer-reviewed publication accepted at the World Wide Web conference in 2009.[11] Building on this implementation and uniting efforts, a RESTful architecture for things was proposed in 2010 by Guinard, Trifa, and Wilde.[12] Guinard, Trifa, and Wilde ran the first International Workshop in 2010 on the Web of Things[13] and it has been an annual occurrence since. These workshops morphed into a growing community of researchers and practitioners who could discuss the latest findings and ideas on the Web of Things [citation needed].
In 2011, two of the first PhD theses on the Web of Things were presented at ETH Zurich: Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks from Vlad Trifa[14] and A Web of Things Application Architecture – Integrating the Real-World into the Web from Dominique Guinard.[15] Building on this work, Simon Mayer emphasized the importance of REST's uniform interface, and in particular the HATEOAS principle, in his PhD thesis.[16]
In 2014, the W3C showed an increased interest in the Web of Things and organized the W3C Workshop on the Web of Things,[14] under the lead of Dave Raggett, together with Siemensand the COMPOSE European project. This workshop led to the creation of the Web of Things Interest Group at W3C[17] and the submission of the Web Thing Model.[18]
The same year, Siemens announced the creation of a research group dedicated to the Web of Things.[19] In October 2014, Google also announced its interest in these ideas by launching the Physical Web GitHub project.[20]
The Web of Things Interest Group identified the required set of standards needed for the Web of Things in February 2017.[21] The Working Group started working on four deliverables called WoT Architecture,[22] WoT Thing Description,[23] WoT Scripting API,[24] and WoT Binding Templates.[25]
See also
[edit]Further reading
[edit]- Guinard, Dominique; Vlad, Trifa (2015). Building the Web of Things. Manning. ISBN 9781617292682.
- Guinard, Dominique; Vlad Trifa; Erik Wilde (2010). "A Resource Oriented Architecture for the Web of Things". Proc. of IoT 2010 (IEEE International Conference on the Internet of Things). Tokyo, Japan.
- Guinard, Dominique (2011). A Web of Things Application Architecture – Integrating the Real-World into the Web (PDF) (Ph.D.). ETH Zurich.
- Trifa, Vlad (2011). Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks (PDF) (Ph.D.). ETH Zurich.
- Fielding, Roy Thomas (2000). Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation. University of California, Irvine.
- Richardson, Leonard; Ruby, Sam (2007). RESTful Web Services. O'Reilly (published May 8, 2007). ISBN 978-0-596-52926-0.
- Fortuna, Carolina; Grobelnik, Marko (2011-03-09). Tutorial: The Web of Things. Proceedings of the World Wide Web Conference 2011, Hyderabad, India. Association for Computing Machinery.
External links
[edit]References
[edit]- ^ "Web of Things (WoT) Architecture". www.w3.org. Archived from the original on 2020-04-14. Retrieved 2020-06-12.
- ^ a b c d "Web of Things (WoT) Architecture". www.w3.org. Archived from the original on 2020-04-14. Retrieved 2020-12-13.
- ^ "Web of Things (WoT) Scripting API". www.w3.org. Archived from the original on 2020-11-26. Retrieved 2020-12-13.
- ^ Kindberg, T.; Barton, J.; Morgan, J.; Becker, G.; Caswell, D.; Debaty, P.; Gopal, G.; Frid, M.; Krishnan, V.; Morris, H.; Schettino, J.; Serra, B.; Spasojevic, M. (2000). "People, places, things: Web presence for the real world". Proceedings Third IEEE Workshop on Mobile Computing Systems and Applications. pp. 19–28. CiteSeerX 10.1.1.24.4651. doi:10.1109/MCSA.2000.895378. ISBN 978-0-7695-0816-0. S2CID 282147.
- ^ Guinard, Dominique; Trifa, Vlad; Wilde, Erik (2010). A Resource Oriented Architecture for the Web of Things (PDF). Internet of Things 2010 International Conference (IoT 2010).
- ^ "Putting things to REST" (PDF). Archived (PDF) from the original on 2017-08-09. Retrieved 2014-11-15.
- ^ Stirbu, V. (2008). "Towards a RESTful Plug and Play Experience in the Web of Things". Semantic Computing, 2008 IEEE International Conference on. Semantic Computing, 2008 IEEE International Conference on. pp. 512–517.
- ^ "5 Years of Web of Things Workshops". 2014-10-23. Archived from the original on 2017-01-09. Retrieved 2014-11-15.
- ^ Hui, Jonathan W.; Culler, David E. (2008). "IP is dead, long live IP for wireless sensor networks". Proceedings of the 6th ACM conference on Embedded network sensor systems – Sen Sys '08. p. 15. CiteSeerX 10.1.1.562.6336. doi:10.1145/1460412.1460415. ISBN 9781595939906. S2CID 6139531.
- ^ Yazar, Dogan; Dunkels, Adam (2009). "Efficient application integration in IP-based sensor networks". Proceedings of the First ACM Workshop on Embedded Sensing Systems for Energy-Efficiency in Buildings - Build Sys '09. p. 43. CiteSeerX 10.1.1.158.3650. doi:10.1145/1810279.1810289. ISBN 9781605588247. S2CID 7587931.
- ^ Guinard, Dominique; Trifa, Vlad (2009). Towards the Web of Things: Web Mashups for Embedded Devices (PDF). WWW (International World Wide Web Conferences), Enterprise Mashups and Lightweight Composition on the Web (MEM 2009) Workshop.
- ^ Guinard, Dominique; Trifa, Vlad; Wilde, Erik (2010). "A resource oriented architecture for the Web of Things". 2010 Internet of Things (IoT). pp. 1–8. doi:10.1109/IOT.2010.5678452. ISBN 978-1-4244-7413-4. S2CID 5839440.
- ^ "International Workshop on the Web of Things". Archived from the original on 2016-10-14. Retrieved 2014-11-15.
- ^ Trifa, Vlad (2011). Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks (PDF) (Ph.D.). ETH Zurich. Archived (PDF) from the original on 2016-03-03. Retrieved 2014-11-15.
- ^ Guinard, Dominique (2011). A Web of Things Application Architecture – Integrating the Real-World into the Web (PDF) (Ph.D.). ETH Zurich. Archived (PDF) from the original on 2016-03-03. Retrieved 2014-11-15.
- ^ Mayer, Simon (2014). Interacting with the Web of Things (Ph.D.). ETH Zurich. Archived from the original on 2021-03-19. Retrieved 2021-06-27.
- ^ "W3C Web of Things". Archived from the original on 2021-03-09. Retrieved 2019-10-06.
- ^ "Web Thing Model". Archived from the original on 2018-03-21. Retrieved 2015-09-27.
- ^ "Siemens Web of Things Research Group". Archived from the original on 2018-01-28. Retrieved 2014-11-15.
- ^ "The Physical Web". GitHub. Archived from the original on 2019-01-30. Retrieved 2017-02-08.
- ^ "W3C Web of Things joint IG/WG meeting in Santa Clara, 5–9 February 2016". 27 February 2017. Archived from the original on 6 October 2019. Retrieved 6 October 2019.
- ^ "W3C WoT Architecture". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
- ^ "W3C WoT Thing Description". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
- ^ "W3C WoT Scripting API". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
- ^ "W3C WoT Binding Templates". Archived from the original on 2019-10-06. Retrieved 2019-10-06.