// create remote server (DistributorImpl.java) import java.io.*; import java.net.*; import java.rmi.*; import java.rmi.server.*; import java.util.*; public class DistributorImpl extends UnicastRemoteObject implements Distributor { Vector jobs; int count; public DistributorImpl() throws RemoteException { jobs = new Vector(); jobs.addElement(new Job("1")); jobs.addElement(new Job("2")); jobs.addElement(new Job("3")); count = 0; try { java.rmi.registry.LocateRegistry.createRegistry(2000); Naming.rebind("rmi://127.0.0.1:2000/distributor",this); } catch (Exception e) { System.err.println("Failed to bind to RMI Registry"); System.exit(1); } } public static final void main(String[] args) { try { DistributorImpl runner = new DistributorImpl(); } catch (Exception e) { System.err.println("Failed to create DistributorImpl object" + e.getMessage()); } } public Job getNewJob(Message msg) { System.out.println(msg); if( count < jobs.size()) { return (Job)jobs.elementAt(count++); } else { System.exit(0); } return null; } public Job getNewJob() { if( count < jobs.size()) { return (Job)jobs.elementAt(count++); } else { System.exit(0); } return null; } }