User Interface Development System

What is Chiron?

The Chiron system provides tools for assisting in the development of graphical user interfaces and provides a run-time system for managing and supporting their dynamic behavior.

The objective of the Chiron system is to reduce long-term costs associated with developing and maintaining graphical user interface (GUI) software. It achieves this objective by providing key interface layers which are resilient to change. In particular, Chiron strongly separates an application from its user interface code, as well as separating the user interface code from the underlying toolkit substrates. Chiron supports the construction of GUIs which provide multiple coordinated views of application objects and allows flexible restructuring of the configuration of those views. Chiron supports a concurrent model of control. While the Chiron architecture supports heterogeneous, multi-lingual systems, the development tools which are part of this release only support clients (applications) written in Ada.

Chiron is a serverized system. The Chiron server and clients run in separate Unix processes. Within a client, artists are active interface agents that are bound to one or more objects. They encapsulate decisions about how objects should be depicted (presentations) as well as how they behave dynamically (dialogs). Multiple artists can be bound to a single object, providing coordinated multiple views of that object. A Chiron client is made up of application code, a set of artists, and client support code. The client support code implements initialization, event detection and routing, and communication with the server. Client support code is automatically generated by client building tools.

Chiron leverages from commercial GUI layout tools. Specifically, Chiron can be used with Sun Microsystem's DevGuide tool to create artists. For those aspects of GUIs which DevGuide is incapable of supporting (e.g. drawing on a canvas), DevGuide and Chiron tools can be used to create an artist template into which the additional graphical aspects can be added programmatically.

The Chiron server manages all aspects of the user interface that are not artist or application specific. It can be thought of as a virtual machine providing a high-level graphical "toolkit" interface to artists by means of an Abstract Depiction Language (ADL). The server receives ADL instructions from the artists and uses them to create and manipulate an internal abstract representation of the graphical interface. The representation is rendered to a concrete depiction (a user viewable image) via calls to the underlying window system. The server also listens for events from the window system (button push, menu selection, etc) and translates them to Chiron events before shipping them back to the appropriate client. The Chiron server provides flexibility in terms of windowing systems and toolkits, application languages, and process inter-connection topology. Although we currently only provide support for Ada clients, it is feasible to provide other language-specific interfaces to the server's ADL.

The Chiron model is highly concurrent. Most components maintain their own, and possibly multiple, threads of control. Thus, unlike most user interface architectures, Chiron avoids imposing sequential control upon tools, allowing the tool, the user interface, and the server, to run in parallel.

System Requirements

Chiron 1.4 requires SunAda version 1.1, the X Window System, version 11 revision level 5, on a Sun 4 color or monochrome workstation. Chiron has been developed using the gcc compiler v2.5.8. The lasted Chiron 1.4 release has been successfully compiled under SunAda 2.1 running on Solaris 2.3. This version has also been successfully ported to an RS6000 under Verdix VADS 6.2.

Chiron makes use of XView version 3.0 and Motif version 1.2 to build the XView and Motif versions of the Chiron server. You will need at least one of these toolkits.

Chiron also requires Q v3.0, an Ada-C interprocess communication support utility and Arpc v402.3, an extension to Sun RPC/XDR 4.0, both developed by the Department of Computer Science, University of Colorado, Boulder. You must install Arpc and Q before installing Chiron. For convenience, copies of both Arpc and Q have been bundled in the Chiron 1.4 distribution.

Chiron Source and Papers

Chiron.1.4 Source
This tar file contains the sources for Chiron 1.4, Q, and Arpc. [4.3MB]
Chiron.1.4 Binaries for SunOS 4.1.2
Chiron.1.4 Binaries for Solaris 2.5
These tar file contains a binary versions of Chiron for those who don't have the software necessary to build Chiron. The binary distribution allows you to run the Chiron demos. You must have the full installation to build your own clients. [11.7MB]
Supporting Separations of Concerns and Concurrency in the Chiron-1 User Interface System
This document contains the most complete description of the Chiron-1 architecture. [240kB]
CHI93 Paper
The paper published in the proceedings of the 1993 Conference on Human Factors in Computing Systems. INTERCHI '93. [90kB]

Information on the latest patches.


All of the pictures listed below are screenshots of working applications developed using Chiron.
Flight simulator
This Chiron interface was developed for a preexsiting flight simulator application. Each instrument in the display is associated with a separate artist. The application manages a simple set of flight laws and continually updates the six degrees of freedom of the simulated aircraft. Artist's giving various presentations of the aircraft's state are attached to objects that define properties of the simulated aircraft.
The graphical user interface for the ProDAG program dependency analysis tool was developed using Chiron.
A distributed multi-player Tetris(tm) style game.
Arcadia Project at UCI
Department of Information and Computer Science,
University of California, Irvine, CA 92717-3425
Last modified: Thu Apr 18 02:54:25 1996