sistemas medicina example ejemplo distribuidos caracteristicas aviacion java rmi rpc

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



rmi pdf (9)

RMI o Remote Method Invokation es muy similar a RPC o Remote Procedure call en que el cliente envía objetos proxy (o stubs) al servidor, pero la sutil diferencia es que el cliente RPC invoca FUNCTIONS a través de la función proxy y RMI invoca METHODS a través del función de proxy. RMI se considera ligeramente superior ya que es una versión orientada a objetos de RPC.

Desde here .

Para obtener más información y ejemplos, mira aquí .

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

He leído en algunos lugares que RMI usa Objects?


La única diferencia real entre RPC y RMI es que hay objetos involucrados en RMI: en lugar de invocar funciones a través de una función de proxy, invocamos métodos a través de un proxy.


La diferencia entre RMI y RPC es que:

  • RMI como el nombre indica Invocación de método remoto: invoca un método o un objeto. Y
  • RPC invoca una función.

La principal diferencia entre RPC y RMI es que RMI involucra objetos . En lugar de llamar procedimientos de forma remota mediante el uso de una función proxy, en su lugar usamos un objeto proxy.

Existe una mayor transparencia con RMI, a saber, debido a la explotación de objetos, referencias, herencia, polimorfismo y excepciones, ya que la tecnología está integrada en el lenguaje.

RMI también es más avanzado que RPC, lo que permite la invocación dinámica , donde las interfaces pueden cambiar en tiempo de ejecución, y la adaptación de objetos , que proporciona una capa adicional de abstracción.


RMI o Remote Method Invokation es muy similar a RPC o Remote Procedure call en que el cliente envía objetos proxy (o stubs) al servidor, pero la sutil diferencia es que el cliente RPC invoca FUNCTIONS a través de la función proxy y RMI invoca METHODS a través del función de proxy. RMI se considera ligeramente superior ya que es una versión orientada a objetos de RPC.


RPC está basado en C, y como tal tiene una semántica de programación estructurada, en el otro lado, RMI es una tecnología basada en Java y está orientada a objetos.

Con RPC puede simplemente llamar a funciones remotas exportadas a un servidor, en RMI puede tener referencias a objetos remotos e invocar sus métodos, y también pasar y devolver referencias de objetos más remotas que se pueden distribuir entre muchas instancias de JVM, por lo que es mucho más poderoso .

RMI se destaca cuando surge la necesidad de desarrollar algo más complejo que una arquitectura pura cliente-servidor. Es muy fácil distribuir objetos a través de una red, lo que permite que todos los clientes se comuniquen sin tener que establecer conexiones individuales explícitamente.


1. Enfoque:

RMI usa un paradigma orientado a objetos donde el usuario necesita conocer el objeto y el método del objeto que necesita invocar.

RPC no se ocupa de objetos. Por el contrario, llama a subrutinas específicas que ya están establecidas.

2. Trabajo:

Con RPC, obtiene una llamada de procedimiento que se parece mucho a una llamada local. RPC maneja las complejidades involucradas al pasar la llamada de la computadora local a la remota.

RMI hace exactamente lo mismo, pero RMI pasa una referencia al objeto y al método que se está llamando.

RMI = RPC + orientación a objetos

3. Mejor uno:

RMI es un mejor enfoque en comparación con RPC, especialmente con programas más grandes, ya que proporciona un código más fácil de identificar si algo sale mal.

4. Ejemplos de sistema:

Sistemas RPC: SUN RPC, DCE RPC

Sistemas RMI: Java RMI, CORBA, Microsoft DCOM / COM +, SOAP (Protocolo simple de acceso a objetos)


Remote Procedure Call (RPC) es una comunicación entre procesos que permite llamar a una función en otro proceso que reside en una máquina local o remota.

La invocación remota de métodos (RMI) es una API que implementa RPC en Java con soporte de paradigmas orientados a objetos.

  1. Puede pensar que invocar RPC es como llamar a un procedimiento en C. RPC admite tipos de datos primitivos donde RMI admite parámetros de método / tipos de retorno como objetos Java.

  2. RMI es fácil de programar a diferencia de RPC. Puede pensar la lógica de su negocio en términos de objetos en lugar de una secuencia de tipos de datos primitivos.

  3. RPC es de lenguaje neutral a diferencia de RMI, que se limita a Java

  4. RMI es un poco más lento para RPC

Eche un vistazo a este article para la implementación de RPC en C


RPC es un protocolo antiguo basado en C. Puede invocar un procedimiento remoto y hacer que parezca una llamada local. RPC maneja las complejidades de pasar esa invocación remota al servidor y obtener el resultado para el cliente.

Java RMI también logra lo mismo pero de manera ligeramente diferente. Utiliza referencias a objetos remotos . Por lo tanto, lo que hace es enviar una referencia al objeto remoto junto con el nombre del método a invocar. Es mejor porque da como resultado un limpiador el código en el caso de programas grandes y también la distribución de objetos a través de la red permite que múltiples clientes invoquen métodos en el servidor en lugar de establecer cada conexión individualmente.