Web applications: discovering and binding to services
The Device APIs (DAP) Working Group is currently working towards a draft specification for discovering and binding to services on nearby devices. This follows on from discussions in the Home Networking Task Force in the Web and TV Interest Group. The use cases include scenarios such as using a smart phone to discover content on a personal video recorder, and controlling its playback on a TV set. In this particular use case, the three devices are likely to be connected via the same WiFi network, and controllable via HTTP. The personal video recorder and TV are also likely to support current discovery protocols such as SSDP for UPnP or multicast DNS. More details are given in the Web and TV Interest Group Report.
There is no reason to limit web applications to accessing services over WiFi, as there are many services that are either exposed directly by a device, or indirectly via USB, Firewire (IEEE 1394), Bluetooth or other interconnect technologies such as ZigBee (for sensors) and NFC. A proof of concept was developed in early 2011 as a browser plugin for mDNS, SSDP, SLP, USB and Bluetooth. This suggests that a W3C discovery and binding API should work with a range of interconnect technologies and discovery techniques.
Another challenge is safeguarding users' privacy. If a web application can scan the local environment, it could use the results to create a digital fingerprint identifying that user, and provide targeted advertisements based on knowing just what devices the user owns. One solution would be to allow the web application to request a given kind of service, and leave it to the browser to present a list of matches to the user, and let users pick the one that they want to use. The application is handed the chosen service, but doesn't get any further information about the devices and services available in the local neighborhood.
A further idea is to allow users to tag their devices and services with names that indicate the kind of service, its location and even who owns it (in the case of shared access). This is inspired by the success of user supplied tags for Web 2.0 applications such as photo sharing and blogging as well as experience with AppleTalk and Bonjour. Such tags would allow users to see at a glance what services are available, and to filter results by typing in one or more tags. This is where the Web of Things comes face to face with Social Networks. People will want control over which services other people can use, based upon their social relationships. The discovery and binding API should allow users to find and access services whether local or remote, based upon their sharing preferences. The webinos project advocates that this should be done based upon the notion of Personal Zones which provide a means for users to manage their personal devices and services.
Discussions in the DAP Working Group on discovery and binding are still at an early stage with initial proposals from Opera Software and CableLabs, and from the webinos project. If you have an interest in the potential for enabling web applications to discover and access services, and have some suggestions for use cases and requirements, you are cordially invited to join the DAP Working Group, or at the very least to let us know about your ideas.