es un programa que utiliza una computadora para ejecutar código en otra
máquina remota sin tener que preocuparse por las comunicaciones entre ambas.
El protocolo que se utiliza para esta llamada es un gran avance
sobre los sockets de Internet usados hasta el momento.
De esta manera el programador no tenía que estar pendiente de las
comunicaciones, estando estas encapsuladas dentro de las RPC.
Ventajas
gestiona la comunicación entre procesos de manera fiable
requiere un tiempo de procesamiento relativamente corto.
facilita mucho la programación de procesos de
comunicación entre ordenadores remotos
los procesos pueden distribuirse, aligerando
así la carga de los ordenadores
todas las partes implicadas pueden conectarse a
la red desde cualquier lugar del mundo
la excelente escalabilidad de las arquitecturas
cliente-servidor implementadas
Inconvenientes
no existe un estándar unificado para esta tecnología
Las diferentes implementaciones, no suelen ser
compatibles entre sí
los niveles de transferencia de los sistemas basados en RPC
conllevan una cierta pérdida de velocidad
el uso de recursos (por ejemplo, archivos)
también se vuelve más complejo
no resulta muy adecuado para transferir grandes cantidades de datos
el sistema más susceptible a errores
Los mensajes pueden perderse durante el proceso de comunicación
es dependiente del lenguaje de programación que se utilice
Funcionamiento de RPC
1.- El código del cliente llama a un procedimiento stub (stub del cliente local)
2.- El stub del cliente genera un mensaje apto para enviarse que se adhiere al
protocolo RPC. Durante la transferencia, se lleva a cabo una serialización
3.- El stub del cliente se pone en contacto con el sistema de comunicación del
ordenador local,para el intercambio de mensajes entre el cliente y el servidor.
4.- El stub del servidor desempaqueta los parámetros que contiene el mensaje
5.- El stub del servidor transfiere los parámetros descodificados
6.- El valor de la función resultante se comunica al stub del servidor.
7.- Ahora, el proceso se lleva a cabo en dirección contraria
El stub
El stub del cliente
actúa como sustituto del procedimiento del
servidor remoto en el lado del cliente
El stub del servidor
sustituye al código del cliente que realiza la
llamada en el lado del servidor. Disfrazando
el “alejamiento” del código en el otro lado
es la pieza de código que le permite al servidor ejecutar la tarea que se le
asignó. Se encarga de proveer la información necesaria para que el
servidor convierta las direcciones de los parámetros que el cliente envió
en direcciones de memoria válidos dentro del ambiente del servidor
es la pieza de código que se encarga de enmascarar toda
discrepancia entre el cliente y servidor.
Tipos de semántica
Semántica "tal-vez"
Procedimiento remoto puede
ejecutarse una vez o ninguna vez.
El cliente puede recibir una respuesta
o ninguna
Semántica "al-menos-una-vez"
Procedimiento remoto se ejecuta una
o más veces.
El cliente puede recibir una o más respuestas
Semántica "como-máximo-una-vez"
El procedimiento remoto se ejecuta exactamente
una vez o no llega a ejecutarse ninguna.
El cliente recibe una respuesta o una indicación de
que no se ha ejecutado el procedimiento remoto.