Está en la página 1de 32

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS


CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

Tema
Caracterización de un sistema distribuido.
 Arquitecturas y patrones en sistemas distribuidos
 Arquitectura de clúster
 Arquitectura cliente - servidor

Sistemas Operativos Distribuidos


Grupo1 - ISIS-MA-7-1

Estudiantes:

 Ávila Toala Mariela


 Arias Bryan
 Alfonso Kelly
 Cabrera Johana

Docente:
Ing. José Luis Ponce Guerrero

Guayaquil, 11 noviembre de 2019


Contenido
Introducción..........................................................................................................................................4
Objetivos...............................................................................................................................................6
Objetivo General..............................................................................................................................7
Objetivo Específicos.........................................................................................................................7
Marco Teórico.......................................................................................................................................7
Sistema Operativo Distribuido........................................................................................................8
Diferencias entre Sistemas...............................................................................................................8
Sistema en red típico........................................................................................................................9
Sistema distribuido...........................................................................................................................9
CLUSTERS.......................................................................................................................................9
GRIDS (matrices de cómputo)........................................................................................................9
P2P.....................................................................................................................................................9
Sistemas de Almacenamiento Distribuido....................................................................................10
Caracterización de los Sistemas Distribuidos..............................................................................10
Concurrencia de los componentes................................................................................................10
Falta de un reloj global..................................................................................................................10
Fallos independientes de los componentes...................................................................................10
Compartición de Recursos.............................................................................................................11
Escalabilidad...................................................................................................................................11
Tolerancia a Fallos..........................................................................................................................11
Transparencia.................................................................................................................................11
Flexibilidad......................................................................................................................................11
Fiabilidad........................................................................................................................................12
Ventajas De Los Sistemas Distribuidos........................................................................................12
Desventajas De Los Sistemas Distribuidos..................................................................................12
Arquitecturas y patrones en sistemas distribuidos.....................................................................13
Arquitectura de Sistemas Distribuidos........................................................................................13
Arquitecturas..................................................................................................................................13
Arquitecturas multiprocesador.....................................................................................................13
Arquitecturas cliente-servidor.......................................................................................................14
Arquitectura de objetos distribuidos............................................................................................14
Computación distribuida inter-organizacional...........................................................................15
Sistemas Distribuidos Modelo de Sistema: Arquitectónico........................................................16

2
Patrones Arquitectónicos...............................................................................................................16
Capas de Software Plataforma......................................................................................................16
Arquitectura de Clúster.................................................................................................................18
Ventajas de los servidores en clúster............................................................................................19
Desventajas de un servidor en clúster..........................................................................................19
Clasificación de los clústers...........................................................................................................20
Prestaciones a tener en cuenta en la elección de un clúster........................................................20
Clústers y aplicaciones distribuidas.............................................................................................20
Arquitectura Cliente servidor.......................................................................................................21
Concepto..........................................................................................................................................21
Historia............................................................................................................................................21
Componentes..................................................................................................................................22
Tipos de arquitecturas cliente servidor........................................................................................23
 Arquitectura de dos capas......................................................................................................23
 Arquitectura de tres capas.....................................................................................................23
 Arquitectura N capas..............................................................................................................23
Funciones de los Clientes-Servidor...............................................................................................23
Características de la arquitectura Cliente/Servidor...................................................................24
Ventajas y Desventajas...................................................................................................................24
Ventajas...........................................................................................................................................24
Desventajas.....................................................................................................................................25
Ejemplos de modelo cliente servidor............................................................................................25
Conclusiones.......................................................................................................................................26
Recomendaciones...............................................................................................................................27
Bibliografía.........................................................................................................................................28
Anexos.................................................................................................................................................29

3
Ilustración 1 Grupo de exposición #1................................................................................................7
ILUSTRACION 2 Sistemas Operativos.............................................................................................9
Ilustración 3 Sistema multiprocesador para el control de tráfico.................................................15
Ilustración 4 Arquitectura de objetos distribuidos.........................................................................16
Ilustración 5 Capas...........................................................................................................................17
Ilustración 6 Dos-Tiers......................................................................................................................18
Ilustración 7 Tres-Tiers......................................................................................................................18
Ilustración 8. Clientes delgados........................................................................................................19
Ilustración 9 Modelo Cliente Servidor.............................................................................................23
Ilustración 10 Bryan Arias...............................................................................................................30
Ilustración 11 Johana Cabrera.........................................................................................................31
Ilustración 12 Mariela Ávila............................................................................................................32
Ilustración 13 Kelly Alfonso.............................................................................................................33
Ilustración 14 Kelly Alfonso.............................................................................................................33

4
Introducción

Los sistemas operativos distribuidos cumplen la misma función que un sistema operativo distribuido
con la única diferencia de que estos trabajan en forma distribuidas.Los sistema distribuido puede
definirse como una colección de computadoras conectadas entre sí, mediante una red, y cada una
desempeña uno o varios procesos diferentes. Todas estas computadoras en su conjunto, se ven como
un solo sistema. Todos los días utilizamos Sistemas Distribuidos, en las aplicaciones móviles que
utilizamos para realizar nuestras actividades diarias, en los cajero automáticos o en los sistemas
financieros.
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 [ CITATION Cou12 \l 3082 ].
La arquitectura de un sistema distribuido guarda algunos aspectos similares con el diseño
arquitectónico de un edificio, los cuales determinan no solo su apariencia, sino también su estructura
general y el estilo arquitectónico (gótico, neoclásico y moderno) y proporciona un marco coherente
de referencia para el diseño. Todos los tipos de sistemas distribuidos tienen características básicas
comunes. Un modelo de arquitectura es una descripción abstracta simplificada pero consistente de
cada aspecto relevante del diseño de un sistema distribuido.
Además multitud de aplicaciones dentro de la investigación científica requieren de una gran
demanda de potencia de cómputo que solo pueden ser cubiertas por supercomputadores, que por su
alto costo y los presupuestos reducidos para investigación para investigaciones académicas y
científicas no pueden ser adquiridas por Instituciones de Educación Superior y centros de
investigación, las inversiones en computación deben resultar rentables en cuanto a
escalabilidad y rendimiento.

La informática para investigaciones, denominada computación de alto rendimiento usa potentes


herramientas y procesos de computación para generar datos en investigaciones académicas
avanzadas. Con un clúster de computación de alto rendimiento, los centros de investigación pueden
obtener la velocidad y potencia de una costosa supercomputadora a una fracción del costo y con
menos riesgo de sufrir tiempos de inactividad prolongados. Una de las soluciones más fiables
comparadas a la adquisición de supercomputadores es la implementación de un clúster de alto
rendimiento, formado por hardware convencional y herramientas de software libre que unidos a una
red de alta velocidad. Ofrecen ventajas significativas en términos económicos y de escalabilidad
comparadas al utilizar un único ordenador convencional, proporcionando así resultados con un
margen de error mínimo en tiempos relativamente bajos.

5
Ilustración 1 Grupo de exposición #1

6
Objetivos
Objetivo General
Dar a conocer cuál es la diferencia entre un sistema operativo normal con los sistemas operativos
distribuidos y vamos a entender su relación con los conceptos de Concurrencia y Paralelismo.

Objetivo Específicos
Identificar las características básicas en un sistema distribuido.
Identificar la arquitectura de computadoras distribuidas.
Describir el modelo cliente-servidor.
Explicar la arquitectura de clústers.

7
Marco Teórico
Sistema Operativo Distribuido
Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema operativo
normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión principal consiste en
facilitar el acceso y la gestión de los recursos distribuidos en la red.

En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma
manera en que lo hacen para los recursos locales. Permiten distribuir trabajos, tareas o procesos,
entre un conjunto de procesadores.

Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente del
sistema se descompone otro componente debe de ser capaz de reemplazarlo inmediatamente y no
afectar los procesos del sistema.[ CITATION far08 \l 3082 ]

ILUSTRACION 2 Sistemas Operativos

Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos
(impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola
máquina virtual que el usuario aceza en forma transparente. Es decir, ahora el usuario ya no necesita
saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si
todos ellos fuesen locales a su lugar de trabajo habitual.

8
Diferencias entre Sistemas
La diferencia fundamental entre un sistema en red y uno distribuido se puede explicar a través del
análisis de la localización del módulo de comunicaciones entre procesos.

Sistema en red típico


Es una colección de sistemas operativos locales, acompañado de servidores de impresión y de
archivos, conectados por medio de una red. Los usuarios están enterados de la multiplicidad de
máquinas y para el acceso a los recursos necesitan conectarse a la máquina remota o transferir datos
de la máquina remota a la propia. Podemos decir que todos los sistemas en red se ejecutan como
funciones locales autónomas a la administración de dispositivos, de procesos, de entradas y salidas,
de archivos y recursos en general.

Sistema distribuido
Es solo un sistema expandido en toda la red, pero visto como un solo sistema para todos los
elementos que existen en la red. Los usuarios no necesitan saber de la multiplicidad de máquinas y
pueden acceder a los recursos remotos de la misma manera que lo hacen para los recursos locales. La
tolerancia a fallas es más alta, pero también podemos decir que el control y las decisiones son
tomados globalmente, los recursos conectados a la red son administrados de una forma global usando
mecanismos distribuidos en lugar de mecanismos locales[ CITATION Sis \l 3082 ].

Un Sistema Operativo Distribuido es en conclusión, algo más que un Sistema Operativo en red, ya
que en realidad se trata de varios Sistemas Autónomos que trabajan de manera conjunta. Esto se ha
probado y usado de diversas formas:

CLUSTERS
Es un grupo de computadoras interconectadas que se comportan como una sola súper-computadora,
generalmente usada para cálculos de ingeniería de alto desempeño o para simuladores de alta
complejidad (clima, movimientos poblacionales física de alto nivel, matemáticas teóricas).

GRIDS (matrices de cómputo)


Es un tipo de sistema distribuido que permite compartir y agregar de manera coordinada recursos
heterogéneos distribuidos y autónomos con base en los requerimientos de Calidad en el Servicio de
los usuarios. Los Grids se usan comúnmente para soportar aplicaciones emergentes en las áreas de
Science y Business; que son operadas por comunidades de personas distribuidas geográficamente,
que se disponen para participar en actividades colaborativas, para resolver problemas a gran escala y
que requieren de compartir recursos como CPU, datos, aplicaciones o instrumentos científicos.

9
P2P
Estas redes peer to peer son Sistemas descentralizados y distribuidos, que permiten aplicaciones
como compartir archivos, mensajería instantánea, juegos multijugador en línea, y distribución de
contenido sobre redes públicas, por ejemplo TV por Internet.

Sistemas de Almacenamiento Distribuido


El NFS (Network File System) permiten al usuario tener una visión única de datos que están
almacenados en diferentes Sistemas de Archivos y computadoras dispersas en la misma o en otras
redes[ CITATION HER \l 3082 ].

Caracterización de los Sistemas Distribuidos


Un sistema distribuido es aquel en el cual los componentes, localizados en equipos en red, se
comunican y coordinan sus acciones mediante el envío de mensajes.

Esta definición presenta las siguientes características significativas de los sistemas distribuidos:

Concurrencia de los componentes


Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente,
cuando son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se
haya ejecutado otro.

En sistemas multiprocesador, esta ejecución simultánea podría conseguirse completamente, puesto


que podremos asignarle, por ejemplo, un proceso A al procesador A y un proceso B al procesador B y
cada procesador realizaran la ejecución de su proceso.

Cuando tenemos un solo procesador se producirá un intercalado delas instrucciones de ambos


procesos, de tal forma que tendremos la sensación de que hay un paralelismo en el sistema
(concurrencia, ejecución simultánea de más de un proceso)[ CITATION Vel \l 3082 ].

Falta de un 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. Se refiere a que no hay una "hora correcta" ya que los dispositivos parte del sistema,
no depende del tiempo correcto sino del paso de mensajes.[ CITATION sis16 \l 3082 ]

Fallos independientes de los componentes.


Lo que quiere decir que, si hay una falla en alguna parte del sistema, éste no se vendrá abajo
completamente, solo la parte afectada Cada componente del sistema puede fallar

10
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..
[ CITATION sis16 \l 3082 ]

 Por aislamiento de la red (red).

 Por parada de un computador (hardware).

 Por terminación anormal de un programa (software).

Compartición de Recursos
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 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, este programa es el gestor de recursos.

Escalabilidad
Un sistema es escalable si el aumento de demanda de servicios se puede suplir con una aportación de
recursos, siempre y cuando el coste de añadir un usuario sea constante.

Los algoritmos utilizados para acceder a datos compartidos deben evitar cuellos de botella de
rendimiento y los datos deben estar jerarquizados para proporcionar los mejores tiempos de acceso.
Habitualmente los datos pueden estar replicados.

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 el proceso
que estaban realizando. El diseño de sistemas tolerantes a fallos se basa en dos cuestiones,
complementarias entre sí: Redundancia hardware y recuperación del software.

Transparencia
Se dice que un sistema distribuido es transparente, cuando este es capaz de presentarse ante los
usuarios y las aplicaciones como si fuese un sistema que corre en una sola computadora, y no como
un sistema cuyos procesos y recursos están distribuidos físicamente en varias computadoras.

Flexibilidad

11
Este aspecto se refiere a la forma en que debe ser construido el sistema operativo. Conviven dos
escuelas de pensamiento que son las del kernel monolítico y las del sistema operativo basado en
microkernel. La primera sostiene que los servicios del sistema deben residir en el sistema operativo y
la segunda que es preciso extraer todos los servicios posibles fuera del núcleo del sistema operativo y
disponerlos en procesos de usuario, logrando un mayor estructura e independencia en los servicios,
que pueden residir en máquinas diferentes. Hoy en día el kernel monolítico domina el mundo de los
sistemas operativos, pero parece que el futuro se impondrá la filosofía microkernel, debido a su
mayor flexibilidad. Para obtener un servicio, un proceso de usuario envía un mensaje al servidor
adecuado.

Fiabilidad
Una de las motivaciones originales para tratar de construir sistemas distribuidos fue el aumento de la
fiabilidad del sistema. En un sistema con cien cpu el fallo de uno de ellas no tendrá consecuencias
graves, porque su trabajo será realizado por las otras. En un sistema en el que el sistema de ficheros
se reparte en cuatro servidores, cada uno de ellos con una probabilidad de que en un instante dado
sea inoperativo de 0.05

Ventajas De Los Sistemas Distribuidos


•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 tienen sus CPU 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 incrementa. Se puede añadir procesadores al sistema, incrementando su


potencia en forma gradual según sus necesidades. Con respecto a PC Independientes.
•Se pueden compartir recursos, como programas y periféricos, muy costosos.

Desventajas De Los Sistemas Distribuidos


•Las computadoras en un sistema pueden ser de diferentes tipos y ejecutar versiones diferentes de
sistemas operativos. Esto significa que se requiere más esfuerzo para gestionar.

•Los sistemas distribuidos son más complejos, esto provoca que sea más difícil comprender sus
propiedades.
•Los sistemas distribuidos tienen un sistema impredecible. Como todos ellos pueden cambiar

12
rápidamente, el tiempo requerido para responder a una petición de usuario puede variar
dramáticamente, de una petición a otra.

•En general se considera que las ventajas superan a las desventajas, si estas últimas se administran
seriamente.

Arquitecturas y patrones en sistemas distribuidos


La palabra arquitectura es el término fundamental de un sistema, donde se integran sus componentes,
se establecen las relaciones e interdependencias entre esos componentes y su entorno además se
establecen los principios para su diseño, gestión y evolución.
El objetivo fundamental de cualquier sistema distribuido será aportar valor añadido. Y para empezar
eficientemente el camino conviene organizar de alguna forma todos los factores que intervienen. La
forma de hacerlo es proponer una Arquitectura de Empresa, conocida también por EA desde su
nombre en inglés, Enterprise Architecture.[ CITATION Fra15 \l 3082 ]

Arquitectura de Sistemas Distribuidos


 Conjunto de procesadores conectados por una red
 Cada usuario tiene capacidad de procesamiento local que permite interfaces de usuario
sofisticadas.
 Uso intensivo de la red para compartir recursos:
o dispositivos
o datos
o procesadores (migración de procesos)
 Capacidad global de procesamiento disponible para:
o Servicio a múltiples usuarios
o Ejecución paralela de una aplicación

Arquitecturas
Arquitecturas de sistemas distribuidos, es conocer y aplicar los distintos modelos de arquitectura del
software para los sistemas distribuidos. A continuación se lista los temas de importancia a tratar:

 Arquitecturas multiprocesador.
 Arquitecturas cliente-servidor.
 Arquitecturas de objetos distribuidos.
 Computación distribuida inter-organizacional.
 Arquitectura de clúster
 Arquitectura de tres capas
 Arquitectura de n-capas
 Arquitectura Peer-to-peer
 Arquitectura SOA (Orientadas a servicios)

Arquitecturas multiprocesador.

13
Un sistema multiprocesador se lo considera como el más simple de los sistemas distribuidos ya que
el sistema se forma por varios procesos que pueden ejecutarse en diferentes procesadores. El modelo
multiprocesador se lo usa en sistemas de tiempo real, también recoge información, de esa
información toma decisiones y envía respuestas a los actuadores, los cuales se dedican a modificar el
entorno del sistema. Todas estas actividades se pueden ejecutar en un solo procesador pero estando
bajo control de un planificador.

Un ejemplo de un sistema multiprocesador se encuentra en la figura 1 la cual nos indica sobre un


sistema para el control del tráfico, donde un conjunto de sensores distribuidos almacena información
para procesar y luego enviarlo a una sala de control, finalmente los operadores toman decisiones y
envían las respectivas luces de los semáforos.

Ilustración 3 Sistema multiprocesador para el control de tráfico.

Arquitecturas cliente-servidor.
Es un conjunto de servicios usados por los clientes, ambos elementos se tratan de forma diferente en
el sistema.

Arquitectura de objetos distribuidos


Son conjuntos de objetos que interactúan entre sí, no hay distinción entre servidor y cliente.
Los clientes y los servidores son diferentes cuando se trata de un cliente-servidor de un sistema
distribuido. Los clientes reciben servicios de los servidores, no de los clientes y los servidores
pueden ser clientes al recibir servicios de otro servidor. Cada cliente conoce los servicios que ofrecen
los servidores y como contactarlos.[ CITATION Mol15 \l 3082 ]

Los sistemas distribuidos tratan de eliminar la diferencia que existe entre cliente y servidor,
diseñando algo que se conoce como arquitectura de objetos distribuidos, en la figura 2 se observa
esta arquitectura, la cual está formada por objetos que realizan llamadas a estos servicios sin

14
necesidad de distinción lógica entre los clientes y el servidor. Estos objetos están distribuidos en
varias computadoras conectadas red, comunicándose a través de un middleware el cual brinda una
interfaz transparente a todos los objetos existentes.

Las ventajas de este modelo son las siguientes:

 Permite al diseñador del sistema aplazar decisiones sobre dónde y cómo brindar estos
servicios.
 Permite añadir nuevos recursos si es necesario.
 Permite añadir nuevos objetos a medida que la carga del sistema se incrementa sin afectar al
resto de los objetos del sistema.
 Se puede reconfigurar el sistema dinámica usando la migración de objetos en red.

Ilustración 4 Arquitectura de objetos distribuidos.

Arquitectura de objetos distribuidos nos ayuda a estructurar y organizar el sistema. Se debe


proporcionar las funcionalidades del software en términos de servicios y sus combinaciones, para
luego identificar como entregar estos servicios con la ayuda de varios objetos distribuidos.

Computación distribuida inter-organizacional.


Organizaciones que quieren hacer su información accesible a otros programas pueden hacerlo
definiendo y publicando una interface de servicio web.
Un servicio web es una representación estándar para algún recurso computacional o de información
que puede ser usado por otros sistemas.
Algunos proveedores de servicios pueden ofrecer servicios especializados y darles esta promoción a
los usuarios de diferentes empresas. Una aplicación puede funcionar enlazando servicios desde
varios proveedores, utilizando un estándar de lenguaje de programación.
Las diferencias que existen entre un modelo de servicio con un modelo de objetos distribuidos son
las siguientes:

15
• Un servicio lo puedo ofrecer cualquier proveedor ya sea dentro o fuera de la empresa. Estas
empresas pueden realizar aplicaciones en las cuales integren los servicios de muchos
proveedores.
• Un proveedor ofrece su servicio para que otro usuario lo pueda usar, no es necesario
establecer una negociación entre los proveedores de servicios con el cliente.
• Las aplicaciones pueden retrasar el enlace de los servicios hasta que éstas sean desplegadas
o hasta que estén en ejecución.
• Si una aplicación está en ejecución ocasionaría un retraso en el enlace de estos servicios.
• Se puede crear nuevos servicios, ya que un proveedor puede enlazar servicios ya existentes
en la empresa y crear algo innovador.
• Si se implementan el manejo de excepciones en las aplicaciones como un servicio externo,
esto podría disminuir el tamaño de la aplicación.

Los tres estándares fundamentales que permiten la comunicación entre servicios web son:
1. SOAP.
2. WSDL.
3. UDDI.

Sistemas Distribuidos Modelo de Sistema: Arquitectónico


Elementos Arquitectónicos
 Entidades
 Paradigmas de comunicación
 Roles y responsabilidades
 Mapeo sobre la infraestructura física

Patrones Arquitectónicos
 Capas
 Tiers
 Clientes Delgados

Capas de Software Plataforma

• Se considera el nivel de hardware y las capas más bajas de software.


• Estas capas proporcionan servicios a las que están por encima de ellas, y que son implementadas
independientemente en cada computadora, proporcionando una interfaz de programación del sistema.

Middleware
• Se representa mediante procesos u objetos en un conjunto de computadoras que interactúan entre sí
para implementar mecanismos de comunicación y recursos compartidos para aplicaciones
distribuidas.
• Mejora el nivel de las comunicaciones soportando abstracciones como: procedimiento de
invocación remota, comunicación entre un grupo de procesos, notificación de eventos, replicación de
datos compartidos y transmisión de datos multimedia en tiempo real.

16
Ilustración 5 Capas

Dos-Tiers: 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.

Ilustración 6 Dos-Tiers

Tres-Tiers: El cliente se encarga de la interacción con el usuario, el servidor de la lógica de


aplicación y la base de datos puede estar en otro servidor.

17
Ilustración 7 Tres-Tiers

Clientes delgados: Computadora cliente que trabaja en una arquitectura de red cliente-servidor
que depende primariamente del servidor central para las tareas de procesamiento, y principalmente se
enfoca en transportar la entrada y la salida entre el usuario y el servidor remoto.

Ilustración 8. Clientes delgados

Arquitectura de Clúster.

Un servidor en clúster, también conocido como clúster de servidores, se trata de la unión de varios
sistemas informáticos (servidores) que funcionan como si fueran uno solo.
Cuando se habla de «unir» se refiere a que comparten recursos de hardware y software, funcionando
así como si fueran un solo sistema unificado. Esta unión de recursos se realiza con diversos fines,
aunque la razón más popularidad es ofrecer velocidad y por sobre todo alta disponibilidad ante fallos.
En palabras claras, un clúster de servidores se puede definir como un grupo de equipos informáticos
que comparten recursos balanceados y están conectados a una red de alta velocidad.

18
Consta de un conjunto de computadoras independientes, interconectadas entre sí, de tal manera que
funcionan como un solo recurso computacional. A cada uno de los elementos del clúster se le conoce
como nodo. Estos son aparatos o torres que pueden tener uno o varios procesadores, memoria RAM,
interfaces de red, dispositivos de entrada y salida, y sistema operativo. Los nodos pueden estar
contenidos e interconectados en un solo gabinete, o, como en muchos casos, acoplados a través de
una red de área local (LAN (Local Area Network)). Otro componente básico en un clúster es
la interfaz de la red, la cual es responsable de transmitir y recibir los paquetes de datos, que viajan a
través de la red entre los nodos. Finalmente el lograr que todos estos elementos funcionen como un
solo sistema, es la meta a la que se quiere llegar para dar origen a un clúster.
Comúnmente, en los clústers existe una máquina (con monitor, teclado, ratón, etcétera) que funciona
como nodo-maestro y se encarga de administrar, controlar y monitorear todas las aplicaciones y
recursos del sistema, en tanto que el resto de los nodos está dedicado al procesamiento de datos o a
ejecutar operaciones aritméticas. Se les conoce como nodos-esclavos

Ventajas de los servidores en clúster


Existen múltiples beneficios y ventajas del uso de servidores en clúster:
Alta disponibilidad: este es uno de los grandes beneficios de la tecnología de clustering, es decir,
ofrecer un mejor uptime de servidores gracias a que si falla uno, el resto tomará el trabajo ofreciendo
así una alta disponibilidad del servicio.
Alta velocidad de despacho: se obtiene gracias al equilibrio de las cargas, haciendo que los
servidores que reciben las solicitudes de los clientes puedan despachar los datos de forma inmediata,
sin delays ni retrasos de ningún tipo.
Balanceo de carga: se establecen diferentes métodos de balanceo de carga, haciendo que una o
varias peticiones se deriven a determinados hosts, mientras que otras irán destinadas a otro grupo de
servidores bajo el clúster. Esto hace que ningún servidor se vea saturado.
Escalabilidad: la mayoría de los clúster de servidores soportan escalabilidad de forma horizontal,
permitiendo agregar más servidores de forma masiva según se necesite debido a una posible
creciente demanda de parte de los usuarios.
Resistencia ante ataques DDOS: tener un clúster de servidores ofrece un beneficio adicional de
soportar mejor las cargas de sistema que se originan ante ataques DDOS masivos, donde se suelen
inundar los servidores con peticiones no deseadas. El uso de múltiples servidores puede ayudar a
resistir mejores diferentes tipos de ataque destinados a agotar los recursos de sistema o red.
Desventajas de un servidor en clúster
Los clúster, a pesar de estar tan idealizados en la industria, también tienen sus desventajas o contras,
veamos algunas de ellas:
Altos costos: esta es una de las principales desventajas que tiene trabajar con un clúster de
servidores, y es que el setup y puesta a punto de tecnologías como este tipo cuesta bastante más caro
que trabajar con servidores dedicados tradicionales, o con servidores en la nube. No solo es caro para
montarlo, también se debe tener en cuenta que al necesitar escalar se necesitará agregar más
servidores al esquema de red, incrementando así los gastos.

19
Complejidad: no todas las empresas proveedores de servicios de Internet, o de web hosting tienen el
tiempo, la infraestructura y el personal técnico calificado para montar este tipo de soluciones. La alta
complejidad a nivel técnico hace que montar un servidor en clúster se logre hoy por hoy en muy
pocos proveedores del mundo hispano.
Tiempo de implementación: montar, configurar y dejar a punto un clúster de servidores puede
tomar varias semanas, a varios meses, dependiendo de la complejidad del sistema, de las
aplicaciones y tipos de balanceo de carga y replicación de datos (servidores en espejo por ejemplo)
usados en la arquitectura. Por lo que no suele ser una solución para quienes necesitan una opción
rápida.
No son a prueba de fallos: contrario a su finalidad y naturaleza, lamentablemente, los servidores en
clúster también pueden fallar, le ha sucedido a Gmail, Yahoo, Hotmail, la NASA, tarde o temprano la
perfecta arquitectura del clúster puede fallar por errores de red, software o hardware, siempre debes
tenerlo en cuenta. Lo que si te pueden garantizar es que fallarán mucho menos que otras soluciones.
Clasificación de los clústers
Existen dos tipos de clúster según la arquitectura de las computadoras que lo conforman:
Clúster homogéneo: Todos los nodos tienen las mismas características técnicas de hardware y
software. Son idénticos y por lo tanto la capacidad de procesamiento y rendimiento de cada nodo es
la misma.
Clúster heterogéneo: Al contrario de los clústers homogéneos, los nodos son completamente
distintos en cuanto a hardware y software.

Prestaciones a tener en cuenta en la elección de un clúster.


 Obviamente, en primer lugar, la fiabilidad de trabajo.
 Velocidad de la conexión de la red que une los ordenadores del clúster.
 Posibilidad de incorporar nuevos nodos sin tener que parar el funcionamiento de todo el
clúster. La reparación en caliente es prerequisito sin escape.
 En el momento de la caída, la calidad y rapidez de la recuperación.
 El grado de adaptabilidad a la demanda.
 El reparto equilibrado del trabajo entre los nodos.
 La facilidad de administración, tema clave ya que la imagen del clúster ha de ser de máquina
única.

Clústers y aplicaciones distribuidas.


Una de las razones de montar aplicaciones distribuidas es conseguir dar servicio cuando cae un
servidor. Si los servidores los colocamos en clústers, la tolerancia a fallos de la aplicación distribuida
será muy alta y podremos ahorrar en software dedicado al análisis de consistencia que ha de
garantizar la recuperación y funcionamiento del sistema en caso de caída en uno de los nodos.
Incluso la aplicación puede diseñarse no distribuida colocando datos y software en el clúster.
La contrapartida es que si se deja una aplicación condicionada a un clúster no se podrá instalar en
entornos muy pequeños, restricción muy importante en aplicaciones distribuidas.

20
Que hacer, pues, ¿Clúster o software de consistencia? Una vez más, no hay soluciones mágicas.
Mandan la importancia de garantizar servicio versus los costes de cada solución, la importancia o no
de introducir un punto de heterogeneidad (el clúster lo es) o la calidad de las soluciones clúster de su
plataforma habitual Los clusters son fundamentales en aplicaciones Internet de filosofía WEB. De
cualquier forma, un buen diseñador debe conocer y valorar siempre la existencia de los clusters.

Arquitectura Cliente servidor


Concepto
El concepto de cliente servidor, o cliente-servidor, refiere por lo tanto a un modelo de
comunicación que vincula a varios dispositivos informáticos a través de una red. El cliente, en este
marco, realiza peticiones de servicios al servidor, que se encarga de satisfacer dichos requerimientos.
El Cliente-Servidor es un sistema distribuido entre múltiples Procesadores donde hay clientes que
solicitan servicios y servidores que los proporcionan. La Tecnología Cliente/Servidor, es un modelo
que implica productos y servicios enmarcados en el uso de la Tecnología de punta, y que permite la
distribución de la información en forma ágil y eficaz a las diversas áreas de una organización
(empresa o institución pública o privada), así como también fuera de ella.

Historia
1ª ÉPOCA:

 LAN.

 LAN con MAINFRAMES.

 Comunicaciones homogéneas (LU, SNA, APPC).


2ª ÉPOCA:

 Herramientas de desarrollo C/S.

 Proveedores DBMS con C/S.

 Downsizing: migración a PCs.

 S.O. De red con servidores de servicios


3ª ÉPOCA: ACTUAL:

 PWS: Estaciones de trabajo programables gráficamente.

 GUI: Interfaz gráfico de usuario. Alta resolución.

 Nuevas tecnologías: Ratón, lápiz óptico, scanner, multimedia.

 Tecnología de componentes: DDE y OLE.

 Conectividad de BDs: ODBC, JDBC

 Objetos Distribuidos: CORBA, COM, COM+, DCOM

21
 Internet: HTML, CGI, Applet, ActiveX, JAVA, JavaScript

 Arquitecturas C/S de 2 y 3 niveles.

 Middleware. Cliente
Es el que pide servicio de Internet o Intranet. Una aplicación consta de una parte de servidor y una de
cliente, que se pueden ejecutar en el mismo o en diferentes sistemas. Los usuarios invocan la parte
cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la
aplicación que usa TCP/IP como transporte.

Importancia del modelo cliente servidor


La arquitectura cliente servidor tiene dos partes claramente diferenciadas, por un lado la parte del
servidor y por otro la parte de cliente o grupo de clientes donde lo habitual es que un servidor sea una
máquina bastante potente con un hardware y software específico que actúa de depósito de datos y
funcione como un sistema gestor de base de datos o aplicaciones.
En esta arquitectura el cliente suele ser estaciones de trabajo que solicitan varios servicios al
servidor, mientras que un servidor es una máquina que actúa como depósito de datos y funciona
como un sistema gestor de base de datos, este se encarga de dar la respuesta demandada por el
cliente.

Ilustración 9 Modelo Cliente Servidor

Componentes
Para entender este modelo vamos a nombrar y definir a continuación algunos conceptos básicos que
lo conforman.
Red: Una red es un conjunto de clientes, servidores y base de datos unidos de una manera física o no
física en el que existen protocolos de transmisión de información establecidos.

22
Cliente: El concepto de cliente hace referencia a un demandante de servicios, este cliente puede ser
un ordenador como también una aplicación de informática, la cual requiere información proveniente
de la red para funcionar.
Servidor: Un servidor hace referencia a un proveedor de servicios, este servidor a su vez puede ser
un ordenador o una aplicación informática la cual envía información a los demás agentes de la red.
Protocolo: Un protocolo es un conjunto de normas o reglas y pasos establecidos de manera clara y
concreta sobre el flujo de información en una red estructurada.
Servicios: Un servicio es un conjunto de información que busca responder las necesidades de un
cliente, donde esta información pueden ser mail, música, mensajes simples entre software, videos,
etc.
Base de datos: Son bancos de información ordenada, categorizada y clasificada que forman parte de
la red, que son sitios de almacenaje para la utilización de los servidores y también directamente de
los clientes.

Tipos de arquitecturas cliente servidor


Dentro de la arquitectura cliente servidor existen tres tipos en donde hablaremos brevemente de
cómo funciona cada uno de ellos.

 Arquitectura de dos capas


Esta se utiliza para describir los sistemas cliente servidor en donde el cliente solicita recursos y el
servidor responde directamente a la solicitud con sus propios recursos. Eso significa que el servidor
no requiere de una aplicación extra para proporcionar parte del servicio.

 Arquitectura de tres capas


En la arquitectura de tres capas existe un nivel intermediario, eso significa que la arquitectura
generalmente está compartida por un cliente que como hablamos más arriba es el que solicita los
recursos equipado con una interfaz de usuario o mediante un navegador web.
La capa del medio es denominada software intermedio cuya tarea es proporcionar los recursos
solicitados pero que requiere de otro servidor para hacerlo. La última capa es el servidor de datos que
proporciona al servidor de aplicaciones los datos necesarios para poder procesar y generar el servicio
que solicito el cliente en un principio.

 Arquitectura N capas
En la arquitectura de tres capas, los servidores dos y tres realizaron una tarea específica por lo tanto
un servidor web puede usar los servicios de otros servidores para poder proporcionar su propio
servicio.
Por consiguiente, la arquitectura en tres niveles es potencialmente una arquitectura en N capas ya
que, así como está contemplado en tres niveles como el caso anterior puede estar compuesto por N
servidores donde cada uno de ellos brindan su servicio específico.

Funciones de los Clientes-Servidor


 Manejo de la interfaz de usuario.

23
 Captura y validación de los datos de entrada.
 Generación de consultas e informes sobre las bases de datos.
 Por su parte los servidores realizan, entre otras, las siguientes funciones:
 Gestión de periféricos compartidos.
 Control de accesos concurrentes a bases de datos compartidas.
 Enlaces de comunicaciones con otras redes de área local o extensa.

Características de la arquitectura Cliente/Servidor


 Combinación de un cliente que interactúa con el usuario, y un servidor que interactúa con los
recursos compartidos.
 Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de
cómputo como velocidad del procesador, memoria, velocidad y capacidades del disco e
input-output devices.
 Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados en la
misma máquina o en máquinas diferentes distribuidas a lo largo de la red.
 Existe una clara distinción de funciones basada en el concepto de "servicio", que se establece
entre clientes y servidores.
 La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a
muchos clientes, regulando su acceso a recursos compartidos.
 Los clientes corresponden a procesos activos en cuanto a que son éstos los que hacen
peticiones de servicios a los servidores. Estos últimos tienen un carácter pasivo ya que
esperan las peticiones de los clientes.
 No existe otra relación entre clientes y servidores que no sea la que se establece a través del
intercambio de mensajes entre ambos. El mensaje es el mecanismo para la petición y entrega
de solicitudes de servicio.
 El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del cliente y
del servidor no son siempre la misma. Precisamente una de las principales ventajas de esta
arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus
plataformas.

Ventajas y Desventajas
Este modelo cliente servidor tiene varias ventajas y desventajas las cuales son importantes mencionar
y conocer a la hora de establecer si es lo que estamos necesitando o si se acomoda a lo que estamos
buscando.

Ventajas
 Facilita la integración entre diferentes sistemas y comparte información permitiendo por
ejemplo que las máquinas ya existentes puedan ser utilizadas mediante una interfaz más
amigable para el usuario.
 Al favorecer el uso de la interfaz de gráficas interactivas, los sistemas construidos bajo este
esquema tienen una mayor interacción con el usuario.
 La estructura modular facilita de más la integración de nuevas tecnologías y el crecimiento de
la infraestructura computacional favoreciendo así la estabilidad de las soluciones.
 El modelo cliente servidor permite además proporcionar a las diferentes áreas de una empresa
generar un orden de trabajo en donde cada sector puede trabajar en su área pero accediendo al
mismo servidor e información que los demás.Esto es de gran utilidad ya que si ponemos

24
como ejemplo una empresa con varios empleados al momento de trabajar es importante que
todos puedan hacerlo en simultáneo.

Desventajas
 Requiere habilidad para que un servidor sea reparado.
 Otro problema es la seguridad, el hecho que se comparte canales de información entre
servidores y clientes requieren que estas pasen por procesos de validación, es decir protocolos
de seguridad que pueden tener algún tipo de puerta abierta permitiendo que se generen daños
físicos, amenazas o ataques de malware.
 Este modelo representa una limitación importante en cuanto a los costos económicos debido a
que estos servidores son computadoras de alto nivel con un hardware y software específicos
para poder dar un correcto funcionamiento a nuestras aplicaciones.

Ejemplos de modelo cliente servidor


Existen muchísimos servicios, protocolos y servidores que trabajan con el mismo modelo que
mencionamos antes. Casi todo el Internet funciona de esa forma de hecho.
Algunos ejemplos de la arquitectura cliente servidor pueden ser:
Navegar una web funciona basándonos en un cliente web (navegador) y un servidor
web como Apache, Nginx o LiteSpeed
Protocolo FTP, funciona de idéntica forma, se utiliza un cliente de FTP (como Filezilla) para
conectar a un servidor FTP (como Pure-FTPD, Proftpd, etc)
SSH: es idéntico también, se utiliza un cliente SSH para conectar al servidor SSH que corre en una
red remota.
Juegos en red: existen clientes que permiten a jugadores online jugar desde sus casas conectándose a
servidores de juegos remotos.
Sistema DNS: el famoso servidor DNS interactúa con clientes DNS también, es decir, basa su
arquitectura en el modelo cliente servidor
Servidor de Correo: donde clientes de correo consultan el correo al servidor de correo remoto, tanto
desde móvil o una computadora de escritorio o laptop.

25
Conclusiones
La arquitectura distribuida nos ayuda a diseñar sistemas de información basada en la utilización de
servicios es decir, optimizamos además de aprovechar los recursos al máximo. De esta manera
podemos diseñar aplicaciones o sistemas más eficientes aprovechando mejor las posibilidades de los
recursos informáticos.
El uso de servidores en clúster tiene muchísimas ventajas para las personas que realmente necesitan
una solución robusta, veloz y que otorgue alta disponibilidad en entornos empresariales. Sin
embargo, tiene también algunas desventajas como altos costos y complejidad, que hacen que su
adopción no sea tan masiva como en otros productos del mercado.

26
Recomendaciones
Debemos tener en cuenta la adaptación del diseño a la evolución de los sistemas de información que
han tendido a disponer de más de un ordenador cooperando como soporte de procesos y datos de
interés general.
Algo que conviene preguntarse siempre es: ¿realmente necesito servidores en clúster? Eso depende
en gran medida de cuantos usuarios se verían afectados, así como del impacto que el tiempo offline
podría causar a tu empresa en caso de fallo de los sistemas informáticos.

27
Bibliografía
HERRERO PEREZRUL, A. (s.f.). Conceptos y características de los sistemas operativos
distribuidos. Obtenido de mrTripas:
https://sites.google.com/site/mrtripus/home/sistemas-operativos-2/1-2-conceptos-y-
caracteristicas-de-los-sistemas-operativos-distribuidos?
fbclid=IwAR0sTBDhCEV_A_lZZWQGi7VlIqok5kHDiKwmK6DXzcyWh109sHGNjgC
Jp8g
Velázquez Álvarez, D. (s.f.). CONCURRENCIA DE PROCESOS. Obtenido de
WebProgramacion: https://webprogramacion.com/43/sistemas-operativos/concurrencia-
de-procesos.aspx
Coulouris, G. D. (2012). Distributed Systems. Pearson. Obtenido de Coulouris, G., Dollimore, J.
& Kindeberg, T. (2012). Distributed Systems,
fariña, y. (6 de agosto de 2008). Sistema Operativo Distribuido. Obtenido de Descripción de
conceptos básicos de sistemas operativos distribuidos:
https://sistemasdistribuido.blogspot.com/2008/08/1-descripcin-de-conceptos-bsicos-
de.html?
m=1&fbclid=IwAR2KKXozYaNFs7FygjEzbHkzGIHlajMxqRqHW1FvwXvszRkoNZU
gEgEGGWQ
Fuentes, F. d. (2015). Sistemas distribuidos. México.
Molina Ríos Jimmy, V. P. (2015). Diseño de sistemas. Machala: utmach.
Salguero, E. (25 de febrero de 2018). Sistemas distribuidos: caracterización, diseño, mensajes y
tiempo (I). Obtenido de Sistemas distribuidos:
https://medium.com/@edusalguero/sistemas-distribuidos-caracterizacion-modelado-
comunicacion-tiempo-2c1f85f4e67a
sistemas distribuidos. (14 de abril de 2016). Obtenido de
https://sistemasdistribuidos938.wordpress.com/
Sistemas Operativos distribuidos. (s.f.). Obtenido de QUIEROAPUNTES:
https://www.quieroapuntes.com/sistemas-operativos-distribuidos.html?
fbclid=IwAR2wKX6PpNsFBQRXj48v4_kCIrLZ2znc_on0JVV6KLUqTjDVozZ3EBtlH
Jc
Intrroducción a Sistemas Distribuidos. (s.f). Obtenido de
http://www.essi.upc.edu/~gomariz/index_archivos/IntroduccionSD-EnricMartinez.pdf

28
Anexos

29
Ilustración 10 Bryan Arias

Ilustración 11 Johana Cabrera


30
Ilustración 12 Mariela Ávila

31
Ilustración 13 Kelly Alfonso
Ilustración 14 Kelly Alfonso
32

También podría gustarte