Sistemas Distribuidos: Conceptos, Arquitectura y Comunicación

Conceptos Básicos de Sistemas Distribuidos

Definición

Según Coulouris, un Sistema Operativo 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. Esto trae como consecuencias: concurrencia, inexistencia de un reloj global y fallos independientes.

Tanenbaum define un Sistema Distribuido como una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora.

Desventajas

Los sistemas distribuidos presentan ciertas desventajas:

  1. Dependencia de la red: Dependen directamente de una red, con el riesgo de perder mensajes en el envío de datos. Es necesario un software que controle estos posibles errores.
  2. Seguridad: Al compartir datos, estos pueden ser accesibles por otros usuarios.

El software es débilmente acoplado cuando permite que las máquinas y los usuarios de un sistema distribuido sean independientes entre sí e interactúen cuando sea necesario.

Tipos de Sistemas Operativos

  1. S.O. de Redes
  2. S.O. Realmente distribuidos
  3. S.O. de multiprocesador con tiempo compartido

Aspectos de Diseño y Desafíos

  • Heterogeneidad
  • Extensibilidad
  • Seguridad
  • Escalabilidad
  • Control de fallos
  • Concurrencia
  • Transparencia

Modelos de Sistemas Distribuidos

Un modelo arquitectónico en un Sistema Distribuido trata sobre la colocación de sus partes, como por ejemplo un modelo cliente-servidor o un P2P.

Dificultades y Amenazas en el Diseño

  • Modos de utilización muy variable: Los componentes del Sistema Distribuido están sujetos a grandes variaciones en la carga de trabajo.
  • Amplio rango de entornos: Un Sistema Distribuido se debe acomodar al hardware, redes y Sistemas Operativos.
  • Problemas internos: Fallos diferentes de hardware, relojes no sincronizados, entre otros.
  • Amenazas externas: Ataques de integridad, ataques DOS.

Capas de Software

  • Plataforma: Nivel de hardware y capas más bajas de software. Proporcionan servicios a las capas superiores y normalmente están implementadas independientemente de cada máquina, proporcionando una interfaz de programación (API) del sistema.
  • Middleware: Capa de software cuyo cometido es ocultar la heterogeneidad y proporcionar una API. Implementa un conjunto de mecanismos de comunicación para aplicaciones distribuidas. Como ejemplos, destacan RPC, RMI, CORBA. El Middleware puede proporcionar servicios a la capa de Aplicación.

Arquitectura de Sistemas

  • Cliente-Servidor

    Los servidores pueden a su vez ser clientes de otros servidores. Esta característica es habitual.

  • Servicios Proporcionados por Múltiples Servidores

    Los servicios se pueden implementar como distintos procesos de servidor en máquinas separadas que interactúan cuando es necesario para proporcionar los servicios a los clientes.

  • Servidores Proxy y Cachés

    Una caché es un almacén de objetos de datos usados recientemente. Al recibir un objeto nuevo en una máquina, se añade al almacén de la caché, reemplazando, si fuera necesario, objetos ya existentes.

  • Agentes Móviles

    Se denomina agente móvil a aquel programa en ejecución que se traslada de un equipo a otro a través de la red realizando una tarea para alguien. Un agente móvil puede hacer muchas solicitudes a los recursos locales que visita.

  • Computadores de Red

    Basadas en clientes pesados, donde el sistema operativo y el software están localizados en la misma máquina. Sin embargo, los datos residen en un computador de red al cual los clientes acceden.

  • Servicios de Detección

    El enlace a red espontáneo necesita procesos en clientes ejecutándose en los dispositivos móviles para acceder a los servicios de las redes.

Diseño de Arquitecturas Distribuidas

Se deben considerar: prestaciones, calidad de servicio, uso de caché y replicación, y aspectos de fiabilidad. Existen tres modelos de Sistemas Distribuidos: de interacción, de fallo y de seguridad.

Comunicación en Sistemas Distribuidos

Características de la Comunicación entre Procesos

  1. Comunicación síncrona: Se sincroniza en cada mensaje.
  2. Comunicación asíncrona
  3. Destino de los mensajes
  4. Fiabilidad
  5. Ordenación

Sockets

Abstracción de los métodos TCP y UDP. La clase SOCKET se usa por el par de procesos de una conexión y la clase SERVERSOCKET se usa por un servidor para crear un conector al puerto.

Serialización

Actividad de aplanar un objeto para obtener una forma lineal adecuada para almacenarlo en disco o transmitirlo en un mensaje.

Objetos Distribuidos

Los objetos distribuidos componen aplicaciones que cooperan en procesos en máquinas diferentes.

Modelos de Programación

  • RPC (Remote Procedure Call): Permite llamar desde aplicaciones cliente a funciones o procedimientos publicados en procesos servidor.
  • RMI (Remote Method Invocation): Basada en la misma arquitectura, pero enfocado al paradigma de la orientación a objetos. Se basa en la invocación de métodos desde un cliente a un objeto remoto.
  • Modelo basado en eventos: Se refiere a que un objeto cliente pueda recibir los eventos producidos por objetos ejecutándose en un proceso servidor.

Comandos de Linux

  • Comprobar que la partición ha sido detectada

    ubuntu$ sudo dmesg | grep sda3

  • Formatear

    ubuntu$ sudo mkfs.ext3 /dev/sda3

  • Montar partición en el sistema

    1. Crear directorio nuevo: ubuntu$ sudo mkdir /opt/share
    2. Montar manualmente: ubuntu$ sudo mount -text3 /dev/sda3 /opt/share
  • Comprobar estado de servicios

    ubuntu$ sudo service portmap status

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.