Sunteți pe pagina 1din 6

Arquitecturas cliente-servidor.

En una arquitectura cliente-servidor. una aplicacin se modela como un conjunto


de servicios proporcionados por los servidores y un conjunto de clientes que usan
estos servicios (Orfali y Harkey. 1998). Los clientes necesitan conocer qu
servidores estn disponibles, pero normalmente no conocen la existencia de otros
clientes. Clientes y servidores son procesos diferentes, como se muestra en la
Figura 12.2, que representa un modelo lgico de una arquitectura distribuida
cliente-servidor.
Varios procesos servidores pueden ejecutarse sobre un nico procesador servidor;
por lo tanto, no hay necesariamente una correspondencia 1: 1 entre procesos y
procesadores en el sistema.
La Figura 12.3 muestra la arquitectura fsica de un sistema con seis computadoras
cliente y dos computadoras servidor. stos pueden ejecutar los procesos cliente y
servidor mostrados en la Figura 12.2. Cuando hacemos referencia a clientes y
servidores, nos referimos a los procesos lgicos en vez de a las computadoras
fsicas sobre las que se ejecutan.
El diseo de sistemas cliente-servidor debera reflejar la estructura lgica de la
aplicacin que se est desarrollando. Una forma de ver una aplicacin se ilustra
en la Figura 12.4, que muestra una aplicacin estructurada en tres capas. La capa
de presentacin est relacionada con la presentacin de la informacin al usuario
y con toda la interaccin con l.
La capa de procesamiento de la aplicacin est relacionada con la implementacin
de la lgica de la aplicacin, y la capa de gestin de datos est relacionada con
todas las operaciones sobre la base de datos. En los sistemas centralizados, estas
capas no es necesario que estn claramente separadas. Sin embargo, cuando se
est diseando un sistema distribuido,

debera hacerse una clara distincin entre ellas, de forma que sea posible distribuir
cada capa sobre una computadora diferente.
La arquitectura cliente-servidor ms simple se denomina arquitectura clienteservidor de dos capas, en la que una aplicacin se organiza como un servidor (o
mltiples servidores idnticos) y un conjunto de clientes. Como se ilustra en la
Figura 12.5, las arquitecturas cliente/servidor de dos capas pueden ser de dos
tipos:
l. Modelo de cliente ligero (thin-client). En un modelo de cliente ligero, todo el
procesamiento de las aplicaciones y la gestin de los datos se lleva a cabo en el
servidor. El cliente simplemente es responsable de la capa de presentacin del
software.

2. Modelo de cliente rico (fatclient ). En este modelo, el servidor solamente es


responsable de la gestin de los datos. El software del cliente implementa la lgica
de la aplicacin y las interacciones con el usuario del sistema.
Una arquitectura de dos capas con clientes ligeros es la aproximacin ms simple
que se utiliza cuando los sistemas heredados centralizados. como se indica en el
Captulo 2, evolucionan a una arquitectura cliente-servidor. La interfaz de usuario
para estos sistemas se migra a PCs, y la aplicacin en s misma acta como un
servidor y maneja todo el procesamiento de la aplicacin y gestin de datos. Un
modelo de cliente ligero tambin puede implementarse cuando los clientes son
dispositivos de red sencillos en lugar de PCs o estaciones de trabajo.
El dispositivo de red ejecuta un navegador de Internet y la interfaz de usuario es
implementada a travs de ese sistema.
Una gran desventaja del modelo de cliente ligero es que ubica una elevada carga
de procesamiento tanto en el servidor como en la red. El servidor es responsable
de todos los clculos, y esto puede implicar la generacin de un trfico significativo
en la red entre el cliente y el servidor.
Los dispositivos de computacin modernos disponen de una gran cantidad de
potencia de procesamiento, la cual es bastante poco usada en la aproximacin de
cliente ligero.
El modelo de cliente rico hace uso de esta potencia de procesamiento disponible y
distribuye tanto el procesamiento de la lgica de la aplicacin como la
presentacin al cliente. El servidor es esencialmente un servidor de transacciones
que gestiona todas las transacciones de la base de datos. Un ejemplo de este tipo
de arquitectura es la de los sistemas bancarios ATM, en donde cada ATM es un
cliente y el servidor es un n1ainframe que procesa la cuenta del cliente en la base
de datos. El hard":arc de los cajeros automticos realiza una gran cantidad de
procesamiento relacionado con el cliente y asociado a la transaccin.
Este sistema distribuido ATM se ilustra en la Figura 12.6. Observe que los ATMs
no se conectan directamente con la base de datos de clientes sino con un monitor
de teleproceso. Un monitor de teleproceso o gestor de transacciones es un
sistema middleware que organiza las comunicaciones con los clientes remotos y
serializa las transacciones de los clientes para su procesamiento en la base de
datos. El uso de transacciones serializadas significa que el sistema puede
recuperarse de los defectos sin corromper los datos del sistema.
Aunque el modelo de cliente rico distribuye el procesamiento de forma ms
efectiva que un modelo de cliente ligero, la gestin del sistema es ms compleja.
La funcionalidad de la aplicacin se expande entre varias con1putadoras. Cuando
la aplicacin software tiene que ser modificada, esto implica la reinstalacin en
cada computadora cliente. Esto puede significar un coste importante si hay cientos
de clientes en el sistema.

La aparicin del cdigo mvil (como los applets de Java y los controles Active X),
que pueden descargarse en un cliente desde un servidor, ha permitido el
desarrollo de sistemas cliente-servidor que son algo intermedio entre los modelos
de cliente ligero y rico. Algunas de las aplicaciones de procesamiento de software
pueden descargarse en el cliente como cdigo mvil, aligerando as la carga en el
servidor. La interfaz de usuario se crea usando un navegador web que incluye
utilidades de construccin de programas para ejecutar el cdigo descargado.
El problema con una aproximacin cliente-servidor de dos capas es que las tres
capas lgicas -presentacin, procesamiento de la aplicacin y gestin de los
datos-deben asociarse con dos computadoras el cliente y el servidor. Aqu puede
haber problemas con la escalabilidad y rendimiento si se elige el modelo de cliente
ligero, o problemas con la gestin del sistema si se usa el modelo de cliente rico.
Para evitar estos problemas, una aproximacin alternativa es usar una
arquitectura cliente-servidor de tres capas (Figura 12.7). En esta arquitectura, la
presentacin, el procesamiento de la aplicacin y la gestin de los datos son
procesos lgicamente separados que se ejecutan sobre procesadores diferentes.
Un sistema bancario por Internet (Figura 12.8) es un ejemplo de una arquitectura
cliente-servidor de tres capas. La base de datos de clientes del banco (usualmente
ubicada sobre una computadora mainframe) proporciona servicios de gestin de
datos; un servidor web proporciona los servicios de aplicacin tales como
facilidades para transferir efectivo, generar estados de cuenta, pagar facturas, y
as sucesivamente; y la propia computadora del usuario con un navegador de
Internet es el cliente. El sistema es escalable debido a que es relativamente fcil
aadir nuevos servidores web a medida que el nmero de clientes crece.
El uso de una arquitectura de tres capas en este caso permite optimizar la
transferencia de informacin entre el servidor web y el servidor de la base de
datos. Las comunicaciones entre estos sistemas pueden usar protocolos de
comunicacin de bajo nivel muy rpidos.
Para manejar la recuperacin de informacin de la base de datos se utiliza un
middleware eficiente que soporte consultas a la base de datos en SQL (Structured
Query Language).

En algunos casos resulta adecuado extender el modelo cliente-servidor de tres


capas a una variante multicapa en la que se aaden al sistema servidores
adicionales. Los sistemas multicapa pueden usarse cuando las aplicaciones
necesitan acceder y usar datos de diferentes bases de datos. En este caso, un
servidor de integracin se ubica entre el servidor de aplicaciones y los servidores
de la base de datos. El servidor de integracin recoge los datos distribuidos y los
presenta a la aplicacin como si se obtuviesen desde una nica base de datos.
Las arquitecturas cliente-servidor de tres capas y las variantes multicapa que
distribuyen el procesamiento de la aplicacin entre varios servidores son
intrnsecamente ms escalables que las arquitecturas de dos capas. El trfico de
la red se reduce al contrario que con las arquitecturas de dos capas de cliente

ligero. El procesamiento de la aplicacin es la parte ms voltil del sistema, y


puede ser fcilmente actualizada debido a que est localizada centralmente.
El procesamiento, en algunos casos, puede distribuirse entre la lgica de la
aplicacin y los servidores de gestin de datos, en cuyo caso permite una
respuesta ms rpida a las peticiones de los clientes.
Los diseadores de las arquitecturas cliente-servidor deben tener en cuenta una
serie de factores cuando eligen la arquitectura ms adecuada. En la Figura 12.9
se muestran las situaciones en las cuales las arquitecturas cliente-servidor
analizadas aqu son probablemente las ms adecuadas.
Bibliografia:
Ingenieria.de.Software.-.Ian.Sommerville.7ma.Edicion

S-ar putea să vă placă și