public void clientRequest(final ClientRequest request, final int clientId, final long requestId) {
        if (request instanceof JobStartRequest) {
            final JobDescriptor jobDesc = master.startJob(((JobStartRequest) request).newJob);
            sendRequestAck(new JobStartRequestAck(requestId, jobDesc.getJobId()), clientId, requestId);
        } else if (request instanceof JobStopRequest) {
            master.stopJob(((JobStopRequest) request).jobId);
        } else if (request instanceof JobSuspendRequest) {
            master.suspendJob(((JobSuspendRequest) request).jobId);
        } else if (request instanceof JobSnapShotRequest) {
            try {
                master.snapShotJob(((JobSnapShotRequest) request).getJobId());
            } catch (SnapShotException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }