| Home Page |
Overview
The Grid Computing System
Software Requirements
Example Command Lines
Write a Java program for a simulated grid computing system. The program will include distributed objects for the various entities in the grid computing system, as well as a user client. The distributed objects will reside in multiple processes running on different host computers, and communicating with each other using Java remote method invocation (RMI).
Like Versions 1 and 2, Version 5 assumes there is only one client running at a time. Unlike Versions 1 and 2, Version 5 assumes that processes can fail.
Version 5 adds the following features to Version 2:
The system is not designed to tolerate failure of the Registry Server.
The Grid Computing System (GCS) is the same as Version 1.
Compute Server <name> -- FAILEDwhere <name> is replaced with the compute server's name.
To perform the example calculation session depicted in the above timeline under "The Grid Computing System," run the following commands, each in a separate process on the same machine.
$ runregistry
#!/bin/bash java \ -classpath /home/fac/ark/public_html/cscl/lib \ Start edu.rit.ds.registry.RegistryServer |
$ runmonitor
#!/bin/bash java \ -classpath /home/fac/wrc/www/courses/common/ds/gcs/gcs05:/home/fac/ark/public_html/cscl/lib \ Monitor localhost 9901 |
grant codebase "file:/home/fac/wrc/www/courses/common/ds/gcs/gcs05/"
{
permission java.security.AllPermission;
};
grant codebase "file:/home/fac/ark/public_html/cscl/lib/"
{
permission java.security.AllPermission;
};
|
$ runcomputeserver A $ runcomputeserver B $ runcomputeserver C
#!/bin/bash java \ -classpath /home/fac/wrc/www/courses/common/ds/gcs/gcs05:/home/fac/ark/public_html/cscl/lib \ -Djava.security.policy=policy \ Start ComputeServer localhost 9901 $1 |
grant codebase "file:/home/fac/wrc/www/courses/common/ds/gcs/gcs05/client/"
{
permission java.security.AllPermission;
};
grant codebase "file:/home/fac/ark/public_html/cscl/lib/"
{
permission java.security.AllPermission;
};
|
$ runclient ARK SqrFunction A LogFunction B SineFunction C 0.5 1.0 CTRL-D
#!/bin/bash java \ -classpath /home/fac/wrc/www/courses/common/ds/gcs/gcs05/client:/home/fac/wrc/www/courses/common/ds/gcs/gcs05:/home/fac/ark/public_html/cscl/lib \ -Djava.security.policy=policy \ -Djava.rmi.server.codebase=http://www.cs.rit.edu/~wrc/courses/common/ds/gcs/gcs05/client/ \ ComputeClient localhost 9901 $* |
Compute Server A prints the following on the console (the floating point numbers may print with additional digits of precision):
Compute Server A -- available Compute Server A -- reserved -- session: ARK Compute Server A -- function: sqr Compute Server A -- successor: B Compute Server A -- f(0.5) Compute Server A -- sqr(-0.735) = 0.540 Compute Server A -- f(1.0) Compute Server A -- sqr(-0.173) = 0.030 Compute Server A -- available
Compute Server B prints the following on the console (the floating point numbers may print with additional digits of precision):
Compute Server B -- available Compute Server B -- reserved -- session: ARK Compute Server B -- function: log Compute Server B -- successor: C Compute Server B -- f(0.5) Compute Server B -- log(0.479) = -0.735 Compute Server B -- f(1.0) Compute Server B -- log(0.841) = -0.173 Compute Server B -- available
Compute Server C prints the following on the console (the floating point numbers may print with additional digits of precision):
Compute Server C -- available Compute Server C -- reserved -- session: ARK Compute Server C -- function: sin Compute Server C -- f(0.5) Compute Server C -- sin (0.5) = 0.479 Compute Server C -- f(1.0) Compute Server C -- sin (1.0) = 0.841 Compute Server C -- available
The compute client program prints the following on the console (the floating point numbers may print with additional digits of precision):
f(0.5) = 0.540 f(1.0) = 0.030
[an error occurred while processing this directive]
| Home Page |