The purpose of this document is to define the functional specification for the Status Server. The functional specification documented here is based on a set of previously defined requirements. The full set of requirements will not be repeated in this document, so please read the ``Status Server Requirements'' document.
The goal of the Status Server is to serve as an open repository of status and state information easily available to any client within the CFHT network. Clients will be able to view, update, and place monitors on data elements within the server. One key area where the Status Server will be used is as the staging area for the building of FITS files, replacing the current template files.
There are essentially two components which make up the system referred to as the ``Status Server''. The main component is the Server itself, which contains the information stored by clients. The second component is the client. The ``Status Server'' project requires that a robust API library be available for clients to interact with the server. It is the responsibility of the client API library to hide the details of the socket protocol used to create, update, and retrieve Status Server information. This document will outline a proposed client-side C API and discuss the underlying functionality the API library and Status Server will support in order to service the client-side requests.
The first draft of this document must be reviewed by the members of the software group and will be amended following review.
Unless otherwise noted, the functional specifications identified in this document are intended to be implemented in the first release of the Status Server. However, release requirements may dictate the priority and staging of functionality.