0% encontró este documento útil (0 votos)
72 vistas6 páginas

Definición de RPC

RPC permite llamar a funciones en otros procesos de forma remota mediante varios pasos. RMI es similar pero específico de Java, permitiendo llamar a métodos remotos de objetos Java. La principal diferencia es que RPC es independiente del lenguaje y basado en procedimientos, mientras que RMI está limitado a Java pero admite la programación orientada a objetos.

Cargado por

ANGEL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
72 vistas6 páginas

Definición de RPC

RPC permite llamar a funciones en otros procesos de forma remota mediante varios pasos. RMI es similar pero específico de Java, permitiendo llamar a métodos remotos de objetos Java. La principal diferencia es que RPC es independiente del lenguaje y basado en procedimientos, mientras que RMI está limitado a Java pero admite la programación orientada a objetos.

Cargado por

ANGEL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Definición de RPC

La llamada a procedimiento remoto (RPC) es una función de lenguaje de


programación diseñada para la computación distribuida y basada en la semántica
de las llamadas a procedimientos locales. Es la forma más común de servicio
remoto y se diseñó como una forma de abstraer el mecanismo de llamada de
procedimiento para usar entre sistemas conectados a través de una red. Es similar
al mecanismo de IPC en el que el sistema operativo permite que los procesos
gestionen los datos compartidos y se ocupen de un entorno en el que los
diferentes procesos se ejecutan en sistemas separados y necesariamente
requieren comunicación basada en mensajes.

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

 El proceso del cliente llama al apéndice 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 ordenación a través del talón del cliente. Luego se
prepara el mensaje que contiene la representación de los parámetros.

 Para encontrar la identidad del sitio, el apéndice del cliente se comunica con
el servidor de nombres en el que existe el procedimiento remoto.

 Al usar el protocolo de bloqueo, el apéndice del cliente envía el mensaje al


sitio donde existe la llamada a un procedimiento remoto. Este paso detiene
el apéndice del cliente hasta que reciba una respuesta.
 El sitio del servidor recibe el mensaje enviado desde el lado del cliente y lo
convierte en 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 suspende
hasta que el procedimiento se completa.

 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 mensaje
que contiene los resultados.

 El mensaje de resultado se envía al talón del cliente que se convierte


nuevamente a un formato específico de la máquina adecuado para el talón
del cliente.

 En el último cliente, el código auxiliar devuelve los resultados al proceso del


cliente.

Definición de RMI
La invocación de método remoto (RMI) es similar a RPC pero es específica 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 apéndices 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 del
método remoto. El talón del cliente es responsable de crear y enviar el paquete que
contiene el nombre de un método y los parámetros calculados, y el esqueleto es
responsable de recibir el paquete.

El esqueleto desata parámetros e invoca el método deseado en el servidor. El


esqueleto calcula el valor dado (o las excepciones) con el paquete y lo envía al talón
del cliente. El talón vuelve a montar el paquete de devolución y lo envía al cliente.
En Java, los parámetros se pasan a los métodos y se devuelven en forma de
referencia. Esto podría ser problemático para el servicio de RMI ya que no todos
los objetos son posiblemente métodos remotos. Por lo tanto, debe determinar qué
se podría pasar como referencia y cuáles no.
Java utiliza el proceso denominado como serialización donde los objetos se
pasan como valor. El objeto remoto se localiza por pase por valor. También puede
pasar un objeto por referencia pasando una referencia remota al objeto junto con
la URL de la clase de código auxiliar. Pasar por referencia restringe un código
auxiliar para el objeto remoto.

Diferencias clave entre RPC y RMI


 RPC admite los paradigmas de programación de procedimientos, por lo
tanto, está basado en C, mientras que RMI admite paradigmas de
programación orientados a objetos y está basado en Java.
 Los parámetros pasados a procedimientos remotos en RPC son las
estructuras de datos ordinarias. Por el contrario, RMI transita objetos como
un parámetro al 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 se puede usar el método de paso por valor. A
diferencia de lo anterior, la facilidad de RMI está diseñada en base a un
enfoque de programación moderno, que podría usar el paso 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 " in-out ", lo que significa que el
valor pasado al procedimiento y el valor de salida deben tener los mismos
tipos de datos. En contraste, no hay obligación de pasar parámetros de
" entrada-salida " 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.

¿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. 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 que 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.

¿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 valores de retorno. 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 de Java.

• RMI permite el uso de patrones de diseño debido a la naturaleza


orientada a objetos, mientras que RPC no tiene esta capacidad.

También podría gustarte