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.
-
Usando somente sockets e fazendo uns pequenos truques para executar os métodos remotos
-
Usando RMI (que usa sockets debaixo dos panos)
-
Usando Web Services (que também usa sockets)
-
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