Comunicacao de apps pela rede

11 respostas
H

Para fazer comunicacao pela rede entre apps, tipo, entre 1 app servidor e 1 cliente, executando metodos remotos e devolvendo dados como retornos destes metodos, eu devo utilizar RMI ou oq? Com sockets dar p fazer isto? Eu ja usei sockets p enviar msg´s (um chat), mas p executar metodos e devolver dados de retorno, dar p fazer c sockets??

11 Respostas

Rodrigo_Vieira_Pinto

Dá sim hlds, sem problemas!

Inclusive dependendo do que vc for fazer é muito mais fácil do que usar RMI.

Luca

Olá

Que tipo de rede você se refere? LAN? WAN?

Qual volume de dados é previsto trafegar?

Todas as soluções usam sockets que é o modo básico de comunicação em todas as aplicações.

  1. Usando somente sockets e fazendo uns pequenos truques para executar os métodos remotos

  2. Usando RMI (que usa sockets debaixo dos panos)

  3. Usando Web Services (que também usa sockets)

  4. Usando SOA (que também usa sockets)

Como vê, há várias hipóteses. Aliás ainda bem que há muitas opções para escolher.

[]s
Luca

H

Com a classe Sockets eu so testei enviar string de texto p/ conversa tipo chat, mas como eu faco p executar metodos remotos?

Luca, oq seriam estes truques?

T

provavelmente ele estava se referindo a reflection… vc manda o nome do metodo que vc quer executar e, no lado que deve executar, procura o metodo por reflection, executa, trata as excecoes e devolve o resultado…
fora o rmi, vc pode pensar em usar corba tb, mas o primeiro eh mais simples

Luca

Olá

hlds:
Com a classe Sockets eu so testei enviar string de texto p/ conversa tipo chat, mas como eu faco p executar metodos remotos?

Luca, oq seriam estes truques?

Com os parâmetros, o nome do método e o nome da classe, o servidor pode usar reflection para instanciar um objeto, executar o método e devolver o objeto resultado usando Object Streams.

Estude ObjectOutputStream, ObjectInputStream e TODAS as implicações.

Mas, repito. Esta não é melhor alternativa em todos os casos. Cuidado ao tentar resolver um problema sem saber usar todas as alternativas.

[]s
Luca

Luca

Olá

takeshi10:
provavelmente ele estava se referindo a reflection… vc manda o nome do metodo que vc quer executar e, no lado que deve executar, procura o metodo por reflection, executa, trata as excecoes e devolve o resultado…
fora o rmi, vc pode pensar em usar corba tb, mas o primeiro eh mais simples

Exatamente! Só que você foi mais rápido no gatilho. :oops:

[]s
Luca

H

Luca:
Olá

hlds:
Com a classe Sockets eu so testei enviar string de texto p/ conversa tipo chat, mas como eu faco p executar metodos remotos?

Luca, oq seriam estes truques?

Com os parâmetros, o nome do método e o nome da classe, o servidor pode usar reflection para instanciar um objeto, executar o método e devolver o objeto resultado usando Object Streams.

Estude ObjectOutputStream, ObjectInputStream e TODAS as implicações.

Mas, repito. Esta não é melhor alternativa em todos os casos. Cuidado ao tentar resolver um problema sem saber usar todas as alternativas.

[]s
Luca

Pq n seria a melhor maneira? RMI seria uma boa maneira? Eu queria fazer 1 app q no servidor rodasse 1 banco e nos clientes a interfaces q fariam consultas, insercoes, remocoes e updates atraves de metodos remotos presentes no servidor. Qual o melhor modo?

Luca

Olá

O melhor modo depende do problema. Se você não sabe reconhecer qual, recomende a contratação de um consultor.

[]s
Luca

H

N pow, precisa d consultor ainda n, eu kero fazer 1 app simples p testar a comicacao em rede, p saber como eh, quais ferramentas (classes) utilizar, so p me interar do assunto, sacou?

Luca

Olá

Ops, então adote o caso mais simples só com sockets e usando reflection no servidor. Eu estava com minhocas na cabeça imaginando uma aplicação complexa.

É até melhor para aprender. Depois substitua por RMI e veja o que mudou.

[]s
Luca

H

Aonde vejo um tutorial sobre sockets e reflection? rmi eu tenho

Criado 21 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 11
Participantes 4