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
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:
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.
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
Publicar un comentario