Protocolo rcp

Solo disponible en BuenasTareas
  • Páginas : 5 (1122 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de septiembre de 2010
Leer documento completo
Vista previa del texto
RPC: Llamada a Procedimiento Remoto
El RPC (del inglés Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa de computadora 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.
La manera en que RPC logra hacer esto, es por medio de lo que se conoce como STUBs. En el caso del STUB servidor, se conoce como SKELETON. Estos Stubs y Skeletons permiten que al momento de ser invocada la función remota esta pueda ser "simulada localmente".

Objetivos de RPC
• Proporcionar un middleware que simplifiqueel 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 sistemaRPC 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 valores devueltos, se encarga de enviar/recibir mensajes para comunicar ambas partes y también de gestionar los contenidos de esosmensajes (empaquetado y formateado de datos).

Diferencias con llamadas locales (LPC) 
• Punto clave: manejo de errores.
• Con RPC pueden existir fallos en servidor remoto o en la red.
• Acceso a variables globales y efectos laterales en el cliente no son posible
• Procedimiento. Remoto (servidor) no tiene acceso al espacio de direcciones del cliente / imposibilidad de usar punteros.
• RPCimpone un mayor nivel de encapsulamiento
• Los parámetros para la llamada remota no pueden pasarse por referencia (solo por valor).
• Mayor sobrecarga en llamadas RPC (transferencia por red, aplanamiento de datos, etc.)
• En algunos entornos se limita el intercambio de estructuras complejas, en otros se usan métodos de aplanado/des aplanado.

 El mecanismo de RPC
• El stub del cliente: seencarga 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: portmapper en Sun-RPC, protocolo UDDI en servicios web, rmiregistry en Java-RMI.

Pasos para llamar un cliente al servidor:
En toda maquina que ofrezca servicios en RPC, debe tener un proceso llamado "Portmapper" el cual es responsable de mapearprocedimientos a puertos UDP.
El portmapper utiliza en si mismo un puerto bien conocido (111) por el cual cualquier cliente puede contactarlo.
1. Cuando un servidor establece una dirección de escucha de requerimientos, registra los puertos al portmapper, también registra los programas RPC y números de versiones, estos números pueden ser arbitrarios.
2. Antes de que un cliente pueda...
tracking img