FC ConcursosFC Concursos

Questão FC266250

A tecnologia Java RMI (Remote Method Invocation) permite que um objeto em uma instância da máquina virtual Java invoque métodos de um objeto presente em outra instância da JVM. O d

Plataforma Java EE

IDECAN · 2019

A tecnologia Java RMI (Remote Method Invocation) permite que um objeto em uma instância da máquina virtual Java invoque métodos de um objeto presente em outra instância da JVM. O desenvolvedor Java precisa considerar o comportamento diferente no tratamento da passagem de parâmetros na invocação de um método remoto. Qual alternativa apresenta uma precaução legítima nesse cenário?

  1. Apesar de ser permitida a invocação de métodos remotos, nenhum dos parâmetros passados ao método remoto pode representar um objeto remoto.
  2. O desenvolvedor precisa considerar a sobrecarga da invocação, uma vez que todos os objetos serializáveis não remotos são copiados e passados por valor quando informados como parâmetros.
  3. Quando a referência a um objeto remoto é recebida, ela não pode ser utilizada para realizar chamadas RMI no objeto referenciado.
  4. Somente tipos primitivos podem ser usados como parâmetros a objetos remotos.
  5. Somente tipos estruturados como classes podem ser usados como parâmetros a objetos remotos.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

Na invocação remota via Java RMI, objetos que implementam Remote são transmitidos como referência (um proxy/stub), mas objetos não remotos que implementam Serializable são copiados e enviados por valor.

Isso implica sobrecarga: antes de chegar ao servidor, o objeto e todo o seu grafo são serializados no cliente, enviados pela rede e desserializados no servidor. Esses passos incidem custo de CPU, I/O e alocação de memória.

Além do custo, a passagem por valor produz uma cópia independente — alterações no servidor não afetam a instância original no cliente.

Portanto, projete chamadas remotas com DTOs leves, evite grandes grafos de objetos, use objetos remotos quando for necessário compartilhar estado e cuide de serialVersionUID e de campos transient para controlar o que é transmitido.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo