Rhys Lewis, Ph.D
W3C Technical Architecture Group Member
Chief Scientist, Volantis Systems Ltd.
1 Chancellor Court
Occam Road
Surrey Research Park
Guildford GU2 7YT
United Kingdom
+44 (1483) 739775
New devices that can connect to the Web continue to appear regularly. Most of these devices can be used while the user is mobile. Newer devices often have more advanced capabilities than the more traditional computer systems that are commonly used for web access. For example, a significant number of new devices now have built-in support for the Global Positioning System [1] for determining their location.
The diversity of capability of such devices has been a challenge for authors of web sites and applications. Not only do such devices vary in the markup languages and styling mechanisms they support, there are very significant physical differences between them too. Screen sizes, keyboard capabilities and the presence or absence of a pointing device are just a few of the many differences that can occur between devices.
One approach to helping authors with this level of diversity in capability is based on content adaptation [2]. Authors create content in a device-independent manner, using markup languages such as DIAL [3]. Together with appropriate styling information and media, these materials are used by adaptation systems to create representations of web pages suitable for the device accessing the site. Volantis has many years of experience in creating systems that enable content adaptation to be used to support literally thousands of different types of device.
Content adaptation has been very successful as a technique for allowing specially authored web pages to be accessed on a huge variety of different devices. However, to date the focus of the approach has been on ensuring that pages can be rendered appropriately so that they are usable. With increasing capabilities in devices comes increasing interest in the ability not only to render pages but to enable novel, distributed applications. Volantis is already pursuing solutions that support such environments.
One of the interesting features of device-independent authoring approaches is their ability to retain the author's intent. Whereas languages such as HTML tend to focus on presentation, newer markup languages tend to retain more semantic information. The similarity between the challenge of delivering sites to a wide variety of different devices and the challenge of supporting users with disabilities has often been noted. The role of semantics in possible solutions has also been described (see for example [4]). A significant amount of semantic information is needed in order to render a page appropriately for a particular device and user.
Content adaptation addresses the diversity in device capabilities associated with page rendering. However, devices also differ hugely in their ability to run applications locally. Different hardware and software architectures and differences in operating systems mean that it is usually necessary for authors to create multiple versions of applications in order to support a wide range of devices. This increases the cost of application development and reduces the availability of applications.
One possible solution to this issue could be to exploit web technologies to provide common platforms that behave the same way on a wide variety of different devices. Browsers containing the appropriate kinds of technology are now beginning to appear on the most capable mobile devices. Features such as JavaScript support are increasingly common. This kind of capability can provide the basis for application adaptation, the next logical step beyond content adaptation.
In application adaptation, not only is the rendering of content adapted for specific devices, the application behavior is as well. Authors specify application behavior in some manner, perhaps as a set of policies that could differ between different delivery contexts. Adaptation processing then generates the appropriate combination of markup, scripting, styling and whatever else is required to implement that behavior on a specific device. This approach is an extension to the existing mechanisms used for content adaptation in which aspects of styling, layout and use of media are specified by so-called policies that authors use to tailor the resulting materials for different delivery contexts.
Clearly, a key aspect of support for application adaptation is a representation that captures the author's intent not only for the look and feel of the application but also for its behavior. Some mechanisms that might provide the basis for this are already starting to appear. In the W3C, XForms [5] defines some key capabilities for application construction. The XML Binding Language [6] is another specification that may have a role to play in more abstract definitions of applications. It provides a way to link user interface artifacts with content models. It has been used, for example, to add novel user interface controls to XForms-based applications. Also, work on stand-alone widgets [7] is progressing. Widgets are units of function that have some associated behavior and semantics beyond simply presentation. Although currently rather limited, widgets point the way to abstractions that capture behavior in addition to presentation.
So far, however, other work on application construction has tended to concentrate on helping programmers generate code that can run on a device to participate in an application. Little attention seems to have been paid to the notion that page authors should be able to construct a reasonably wide range of web-based applications that can run on a wide range of devices without needing to resort to explicit code development.
It is, of course, possible to create markup languages that mimic procedural programming languages. VoiceXML [8] is an example of a successful language that takes this sort of approach. However, Volantis feels that approaches ought to be possible where the intent of an author is captured in a declarative rather than procedural fashion. Languages like State Chart XML [9] seem to point the way to alternative methods for representing applications in terms of states and transitions. These sorts of representation, which we refer to as 'declarative', seem to be not only suitable for representation in markup but also suitable for generation by graphical tools. For example, the state chart diagrams of UML [10] might provide an interesting graphical representation that could be converted into an appropriate, declarative application markup language.
Volantis Systems is keenly interested in pursuing the notion of declarative models of distributed web applications. We feel that the approach could provide the basis for widely available, compelling applications available on a wide variety of devices. We also feel that the approach may also enable improvements in access to sophisticated systems for people with disabilities.
[1] Global Positioning System, Wikipedia (see http://en.wikipedia.org/wiki/Global_Positioning_System)
[2] Glossary of Terms for Device Independence, R. Lewis, 2005, (see http://www.w3.org/TR/di-gloss/)
[3] Device Independent Authoring Language (DIAL), K. Smith, 2006, (see http://www.w3.org/TR/dial/)
[4] The Meaning of 'Life': Capturing Intent from Web Authors, R. Lewis, 2006 Proceedings of the 2006 international cross-disciplinary workshop on Web accessibility (W4A): Building the mobile web: rediscovering accessibility? (see http://portal.acm.org/citation.cfm?doid=1133219.1133231 – free ACM account required to access the full text)
[5] XForms 1.1, J Boyer, 2007 (see http://www.w3.org/TR/xforms11/)
[6] XML Binding Language (XBL) 2.0, I.Hickson, (see http://www.w3.org/TR/xbl/)
[7] Widgets 1.0, A. van Kesteren and M. Caceres, 2006, (see http://www.w3.org/TR/widgets/)
[8] Voice Extensible Markup Language (VoiceXML) Version 2.0, S. McGlashan et. al., 2004, (see http://www.w3.org/TR/voicexml20/)
[9] State Chart XML (SCXML): State Machine Notation for Control Abstraction, J. Barnett et. al. (see http://www.w3.org/TR/scxml/)
[10] Unified Modeling Language, Wikipedia, (see http://en.wikipedia.org/wiki/Unified_Modeling_Language)