SISTEMAS DISTRIBUIDOS

 

Sistemas Distribuidos.

Pensamiento. "Nunca dejes de aprender, porque la vida nunca deja de enseñar".

ARQUITECTURAS DE SISTEMAS DISTRIBUIDOS

Objetivo:

Comprender los diferentes paradigmas de cómputo, desde el cliente-servidor al grid, y cómo se integran en los modelos arquitectónicos de los sistemas distribuidos. 

¿QUE ES LA ARQUITECTURA DE UN SISTEMA?

La arquitectura de un sistema es su estructura en términos de los componentes especificados por separado y sus interrelaciones. El objetivo de una arquitectura general es asegurar que la estructura reunirá presentes y probables futuras demandas sobre el mismo.

Las principales preocupaciones son que el sistema sea fiable, manejable, adaptable y rentable. 

MODELOS 
ARQUITECTÓNICOS

Un modelo de arquitectura es una descripción abstracta simplificada pero consistente de cada aspecto relevante del diseño de un sistema distribuido

MODELO 
CLIENTE - SERVIDOR

En este modelo, los servicios y recursos de una red están organizados en dos categorías principales: clientes, que solicitan recursos o servicios, y servidores, que proporcionan esos recursos o servicios. Los clientes envían solicitudes a los servidores, y los servidores responden a esas solicitudes proporcionando los recursos solicitados. Esta arquitectura se utiliza ampliamente en una variedad de sistemas distribuidos, desde aplicaciones web hasta bases de datos distribuidas y servicios en la nube. Proporciona una forma eficiente y escalable de organizar y distribuir recursos en una red, permitiendo a los clientes acceder a los servicios de manera centralizada y controlada.

SISTEMAS DISTRUIDOS 

También conocido como computación distribuida y bases de datos distribuidas, un sistema distribuido es una colección de componentes independientes ubicados en distintas máquinas que comparten mensajes entre sí para lograr objetivos comunes. Por su naturaleza, de caras al usuario final, el sistema distribuido aparecerá como si fuera una única interfaz o un ordenador. La idea es que al unir distintos componentes que trabajan de forma conjunta, el sistema pueda maximizar los recursos y la información al tiempo que previene fallos: si un sistema falla, no afectará a la disponibilidad del servicio.

MODELO CLIENTE - SERVIDOR

Estructura simple Cliente - Servidor 


Estructura cliente-servidor para dos clientes

MODELO 
CLIENTE - SERVIDOR

Grupo de servidores interconectados basado en el modelo cliente-servidor.

A TENER EN CUENTA:

Round Robin: Este es uno de los algoritmos más simples de equilibrio de carga. Funciona asignando a cada servidor en el grupo una solicitud en secuencia circular, es decir, de manera cíclica. 

Least Connection: Este algoritmo dirige cada nueva solicitud al servidor que actualmente tiene la menor cantidad de conexiones activas. 

Weighted Round Robin: Este algoritmo es una variación del Round Robin que asigna un peso o prioridad a cada servidor en el grupo. Los servidores con pesos más altos recibirán más solicitudes en comparación con los servidores con pesos más bajos.

PROXY

Un proxy es un servidor que actúa como intermediario entre los clientes y otros servidores. Los servidores proxy son útiles para:
  • Mejorar la seguridad al ocultar la dirección IP real del cliente. Realizar funciones de almacenamiento en caché para acelerar el acceso a los recursos frecuentemente solicitados. 
  •  Filtrar el tráfico para controlar el acceso a ciertos recursos o aplicar políticas de seguridad.
  •  Optimizar el rendimiento al balancear la carga entre servidores, redirigiendo las solicitudes a servidores menos ocupados
Funcionalidades básicas de los servidores proxy:

 Proporcionar caché.  Control de acceso.  Registro del tráfico.  Prohibir cierto tipo de tráfico.  Mejorar el rendimiento.  Mantener el anonimato.


Arreglo de proxy cliente y proxy servidor para acceder al servidor desde dos clientes:



Acceso a servidores web vía un proxy:



PEER-TO-PEER 

En arquitecturas de sistemas distribuidos, el concepto peer-topeer implica una red descentralizada donde cada nodo tiene un rol equivalente, lo que permite interacciones directas entre ellos sin depender de servidores centrales. Esta estructura promueve la colaboración directa entre los participantes, lo que resulta en una red más resistente a fallos y escalable. En un entorno peer-to-peer, los nodos actúan tanto como clientes como servidores, compartiendo recursos y servicios de manera distribuida. Se elimina la necesidad de una autoridad central, lo que puede mejorar la eficiencia y la seguridad de la red al evitar puntos únicos de falla. La arquitectura peer-to-peer puede facilitar el intercambio de información de manera más eficaz al distribuir la carga de trabajo entre los nodos de la red.



BENEFICIOS DE UN SISTEMA PEER-TO-PEER


  • Nodos comparten recursos. 
  •  Se pueden desplegar algoritmos distribuidos.
  •   Escalamiento más fácil del sistema. 
  •  Ahorro de costos. 
  •  Flexibilidad.
  •   Ningún punto único de falla. 
  •  Mayor robustez del sistema
PARADIGMA PEER-TO-PEER


APPLETS

Pequeños programas o componentes de software que se ejecutan en entornos controlados, como navegadores web, y se comunican con servidores remotos para acceder a servicios o información. Estos applets, escritos típicamente en lenguajes como Java, permiten distribuir la carga de trabajo entre el servidor y el cliente, mejorando así la eficiencia y escalabilidad de las aplicaciones distribuidas al brindar una experiencia interactiva y dinámica al usuario en entornos web y sistemas distribuidos.



PARADIGMA APPLETS




CLÚSTER 

Los clusters en sistemas distribuidos son conjuntos de computadoras interconectadas que trabajan juntas como si fueran una sola entidad. Este modelo arquitectónico permite combinar recursos de hardware y software de múltiples nodos para mejorar el rendimiento, la disponibilidad y la escalabilidad de las aplicaciones distribuidas. Los clusters se utilizan para distribuir la carga de trabajo, proporcionar redundancia y tolerancia a fallos, así como para facilitar el procesamiento paralelo. Al agrupar recursos de manera centralizada, los clusters permiten construir sistemas distribuidos más potentes y confiables para satisfacer las demandas de aplicaciones complejas y de alto rendimiento.

PARADIGMA CLUSTER


PARA TENER EN CUENTA:

Un clúster es homogéneo cuando todos los computadores tienen la misma configuración en hardware y sistema operativo. 

Es semihomogéneo cuando los computadores tienen diferente rendimiento, pero guardan una similitud con respecto a su arquitectura y sistema operativo.

Un clúster es heterogéneo cuando los computadores tienen diferente hardware y sistema operativo

 

MODELO GRID 


Un modelo arquitectónico que facilita la coordinación y compartición de recursos informáticos dispersos geográficamente. Esta infraestructura permite la colaboración de recursos diversos para formar una red virtual unificada, ampliando las capacidades computacionales disponibles. El modelo Grid se emplea para abordar problemas complejos que requieren una gran cantidad de recursos, facilitando el acceso eficiente a recursos remotos y fomentando la colaboración entre organizaciones y usuarios en entornos de computación distribuida a gran escala.


  • Explotación de recursos infrautilizados. 
  •  Capacidad de CPU paralelos. 
  •  Recursos virtuales y organizaciones virtuales para la colaboración. 
  •  Acceso a recursos adicionales. 
  •  Balanceo de recursos. 
  •  Fiabilidad. 
  •  Mejor gestión de infraestructuras de TI más grandes y distribuidos 

ARQUITECTURA DE CAPAS 

Un enfoque de diseño de sistemas que organiza funcionalidades relacionadas en diferentes niveles o capas. Cada capa se encarga de aspectos específicos de la aplicación, con niveles de abstracción bien definidos y comunicación entre capas mediante interfaces claras. Este modelo promueve la modularidad, la reutilización de código y facilita la mantenibilidad y escalabilidad de sistemas complejos al separar las preocupaciones y permitir cambios en una capa sin afectar a las demás


CORBA Y JAVA RMI 


CORBA (Common Object Request Broker Architecture): Una arquitectura de software que facilita la comunicación entre objetos distribuidos en redes heterogéneas. CORBA se basa en el concepto de un-Bus de Objetos de Petición Común (ORB) que actúa como intermediario para la interacción entre objetos distribuidos, permitiendo que aplicaciones escritas en diferentes lenguajes y en plataformas diversas se comuniquen de manera transparente. Esta tecnología promueve la interoperabilidad, reutilización de componentes y facilita el desarrollo de sistemas distribuidos complejos al separar la lógica de negocio de la comunicación entre componentes.

Java RMI (Java Remote Method Invocation): Una tecnología de Java que facilita la comunicación entre objetos distribuidos en una red. Java RMI permite a los objetos Java invocar métodos de objetos remotos de manera transparente, como si estuvieran en la misma máquina virtual. Esta tecnología se basa en interfaces Java y permite la comunicación entre objetos a través de la red, lo que simplifica el desarrollo de aplicaciones distribuidas en Java al abstraer la complejidad de la comunicación remota y la gestión de la red.





Comentarios

Entradas populares de este blog

LOGICA JUICIO, ORACIÓN Y PROPOSICIÓN

Probabilidad y estadística Métodos de conteo

LEYES DEL ÁLGEBRA PROPOSICIONAL