Archive Software Developer's Guide

System Architecture

The main goal in designing the system architecture consisted in developing the foundation of a universal software framework, which can not only be used for the Ulysses/SWICS project, but for a multitude of other scientific data processing applications. This has been achieved by specifying well defined software interfaces between all application specific modules. Thereby the individual software modules may easily be extended or replaced, which allows to implement a flexible system that can be adapted to new data formats and analysing requirements without the need to change the underlying software architecture. Through the use of object oriented design methods and the implementation with C++, software extendibility and the adaptability to new requirements are further improved.
The software framework, which is the basis to build the various scientific data processing applications from, is called CAPPA (Customisable Architecture for Processing Pipeline Applications). The CAPPA framework uses a layer based architecture with standardised interfaces to all its external components. Each layer consists of several distinct modules which are dedicated to specific tasks. The following diagram shows a schematic overview of the system and its constituents:
The diagram shows the CAPPA software framework composed of several modules and its external components consisting of the Web-Application and the different data files. Within the CAPPA framework the two simpler standalone Ulysses/SWICS applications, SAGEN and SAPRO, are depicted also. These applications are built from the same basic components as the CAPPA framework, but have less functionality and therefore do not need all the modules from the framework. The following paragraphs give a more detailed technical description of the framework and the Ulysses/SWICS applications.

The CAPPA Software Framework

The different modules of the CAPPA framework may functionally be arranged into four distinct layers. The most basic layer upon which all others are built, is the Base Data Services Layer. This layer allows the conversion between various data formats through different data import and export filters. These filters can be added to the system dynamically at runtime through a generic data import/export software interface. The following layer is the Extended Data Services Layer, which offers more sophisticated functions for data processing and searching. These two layers together make up the Data Input/Output Subsystem and have a close interrelation.
The Data Analysis and Visualisation Layer uses the services of the Data I/O Subsystem to analyse and pre-process the data for subsequent data display and visualisation. This layer also implements a generic software interface for the integration of plug-in filters for special purpose algorithms and analysing functions.
The User Interface Layer is responsible for providing an intuitive User Interface (UI) for the functionality contained in the underlying layers. Depending on the application usage, the UI may either be a sophisticated Graphical User Interface (GUI) or a more simple Command-Line User Interface (CUI) as it is the case for the SAGEN and SAPRO applications.

SWICS Archive Generator (SAGEN)

The SWICS Archive Generator will be the application used for the actual Ulysses/SWICS archive data production. The main capabilities needed to generate the archive data, are the extraction of the relevant records from the Experiment Data Record (EDR) file and the conversion to Common Data Format (CDF) formatted files. This functions will be part of the services being offered by the Base Data Services Layer. Additional functions are required for the generation of the corresponding metadata information, which need also to be stored in the data archive.
Because the SAGEN application uses only a simple Command-Line Interface, it can easily be ported to different platforms and can be used for the batch-processing of large data amounts.

SWICS Archive Processor (SAPRO)

The SAPRO application is the only software which will be part of the Ulysses/SWICS data archive. As the archive stores the SWICS instrument count rate data separately from the instrument calibration data, the SAPRO application is essential to produce the actual science data.
The functionality to accomplish this task requires the software to be able to read CDF files and the appropriate metadata information from the archive, as well as it needs to provide the necessary algorithms to extract and compute the physical solar-wind parameters. Because of portability reasons, the SAPRO software will reside in a single executable file and the User Interface will be command-line oriented. SAPRO may therefore be used as a standalone command-line application or may be invoked through a Web-Application, which will provide a user-friendly interface without restricting software portability.

Software Design and Implementation

A detailed technical description of the software design and implementation can be found in the CAPPA Reference.