Sistemas Distribuidos
KarlaUM9221 de Febrero de 2015
3.544 Palabras (15 Páginas)179 Visitas
Un sistema distribuido es aquel en el que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes. Esta definición lleva a las siguientes características de los sistemas distribuidos: concurrencia de los componentes, carencia de un reloj global y fallos independientes de los componentes.
Proporcionamos tres ejemplos de sistemas distribuidos:
• Internet.
• Una Intranet, que es una porción de Internet gestionada por una organización.
• La computación móvil y ubicua.
Compartir recursos es uno de los motivos principales para construir sistemas distribuidos. Los recursos pueden ser administrados por servidores y accedidos por clientes o pueden ser encapsulados como objetos y accedidos por otros objetos clientes. Se analiza el Web como un ejemplo de recursos compartidos y se introducen sus principales características.
Los desafíos que surgen en la construcción de sistemas distribuidos son la heterogeneidad de sus componentes, su carácter abierto, que permite que se puedan añadir o reemplazar componentes, la seguridad y la escalabilidad, que es la capacidad para funcionar bien cuando se incrementa el número de usuarios, el tratamiento de los fallos, la concurrencia de sus componentes y la transparencia.
1.1 INTRODUCCIÓN
1.1 INTRODUCCION
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, los campus, las casas, redes dentro del coche, todas, tanto separadas como combinadas, comparten las características esenciales que las hacen elementos importantes para su estudio bajo el título de sistemas distribuidos. En este libro se pretenden explicar las características de los computadores en red que deben considerar los diseñadores e implementadores de sistemas y presentar los conceptos y técnicas fundamentales que han sido desarrolladas para ayudar en las tareas de diseño e implementación de sistemas que se basan en dichas características.
Definimos un sistema distribuido como aquel en el que los componentes hardware o software, localizados en computadores unidos mediante red, comunican y coordinan sus acciones sólo mediante paso de mensajes. Esta definición sencilla cubre el rango completo de sistemas en los que se utilizan normalmente computadores en red.
Los computadores que están conectados mediante una red pueden estar separados espacialmente por cualquier distancia. Pueden estar en continentes distintos, en el mismo edificio o en la misma habitación. Nuestra definición de sistemas distribuidos tiene las siguientes consecuencias significativas:
Concurrencia: en una red de computadores, la ejecución de programas concurrentes es la norma. Yo puedo realizar mi trabajo en mi computador, mientras tú realizas tu trabajo en la tuya, compartiendo recursos como páginas web o ficheros, cuando es necesario. La capacidad del sistema para manejar recursos compartidos se puede incrementar añadiendo más recursos (por ejemplo, computadores) a la red. Describiremos formas en las que esta capacidad extra puede ser usada de forma útil, en muchos puntos de este libro. La coordinación de programas que comparten recursos y se ejecutan de forma concurrente es también un tema importante y recurrente.
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. Pero resulta que hay límites a la precisión con lo que los computadores en una red pueden sincronizar sus relojes, no hay una única noción global del tiempo correcto. Esto es una consecuencia directa del hecho que la única comunicación se realiza enviando mensajes a través de la red. En el Capítulo 10 se describen ejemplos de estos problemas de temporización y soluciones a los mismos.
Fallos independientes: todos los sistemas informáticos pueden fallar y los diseñadores de sistemas tienen la responsabilidad de planificar las consecuencias de posibles fallos. Los sistemas distribuidos pueden fallar de nuevas formas. Los fallos en la red producen el aislamiento de los computadores conectados a él, pero eso no significa que detengan su ejecución. De hecho, los programas que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o está excesivamente lenta. De forma similar, la parada de un computador o la terminación inesperada de un programa en alguna parte del sistema (crash) no se da a conocer inmediatamente a lo demás componentes con los que se comunica. Cada componente del sistema puede fallar independientemente, permitiendo que los demás continúen su ejecución. Las consecuencias de esta característica de los sistemas distribuidos serán un tema recurrente a lo largo de este libro.
La motivación para construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos. El término recurso es un poco abstracto, pero caracteriza bien el rango de cosas que pueden ser compartidas de forma útil en un sistema de computadores conectados en red. Éste se extiende desde los componentes hardware como los discos y las impresoras hasta las entidades de software definidas como ficheros, bases de datos y objetos de datos de todos los tipos. Incluye la secuencia de imágenes que sale de una cámara de vídeo digital y la conexión de audio que representa una llamada de teléfono móvil.
Figura 1.1. Una porción típica de Internet.
El propósito de este capítulo es transmitir una visión clara de la naturaleza de los sistemas distribuidos y de los retos que deben ser considerados para asegurar que se alcanzan con éxito. La Sección 1.2 presenta algunos ejemplos fundamentales de sistemas distribuidos, los componentes de los que están formados y sus objetivos. La Sección 1.3 explora el diseño de sistemas de recursos compartidos en el contexto del World Wide Web. La Sección 1.4 describe los desafíos fundamentales a los que deben enfrentarse los diseñadores de sistemas distribuidos: heterogeneidad, carácter abierto, seguridad, escalabilidad, gestión de fallos, concurrencia y la necesidad de transparencia.
1.2. EJEMPLOS DE SISTEMAS DISTRIBUIDOS
Nuestros ejemplos están basados en redes de computadores conocidos y utilizados ampliamente: Internet, intranets y la tecnología emergente basada en dispositivos móviles. Se han elegido para proporcionar ejemplos del amplio rango de servicios y aplicaciones que son soportados por redes de computadores y para comenzar la discusión de las cuestiones técnicas que entraña su implementación.
1.2.1. INTERNET
Internet es una vasta colección de redes de computadores de diferentes tipos interconectados. La Figura 1.1 muestra una porción típica de Internet. Programas ejecutándose en los computadores conectados a ella interactúan mediante paso de mensajes, empleando un medio común de comunicación. El diseño y la construcción de los mecanismos de comunicación Internet (los protocolos Internet) es una realización técnica fundamental, que permite que un programa que se está ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte.
Internet es también un sistema distribuido muy grande. Permite a los usuarios, donde quiera que estén, hacer uso de servicios como el World Wide Web, el correo electrónico, y la transferencia de ficheros (de hecho, a veces se confunde incorrectamente el Web con Internet). El conjunto de servicios es abierto, puede ser extendido por la adición de servidores y nuevos tipos de servicios. La figura nos muestra una colección de intranets, subredes gestionadas por compañías y otras organizaciones. Los proveedores de servicios de Internet (ISPs) son empresas que proporcionan enlaces de módem y otros tipos de conexión a usuarios individuales y pequeñas organizaciones, permitiéndolas el acceso a servicios desde cualquier parte de Internet, así como proporcionando servicios como correo electrónico y páginas web. Las intranets están enlazadas conjuntamente por conexiones troncales (backbones). Una conexión o red troncal es un enlace de red con una gran capacidad de transmisión, que puede emplear conexiones de satélite, cables de fibra óptica y otros circuitos de gran ancho de banda.
En Internet hay disponibles servicios multimedia, que permiten a los usuarios el acceso a datos de audio y vídeo, incluyendo música, radio y canales de televisión y mantener videoconferencias. La capacidad de Internet para mantener los requisitos especiales de comunicación de los datos multimedia es actualmente bastante limitada porque no proporciona la infraestructura necesaria para reservar capacidad de la red para flujos individuales de datos. En el Capítulo 15 se discute la necesidad de sistemas distribuidos multimedia.
La implementación de Internet y los servicios que mantiene ha implicado el desarrollo de soluciones prácticas para muchas cuestiones de sistemas distribuidos (incluyendo la mayoría de las definidas en la Sección 1.4). Nosotros destacaremos esas soluciones a lo largo del libro, señalando su ámbito y sus limitaciones cuando sea apropiado.
1.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
...