10 - Arquitectura de sistemas Flashcards
¿Que es la arquitectura de un sistema?
La arquitectura de un sistema es el framework que vincula las relaciones e interacciones que se dan dentro de los distintos componentes de una aplicacion.
Las aplicaciones web se basan en la arquitectura cliente/servidor. Por un lado esta el cliente (navegador) y por otro el servidor (servidor web).
La arquitectura de aplicaciones web define las interacciones entre las aplicaciones, los sistemas de middleware y la base de datos para garantizar que varias aplicaciones puedan funcionar juntas.
¿Que son las aplicaciones de una sola página?
(SPA - single page applications)
Son aplicaciones que ofrecen una mayor experiencia de usuario, permitiendo que los usuarios tengan una interaccion más dinámica.
¿Como funciona la arquitectura de microservicios?
El framework de microservice architecture permite implementar aplicaciones mas rápido y con mayor eficiencia.
¿Que es la arquitectura sin servidor?
Las aplicaciones se ejecutan sin una correlación con las tareas relacionadas con la infraestructura.
¿Cuales son los componentes de una arquitectura web?
(1) Comoponentes de la aplicacion de intefaz de usuario
Tienen que ver con la visualizacion y/o experiencia, en lugar del desarrollo: Paneles de visualizacion, ajustes de configuracion, notificaciones, registros, etc.
(2) Componentes estructurales
Tienen que ver con la funcionalidad de la aplicacion web. El navegador web o cliente, el servidor de aplicaciones web, el servidor de base de datos.
Mencionar caracteristicas que hacen a una buena arquitectura.
- Resolver problemas de manera consistente y uniforme
- Ser lo mas simple posible
- Admitir los último standares que incluyen pruebas A/B y análisis
- Ofrecer tiempos de respuesta rápidos
- Utilizar estandares de seguridad para reducir posibilidades de penetraciones maliciosas
- Que no se caiga
- Poder auto recuperarse
- No tener un solo punto de falla
- Sea escalable
- Permitir creacion de datos conocidos
- Errores registrados de una manera facil de usar
- Implementaciones automatizadas
¿Para que se usa el patrón de diseño Singleton?
- Permite que una clase tenga una sola instancia y utiliza una variable global para almacenar esa instancia.
- Evitar que varias instancias esten activas al mismo tiempo.
- Ejemplo: el log. con singleton me aseguro de tener un solo objeto logger.
¿Para que se usa el patrón de diseño Strategy?
Se usa cuando se quiere llevar a cabo una accion pero de distinas formas. Lo que se hace es desacomplar el método (la estrategia), creando una intefaz de donde van heredar las distitnas estrategias.
- Por ejemplo, si se tiene un carrito de compras que permite pagos con tarjetas de crédito. Para agregar otros métodos de pagos, con el patron strategy, se puede desacomplar los metodos de pago, lo que significa que se pueden agregar o actualizar estrategias sin cambiar el codigo en el carrito.
¿Para que se usa el patrón de diseño Observer?
El patron se usa cuando se quiere representar un problema donde hay un observado y observadores.
El observado va notificar a un grupo de observadores sobre algun cambio.
El patron representa la relacion uno a muchos.
Se puede usar para enviar notificaciones de usuarios, actualizaciones, filtros y manejo de suscriptores
¿Para que se usa el patrón de diseño Decorator?
Se usa cuando se quiere agregar metodos o propiedades a ciertas instancias de una clase.
Ej, si se quiere agregar una nueva propiedad que contenga el precio de un objeto.
¿Para que se usa el patrón de diseño MVC?
- Se usa para desacoplar las vistas (frontend) del modelo, se agregar una clase controlador en el medio.
- El controlador tiene una referencia a la vista y otra al modelo
- El modelo gestiona comportamientos y datos fundamentales de la aplicacion
-La vista proporciona el elemento de interfaz de usuario.
Mencionar distintos patrones de arquitectura
Patron Layered: dividir el sistema es distintos niveles de abstraccion.
Cliente Servidor
Master Slave: el maestro distribuye el trabajo entre los esclavos. ej. en la replicacion de base de datos
Pipe-Filter: estructuras que producen y procesan un flujo de datos. Ej: compiladores, aplican filtros que producen analisis lexico, semantico y producen codigo