La arquitectura en tres capas
Objetivo:
Compatibilizar aplicaciones web, aplicaciones cliente / servidor y aplicaciones de sobremesa, permitiendo la reutilización del codigo
- Separar las responsabilidades en distintos
niveles
- Permite aislar los cambios en tecnologías a ciertas capas para reducir el impacto en el sistema total.
- Aumentar la reutilización del código
- Cada capa no tiene dependencia con otra, por lo que es más fácil que se pueden reutilizar
- Aumentar la portabilidad al crear clases con
alta cohesión
- Las clases realizan trabajos especializados y se relacionan con interfaces perfectamente definidas
- Mejorar el rendimiento.
- Distribuir las capas entre múltiples sistemas (físicos) puede incrementar la escalabilidad, la tolerancia a fallos y el rendimiento.
- Aumentar la independencia del hardware
Cuando hablamos de estructura en capas, habitualmente, planteamos tres capas:
- Persistencia
- Responsable del acceso a la base de datos para la obtención o grabación de toda la información
- Lógica de negocios
- gestionan la lógica empresarial de la aplicación y pueden acceder a los servicios del tercer nivel. La capa de la lógica de aplicación es donde se produce la mayor parte del trabajo de los procesos.
- Interfaz de usuario
- permiten al usuario interactuar con los procesos del segundo nivel de forma segura
Los tres niveles deben comunicarse entre ellos. Los protocolos abiertos estándar y las API expuestas simplifican esta comunicación. Puede escribir componentes de cliente en cualquier lenguaje de programación, como Java o C++. Estos clientes se ejecutan en cualquier sistema operativo, comunicándose con la capa de la lógica de la aplicación. Las bases de datos del tercer nivel pueden tener cualquier diseño, si la capa de la aplicación pueda consultarlas y manipularlas. La clave de esta arquitectura es la capa de la lógica de aplicación.
Esta estructura permite p.ej: la reutilización de los controladores, en cualquier entorno:
La ventaja que aporta esta forma de programar es la independencia de las capas; esto significa que cada capa utilizar la tecnología que mejor se adapte al entorno.
Frente a cambios de estructuras…
- En web, la capa presentación se puede desarrollar con HTML, Javascript,…
- En cliente-servidor, podemos utilizar Visual Basic, Java, o cualquier tecnología soportada por el cliente
- En sobremesa, volveríamos a utilizar la tecnología soportada
Frente a cambios de Base de datos
- Cambiamos la capa de acceso a datos
Cuando se requiere alta disponibilidad o redundancia, podemos hacer que cada capa corra en cualquier número de máquinas distintas
Por último, no se debe confundir capa con nivel; los niveles es la forma en que se distribuyen las capas. Esto es, si todas la capas están en la misma máquina, la aplicación tendrá 1 nivel
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.