Please enable JavaScript.
Coggle requires JavaScript to display documents.
Conceptos de Sockets y RPC - Coggle Diagram
Conceptos de Sockets y RPC
Sokects
Es una interfaz
controlada por el OS a través de la cual el proceso aplicación
puede tanto enviar como
recibir mensajes
Programación de Sockets con TCP
El cliente debe contactar al
servidor
Proceso servidor debe estar
corriendo primero
Servidor debe tener creado el socket (puerta) que acoge al
cliente
El cliente contacta al servidor
Especifica la dirección IP,
número de puerto del proceso servidor
Una vez que el cliente crea el
socekt: éste establece una conexión TCP al servidor
La creación de un socket TCP
local para el cliente
Cuando el servidor es
contactado por el cliente, el servidor TCP crea un nuevo
socket para que el procese
servidor se comunique con el
cliente
Programación de Sockets con UDP
UDP: no hay “conexión” entre
cliente y servidor
Tx explícitamente adjunta
dirección IP y puerto de
destino en cada paquete.
Para responder se debe
extraer dirección IP y y puerto
del Tx desde el paquete
recibido
no hay handshaking (establecimiento de
conexión)
UDP: datos transmitidos pueden llegar fuera de orden
o perderse.
Llamadas a procedimientos remotos
El proceso que ejecuta el procedimiento extrae los argumentos del mensaje, realiza la llamada de forma local, obtiene el resultado y se lo envía de vuelta al proceso que realizó la llamada
Objetivo: acercar la semántica de las llamadas a procedimiento convencional a
un entorno distribuido (transparencia).
El proceso que realiza la llamada empaqueta los argumentos en un mensaje,
se los envía a otro proceso y espera el resultado
EJEMPLOS DE PAQUETES RCP
RPC del proyecto ANSA
RPC de DCE
RPC de Sun
Aspectos de diseños las RCP
Transferencia de parámetros
Problemas en la representación de los datos
Problemas con los punteros
Una de las funciones de los resguardos es empaquetar los parámetros en un
mensaje: aplanamiento (marshalling)
Enlace dinámico (binding)
Permite localizar objetos con nombre
en un sistema distribuido, en concreto, servidores que
ejecutan las RPC.
TIPOS DE ENLACES
Enlace no persistente: la conexión entre el cliente y el servidor se
establece en cada RPC.
Enlace persistente: la conexión se mantiene después de la primera
RPC.
Lenguaje de definición de interfaces. Generador de suplentes.
Los compiladores pueden diseñarse para que los clientes y
servidores se escriban en lenguajes diferentes.
Tipos de RPC
Integrado con un lenguaje de programación (Cedar, Argus)
Lenguaje de definición de interfaces específico para describir las interfaces
entre los clientes y los servidores (RPC de Sun y RPC de DCE)
Nombres de procedimientos y parámetros (entrada y salida).
Una interfaz especifica un nombre de servicio que utilizan los
clientes y servidores
Semántica de las RPC en presencia de fallos
Problemas que pueden plantear las RPC
Se pierde el mensaje de respuesta del servidor al cliente
El servidor falla después de recibir una petición
Se pierde el mensaje de petición del cliente al servidor
El cliente falla después de enviar una petición
El cliente no es capaz de localizar al servidor