Introducción a los Sistemas distribuidos

¿Qué es un sistema distribuido?

  Una de las primeras caracterizaciones de un sistema distribuido fue realizada por Enslow, ya en 1978, que le atribuye las siguientes propiedades:

 

A pesar del tiempo transcurrido, esta definición sigue siendo, en esencia, válida. Así, para Coulouris un sistema distribuido es aquél que está compuesto por varias computadoras autónomos conectados mediante una red de comunicaciones y equipados con programas que les permitan coordinar sus actividades y compartir recursos. Bal ofrece una definición muy similar: ``Un sistema de computación distribuida está compuesto por varios procesadores autónomos que no comparten memoria principal, pero cooperan mediante el paso de mensajes sobre una red de comunicaciones''. Y según Schroeder, todo sistema distribuido tiene tres características básicas:

 

  En cuanto a los campos de aplicación, podemos distinguir por un lado aquellos donde la distribución es fundamentalmente un medio para conseguir un fin y por otro aquellos donde es un problema en sí misma. Con respecto a los primeros, el uso de soluciones distribuidas sirve para acercarse a las siguientes metas:

 

En los segundos, son los propios requisitos de la aplicación los que fuerzan a evolucionar hacia soluciones distribuidas:

 

Algunas ventajas de los sistemas distribuídos sobre los centralizados son:

Elemento
Descripción
Economía Los microprocesadores ofrecen mejor proproción precio/rendimiento que los mainframes
Velocidad
Un sistema distribuído puede tener mayor poder de cómputo que un mainframe
Distribución inherente Algunas aplicaciones utilizan maquinas que están separadas a cierta distancia
Confiabilidad Si una máquina se descompone, el sistema puede sobrevivir como un todo
Crecimiento por incrementos Se puede añadir poder de cómputo en pequeños incrementos

Algunas ventajas de los sistemas distribuídos sobre las computadoras aisladas son:

Elemento
Descripción
Datos compartidos Permiten que varios usuarios tengan acceso a una base de datos común
Dispositivos compartidos Permiten que varios usuarios compartan periféricos caros, como las impresoras de color
Comunicación Facilita la comunicación de persona a persona; por ejemplo mediante el correo electrónico
Flexibilidad Difunde la carga de trabajo entre las máquinas disponibles en la forma más eficaz en cuanto a los costos.

Algunas desventajas de los sistemas distribuídos son:

Elemento
Descripción
Software Existe poco software para los sistemas distribuídos
Redes La red se puede saturar o causar otros problemas
Seguridad Un acceso sencillo también se aplica a datos secretos

 

Principales problemas y áreas de investigación

    Cuando se construye cualquier tipo de sistema distribuido hay varios problemas que deben ser resueltos. Estos problemas son fundamentales porque están presentes en cualquier sistema de este tipo, por su propia naturaleza. De hecho, algunos autores deciden incluso si un sistema es ``más o menos distribuido'' según el grado en que los presenta (y hablan entonces de síntomas de distribución). Los más relevantes son los siguientes:

 

Los campos donde se concentra la investigación en sistemas distribuidos suelen estar, bien relacionados con estos problemas, o bien con los dominios de aplicación donde se pretende usar la distribución. También hay campos donde temas ``tradicionalmente'' resueltos cobran nueva vida al intentar extenderlos con soluciones distribuidas (por ejemplo, los servicios de nombrado de un sistema operativo o los planificadores de procesos) . A continuación se ofrece una lista, extensa pero por supuesto no exhaustiva, de las áreas más activas en el ámbito de los sistemas distribuidos en los últimos años, construida a partir de la ofrecida en: redes de área local y extensa, sistemas operativos distribuidos, bases de datos distribuidas, servidores de ficheros distribuidos, lenguajes de programación concurrentes y distribuidos, lenguajes de especificación para sistemas concurrentes, teoría de algoritmos paralelos, teoría de computación distribuida, arquitecturas paralelas y estructuras de interconexión, sistemas ultraconfiables y tolerantes a fallos, sistemas distribuidos de tiempo real, técnicas de resolución cooperativa de problemas, depuración distribuida, simulación distribuida, aplicaciones distribuidas y metodologías para el diseño, construcción y mantenimiento de sistemas distribuidos grandes y complejos, y herramientas de trabajo cooperativo.

 

Técnicas más habituales

  Aunque los dominios de aplicación de los sistemas distribuidos son muchos, hay una serie de problemas comunes a todos ellos. Precisamente la recurrencia de estos problemas es lo que hace que sistemas en principio muy diferentes (como por ejemplo, bases de datos distribuidas o sistemas de encaminamiento en redes) puedan tratarse, al menos parcialmente, de forma similar. Para resolverlos se han ido desarrollando en los últimos años unas técnicas que componen hasta cierto punto el ``corpus teórico'' en el que se apoya la investigación sobre sistemas distribuidos. Para ver cuáles son éstas, basta con consultar el índice de cualquiera de los textos clásicos sobre el tema. La siguiente lista incluye los más habituales:

 

La mayor parte de estas técnicas están fuertemente interrelacionadas, y a menudo se utilizan juntas en los sistemas reales. Por ejemplo, uno de los niveles de comunicaciones más utilizados proporciona multienvío atómico y causal. Para conseguirlo se usan habitualmente comunicaciones uno a varios, consenso distribuido, sincronización lógica de relojes y cálculo de instantáneas globales.

Hosted by www.Geocities.ws

1