A telescope system is composed of a set of real-world objects that are mapped onto software objects whose properties are described in XML configuration files. These XML files are processed to automatically generate user interfaces, underlying communication mechanisms, and extendible source code. Developers need not write user interfaces or communication methods but can focus on the production of scientific results. Any modifications or additions of objects can be easily achieved by editing or generating corresponding XML files and compiling them into the system.
This framework can be utilized to implement servo controllers, device drivers, observing algorithms and instrument controllers; and is applicable to any problem domain that requires a user-based interaction with the inputs and outputs of a particular resource or program. This includes telescope systems, instruments, data reduction methods, and database interfaces. The system is implemented using Java, C++, and CORBA.