Automation Requirments within CCP4i
Basic requirement is to develop a mechanism for automatically running
several CCP4i tasks in a (potentially non-linear) sequence.
Developer/Programmer Requirements:
- Must be extensible (to accomodate new programs/tasks, extra steps or
procedures, new branch points etc into existing supertasks)
- Must be transparent/"easy to program" (so developers can write their
own supertasks)
- Must be able to cope with complex non-linear logical flow:
- branches
- forks
- (nested) loops
- Must be able to cope with "decision-making", either internally or from
an external source (which would be able to handle diverse and arbitrarily
complicated criteria for making decisions, i.e. expert system)
User requirements:
- Must be able to stop and (re)start from an arbitrary point in the
procedure
- Must present an input interface which allows customisation of the
procedure (user can make key decisions, alter criteria for decision
making) and represent the logical flow in an easily understandable
manner
- Must present an output interface which allows:
- actual logical flow to be represented such that it can
be easily followed and understood by a user reviewing task
progress
- output to be viewed at varying levels of detail ("information
resolution") e.g. success/failure at one extreme, full log file
at the other
- full information about any automatic decesions
- feed back into the input interface for restarts
Peter Briggs 27th Apr 2001