Dave Raggett, W3C activity lead for the Web of Data and champion for the Web of Things, gave an invited talk on the Web of Things at the plenary session of the FIWARE Summit on Tuesday 8 May in Porto, Portugal. FIWARE is a leading open source IoT platform that has emerged from IoT projects supported by the European Commission. Dave later met with FIWARE staff to discuss potential opportunities for collaboration between W3C and FIWARE in respect to alignment between the W3C Web of Things object model and scripting API with the FIWARE Orion context broker, which is based upon ETSI’s NGSI-LD as a REST API using JSON-LD for querying, updating and notifications of changes to the context, including IoT devices. Given the use of W3C’s framework for Linked Data as the basis for both the Web of Things and FIWARE’s Context Broker, it makes sense to look for opportunities to align the vocabularies and APIs.
There is widespread agreement on the huge potential for exploiting connected sensors and actuators, but such devices vary considerably in their capabilities and communication technologies. This makes it challenging to create services involving devices from different vendors and using different standards.
The Web of Things seeks to reduce the costs and risks for developing such services through an object oriented approach in which devices are exposed to applications as things with properties, actions and events, decoupling developers from the details of the underlying communication standards.
The Web of Things Working Group, launched in early 2017, has released three First Public Working Drafts introducing the Web of Things Architecture, JSON-LD based programming language neutral descriptions of thing interaction models, and an associated scripting API.
We welcome your feedback via email to email@example.com.
The WoT face-to-face meeting in Santa Clara, CA, USA was a special meeting: It was the first official activity of the newly chartered Web of Things Working Group (WG). The Interest Group (IG) transferred the work items, it had identified and consolidated over the past one and a half years, to the WG, where they entered Recommendation Track. As a result, the WG now created the following Editor’s Drafts:
The drafts are developed on GitHub. The repositories to contribute are linked from each draft. The corresponding WG Task Forces — note that contributing now requires being a W3C and WG Member agreeing to the Patent Policy — are organizing weekly WebEx calls, but also make use of the GitHub Issues. Intermediary results will be shared publicly during the joint WoT IG and WG WebEx call.
Besides this historical event for W3C WoT, Santa Clara also had an excellent OpenDay with (among other) valuable input from the JSON Schema and JSON-LD 1.1 authors, interesting experiences from WoT implementors, and inspiring talks by Physical Web creator Scott Jenson as well as HP Fellow Bruce Fleming.
The PlugFest this time was enriched by a remote Festo plant operated through Siemens’s node-wot implementation and a ROS-based Intel robot. Meanwhile Panasonic even got a pet for their ever-growing WoT-enabled smart home with numerous connected sensors, actuators, and applicances. The goal for the next PlugFest is to include OCF devices that are integrated into the Web of Things through the first Binding Template.
Finally, a big THANK YOU to Intel for hosting this face-to-face meeting in Santa Clara!
A few month ago, the partners of the COMPOSE European projects also active in the WoT IG were asked to reflect on the experiences implementing large interoperable IoT ecosystems and to produce a technical recommendation for the WoT IG/WG showing the way towards standardization.
EVRYTHNG together with a number of partners and the support of W3C took on this mission and produced the Web Thing Model which became an accepted member submission last August. The goal of this post is to provide an overview of the Web Thing Model and explain its relation to the current work of the WoT IG/WG.
The Web Thing Model in a Nutshell
In a nutshell the Web Thing Model is a cookbook for integrating Things to the Web and in particular to HTTP, WebSocket, JSON and JSON-LD. It was built to give recommendations in 4 main areas: Protocols, Best Practices, Resources and Data Model and Semantic Extensions.
However, conscious that not all Things will offer native APIs using these tools (mainly because of resource constraints such as being battery powered), it starts by looking at integration patterns: Direct Connectivity, Gateway-Based Connectivity and Cloud-Based Connectivity.
With these integration options in mind, the Web Thing model looks at Best Practices (1) for implementing Web Things. This is where protocols such as HTTP and WebSocket are mentioned but it also covers how to apply REST principles to build the API of Things.
Then, it focuses on a simple but powerful Resource and Data Model (2) composed of the following resources:
- Things – A web Thing can be a gateway to other devices that don’t have an internet connection. This resource contains all the web Things that are proxied by this web Thing. This is mainly used by clouds or gateways because they can proxy other devices.
- Model – A web Thing always has a set of metadata that defines various aspects about it such as its name, description, or configurations.
- Properties – A property is a variable of a web Thing. Properties represent the internal state of a web Thing. Clients can subscribe to properties to receive a notification message when specific conditions are met; for example, the value of one or more properties changed.
- Actions – An action is a function offered by a web Thing. Clients can invoke a function on a web Thing by sending an action to the web Thing. Examples of actions are “open” or “close” for a garage door, “enable” or “disable” for a smoke alarm, and “scan” or “check in” for a bottle of soda or a place. The direction of an action is usually from the client to the web Thing. Actions represent the public interface of a web Thing and properties are the private parts. Much like in any programming languages, you can access the public interface, and whatever is private remains accessible only for privileged parties, like the instance itself or, in this case, the web Thing. But limiting access to actions – that is, the public interface – also allows you to implement various control mechanisms for external requests such as access control, data validation, updating a several properties atomically, and the like.
All these resources are semantically described by simple models serialized in JSON. Resource findability is based Web Linking standard and semantic extensions using JSON-LD are supported. This allows extending basic descriptions using a well-known semantic format such as the Schema.org Product schema or the GS1 Web Vocabulary. Using this approach, existing services like search engines can automatically get and understand what Things are and how to interact with them.
The Web Thing Model in the Real-World
The Web Thing Model has been adopted by a number of organisations and European projects as a basis for creating the application layer of Things in IoT scenarios. We also decided to start implementing it in the EVRYTHNG API and wrote an opensource Node.js reference implementation for the Raspberry Pi called webofthings.js.
The Web Thing Model and the W3C WoT IG Work
The Web Thing Model was only the beginning of the Web of Things work at W3C. Since then a number of members joined and are driving the exploration efforts forward in the W3C WoT Interest Group, soon to be starting as a Working Group.
The relationship between the Web Thing Model and the current WoT IG work is pretty straightforward to understand. The Integration Patterns of the Web Thing Model are similar to what the WoT IG Architecture Document references. Similarly, the model of Things and other the model of other resources is discussed in the Thing Description which takes a very similar approach and terminology to the Web Thing Model.
However, there are also differences: the Web Thing Model focuses solely on readily Internet (TCP/IP, UDP) and Web of browsers compatible protocols (WebSocket, HTTP, HTTP/2) and relies on translators for other protocols. The WoT IG Architecture Document extends this and proposes the notion of Protocols Bindings. A Protocol Binding is a way to map an existing IoT protocol (e.g., BacNet) to the Thing Description and its interaction patterns.
Finally, unlike the Web Thing Model which focuses on describing a REST API and a pub/sub extension, the WoT IG Architecture Document also references a scripting API: it proposes an IDL (Interface Description Language) that offers programmatic access to Things and their services. Note that this presentation below gives you a closer look at the similarities and differences between the two approaches.
If you are interested in adopting and evolving the Web Thing Model a good starting point is the “Building the Web of Things” a book by Dom Guinard and Vlad Trifa that takes a practical look at using the Web (and the Web Thing Model) to build connected products.
Also, you might want to checkout or contribute to webofthings.js, a simple implementation of the Web Thing Model approach for the Raspberry Pi. Finally, this is only the beginning of standardization in the Web of Things so make sure you keep an eye on the upcoming work of the Web of Things Working Group!
The Hypercat Alliance organised a one day event on 27 September 2016 at the BT Centre, London, to showcase IoT projects using the Hypercat specification for web based access to catalogues of IoT services. The projects encompass 11 vertical “spearheads” across smart cities and industry, from logistics to smart lighting. Dave Raggett, W3C Staff lead for the Web of things presented a short introduction to the Web of things, and took part in the panel session on the future of Hypercat and the IoT. W3C, Hypercat and BSI are seeking to collaborate on promoting a shared vision for countering fragmentation of the IoT, and to encourage more companies to take an active role in driving work on standards as the Web evolves from a Web of pages into a Web of things. In support of this collaboration, W3C is planning on launching an IoT on the Web Business Group to bring together people to work on the business requirements across a broad range of application domains, and to help with coordination across IoT alliances and standards development organisations.
From left to right: Mike Fisher (BT), Stuart Higgins (Cisco), Dave Raggett (W3C), Scott Steedman (BSI) and Nick Monnickendam (Flexeye).
The Web of things seeks to counter fragmentation of the IoT through metadata and APIs, building upon W3C’s framework for linked data. We seek to simplify application development, and enable easy integration across IoT platforms and application domains. To help with reaching out to stakeholders, W3C took part in the Industry of Things World conference in Berlin on 19-20 September 2016, with the support of the W3C German/Austria office. The event attracted nearly 1000 attendees interested in the potential of the IoT for industry. In the opening keynote “Beyond Industry 4.0”, Prof. Dr. Wolfgang Wahlster presented the Web of things as the jet engine for smart factories, products and services, and the interoperability layer above the Industrial Internet.
W3C greeted visitors at our stand and handed out introductory materials including the white paper for the Web of Things, and a joint white paper on semantic interoperability prepared by individuals involved in a broad range of organisations.
We also ran a workshop “Building the Web of Things – Standards for semantic interoperability and end to end security“. The workshop was organised by Georg Rehm, W3C Office Germany/Austria, and started with an introduction to the Web of things by Dave Raggett. We had two panel sessions. The first on the industrial perspective with Axel Schüßler (Connctd), Colin I’Anson (HPE), Frank Reusch (RWE/Lemonbeat) and Dieter Wegener (Siemens). The second panel session focused on coordination across IoT alliances and standards development organisations with Stefan Hoppe (OPC Foundation), Stefan Weisgerber (DIN) and Thomas Hahn (Plattform Industrie 4.0).
Later, W3C was represented on the conference standardisation panel along with Stefan Hoppe, Global Vice President, OPC Foundation, Dave Raggett, W3C Staff Lead for the Web of Things, and Dieter Wegener on behalf of ZVEI-Führungskreis Industrie 4.0. Our thanks to the moderator, Melinda Crane, Chief Political Correspondent, Deutsche Welle.
Beginning of July 2016, the W3C Web of Things Interest Group met in Beijing, China, with a broad range of participants from 25 different companies and institutions. The face-to-face meeting was hosted by the China Electronics Technology Group Corporation (CETC), the China IoT Industry Technology Innovation Strategic Alliance (CIoTA), and the W3C host at Beihang University. The event was also co-located with the CIoTA’s 2016 International Open IoT Technology and Standard Summit.
The first two days were open to local companies and institutions. We learned about CETC’s vision of IoT interoperability and enjoyed live demonstrations encompassing many things such as air purifiers, car controllers, and talking robots as well as the cloud-based E-Harbour IoT platform implemented by Beijing Wuliangang Ltd.
The Beijing meeting was also a milestone for the W3C WoT activities, as for the first time, all envisioned building blocks came to life in our so-called PlugFest. Multiple companies brought their prototypes, which we then interconnected in different cross-company, cross-domain collaboration scenarios. We successfully tested a running Web of Things made of
- Air conditioners
- Classic Raspberry Pi with extension shields
- Industrial automation controller
- Generic BACnet gateway
- Table fan
- Window curtains
- Wireless sensor nodes
- WoT-enabled Web browser
- Several scripted WoT apps exposing virtual Things
The PlugFest scenarios now covered all building blocks
- All devices registered their semantic Thing Description in a repository that allows SPARQL lookups
- The participating Things had Protocol Bindings for HTTP, CoAP, BACnet, and Lemonbeat
The highlights were probably
- A WoT app running in the browser to interact with Things using UI elements generated from the Thing Description
- A smartphone running a Servient that allows WoT-based access to off-the-shelf Bluetooth devices
- A wireless sensor node doing a semantic lookup to find our comfort voter and participating in the vote based on its temperature sensor
- A portable script moved to the industrial controller to control an air conditioner in Japan
- A semantic rule engine to control window curtains from a wireless brightness sensor
- Mashing up a BACnet controller and KNX room unit with a fan over Lemonbeat, an LED matrix over HTTP, and the voting sensor node over CoAP
This time, on-site participation was difficult for some of the previous PlugFest participants. Thus, we decided to move future PlugFests further toward remote participation and make reference implementations available online. Any implementer is invited to join to explore the current practices and to help leading the WoT activities into the right direction!
The next face-to-face meeting of the Interest Group will be in Lisbon, Portugal on 22-23 September 2016 as part of the W3C annual get together (TPAC 2016).
I’ve just returned from the IoT TechExpo Europe in Berlin. This event reflects the huge interest internationally in the potential for the Internet of Things. There were over one hundred exhibitions spread over two floors, along with 5 tracks. I was one of the panelists in a session on creating a standards framework for IoT as part of the Developer and IoT Technologies track. I followed this with a talk on tackling data security and privacy challenges. The talk covered the following topics:
- Understanding the unique challenges of security for the IoT, and preparing for the next evolutions of the technologies involve
- Addressing the risks of big data – greater volume of sensitive data creating a greater risk of data and identity theft, device manipulation, data falsification, IP theft and server/network manipulation etc.
- Enabling data security in IoT – protecting integrity, authenticity and confidentiality of information
- Exploring issues of privacy – to what extent users require privacy, and how it can be maintained whilst still making data useful
- The role of metadata and shared trust assumptions for end to end security across platforms
IoT security should worry us all, and we need to work together on pooling best practices and identifying where new standards are needed. By participating in the discussions your company can help to drive this and to benefit from discussions with other security experts. Security is an important topic for the Web of Things Interest Group so please join us to help build a more secure Web.
The Web of Things depends upon applications for its value. In the Interest Group. we’ve talked a lot about thing descriptions and APIs, but very little about applications, and I think this is holding us back.
A microcontroller may be dedicated to a single application. This is the model for the Arduino framework where each device is limited to one application sketch. For home hubs and cloud platforms we need to enable multiple applications to be installed and run. Some apps run in the background without a human machine interface, e.g. a data logger that stores sensor data onto a memory card or which uploads the data to the cloud. Other apps run in the foreground and require a human machine interface.
Imagine using a smart phone to access apps on your home hub. One of these will allow you to manage the installed apps. It will allow you to review the existing apps, to run them, to delete them, and even to install new ones. One way for this to work is for the home hub to act as a web server. At the minimum the hub will need to support HTTP, but it would be better if it can also support WebSockets for asynchronous bidirectional messaging. The hub would also need to support the protocols and communications technologies to access IoT devices.
When it comes to finding new apps to install, you would visit a website on the Internet that is trusted by your home hub. By this I mean that the hub provides the CORS headers that enable a script on web page loaded from an Internet site to communicate with the hub. The CORS header might enable any domain, with the hub requiring a certificate to be provided by the website. I can imagine the web page passing the URI for the app to the hub for it to download, subject to your approval. An app could be delivered as a zipped collection of files. The hub would verify their integrity and install them on local storage. The files would include the human machine interface for the apps, i.e. the HTML and related resources for the web page for accessing the app. The files would also include the scripts for accessing the things hosted by the hub as proxies for the connected IoT devices.
There are challenges for the smart phone to find the home hub, but I am confident that this would soon be overcome as the use of home hubs for smart homes becomes commonplace. Likewise, IoT devices need to be able to discover the hub and register themselves. Alternatively, the hub could discover the devices, but that doesn’t work so well for sleepy battery operated devices that aren’t listening for discovery probes.
Thing descriptions are metadata that describes how applications interact with things, and what protocols and communications patterns, platforms should use to access other platforms. If apps know about classes of devices and the protocols to access them with, then thing descriptions aren’t needed as the information is embedded in the app’s code. So what are the benefits for thing descriptions? They enable gateways to operate without needing to install apps for the given IoT devices, more generally they enable proxy chains, e.g. from an IoT device to a gateway to the cloud and finally to a web page on your browser. They enable services that combine data from different cloud platforms. They enable search and composition of services. They enable simpler applications which can interact with local software objects without needing to know about the communication patterns and protocols.
I am enjoying the slow process of implementing this as open source software, since being able to show people working examples is much more compelling than a slide presentation. My hope is that we can enable a thriving market of apps and services based upon open standards that lower the costs for integration across platforms and in doing so greatly expand the market potential.
Martin Alvarez Espinar is the manager for W3C España. He invited me to give a presentation on the Web of Things at the W3C Day on Wednesday 26th May in Gijón, a city in Asturias, Spain. After some introductions, we listened to a remote presentation by Szymon Lewandowski who presented the efforts of the European Commission on evolving industry towards a Digital Single Market. I followed with an introduction to the Web of Things and a brief account of the W3C Web of Things Interest Group and plans for a Working Group. There were talks about efforts by the Spanish government to promote the adoption of IoT technologies in the Spanish private sector. Panel sessions included Interoperability within the Industry of Things, Digital Enablers on the road towards Industry 4.0, Cybersecurity within IoT, Big data, cloud computing, and data analytics and Roads to Digital Transformation in the Industry 4.0. In the breaks we were able to visit the demonstrator stands. One applied a semantic based approach to monitoring light pollution due to city lights. Another looked at the potential for exploiting virtual reality. Martin has provided a longer account of the W3C day.