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