The Chiron-1 user interface system demonstrates key techniques which enable a strict separation of an application from its user interface. These techniques include separating the control flow aspects of the application and user interface: they are concurrent and may contain many threads. Chiron also separates windowing and look-and-feel issues from dialog and abstract presentation decisions via mechanisms employing a client-server architecture.
To separate application code from user interface code, user interface agents called artists are attached to instances of application abstract data types (ADTs). Operations on ADTs within the application implicitly trigger user interface activities within the artists. Multiple artists can be attached ADTs. providing multiple views and alternative forms of access and manipulation by either a single user or by multiple users. Each artist and the application run in separate threads of control.
Artists maintain the user interface by making remote calls to an abstract depiction hierarchy in the Chiron server, insulating the UI code from the specifics of particular windowing systems and toolkits. The Chiron server and clients execute in separate processes. The client-server architecture also supports multi-lingual systems: mechanisms are demonstrated which support clients written in languages other than that of the server, while nevertheless supporting object-oriented server concepts. The system has been used in several universities and research and development projects. It is available by anonymous ftp.