WorkOrder is the name given to the optional subsystem of genericFX that allows various modules of the pipeline to be skipped. It is kept as optional to keep the Pipeline Engine as simple as possible.
WorkOrder is created in recognition that sometimes, a lot of unnecessary processing time can be avoided if one can skip modules if certain conditions are met. For example, this is a “touch up” processing where only certain data need to be reprocessed.
WorkOrder is only used to fine-tune data-processing. It is still the goal of the data processing to push the data through the complete pipeline.
To use Workorder, the pipeline developer must specify different pipelineSchemes. Each pipelineScheme specify which modules in the pipeline is to be skipped/runned. (pipelineSchemes are stored in pipelineSchemeCollection in the gfxPreference section of the pipeline document.). The users then choose the scheme to be used. The actual module skipped/runned is based on this rule:
GFXControlSignalModuleModel.These specialists scheme will be predfined and available to all pipelines:
| Scheme ID | Description |
|---|---|
| RUN_ALL_SCHEME | Do not skip any modules |
| SKIP_ALL_SCHEME | “Default Scheme” :Skip all modules. “dataset-specific scheme” : remove the dataset completely from analysis as if it was never there in the first place |
| PIPELINE_DEFAULT_SCHEME | Special identifier to set the default scheme for the pipeline. This will be the scheme for all job if a job-specific scheme is not specified. If absence, assume equals to RUN_ALL_SCHEME. Used only in job element. Illegal as pipeilineScheme. |
The reasons for pipelineSchemes to be predefined by pipeline developers, rather than allowing users to define them themselves is pracmatic:
pipelineSchemes make WorkOrder accessible to more users.At present, WorkOrder is to be implemented part AspectJ part POJ (Plain Old Java). The idea is to use AspectJ to control whether Workorder is available or not and not to modify existing minimalistic pipeline engine.
pipelineSchemes must be carried by the pipeline document. GFXPropertiesModelParser must parse and understand pipelineScheme