Zusammenfassung der Ressource
RPC (llamada a procedimiento remoto)
- 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.