5.2.4 Configuration

The component execution framework must be informed from the end users which of the available components to utilize for an execution. Also components might offer customizable parameters which can be adjusted prior to execution. Hardcoding the parameters into the source code would be inconvenient, as changes to the parameters would require recompilation, quickly becoming unbearable especially with growing component numbers.

Therefore, a run-time configuration mechanism is required providing both, the set of components to be utilized as well as forwarding component-specific parameters to individual components where they are accessed and utilized. Obviously, the framework must process this data to setup the components and use their individual dependencies to derive an appropriate execution order via the previously discussed schedulers (Section 5.2.3).

The primary challenge of such a run-time configuration mechanism is to provide an intuitive and easy-to-use approach, capable of handling both small and large sets of components. For instance, command-line arguments are unfeasible, as with growing component numbers the parameter list would become irritating and thus prone to errors. For configuring applications usually either an input configuration file or a GUI is utilized. In this particular case, a configuration file approach merits special consideration as computing clusters typically only support command-line and job submission-based access. However, such an approach can also be paired with a GUI, allowing to generate configuration files in a convenient and decoupled manner, thus favoring framework utilization by end users.