Arquitectura de 3 capas¶
Hay que distinguir entre capas físicas (tier) y capas lógicas (layer).
Tier¶
Capa física de una arquitectura. Supone un nuevo elemento hardware separado físicamente. Las capas físicas más alejadas del cliente están más protegidas, tanto por firewalls como por redes privadas virtuales (VPN).
Ejemplo de arquitectura en tres capas físicas (3 tier):
- Servidor web
- Servidor de aplicaciones
- Servidor de base de datos
Cluster en tiers
No confundir las capas con la cantidad de servidores. Actualmente se trabaja con arquitecturas con múltiples servidores en una misma capa física mediante un clúster, para ofrecer tolerancia a errores y escalabilidad horizontal.
Layer¶
En cambio, las capas lógicas (layers) organizan el código respecto a su funcionalidad:
- Presentación. Es la capa donde la aplicación se muestra al usuario. Básicamente es la GUI (Graphical User Interface, Interfaz Gráfica de Usuario). En el caso de una aplicación web sería el código HTML que se carga directamente en el navegador web. En cualquier caso, se ejecuta directamente en el equipo del cliente.
- Negocio / Aplicación / Proceso. Es la capa intermedia donde se lleva a cabo toda la lógica de la aplicación. Siempre se ejecutará en el lado servidor. Esta capa, tras realizar todos los cálculos y/o operaciones sobre los datos, genera el código HTML que será presentado al usuario en la capa siguiente.
- Datos / Persistencia. Es la capa que almacena los datos. Básicamente, en condiciones normales, hace referencia al propio SGBD (Sistema de Gestión de Bases de Datos) que es el encargado de almacenar los datos. Dependiendo de la arquitectura de la aplicación, esta capa y la de negocio se pueden encontrar físicamente en el mismo equipo, aunque también es posible que se tengan que separar por cuestiones de rendimiento. La capa de datos sirve toda la información necesaria a la capa de negocio para llevar a cabo sus operaciones.
Como se observa, cada una de las capas se puede implementar con diferentes lenguajes de programación y/o herramientas.