La arquitectura cliente-servidor es un modelo de aplicación distribuida
en el que las tareas se reparten entre los proveedores de recursos o servicios,
llamados servidores, y los
demandantes, llamados clientes. Un cliente realiza peticiones a
otro programa, el servidor, quien le da
respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre
una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la
capacidad de proceso está repartida entre los clientes y los servidores, aunque
son más importantes las ventajas de tipo organizativo debidas a la
centralización de la gestión de la información y la separación de
responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico,
donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente
un sólo programa. Los tipos específicos de servidores incluyen los servidores web,
los servidores de archivo, los servidores del correo, etc. Mientras que sus
propósitos varían de unos servicios a otros, la arquitectura básica seguirá
siendo la misma.
El remitente de una
solicitud es conocido como cliente. Sus características son:
·
Es quien inicia solicitudes o peticiones, tienen por tanto un papel
activo en la comunicación (dispositivo maestro o amo).
·
Espera y recibe las respuestas del servidor.
·
Por lo general, puede conectarse a varios servidores a la vez.
·
Normalmente interactúa directamente con los usuarios finales mediante
una interfaz gráfica de usuario.
·
Al contratar un servicio de redes, se debe tener en cuenta la velocidad
de conexión que le otorga al cliente y el tipo de cable que utiliza, por ejemplo:
cable de cobre ronda entre 1 ms y 50 ms.
Al receptor
de la solicitud enviada por el cliente se conoce como servidor.
Sus características son:
·
Al iniciarse esperan a que lleguen las solicitudes de los clientes,
desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
·
Tras la recepción de una solicitud, la procesan y luego envían la
respuesta al cliente.
·
Por lo general, aceptan conexiones desde un gran número de clientes (en
ciertos casos el número máximo de peticiones puede estar limitado).
·
No es frecuente que interactúen directamente con los usuarios finales.
VENTAJAS
·
Centralización del control: los accesos, recursos y la integridad de los
datos son controlados por el servidor de forma que un programa cliente defectuoso
o no autorizado no pueda dañar el sistema. Esta centralización también facilita
la tarea de poner al día datos u otros recursos.
·
Escalabilidad: se puede aumentar la capacidad de clientes y servidores por
separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier
momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores).
·
Fácil mantenimiento: al estar distribuidas las funciones y
responsabilidades entre varios ordenadores independientes, es posible
reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que
sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente).
Esta independencia de los cambios también se conoce como encapsulación.
·
Existen tecnologías, suficientemente desarrolladas, diseñadas para el
paradigma de C/S que aseguran la seguridad en las transacciones, la
amigabilidad de la interfaz, y la facilidad de empleo.
DESVENTAJAS
·
La congestión del tráfico ha sido siempre un problema en el paradigma de
C/S. Cuando una gran cantidad de clientes envían peticiones simultáneas al
mismo servidor, puede ser que cause muchos problemas para éste (a mayor número
de clientes, más problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de servidor, cuantos
más nodos hay, mejor es el ancho de banda que
se tiene.
Hola :) me gusta su blog!
ResponderEliminar