DRAMA: an environment for distributed instrumentation software

The DRAMA software environment has been developed at the Anglo-Australian Observatory to facilitate the development of instrument and telescope control systems. It is designed to run on a distributed system consisting of machines running a variety of operating systems including UNIX, VAX/VMS, and VxWorks. DRAMA builds on ideas from the ADAM system in use at a number of observatories. It is based on the concept of a `task' which is a software object which responds to messages requesting it to perform actions. The message system provides network transport using TCP/IP as well as optimized local transport for each machine. Messages are encoded using a self-defining hierarchical data system (SDS) which allows complex data structures while transparently handling differences in machine architecture. Tasks are coded using a standard event driven structure which can be used for applications ranging from low level real-time systems to user interfaces. The latter are developed using the Tcl/Tk package incorporated into DRAMA tasks.