Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato em Dom Dez 12, 2010 8:39 pm

Boa noite pessoal !!!
gostaria de uma ajuda......
Um professor da universidade passou um exemplo onde ele usa 4 classes para mostrar uma mensagem.....
só que estou sentindo dificuldade na compreensão do exemplo.... os codigos são esses....

//INTERFACE
public interface IHello extends Remote
{
String sayHello() throws RemoteException;
}

//CLASSE HELLO
public class hello extends UnicastRemoteObject implements IHello
{
public hello() throws RemoteException{}

public String sayHello()
{
return "Hello";
}
}

//CLASSE SERVIDOR
public class Servidor
{
public static void main(String args[])
{
try
{
//criar o objeto que implementa o Hello
Hello obj =new Hello();

//cadastrando o objeto hello no registro
Naming.rebind("//localhost/hello", obj);
System.out.println("cadastrando o objeto hello no registro");
}
catch(Exception e)
{
System.out.println("erro: "+e.get.Message());
}
}
}

//CLASSE CLIENTE
public class Cliente
{
public static void main (String args[])
{
try
{
IHello obj = (IHello)Naming.lookup("hello");
String message = obj.sayHello();
System.out.println("Messagem do servidor: "+message);
}
catch (Exception e)
{
System.out.println("erro: "+e.getMEssage());
}
Systtem.exit(0);
}
}


** DOIS TRECHOS DO CODIGO Q NAO COMPREENDI DIREITO

IHello obj = (IHello)Naming.lookup("hello");

Naming.rebind("//localhost/hello", obj);

a relação entre esses dois trechos o q eles tem em comum....

gostaria de comprender esse codigo e como eles se relaconam.......

Agradeço pela força novamente de todos dessa comunidade......
avatar
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 36

Ver perfil do usuário http://twitter.com/double_click

Voltar ao Topo Ir em baixo

Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por rksasaki em Dom Dez 12, 2010 9:25 pm

Olá Ernani Yamato.

Primeiramente, gostaria de pedir desculpas pelo atraso ao responder este tópico.
Bom, eu entendo que você esteja com dúvidas. Este exemplo de código que você postou realmente não está muito claro.

Na próxima vêz, requisite ao seu professor, os comentários do código. É complicado o entendimento de um pedaço de código desta forma, sem conhecer algumas particularidades da linguagem.
Neste caso, temos o objeto Naming, utilizando dois métodos estáticos, Rebind e lookUp. Sem conhecer estas duas funcionalidades, também não consigo entender o objetivo.

Um abraço.
avatar
rksasaki
Colaborador

Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 28

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato em Seg Dez 13, 2010 7:33 am

RMI



OBSERVAÇÕES



- A porta de comunicação entre o cliente e o servidor é a 1099

- O método rebind da classe Naming é utilizado para registrar o novo objeto que está sendo criado no registry

- O método lookup da classe Naming é utilizado para um cliente obter referência de um objeto remoto. Este método interage com o registro registry

- Toda interface deve herdar de extends Remote

- Todo método da interface deve prever exceções

String sayHello() throws RemoteException



PASSOS PARA EXECUÇÃO

1) Definir uma interface

2) Definir as classes e compilar a classe que contém a implementação utilizando o compilador RMIC. Este compilador serve para gerar os stubs e skeletons

3) Para disponibilizar o registry de objetos start rmiregistry





ERROS COMUNS



- Não inicializar o rmiregistry , isto impossibilita que se cadastre e obtenha uma referência de um objeto remoto



INSTALAÇÃO DO AMBIENTE

Basta ter o Jdk 1.4 ou superior instalado.



Alteração de variáveis de ambiente.

Verificar se o conteúdo das variáveis PATH e CLASSPATH está com seus devidos valores.





OBS. VERIFIQUE A VERSÃO DO JDK





tenhu esse pequeno explicativo que o professor anexou junto com esse codigo..............



sera q ajuda............
avatar
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 36

Ver perfil do usuário http://twitter.com/double_click

Voltar ao Topo Ir em baixo

Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por rksasaki em Seg Dez 13, 2010 11:17 am

Ok, não tenho muito conhecimento em Java, mas o que esse pedaço de código faz é algo muito interessante!

Você está instanciando um objeto, que está no servidor e não no lado cliente!

IHello obj = (IHello)Naming.lookup("hello");
Naming.rebind("//localhost/hello", obj);

Preste atenção. Você tem a instancia "obj". Está tipada como IHello. Você está utilizando o método lookup para receber o objeto do servidor e com o typecasting, você tem a instancia do tipo da interface!.
O método rebind, apenas registra a instância que você acaba de receber do servidor.

Muito legal! Smile
avatar
rksasaki
Colaborador

Mensagens : 52
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 28

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Ernani Yamato em Seg Dez 13, 2010 9:25 pm

Depois que li sua explicação, ate eu achei interessante^^
pq ate entao, nem eu sabia que estava fazendo de verdade....


Muito Obrigado^^

Abraço!
avatar
Ernani Yamato
Basico

Mensagens : 7
Reputação : 0
Data de inscrição : 23/10/2010
Idade : 36

Ver perfil do usuário http://twitter.com/double_click

Voltar ao Topo Ir em baixo

Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por kevinlira em Ter Dez 21, 2010 12:10 pm

Ao meu ponto de vista, explicação é capaz de sanar a Dúvida.

Post fechado
farao
avatar
kevinlira
Admin

Mensagens : 19
Reputação : 0
Data de inscrição : 15/10/2010
Idade : 26
Localização : Suzano

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Não Entendi..... Hello World usando (Cliente, Servidor, IHello, Hello)

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum