Stub RMI

tava lendo o livro “core java 2” na parte q fala sobre RMI. fiquei meio confuso pq na pag 229, ele fala com estas palavras:

"... As classes stub devem estar disponiveis para o programa cliente que está em execução. Uma maneira obvia de tornar essas classes disponiveis
 e coloca-las no sistema de arquivos local. Entretanto se novas classes de
 tipo de retorno e exceçõe forem carregadas, entao sera dificil manter a 
atualização do cliente.
     Por isso, os clientes RMI podem carregar classes stub de outro lugar, 
automaticamente..."

e na pag 232 fala:

"Um programa servidor registra objetos com o serviço de partida e o cliente recupera stubs para esses objetos."

//servidor
ProductImpl p1 = new ProductImpl("Blackwell Toaster");
Naming.bind("toaster", p1);

//cliente
Product p = (Product)Naming.lookup("rmi://seuservidor.com/toaster");

pelo q entendi era para a classe stub vir p cliente qnd o cliente faz uma chamada a Naming.lookup(), sendo q testei e so dar certo qnd coloco a classe stub no sitema de arquivo local do cliente. Entao para funcionar, o servidor tem que gerar o stub da classe q esta nele, colocar num diretorio q o cliente possa baixar, para entao a partir dai o cliente poder executar uma chamada usando Naming.lookup() para obter um um objeto da classe ProductImpl q esta no servidor e entao poder chamar os metodos remotos da classe ProductImpl. E assim mesmo q funciona???

por favor, quebra as linhas as frases. eu fiz por você desta vez.

???