Se trata de una forma de comunicación entre dos aplicaciones remotas. Un cliente realiza una petición de un servicio a un servidor, el cual recibe y procesa, enviando de vuelta la respuesta adecuada.
Este modelo de conexión utiliza habitualmente protocolos asimétricos, donde los servidores esperan pasivamente hasta que un cliente inicia la comunicación. Deben tener capacidad para establecer relaciones de uno a muchos clientes.
Algunas de las características de las arquitecturas cliente/servidor:
- Escalabilidad: tanto en horizontal, como en vertical.
- Cualquier máquina puede actuar como servidor o como cliente.
- Transparencia de localización.
- Independencia de hardware y software.
- Mantenimiento sencillo de la información debido a que ésta se encuentra centralizada en el servidor.
El funcionamiento básico de la arquitectura cliente servidor es:
- El cliente inicia la comunicación solicitando un recurso al servidor.
- El servidor recibe la petición del cliente y la acepta o rechaza.
- El servidor procesa la solicitud del cliente si fue aceptada.
- El servidor envía la información solicitada al cliente.
- El cliente recibe la información que solicitó y la procesa para el usuario o servicio.
Existen otras arquitecturas cliente servidor, como por ejemplo:
- Arquitectura de dos niveles: la lógica de la aplicación está integrada con la de presentación o la base de datos.
- Arquitectura de tres niveles: la lógica de la aplicación está separada de la base de datos.
- Arquitectura multinivel: se dividen en más niveles, por ejemplo, la capa de presentación, la capa de la lógica de la aplicación y la capa de la base de datos.
Algunos ejemplos de servidores:
- Servidores web.
- Servidores de correo electrónico.
- Servidores de ficheros.
- Servidores de base de datos.
- Servidores de credenciales y dominios.