This paper motivates and describes a document-centric framework for component-based distributed systems. In the framework, XML documents are associated with programs that provide either static, immutable interface descriptions as advertisements of functionality at the server-side, or specification of manipulations of these server descriptions to express their usage at clients. We illustrate how the framework allows for 1) remapping of a portion of an existing user interface to a new room control (for example, due to movement of the terminal) 2) viewing of arbitrary subsets and combinations of the functionality available, and 3) mixing dynamically-generated user interfaces with existing user interfaces.
The use of a document-centric framework in addition to a conventional object-oriented programming language provides a number of key features. One of the most useful is that it exposes program/UI to referent objects mappings, thereby providing a standard location for manipulation of this indirection.