Comunicacao de apps pela rede

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??

Dá sim hlds, sem problemas!

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

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

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?

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

Olá

[quote=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?[/quote]

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

Olá

[quote=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[/quote]

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

[]s
Luca

[quote=Luca]Olá

[quote=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?[/quote]

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[/quote]

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?

Olá

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

[]s
Luca

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?

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

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