Redes en Sistemas Distribuidos
Redes en Sistemas Distribuidos
Redes en Sistemas Distribuidos
VICERRECTORADO ACADEMICO
COORDINACIÓN GENERAL DE INVESTIGACIÓN Y POSTGRADO
MAESTRÍA EN TECNOLOGÍAS DE LA INFORMACIÓN
INTRODUCCIÓN 3
1. SISTEMAS DISTRIBUIDOS 4
1.1 Conceptos 4
1.2 Propósito 4
CONCLUSIONES 18
BIBLIOGRAFÍA 19
2
INTRODUCCIÓN
Un sistema distribuido se define como una colección de computadores autónomos conectados por
una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como
una única entidad capaz de proporcionar facilidades de computación.
Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas
estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de
área local y de área extensa interconectados, que en lazan millones de ordenadores.
Las aplicaciones de los sistemas distribuidos varían desde la provisión de capacidad de computo a
grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente
todas las aplicaciones comerciales y técnicas de los ordenadores. Los requisitos de dichas
aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad
de la información que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos
por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio
que están distribuidos geográficamente, potencial para el crecimiento del sistema para acomodar la
expansión del negocio y un marco para la integración de sistema usados por diferentes compañías y
organizaciones de usuarios.
3
1. SISTEMAS DISTRIBUIDOS
1.1 Conceptos
“Colección de computadores independientes que aparecen ante los usuarios como un único
computador.” [Tanenbaum 1996]
1.2 Propósito
2.1 Internet
4
Figura 1. Una porción típica de Internet
2.2 Intranets
Una intranet es una porción de Internet que es, administrada separadamente y que tiene un
límite que puede ser configurado para hacer cumplir políticas de seguridad local.
La figura 2 muestra una intranet típica. Está compuesta de varias redes de área local (LAN)
enlazadas por conexión backbone. La configuración de red de una intranet particular es
responsabilidad de la organización que la administra y puede variar ampliamente, desde una
LAN en un único sitio a un conjunto de LANs conectadas perteneciendo a ramas de la
empresa u otra organización en diferentes países.
5
- Computadores portátiles.
- Smartphones, Tablets.
- Dispositivos integrados en aparatos, como lavadores, sistemas de alta fidelidad, automóviles,
neveras, etc.
La figura 3, muestra a un usuario que está visitando una organización. En la figura se aprecia
la intranet de la casa del usuario y la de la organización anfitriona en el lugar que está
visitando dicho usuario. Ambas intranets están conectadas al resto de Internet.
Los usuarios están tan acostumbrados a los beneficios de compartir recursos que pueden
pasar por alto su significado. Normalmente compartimos recursos hardware como impresoras,
recursos de datos como archivos, y recursos con una funcionalidad más específica como
máquinas de búsqueda.
El mismo proceso puede ser tanto un cliente como un servidor, puesto que los servidores a
veces invocan operaciones en otros servidores. Los términos cliente y servidor se aplican a los
roles desempeñados en una única solicitud.
6
Ambos son distintos, en muchos aspectos, los clientes son activos y los servidores pasivos,
los servidores se están ejecutando continuamente, mientras que los clientes sólo lo hacen el
tiempo que duran las aplicaciones de las que forman parte.
Por su estructura y sus características los sistemas distribuidos ofrecen grandes ventajas a los
usuarios. La primera de ellas es que se adecuan a un concepto común en la vida de los seres
humanos: la distribución. Es decir, el hombre comparte información y recursos sin necesidad de
complejos protocolos de comunicación u otros requerimientos, simplemente se comunica. Así que los
sistemas distribuidos se acercan más al concepto que tiene el hombre de compartir recursos.
El costo y el rendimiento de los sistemas son reducidos, debido a que cada dispositivo del sistema se
desenvuelve como una entidad. Es programado por separado y no dependiendo de otros dispositivos.
No se requieren costosos sistemas de redes que requieran de una configuración exhaustiva. Además
los sistemas de comunicación han mejorado su rendimiento, implementando protocolos que permiten
la rápida y efectiva transmisión de datos, incluyendo multimedia.
Otra ventaja importante es la modularidad, ya que un sistema distribuido deja de ser centralizado y
cada una de las entidades que lo componen tiene integrado su propio sistema de control. Es decir
cada entidad es independiente y es programada cuidadosamente para que tenga un óptimo
desempeño dentro de una comunidad de servicios. Además, un sistema distribuido es expandible y
escalable. Por la misma razón que cada entidad es programada de tal forma que sea independiente
pueden ser añadidas o removidas de un sistema, a esto se refiere la escalabilidad. En cuanto al
concepto de expansión dentro de un sistema significa que, no sólo se pueden agregar nuevos
dispositivos periféricos, sino también se pueden agregar procesadores y servidores que incrementen
la capacidad de almacenamiento del sistema.
También ofrece como ventaja la disponibilidad de los dispositivos, gracias a que cada entidad debe de
estar programada dentro del concepto de redundancia de esta manera sus servicios permanecen al
alcance de quien los solicite a pesar de que ocurra alguna falla en ellos.
7
Por último dentro de las ventajas de un sistema distribuido existe la expansibilidad y la
confiabilidad. Esta cualidad se debe a que implementa todos los conceptos anteriores, en especial la
disponibilidad, ya que si un componente esta disponible a pesar de que exista alguna falla el usuario
tiene como garantía que podrá seguir usándolo.
Aunado a esto, una aplicación dentro de un sistema distribuido debe de ser capaz de localizar objetos
remotos, comunicarse con estos y por último obtener de ellos los procesos que requiera. Existen
tecnologías que ofrecen esta funcionalidad y que permiten un manejo dinámico de dispositivos dentro
de una red.
• Datos compartidos: Permiten que varios usuarios tengan acceso a una base de datos
común.
8
4. CARACTERISTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS
Hay seis características claves responsables de la utilidad de los sistemas distribuidos: compartir
recursos, apertura, concurrencia, escalabilidad, tolerancia a fallas y transparencia.
1. Los interfaces software clave del sistema están claramente especificados y se ponen a
disposición de los desarrolladores. En una palabra, los interfaces se hacen públicos.
9
2. Los sistema distribuidos abiertos se basan en la provisión de un mecanismo uniforme de
comunicación entre procesos e interfaces publicados para acceder a recursos compartidos.
4.3 Concurrencia
Cuando existen varios procesos en una única maquina decimos que se están ejecutando
concurrentemente. Si el ordenador esta equipado con un único procesador central, la
concurrencia tiene lugar entrelazando la ejecución de los distintos procesos. Si la
computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la
vez hasta N procesos.
En los sistemas distribuidos hay muchas maquinas, cada una con uno o mas procesadores
centrales. Es decir, si hay M ordenadores en un sistema distribuido con un procesador central
cada una entonces hasta M procesos estar ejecutándose en paralelo.
El caso (2) surge debido a la existencia de uno o mas procesos servidores para cada tipo de
recurso. Estos procesos se ejecutan en distintas maquinas, de manera que se están
ejecutando en paralelo diversos servidores, junto con diversos programas de aplicación. Las
peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el
servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias
concurrentemente por múltiples instancias del proceso gestor de recursos. Cuando esto ocurre
los procesos servidores deben sincronizar sus acciones para asegurarse de que no existen
conflictos. La sincronización debe ser cuidadosamente planeada para asegurar que no se
pierden los beneficios de la concurrencia.
4.4 Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes.
La escala más pequeña consiste en dos estaciones de trabajo y un servidor de ficheros,
mientras que un sistema distribuido construido alrededor de una red de área local simple
podría contener varios cientos de estaciones de trabajo, varios servidores de ficheros,
servidores de impresión y otros servidores de propósito especifico.
10
A menudo se conectan varias redes de área local para formar internetworks, y éstas podrían
contener muchos miles de ordenadores que forman un único sistema distribuido, permitiendo
que los recursos sean compartidos entre todos ellos.
Tanto el software de sistema como el de aplicación no deberían cambiar cuando la escala del
sistema se incrementa. La necesidad de escalabilidad no es solo un problema de prestaciones
de red o de hardware, sino que esta íntimamente ligada con todos los aspectos del diseño de
los sistemas distribuidos. El diseño del sistema debe reconocer explícitamente la necesidad de
escalabilidad o de lo contrario aparecerán serias limitaciones.
En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el
hardware, pueden replicarse los servidores individuales que son esenciales para la operación
continuada de aplicaciones criticas.
La recuperación del software tiene relación con el diseño de software que sea capaz de
recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo.
11
Un usuario podría desplazarse a otra estación de trabajo; un proceso servidor podría
ejecutarse en otra maquina.
4.6 Transparencia
• Transparencia de Prestaciones: Permite que el sistema sea reconfigurado para mejorar las
prestaciones mientras la carga varia.
Las dos mas importantes son las transparencias de acceso y de localización; su presencia o
ausencia afecta fuertemente a la utilización de los recursos distribuidos. A menudo se las
denomina a ambas transparencias de red. La transparencia de red provee un grado similar de
anonimato en los recursos al que se encuentra en los sistemas centralizados.
5.1 Cliente-Servidor
Los orígenes del modelo cliente-servidor se basan en los sistemas de paso de mensajes .
12
Los datos, representados en forma de mensajes, se intercambian entre dos procesos, un
emisor y un receptor . Un proceso envía un mensaje que representa una petición. El mensaje
se entrega a un receptor, que procesa la petición y envía un mensaje como respuesta. En
secuencia, la réplica puede disparar posteriores peticiones, que llevan a sucesivas
respuestas, y así, sucesivamente .
Las operaciones básicas necesarias para dar soporte al paradigma de paso de mensajes son
enviar y recibir. Para comunicaciones orientadas a conexión, también se necesitan las
operaciones conectar y desconectar .
El modelo cliente-servidor asigna roles diferentes a los dos procesos que colaboran. El
servidor interpreta el papel de proveedor de servicio, esperando de forma pasiva la llegada de
peticiones . El cliente invoca determinadas peticiones al servidor y aguarda sus respuestas
5.2 Peer-to-peer
En el paradigma peer-to-peer (p2p) los procesos participantes interpretan los mismos papeles,
con idénticas capacidades y responsabilidades (lo que sugiere interacciones directas entre las
partes). Cada participante puede solicitar una petición a cualquier otro participante y recibir
una respuesta .
• Las máquinas están siempre encendidas (Ancho de banda reducido a bajo coste ).
• Comunidades globales
◦ Mercado global
◦ Colaboración global
◦ Información global
• Facilidades comunes a muchos sistemas P2P
◦ El nombre del nodo no coincide con la localización
◦ La información se encamina dentro de la aplicación
◦ Hay un directorio distribuido
◦ Son sistemas especializados
• Compartición de archivos específica
◦ Se comparten bloques más que ficheros
• Está dirigido a una comunidad de usuarios con un interés común
• Descentralización . No es necesario un único servidor .
• Los participantes pueden comunicarse directamente entre sí.
◦ Distribución
◦ La información no está alojada en un solo sitio
13
• Balance de Carga . Se intenta equilibrar entre todos los participantes
• Balanceo de tráfico . Utilizando mejor las redes de comunicaciones
• Redundancia de información . Se duplica información para hacerla más accesible
• Alta disponibilidad . La caída de un nodo no bloquea el servicio
• Optimización de uso de recursos . Procesamiento, almacenamiento, ancho de banda, etc...
• Ahorro de coste de infraestructura
5.3 Middleware
Figura 6. Middleware
Como muestra la figura 6 los servicios del Middleware son una capa de software distribuida,
que se localiza entre la aplicación y la plataforma concreta sobre la que se implementa la
aplicación .
14
Los servicios del Middleware proporcionan un conjunto de APIs (Application Programming
Interfaces) más funcional que el sistema operativo y los servicios de red para permitir a una
aplicación:
• Localización transparente a través de la red, proporcionando interacción con otra
aplicación o servicio .
• Ser independiente de los servicios de red .
• Ser fiable y disponible .
• Ser escalable, en el sentido de poder aumentar su capacidad sin pérdida de
funcionalidad .
15
5.5 Llamada a Procedimientos Remotos
Las Llamadas a Procedimientos Remotos (RPC, Remote Procedure Call) constituyen una
infraestructura del modelo cliente-servidor que incrementa la:
Para acceder a la porción de código del servidor remoto de una aplicación, las RPC o
invocaciones especiales a funciones, son insertadas dentro de la porción de código del cliente
Cuando se compila la aplicación, el compilador genera un programa “stub” local para el lado
cliente y un “stub” remoto para la parte servidora de la aplicación. Son a estos stubs a los
que se les invoca cuando la aplicación requiere una función remota y, habitualmente, soportan
llamadas síncronas entre el cliente y el servidor (análogas a una invocación en local).
16
Cada cliente se conecta a un agente del sistema de mensajes que proporciona facilidades
para crear, enviar, recibir y leer mensajes. Los sistemas de mensajes habilitan comunicaciones
entre procesos distribuidos con un bajo acoplamiento.
Aplicación de los Sistemas de Mensajes. Este paradigma es adecuado cuando se dan las
siguientes circunstancias . Se requiere que los componentes no dependan de la información
acerca de otras interfaces de componentes, de forma que los componentes puedan
reemplazarse fácilmente Se requiere que la aplicación se ejecute independientemente de si
todos los componentes están activos y ejecutándose simultáneamente . El modelo de negocio
de la aplicación permite que un componente envíe información a otro y pueda seguir operando
sin recibir una respuesta inmediata
17
CONCLUSIONES
Existen redes de computadores en cualquier parte. Una de ellas es Internet, como lo son las muchas
redes de las que se compone. Las redes de teléfonos móviles, las redes corporativas, las de las
empresas, las universidades, las casas, redes dentro de los vehículos, todas, tanto separadas como
combinadas, comparten las características esenciales que las hacen sistemas distribuidos.
Un sistema distribuido consiste en una colección de computadoras autónomas enlazadas por una red
y equipadas con un sistema de software distribuido; es aquel en el que los componentes de hardware
o software, localizados en computadores unidos mediante una red, comunican y coordinan sus
acciones sólo mediante paso de mensajes.
Las computadores que están conectadas mediante una red pueden estar separadas espacialmente
por cualquier distancia. Esta definición de sistemas distribuidos tiene las siguiente consecuencias
significativas:
• Inexistencia de reloj global: cuando los programas necesitan cooperar coordinan sus acciones
mediante el intercambio de mensajes. La coordinación estrecha depende a menudo de una
idea compartida del instante en el que ocurren las acciones de los programas.
18
BIBLIOGRAFÍA
19