Está en la página 1de 5

Bloque 1Bloque 2Bloque 3Bloque 4Referencias

Introducción al modelo cliente servidor

1. Cliente - Servidor

En la presente lectura, presentaremos la arquitectura cliente – servidor, ya que el


desarrollo web se basa, principalmente, en este modelo de aplicación.
Antes de mediados de los años noventa, las aplicaciones generalmente eran monolíticas;
para que se entienda: un único y gran archivo ejecutable que hacía todo el procesamiento
de la lógica de negocio y a su vez brinda la interfaz de usuario (mucho más rudimentaria
que las actuales). Además muchas veces podía acceder un único usuario a la vez, y luego
con el tiempo se comenzó a distribuir; aunque también de manera precaria ya que se
situaba un único archivo en una carpeta compartida en una red permitiendo la ejecución
desde otras terminales. Poco a poco, se fue migrando a lo que sería luego conocido como
arquitectura cliente – servidor; donde básicamente el servidor era el encargado de proveer
servicios o recursos y los clientes que se comunicaban con éste para poder utilizarlos.
Actualmente podemos decir que consiste en un modelo de aplicación distribuida en el cual
las tareas son repartidas entre los proveedores de recursos o servicios, denominados
servidores, y quienes las demandan, denominados clientes. ¿Cómo funciona? Cuando
navegas en internet realizamos constantemente peticiones a otras computadoras remotas
o servidores que dan respuesta. En estos casos, el cliente solicita vía mensaje un servicio
específico a un servidor (es decir, realiza una petición, comúnmente HTTP). Como
respuesta, el servidor envía uno o varios mensajes y, de esta manera, provee el servicio,
como se puede observar en la siguiente imagen:
Figura 1: Esquema de la arquitectura cliente – servidor 

Fuente: elaboración propia.


Esta separación entre cliente y servidor implica una separación del tipo lógica, ya que el
servidor no se ejecuta indefectiblemente sobre una única computadora, ni es un sólo
aplicativo. Entre los tipos de servidores que puedes encontrar, nombramos a los
servidores web (los que ahondaremos en este curso), de bases de datos, de archivos,
correo electrónico, entre otros. 
La separación entre cliente y servidor implica una separación del tipo lógica, ya que el
servidor no se ejecuta indefectiblemente sobre una única computadora física, si es un solo
aplicativo.
Entonces, por ejemplo, un servidor web “sirve” páginas web, mientras que un servidor de
archivos “sirve” archivos de computadora. Si una computadora es cliente, servidor o
ambas a la vez, se determina por la naturaleza de la aplicación que se ejecuta. Como
veremos más adelante, en una PC de escritorio instalaremos un servidor web para poder
procesar y visualizar páginas web.

2. Características generales

Algunas de las características de esta arquitectura son:

Las tareas del cliente y del servidor poseen distintos requerimientos respecto a los
recursos de cómputo tales como velocidad y uso del procesador, memoria y
capacidad de almacenamiento en disco.

Se entablan relaciones que vinculan procesos diferentes, los cuales pueden ser
ejecutados en la misma máquina o en distintas máquinas distribuidas a lo largo de la
red.

Se establece una notable diferenciación de funciones basada en el concepto de


servicio y que se determina entre clientes y servidores. La relación establecida
puede darse entre uno o varios; en este último caso, un servidor presta servicio a
numerosos clientes, controlando el acceso que estos tienen a los recursos
compartidos.

 No hay otra vinculación posible entre clientes y servidores que no consista en la que
se da a través del intercambio de mensajes entre ambos. Estos mensajes
representan el mecanismo para la petición y entrega de solicitudes de servicio.

El concepto de escalabilidad -tanto horizontal como vertical- es aplicable a cualquier


arquitectura cliente - servidor. La escalabilidad horizontal nos habilita a adicionar
más estaciones de trabajo activas sin que esto implique influir de manera notable en
el rendimiento; en tanto, la escalabilidad vertical permite mejorar las características
del servidor o agregar múltiples servidores.

La plataforma de hardware y el sistema operativo del cliente y del servidor o


servidores no son los mismos en todas las ocasiones; sino que pueden coexistir con
sistemas operativos como Windows, Linux, Solaris y comunicarse de forma
transparente para el cliente. En este sentido, el hecho de que pueda vincular clientes
y servidores independientemente de sus plataformas, representa una de sus
grandes ventajas, las cuales detallaremos de manera precisa a continuación.

3. Principales ventajas

Entre las principales ventajas de esta arquitectura podemos nombrar (Renaud, 1993):

La posibilidad de utilizar plataformas de hardware cada vez más diversas y cuyo


costo es menor. Este es, probablemente, uno de los mayores beneficios que
presenta, ya que permite utilizar máquinas realmente baratas en comparación con
las que se necesitan en una solución centralizada, basada en sistemas grandes
como puede ser una arquitectura del tipo mainframe. Por otro lado, también permite
utilizar componentes de distintos fabricantes, tanto de hardware como de software
(sin depender exclusivamente de ninguno), lo cual reduce los costos de manera
significativa y flexibiliza la implantación y actualización de soluciones, al igual que la
escalabilidad de la solución.

Facilita la integración entre distintas plataformas, por ejemplo, sin necesidad de que
todos los clientes dispongan del mismo sistema operativo.

El mantenimiento es más veloz y también lo es el desarrollo de aplicaciones, ya que


se pueden utilizar las herramientas existentes; por ejemplo, los servidores de SQL o
herramientas de niveles inferiores (sockets o el RPC).

La estructura modular y no dependiente de fabricantes permite la integración de las


nuevas tecnologías y el crecimiento de la infraestructura, contribuyendo, de esta
manera, a la escalabilidad de las soluciones brindadas.

Contribuye, además, a una computación distribuida, brindando la posibilidad de


integrar la información relevante de diferentes puntos locales a escala global.

4. Algunas desventajas

Entre las principales desventajas de la arquitectura cliente – servidor podemos nombrar


las siguientes:

El mantenimiento de los sistemas es, en cierto sentido, más complicado, ya que


representa la interacción de diferentes partes de hardware y de software, distribuidas
por distintos fabricantes, lo cual puede llegar a dificultar el diagnóstico de problemas
y la capacitación del personal a cargo. 

Es relevante que los clientes y los servidores empleen el mismo mecanismo (sockets
o RPC). Esto significa que se debe contar con mecanismos generales presentes en
distintas plataformas. Probablemente, el mayor desafío sea la sincronización entre
sistemas a nivel de configuración inicial.

La seguridad entre las comunicaciones cliente – servidor es un punto a considerar,


ya que, si bien no se puede nombrar una desventaja en sí misma, sí representa un
ítem a resolver y garantizar que, quizás, en arquitecturas centralizadas se maneja de
manera más sencilla.

El nivel de performance es otro aspecto que se debe tener en cuenta en el esquema


cliente - servidor. La congestión en la red o la dificultad en el tráfico de datos, por
citar algunos ejemplos, pueden representarnos grandes problemas en este tipo de
arquitectura.

Por último, lograr la consistencia en los datos entre diferentes servidores de base de
datos también es una tarea que exige un esfuerzo extra a la hora de la configuración
inicial y el mantenimiento periódico.

Referencias
Gauchat, J. D. (2013). El gran libro de HTML5 CSS3 y Javascript. Barcelona: Marcombo.
Vara, M. J. M., López, S. M., & Verde, M. J. (2014). Desarrollo web en entorno servidor
(pp. 13-20). Madrid, ES: RA-MA Editorial. 
Renaud, P. E. (1993). Introduction to Client/Server Systems: A Practical Guide for Systems
Professionals. New York, United States:John Wiley & Sons.

También podría gustarte