Iniciar prueba gratuita
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Searching...
SoBrief
Patrones de arquitectura de software

Patrones de arquitectura de software

por Mark Richards 2015 47 páginas
3.65
498 valoraciones
Amazon Kindle Audible
Prueba el acceso completo por 3 días
¡Desbloquea la escucha y mucho más!
Continuar

Ideas clave

1. Arquitectura en capas: El fundamento

El patrón de arquitectura en capas se adapta estrechamente a las estructuras de comunicación y organizativas tradicionales de TI que se encuentran en la mayoría de las empresas, lo que lo convierte en una opción natural para la mayoría de los esfuerzos de desarrollo de aplicaciones empresariales.

Común y familiar. La arquitectura en capas, también conocida como arquitectura n-tier, es el patrón más común y ampliamente utilizado en aplicaciones Java EE. Organiza los componentes en capas horizontales, cada una con un rol específico, como presentación, negocio, persistencia y base de datos. Esta estructura refleja las estructuras organizativas tradicionales de TI, lo que la convierte en una opción natural para muchas aplicaciones empresariales.

Separación de responsabilidades. Cada capa maneja una lógica específica, lo que fomenta la modularidad y facilita el desarrollo, las pruebas y el mantenimiento de las aplicaciones. Por ejemplo, la capa de presentación se encarga de la lógica de la interfaz de usuario, mientras que la capa de negocio gestiona las reglas de negocio. Esta separación permite definir roles y responsabilidades claros, simplificando el desarrollo y el mantenimiento.

  • Capas de aislamiento: Los cambios en una capa generalmente no afectan a las demás.
  • Capas cerradas: Las solicitudes deben pasar por cada capa de manera secuencial.
  • Capas abiertas: Permiten omitir ciertas capas para mayor eficiencia.

Tendencias monolíticas. Aunque es fácil de implementar, la arquitectura en capas a menudo conduce a aplicaciones monolíticas, que pueden ser difíciles de escalar y desplegar. Esto puede dar lugar a componentes estrechamente acoplados, lo que hace que los cambios sean engorrosos y requieran el despliegue de grandes partes de la aplicación. Este patrón es un buen punto de partida, pero puede no ser adecuado para necesidades complejas y de alta escalabilidad.

2. Arquitectura dirigida por eventos: Agilidad asíncrona

El patrón de arquitectura dirigida por eventos es un patrón de arquitectura asíncrona distribuida muy popular que se utiliza para producir aplicaciones altamente escalables.

Desacoplada y escalable. La arquitectura dirigida por eventos es un patrón distribuido y asíncrono, ideal para aplicaciones altamente escalables. Utiliza componentes de procesamiento de eventos desacoplados y de propósito único que reaccionan a los eventos. Este patrón se presenta en dos topologías principales: mediador y bróker. La topología de mediador utiliza un mediador central para orquestar los eventos, mientras que la topología de bróker encadena los eventos sin un mediador central.

Mediador frente a Bróker. La topología de mediador es adecuada para eventos complejos que requieren orquestación, utilizando colas de eventos, un mediador, canales de eventos y procesadores de eventos. La topología de bróker es mejor para flujos de eventos más simples, distribuyendo el flujo de mensajes a través de los procesadores de eventos mediante un bróker de mensajería.

  • Mediador: Orquestación centralizada, ideal para flujos de trabajo complejos.
  • Bróker: Descentralizado, ideal para cadenas de eventos simples.
  • Asíncrono: Permite un alto rendimiento mediante operaciones paralelas.

Implementación compleja. Implementar una arquitectura dirigida por eventos puede ser complejo debido a su naturaleza distribuida, lo que requiere una consideración cuidadosa de cuestiones como la disponibilidad de procesos remotos y el manejo de errores. También carece de transacciones atómicas entre los procesadores de eventos, lo que exige un diseño minucioso de la granularidad de los eventos. A pesar de la complejidad, ofrece una alta agilidad y escalabilidad.

3. Arquitectura de micronúcleo: Extensibilidad del producto

El patrón de arquitectura de micronúcleo (a veces denominado patrón de arquitectura de complementos o plug-ins) es un patrón natural para implementar aplicaciones basadas en productos.

Núcleo y complementos. La arquitectura de micronúcleo, también conocida como arquitectura de plug-ins, es ideal para aplicaciones basadas en productos. Consta de un sistema central con una funcionalidad mínima y módulos de complementos que añaden características especializadas. Este patrón permite la extensibilidad, la flexibilidad y el aislamiento de las características de la aplicación.

Extensibilidad y aislamiento. El sistema central contiene la lógica de negocio básica, mientras que los módulos de complementos proporcionan código personalizado y características adicionales. Los complementos son independientes, lo que permite añadirlos, eliminarlos y modificarlos fácilmente sin afectar al sistema central.

  • Sistema central: Funcionalidad mínima, lógica de negocio general.
  • Módulos de complementos: Procesamiento especializado, código personalizado.
  • Registro de complementos: Gestiona los complementos disponibles.

Diseño evolutivo. Este patrón admite el diseño evolutivo y el desarrollo incremental, lo que permite añadir características a lo largo del tiempo sin realizar cambios significativos en el sistema central. Es un buen punto de partida para aplicaciones basadas en productos, ya que ofrece control sobre qué usuarios obtienen qué características. Sin embargo, puede ser complejo de implementar debido a la gobernanza de contratos y a las opciones de conectividad de los complementos.

4. Arquitectura de microservicios: Escalabilidad independiente

El patrón de arquitectura de microservicios está ganando terreno rápidamente en la industria como una alternativa viable a las aplicaciones monolíticas y a las arquitecturas orientadas a servicios.

Unidades desplegadas por separado. La arquitectura de microservicios se caracteriza por componentes de servicio desplegados por separado, lo que permite un despliegue más sencillo, una mayor escalabilidad y un alto desacoplamiento. Los componentes de servicio pueden variar en granularidad, desde funciones de propósito único hasta partes independientes de una gran aplicación. Este patrón evolucionó a partir de los problemas de las aplicaciones monolíticas y SOA.

API, aplicación y mensajería. Existen tres topologías principales: basada en API REST, basada en aplicaciones REST y mensajería centralizada. La topología de API utiliza servicios de granularidad fina a los que se accede a través de una API web, mientras que la topología de aplicación utiliza servicios más grandes a los que se accede a través de una aplicación web. La topología de mensajería utiliza un bróker de mensajería para el acceso remoto.

  • API REST: Servicios de granularidad fina, acceso mediante API web.
  • Aplicación REST: Servicios de granularidad gruesa, acceso mediante aplicación web.
  • Mensajería centralizada: Bróker de mensajería para acceso remoto.

Evitar la orquestación. Un desafío clave es determinar la granularidad correcta de los componentes de servicio para evitar la orquestación. La comunicación entre servicios debe minimizarse, y la funcionalidad compartida puede duplicarse entre los servicios. Este patrón ofrece una alta agilidad, escalabilidad y facilidad de prueba, pero puede ser complejo debido a su naturaleza distribuida.

5. Arquitectura basada en el espacio: Escalabilidad extrema

El patrón de arquitectura basada en el espacio está diseñado específicamente para abordar y resolver problemas de escalabilidad y concurrencia.

Grillas de datos en memoria. La arquitectura basada en el espacio, también conocida como arquitectura en la nube, está diseñada para una escalabilidad y concurrencia extremas. Elimina el cuello de botella de la base de datos central mediante el uso de grillas de datos en memoria replicadas. Las unidades de procesamiento se pueden iniciar y apagar dinámicamente en función de la carga de usuarios, proporcionando una escalabilidad variable.

Unidades de procesamiento y middleware. La arquitectura consta de unidades de procesamiento que contienen componentes de aplicación, grillas de datos en memoria y un motor de replicación. El middleware virtualizado gestiona las tareas internas y las comunicaciones, incluyendo la mensajería, los datos, las grillas de procesamiento y un gestor de despliegue.

  • Unidad de procesamiento: Componentes de aplicación, grilla de datos en memoria.
  • Middleware virtualizado: Gestiona las solicitudes, la replicación de datos y el despliegue.
  • Grilla de mensajería: Gestiona las solicitudes de entrada y la información de la sesión.

Escalabilidad y concurrencia. La grilla de datos replica los datos entre las unidades de procesamiento, asegurando que cada unidad tenga los mismos datos. La grilla de mensajería reenvía las solicitudes a las unidades de procesamiento disponibles. Este patrón es ideal para aplicaciones de gran volumen con cargas de usuarios variables, proporcionando una escalabilidad casi infinita al eliminar el cuello de botella de la base de datos.

6. Elegir el patrón adecuado: El contexto es clave

Conocer las características, fortalezas y debilidades de cada patrón de arquitectura es necesario para elegir el que mejor se adapte a las necesidades y objetivos específicos de su negocio.

No existe una solución única. No existe un único patrón de arquitectura que sea el mejor; la elección correcta depende de las necesidades y objetivos específicos de la aplicación. Cada patrón tiene sus fortalezas y debilidades, y comprenderlas es crucial para tomar decisiones informadas. Considere factores como la escalabilidad, la agilidad, el rendimiento y la facilidad de desarrollo.

Factores contextuales. La arquitectura en capas es un buen punto de partida, pero puede no ser adecuada para necesidades de alta escalabilidad. La arquitectura dirigida por eventos es ideal para aplicaciones asíncronas y escalables. La arquitectura de micronúcleo es la mejor para aplicaciones basadas en productos. La arquitectura de microservicios es adecuada para la escalabilidad independiente, y la arquitectura basada en el espacio es para una escalabilidad extrema.

  • En capas: Buen punto de partida, pero puede volverse monolítica.
  • Dirigida por eventos: Asíncrona, escalable, compleja.
  • Micronúcleo: Basada en productos, extensible, compleja.
  • Microservicios: Escalabilidad independiente, distribuida.
  • Basada en el espacio: Escalabilidad extrema, datos en memoria.

Justificar las decisiones. Como arquitecto, debe justificar sus decisiones de arquitectura, especialmente al elegir un patrón específico. El objetivo es seleccionar el patrón que mejor se alinee con sus necesidades y objetivos de negocio, considerando las ventajas y desventajas de cada opción. Comprender las características de cada patrón es esencial para tomar la decisión correcta.

7. Antipatrones de arquitectura: Errores que se deben evitar

Las aplicaciones que carecen de una arquitectura formal suelen estar estrechamente acopladas, son frágiles, difíciles de cambiar y carecen de una visión o dirección clara.

Gran bola de lodo. El antipatrón de la "gran bola de lodo" ocurre cuando las aplicaciones carecen de una arquitectura formal, lo que resulta en un código fuente desorganizado con roles y responsabilidades poco claros. Esto conduce a aplicaciones estrechamente acopladas y frágiles que son difíciles de cambiar y mantener.

Sumidero de arquitectura. El antipatrón del "sumidero de arquitectura" ocurre cuando las solicitudes fluyen a través de múltiples capas con poca o ninguna lógica realizada en cada capa. Esto resulta en un procesamiento ineficiente y puede indicar que la arquitectura en capas no se está utilizando de manera efectiva.

  • Gran bola de lodo: Falta de arquitectura formal, código desorganizado.
  • Sumidero de arquitectura: Procesamiento de paso directo, capas ineficientes.
  • Estrechamente acoplado: Interdependencias entre componentes, difícil de cambiar.

Consecuencias de una mala arquitectura. Las malas elecciones de arquitectura conducen a aplicaciones que son difíciles de escalar, probar y desplegar. Es importante comprender las ventajas y desventajas de cada patrón de arquitectura y elegir el que mejor se adapte a las necesidades específicas de la aplicación. Evitar estos antipatrones es crucial para construir sistemas robustos y fáciles de mantener.

Characters

Plot Devices

Analysis

Última actualización:

Report Issue

Resumen de reseñas

3.65 de 5
Promedio de 498 valoraciones de Goodreads y Amazon.

Patrones de arquitectura de software recibe críticas mayoritariamente positivas, con una calificación promedio de 3.64/5. Los lectores aprecian su concisa descripción general de los patrones de arquitectura más comunes, sus explicaciones claras y sus útiles comparaciones. La brevedad del libro se percibe tanto como una fortaleza como una debilidad, ya que ofrece una introducción rápida pero carece de profundidad. Muchos lo consideran valioso para principiantes y como un repaso para desarrolladores experimentados. Algunos critican los ejemplos desactualizados y ciertos análisis de patrones que resultan controvertidos. En general, se recomienda como un punto de partida para comprender los conceptos de la arquitectura de software.

Your rating:
4.21
137 valoraciones
Want to read the full book?

Sobre el autor

Mark Richards es un autor reconocido por su trabajo en arquitectura de software. Su libro "Software Architecture Patterns" es una guía concisa sobre los patrones arquitectónicos más comunes en el desarrollo de software. Richards ofrece explicaciones claras y comparaciones de diferentes patrones, logrando que conceptos complejos resulten accesibles para los lectores. Su estilo de escritura es elogiado por su brevedad y claridad, lo que lo hace adecuado tanto para principiantes como para desarrolladores experimentados que buscan un repaso rápido. Aunque algunos lectores señalan limitaciones en la profundidad del libro, el enfoque de Richards es, en general, muy bien recibido por ofrecer una base sólida en los principios de la arquitectura de software.

Descargar PDF

To save this Patrones de arquitectura de software summary for later, download the free PDF. You can print it out, or read offline at your convenience.
Download PDF

Descargar EPUB

To read this Patrones de arquitectura de software summary on your e-reader device or app, download the free EPUB. The .epub digital book format is ideal for reading ebooks on phones, tablets, and e-readers.
Download EPUB
Want to read the full book?
Follow
Escuchar
Now playing
Patrones de arquitectura de software
0:00
-0:00
Now playing
Patrones de arquitectura de software
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Hoy: Obtén acceso instantáneo
Escucha resúmenes completos de más de 26.000 libros. ¡Son más de 12.000 horas de audio!
Día 2: Recordatorio de prueba
Te enviaremos una notificación de que tu prueba está por terminar.
Día 3: Tu suscripción comienza
Se te cobrará el Jul 30,
cancela en cualquier momento antes.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel