Arquitecturas de Sistemas Distribuidos y el Modelo Cliente-Servidor
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,91 KB
Arquitecturas Específicas de Sistemas
Dentro del diseño de sistemas, podemos identificar diversas estructuras fundamentales como la arquitectura cliente-servidor (en sus variantes de 2 y 3 capas), la arquitectura de objetos distribuidos y las arquitecturas orientadas a servicios (SOA).
Arquitectura Cliente-Servidor
Este es un tipo de sistema distribuido donde el procesamiento de la información se distribuye sobre varios computadores. Es un modelo de vital importancia para los sistemas corporativos modernos y se caracteriza por:
- Compartir recursos: Optimización del uso de hardware y software.
- Sistemas abiertos: Permiten el uso de equipos y software de distintos fabricantes.
- Escalables: La capacidad del sistema se incrementa fácilmente agregando más recursos.
- Tolerancia a fallos: Poseen la capacidad de seguir funcionando incluso después de que ha ocurrido una falla.
Modelado de la Aplicación
La aplicación se modela bajo los siguientes conceptos:
- Un conjunto de servicios provistos por servidores.
- Un conjunto de clientes que utilizan esos servicios.
Es importante destacar que los clientes conocen a los servidores, pero los servidores no necesitan conocer a los clientes de antemano. Tanto los clientes como los servidores son procesos lógicos; no se debe confundir un proceso servidor con un computador servidor (este último es solo el hardware que ejecuta uno o más procesos). La asociación de procesadores a procesos normalmente no es de 1 a 1.
Ventajas y Desventajas
Ventajas:
- Precios: Su utilización es considerablemente más barata que una solución centralizada.
- Escalabilidad: Es sencillo agregar nuevos servidores o mejorar los actuales.
- Interfaces: Promueve el uso de interfaces de usuario más amigables.
Desventajas:
- Seguridad: Requiere una verificación compleja de clientes y servidores, además de mecanismos de encriptación.
- Desempeño: Depende de factores como el uso del servidor, la capacidad del cliente y la congestión de la red.
- Integridad de los datos: Al existir redundancia de datos, pueden surgir problemas de integridad.
- Gestión de servicios: No hay un registro central de nombres y servicios, lo que puede dificultar averiguar qué servicios y servidores están disponibles.
Tipos de Clientes
Cliente Delgado (Thin Client)
En el modelo de cliente delgado, todo el procesamiento de la aplicación y la administración de datos se realiza en el servidor. El cliente es solo responsable de ejecutar el software de presentación. En casos de cliente muy delgado, el dispositivo actúa simplemente como un terminal.
Cliente Gordo (Fat/Thick Client)
En este modelo, el servidor es responsable únicamente de la administración de los datos. El software del cliente implementa la lógica de la aplicación y gestiona las interacciones con el usuario del sistema.
Niveles o Capas en una Aplicación
Es posible identificar tres niveles fundamentales:
- Nivel de presentación: Se encarga de presentar resultados a los usuarios y recolectar sus entradas.
- Nivel de procesamiento de la aplicación: Se ocupa de la funcionalidad específica, también llamado "lógica de la aplicación" o "reglas del negocio".
- Nivel de administración de datos: Se encarga de gestionar las bases de datos del sistema.
Variantes de la Arquitectura de 2 Capas
En algunos casos, se pueden fusionar capas adyacentes:
- Capa de datos + Lógica del negocio: Provoca un cliente delgado. Es la mejor opción para el mantenimiento.
- Lógica del negocio + Capa de presentación: Provoca un cliente grueso. Su mantenimiento es difícil, ya que cualquier cambio en la lógica del negocio implicará una actualización en cada uno de los clientes.
Aplicaciones Web y Arquitectura de 3 Capas
Una aplicación web es un programa diseñado específicamente para ejecutarse dentro de un navegador web. Para ello, se emplean tecnologías de 3 capas basadas en una arquitectura cliente/servidor:
- La primera capa: Reside en el ordenador del usuario, donde se ejecuta la aplicación dentro del navegador. Esta capa se ocupa de la representación y obtención de datos, la generación de informes, gráficos, etc.