public interface WSAuthorize {
    // returns false if the user is not allowed to use this service
    boolean isAllowedToUse(String identity, String service);
}

public interface WSGetFile {
    // this structure allows caching of file id from similar looking files...
    boolean setIdentity(String identity);

    // This may include fetching a file from SRB, FTP etc.
    String getFile(String fileURI); // throws exception if not allowed
}

public interface WSSubmitJob {
    // implementing this class may require a back end database - this will
    // be used in both the submission of jobs and also the checking of the
    // status

    boolean setIdentity(String identity);
    // returns a job handle
    String submitJob(String executable, String [] command_line, 
                     String [] standard_input, File working_directory);

    String getJobStatus(String job_handle);
}

