1. A computer-implemented method of executing a workflow in a grid computing environment, comprising: obtaining task metadata providing information regarding resource requirements for one or more tasks from a sequence of tasks to be performed as part of the workflow; monitoring a current state of the grid computing environment to identify and obtain information regarding available resources of one or more computing nodes in the grid computing environment; and dispatching the one or more tasks to the one or more nodes, based on the obtained task metadata and the current state of the grid, wherein at least one of the nodes of the one or more nodes in the grid computing environment is an optimal node for performing a task from the one or more tasks, relative to other nodes of the one or more nodes and wherein dispatching the one or more tasks to the one or more nodes comprises: when the optimal node is unavailable, dispatching the task to a node in the grid computing environment that is sub-optimal for performing the task; and when the optimal node becomes available, prior to completion of the task on the sub-optimal node, dispatching the task to the available optimal node.