Sistemas distribuidos

Solo disponible en BuenasTareas
  • Páginas : 27 (6595 palabras )
  • Descarga(s) : 0
  • Publicado : 19 de noviembre de 2010
Leer documento completo
Vista previa del texto
LLAMADA DE PROCEDIMIENTO REMOTO (RPC)

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 estarpendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.

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 serel RPC de Sun denominado ONC RPC (RFC 1057), el RPC de OSF denominado DCE/RPC y el 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.

Hoy en día se está utilizando el XML como lenguaje para definir el IDL y elHTTP como protocolo de red, dando lugar a lo que se conoce como servicios Web. Ejemplos de éstos pueden ser SOAP o XML-RPC.

Si bien es cierto que resulta posible establecer sesiones entre clientes y servidores y luego usar una comunicación semidúplex sobre esas sesiones, frecuentemente la elevada sobrecarga ocasionada por múltiples capas de conexión se hace poco atractiva para las aplicacionesdonde la performance es crítica, tales como servidores de archivos. Una forma de comunicación sin conexión construida directamente encima de una facilidad de datagramas nativa (especialmente sobre LANs), a menudo, es una elección mucho mejor.

Aún cuando los problemas de performance puede solucionarse usando el modo sin conexiones, el modelo aún tiene sus fallas importantes: la base conceptualde toda comunicación es la de entrada/salida (input/output). Los programas se comunican con otros usando comandos tales como X-DATA.request y X-DATA.indication, el primero de los cuales es I/O y el último de los mismos probablemente sea una interrupción. Ellos difícilmente constituyan la herramienta adecuada para construir aplicaciones bien estructuradas.

Por otros motivos, se ha estadoinvestigando en las universidades y en la industria sobre un modelo radicalmente diferente para el diálogo y el control de errores basado en un servicio sin conexiones. Este trabajo, conocido bajo el nombre de llamadas a procedimientos remotos o RPC (remote procedure calls), ha sido ampliamente implementado en redes y especialmente en sistemas distribuidos.

Las RPCs, a la hora de hablar de serviciosde comunicaciones, aunque desde una perspectiva muy diferente, están lógicamente relacionadas con las mismas exigencias que la capa de sesión. Sin embargo, el lector deberá notar a lo largo del estudio que parte del mecanismo está implementado en las capas de presentación y de aplicación.

Comercialmente, el producto NFS mencionado anteriormente proporciona una implementación de RPCs mediantetres módulos: la biblioteca de RPC propiamente dicha (ubicable en el nivel de sesión OSI), una biblioteca de presentación de datos denominada XDR (a nivel de presentación) y la interfaz al usuario junto a otras utilidades (a nivel de aplicación). Vale aclarar que algunos autores tienen una opinión diferente respecto a esta distribución y, más aún, hay ciertos paquetes de software que implementan unaidea similar directamente a la capa de aplicación (aunque sea mucho menos eficiente) por lo que algunas veces se lo discute en ese contexto. Por simplicidad, aquí estudiaremos únicamente la filosofía de la propuesta, sin preocuparnos demasiado de su encuadre formal.

La escuela RPC propone el modelo cliente-servidor desde una perspectiva completamente diferente, que ha sido diseñada para ser...
tracking img