Sigue siendo extremadamente relevante!
Solo por claridad, y esto puede ser algo controvertido para otros EA y arquitectos de aplicaciones, pero los patrones dentro de PoEAA también son relevantes en más roles de arquitectura de soluciones y arquitectura de negocios (lo sé, ¿WTF, verdad?).
El problema que tiene PoEAA es que la gran mayoría de los arquitectos de aplicaciones no tocaron este libro. Muy pocos de sus patrones lo han convertido en un uso generalizado (aunque plataformas como FuseESB / ServiceMix hacen prácticamente todos ellos: Oracle Fusion, TibcoAE, NeuronESB y algunos otros, no implementan ni la mitad de ellos. de otra manera y podemos dejar de hablar sobre ese mestizo BizTalk por completo.
Algunos patrones se usan en exceso de manera desproporcionada (como Message Bus, Message Queue, Sync-Async, Message Box, Brokers, Proxies, split-aggregator, CDM, etc.) especialmente por proveedores que compilan productos que cubren uno o dos de estos (como Enterprise Buses de servicio: aunque los ESB son útiles, no siempre son la mejor herramienta para el trabajo, dependiendo del nivel de integración requerido).
Esto deja a la gente en una posición realmente extraña donde el resto del libro también se pierde para ellos, ya que, como muchos de los libros de Fowler, también introduce a la gente a algunos de los pensamientos detrás de los patrones, que es clave aquí, y hay un dicho Yo uso mucho
“El software no resolverá problemas en tu pensamiento / cabeza”
¿Qué quiero decir con eso? Sencillo. Piensa mal (o no pienses en absoluto) y la plataforma que construyas será basura. Lo más probable es que sean subóptimos y contengan antipatrones importantes, lo que le causará problemas en el futuro. Obtenga un antipatrón arquitectónico y tendrá grandes problemas.
Aquí hay un ejemplo …
ESB

Este es un caso de uso que veo a menudo. Empresas que toman decisiones sobre servicios de infraestructura, específicamente Buses de servicios empresariales (ESB) demasiado pronto.
Piden a los desarrolladores y al departamento de TI que creen servicios para conectarse al ESB desde el día 1, sin siquiera saber si el ESB es:
- Necesario y cuál se adaptaría mejor a la empresa (¡nunca compre a vendedores!)
- Suficiente para implementar la necesidad comercial: tenga en cuenta que este es un problema detallado de mapeo de soluciones. A veces no tienes ese conocimiento por adelantado.
- Va a posicionarse en un contexto apropiado.
Tomando el diagrama, imagine una situación en la que se compra un ESB y se dicta un mandato para integrarlo, muchos de los cuales requieren varios millones en licencias, consultoría, desarrollo e integración. En el desarrollo de la izquierda, el servicio está vinculado al ESB, lo que significa que la empresa debe emplear habilidades de ESB, habilidades de arquitectura de datos (para el modelo canónico), configuración y enrutamiento, así como habilidades de desarrollo de software en el servicio de consumo o publicación. información del contrato. Una amplia base de habilidades y todo cuesta.
Además, mirando el número de partes móviles en el primer contexto. Hay 10 partes móviles dentro del proceso que transforman las solicitudes de servicio en respuestas y viceversa (nota, no hay colas de mensajes aquí). Esto está en marcado contraste con el diseño de la derecha que hace lo mismo y lo hace con solo dos partes móviles. Más cosas pueden salir mal en el lado izquierdo sobre el derecho. La probabilidad de que todos trabajen dada la misma pila de tecnología es menor. No puede mejorar la probabilidad de tiempo de actividad agregando algo en serie. Eso es imposible.
También hay un punto de cruce cuando un ESB se convierte en una buena idea sobre conexiones directas o incluso microservicios. Este conjunto fundamental de matemáticas no está incluido en el libro, pero tampoco está disponible en muchos medios convencionales (lo viste aquí primero). Es esto.

Donde la barra H y la barra C son números máximos de ambos canales de comunicación y conexiones. La clave para esto es tener en cuenta que a medida que crece el número de servicios, las adiciones lineales al ESB eventualmente “superan” la cantidad y el esfuerzo para el número total de conexiones de servicio directas, punto a punto y de manera similar cualquier “árbol de dependencia” construido a través de Los microservicios también sufrirán un problema similar, pero no tan catastrófico (podría decirse que debería rediseñar sus microservicios en ese momento, pero estoy divagando) y esto es un caso simple. El problema es que, como hemos visto, la cantidad de partes móviles es mayor que la directa para una conexión punto a punto. Esto significa que las adiciones lineales son al menos 4 por servicio, lo que también afecta la probabilidad y la ubicación del punto de cruce entre los dos estilos de arquitectura. Si coloca colas entre el ESB y los servicios de extremo a extremo, esto también cambia la ubicación del crossover de disponibilidad.
Resumen
Entonces, sí, después de esa excursión, sigue siendo relevante, pero comprende los fundamentos de todos los esfuerzos de ingeniería arquitectónica en todos los dominios (esfuerzo por cambiar y agregar, efecto sobre la disponibilidad, rendimiento, etc.) y, de manera crucial, comprende las compensaciones que estás haciendo.