Interfaces to the Internet of Things with XForms
ERCIM News Issue 101
XForms is a language for describing interfaces to data, designed at W3C by researchers from industry and academia. It is a declarative language, meaning it describes what has to be done, but largely not how. The interface it describes does not have to run locally on the machine producing the data, but can be run remotely over the network. Since Internet of Things (IoT) computers typically have little memory and are low-powered, this makes XForms ideally suited for the task. One of the unexpected successes of HTML was its adoption for controlling devices with embedded computers, such as home Wi-Fi routers. To make an adjustment to such a device, the user directs the browser to the IP address from which it is running and a small web server on the device serves up web pages that allow the user to fill in and submit values to change the working of the device. However, the tiny embedded computers that form part of the IoT typically have memory in kilobytes, not megabytes, and lack the power to run a web server that can serve and interpret web pages. This calls for a different approach. One approach is for the devices to serve up only the data of the parameters, so that those values can then be injected into an interface served from elsewhere. XForms , a standard that we have helped develop at W3C, is designed for exactly this type of scenario: although it is a technology originally designed for improving the handling of forms on the web, it has since been generalised to more general applications; version 2.0 is currently in preparation .