Transparência de localização

Um dos principais objetivos em uma plataforma de objetos distribuídos é atingir transparência de localização, tornando uniforme a forma de utilização de objetos independentemente desses objetos estarem na máquina local da aplicação ou em máquinas distintas.

A fim de que se atinja transparência de localização, as seguintes funcionalidades devem ser oferecidas:

  1. Localizar e carregar classes remotas;
  2. Localizar e obter referências a objetos remotos;
  3. Habilitar a invocação de métodos de objetos remotos.

A primeira funcionalidade, não muito diferente do que ocorre em sistemas com objetos locais, é necessária para que a aplicação conheça as facilidades oferecidas pelo objeto remoto.

Referências a objetos também são utilizadas em sistemas com objetos locais, porém com diferenças significativas. Em um sistema local, as referências a objetos são tipicamente manipuladores com especificação de endereços de memória. No caso de objetos remotos, esses endereços da memória de outra máquina não têm validade na máquina local. Assim, é preciso oferecer mecanismos que traduzam essas referências entre máquinas de forma transparente para o programador.

Para a invocação de métodos de um objeto remoto, além da necessidade de se localizar a referência ao método é preciso oferecer mecanismos para tornar transparente a passagem de argumentos para e o retorno de valores desde o método.

Além dessas funcionalidades, a comunicação de falhas no oferecimento da transparência de localização ao programador é essencial. Assim, funcionalidades para comunicar exceções entre máquinas também dever ser suportadas pela plataforma de objetos distribuídos.