
1. Un patrón arquitectónico describe cómo se organiza una aplicación, dividiendo su estructura en diferentes componentes o capas que trabajan juntas para cumplir sus funciones. Las más comunes son:
1.1. Cliente-Servidor
1.1.1. Características: Divide la aplicación en dos partes principales: cliente (interfaz de usuario) y servidor (donde se procesan los datos y la lógica). El cliente solicita servicios, y el servidor los proporciona.
1.1.1.1. Ventajas: Centralización de los datos en el servidor (fácil de gestionar). Los clientes no necesitan manejar datos complejos.
1.1.1.1.1. Desventajas: Dependencia del servidor: si falla, todo el sistema puede quedar inutilizable. Puede ser más lento si hay demasiados clientes conectados.
1.2. Arquitectura en Capas
1.2.1. Características: Divide el sistema en capas específicas con funciones claras, como: Presentación (interfaz de usuario). Lógica de negocio (procesos). Acceso a datos (conexión a bases de datos).
1.2.1.1. Ventajas: Facilita el mantenimiento y la escalabilidad. Cada capa puede desarrollarse y actualizarse de forma independiente.
1.2.1.1.1. Desventajas: Puede haber un impacto en el rendimiento (más pasos entre capas). Aumenta la complejidad inicial del diseño.
1.3. Modelo-Vista-Controlador (MVC)
1.3.1. Características: Divide la aplicación en: Modelo: Maneja los datos (base de datos). Vista: Presenta la información al usuario (interfaz). Controlador: Conecta la vista con el modelo (coordina las acciones).
1.3.1.1. Ventajas: Separación de responsabilidades, facilitando el mantenimiento y pruebas. Cambios en la interfaz no afectan los datos, y viceversa.
1.3.1.1.1. Desventajas: Puede ser difícil de implementar para principiantes. Requiere más código para conectar las partes.
1.4. Arquitectura Microservicios
1.4.1. Características: Divide una aplicación grande en pequeños servicios independientes que se comunican entre sí.
1.4.1.1. Ventajas: Escalabilidad: cada microservicio puede ejecutarse y actualizarse de forma independiente. Resiliencia: un fallo en un servicio no afecta al resto.
1.4.1.1.1. Desventajas: Complejo de implementar y gestionar. Mayor carga en la red por la comunicación entre servicios.