0% encontró este documento útil (0 votos)
31 vistas4 páginas

Comunicación en Sistemas Distribuidos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas4 páginas

Comunicación en Sistemas Distribuidos

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Capitulo 4

Fuentes Rosales Isis Jeanell Bolaños Nuñes Carlos Daniel


5IV8 14/11/2024
Capítulo 4
Clientes y Servidores en Sistemas Distribuidos
Dentro de un sistema distribuido, el cliente es el componente que solicita un
servicio o dato, adoptando una postura activa al invocar el servidor cuando
necesita realizar una tarea específica. Por el contrario, el servidor ofrece
servicios como compartir recursos, imprimir, o informar sobre solicitudes. Su
postura es reactiva, manteniéndose inactivo hasta recibir una petición de
servicio. Los servidores pueden funcionar de manera continua y son esenciales
en el middleware de un sistema distribuido. Estos servidores pueden tener dos
modos de arranque: el estático, en el que el servidor se inicia al arrancar el
sistema, y el dinámico, en el que el servidor se activa a partir de una solicitud
de un cliente. Entre los tipos de servidores encontramos servidores de datos,
impresión, correo, multimedia, bases de datos y web.
Comunicación entre Procesos
En sistemas distribuidos, la comunicación entre procesos adopta varios
paradigmas, incluyendo el modelo cliente-servidor, la llamada a procedimiento
remoto (RPC) y la comunicación en grupo. Los datos deben ser aplanados
antes de ser enviados y representados consistentemente entre fuente y
destino. Las operaciones send y receive se utilizan para el envío y recepción de
datos, y es crucial especificar si la comunicación es bloqueante o no
bloqueante. Además, la confiabilidad de la comunicación es esencial, para lo
cual se suele utilizar TCP en lugar de UDP.
1. Modelo Cliente-Servidor (C-S)
Este modelo se basa en una comunicación uno a uno entre aplicaciones.
Un cliente inicia la comunicación enviando una solicitud, mientras que el
servidor espera pasivamente, procesa las solicitudes y devuelve el
resultado o un código de error. Este modelo puede implementarse
mediante librerías como Parallel Virtual Machine (PVM) o sockets, que
permiten manejar comunicaciones tanto bloqueantes como no
bloqueantes. Sin embargo, este modelo tiene deficiencias, como la
necesidad de que el programador gestione la transferencia de mensajes
y las operaciones de entrada/salida, tanto del lado del cliente como del
servidor.
2. Llamada a Procedimiento Remoto (RPC)
El RPC es una extensión del paradigma cliente-servidor que permite que
un programa llame a un procedimiento en una máquina remota como si
fuera una llamada local, lo que proporciona transparencia. En RPC, se
utiliza un “resguardo” en el cliente para empaquetar los parámetros y
enviarlos al servidor. Aunque el RPC facilita la transparencia y
abstracción en la comunicación, presenta desafíos, como el uso de
espacios de direcciones diferentes y la posible incompatibilidad entre
máquinas. El proceso RPC incluye varios pasos de comunicación y
coordinación entre el núcleo, el cliente y el servidor, lo que permite la
sincronización de mensajes entre ambas partes.
3. Comunicación en Grupo
Este tipo de comunicación permite que un emisor envíe mensajes a
varios receptores de manera simultánea. Los grupos en los sistemas
distribuidos son dinámicos y pueden crearse o destruirse según la
necesidad. Las técnicas de comunicación en grupo incluyen la
multidifusión (multicast), la transmisión completa y la transmisión punto a
punto. Estos grupos pueden ser abiertos o cerrados, de compañeros
(donde las decisiones se toman colectivamente), o jerárquicos (donde
existe un coordinador). Los grupos permiten escalar el sistema y
gestionar la comunicación en situaciones donde varios receptores deben
recibir la misma información.
API y la Interfaz de Sockets
Las aplicaciones cliente-servidor dependen de protocolos de transporte y una
interfaz de programación de aplicaciones (API) para la comunicación. La API de
sockets es una de las más comunes, y proporciona procedimientos básicos
para que las aplicaciones interactúen con los protocolos de comunicación del
sistema operativo. Los sockets permiten que una aplicación se comunique con
otra a través de un descriptor de archivo. Las funciones de socket como
socket(), close(), bind(), listen(), accept(), y connect() son fundamentales en la
comunicación entre dos computadoras, permitiendo el establecimiento,
recepción y terminación de conexiones.
 Funciones de API de Sockets
Las funciones de la API de sockets permiten una comunicación eficiente
entre computadoras, como la creación de sockets, la gestión de
conexiones y el envío y recepción de datos. Estas funciones facilitan la
interacción entre el cliente y el servidor, permitiendo que ambos
establezcan y gestionen una conexión de manera fluida. Además, las
rutinas como send() y sendto() permiten la transmisión de datos,
mientras que accept() gestiona las solicitudes de conexión del lado del
servidor.

Conclusión
Este capítulo nos habla acerca de la importancia de comprender los
fundamentos de los procesos y la comunicación en sistemas distribuidos, ya
que estos conceptos son esenciales para el desarrollo y gestión de
aplicaciones distribuidas. La comunicación entre procesos mediante
paradigmas como cliente-servidor, RPC y comunicación en grupo permite una
mayor eficiencia y escalabilidad en estos sistemas. Además, la API de sockets
proporciona las herramientas necesarias para implementar una comunicación
robusta entre los componentes de un sistema distribuido. Este conocimiento no
solo es esencial para optimizar los recursos del sistema, sino también para
asegurar una comunicación confiable y ordenada en un entorno distribuido,
facilitando así la creación de aplicaciones que operen de manera consistente y
eficiente en redes de múltiples dispositivos.

También podría gustarte