Implementando o serviço remoto em RMI

A implementação do serviço se dá através da definição de uma classe que implementa a interface especificada. No entanto, além de implementar a interface especificada, é preciso incluir as funcionalidades para que um objeto dessa classe possa ser acessado remotamente como um servidor.

A implementação da interface remota se dá da mesma forma que para qualquer classe implementando uma interface Java, ou seja, a classe fornece implementação para cada um dos métodos especificados na interface.

As funcionalidades de um servidor remoto são especificadas na classe abstrata RemoteServer, do pacote java.rmi.server. Um objeto servidor RMI deverá estender essa classe ou, mais especificamente, uma de suas subclasses. Uma subclasse concreta de RemoteServer oferecida no mesmo pacote é UnicastRemoteObject, que permite representar um objeto que tem uma única implementação em um servidor (ou seja, não é replicado em vários servidores) e mantém uma conexão ponto-a-ponto com cada cliente que o referencia.

Tipicamente, a declaração de uma classe que implementa um servidor remoto RMI terá a forma

        public class ... extends UnicastRemoteObject implements ... {
          ... 
        }
    

Esse exemplo oferece uma possível implementação para a interface remota previamente especificada.