March/April 2002

Technology Trends

Building User Interfaces for Multiple Devices

By Jim A. Larson

Users can choose from among several devices to access the World Wide Web. These devices include (a) PCs with a visual Web browser, such as Netscape’s Navigator or Microsoft’s Internet Explorer, to interpret HTML files downloaded from a Web server and executed on the PC; (b) telephones and cell phones with a verbal browser to interpret VoiceXML files downloaded from a Web server and executed on a voice server; and (c) WAP phones with a visual browser to interpret WML files downloaded from a server and executed on the WAP phone.

Additional devices, expected to appear shortly, include PDAs with wireless connections to a server that supports both visual and audio interfaces, wearable devices such as a display and microphone on a wristband and a speaker in the user’s ear that will support both visual and audio interfaces, and other devices or combination of devices that support visual and audio user interfaces.

How can developers create a single application to support these various devices? By separating the application implementation from each user interface implementation. Figure 1 illustrates an architecture to support multiple devices with differing modes of input/output. This architecture consists of:

 

Each user interface supports different requirements. For example, a telephone user interface may require a system-directed dialog in which the user responds to a series of questions, while a PC user interface may be user-directed in which the user selects and initiates actions.

In order to isolate the application from each of the user interfaces, the application should support a single data structure that can be used by each user interface. One such format uses XML. Data expressed in the XML format is translated to the format required by each user interface. For example, consider a flight query application in which the user requests the arrival time and gate for a specific flight. This data could be described using XML tags as illustrated in Figure 2.

 

The arrival information can be extracted, translated, and presented to the user as one or more controls. A control (sometimes called an interactor or widget) is a technique for presenting information to the user and/or soliciting information from the user. Different devices use different controls. For example,