The Web grew strong on the back of open source and a community of enthusiasts. Now, improvements in electronics are fuelling the Internet of Things, and we have a limited window of opportunity to create and establish strong open standards on a world wide scale for the IoT.
Right now, the IoT suffers from fragmentation and data silos. Without strong open standards, we’re likely to see competing proprietary solutions that increase the costs for developers and limit the potential.
W3C is one of the few organizations that can define global standards to enable discovery and interoperability of services on a world wide basis. We want to extend the Web from a Web of pages to a Web of Things.
The value proposition is enabling lowered development costs and unlocking data silos by bridging IoT platforms through the Web at a range of device scales from microcontrollers to cloud-based server farms.
We will do this via a core model of services in terms of metadata, events, properties and actions, that is bound to a variety of protocols as no one protocol will fulfill all needs. By bindings, we mean how to use the protocols to notify events and property updates, and how to invoke actions and return the results via REST based messages for each protocol.
The importance of this core model of services is that it simplifies the scripting of services by decoupling the details of the communication protocols. The server uses the models to automatically create local objects for scripts to interact with in place of having to directly drive the protocols. This makes it easier to build highly scalable servers which are free to use the protocols best suited to the requirements.
We would like to achieve this through open source projects for Web of Things servers for a number of different device types, and a start has been made with an implementation based on NodeJS. This is still at a very early stage, but it nonetheless suggests the potential.
The initial code uses HTTP to access the descriptions of “things” represented in JSON-LD, i.e. the semantics are founded on W3C’s work on Linked Data, but expressed with the simplicity of JSON. The messaging is built on top of WebSockets.
The idea is to extend this to support a wider range of protocols, including MQTT and XMPP as well as pure HTTP solutions. The roadmap calls for work on supporting richer metadata for security, privacy and communication patterns. We also are looking for help with work on device drivers, both for direct access, e.g. through GPIO ports on the device hosting the server, or through IoT technologies such as Bluetooth and ZigBee. We’re also looking for people interested in open source development of highly scalable cloud based servers, building on the firm foundation of existing projects.
To complement work on the software, we will need help with use cases, design and documentation, and with test frameworks and associated test suites. We’re also looking for people to apply the web of things to practical IoT projects and to share their experiences with the wider community, including helping with hackathons. There is a lot of fun to be had by hobbyists thanks to the low cost of microcontrollers, sensor, actuators and associated electronic components. There are also opportunities for businesses to exploit open standards as they emerge, and to avoid being locked into a particular vendor’s platform. A strong open source community will stimulate innovation and lower costs through shared building blocks and expertise that allows businesses to focus on the added value they offer to customers.
We welcome contributions to the open source projects whether extensions to existing server projects or to new ones like the NodeJS server cited above. If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue to the GitHub repository, and likewise if you have suggestions for new features. Even better you can submit a Pull Request with a fix.
We encourage you to join the W3C Web of Things Community Group where contribution and discussions will happen. Anyone can join and there are no fees. The Community Group hosts a publicly archived mailing list, blog and wiki. We can also collaborate on documents, e.g. on GitHub. So if you have ideas you want present or questions to ask please feel encouraged to do so. Together we can build a better Web!
The Community Group is at: https://www.w3.org/community/wot/
n.b. the Community Group has been quiet to date with most of the activity occurring in the associated W3C Interest Group, but I hope to change that as we kick start the effort on open source and applications. If you work for a W3C Member Organisation, you are also welcome to join the Interest Group.