1. A method of performing a workflow on a plurality of task servers, the method comprising: starting a plurality of task server processes on the plurality of task servers, each task server providing an operating system which is constructed and arranged to locally run a respective task server process; receiving a workflow which includes a set of dependency-related predefined activities; and placing task identifiers in a queue structure based on the received workflow, the task identifiers identifying tasks to be performed in a distributed manner by the plurality of task server processes started on the plurality of task servers, each task being a specific execution of a dependency-related predefined activity of the workflow, progress in performing the workflow being made as the plurality of task server processes (i) claim task identifiers from the queue structure and (ii) perform the tasks identified by the claimed task identifiers.