There is broad agreement about the huge potential for services for the Internet of Things (IoT) across a wide range of application domains, e.g., homes, offices, healthcare, cities, electrical grids, retail, and manufacturing. However, this potential is being held back by fragmentation with a lack of interoperability across platforms, a bewildering variety of standards, and a rapid evolution of the low-level IoT technologies themselves.
The W3C Web of Things (WoT) seeks to counter the fragmentation of the IoT by using and extending Web standards (e.g., metadata and APIs) and providing re-usable technological building blocks in order to enable easy integration across IoT platforms and application domains. This is expected to drive down the costs and risks involved in developing services, and help realizing the full potential for the IoT. In short, W3C WoT seeks to extend the Web from a Web of pages to a Web of Things.
The abstract architecture of the Web of Things spans from the device level over edge nodes such as gateways to the cloud. The technological building blocks are intended to be of use at any level and foster a Web-like experience for the Internet of Things. A detailed introduction to the abstract architecture and deployment scenarios, but also use cases and requirements can be found in the Web of Things (WoT) Architecture document, a W3C Working Draft.
The Eclipse Thingweb project is intended as open-source toolkit for the Web of Things ecosystem with modular implementations of the technological building blocks standardized by the W3C. The toolkit may include implementations of the same building block for different platforms, frameworks, or languages. The initial building blocks currently being standardized are:
- Web of Things (WoT) Thing Description
- Web of Things (WoT) Binding Templates
- Web of Things (WoT) Scripting API
Once these documents reach Candidate Recommendation status, the W3C WoT activity intends to re-charter the WoT Working Group to standardize the next set of building blocks. This is being explored and identified by the WoT Interest Group, which operates in parallel to the Working Group. Thingweb intends to grow with new building blocks being defined in the future. This may include early work by the WoT Interest Group that is not part of the standards track yet.
Furthermore, Thingweb shall include auxiliary tools for the WoT ecosystem such as user interfaces or visualizers for Things, converters to the Thing Description and its serializations, semantic processors around the Thing Description, etc.
The Eclipse Thingweb project will start with three sub-projects in the toolkit:
Thingweb node-wot
node-wot is the official reference implementation of the W3C WoT Working Group and implements the so-called "Servient Architecture":
node-wot provides a WoT Thing Description parser and serializer, several "Protocol Binding" implementing the WoT Binding Templates, as well as a runtime system ("WoT Runtime") providing the WoT Scripting API for applications. It is based on Node.js and its fundamental module structure.
Thingweb Directory
A Thing Directory is a directory service for WoT Thing Descriptions (TDs) that provides a Web interface to register TDs (aligned with draft-ietf-core-resource-directory) and look them up (e.g., using SPARQL queries or CoRE Link Format). The Thingweb Directory implements this service using the Apache Jena triple store and SPARQL endpoint.
Thingweb WebUI
Thingweb also intends to provide tooling around the Web of Things ecosystem. The WebUI is an AngularJS browser app to visualize TDs and enable the interaction with Things from the Web browser.
FORM DOES NOT ALLOW TO SELECT NONE OF THE LISTED LICENSES -- MIT DOES NOT APPLY
[v] W3C Software Notice and License
Part of Thingweb is used as official reference implementation by the W3C Web of Things Working Group. Thingweb thus needs to be published under the W3C Software Notice and License. This license is basically an MIT license that also grants royalty-free usage for any purpose.
While there are already a number of committers for the existing implementations from standardization, the W3C Web of Things will only succeed with a broad acceptance also in the IoT developer community. Eclipse IoT is seen as the best fit, as "Eclipse IoT provides the technology needed to build IoT Devices, Gateways, and Cloud Platforms", and hence is spot on the W3C WoT idea of technological building blocks that span all levels of IoT systems.
The 2.0 release of Eclipse Thingweb is expected after a Working Group re-charter and the next set building blocks reaching W3C "Candidate Recommendation" status.
In addition, Thingweb aims for broadening the building block implementations to other platforms, frameworks, and languages, and for enriching the toolbox with the help of the Eclipse IoT community.
The initial contribution is already available under https://github.com/thingweb/.
Assuming the project proposal is accepted, there would be an initial release that implements the status of the W3C "First Public Working Drafts" of the building block specifications mentioned above. For each following W3C "Working Draft" release, there would be another Thingweb release. Note that these will be "0.*" releases.
The 1.0 release of Thingweb is expected with the acceptance of the Working Drafts as W3C "Candidate Recommendation".
After that 1.* releases will follow for bugfixes and adoptions of new features.
Organizations
- W3C Web of Things Working Group
- W3C Web of Things Interest Group
Companies
- Siemens AG
- evosoft GmbH
- EcoG GmbH
- Intel Corporation
- Ericsson AB
- CEA Tech
- EURECOM
Thingweb node-wot
License: W3C
Language: TypeScript / JavaScript
Dependencies:
- Node.js (MIT)
- NPM modules (all MIT)
Thingweb Directory
License: MIT (to be changed to W3C)
Language: Java
Dependencies:
- Apache Jena (Apache 2.0)
- Eclipse Californium (EPL+EDL)
- Eclipse Jetty (Apache 2.0 / EPL)
- Apache Lucene (Apache 2.0)
Thingweb WebUI
License: MIT (to be changed to W3C)
Language: JavaScript / HTML
Dependencies:
- Angular Material (MIT)
- Monaco Editor (MIT)
- Log in to post comments
I support this proposal
Submitted by Michael McCool on Mon, 10/30/2017 - 00:36
This set of projects is in support of an important W3C standards initiative for the Internet of Things. The code in questoin is likely to get used in commercial embedded devices and other IoT products, such as gateways, and so it is very important that the code be managed well. Placing these projects under Eclipse will help to provide these assurances.
Michael McCool, Principal Engineer, Intel