Llamada a Procedimientos Remotos (RPC)

Anuncio
Llamada a Procedimientos
Remotos (Remote Procedure
Calls-RPC)
Prof. Mireya Morales
Prof. Miguel Torrealba
Hilo de ejecución de una llamada de
función ordinaria
Espacio de usuario
Programa que invoca
Función Invocada
Ord_func() {
Ord_func();
}
Hilo de Ejecución
Hilo de ejecución de una llamada a
procedimiento remoto Nodo Remoto
Nodo Local
Espacio de usuario
Programa cliente
Espacio de usuario
Funciones del servidor
rem_func() {
rem_func();
}
Hilo de Ejecución
Llamada a procedimiento
Remoto y regreso
Hilo bloqueado
“The Network is the Computer”
Sun Microsystem- 1997
Sistema de archivo de red ( Network
File System - NFS)
• Desarrollado en 1984 por Sun Microsystem
Incorporated.
• Es un protocolo del
según el modelo OSI
nivel de aplicación,
• Fue desarrollado con el objeto de disponer
de servicios de recursos compartidos
para estaciones de trabajo Unix en LAN.
Llamada a Procedimientos
Remotos (RPC)
“Es un paradigma de comunicación de
alto nivel que permite a las aplicaciones de red,
ser desarrolladas de manera que el diseño de las
llamadas a procedimientos,
detalles
oculten los
de los mecanismos subyacentes de la
red.”
Sun Microsystems. Network Programming Guide. Marzo 1990.
Llamada a Procedimientos Remotos
• Según wikipedia: “Es un protocolo que
permite a un programa de computador
ejecutar código en otra máquina remota sin
tener que preocuparse por las
comunicaciones entre ambos”.
RPC Remoto
Proceso Cliente
Proceso Servidor
Llamada Lógica
Programa cliente
Llamada RPC
Regreso RPC
Funciones de servidor
Regreso Lógico
Talón de Cliente
Solicitud
organizada
Regreso
organizado
Servicios de la
red
Regreso
Llamada
ordinario
ordinaria
Talón del Servidor
Solicitud
organizada
Comunicaciones
de red
Núcleo del cliente
Regreso
organizado
Servicios de la
red
Núcleo del servidor
Representación externa de datos (XDR). Estándar útil para transferir datos entre
diferentes Arquitecturas de Computadores. RFC 4506
Arquitectura RPC – Microsoft
Corporation
Aplicación
Aplicación
Talón de Cliente
Talón del Servidor
Bibliotecas RPC
en tiempo de
ejecución
Bibliotecas RPC
en tiempo de
ejecución
Transporte
Implementado
con DLL
Transporte
Archivos involucrados en la generación
de un programa RPC
CC
Procedimientos
del Servidor
Talón de
Servidor
Archivo de especificación
RPC
Archivo.x
Servidor.exe
rpcgen
Archivo.h
Identificación del programa,
de la versión y de las funciones
Bibliotecas
RPC en tiempo
de ejecución
Talón de Cliente
Programa
Cliente
CC
Cliente.exe
Pasos involucrados en las RPC
Sistema Remoto
Demonio
Portmapper (rcpbind)
Informar al portmapper
Servidor
¿1. Quiénes somos?
2
3
Cliente
Sistema Local
Paso 1
• Al iniciar el programa servidor en el sistema
remoto, creará un sockets UDP/TCP y lo
asociará a algún puerto local.
• Luego se llamará a una función de la biblioteca
RPC (svc-register), para registrar el número del
programa y la versión. Esta función contactará
al proceso port mapper para registrarse así
mismo.
• El port mapper tendrá información sobre el
número del programa, la versión y el puerto.
Importante
TODAS LAS ACCIONES EN ESTE PASO SON
REALIZADAS POR EL PROGRAMA TALÓN
(STUB) DEL SERVIDOR, el cual fue generado
por el compilador rpcgen.
Paso 2
• Se ejecuta el programa cliente y este llama a
la función clnt_create. Esta llamada
especifica el nombre del sistema remoto, el
número del programa, la versión y el
protocolo.
• Esta función contacta al port mapper en el
sistema remoto para encontrar el puerto
UDP/TCP del servidor.
Los números de los programas
0x00000000 – 0x1f f f f f f f definido por Sun
0x20000000 – 0x3f f f f f f f definido por usuario
0x40000000 – 0x5f f f f f f f transitorio (aplicaciones
que generan números dinámicamente)
0x60000000 – 0xf f f f f f f f reservado
Paso 3
• El programa cliente llama a la función que se
desea ejecutar en forma remota. Esta función
está definida en el talón de cliente, luego ella
envía un datagrama al servidor y queda a la
espera de una respuesta.
• El datagrama es recibido por el talón de
servidor quien determina el procedimiento
para llamar luego a la función.
Descargar