Web of Things
The Web of Things (WoT) is a term used to describe approaches, software architectural styles and programming patterns that allow real-world objects to be part of the World Wide Web. Similarly to what the Web (Application Layer) is to the Internet (Network Layer),[1] the Web of Things provides an Application Layer that simplifies the creation of Internet of Things applications.[2][3][4][5][6][7][8]
Rather than re-inventing completely new standards, the Web of Things reuses existing and well-known Web standards[3][4] used in the programmable Web (e.g., REST, HTTP, JSON), semantic Web (e.g., JSON-LD, Microdata, etc.), the real-time Web (e.g., Websockets) and the social Web (e.g., oauth or social networks).[6]
Nature of Things
Research in the Web of Things usually considers things in the broad sense of physical objects. Things can include (but is not limited to) tagged objects (RFID, NFC, QR codes, Barcodes, Image Recognition)[9] to Wireless Sensor Networks (WSN), machines, vehicles and consumer electronics.[5]
Architecture and framework
While there are ongoing efforts to standardise it,[10] the Web of Things is a set of best practices that can be classified according to the Web of Things architecture.[2][5]
The architecture proposes four main layers (or stages) that are used as a framework to classify the different patterns and protocols involved.
Accessibility layer
This layer deals with the access of things to the Internet and ensure they expose their services via Web APIs. This is the core layer of the WoT as it ensures things have a Web accessible API, transforming them into programmable things.[3][4][7][11]
The access layer in the WoT is built around two core patterns: Firstly, all things should be exposing their services through a RESTful API (either directly or through gateway).[3] REST is an architectural style at the root of the programmable Web thanks to its implementation in HTTP 1.1. As a consequence, if things offer RESTful APIs over HTTP, they get a URL and become seamlessly integrated to the World Wide Web and its tools such as browsers, hyperlinked HTML pages and Javascript applications.[4]
Several designs describing how the services offered by things can be accessed via REST have been proposed.[3][8]
Secondly, the request-response nature of HTTP is often cited as one of the limitations for IoT use-cases as it does not match the event-driven nature of applications that are common in the Wireless Sensor Networks.[3][6][12] To overcome this shortcoming while keeping a focus on fostering integration with the Web, several authors have suggested the use of HTML5 Websockets either natively or through the use of translation brokers (e.g., translating from MQTT or CoAP to Websockets).[5][6][10][13] This complements the REST API of things with a publish subscribe mechanism that is largely integrated with the Web eco-system.
Some things can connect directly to the Internet (e.g., using Ethernet, WiFi or GSM/3G), but in other cases (for example when devices are battery-powered) devices can access the Internet through Smart Gateways. Smart Gateway are protocol translation gateways at the edge of the network.[8][14]
Findability layer
The focus of this layer is to provide a way to find and locate things on the Web and hence is strongly influenced by the semantic Web.[5][10]
The approach here is to reuse Web semantic standards to describe things and their services. In particular, people have been working on HTML5 Microdata integration, RDF / RDFa, JSON-LD and EXI.[5][8][10] This enables searching for things through search engines and other Web indexes as well as enabling machine to machine interaction based on a small set of well-defined formats and standards.
Sharing layer
The Web of Things is largely based on the idea of things pushing data to the Web where more intelligence and big-data patterns can be applied as an example to help us manage our health (Wearables), optimise our energy consumption (Smart Grid), etc. This, however, can only happen in a large-scale way if some of the data can be efficiently shared across services. The sharing layer ensures that data generated by things can be shared in an efficient and secure manner.
Several approaches towards a granular and social context based sharing have been proposed such as the use of social network to build a Social Web of Things.[15][16]
Composition layer
The role of the last layer is to integrate the services and data offered by things into higher level Web tools (analytics software, mashup applications such as IFTTT), making it even simpler to create applications involving things and virtual Web services.
Tools in the composition layer range from Web toolkits (e.g., Javascript SDKs offering higher-level abstractions)[6] to dashboards with programmable widgets[9] and Physical Mashup tools.[5] Inspired by Web 2.0 participatory services and in particular Web mashups, the Physical Mashups offer a unified view of the classical Web and Web of Things and empower people to build applications using the Web of Things services without requiring programming skills.[5]
A number of Web of Things Physical Mashup have been developed[17][18][19] and tools have been proposed and are being actively developed such as.[20][21]
History
Pioneering work in connecting objects to the Web probably started around the year 2000. In 2002, a peer-reviewed paper presented the Cooltown project.[22] 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 and implementation of the Internet of Things started to raise some questions about the application layer of the IoT.[8] 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. In particular, rather than looking at "one device one app", researchers and practitioners started envisioning the IoT as a system where data form various devices could be consumed by Web applications to create innovative 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 on these concept. 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 utilising REST to sense and control physical objects.[23] Early mentions of the Web of Things as a term also appeared in a paper by Vlad Stirbu et al.[24]
From 2007 onwards, Trifa, Guinard, Wilde and other researchers tried publishing their ideas and concepts at peer-reviewed conferences but their papers got 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,[25] where optimisation of memory and computation usage, wireless bandwidth, or very short duty cycles were essential.
However, a number of researchers in the WSN community started considering these ideas more seriously. Early 2009, a number of 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.[26] .[27]
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.[4] Building on this implementation and uniting efforts, a RESTful architecture for things was proposed in 2010 by Guinard, Trifa and Wilde.[28] Noticing a growing industrial and academic interest for connecting things to the Web, Guinard, Trifa and Wilde ran the first International Workshop on the Web of Things,[29] WoT 2010 which has been running yearly since. These workshops have become the first forum where a growing community of researchers and practitioners could discuss the latest findings and ideas in the Web of Things.
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[6] and A Web of Things Application Architecture – Integrating the Real-World into the Web from Dominique Guinard.[5]
In 2011 Dominique Guinard and Vlad Trifa together with Niall Murphy and Andy Hobsbawm got together and founded EVRYTHNG,[30] one of the first cloud software companies entirely leveraging the Web of Things to serve industry needs. Several other WoT startups were started around this time such as Sensetecnic[31] or Yaler.[32]
In 2014, the W3C showed an increased interest in the Web of Things and organised the W3C Workshop on the Web of Things ,[33] under the lead of Dave Raggett together with Siemens and the COMPOSE European project. This workshop lead to the creation of the Web of Things Interest Group[10] and the submission of the Web Thing Model.[34]
The same year, Siemens announced the creation of a research group dedicated to the Web of Things.[35] In October 2014, Google also announced their interested in these ideas by launching the Physical Web GitHub project.
Application examples
- One of the early prototypes of the Web of Things is the "Energie Visible" project in which sensors capable of monitoring and controlling the energy consumption of household appliances offered their functionality through a RESTful API. This API is then used to create a physical Mashup.[36]
- Nimbits[37] is an open source data historian server built on cloud computing architecture that provides connectivity between devices using data points.
- Xively (formerly Pachube) is a commercial web of things data aggregator and data mining website often integrated into the Web of Things.
- ThingSpeak is an open source Internet of Things platform created by Hans Scharler to collect, analyze, and act on data generated by sensors and actuators.[38]
- EVRYTHNG[39] is a platform for making unconnected products and connected devices part of the Web based on a Web of Things architecture.
- WeIO is an open source hardware and software platform for rapid prototyping and creation of wirelessly connected interactive objects using only popular web languages such as HTML5 or Python.
- SMQ[40] is a real time pub-sub protocol that bridges WoT with IoT. The protocol makes it easy to design web based user interfaces for device management and supervision. The Mako Server,[41] which can be compiled for anything from embedded devices to enterprise Linux servers, includes a ready to use SMQ broker.
- An application of the Web of Things in smart homes has been investigated in,[42] to address the problem of heterogeneous home devices by reusing Web technologies.
- Sense Tecnic Systems[43] focuses on a lightweight toolkit for developing IoT applications and targets rapid development using Web technologies and protocols. The WoTKit toolkit has been described at the 2012 IoT conference[18] and builds on research from UBC's Media and Graphics Interdisciplinary Centre,[44] in particular the work on the MAGIC Broker as published at IoT 2010.[45]
Alternative approaches
A number of alternative approaches to Web standards have been proposed, such as WS-* services,[46] but these were later shown as not necessarily well-suited for real-world things.[27][47]
The Constrained Application Protocol (CoAP) is also quite often cited as an alternative or complementary approach for resource-constrained devices.[48] CoAP shares similarities with the Web of Things architecture such as the use of RESTful resources.
See also
References
- ↑ "SlideShare The Web of Things with Mozilla Open Badges".
- 1 2 3
- Guinard, Dominique; Vlad, Trifa (2015). Building the Web of Things. Manning. ISBN 9781617292682.
- 1 2 3 4 5 6 Guinard, Dominique; Trifa, Vlad; Mattern, Friedemann; Wilde, Erik (2011). From the Internet of Things to the Web of Things: Resource Oriented Architecture and Best Practices. (PDF). Springer. pp. 97–129. ISBN 978-3-642-19156-5.
- 1 2 3 4 5 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.
- 1 2 3 4 5 6 7 8 9 Guinard, Dominique (2011). A Web of Things Application Architecture – Integrating the Real-World into the Web. (PDF) (Ph.D.). ETH Zurich.
- 1 2 3 4 5 6 Trifa, Vlad (2011). Building Blocks for a Participatory Web of Things: Devices, Infrastructures, and Programming Frameworks (PDF) (Ph.D.). ETH Zurich.
- 1 2 Guinard, Dominique; Trifa, Vlad; Pham, Thomas; Liechti, Olivier (2009). "Towards physical mashups in the Web of Things": 1–4. doi:10.1109/INSS.2009.5409925.
- 1 2 3 4 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).
- 1 2 Guinard, Dominique; Mathias, Mueller; Jacques, Pasquier (2010). Giving RFID a REST: Building a Web-Enabled EPCIS (PDF). Internet of Things 2010 International Conference (IoT 2010).
- 1 2 3 4 5 "Web of Things Interest Group".
- ↑ Duquennoy, Simon; Grimaud, Gilles; Vandewalle, Jean-Jacques (2009). "The Web of Things: Interconnecting Devices with High Usability and Performance": 323–330. doi:10.1109/ICESS.2009.13.
- ↑ Yazar, Dogan; Dunkels, Adam (2009). Efficient application integration in IP-based sensor networks. ACM Workshop on Embedded Sensing Systems for Energy-Efficiency in Buildings (BuildSys '09).
- ↑ "Connected devices, real-time push and the Web of Things".
- ↑ Trifa, Vlad; Wieland, Samuel; Guinard, Dominique; Thomas, Bonhert (2009). Design and implementation of a gateway for web-based interaction and management of embedded devices (PDF). International Workshop on Sensor Network Engineering (IWSNE 09).
- ↑ Chung, Tein-Yaw; Mashal, Ibrahim; Alsaryrah, Osama; Huy, Van; Kuo, Wen-Hsing; Agrawal, Dharma P. (2013). "Social Web of Things: A Survey": 570–575. doi:10.1109/ICPADS.2013.102.
- ↑ Kovatsch, Matthias; Weiss, Markus; Guinard, Dominique (2010). "Embedding internet technology for home automation": 1–8. doi:10.1109/ETFA.2010.5641208.
- 1 2 Blackstock, M.; Lea, R. (October 2012). "IoT Mashups with the WoTKit". Internet of Things 2012 (IEEE). In Press.
- ↑ Guinard, Dominique; Trifa, Vlad; Fischer, Mathias (2010). Mashing up Your Web-Enabled Home. (PDF). ICWE 2010 (International Conference on Web Engineering).
- ↑ "NodeRed".
- ↑ Brut, M.; Gatellier, P.; Salhi, I. (2014). When devices become collaborative: Supporting device interoperability and behaviour reconfiguration across emergency management scenario. WF-IoT 2014 (World Forum - Internet of Things).
- ↑ 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": 19–28. doi:10.1109/MCSA.2000.895378.
- ↑ "Putting things to REST" (PDF).
- ↑ 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".
- ↑ Hui, Jonathan W.; Culler, David E. (2008). "IP is dead, long live IP for wireless sensor networks": 15. doi:10.1145/1460412.1460415.
- 1 2 Yazar, Dogan; Dunkels, Adam (2009). "Efficient application integration in IP-based sensor networks": 43. doi:10.1145/1810279.1810289.
- ↑ Guinard, Dominique; Trifa, Vlad; Wilde, Erik (2010). "A resource oriented architecture for the Web of Things": 1–8. doi:10.1109/IOT.2010.5678452.
- ↑ "International Workshop on the Web of Things".
- ↑ "EVRYTHNG".
- ↑ "Sensetecnic". SenseTecnic. Retrieved 2012-08-05.
- ↑ "Yaler".
- ↑ "W3C Workshop on the Web of Things".
- ↑ "Web Thing Model".
- ↑ "Siemens Web of Things Research Group".
- ↑ "Energie Visible Web of Things Project".
- ↑ "free, social and open source internet of things.". Nimbits. Retrieved 2012-05-10.
- ↑ github README file
- ↑ "making products smart.". EVRYTHNG. Retrieved 2013-05-24.
- ↑ "SMQ: Lightweight IoT protocol". Real Time Logic. Retrieved 2015-02-27.
- ↑ "SMQ Broker: Ready to use SMQ Broker". Real Time Logic. Retrieved 2015-02-27.
- ↑ Kamilaris A. Enabling Smart Homes using Web Technologies. PhD Thesis, University of Cyprus, Nicosia, Cyprus, December, 2012.
- ↑ "WoTKit: Lightweight IoT toolkit". SenseTecnic. Retrieved 2012-08-05.
- ↑ "Media and Graphics Interdisciplinary Centre, University of British Columbia". UBC. Retrieved 5 August 2012.
- ↑ Blackstock, M.; Kaviani, N.; Lea, R.; Friday, A. (Nov 29 – Dec 1, 2010). "MAGIC Broker 2: An open and extensible platform for the Internet of Things" (PDF). IoT 2010 (IEEE press): 1–8. doi:10.1109/IOT.2010.5678443.
- ↑ Carboni, Davide; Zanarini, Pietro (2007). "Wireless wires": 169–175. doi:10.1145/1329469.1329492.
- ↑ Guinard, Dominique; Ion, Iulia; Mayer, Simon (2012). "In Search of an Internet of Things Service Architecture: REST or WS-*? A Developers' Perspective" (PDF). 104: 326–337. doi:10.1007/978-3-642-30973-1_32. ISSN 1867-8211.
- ↑ Kovatsch, Matthias (2013). "CoAP for the web of things" (PDF): 1495–1504. doi:10.1145/2494091.2497583.
Further reading
- 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 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.