Una arquitectura de sistemas en la que, a través de una red de área local (LAN) o una red de área extensa (WAN), una aplicación cliente o componente frontal
(= front end) requiere y recibe servicios de una aplicación servidora o componente posterior
(= back end).
En el front end, las aplicaciones clientes corren en una computadora personal o en una estación de trabajo, capturan datos del usuario, los preparan para el servidor y formulan un requerimiento al mismo. En el back end (una potente microcomputadora, una minicomputadora o aun un mainframe), la aplicación servidora atiende los requerimientos, realiza el procesamiento solicitado y entrega a los clientes la información resultante, la que se exhibe a través de la interfaz de usuario del cliente.
En esta arquitectura, las aplicaciones están distribuidas en las máquinas clientes, mientras que las bases de datos están localizadas, en principio, solamente en el servidor. El servidor centraliza ciertos archivos y recursos compartidos por todos los clientes. Es necesario instalar software especial tanto en la computadora cliente como en la que actúa como servidor. Uno y otro software son complementarios.
La arquitectura cliente/servidor permite la ejecución en el front end de muchas aplicaciones (tales como modificación y consulta de datos, procesamiento de textos, hojas de cálculo, aplicaciones administrativas y comerciales, etc.) que comparten el acceso a los datos del back end. De este modo, el servidor se encarga de la mayor parte del proceso de segundo plano (como el manejo de la base de datos), mientras que el proceso de primer plano, que implica la comunicación con el usuario, es realizado por programas distribuidos en las estaciones de trabajo clientes.
La arquitectura cliente/servidor provee ventajas vinculadas con la integridad de los datos, el control concurrente y el incremento de performance. Asimismo, permite obtener, desde un conjunto de computadoras clientes de bajo costo, los servicios y la información de la máquina servidora, que tiene más elevadas capacidades de almacenamiento y procesamiento. Por otra parte, el servidor provee la comunicación de datos tanto externa como interna: transmisión de datos, correo electrónico, fax, acceso a Internet, etc.
El entorno cliente/servidor, por lo tanto, permite que todas las áreas de una empresa estén conectadas al servidor para obtener datos y servicios, y estén, simultáneamente, conectadas entre sí formando una red.
El modelo cliente/servidor, por el cual los componentes frontal y posterior comparten el procesamiento, contrasta con el modelo terminal/anfitrión, en el que se accede a una computadora principal desde terminales “tontas” que sólo se utilizan para ingresar y exhibir datos y, por lo tanto, no realizan ningún procesamiento, ya que éste se halla totalmente a cargo del anfitrión.
La arquitectura cliente/servidor más evolucionada es la llamada arquitectura de tres capas
(= three-tier architecture), por la cual se separan tres procesos bien definidos:
- La interfaz de usuario, que corre en la computadora cliente.
- Una capa intermedia, que corresponde a los programas de aplicación y que corre en un servidor específico, llamado comúnmente servidor de aplicaciones (= application server),
- Un sistema de administración de base de datos (= DBMS = DataBase Management System), que almacena los datos requeridos por la capa intermedia y que corre en un servidor separado, habitualmente llamado servidor de base de datos (= database server).
La arquitectura de tres capas es más eficiente que la de dos capas
(= two-tier architecture), en la que existen la capa de interfaz de usuario, en el cliente, y la capa de base de datos, en el servidor, corriéndose la aplicación bien en el cliente o bien en el servidor. La alternativa de tres capas permite modificar o sustituir una capa sin afectar las restantes, así como administrar de mejor modo el balance de cargas.
Muchos de los servicios de Internet utilizan el modelo cliente/servidor. Así, por ejemplo, un cliente Web puede solicitar a un servidor Web que encuentre un sitio, en cuyo caso el servidor localiza el sitio o informa que no es posible hallarlo. En esta arquitectura de servicios, hay tres componentes básicos: el programa cliente, que el usuario tiene instalado en su computadora personal; el programa servidor, que se ejecuta en una computadora remota y atiende la solicitud del programa cliente; y el protocolo mediante el cual se comunican ambos programas.
Ver *cliente*, *servidor*, *anfitrión*, *front end*, *back end*, *background* y *protocolo*.