@Override
	public boolean join(String n) {
		try {
			Registry reg = LocateRegistry.getRegistry();
			m_clientRemote = new CallbackClient();
			// Register the client class into the client subscriber
			m_subscriber = (IClientSubscriber) reg.lookup("client_subscriber");
			System.out
					.println("[CLIENT] Registering the client in the client subscriber.");
			boolean success = m_subscriber.subscribe(n,
					(ICallbackClient) m_clientRemote);

			if (success == false){
				System.out.println("[CLIENT] A problem is occurred, sorry.");
				return false;
			}

			System.out
					.print("[CLIENT] Sending a join request to the server ...");
			m_server = (ICallbackServer) reg.lookup("server");
			m_server.pushMessage(new Join(n));
			System.out.print("ok.\n");

		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return true;
	}