-
Robust
-
Errors in the server do not affect operation of the client.
This is achieved by having the server run as a separate process.
In this way, the client can continue execution even if the server dumps core.
Separation of the server also makes it easier to incorporate
new servers into the interface, by avoiding having to compile together
sources which use different programming languages.
-
Versatile
-
When new clients (resp. servers) are adapted to work with the
Designer's Interface, they can immediately be used with existing
server (client) modules.
This is done by standardization of
server communication,
and the client function definition.
Each client or server module has an associated specification file,
which is read by the interface to facilitate correct usage.
-
Rigorous
-
Each run is defined by a startup file.
The startup file is cross-checked for consistency against
the module specification files.
This ensures that variable references are correct and useful.
The startup file also serves as a record of the interface run.
The run can be recreated by simply reusing the startup file.
-
Productive
-
The interface allows server processes to be run concurrently.
rsh is used to control multiple processes on local and remote machines.
A perl script is used to save exit status information.
This is described in more detail on the
status information page.