WorkOrder

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:

  1. There will be a “default” scheme applied to the whole pipeline. This default scheme governs the pipeline if there is no dataset-specific scheme used (see next point), or whene dataset specific scheme does not make sense, such as when and after using GFXControlSignalModuleModel.
  2. For each dataset, a dataset-specific scheme can be defined. This overwrite the default scheme for the pipeline.

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:

  1. Users often do not know the pipeline good enough to decide which module is in or out.
  2. Allowing users to define workorder without restriction is error-prone. 1)
  3. Easier for the users.
  4. Predeined pipelineSchemes make WorkOrder accessible to more users.

Development Note

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.

  1. Whether or not WorkOrder is used, pipelineSchemes must be carried by the pipeline document.
    Otherwise we might find ourselves in the situation where WorkOrder is available but pipeline does not support it. Therefore, GFXPropertiesModelParser must parse and understand pipelineScheme
  2. Workorder should be spin out as a separate plugin.
    This allows its inclusion only if needed.
1) Nevertheless, the pipeline launch framework might one day choose to offer advanced user this facility
 
developers/topic/workorder.txt · Last modified: 2006/05/30 12:16 by co224
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki