Está en la página 1de 3

RPC (llamadas de procedimiento remoto)

El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un


protocolo que permite a un programa de ordenador ejecutar código en otra máquina
remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo
es un gran avance sobre los sockets usados hasta el momento. De esta manera el
programador no tenía que estar pendiente de las comunicaciones, estando éstas
encapsuladas dentro de las RPC.

RPC
RPC es la transferencia sincrónica de datos y control entre dos partes de un
programa distribuido a través de espacios de direcciones disjuntas. La manera en
que RPC logra hacer esto, es por medio de lo que se conoce como STUB. En el caso
del STUBservidor, se conoce como SKELETON. Estos Stubs y Skeletons permiten que
al momento de ser invocada la función remota esta pueda ser quot; simulada
localmente quot.
Objetivos de RPC

 Proporcionar un middelware que simplifique el desarrollo de aplicaciones


distribuidas

 Evitar que programador tenga que interactuar directamente con el interfaz de


Sockets

 Abstraer (ocultar) los detalles relativos a la red

 El Servidor ofrece procedimientos que el cliente llama como si fueran


procedimientos locales

 Se busca ofrecer un entorno de programación lo mas similar posible a un


entorno no distribuido.

 El sistema RPC oculta los detalles de implementación de esas llamadas remotas


Implementa la llamada remota mediante un dialogo petición respuesta -- Mensaje
de petición: identifica procedimiento llamado, contiene parámetros de la
llamada -- Mensaje de respuesta: contiene valor/es devuelto/s se encarga de
enviar/recibir mensajes para comunicar ambas partes se encarga de gestionar
los contenidos de esos mensajes (empaquetado y formateado de datos)

El mecanismo de RPC

 El stub del cliente: se encarga de empaquetar los parámetros y la solicitud,


enviarlos al intermediario en el servidor, y luego esperar la
respuesta,desempaquetarla y entregarla a la aplicación.

 El programa principal del servidor (que incluye el stub y el dispatcher). se


encarga de recibir peticiones, desempaquetar los parámetros, invocar la
función solicitada, pasarle los parámetros, luego obtener el resultado,
empaquetarlo y enviarlo al cliente.

 Las rutinas de serialización de datos: Se debe tomar en cuenta que las


máquinas cliente y servidor puedan ser de arquitectura diferente (y no
compatible).

 Servicio de binding: Responsable de la transparencia de localización, gestiona


la asociación entre el nombre del procedimiento remoto (y su versión) con su
localización en la maquina servidor (dirección, puertos, skeleton, etc).
Realiza la búsqueda del skeleton de la implementación concreta del
procedimiento remoto llamado por un cliente.

Ejemplos de entornos RPC

 Sun-RPC (ONC-RPC: Open Network Computing-RPC): RPC muy extendido en entornos


Unix, infraestructrua sobre la que se ejecuta NFS (servicio de sistema de
ficheros en red), NIS (servicio de directorio). DCE/RPC (Distributed Computing
Environmen RPC): RPC definido por la Open Software Foundation Java-RMI :
invocación de métodos remotos en Java CORBA (Common Object Requesting Broker
Architecture): soporta la invocación de métodos remotos bajo un paradigma
orientado a objetos en diversos lenguajes SOAP (Simple Object Access
Protocol): protocolo RPC basado en el intercambio de datos
(parámetos+resultados) en formato XML DCOM (Distributed Component Object
Model): Modelo de Objetos de Componentes Distribuidos de Microsoft, con
elementos de DCE/RPC .NET Remoting: Infraestructura de invocación remota de
.NET

Las RPC son muy utilizadas dentro del paradigma cliente-servidor. Siendo el
cliente el que inicia el proceso solicitando al servidor que ejecute cierto
procedimiento o función y enviando éste de vuelta el resultado de dicha operación
al cliente. Hay distintos tipos de RPC, muchos de ellos estandarizados como
pueden ser:

 RPC de Sun denominado ONC RPC (RFC 1057)

 RPC de OSF denominado DCE/RPC

 Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM Aunque ninguno


de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de
descripción de interfaz (IDL) que define los métodos exportados por el
servidor.

Modelo de Objetos de Componentes Distribuidos


El Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria
de Microsoft para desarrollar componentes software distribuidos sobre varios
ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y
proporciona el sustrato de comunicación entre la infraestructura del servidor de
aplicaciones COM+ de Microsoft. La adición de la quot;Dquot; a COM fue debido al
uso extensivo de DCE/RPC, o más específicamente la versión mejorada
de Microsoft,conocida como MSRPC.

Éste último es el más utilizado debido a que, como ya hemos comentado en


bastantes ocasiones, es el sistema operativo más utilizado y por tanto, los
servicios (la mayoría) que ofrece su empresa creadora también lo son. El ejemplo
más común y el más claro con el que se puede explicar este tipo de protocolo son
las famosas actualizaciones de Windows. El cliente (en este caso nuestro PC) se
conecta con los servidores de Microsoft para solicitar actualizaciones, de haber
alguna de éstas, se realiza el proceso de que caracteriza a los RPC. No solo
existe este tipo de aplicación para este tipo de protocolo en realidad son
bastantes los usos que se les pueden dar, pero este es el más sencillo y común de
entender.

También podría gustarte