En los sistemas de información , la arquitectura de aplicaciones o arquitectura de aplicaciones es uno de los varios dominios de arquitectura que forman los pilares de una arquitectura empresarial (EA). [1] [2]
La arquitectura de aplicaciones describe el comportamiento de las aplicaciones que se utilizan en una empresa, centrándose en cómo interactúan entre sí y con los usuarios. Se centra en los datos que consumen y producen las aplicaciones, más que en su estructura interna.
Por ejemplo, en la gestión de la cartera de aplicaciones , las aplicaciones se asignan a funciones y procesos de negocio , así como a costos, calidad funcional y calidad técnica para evaluar el valor proporcionado .
La arquitectura de las aplicaciones se especifica en función de los requisitos funcionales y comerciales . Esto implica definir la interacción entre los paquetes de aplicaciones , las bases de datos y los sistemas de middleware en términos de cobertura funcional. Esto ayuda a identificar cualquier problema de integración o brechas en la cobertura funcional.
Luego se puede elaborar un plan de migración para sistemas que están al final del ciclo de vida del software o que tienen riesgos tecnológicos inherentes , con el potencial de interrumpir el negocio como consecuencia de una falla tecnológica.
La arquitectura de aplicaciones intenta garantizar que el conjunto de aplicaciones que utiliza una organización para crear la arquitectura compuesta sea escalable , confiable , disponible y manejable.
La arquitectura de aplicaciones define cómo se preparan varias aplicaciones para trabajar juntas. Es diferente de la arquitectura de software , que se ocupa de los diseños técnicos de cómo se construye un sistema. [ cita requerida ]
No sólo es necesario comprender y gestionar la dinámica de las funcionalidades que la arquitectura compuesta está implementando, sino también ayudar a formular la estrategia de implementación y estar atento a los riesgos tecnológicos que podrían poner en peligro el crecimiento y/o las operaciones de la organización. [ cita requerida ]
La estrategia de arquitectura de aplicaciones implica garantizar que las aplicaciones y la integración se alineen con la estrategia de crecimiento de la organización.
Si una organización es una organización manufacturera con planes de rápido crecimiento a través de adquisiciones, la arquitectura de las aplicaciones debe ser lo suficientemente ágil para abarcar los sistemas heredados , así como otros sistemas grandes de la competencia.
Las aplicaciones se pueden clasificar en varios tipos dependiendo del patrón de arquitectura de aplicaciones que siguen.
Un "patrón" se ha definido como:
"una idea que ha sido útil en un contexto práctico y probablemente será útil en otros".
Para crear patrones, se necesitan bloques de construcción. Los bloques de construcción son componentes de software , en su mayoría reutilizables, que se pueden utilizar para crear determinadas funciones. Los patrones son una forma de poner los bloques de construcción en contexto y describir cómo utilizarlos para abordar una o varias cuestiones arquitectónicas.
Una aplicación es una compilación de varias funcionalidades, todas ellas generalmente siguiendo el mismo patrón. Este patrón define el patrón de la aplicación.
Los patrones de aplicación pueden describir características estructurales (relacionadas con la implementación/distribución) o de comportamiento (relacionadas con el flujo de procesos o la interacción/integración) y una arquitectura de aplicación puede aprovechar uno o una combinación de patrones.
La idea de los patrones ha existido casi desde el comienzo de la ciencia informática , pero fue popularizada por la " Banda de los Cuatro " (GoF), aunque muchos de sus patrones son patrones de "arquitectura de software" en lugar de patrones de "arquitectura de aplicación".
Además de GoF, Thomas Erl es un conocido autor de varios tipos de patrones, y la mayoría de los grandes proveedores de herramientas de software, como Microsoft , han publicado extensas bibliotecas de patrones.
A pesar de la gran cantidad de patrones que se han publicado, hay relativamente pocos patrones que puedan considerarse "estándar de la industria". Algunos de los más conocidos son:
El patrón de aplicaciones correcto depende de la industria de la organización y del uso de las aplicaciones componentes.
Una organización podría tener una combinación de múltiples patrones si ha crecido tanto orgánicamente como a través de adquisiciones.
TOGAF describe tanto las habilidades como las expectativas de rol de un arquitecto de aplicaciones . Estas habilidades incluyen una comprensión de la modularización/distribución de aplicaciones, la integración, la alta disponibilidad y los patrones de escalabilidad, la tecnología y las tendencias. Cada vez más, se requieren habilidades de arquitecto de aplicaciones que comprendan los contenedores de aplicaciones, la computación sin servidor, el almacenamiento, los datos y el análisis, y otras tecnologías y servicios relacionados con la nube. Si bien una formación en software es una excelente base para un arquitecto de aplicaciones, la programación y el diseño de software no son habilidades requeridas de un arquitecto de aplicaciones (en realidad, estas son habilidades para un arquitecto de software, que es un líder en el equipo de programación de computadoras ).
Un arquitecto de aplicaciones es un experto en todo lo relacionado con las aplicaciones de una organización. Un arquitecto de aplicaciones proporciona directrices estratégicas a los equipos de mantenimiento de aplicaciones al comprender todas las aplicaciones desde las siguientes perspectivas:
El análisis anterior señalará las aplicaciones que necesitan una serie de cambios, desde un cambio en la estrategia de implementación para aplicaciones fragmentadas hasta un reemplazo total de las aplicaciones al final de su ciclo de vida tecnológico o funcional.
Comprenda el flujo de procesos del sistema de los procesos empresariales principales. Esto proporciona una imagen clara del mapa de funcionalidades y la huella de las distintas aplicaciones en el mapa.
Muchas organizaciones no tienen una disciplina de documentación y, por lo tanto, carecen de flujos de procesos de negocios y flujos de procesos de sistemas detallados. Es posible que sea necesario iniciar una iniciativa para implementarlos primero.
Cada organización tiene un conjunto central de aplicaciones que se utilizan en varias divisiones, ya sea como una única instancia o como una instancia diferente por división. Cree una plantilla de arquitectura de soluciones para todas las aplicaciones principales, de modo que todos los proyectos tengan un punto de partida común para diseñar las implementaciones.
Los estándares en el mundo de la arquitectura están definidos en TOGAF, el Open Group Architecture Framework describe los cuatro componentes de EA como BDAT ( arquitectura empresarial , arquitectura de datos , arquitectura de aplicaciones y arquitectura técnica ).
También existen otros estándares a considerar, dependiendo del nivel de complejidad de la organización: