Arquitectura Cliente/Servidor

Todo objeto posee una estructura, con cuyos componentes se presenta el resultado final como uno solo. De igual manera un sistema distribuido posee una estructura, en la cual todas sus partes tienen una colocación y existen relaciones entre ellas. Así, el objetivo global es asegurar que la estructura (de un sistema) satisfará las demandas presentes y previsibles sobre él. (Coulouris, 2001)
Por tal, en el presente trabajo se abordan las características del modelo Cliente-Servidor, así como las diferencias con otras arquitecturas de sistema, y sus ventajas y desventajas.

Modelo Cliente-Servidor

Cliente/Servidor es una arquitectura que separa el procesamiento entre clientes y servidores en una red. Los tres componentes esenciales del esquema son: los clientes (usualmente PCs o equipos Macintosh), el servidor (donde reside por ejemplo la base de datos) y la red que transporta requerimientos y posteriormente datos. (Hernández, 1997)

Los clientes (o programas que representan entidades que necesitan servicios) y los servidores (o programas que proporcionan servicios) son objetos separados desde un punto de vista lógico y que se comunican a través de una red de comunicaciones para realizar una o varias tareas de forma conjunta.

Un cliente hace una petición de un servicio y recibe la respuesta a dicha petición; un servidor recibe y procesa la petición, y devuelve la respuesta solicitada. En un sistema distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras.



Características

Algunas de las características más relevantes de este modelo son:
  • Recursos compartidos: un servidor puede proporcionar servicios a muchos clientes al mismo tiempo, y regular el acceso de éstos a un conjunto de recursos compartidos.
  • Apertura: El software cliente/servidor debe ser lo más independiente posible de las plataformas de hardware y sistemas operativos involucrados.
  • Integridad: el código y los datos de un servidor se mantienen centralizados, lo que origina que el mantenimiento sea más barato y la protección de la integridad de datos compartidos. Al mismo tiempo, los clientes mantienen su independencia y “personalidad”.
  • Modularidad, diseño extensible: el diseño modular de una aplicación cliente/servidor permite que la aplicación sea tolerante a fallos.
  • Independencia de la plataforma: el software cliente/servidor “ideal” es independiente del hardware o sistemas operativos, permitiendo al programador mezclar plataformas de clientes y servidores
  • Escalabilidad: Los sistemas cliente/servidor pueden ser escalados horizontal o verticalmente
• El escalado horizontal significa añadir o eliminar estaciones clientes con un ligero impacto en el rendimiento.
• El escalado vertical significa la migración a una máquina servidora más grande y rápida o la incorporación de nuevas máquinas servidoras.


Ventajas

  • En sistemas tolerantes a fallos, los fallos pueden ocurrir sin causar la caída de la aplicación completa.
  • Portabilidad. Actualmente el poder de procesamiento se puede encontrar en varios tamaños: super servidores, servidores, desktop, notebooks, máquinas portátiles. Las soluciones cliente/servidor basadas en estándares permiten a las aplicaciones estar localizadas donde sea más ventajoso u oportuno.
  • Sistemas abiertos. Los sistemas cliente/servidor ya han alcanzado el nivel de madurez y funcionalidad de los sistemas propietarios, pero bajo la premisa de sistemas basados en estándares de la industria.
  • Adaptabilidad. Las facilidades de software que existen en los componentes del sistema que actuarán como clientes, permiten a una misma aplicación llegar a diversos elementos de la compañía sin tener que realizar ningún tipo de cambio al sistema.

Desventajas

  • Si una parte importante de la lógica de las aplicaciones es trasladada al servidor, éste puede convertirse en un “cuello de botella” del sistema global. En este caso, los recursos limitados Club de Investigación Tecnológica Cliente/Servidor del servidor tienen una alta demanda por un número cada vez más creciente de usuarios. (Berson 1996)
  • Las aplicaciones distribuidas, en especial aquellas basadas en el modelo cooperativo, son más complejas que las no distribuidas, e imponen cargas adicionales de comunicación y por ende de transferencia de información (datos del usuario y overhead del sistema). (Berson 1996)
  • Los ambientes y las herramientas cliente/servidor demuestran falta de robustez y confiabilidad cuando se les compara con los ambientes multiusuario tradicionales. (Price 1995)

Arquitectura de dos capas

La arquitectura en 2 niveles 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. Esto significa que el servidor no requiere otra aplicación para proporcionar parte del servicio.


Arquitectura de tres capas

En la arquitectura en 3 niveles, existe un nivel intermediario. Esto significa que la arquitectura generalmente está compartida por: 
  • Un cliente, es decir, el equipo que solicita los recursos, equipado con una interfaz de usuario (generalmente un navegador Web) para la presentación,
  • El servidor de aplicaciones (también denominado software intermedio), cuya tarea es proporcionar los recursos solicitados, pero que requiere de otro servidor para hacerlo,
  • El servidor de datos, que proporciona al servidor de aplicaciones los datos que requiere



La Arquitectura Cliente/Servidor resulta muy útil, a pesar de sus desventajas, un ejemplo de su uso es en el correo electrónico o en la World Wide Web.
A pesar de que este modelo resulta bastante útil siempre es necesario conocer los demás modelos para saber así cuando sea necesario, cual es el modelo que más se ajusta a lo que se realizará.

REferencias


Coulouris, G. (2001). Sistemas Distribuidos. Madrid : PEARSON EDUCACIÓN.
Hernández, E. (1997). Cliente/Servidor. Sán Jose: Rho-Sigma.
Berson, Alex, Client/Server Architecture, Second Edition, Editorial McGraw-Hill, Inc., Estados Unidos, 1996.
Price Waterhouse Interamerica Consulting Group, Estándares de Sistemas Abiertos de Software, Informe No. 18 del Club de Investigación Tecnológica, Costa Rica, 1995.


Comentarios

Entradas populares de este blog

Cifrado Asimetrico

Modelo OSI y TCP/IP

RMI