UIML: A Device-Independent User Interface Markup Language
Files
TR Number
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
This dissertation proposes a comprehensive solution to the problem of building device-independent (or multi-channel) user interfaces promoting the separation of the interface from the application logic. It introduces an interface model (Meta-Interface Model, or MIM) for separating the user interface from the application logic and the presentation device. MIM divides the interface into three components, presentation, interface, and logic, that are connected with abstract vocabularies designed in terms of user chosen abstraction. The logic component provides a canonical way for the user interface to communicate with an application. The presentation component provides a canonical way for the user interface to render itself independently of the platform. The interface component describes the interaction between the user and the application using a set of abstract parts, events, and method calls that are device and application independent. MIM goes one step further than earlier models and subdivides the interface into four additional subcomponents: structure, style, content, and behavior. The structure describes the organization of the parts in the interface, the style describes the presentation specific properties of each part, the content describes the information that is presented to the user, and the behavior describes user interaction with the interface in a platform-independent manner. This dissertation also presents the second version of the User Interface Markup Language (UIML2), a declarative language that derives its syntax from XML and realizes the MIM model. It also gives the design rationale behind the language and discusses the implementation issues for mapping UIML2 to various devices (Java/JFC, PalmOS, WML, HTML, and VoiceXML). Finally, this dissertation evaluates UIML2 in terms of its goals, and among the major ones are to provide a canonical format for describing interfaces that map to multiple devices and to generate one description of a user interface connection to the application logic independent of target device.