Components

../_images/sdp_components.svg

SDP components and the connections between them.

The diagram shows the components of the SDP system and the connections between them. The components, grouped by their function, are as follows.

Execution Control:

  • The Configuration Database is the central store of configuration information in the SDP. It is the means by which the components communicate with each other.
  • The Controller Tango device is intended to provide the top-level control of SDP services. Presently, it performs the state transitions in response to commands, reports the statuses of SDP components on the components attribute and updates the healthState based on components’ statuses.
  • The Subarray Tango devices control the processing associated with the SKA subarrays. When a processing block is submitted to SDP through one of the devices, it is added to the configuration database. During the execution of the processing block, the device publishes the status of the processing block through its attributes.
  • The Console provides a command-line interface to the configuration database to control and monitor the system.
  • The Processing Controller controls the execution of processing blocks. It detects them by monitoring the configuration database. To execute a processing block, it requests the deployment of the corresponding script by creating an entry in the configuration database.

Platform:

  • The Helm Deployer is the service that the platform uses to respond to deployment requests in the configuration database. It makes deployments by installing Helm charts (a collection of files that describe a set of Kubernetes resources) into a Kubernetes cluster.
  • Kubernetes is the underlying mechanism for making dynamic deployments of processing scripts and execution engines.

Processing Block Deployment:

  • A Processing Script controls the execution of a processing block. Processing scripts connect to the configuration database to retrieve the parameters defined in the processing block and to request the deployment of execution engines.
  • Execution Engines are the means by which data are processed. They typically enable distributed execution of processing functions, although scripts may use a single process as a serial execution engine.