Web Applications on Devices

Hervé Ruellan

Introduction

From its initial inception as a hypertext system, the Web has evolved and now provides not only rich media documents but also various applications. Those Web Applications started as simple HTML forms but now offer more power and flexibility using technologies such as Web Services and AJAX.

Nowadays the Web still uses the Client-Server paradigm and is mostly targeted at PC clients. The Client-Server paradigm remains strong as most Web servers are handled at least by PC or by dedicated servers, even if there are light devices (such as printers) that contain HTTP server. Furthermore light devices that provide functionalities over the Web usually restrict them to some configuration handling. At the same time, the main client targeted by Web servers is the PC. Even if there are some Web browsers for light devices such a PDA or cell-phones, most Web sites are designed for PC Web browsers. The notable exception is the success of i-mode. I-mode is however only similar to the Web (using Web-like technologies), but is not integrated with the Web.

Therefore there is a twofold axis of evolution for the Web which should bring the richness of the Web to any device and move to a peer-to-peer paradigm.

The Web tomorrow

Device connectivity today

Today, devices are generally connected through a PC acting as a HUB, but device-to-device connection is a more and more common pattern. One example is the connection between a digital camera and a printer: a few years ago, this was realized through the PC which acted as a storage server for the digital camera's photos and as a controller for the printer. Nowadays, most digital cameras and most printers are able to communicate directly, allowing the user to print its photos without going through the PC.

Most connections between device and PC or between devices use specific protocols (such as PictBridge for direct printing from a camera). This results in ad-hoc communication systems for specific applications.

Web Applications for any Device

To reach the full communication power we know today with the Web, it is necessary to use standard protocols as a common communication base between devices. Using Web standards is the logical way to go, with the restriction that those standards need to take into account the constraints of devices.

Including a full grown browser on a device would allow it to access the full power of Web Applications. Even if the device is limited to use only part of the Web Applications due to its constraints, this would empower the device with much more extensibility than today's built-in external service support.

Web Applications from any Device

Reaching Web Applications from any device is only the first part of the evolution. To enable the communication between any two devices, one of them has to provide its functionalities as a Web Application. It is therefore necessary to embed a Web server into each device. This server can be a specialized server dedicated only at exposing the functionalities provided by the device.

Full Device communication

Having a Web Application in every device allows communication to be established from any device. In the camera-printer example, the user can either choose to use the camera to send pictures to the printer or to use the printer to fetch picture from the camera (or even take picture through the camera).

This goes even further as a user may choose to use together two devices created independently and to create applications unforeseen by the manufacturers of those devices.

Technology in use

To enable Web Applications on devices, several technologies are at stake. First, a device needs to discover other devices and to discover the services published. Then it needs to connect to those services and allow its user to interact with them. Last it should close any connection and clean-up itself. For all those steps, there is a need for transversal technologies such as security, quality of service...

Discovery

The first step before any interaction is for a device to discover other devices. This discovery step should be communication layer agnostic and go through the communication boundaries (USB, 1394, Wifi, Ethernet...).

After discovering a device, the second step is to discover the services it provides. For Web Services, this can be done through protocols such as WSDL. However for Web Applications in general, some higher level protocol is probably needed. Furthermore, service description should contain some human-readable part for allowing a user to choose which Web Application he wants to use.

A specific kind of service that can be provided is access to a greater or different network. This is the case of cell-phones or PC that can provide Web access to other devices.

Another aspect of discovery is to check that the client device has sufficient resources for handling a given Web Application. Many constraints may prevent a device to use a given Web Application: display capacities, input possibilities, processing power, supported technologies...

Interaction

Once the discovery is done and the user has chosen (directly or indirectly) a Web Application to use, the devices will interact together. Most interactions will start by providing some kind of user interface for the Web Application. Those interfaces can be implemented by technologies such as XHTML, Javascript...

The interaction itself can be implemented either directly through HTTP commands or using higher level protocols such as SOAP.

Whereas such technologies are commonly used today to provide Web Applications, several aspects of those technologies or of their combination still need to be better described, probably by undergoing through a standardization process.

Cleaning-up

The last step of the interaction is to close all communications and clean-up. This process should not be taken lightly as there are several needs to be met for satisfying users. First, the interaction should be finished in the best possible way in the case of unexpected communication breakage (and it should be possible to continue an interaction after restoring the communication). Second, all resources involved in the interaction should be freed to not hinder further use of either device. Third, for some applications, roaming capacities will be expected from the user, therefore closing a device interaction may be only one step of a more global process.

Security

Opening devices to the world mandates including security in them. Security will be build using core security technologies (such as encryption, signature...), but need also to be taken into account in all the technologies included in the devices.

In a similar way, some applications will require specific transversal functionalities such as quality of service, localization...

Conclusion

As devices are getting more powerful, offer more functionality and are spreading everywhere, users will want to connect them together to combine their functionalities. Enabling Web Applications on any device both enables to connect them and offers a tremendous amount of new possibilities.

Therefore, it should be a goal for the W3C to standardize the technologies needed for embedding Web Applications on devices.