Documento de UEMC Universidad Europea Miguel de Cervantes sobre Ampliación de Sistemas Operativos. El Pdf, un material de estudio de Informática para Universidad, explora parámetros de red, comunicación entre procesos, sockets, RPC y RMI, con ejemplos y diagramas claros.
Ver más18 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
Ampliación de Sistemas Operativos
GRADO EN INGENIERÍA INFORMÁTICA
Autor: Lorena Calavia Domínguez UEMO universidad online UEMC Universidad Europea Miguel de Cervantes
Tema 5: Redes y comunicación entre sistemas
1. Parámetros de red en sistemas distribuidos 2. Comunicación entre procesos. 3. Sockets 3.1. Sockets en Java 4. Llamada a procedimiento remoto 4.1. Cliente 4.2. Servidor 5. Invocación a objeto remoto 5.1. Java RMI V. RESUMEN VI. BIBLIOGRAFIA
UEMOP universidad online 2 5
En el ámbito de los sistemas distribuidos, la comunicación entre procesos desempeña un papel fundamental. La gestión de las comunicaciones a través de una red se beneficia de la utilización de una pila de protocolos, lo que da lugar a una arquitectura en niveles. Esta estructura jerárquica define diferentes capas de comunicación, cada una encargada de aspectos específicos, lo que facilita la interoperabilidad y el desarrollo de sistemas distribuidos complejos.
En este tema, se exploran dos tipos de comunicaciones ampliamente utilizados en sistemas distribuidos: la comunicación mediante datagramas (UDP) y la comunicación mediante streams (TCP). Cada uno de ellos presenta características particulares que se adaptan a distintos escenarios y requisitos de los sistemas distribuidos.
A continuación, como alternativa a la comunicación tradicional entre procesos, se trata el concepto de llamada a procedimiento remoto (RPC) y la invocación a objeto remoto. Estos mecanismos permiten la interacción transparente entre procesos distribuidos, facilitando la ejecución de procedimientos o métodos en máquinas remotas.
Para finalizar, se verá un ejemplo concreto de invocación a objetos remotos: Java RMI (Remote Method Invocation), que implementa este mecanismo en el lenguaje Java.
El tema se va a dividir en 5 puntos:
Se recomienda tener conocimientos de Java para tener éxito en el estudio y superación de este tema.
Para el desarrollo de este tema se han utilizado la referencia Coulouris (2007) y Muñoz (2012).
UEMOP universidad online 3
El tema se va a estructurar de la siguiente manera:
Redes y comunicación entre sistemas
Parámetros de red en sistemas distribuidos
Comunicación entre procesos
Sockets
Llamada a procedimiento remoto (RPC)
Invocación a objeto remoto
UEMOP universidad online 4
La mayoría de sistemas distribuidos se sostienen sobre diferentes tipos de redes. Las redes están formadas por medios de transmisión (coaxial, fibra óptica, canales inalámbricos, etc.), hardware (routers, switches, bridges, hubs, etc.) y software (protocolos, drivers, etc.) heterogéneos.
Para facilitar el uso heterogéneo de recursos puede hacer uso de middleware.
Por otra parte, los parámetros fundamentales de las redes en sistemas distribuidos son:
De manera simplificada:
tiempo de transmisión=latencia+longitud/tasa transmisión
Si se segmentan los datos el tiempo de transmisión es la suma de los tiempos de transmisión de todos los datos. En este caso, para mensajes cortos la latencia cobra mayor importancia (Figura 1).
User Server User Server
HTTP get file HTTP get file
TCP DATA TCP DATA
file rec'd file rec'd
Figura 1. Segmentación de paquetes
UEMOP universidad online 5
Para gestionar las comunicaciones a través de una red resulta conveniente utilizar una pila de protocolos, definiendo así una arquitectura en niveles. De esta manera, cada nivel utiliza un protocolo determinado y así se preocupa por solucionar alguno de los problemas que la comunicación conlleva.
Una primera arquitectura de este tipo fue el modelo OSI (no tuvo un amplio seguimiento) y actualmente la mayoría de los sistemas de comunicaciones han optado por la utilización de la arquitectura TCP/IP.
Nodo emisor Nodo receptor
Aplicación I Transporte
Pasarela Pasarela
Red I Enlace Físico
RED
Figura 2. Modelo de capas TCP/IP (Fuente: Muñoz).
El paso de mensajes entre un par de procesos se puede basar en dos operaciones: envía y recibe. Para que un proceso se pueda comunicar con otro el proceso envía un mensaje al destino y el otro proceso, en destino recibe el mensaje.
La comunicación entre emisor y receptor puede ser:
Los procesos bloqueantes son los más comunes en los sistemas actuales, ya que realmente con múltiples hilos no se paraliza el procesado y reduce la necesidad de control de flujo.
UEMOP universidad online 6
Client Server Client Server
send(Server, Client, message) send(Server, Client, message)
receive(Client, buffer) blocked
The Server is executing on the message and process a response
receive(Server, buffer) receive(Server, buffer) blocked
send(Client, Server, response)
+ Time Time Time Time
Figura 3. Comparación comunicación síncrona (izquierda) y asíncrona (derecha)
Los mensajes son enviados a direcciones construidas por pares (dirección Internet, puerto). Un puerto tiene un receptor pero múltiples emisores. Si un cliente utiliza una dirección fija para referirse a un servicio, este servicio debería ejecutarse siempre en el mismo computador para que la dirección se considere válida. Esto se puede evitar. Se suele utilizar un enlazador entre los servicios, los procesos y sus direcciones y puertos o los sistemas operativos pueden proporcionar identificadores para procesos destino independientemente de su localización para facilitar la migración.
La ventaja de utilizar puertos y no procesos es que proporcionan varios puntos de entrada al proceso receptor (los procesos pueden recibir información en múltiples puertos).
La comunicación entre procesos consiste en la trasmisión de un mensaje entre un conector de un proceso y un conector de otro proceso. Para los procesos receptores, su conector debe estar asociado a un puerto local y la dirección de Internet donde se ejecuta. Los mensajes enviados a una dirección y puerto concretos sólo pueden ser recibidos por el proceso cuyo conector este asociado a esa dirección y puerto. Los procesos pueden utilizar el mismo conector para enviar y recibir mensajes.
Cualquier puerto
Puerto acordado
D 26
Socket Socket
Mensaje
Cliente Servidor
Otros puertos
Figura 4. Comunicación mediante sockets (Fuente: Colouris).
UEMOP universidad online 7
En este tema vamos a tratar dos tipos de comunicaciones:
Habitualmente se emplean mecanismos adicionales para el control de fallos como códigos de redundancia cíclica y rechazo de paquetes corruptos.
Cuando se escriben programas Java que se comunican a través de la red, se está programando en la capa de aplicación. No se necesita trabajar con las capas TCP y UDP. Utilizaremos java.net.
El paquete java.net proporciona, entre otras, las siguientes clases:
UEMOP universidad online 8