Cliente-servidor
De Wikipedia, la enciclopedia libre
La arquitectura cliente-servidor llamado modelo cliente-servidor o servidor-cliente es una forma de dividir y especializar programas y equipos de cómputo a fin de que la tarea que cada uno de ellos realiza se efectúe con la mayor eficiencia, y permita simplificarlas.
En esta arquitectura la capacidad de proceso está repartida entre el servidor y los clientes.
En la funcionalidad de un programa distribuido se pueden distinguir 3 capas o niveles:
- Manejador de Base de Datos (Nivel de almacenamiento),
- Procesador de aplicaciones o reglas del negocio (Nivel lógico) y
- Interfaz del usuario (Nivel de presentación)
En una arquitectura monolítica no hay distribución; los tres niveles tienen lugar en el mismo equipo.
En un comienzo, los mainframes concentraban la funcionalidad de almacenamiento (#1) y lógica (#2) y a ellos se conectaban terminales tontas, posiblemente en sitios remotos.
En el modelo cliente-servidor, en cambio, el trabajo se reparte entre dos ordenadores. De acuerdo con la distribución de la lógica de la aplicación hay dos posibilidades:
- Cliente liviano (o cliente fino): si el cliente solo se hace cargo de la presentación.
- Cliente pesado (o cliente grueso): si el cliente asume también la lógica del negocio.
En la actualidad se suele hablar de arquitectura de tres niveles, donde la capa de almacenamiento y la de aplicación se ubican en (al menos) dos servidores diferentes, conocidos como servidores de datos y servidores de aplicaciones.
Ventajas de la arquitectura cliente-servidor
- El servidor no necesita tanta potencia de procesamiento, parte del proceso se reparte con los clientes.
- Se reduce el tráfico de red considerablemente. Idealmente, el cliente se conecta al servidor cuando es estrictamente necesario, obtiene los datos que necesita y cierra la conexión dejando la red libre para otra conexión.