Diferencia entre RPC y RMI
Contenido
- Cuadro comparativo
- Definición de RPC
- Comprendamos cómo se implementa RPC a través de los pasos dados:
- Definición de RMI
- Conclusión
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.
- Cuadro comparativo
- Definición
- Diferencias clave
- Conclusión
Cuadro comparativo
Bases para la comparación | RPC | RMI |
---|---|---|
Apoya | Programación procesal | Programación orientada a objetos |
Parámetros | Las estructuras de datos ordinarias se pasan a procedimientos remotos. | Los objetos se pasan a métodos remotos. |
Eficiencia | Más bajo que RMI | Más que RPC y respaldado por un enfoque de programación moderno (es decir, paradigmas orientados a objetos) |
Gastos generales | Más | Menos comparativamente |
Los parámetros de entrada y salida son obligatorios. | Sí | 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.
- 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.
- 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.
- 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.
- El protocolo RPC genera más gastos generales que RMI.
- 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.
- 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.