Está en la página 1de 10

Estilos

Arquitectónicos
(1660) Laboratorio de Programación
Escuela de Sistemas e Informática - UART
¿Qué es un Estilo Arquitectónico?
Es una descripción de elementos y tipos de relaciones entre los elementos
junto con un conjunto de restricciones acerca de cómo pueden ser utilizados.

Es un patrón de diseño arquitectural con tres partes: elementos, relaciones y


restricciones de uso. Además, ayuda a definir las características y
comportamientos básicos de la aplicación.
El Arquitecto de Software
selecciona el Estilo
Arquitectónico
Un arquitecto de software debe conocer las características, fortalezas y debilidades de cada
patrón de arquitectura para seleccionar el que satisfaga sus necesidades y objetivos
comerciales.
Con esta información, el arquitecto de software puede justificar sus decisiones
arquitecturales cuando elige un patrón de arquitectura.
Arquitectura N-Capas

El estilo arquitectónico en capas o “layered” se


enfoca en dividir las funcionalidades en diferentes
capas lógicas o layers que interactúan verticalmente.
Funciona intercambiando mensajes entre layers que
tienen definida claramente su función.
Elementos: capas lógicas (layers)
Cada layer envía o recibe mensajes del layer Relaciones: las capas se intercambian mensajes
superior o inferior. Restricciones:
• Las capas interactúan verticalmente.
Layer: Es una forma de organizar el código fuente. • Cada capa solo envía y recibe mensajes de la
Tiene que ver con la modularidad, packages, capa superior o inferior.
namespaces. • Las capas son independientes
Arquitectura N-Capas

Este estilo es el estándar para la mayoría de las


aplicaciones Java EE, y ampliamente conocidos por
los arquitectos, diseñadores y desarrolladores.
Es una de las más populares.
Beneficia:
• Mantenibilidad
¿Cuándo usar este estilo arquitectónico? • Testeabilidad
• Modificabilidad
Cuando la aplicación deba soportar distintos tipos de
• Reutilización
clientes y distintos dispositivos • Interoperabilidad
• Facilidad de desarrollo
Cuando el diseño de la aplicación es complejo.
Arquitectura N-Tiers

El estilo arquitectónico basado en “tiers” o niveles Arquitectura 3- Tier


o capas físicas se enfoca en separar las
funcionalidades en componentes que se ejecutan
en diferentes tiers. Elementos: niveles (tiers)
Relaciones: las capas se comunicación mediante un
Cada tier puede ser distribuido físicamente en un protocolo de comunicación (IPC, Inter-Process
proceso, computadora o servidor separado Comunication).
físicamente de los otros. Restricciones:
• Cada nivel o tier puede comunicarse con otro
Tier: Es el lugar donde se ejecuta o despliega el directamente o usar un mecanismo
código. Está relacionado con el deployment de la asincrónico.
solución.
2-Tier

Arquitectura N-Tiers
3-Tier
Arquitectura 1-Tier: Toda la aplicación se ejecuta en el mismo
proceso sin ningún tipo de comunicación IPC.
Arquitectura 2-Tier: Se comprende de dos capas físicas que se
ejecutan en entornos diferentes y se comunican entre sí, tal
como, la arquitectura cliente/servidor.
Arquitectura 3-Tier: Se comprende de tres capas físicas que se
ejecutan, por ejemplo, Cliente o Browser, App Web y Servidor
de Base de Datos en tres lugares distintos. Beneficia a:
• Seguridad
Arquitectura N-Tier: Dependiendo del sistema a analizar • Escalabilidad
podríamos hablar, por ejemplo, una solución en donde el Mobile Afecta a:
• Rendimiento
o Browser, Sensores, API Gateway, Servidor de aplicaciones y
• Disponibilidad
Repositorios pueden analizarse como 4 tiers o más. • Mantenibilidad
¿Cuándo utilizar?
• Aplicaciones web simples
Arquitectura Monolítica

El estilo de arquitectura monolítica se


enfoca en construir aplicaciones como
una sola unidad.
Esta unidad puede tener una arquitectura
n-capas, n-tiers, cliente/servidor, etc.
• Ventajas:
Todas las funcionalidades se ejecutan en o Son fáciles para realizar el despliegue
o El desarrollo es simple
una PC
• Desventajas:
o El despliegue afecta la disponibilidad
o Genera dependencia entre funcionalidades
Arquitectura de
Microservicios

El estilo arquitectónico de microservicios


es una alternativa para desarrollar una
aplicación individual como una suite de
pequeños servicios, cada uno ejecutándose
en su propio proceso y comunicándose
utilizando mecanismos lightweight. • Ventajas:
o Los cambios en funcionalidades pueden ser fácilmente desplegados
Estos servicios son construidos en base a o Mejora el aislamiento de las fallas

funcionalidades del negocio y son • Desventajas:


o Complejidad adicional en los sistemas distribuidos
desplegables en forma independiente. o Complejidad operativa
Ver más estilos arquitectónicos
• Richards, M. (2015) Software Architecture Patterns. O’Reilly Media Inc.

Disponible en el aula como Bibliografía Complementaria.

También podría gustarte