Estilos Arquitectonicos Consulta

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

UNIVERSIDAD COOPERATIVA DE

COLOMBIA

Arquitectura y desarrollo de software

Juan Sebastian Barbosa Ramírez


536830

Geidy Katherine Hernández Carrillo

INGENIERIA DE SISTEMAS
IBAGUE-TOLIMA
2024
ESTILOS ARQUITECTONICOS DE SOFTWARE

Los estilos arquitectónicos de software son patrones o enfoques recurrentes para estructurar
sistemas de software que permiten resolver problemas comunes de diseño y mejorar la
organización y escalabilidad de una aplicación. Al aplicar estos estilos, los arquitectos de software
logran construir sistemas más mantenibles, reutilizables y robustos.

A continuación, algunos de los estilos más conocidos:

1. Arquitectura en capas (Layered Architecture)

Este es uno de los estilos más comunes y consiste en dividir el software en capas separadas con
responsabilidades específicas. Cada capa se comunica únicamente con la capa inmediatamente
inferior. Las capas típicas incluyen:

 Capa de presentación: Interfaz de usuario.

 Capa de lógica de negocio: Reglas y procesos del negocio.

 Capa de acceso a datos: Comunicación con la base de datos.

Este estilo es útil para sistemas grandes y facilita la separación de preocupaciones.

2. Arquitectura de microservicios

Es un estilo moderno donde la aplicación se divide en pequeños servicios independientes, cada


uno con su propia responsabilidad y que pueden ser desarrollados y desplegados de manera
autónoma. Cada microservicio se comunica con los demás a través de APIs (generalmente REST o
gRPC). Algunas de sus ventajas son:

 Escalabilidad independiente: Se puede escalar cada servicio por separado.

 Mantenimiento más sencillo: Los cambios en un servicio no afectan a los demás.

Sin embargo, es más complejo de gestionar debido a la necesidad de coordinar múltiples servicios.

3. Arquitectura de cliente-servidor

Este estilo se basa en la interacción entre un servidor, que proporciona servicios, y uno o varios
clientes, que los consumen. Es el modelo típico de muchas aplicaciones web y móviles. El cliente
realiza peticiones y el servidor responde, procesando la lógica o accediendo a bases de datos.

4. Arquitectura orientada a servicios (SOA - Service-Oriented Architecture)

Similar a los microservicios, pero en una escala mayor. SOA está orientada a la creación de sistemas
donde los componentes se comunican mediante servicios y contratos bien definidos. La diferencia
con los microservicios es que SOA suele estar más centralizada, mientras que los microservicios
están más descentralizados.

5. Arquitectura basada en eventos


En este estilo, los componentes del sistema se comunican a través de eventos. Los emisores
generan eventos y los publican, mientras que los consumidores los escuchan y actúan en función
de estos eventos. Es adecuado para sistemas que requieren alta reactividad y procesamiento
asincrónico, como los sistemas de mensajería.

6. Arquitectura de monolito

Un enfoque tradicional donde toda la aplicación se despliega y ejecuta como una única unidad. Es
más sencillo de desarrollar y desplegar inicialmente, pero presenta problemas de escalabilidad y
mantenimiento a medida que crece la aplicación.

7. Arquitectura de pipes y filtros

Este estilo se organiza en una serie de componentes de procesamiento, llamados filtros, que se
conectan a través de tuberías (pipes). Los datos fluyen a través de estos filtros, que los procesan y
luego los envían a la siguiente etapa. Se usa frecuentemente en sistemas de procesamiento de
datos, como compiladores.

8. Arquitectura de repositorio o almacenamiento compartido

En este enfoque, todos los componentes del sistema acceden a un repositorio común para
almacenar y recuperar datos. Es habitual en sistemas que dependen fuertemente de una base de
datos centralizada, donde múltiples módulos o servicios acceden a una fuente común de datos.

9. Arquitectura de N-capas

Es una extensión de la arquitectura en capas. Divide la aplicación en más de tres capas, agregando
a menudo una capa adicional de lógica entre la interfaz de usuario y la base de datos. Es útil para
sistemas más grandes y complejos que necesitan mayor modularidad.

10. Arquitectura hexagonal (Ports and Adapters)

Este estilo busca desacoplar el núcleo de la aplicación de sus interfaces externas. La idea es que el
sistema se comunica con el exterior a través de "puertos" (interfaces) y "adaptadores"
(implementaciones concretas de esas interfaces). Así, el núcleo es independiente de detalles
externos como bases de datos o APIs.

Cada estilo tiene sus propias ventajas y desventajas, y la elección de uno u otro depende del tipo
de aplicación que se esté desarrollando, los requisitos de escalabilidad, mantenibilidad y la
estructura del equipo de desarrollo.

También podría gustarte