Vgrid is a server centric grid computing system. That means that all tasks that have to be evaluated will have to be sent to a single server. This server redistributed the tasks to the computers where the actual execution takes place. Finished tasks are sent back to the server where they can be retrieved from the original dispenser.
Vgrid is written in Java. It requires that the tasks that have to be executed are also written in Java. This ensures platform independence for the execution of tasks.
The three main components of the vgrid system are: the server, the plodder(s) and the dispenser.
The dispenser creates tasks dispenses them to the server and polls for finished tasks. If a dispenser finds a finished task on the server it retrieves it. If it retrieved all tasks it has dispensed before an event is triggered that usually prepares the results of the tasks in a way that they can be used for further analyze (E.g. writes them to a cvs file or into a database.)
The plodder is a program that does the actual execution of tasks. It should be installed on as many computers as possible. The plodder requests the server for unfinished tasks executes them and sends them back.
The server is responsible for the correct distribution of tasks to/from plodders and dispensers.
The central data structure of the vgrid system is the task. Actually the task is an interface that has to be implemented. If you use vgrid the implementation of a task should be the only coding that you have to do.
In order for a task to be executed within the grid it has to fulfill the following requirements:
For details about the task interface see: vgrid.task.Task
If a task is being executed it passes through the following states:
States
UF | unfinished | Task is not executed at all or before termination. |
F | finished | Task indicated that it is finished during execution. |
E | erroneous | An error occurred during execution. |
R | requested | The task was requested from a plodder but did not yet return. |
Transitions
dispense | The dispenser sends an unfinished task to the server. |
request | The plodder requests an unfinished task or the dispenser requests a finished or erroneous task. |
timeout | The max execution time was exceeded. The task is sent back to the server. |
execute | The task is executed by repeatedly calling the takeOneStep() method. |
finished | The task signals the plodder that it is finished. The task is sent back to the server. |
error | An error occurred during execution of the task. |
To be written.
To be written.
Click here to browse through the vgrid javadoc.