|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.wpi.prc.client.PRCClient
public class PRCClient
The PRC client acts as a proxy between the PRC server and the science application.
Field Summary | |
---|---|
static java.lang.String |
CHECKPOINT_PATH
|
private int |
clientPort
|
private java.lang.Thread |
clientThread
|
private static java.lang.String |
CONFIG_FILE_PATH
|
private java.lang.String |
eMailAddress
|
private static java.lang.String |
ERROR_LOG_PATH
|
private static int |
EXIT_ERROR
|
private static int |
EXIT_SUCCESS
|
private boolean |
isRunning
|
private static java.lang.String |
LOG_PATH
|
private static PRCClient |
prcClient
|
private Project |
project
|
private static int |
SCIAPP_RETRY_DELAY
|
private java.lang.String |
scienceAppURI
|
private static int |
SERVER_RETRY_DELAY
|
private java.lang.String |
serverURI
|
private static int |
STARTUP_DELAY
|
private java.lang.String |
userName
|
private static java.lang.String |
WORK_UNIT_DATA_PATH
|
private static java.lang.String |
WORK_UNIT_ID_PATH
|
private org.apache.xmlrpc.XmlRpcClient |
xmlrpcPRCServerClient
|
private org.apache.xmlrpc.XmlRpcClient |
xmlrpcScienceAppClient
|
private org.apache.xmlrpc.WebServer |
xmlrpcServer
|
Constructor Summary | |
---|---|
private |
PRCClient()
Private constructor prevents explcit instantiation of the PRCClient class. |
Method Summary | |
---|---|
private boolean |
addUser(java.lang.String userName,
java.lang.String eMailAddress)
Adds a user to the project. |
private void |
configureClient()
Reads configuration from files in the cfg directory. |
void |
deleteWorkFilesFromDisk()
Deletes the work unit files from disk. |
private boolean |
executeUserRPC(java.lang.String methodName,
java.lang.String userName,
java.lang.String eMailAddress)
Executes one of the user XML-RPCs. |
private void |
getConfigurationFromUser()
Gets user name and e-mail address from user, then writes the configuration file. |
java.lang.String |
getEMailAddress()
|
java.lang.String |
getUserName()
|
NonPersistentWorkUnit |
getWorkUnit()
Requests a new work unit for this user from the project server. |
org.apache.xmlrpc.XmlRpcClient |
getXmlRpcPRCServerClient()
|
org.apache.xmlrpc.XmlRpcClient |
getXmlRpcScienceAppClient()
|
org.apache.xmlrpc.WebServer |
getXmlRpcServer()
|
private void |
initXmlRpcClient()
Initializes the XML-RPC clients used for communicating with the project server and science application. |
private void |
initXmlRpcServer()
Initializes and starts the XML-RPC server. |
static PRCClient |
instance()
|
NonPersistentResult |
invokeScienceApp(NonPersistentWorkUnit wu)
Runs the science application, then passes it a work unit to compute and waits for the science application to return a result. |
boolean |
isRunning()
|
static void |
main(java.lang.String[] args)
Controls the client. |
private void |
readClientConfigurationFile()
Reads the volunteer's user name and e-mail address from the configuration file. |
NonPersistentWorkUnit |
readWorkUnitFromDisk()
Reads the work unit files on disk if they exist. |
boolean |
returnResult(NonPersistentWorkUnit wu,
NonPersistentResult r)
Returns a result to the server. |
void |
run()
Starts the XML-RPC server and begins handling client requests. |
void |
shutdown()
Performs any tasks necessary to clearnly shut down the client. |
private boolean |
verifyUser(java.lang.String userName,
java.lang.String eMailAddress)
Determines whether a given user is already a member of the project. |
private void |
writeWorkUnitToDisk(java.lang.String id,
byte[] data)
Writes the work unit ID and data to disk. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static PRCClient prcClient
private static final int EXIT_SUCCESS
private static final int EXIT_ERROR
private static final java.lang.String LOG_PATH
private static final java.lang.String ERROR_LOG_PATH
private static final java.lang.String CONFIG_FILE_PATH
private static final java.lang.String WORK_UNIT_ID_PATH
private static final java.lang.String WORK_UNIT_DATA_PATH
public static final java.lang.String CHECKPOINT_PATH
private static final int SERVER_RETRY_DELAY
private static final int SCIAPP_RETRY_DELAY
private static final int STARTUP_DELAY
private java.lang.Thread clientThread
private Project project
private org.apache.xmlrpc.WebServer xmlrpcServer
private org.apache.xmlrpc.XmlRpcClient xmlrpcPRCServerClient
private org.apache.xmlrpc.XmlRpcClient xmlrpcScienceAppClient
private int clientPort
private java.lang.String serverURI
private java.lang.String scienceAppURI
private boolean isRunning
private java.lang.String userName
private java.lang.String eMailAddress
Constructor Detail |
---|
private PRCClient() throws MissingConfigurationFileException
MissingConfigurationFileException
Method Detail |
---|
private void configureClient() throws MissingConfigurationFileException
MissingConfigurationFileException
private void readClientConfigurationFile()
private void initXmlRpcServer()
private void initXmlRpcClient()
private void getConfigurationFromUser()
private boolean addUser(java.lang.String userName, java.lang.String eMailAddress)
userName
- The user name to add.eMailAddress
- The user's e-mail address.
private boolean verifyUser(java.lang.String userName, java.lang.String eMailAddress)
userName
- The user name to search for.eMailAddress
- The e-mail address of the user.
private boolean executeUserRPC(java.lang.String methodName, java.lang.String userName, java.lang.String eMailAddress)
methodName
- The name of the method to execute.userName
- The user name to search for.eMailAddress
- The user's e-mail address.
public org.apache.xmlrpc.WebServer getXmlRpcServer()
public org.apache.xmlrpc.XmlRpcClient getXmlRpcPRCServerClient()
public org.apache.xmlrpc.XmlRpcClient getXmlRpcScienceAppClient()
public java.lang.String getUserName()
public java.lang.String getEMailAddress()
public NonPersistentWorkUnit getWorkUnit()
public NonPersistentWorkUnit readWorkUnitFromDisk()
private void writeWorkUnitToDisk(java.lang.String id, byte[] data)
id
- The work unit ID to write.data
- The work unit data to write.public void deleteWorkFilesFromDisk()
public NonPersistentResult invokeScienceApp(NonPersistentWorkUnit wu)
wu
- The work unit for which to compute a result.
public boolean returnResult(NonPersistentWorkUnit wu, NonPersistentResult r)
wu
- The WorkUnit for which the result was computed.r
- The result that was computed.
public boolean isRunning()
public void run()
run
in interface java.lang.Runnable
public void shutdown()
public static PRCClient instance() throws MissingConfigurationFileException
MissingConfigurationFileException
public static void main(java.lang.String[] args)
args
- Command-line arguments.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |