INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS
La computación desde sus inicios ha sufrido muchos cambios, desde los grandes ordenadores que permitían realizar tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy selectas, hasta los actuales ordenadores ya sean personales o portátiles que tienen las mismas e incluso mayores capacidades que los primeros y que están cada vez más introducidos en el quehacer cotidiano de una persona.
Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las décadas de los setenta:
1. El desarrollo de los microprocesadores, que permitieron reducir en tamaño y costo a los ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a más personas.
2. El desarrollo de las redes de área local y de las comunicaciones que permitieron conectar ordenadores con posibilidad de transferencia de datos a alta velocidad.
Es en este contexto que aparece el concepto de "Sistemas Distribuidos" que se ha popularizado tanto en la actualidad y que tiene como ámbito de estudio las redes como por ejemplo: Internet, redes de teléfonos móviles, redes corporativas, redes de empresas, etc.
En consecuencia, el presente blog que lleva como tema "Sistemas Distribuidos", tiene como principal objetivo: "describir panorámicamente los aspectos relevantes que están involucrados en los Sistemas Distribuidos".
VIDEO INFORMATIVO
VIDEO INFORMATIVO
DEFINICIÓN DE LOS SISTEMAS DISTRIBUIDOS
Son sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor.
CARACTERÍSTICAS PRINCIPALES Y DESCRIPCIÓN DE LOS SISTEMAS DISTRIBUIDOS
Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red.
Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, está más bien distribuida a los componentes.
Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.
VENTAJAS
Con respecto a Sistemas Centralizados:
Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento.
El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido.
Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un todo.
Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su potencia en forma gradual según sus necesidades.
Con respecto a PCs Independientes:
Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc.
Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas.
Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico.
Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.
DESVENTAJAS
El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:
¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para estos sistemas?.
¿Cuánto deben saber los usuarios de la distribución?.
¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?.
La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto.
Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de mensajes, saturación en el tráfico, etc.
Un problema que puede surgir al compartir datos es la seguridad de los mismos.
En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.
CARACTERÍSTICAS CLAVES DE LOS SISTEMAS DISTRIBUIDOS
Heterogeneidad de los componentes.- La interconexión, sobre todo cuando se usa Internet, se da sobre una gran variedad de elementos hardware y software, por lo cual necesitan de ciertos estándares que permitan esta comunicación. Los Middleware, son elementos software que permiten una abstracción de la programación y el enmascaramiento de la heterogeneidad subyacente sobre las redes. También el middleware proporciona un modelo computacional uniforme.
Extensibilidad.- Determina si el sistema puede extenderse y reimplementado en diversos aspectos (añadir y quitar componentes). La integración de componentes escritos por diferentes programadores es un auténtico reto.
Seguridad.- Reviste gran importancia por el valor intrínseco para los usuarios. Tiene tres componentes:
Confidencialidad.- Protección contra individuos no autorizados.
Integridad.- Protección contra la alteración o corrupción.
Disponibilidad.- Protección contra la interferencia con los procedimientos de acceso a los recursos.
Escalabilidad.- El sistema es escalable si conserva su efectividad al ocurrir un incremento considerable en el número de recursos y en el número de usuarios.
Tratamiento de Fallos.- La posibilidad que tiene el sistema para seguir funcionando ante fallos de algún componente en forma independiente, pero para esto se tiene que tener alguna alternativa de solución. Técnicas para tratar fallos:
Detección de fallos. Algunos fallos son detectables, con comprobaciones por ejemplo.
Enmascaramiento de fallos. Algunos fallos detectados pueden ocultarse o atenuarse.
Tolerancia de fallos. Sobre todo en Internet se dan muchos fallos y no es muy conveniente ocultarlos, es mejor tolerarlos y continuar. Ej: Tiempo de vida de una búsqueda.
Recuperación frente a fallos. Tras un fallo se deberá tener la capacidad de volver a un estado anterior.
Redundancia. Se puede usar para tolerar ciertos fallos (DNS, BD, etc.)
Concurrencia. Compartir recursos por parte de los clientes a la vez.
Transparencia. Es la ocultación al usuario y al programador de aplicaciones de la separación de los componentes en un sistema distribuido. Se identifican 8 formas de transparencia:
De Acceso. Se accede a recursos locales y remotos de forma idéntica.
De ubicación. Permite acceder a los recursos sin conocer su ubicación.
De concurrencia. Usar un recurso compartido sin interferencia.
De replicación. Permite utilizar varios ejemplares de cada recurso.
Frente a fallos. Permite ocultar los fallos.
De movilidad. Permite la reubicación de recursos y clientes sin afectar al sistema.
De prestaciones. Permite reconfigurar el sistema para mejorar las prestaciones según su carga.
Al escalado. Permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación.
CATEGORÍAS DE LOS SISTEMAS DISTRIBUIDOS
Modelo de Minicomputadoras.
Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos.
Por lo menos un usuario por cada computadora ( CPU < Usuarios ).
Modelo de Estación de Trabajo.
Varias estaciones (Por lo general cientos), donde cada usuario cuenta con una estación de trabajo (ET) y realiza en ella todo su trabajo. Requiere de un Sistema Operativo que soporte funciones de acceso y control remoto.
Un microprocesador por cada usuario ( CPU = Usuarios).
Las estaciones de trabajo cuentan con Interfaces Gráficas, CPU potentes y Memorias propias.
Modelo microprocesadores en Pooling.
Trata de utilizar uno o más microprocesadores dependiendo de las necesidades de los usuarios.
Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignación.
El número de microprocesadores normalmente es mayor a uno por usuario ( CPU > Usuarios ).
CONCEPTOS DE SOFTWARE
Aunque el hardware es importante, el software lo es más. La imagen que presenta y la forma de pensar de los usuarios de un sistema, queda determinada en gran medida por el software del sistema operativo, no por el hardware.
Se puede distinguir dos tipos de sistemas operativos para los de varios CPU: los débilmente acoplados y los fuertemente acoplados.
El software débilmente acoplado permite que las máquinas y los usuarios de un sistema distribuido sean independientes entre sí en lo fundamental, pero que interactúen en cierto grado cuando sea necesario.
En el software fuertemente acoplado el programa de aplicación y el sistema operativo necesario para soportarlo, están muy acoplados.
Sistemas Operativos de red
Los Sistemas Operativos de red permiten a los usuarios en estaciones de trabajo independientes la comunicación por medio de un sistema compartido de archivos, pero dejan que cada usuario domine su propia estación de trabajo.
Sistemas realmente distribuidos
Los sistemas operativos distribuidos convierten toda la colección de hardware y software en un sistema integrado, muy parecido a un sistema tradicional de tiempo completo.
Sistemas de multiprocesador con tiempo compartido
Los multiprocesadores con memoria compartida también ofrecen la imagen de único sistema, pero lo hacen mediante la vía de centralizar todo, por lo que en realidad, este caso es un sistema. Los multiprocesadores con memoria compartida no son sistemas distribuidos.
SISTEMA OPERATIVO DE RED
El sistema operativo de red permite la interconexión de ordenadores para poder acceder a los servicios y recursos. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Si no se dispone de ningún sistema operativo de red, el equipo, no pueden compartir recursos y los usuarios no podran utilizar estos recursos.
Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede añadir al propio sistema operativo del equipo o integrarse con él.
NetWare de Novell es el ejemplo más familiar y famoso de sistema operativo de red donde el software de red del equipo cliente se incorpora en el sistema operativo del equipo. El equipo personal necesita ambos sistema operativos para gestionar conjuntamente las funciones de red y las funciones individuales.
El software del sistema operativo de red se integra en un número importante de sistemas operativos conocidos, incluyendo Windows 2000 Server/Professional, Windows NT Server/Workstation, Windows 95/98/ME y Apple Talk.
Cada configuración (sistemas operativos de red y del equipo separados, o sistema operativo combinando las funciones de ambos) tiene sus ventajas e inconvenientes. Por tanto, nuestro trabajo como especialistas en redes es determinar la configuración que mejor se adapte a las necesidades de nuestra red.
Es un componente software de una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos del ordenador en una red de equipos. Consiste en un software que posibilita la comunicación de un sistema informático con otros equipos en el ámbito de una red.