public boolean start() {
		if (System.getSecurityManager() == null) {
			System.setSecurityManager(new SecurityManager());
		}

		try {
			IJobProcessingService stub = (IJobProcessingService) UnicastRemoteObject
					.exportObject(this, 0);

//			LocateRegistry.getRegistry(JobUtility.getPort());
			registry = LocateRegistry.getRegistry(JobUtility.getPort());
			registry.rebind(serverName, stub);

			System.out.println(serverName + " bound");

			IDispatcherService dispatcher = (IDispatcherService) registry
					.lookup(JobUtility.getDispatcherExecutionName());

			dispatcher.register(serverName);

			return true;
		} catch (RemoteException e) {
			System.err.println("Failed to start service: " + e.getMessage());
			try {
				shutDown();
			} catch (RemoteException e1) {
				// bad luck
			}
			return false;
		} catch (NotBoundException e) {
			System.err.println("Failed to connect to dispatcher: "
					+ e.getMessage());
			try {
				shutDown();
			} catch (RemoteException e1) {
				// bad luck
			}
			return false;
		}
	}