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 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 la programación orientada a objetos análoga a una llamada a procedimiento remoto (RPC).

Talones y esqueletos de clases

El enfoque ampliamente utilizado sobre cómo 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 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 en el cliente) como una interfaz . El rmic (compilador rmi) usa esto para crear el código auxiliar de clase. El código auxiliar realiza la verificación de tipos. El esqueleto se define en una clase que implementa el código auxiliar de interfaz. [1]

Cuando una persona que llama quiere realizar una llamada remota al objeto llamado, delega las solicitudes a su código auxiliar , que inicia la comunicación con el esqueleto remoto . En consecuencia, el código auxiliar pasa los argumentos de la persona que llama 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 código auxiliar del cliente. Tenga en cuenta que no existe comunicación directa entre la persona que llama y el objeto llamado.

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

  1. la persona que llama llama a un procedimiento local implementado por el código auxiliar
  2. stub marshalls llama el tipo y los argumentos de entrada en un mensaje de solicitud
  3. El código auxiliar 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. El esqueleto descomprime el tipo de llamada del mensaje de solicitud y busca el procedimiento en el objeto llamado.
  6. esqueleto descompone los argumentos del procedimiento
  7. esqueleto ejecuta el procedimiento en el objeto llamado
  8. El objeto llamado realiza un cálculo y devuelve el resultado.
  9. El esqueleto empaqueta los argumentos de salida en un mensaje de respuesta.
  10. El esqueleto envía el mensaje a través de la red al cliente.
  11. El código auxiliar 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 a la persona que llama, libera el hilo de ejecución y la persona que llama luego continúa en ejecución

La ventaja de esta arquitectura es que ni la persona 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 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 objeto proxy .

El stub actúa como 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 código auxiliar 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 resguardo puede escribirse manualmente o generarse automáticamente según el protocolo de comunicación elegido.

El talón 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; aquí se evita el término).

Un esqueleto actúa como puerta de entrada 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 se garantiza un canal de comunicación confiable entre los clientes y el servidor. Los esqueletos pueden escribirse manualmente o generarse automáticamente según el protocolo de comunicación elegido.

El esqueleto es responsable de:

Protocolos que utilizan el enfoque stub/skeleton

Ver también

Referencias

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