Web of Things

Last updated

Web of Things (WoT) describes a set of standards by the World Wide Web Consortium (W3C) for the interoperability of different Internet of things (IoT) platforms and application domains. [1]

Contents

Building blocks

The four WoT building blocks provide a way to implement systems that conform with the WoT architecture.

Thing Description (TD)

The key component of WoT building blocks is the WoT Thing Description. A Thing Description describes a virtual or a physical device (Thing). It defines an information model of a Thing based on semantic vocabulary and a serialization based on JSON. TD can be considered as the main entry point for a Thing, like an index.html page for a website. TDs foster interoperability by providing both human and machine-readable (and understandable) metadata about a Thing, such as a title, ID, descriptions, etc. A Thing Description also describes all available actions, events, and properties of a Thing, as well as all available security mechanisms to access them. TDs are highly flexible in order to guarantee interoperability. In addition to the standard functionality, it defines a mechanism to extend the functionality (through the Context Extension Framework). [2]

Binding Templates

IoT uses a large variety of protocols to interact with Things since there does not exist a suitable protocol. One of the main challenges for the Web of Things is to handle the variety of protocols and interaction mechanisms. This problem is tackled through the Binding Templates. WoT Binding Templates provide a collection of communication metadata blueprints to support various IoT solutions. A Binding Template is created only once and then can be reused in any Thing Description. [2]

Scripting API

The WoT Scripting API is an optional building block of the Web of Things. It eases IoT application development by providing an ECMAScript-based application API in a similar manner to how web browsers provide an API for web applications. By having a universal application runtime system, Scripting API solves the problem of heterogeneity of IoT systems. It also enables creating of reusable scripts to implement the device logic, which significantly improves the portability of the application modules. [2]

The current reference implementation of the WoT scripting API is an open-source project called node-wot, which is developed by the Eclipse Thingweb project. [3]

Security and Privacy Guidelines

In WoT architecture, security is relevant to all aspects of the architecture. Specification of each WoT building block contains several considerations regarding the security and privacy of that particular block. Security is supported by certain explicit features, such as public metadata in Thing Descriptions and separation of concerns in the design of Scripting API. In addition, there is also a specification called WoT Security and Privacy Guidelines , guiding a variety of security and privacy related concerns. [2]

History

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 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 started working in parallel to these concepts. Amongst 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 started talking about a 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 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 started 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 has been an annual occurrence since. These workshops morphed into a growing community of researchers and practitioners could discuss the latest findings and ideas on the Web of Things [ citation needed ].

In 2011, two of the first PhD thesis 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 on the Web of Things and organized the W3C Workshop on the Web of Things, [17] under the lead of Dave Raggett together with Siemens and the COMPOSE European project. This workshop leads to the creation of the Web of Things Interest Group at W3C [18] and the submission of the Web Thing Model. [19]

The same year, Siemens announced the creation of a research group dedicated to the Web of Things. [20] In October 2014, Google also announced its interest in these ideas by launching the Physical Web GitHub project. [21]

The Web of Things Interest Group identified the required set of standards needed for the Web of Things in February 2017. [22] The Working Group has started working on four deliverables called WoT Architecture, [23] WoT Thing Description, [24] WoT Scripting API, [25] and WoT Binding Templates. [26]

See also

Further reading

Related Research Articles

A web service (WS) is either:

Web annotation can refer to online annotations of web resources such as web pages or parts of them, or a set of W3C standards developed for this purpose. The term can also refer to the creations of annotations on the World Wide Web and it has been used in this sense for the annotation tool INCEpTION, formerly WebAnno. This is a general feature of several tools for annotation in natural language processing or in the philologies.

REST is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of a distributed, Internet-scale hypermedia system, such as the Web, should behave. The REST architectural style emphasises uniform interfaces, independent deployment of components, the scalability of interactions between them, and creating a layered architecture to promote caching to reduce user-perceived latency, enforce security, and encapsulate legacy systems.

The canvas element is part of HTML5 and allows for dynamic, scriptable rendering of 2D shapes and bitmap images. It is a low level, procedural model that updates a bitmap. HTML5 Canvas also helps in making 2D games.

The Device Description Repository (DDR) is a concept proposed by the Mobile Web Initiative Device Description Working Group (DDWG) of the World Wide Web Consortium. The DDR is supported by a standard interface and an initial core vocabulary of device properties. Implementations of the proposed repository are expected to contain information about Web-enabled devices. Authors of Web content will be able to make use of repositories to adapt their content to best suit the requesting device. This will facilitate the interaction and viewing of Web pages across devices with widely varying capabilities.

<span class="mw-page-title-main">HTML5</span> Fifth and current version of hypertext markup language

HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML Living Standard. It is maintained by the Web Hypertext Application Technology Working Group (WHATWG), a consortium of the major browser vendors.

The Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communications networks. The Internet of things encompasses electronics, communication and computer science engineering. Internet of things has been considered a misnomer because devices do not need to be connected to the public internet, they only need to be connected to a network, and be individually addressable.

<span class="mw-page-title-main">WSO2</span> Company providing open-source middleware

WSO2 is an open-source technology provider founded in 2005. It delivers software and cloud solutions that provide foundational technologies for application development and identity and access management (IAM). This represents an expansion upon its original focus on integrating application programming interfaces (APIs), applications, and web services locally and across the Internet.

The W3C Geolocation API is an effort by the World Wide Web Consortium (W3C) to standardize an interface to retrieve the geographical location information for a client-side device. It defines a set of objects, ECMAScript standard compliant, that executing in the client application give the client's device location through the consulting of Location Information Servers, which are transparent for the application programming interface (API). The most common sources of location information are IP address, Wi-Fi and Bluetooth MAC address, radio-frequency identification (RFID), Wi-Fi connection location, or device Global Positioning System (GPS) and GSM/CDMA cell IDs. The location is returned with a given accuracy depending on the best location information source available.

WebRTC is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps.

<span class="mw-page-title-main">Open Geospatial Consortium</span> Standards organization

The Open Geospatial Consortium (OGC), an international voluntary consensus standards organization for geospatial content and location-based services, sensor web and Internet of Things, GIS data processing and data sharing. It originated in 1994 and involves more than 500 commercial, governmental, nonprofit and research organizations in a consensus process encouraging development and implementation of open standards.

JSON-LD is a method of encoding linked data using JSON. One goal for JSON-LD was to require as little effort as possible from developers to transform their existing JSON to JSON-LD. JSON-LD allows data to be serialized in a way that is similar to traditional JSON. It was initially developed by the JSON for Linking Data Community Group before being transferred to the RDF Working Group for review, improvement, and standardization, and is currently maintained by the JSON-LD Working Group. JSON-LD is a World Wide Web Consortium Recommendation.

<span class="mw-page-title-main">EVRYTHNG</span>

EVRYTHNG is an internet of things (IoT) software company based in London, with operations in Oregon, New York, Beijing, Minsk and Switzerland. The company delivers real-time data and actionable information about “smart products” featuring a digital identity in its EVRYTHNG Product Cloud, which connects consumer packaged goods to the web for business intelligence.

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

Crosswalk Project was an open-source web app runtime built with the latest releases of Chromium and Blink from Google. The project was founded by Intel's Open Source Technology Center in September 2013.

<span class="mw-page-title-main">Vlad Trifa</span>

Vlad Trifa is a computer scientist, researcher and Chief Product Officer at Ambrosus who played a key role in defining and implementing the application layer of the Internet of Things. He is particularly known for his early contributions to the Web of Things along with other researchers such as Dominique Guinard, Erik Wilde and Friedemann Mattern. Vlad is widely published author and a recognized expert in distributed embedded sensing and interactive devices, and their integration with enterprise applications using Web technologies.

SensorThings API is an Open Geospatial Consortium (OGC) standard providing an open and unified framework to interconnect IoT sensing devices, data, and applications over the Web. It is an open standard addressing the syntactic interoperability and semantic interoperability of the Internet of Things. It complements the existing IoT networking protocols such CoAP, MQTT, HTTP, 6LowPAN. While the above-mentioned IoT networking protocols are addressing the ability for different IoT systems to exchange information, OGC SensorThings API is addressing the ability for different IoT systems to use and understand the exchanged information. As an OGC standard, SensorThings API also allows easy integration into existing Spatial Data Infrastructures or Geographic Information Systems.

WebUSB is a JavaScript application programming interface (API) specification for securely providing access to USB devices from web applications.

<span class="mw-page-title-main">Dominique Guinard</span>

Dominique "Dom" Guinard is the CTO of EVRYTHNG. He is a technologist, entrepreneur and developer with a career dedicated to building the Internet of Things both in the cloud and on embedded Things. He is particularly known for his early contributions to the Web of Things along with other researchers such as Vlad Trifa, Erik Wilde and Friedemann Mattern. Guinard is a published researcher, a book author and a recognized expert in Internet of Things technologies

<span class="mw-page-title-main">Thing Description</span>

The Thing Description (TD) (or W3C WoT Thing Description (TD)) is a royalty-free, open information model with a JSON based representation format for the Internet of Things (IoT). A TD provides a unified way to describe the capabilities of an IoT device or service with its offered data model and functions, protocol usage, and further metadata. Using Thing Descriptions help reduce the complexity of integrating IoT devices and their capabilities into IoT applications.

References

  1. "Web of Things (WoT) Architecture". www.w3.org. Archived from the original on 2020-04-14. Retrieved 2020-06-12.
  2. 1 2 3 4 "Web of Things (WoT) Architecture". www.w3.org. Archived from the original on 2020-04-14. Retrieved 2020-12-13.
  3. "Web of Things (WoT) Scripting API". www.w3.org. Archived from the original on 2020-11-26. Retrieved 2020-12-13.
  4. 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.
  5. 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).
  6. "Putting things to REST" (PDF). Archived (PDF) from the original on 2017-08-09. Retrieved 2014-11-15.
  7. 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.
  8. "5 Years of Web of Things Workshops". 2014-10-23. Archived from the original on 2017-01-09. Retrieved 2014-11-15.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. "International Workshop on the Web of Things". Archived from the original on 2016-10-14. Retrieved 2014-11-15.
  14. 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.
  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.
  16. 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.
  17. "W3C Workshop on the Web of Things". Archived from the original on 2019-02-09. Retrieved 2014-11-15.
  18. "W3C Web of Things". Archived from the original on 2021-03-09. Retrieved 2019-10-06.
  19. "Web Thing Model". Archived from the original on 2018-03-21. Retrieved 2015-09-27.
  20. "Siemens Web of Things Research Group". Archived from the original on 2018-01-28. Retrieved 2014-11-15.
  21. "The Physical Web". GitHub. Archived from the original on 2019-01-30. Retrieved 2017-02-08.
  22. "W3C Web of Things joint IG/WG meeting in Santa Clara, 5–9 February 2016". Archived from the original on 6 October 2019. Retrieved 6 October 2019.
  23. "W3C WoT Architecture". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
  24. "W3C WoT Thing Description". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
  25. "W3C WoT Scripting API". Archived from the original on 2019-10-06. Retrieved 2019-10-06.
  26. "W3C WoT Binding Templates". Archived from the original on 2019-10-06. Retrieved 2019-10-06.