Pessoal, estou para fazer uma comparação entre sockets e RMI, preciso comparar a velocidade e desempenho na transferencia de arquivos. Tanto o socket como RMI são servidores de arquivos que expoem uma lista de arquivos para o cliente baixar, bem queria saber como posso fazer esse tipo de comparação, alguem poderia me ajudar?
Comparação entre sockets e RMI
5 Respostas
Q? Nem socket nem RMI são Servidores de arquivos… São meios de se fazer comunicação entre duas ou mais máquinas em rede, digamos assim. Socket é sempre mais rápido
Ok, talvez eu tenha me expressão errado, as duas aplicacões serão para disponibilizar arquivos, então uma vai ter o lado servidor e a outra o lado cliente. Então agradeço pela resposta.
Talvez vc esteja generalizando a função de cada um.
Os Sockets estabelecem uma comunicação TCP para troca de informações, sejam elas quais forem, entre duas ou mais máqunas.
Já o RMI permite chamar métodos que executem em outra JVM existente na rede.
Sua aplicação pode ser feita com qualquer um, mas se fosse eu, faria com Datagram ou Socket.
Ok Moacir, agradeço por sua resposta, mas a questão não é nem ter que escolher entre socket ou RMI, o fato é que tenho que utilizar ambas e compará-las. O que não consigo, é ver uma forma de como fazer essa comparação.
- Cria a aplicação utilizando sockets
- Cria a aplicação utilizando Java RMI
- Cria testes unitários e vê qual é mais rápida.
Não há como dizer se um é mais rápido que o outro, pois isso tudo depende de sua implementação. De uma forma geral, sockets tendem a ser mais rápidos pois não possuem todo o overhead do RMI… mas te darão muito mais trabalho para implementar e, se você não implementar direito, podem ficar lentos. Já no RMI tudo está pronto para você utilizar, é só você chamar o método… claro que isso é mais “pesado”, mas no fundo também é baseada em sockets.