ScholarGate
Asistente

Invocación remota y middleware

La invocación remota permite que un programa llame a un procedimiento o método en otra máquina como si fuera local, y el middleware es la capa de software que proporciona esta y otras abstracciones relacionadas a través de una red.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La invocación remota es una abstracción de comunicación en la que un cliente invoca una operación en un proceso remoto utilizando una interfaz de llamada a procedimiento local, con el middleware subyacente manejando el marshalling de argumentos, el transporte y la notificación de fallos.

Scope

Este tema cubre la llamada a procedimiento remoto (RPC) y la invocación de método remoto, el marshalling de argumentos, el enlace y la denominación, la semántica de llamada (como máximo una vez, al menos una vez, exactamente una vez), y las capas de middleware —corredores de objetos, middleware orientado a mensajes y marcos RPC modernos— que las implementan. También cubre los límites conocidos de la transparencia: las formas en que las llamadas remotas difieren inevitablemente de las locales.

Core questions

  • ¿Cómo se puede presentar una interacción de red con la conveniencia de una llamada a procedimiento local?
  • ¿Qué semántica de llamada se puede lograr en presencia de pérdida de mensajes y fallos de procesos?
  • ¿Dónde se rompe necesariamente la abstracción de la transparencia de ubicación?

Key theories

Llamada a procedimiento remoto
La abstracción RPC empaqueta una interacción remota como una llamada de apariencia local, con stubs de cliente y servidor que realizan el marshalling y unmarshalling de argumentos; lograr incluso la semántica de "como máximo una vez" requiere un manejo cuidadoso de la retransmisión y la detección de duplicados.
Capas de middleware
El middleware se sitúa entre el sistema operativo y la aplicación para proporcionar servicios de denominación, marshalling e invocación, que van desde corredores de solicitudes de objetos hasta sistemas orientados a mensajes y de publicación-suscripción.
Límites de la transparencia de distribución
La latencia, los fallos parciales, la concurrencia y el acceso a la memoria significan que los objetos remotos no pueden hacerse completamente indistinguibles de los locales, por lo que los diseños que ignoran estas diferencias tienden a fallar bajo carga o partición.

Clinical relevance

RPC y el middleware son el tejido conectivo del software distribuido moderno: las arquitecturas de microservicios, las mallas de servicios y las API en la nube se construyen sobre marcos de invocación remota, y sus diseñadores deben razonar explícitamente sobre la semántica de las llamadas y los fallos parciales.

History

El artículo de Birrell y Nelson de 1984 estableció RPC como una abstracción práctica; la década de 1990 trajo middleware orientado a objetos como CORBA y Java RMI, atenuado por la influyente advertencia de Waldo y sus colegas sobre los límites de la transparencia; los marcos modernos continúan el linaje con RPC ligero y basado en esquemas a través de la web.

Debates

¿Las llamadas remotas deberían parecerse exactamente a las locales?
La transparencia de ubicación completa simplifica la programación pero oculta la latencia y los fallos parciales, lo que lleva a sistemas frágiles; la visión opuesta, articulada por Waldo y sus colegas, sostiene que la distribución debe exponerse para que los desarrolladores puedan manejar los fallos explícitamente.

Key figures

  • Andrew Birrell
  • Bruce Nelson
  • Jim Waldo
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • birrell1984
  • waldo1994

Frequently asked questions

¿Qué significa la semántica de llamada "como máximo una vez"?
Garantiza que una operación remota se ejecuta cero o una vez, nunca más, incluso si la solicitud se retransmite. Este es el objetivo práctico común porque la ejecución "exactamente una vez" es mucho más difícil de garantizar ante fallos.

Methods for this concept

Related concepts