Estructura Cliente-Servidor (características, componentes, tipos)

La arquitectura cliente/servidor persigue el objetivo de procesar la información de un modo distribuido. De esta forma, los usuarios finales pueden estar dispersos en un área geográfica más o menos extensa (un edificio, una localidad, un país, y acceder a un conjunto común de recursos compartidos.

Además, el acceso ser transparente (el cliente puede desconocer la ubicación física del recurso que pretende utilizar) y, preferiblemente, multiplataforma, es decir, independiente del sistema del software de aplicación e incluso del hardware.

Características de una estructura Cliente-Servidor

Además de la transparencia y la independencia del hardware y del software, una implantación cliente/servidor debe tener las siguientes características:

• Debe utilizar protocolos asimétricos, donde el servidor se limita a escuchar, en espera de que un cliente inicie una solicitud. • El servidor ofrecerá recursos, tanto lógicos como físicos a una cantidad variable y diversa de clientes (por ejemplo, espacio de almacenamiento, bases de datos, impresoras, etc.) • El servidor ofrecerá también una serie de servicios, que serán usados por los clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los detalles de su implementación (por ejemplo, aceptar el requerimiento de un cliente sobre una base de datos o formatear los datos obtenidos antes de transmitirlos al cliente). • Se facilitará la integridad y el mantenimiento tanto de los datos como de los programas debido a que se encuentran centralizados en el servidor o servidores. • Se facilitará la escalabilidad, de manera que sea fácil añadir nuevos clientes a la infraestructura (escalabilidad horizontal) o aumentar la potencia del servidor o servidores, aumentando su número o su capacidad de cálculo (escalabilidad vertical).

Untitled

Componentes Cliente-Servidor: Cliente, Servidor, Middleware

El cliente

Al hablar de forma genérica sobre un cliente, nos referimos a un ordenador, normalmente con prestaciones ajustadas, que requiere los servicios de un equipo servidor. Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un cliente es un proceso que solicita los servicios de otro, normalmente a petición de un usuario.

En entornos cliente/servidor, suele utilizarse el término front-end para referirse a un proceso cliente.

Normalmente, un proceso cliente se encarga de interactuar con el usuario, por lo que estará construido con alguna herramienta que permita implementar interfaces gráficas (o GUI, del inglés graphical user interface).

Además, se encargará de formular las solicitudes al servidor y recibir su respuesta, por lo que deberá encargarse de una parte de la lógica de la aplicación y de realizar algunas validaciones de forma local.

El Middleware

Es la parte del software del sistema que se encarga del transporte de los mensajes entre el cliente y el servidor, por lo que se ejecuta en ambos lados de la estructura.

Por lo tanto, el middleware facilita el desarrollo de aplicaciones, porque resuelve la parte del transporte de mensajes y facilita la interconexión de sistemas heterogéneos sin utilizar tecnologías propietarias.

Podemos estructurar el middleware en tres niveles:

El servidor

Cuando hablamos de una forma genérica, al mencionar a un servidor, nos referimos a un ordenador, normalmente con prestaciones elevadas, que ejecuta servicios para atender las demandas de diferentes clientes.

Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un servidor es un proceso que ofrece el recurso (o recursos) a los clientes que lo solicitan (consultar la definición de cliente más abajo).

Es muy frecuente que, para referirse a un proceso servidor, se utilice el término back-end.

Por último, mencionar que, en algunas ocasiones, un servidor puede actuar, a su vez, como cliente de otro servidor.

Clasificaciones en el modelo cliente-servidor | Tipos de arquitecturas cliente/servidor

Por la carga de los procesos:

Una de las características del modelo cliente/servidor es que permite balancear la potencia de cálculo aplicada hacia el lado servidor o hacia el lado cliente, según convenga.

Si hay muchos clientes y el procesamiento se hace en el servidor, se necesitan servidores más potentes y mayor capacidad de red, pero no clientes potentes.

En cambio, si los clientes son más potentes, procesamiento se hace en el lado del cliente, hacer más trabajo localmente, reduciendo la carga del servidor y el tráfico de red, aunque con mayor coste en los equipos cliente.

image.png

Por las funciones asignadas de las prestaciones:

image.png

Por el servicio ofrecido:

Ventajas e inconvenientes de la arquitectura cliente/servidor

Ventajas: