Diferencia entre RPC y RMI

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 14 Mayo 2024
Anonim
RPC y RMI
Video: RPC y RMI

Contenido


RPC y RMI son los mecanismos que permiten a un cliente invocar el procedimiento o método desde el servidor mediante el establecimiento de la comunicación entre el cliente y el servidor. La diferencia común entre RPC y RMI es que RPC solo admite programación procesal mientras que RMI admite programación orientada a objetos.

Otra diferencia importante entre los dos es que los parámetros pasados ​​a la llamada a procedimientos remotos consisten en estructuras de datos ordinarias. Por otro lado, los parámetros pasados ​​al método remoto consisten en objetos.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónRPCRMI
ApoyaProgramación procesal
Programación orientada a objetos
ParámetrosLas estructuras de datos ordinarias se pasan a procedimientos remotos.Los objetos se pasan a métodos remotos.
EficienciaMás bajo que RMIMás que RPC y respaldado por un enfoque de programación moderno (es decir, paradigmas orientados a objetos)
Gastos generalesMás
Menos comparativamente
Los parámetros de entrada y salida son obligatorios.No necesariamente
Provisión de facilidad de programación
Alto
bajo


Definición de RPC

Llamada a procedimiento remoto (RPC) es una característica del lenguaje de programación diseñada para la informática distribuida y basada en la semántica de procedimiento local llamadas. Es la forma más común de servicio remoto y se diseñó como una forma de abstraer el mecanismo de llamada a procedimiento para usar entre sistemas conectados a través de una red. Es similar al mecanismo de IPC, donde el sistema operativo permite que los procesos administren datos compartidos y se ocupen de un entorno en el que diferentes procesos se ejecutan en sistemas separados y requieren necesariamente una comunicación basada en.

Comprendamos cómo se implementa RPC a través de los pasos dados:

  • El proceso del cliente llama al código auxiliar del cliente con parámetros, y su ejecución se suspende hasta que se completa la llamada.
  • Luego, los parámetros se traducen a una forma independiente de la máquina mediante la clasificación a través del código auxiliar del cliente. Luego se prepara el que contiene la representación de los parámetros.
  • Para encontrar la identidad del sitio, el código auxiliar del cliente se comunica con el servidor de nombres en el que existe el procedimiento remoto.
  • Usando el protocolo de bloqueo, el cliente se encuentra en el sitio donde existe la llamada a procedimiento remoto. Este paso detiene el código auxiliar del cliente hasta que recibe una respuesta.


  • El sitio del servidor recibe el envío del lado del cliente y lo convierte a un formato específico de la máquina.
  • Ahora el apéndice del servidor ejecuta una llamada en el procedimiento del servidor junto con los parámetros, y el apéndice del servidor se interrumpe hasta que se completa el procedimiento.
  • El procedimiento del servidor devuelve los resultados generados al apéndice del servidor, y los resultados se convierten a un formato independiente de la máquina en el apéndice del servidor y crean un que contiene los resultados.
  • El resultado se envía al apéndice del cliente, que se convierte de nuevo al formato específico de la máquina adecuado para el apéndice del cliente.
  • En el último cliente, el código auxiliar devuelve los resultados al proceso del cliente.

Definición de RMI

Invocación de método remoto (RMI) es similar a RPC pero es específico del idioma y una característica de java. Se permite que un hilo llame al método en un objeto remoto. Para mantener la transparencia en el lado del cliente y del servidor, implementa objetos remotos utilizando stubs y esqueletos. El código auxiliar reside en el cliente y para el objeto remoto se comporta como un proxy.

Cuando un cliente llama a un método remoto, se llama al código auxiliar para el método remoto. El código auxiliar del cliente es responsable de crear e incorporar el paquete que contiene el nombre de un método y los parámetros ordenados, y el esqueleto es responsable de recibir el paquete.

El esqueleto desarma parámetros e invoca el método deseado en el servidor. El esqueleto calcula el valor dado (o excepciones) con el paquete y lo envía al código auxiliar del cliente. El trozo vuelve a ensamblar el paquete de devolución y lo envía al cliente.

En Java, los parámetros se pasan a métodos y se devuelven en forma de referencia. Esto podría ser problemático para el servicio RMI ya que no todos los objetos son posiblemente métodos remotos. Por lo tanto, debe determinar cuál podría pasar como referencia y cuál no.

Java utiliza el proceso denominado como publicación por entregas donde los objetos se pasan como valor. El objeto remoto se localiza por pasar por valor. También puede pasar un objeto por referencia pasando una referencia remota al objeto junto con la URL de la clase stub. Pasar por referencia restringe un código auxiliar para el objeto remoto.

  1. RPC admite paradigmas de programación de procedimientos, por lo tanto, está basado en C, mientras que RMI admite paradigmas de programación orientada a objetos y está basado en Java.
  2. Los parámetros pasados ​​a los procedimientos remotos en RPC son las estructuras de datos ordinarias. Por el contrario, RMI transita objetos como un parámetro para el método remoto.
  3. RPC se puede considerar como la versión anterior de RMI, y se usa en los lenguajes de programación que admiten la programación de procedimientos, y solo puede usar el método de pasar por valor. Por el contrario, la instalación de RMI está diseñada en base a un enfoque de programación moderno, que podría usar pasar por valor o referencia. Otra ventaja de RMI es que los parámetros pasados ​​por referencia se pueden cambiar.
  4. El protocolo RPC genera más gastos generales que RMI.
  5. Los parámetros pasados ​​en RPC deben ser "En fuera"Lo que significa que el valor pasado al procedimiento y el valor de salida deben tener los mismos tipos de datos. Por el contrario, no hay obligación de pasar "En fuera"Parámetros en RMI.
  6. En RPC, las referencias no podrían ser probables porque los dos procesos tienen un espacio de direcciones distinto, pero es posible en el caso de RMI.

Conclusión

Tanto RPC como RMI tienen el mismo propósito, pero se usan en lenguajes que admiten diferentes paradigmas de programación, por lo tanto, tienen características distintas.