Chiron User Interface Description


Chiron is a user interface development system developed at the University of California, Irvine. (See K. Forester, C. MacFarlane, M. Cameron, and G. Bolcer, Chiron-1 User Manual, Arcadia Document UCI-93-07, University of California, Irvine, Sept. 1993.) The data and functionality of the application for which an interface is to be constructed must be organized as abstract data types (ADTs). These ADTs are depicted by one or more artists that maintain mappings between ADT objects within the application and visual objects appearing on the screen.

The basic architecture of Chiron distinguishes between servers and clients. The Chiron server manages all aspects of a user interace that are not artist- or application-specific. It maintains an internal data representation that is rendered on the screen via calls to the underlying window system. The server also listens for events from the window system (e.g., button pushes) and sends them to the appropriate clients. A single server can support multiple clients.

A Chiron client comprises the application, the ADTs to be depicted, artists for those ADTs, and some runtime components that provide coordination among these components. The figure below gives a slightly simplified view of the architecture of a client, showing the main components and the connectors between them.

A Client Initializer is responsible for bringing up the initial client configuration. An Artist Manager provides an interface through which new instances of artists can be invoked dynamically and is used by the Client Initializer to construct the initial configuration of artists. The Artist Manager also can shut down an existing artist. The Application makes calls to its ADTs through wrappers that provide appropriate control of concurrent access and notify other Chiron components of changes in the state of the ADTs. The Artists maintain the graphical depictions of the ADTs. They indicate which events they are interested in by registering or deregistering with the Dispatcher, which routes the events from the ADTs to the appropriate artists. Artists manipulate their graphical depictions by making calls in the Abstract Depiction Language (ADL) that are routed to the server through the Client Protocol Manager. Events from the server, such as button pushes, are sent to the client through the Client Protocol Manager and distributed to the appropriate artists by the Mapper.

We have provided two different models of Chiron's event-handling code. The essential difference between the two models is that in the "Original Dispatcher" version, the Dispatcher is modeled as a single task which contains one array for each event in the system, as in the original Chiron code. The array keeps track of which artists are registered for that event. In the "Decomposed Dispatcher" version, the Dispatcher is decomposed into a subsystem with a separate task for each event, together with a single interface task which receives requests for registration, unregistration, and event notification. We constructed this subsystem so that no additional parallelism is introduced---if internal communications of the Dispatcher subsystem are hidden, the new system is observationally equivalent to the original one---but each task now maintains only a single array.

Back to Chiron User Interface

Back to Example Repository for Finite State Verification Tools