Pergunta

Noutro pergunta Eu estava preocupado em usar um serviço da Web que leva cinco minutos para ser concluído. Eu estava pensando em usar o RMI em vez de serviços da Web para este caso de uso.

Mas no final do dia, o serviço da Web e o RMI usam um soquete TCP para a conexão subjacente? Existe alguma razão para que uma chamada de serviço da web tome 5 minutos seja menos estável do que uma solicitação RMI que leva ao mesmo tempo?

Observe que, no nosso caso, estamos falando de aplicativos internos se comunicando.


Atualizar: Esta pergunta deriva de mim, preocupando-se que tivemos conexões caídas ou outros problemas com os serviços da Web que levam de 3 a 5 minutos para serem concluídos. A preocupação talvez totalmente irracional - respondedores ao meu outro pergunta Indicado, você deve ficar bem se controlar o cliente e o servidor. Mas eu só queria entender com mais detalhes por que uma conexão abandonada para uma chamada de 5 minutos não provavelmente é provável de usar uma implementação do Serviço da Web do que uma implementação do RMI. Se ambos confiarem nas conexões do soquete, isso pode explicar por que não há diferença ...

Foi útil?

Solução

Se uma única chamada remota estiver levando 5 minutos para ser concluída, provavelmente é porque a operação que implementa essa chamada é lenta, não porque a própria camada de serviço da Web é lenta. Se você reescrever a operação com o RMI, provavelmente será igualmente lento.

O benefício de desempenho do RMI sobre o SOAP só será aparente quando você tem um grande número de operações sendo chamadas, e não para a velocidade de qualquer operação, simplesmente porque o RMI é mais eficiente que o SOAP. Mas não fará magicamente uma operação lenta e mais rápido.

Quanto à sua pergunta sobre soquetes, sim, o RMI e o sabão usam protocolos no nível do soquete quando você desce longe o suficiente (IIOP ou JRMP no caso de RMI, HTTP no caso de sabão). Isso não é realmente relevante para o seu problema.

Outras dicas

O RMI é usado principalmente no JRMP (no contexto Java puro) ou IIOP (no contexto não JVM), enquanto as mensagens de sabão geralmente são (mas não exclusivamente) enviadas pelo HTTP. Todos esses três protocolos de arame usam TCP/IP; portanto, a esse respeito, não há vantagem de escolher o RMI em vez de um serviço da Web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top