In a distributed computing environment, a queue of jobs is maintained on a job
database, along with parameters for each of the computing devices available to
process the jobs. A task model defining the job is provided for generating a plurality
of tasks comprising each job. The tasks are maintained in a tuple database, along
with the status of each task, indicating when each task is ready for processing.
As a computing device becomes available to process a task, its capabilities are
matched with those required to complete tasks that are ready for processing and
the highest priority task meeting those requirements is assigned to the computing
device to be processed. These steps are repeated until all the tasks required for
the job have been processed, or the job is otherwise terminated.