Diferencia Entre RPC Y RMI

Tabla de contenido:

Diferencia Entre RPC Y RMI
Diferencia Entre RPC Y RMI

Vídeo: Diferencia Entre RPC Y RMI

Vídeo: Diferencia Entre RPC Y RMI
Vídeo: RPC y RMI 2024, Abril
Anonim

RPC frente a RMI

La diferencia básica entre RPC y RMI es que RPC es un mecanismo que permite llamar a un procedimiento en una computadora remota, mientras que RMI es la implementación de RPC en Java. RPC es un lenguaje neutro, pero solo admite tipos de datos primitivos que se van a pasar. Por otro lado, RMI se limita a Java pero permite pasar objetos. RPC sigue las construcciones tradicionales del lenguaje de procedimientos, mientras que RMI admite el diseño orientado a objetos.

¿Qué es RPC?

RPC, que significa llamada a procedimiento remoto, es un tipo de comunicación entre procesos. Esto permite llamar a una función en otro proceso que se ejecuta en la computadora local o en una computadora remota. Este concepto surgió hace mucho tiempo en 1980, pero la primera implementación famosa se vio en Unix.

RPC implica varios pasos. El cliente realiza una llamada de procedimiento en la computadora local como de costumbre. El módulo llamado cliente stub recopila los argumentos y crea un mensaje y lo pasa al sistema operativo, el sistema operativo hace una llamada al sistema y envía este mensaje a la computadora remota. El sistema operativo en el servidor recopila el mensaje y lo pasa al módulo en el servidor llamado servidor auxiliar. Luego, el stub del servidor llama al procedimiento en el servidor. Finalmente, los resultados se envían de vuelta al cliente.

La ventaja de utilizar RPC es que es independiente de los detalles de la red. El programador solo tiene que especificar de manera abstracta, mientras que el sistema operativo se ocupará de los detalles de la red interna. Por lo tanto, esto facilita la programación y permite que RPC funcione en cualquier red a pesar de las diferencias físicas y de protocolo. Las implementaciones de RPC están presentes en todos los sistemas operativos convencionales como Unix, Linux, Windows y OS X. RPC es generalmente un lenguaje neutro, por lo tanto, limita los tipos de datos a los más primitivos, ya que deben ser comunes a todos los lenguajes. El enfoque en RPC no está orientado a objetos, pero es un mecanismo de procedimiento tradicional como en C.

Diferencia entre RPC y RMI
Diferencia entre RPC y RMI

¿Qué es RMI?

RMI, que significa Invocación de método remoto, es una API (Interfaz de programación de aplicaciones) que implementa RPC en Java para admitir la naturaleza orientada a objetos. Esto permite llamar a métodos Java en otra máquina virtual Java que reside en la misma computadora o en una remota. La limitación de RMI es que solo se pueden invocar métodos Java, pero esto tiene la ventaja de que los objetos se pueden pasar como argumentos y valores de retorno. Cuando se considera que el rendimiento, RMI es más lento que RPC debido a la participación del código de bytes en la máquina virtual Java, pero RMI es muy amigable para los programadores y es muy fácil de usar.

RMI utiliza mecanismos de seguridad incorporados en Java y también ofrece una fábrica de sockets que permite el uso de protocolos de capa de transporte personalizados que no son TCP. Además, RMI proporciona métodos para evitar los firewalls. Los pasos que ocurren en RMI son similares a RPC. La implementación de RMI cuida los detalles de la red interna donde el programador no tiene que preocuparse por ellos.

¿Cuál es la diferencia entre RPC y RMI?

• RPC es un lenguaje neutro, mientras que RMI se limita a Java.

• RPC es de procedimiento como en C, pero RMI está orientado a objetos.

• RPC solo admite tipos de datos primitivos, mientras que RMI permite que los objetos se pasen como argumentos y devuelvan valores. Cuando se usa RPC, el programador debe dividir los objetos compuestos en tipos de datos primitivos.

• RMI es fácil de programar ese RPC.

• RMI es más lento que RPC ya que RMI implica la ejecución de código de bytes java.

• RMI permite el uso de patrones de diseño debido a la naturaleza orientada a objetos, mientras que RPC no tiene esta capacidad.

Resumen:

RPC frente a RMI

RPC es un mecanismo de lenguaje neutro que permite llamar a un procedimiento en una computadora remota. Sin embargo, la característica de lenguaje neutral limita los tipos de datos que se pasan como argumentos y devuelven valores a tipos primitivos. RMI es la implementación de RPC en Java y también admite el paso de objetos, lo que facilita la vida del programador. La ventaja de RMI es el soporte de diseño orientado a objetos, pero la limitación a Java es una desventaja.

Imágenes cortesía:

Recomendado: