Sistemas Distribuidos: Arquitectura, Ventajas y Desventajas

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 12,06 KB

Sistemas Distribuidos

Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación.

Características

  • Dispersión y parcialidad.
  • Cada elemento de cómputo tiene su propia memoria y su propio Sistema Operativo.
  • Plataforma no estándar.
  • Control de recursos locales y remotos.
  • Capacidad de Procesamiento en paralelo.

Compartición de Recursos

Posibilidad de utilización de recursos y datos públicos a los distintos usuarios autorizados del sistema. Los recursos en un sistema distribuido están físicamente encapsulados en una de las computadoras y sólo pueden ser accedidos por otras computadoras mediante las comunicaciones (la red). Para que la compartición de recursos sea efectiva, ésta debe ser manejada por un programa que ofrezca un interfaz de comunicación permitiendo que el recurso sea accedido, manipulado y actualizado de una manera fiable y consistente.

Apertura

Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones hardware o con respecto a las extensiones software. La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de compartición de recursos se pueden añadir sin perjudicar ni duplicar a los ya existentes.

Concurrencia

Cuando existen varios procesos en una única máquina se dice que se están ejecutando concurrentemente. Si el ordenador está 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.

Escalabilidad

Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. Este debe ser perfectamente ampliable sin que para ellos los usuarios deban modificar su protocolo de comunicación ni la eficiencia del sistema se vea afectada. Tanto el software de sistema como el de aplicación no deberían cambiar cuando la escala del sistema se incrementa.

Tolerancia a Fallos

Los sistemas informáticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podrían producir resultados incorrectos o podrían pararse antes de terminar la computación que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre sí: Redundancia hardware (uso de componentes redundantes) y recuperación del software (diseño de programas que sean capaces de recuperarse de los fallos).

Transparencia

La transparencia se define como la ocultación al usuario y al programador de aplicaciones de la separación de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una colección de componentes independientes. La transparencia ejerce una gran influencia en el diseño del software de sistema. Las transparencias definidas son:

  • Transparencia de Acceso: Permite el acceso a los objetos de información remotos de la misma forma que a los objetos de información locales.
  • Transparencia de Localización: Permite el acceso a los objetos de información sin conocimiento de su localización.
  • Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de información compartidos y de forma que no exista interferencia entre ellos.
  • Transparencia de Replicación: Permite utilizar múltiples instancias de los objetos de información para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas de aplicación tengan por qué conocer la existencia de las réplicas.

Ventajas

  • Procesadores más poderosos y a menos costos.
  • Avances en la Tecnología de Comunicaciones.
  • Compartición de Recursos.
  • Eficiencia y Flexibilidad.
  • Disponibilidad y Confiabilidad.
  • Crecimiento Modular.

Desventajas

  • Requerimientos de mayores controles de procesamiento.
  • Velocidad de propagación de información (Muy lenta a veces).
  • Servicios de replicación de datos y servicios con posibilidades de fallas.
  • Mayores controles de acceso y proceso (Commit).
  • Administración más compleja.
  • Costos.

Seguridad

La seguridad de un sistema es la responsable de la integridad del Sistema Operativo. Dentro del diseño de un sistema de seguridad se consideran dos aspectos importantes:

  • Autenticación: Es el proceso de garantizar que una entidad es quien debe ser.
  • Autorización: Es el proceso de decidir qué privilegios tiene una entidad y hacer que solo esos privilegios se encuentren disponibles.

Modelo Cliente-Servidor

Sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona. Los servicios pueden ser:

  • Ejecución de un determinado programa.
  • Acceso a un determinado banco de información.
  • Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un medio físico de comunicación entre las máquinas, y dependerá de la naturaleza de este medio la viabilidad del sistema.

Arquitecturas Cliente / Servidor

Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se emplean para producir un producto. La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y cómputo cooperativo.

Beneficios

  1. Mejor aprovechamiento de la potencia de cómputo (Reparte el trabajo).
  2. Reduce el tráfico en la Red. (Viajan requerimientos).
  3. Opera bajo sistemas abiertos.
  4. Permite el uso de interfaces gráficas variadas y versátiles.

A continuación mostramos las arquitecturas cliente-servidor más populares:

  • Arquitectura Cliente-Servidor de Dos Capas: Consiste en una capa de presentación y lógica de la aplicación; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones:
    • Cuando se requiera poco procesamiento de datos en la organización.
    • Cuando se tiene una base de datos centralizada en un solo servidor.
    • Cuando la base de datos es relativamente estática.
    • Cuando se requiere un mantenimiento mínimo.
  • Arquitectura Cliente-Servidor de Tres Capas: Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones:
    • Cuando se requiera mucho procesamiento de datos en la aplicación.
    • En aplicaciones donde la funcionalidad esté en constante cambio.
    • Cuando los procesos no están relativamente muy relacionados con los datos.

Socket

Se utiliza para el intercambio de datos entre procesos en una misma computadora.

¿Qué es el Servidor?

Conjunto de Hardware y Software que responde a los requerimientos de un cliente.

Tipos Comunes de Servidores

  1. Servidor de Archivos (FTP, Novell).
  2. Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX).
  3. Servidor de Comunicaciones.
  4. Servidor de Impresión.
  5. Servidor de Terminal.
  6. Servidor de Aplicaciones (Windows NT, Novell).

Funciones Comunes del Servidor

  1. Acceso, almacenamiento y organización de datos.
  2. Actualización de datos almacenados.
  3. Administración de recursos compartidos.
  4. Ejecución de toda la lógica para procesar una transacción.
  5. Procesamiento común de elementos del servidor (Datos, capacidad de CPU, almacenamiento en disco, capacidad de impresión, manejo de memoria y comunicación).

Base de Datos Distribuidas

El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe conocer la topología de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestión de la base de datos al cliente.

Servicio de Archivos

Es una especificación sobre el tipo de servicios de archivos que el sistema ofrece a los clientes, establece todas aquellas directivas sobre dónde encontrar un archivo.

Servicio de Directorios

Es un proceso que se ejecuta en alguna máquina y ayuda a implantar el servicio de archivos de manera que podamos establecer ligas entre uno o más grupos de archivos (directorios). Un sistema puede tener uno o varios servidores de archivos que son transparentes para los clientes ya que no debe de conocer su posición.

Modelo de Carga y Descarga

Éste sólo proporciona dos operaciones principales que son la lectura y escritura del archivo. La operación consiste en transferir todo un archivo hacia el cliente y todos los movimientos de operación sobre el archivo, lo realiza el cliente, cuando ha dejado de utilizar el archivo, éste se es regresado hacia el servidor en forma completa. (con todos los cambios realizados actualmente).

Modelo de Acceso Remoto

Este tipo de servicios proporciona un gran número de operaciones para abrir y cerrar archivos leer y escribir partes de archivos, moverse a través de un archivo, así como examinar y modificar los atributos de uno o varios archivos.

Exclusión Mutua

La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos concurrentes, y que tiene la capacidad de prohibir a los demás procesos realizar una acción cuando un proceso haya obtenido el permiso. Si varios usuarios acceden concurrentemente a un recurso compartido, las acciones que realice el usuario sin que le interese al resto de los usuarios, deben ser instantáneo e indivisible. El problema de la exclusión mutua en sistemas distribuidos surge cuando se accede concurrentemente a recursos compartidos por varios nodos de procesamiento.

El Reloj

La sincronización no tiene por qué ser exacta, y bastará con que sea aproximadamente igual en todos los ordenadores. Hay que tener en cuenta, eso sí, el modo de actualizar la hora de un reloj en particular. Es fundamental no retrasar nunca la hora, aunque el reloj esté adelantado. En vez de eso, hay que ralentizar la actualización del reloj, frenarlo, hasta que alcance la hora aproximadamente.

Middleware

Capa de software intermedio entre el cliente y el servidor. Es la capa de software que nos permiten gestionar los mecanismos de comunicaciones. Ejemplo: si se hace la petición de una página web desde un browser en el cliente, el middleware determina la ubicación y envía una petición para dicha página. El servidor Web, interpreta la petición y envía la página al software intermedio, quien la dirige al navegador de la máquina cliente que la solicitó.

Existen dos tipos:

  • Software intermedio general. Servicios generales que requieren todos los clientes y servidores, por ejemplo: software para las comunicaciones usando el TCP/IP, software parte del sistema operativo que, por ejemplo, almacena los archivos distribuidos, software de autenticación, el software intermedio de mensajes de clientes a servidores y viceversa.
  • Software intermedio de servicios. Software asociado a un servicio en particular.

Transacciones

“Uno de los ingredientes básicos en todo sistema tolerante a fallas es el mecanismo de transacciones. Una transacción encierra un número de operaciones de forma que todas o ninguna de las operaciones se llevan a cabo. Las transacciones sólo pueden terminar en uno de dos estados: transacción completa o transacción incompleta.

Entradas relacionadas: