-
Executable
This represents a command line program, such as blastall
or fasta. It has a name which is used to find the executable in
the filesystem. Names may be simply the binary or script file
name e.g. 'blastall' (in which case the PATH environment
variable will be used to locate it), or an absolute path e.g.
'/usr/local/bin/blastall'. A version string and description
are also available for each Executable.
-
Job
This represents a single execution of a command line
program specified by an Executable. It specifies optional
sources or destinations for input, output and error streams
from the program to be run. Usually these will be files.
It also specifies a template string which details the
command line used to run the program. For batch queue
submissions there are properties for queue name and batch
system ID. As it runs a Job changes status from WAITING
through to COMPLETED (or possibly FAILED). A Job may
itself be a composite of other Jobs arranged in a tree
where the goal Job is at the root and the leaf Jobs must
be executed first.
-
Owner
An Owner is the point of contact for a particular Task.
Owners may be individuals or projects. However, they must
always have a valid username, email address and telephone
number associated with them.
-
Status
As a Job runs it changes Status. All Jobs start as
WAITING - this means that the system is not able to consider
them as candidates for running. To be run a Job must be
promoted to READY - this means that the system is
considering the Job. The Job will then be STARTED and
hopefully COMPLETED, although it may end up being FAILED
if it returns a non-zero exit value or some other error
occurs. There are two other Status values; CANCELLED -
which indicates a user-originated cancellation request and
SKIPPED - which indicates a system decision not to run a
Job because it became redundant.
-
Task
A Task is a unit of Jobs belonging to an Owner. Its
Jobs are normally focussed on a particular operation
which should be given in its description. Tasks also
have a name which should be the same across all instances
of a particular Task. A Task specifies a list of Jobs
with the goal Job at the start of the list. Each Job may
itself define a Job tree proceeding from leaves to root
towards the goal. The root of the tree furthest from the
goal implicitly links to the leaves of the next tree
such that its completion allows them to be executed. The
net result is a directional pipe which may be heavily
parallel at any point, proceeding to a single goal.