The Execution Service allows users to submit, monitor, and cancel complex jobs. Each job consists of a set of tasks that perform actions such as executing applications and managing data. Each task is executed based on a starting condition that is an expression on the states of other tasks. This formulation allows tasks to be executed in parallel and also allows a user to specify tasks to execute when other tasks success, fail or are cancelled.
Our support for such complex jobs has evolved out of our previous version of the Execution Service that supported a job model of pre-stage files, execute a single application, and post stage files. Our users asked for additional functionality such as creating directories and deleting files, executing multiple applications in one job, and specifying what tasks to execute when tasks fail or are cancelled.
The Execution Service has been developed as an Open Grid Services Infrastructure (OGSI) service which using version 3 of the Globus Toolkit. The core components of the Execution Service consist of a Task Database and a Task Manager.
The Task Database is used to store tasks that have been submitted for execution. Users can obtain information about both active (not yet completed) and inactive (completed) jobs. The Task Manager is the core of the service and handles the execution of tasks. The two main goals of the Task Manager are to execute tasks in the proper order, based on the user-specified starting conditions, and not overload local and remote resources while executing tasks.
The Execution Service uses the Globus Java CoG GRAM client to perform the execution task, and the Globus Java CoG GridFTP clients to perform the data manage tasks such as copy, move, and remove files as well as make directory.