stringtranslate.com

Comunicación de objetos distribuidos

En un entorno informático distribuido , la comunicación de objetos distribuidos realiza la comunicación entre objetos distribuidos . La función principal es permitir que los objetos accedan a los datos e invoquen métodos en objetos remotos (objetos que residen en un espacio de memoria no local ). La invocación de un método en un objeto remoto se conoce como invocación de método remoto ( RMI ) o invocación remota , y es el análogo de programación orientada a objetos de una llamada a procedimiento remoto (RPC).

Esbozos y esqueletos de clases

El método más utilizado para implementar el canal de comunicación se realiza mediante el uso de stubs y esqueletos . Son objetos generados cuya estructura y comportamiento dependen del protocolo de comunicación elegido, pero que en general proporcionan una funcionalidad adicional que garantiza una comunicación confiable a través de la red.

En RMI, el programador define un stub (que es el bit del cliente) como una interfaz . El rmic (compilador de rmi) lo utiliza para crear el stub de la clase. El stub realiza la verificación de tipos. El esqueleto se define en una clase que implementa el stub de la interfaz. [1]

Cuando un llamador desea realizar una llamada remota al objeto llamado, delega las solicitudes a su stub , que inicia la comunicación con el esqueleto remoto . En consecuencia, el stub pasa los argumentos del llamador a través de la red al esqueleto del servidor. Luego, el esqueleto pasa los datos recibidos al objeto llamado, espera una respuesta y devuelve el resultado al stub del cliente. Tenga en cuenta que no hay comunicación directa entre el llamador y el objeto llamado.

Más detalladamente, la comunicación consta de varios pasos:

  1. El llamador llama a un procedimiento local implementado por el stub
  2. stub ordena el tipo de llamada y los argumentos de entrada en un mensaje de solicitud
  3. El stub del cliente envía el mensaje a través de la red al servidor y bloquea el hilo de ejecución actual
  4. El esqueleto del servidor recibe el mensaje de solicitud de la red.
  5. Skeleton descomprime el tipo de llamada del mensaje de solicitud y busca el procedimiento en el objeto llamado.
  6. El esqueleto desorganiza los argumentos del procedimiento
  7. El esqueleto ejecuta el procedimiento en el objeto llamado.
  8. El objeto llamado realiza un cálculo y devuelve el resultado.
  9. Skeleton empaqueta los argumentos de salida en un mensaje de respuesta.
  10. El esqueleto envía el mensaje a través de la red de regreso al cliente.
  11. El stub del cliente recibe el mensaje de respuesta de la red
  12. stub descomprime los argumentos de salida del mensaje
  13. stub pasa argumentos de salida al llamador, libera el hilo de ejecución y el llamador continúa con la ejecución

La ventaja de esta arquitectura es que ni el que llama ni el objeto llamado tienen que implementar lógica relacionada con la red. Esta funcionalidad, que garantiza un canal de comunicación confiable a través de la red, se ha trasladado a la capa de stub y esqueleto .

Talón

El objeto del lado del cliente que participa en la comunicación de objetos distribuidos se conoce como stub o proxy , y es un ejemplo de un objeto proxy .

El stub actúa como una puerta de enlace para los objetos del lado del cliente y todas las solicitudes salientes a los objetos del lado del servidor que se enrutan a través de él. El stub envuelve la funcionalidad del objeto del cliente y, al agregar la lógica de red, garantiza un canal de comunicación confiable entre el cliente y el servidor. El stub se puede escribir manualmente o generar automáticamente según el protocolo de comunicación elegido.

El stub es responsable de:

Esqueleto

El objeto del lado del servidor que participa en la comunicación de objetos distribuidos se conoce como esqueleto (o stub; término que se evita aquí).

Un esqueleto actúa como puerta de enlace para los objetos del lado del servidor y todas las solicitudes entrantes de los clientes se enrutan a través de él. El esqueleto envuelve la funcionalidad del objeto del servidor y la expone a los clientes; además, al agregar la lógica de red, garantiza un canal de comunicación confiable entre los clientes y el servidor. Los esqueletos se pueden escribir manualmente o generar automáticamente según el protocolo de comunicación elegido.

El esqueleto es responsable de:

Protocolos que utilizan el enfoque stub/skeleton

Véase también

Referencias

  1. ^ "Introducción a la invocación de métodos remotos (RMI) en Java". www-itec.uni-klu.ac.at . Archivado desde el original el 26 de marzo de 2002.
  2. ^ MSDN: Detalles de marshalling.