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


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

He leído en algunos lugares que RMI utiliza Objetos?

 135
Author: user207421, 2010-04-28

9 answers

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

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

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

 117
Author: fortran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-06 15:35:45

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

Hay mayor transparencia con el RMI, a saber, debido a la explotación de objetos, referencias, herencia, polimorfismo y excepciones a medida que la tecnología se integra en el lenguaje.

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

 38
Author: Humphrey Bogart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-24 13:50:07

1. Enfoque:

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

RPC no trata con objetos. Más bien, llama subrutinas específicas que ya están establecidas.

2. Trabajo:

Con RPC, se obtiene una llamada de procedimiento que se parece bastante a una llamada local. RPC maneja las complejidades involucradas con el paso de la llamada del local al remoto ordenador.

RMI hace 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 limpio que es más fácil de identificar si algo sale mal.

4. Ejemplos de sistemas:

Sistemas RPC: SUN RPC, DCE RPC

Sistemas RMI: Java RMI, CORBA, Microsoft DCOM / COM+, SOAP(Simple Object Access Protocol)

 12
Author: Dhaval Simaria,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-26 03:33:36

Llamada de Procedimiento Remoto (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.

Invocación de método remoto (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 C. RPC admite tipos de datos primitivos donde as RMI admite parámetros del método / tipos de retorno como objetos java.

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

  3. RPC es un lenguaje neutro a diferencia de RMI, que se limita a java

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

Echa un vistazo a este artículo para la implementación de RPC en C

 7
Author: Ravindra babu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-01 13:48:20

La Invocación de RMI o Método Remoto es muy similar a RPC o Remoto Procedimiento de llamada en que el cliente ambos envían objetos proxy (o stubs) a el servidor sin embargo, el sutil la diferencia es que RPC del lado del cliente invoca FUNCIONES a través del proxy función y RMI invoca MÉTODOS a través de la función proxy. RMI es considerado ligeramente superior como es una versión orientada a objetos de RPC.

De aquí.

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

 6
Author: Kyle Rozendo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-28 10:13:42

La diferencia entre RMI y RPC es que:

  • RMI como el nombre indica la invocación del método remoto: invoca un método o un objeto. Y
  • RPC invoca una función.
 6
Author: sis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-21 10:03:08

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 proxy, invocamos métodos a través de un proxy.

 5
Author: jiby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-10 12:16:05

RPC es un protocolo antiguo basado en C.It 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 al cliente.

Java RMI también logra lo mismo, pero ligeramente differently.It utiliza referencias a objetos remotos.Por lo tanto, lo que hace es que envía una referencia al objeto remoto junto con el nombre del método a invoke.It es mejor debido a que resulta en un código más limpio en el caso de programas grandes y también la distribución de objetos a través de la red permite que varios clientes invoquen métodos en el servidor en lugar de establecer cada conexión individualmente.

 3
Author: Ruben Bhattacharya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-23 07:46:08

La invocación de RMI o Método Remoto es muy similar a la llamada de RPC o Procedimiento Remoto en que el cliente envía objetos proxy (o stubs) al servidor, sin embargo, la sutil diferencia es que RPC del lado del cliente invoca FUNCIONES a través de la función proxy y RMI invoca MÉTODOS a través de la función proxy. RMI se considera ligeramente superior, ya que es una versión orientada a objetos de RPC.

 1
Author: Sun Arthur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-23 07:29:44