Alternativa B - Proxy
O padrão de projeto Proxy é o componente fundamental na arquitetura do RMI (Remote Method Invocation). Ele atua como um representante local para um objeto remoto, ocultando a complexidade da comunicação de rede.
Análise Detalhada
No contexto do RMI, a implementação utiliza um mecanismo conhecido como Stub (no lado do cliente) e dinamicamente gerados proxies para representar os objetos remotos.
- Representação Local: O cliente não se comunica diretamente com o servidor. Ele invoca métodos em um objeto local (o Proxy/Stub).
- Transparência: O Proxy intercepta essas chamadas e cuida das tarefas de rede, como serialização de dados, conexão TCP e deserialização.
- Controle de Acesso: O padrão Proxy controla o acesso ao objeto real (que está em outra máquina), permitindo tratar chamadas locais e remotas da mesma forma pelo programador.
Comparativo dos Padrões
| Padrão | Função Principal | Aplicabilidade no RMI |
|---|
| Proxy | Representar outro objeto para controle de acesso | Correto: Gerencia a comunicação remota transparente. |
| Flyweight | Compartilhamento eficiente de memória | Incorreto: Focado em otimização de estado compartilhado. |
| Decorator | Adiciona responsabilidades dinamicamente | Incorreto: Focado em extensão de comportamento. |
| Facade | Interface simplificada para subsistema complexo | Incorreto: Embora simplifique, não gerencia a representação remota. |
| Composite | Estruturas de árvores de objetos | Incorreto: Focado em composições hierárquicas. |
Conclusão
A implementação do RMI baseia-se no conceito de Remote Proxy, onde o objeto local (Stub) serve como intermediário para todas as operações realizadas sobre o objeto remoto. Portanto, a alternativa correta é a B.