En los sistemas de información , la arquitectura de aplicaciones es uno de los diversos dominios arquitectónicos que forman los pilares de una arquitectura empresarial (AE). [ 1 ] [ 2 ]
Alcance
La arquitectura de aplicaciones describe el comportamiento de las aplicaciones utilizadas en una empresa, centrándose en cómo interactúan entre sí y con los usuarios. Se enfoca en los datos que consumen y producen las aplicaciones, más que en su estructura interna.
Por ejemplo, en la gestión de carteras de aplicaciones , estas se asocian a funciones y procesos empresariales , así como a costes, calidad funcional y calidad técnica, con el fin de evaluar el valor que aportan .
La arquitectura de las aplicaciones se especifica en función de los requisitos funcionales y de negocio . 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. De esta forma, se pueden identificar problemas de integración o deficiencias en la cobertura funcional.
Posteriormente, se puede elaborar un plan de migración para los sistemas que se encuentran al final de su ciclo de vida o que presentan riesgos tecnológicos inherentes , con el potencial de interrumpir el negocio como consecuencia de un fallo tecnológico.
La arquitectura de aplicaciones busca 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 configuran múltiples aplicaciones para trabajar juntas. Es diferente de la arquitectura de software , que se ocupa del diseño técnico de cómo se construye un sistema.
No solo es necesario comprender y gestionar la dinámica de las funcionalidades que implementa la arquitectura compuesta, sino también ayudar a formular la estrategia de despliegue y estar atento a los riesgos tecnológicos que podrían poner en peligro el crecimiento y/o las operaciones de la organización.
Estrategia
La estrategia de arquitectura de aplicaciones implica garantizar que las aplicaciones y su integración se alineen con la estrategia de crecimiento de la organización.
Si una organización es una empresa manufacturera con planes de rápido crecimiento mediante adquisiciones, la arquitectura de aplicaciones debe ser lo suficientemente ágil como para abarcar tanto los sistemas heredados como otros sistemas grandes de la competencia.
Patrones
Las aplicaciones se pueden clasificar en varios tipos según el patrón de arquitectura que sigan.
Un "patrón" se ha definido como:
"Una idea que ha resultado útil en un contexto práctico y que probablemente lo será en otros".
Para crear patrones, se necesitan bloques de construcción. Estos bloques son componentes de software , en su mayoría reutilizables, que se pueden utilizar para crear ciertas funciones. Los patrones son una forma de contextualizar los bloques de construcción y describir cómo utilizarlos para abordar una o varias cuestiones arquitectónicas.
Una aplicación es una compilación de diversas funcionalidades, que generalmente siguen el mismo patrón. Este patrón define la estructura de la aplicación.
Los patrones de aplicación pueden describir características estructurales (relacionadas con el despliegue/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 existe prácticamente desde los inicios de la informática , pero fue popularizada de forma más famosa por el " Grupo de los Cuatro " (GoF), aunque muchos de sus patrones son patrones de "arquitectura de software" en lugar de patrones de "arquitectura de aplicaciones".
Además del GoF, Thomas Erl es un autor reconocido de diversos 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, existen relativamente pocos que puedan considerarse "estándares de la industria". Algunos de los más conocidos son:
- Aplicación de escritorio / cliente pesado / de una sola capa (patrón estructural): una aplicación que existe solo en una computadora, generalmente una de escritorio. Por supuesto, se puede tener la misma aplicación de escritorio en varias computadoras, pero no interactúan entre sí (salvo raras excepciones).
- Arquitectura cliente-servidor /de dos niveles (patrón estructural): una aplicación que consta de una capa de interfaz de usuario ( front-end ) que se ejecuta como un cliente enriquecido y se comunica con un servidor ( back-end ) que proporciona lógica de negocio, flujo de trabajo , integración y servicios de datos . A diferencia de las aplicaciones de escritorio (que son para un solo usuario), las aplicaciones cliente-servidor son casi siempre multiusuario.
- Arquitectura de n capas (patrón estructural): una extensión del patrón cliente-servidor, donde las funciones del servidor se dividen en múltiples capas, que se distribuyen en diferentes computadoras a través de una red de área local (LAN).
- Distribuido ( patrón estructural ): una extensión del patrón de n capas donde las funciones del servidor se distribuyen a través de una red de área amplia (WAN) o la nube. Este patrón también incluye algunos atributos de comportamiento , ya que las funciones del servidor deben diseñarse para ser más autónomas y funcionar en un diálogo asíncrono con las demás funciones para gestionar la latencia potencialmente significativa que puede ocurrir en escenarios de implementación en WAN y en la nube .
- Escalabilidad horizontal (patrón estructural): un patrón para ejecutar múltiples copias de funciones de servidor en múltiples computadoras, de manera que la creciente carga de procesamiento se pueda distribuir entre un número cada vez mayor de instancias de las funciones, en lugar de tener que volver a implementarlas en computadoras más grandes y potentes. Las aplicaciones nativas de la nube se basan fundamentalmente en la escalabilidad horizontal.
- Arquitectura orientada a eventos (patrón de comportamiento): Eventos de datos (que pueden haberse originado inicialmente en un dispositivo , aplicación, usuario, almacén de datos o reloj) y lógica de detección de eventos que puede descartar el evento condicionalmente, iniciar un proceso relacionado con el evento, alertar a un usuario o administrador del dispositivo, o actualizar un almacén de datos. El patrón orientado a eventos es fundamental para el procesamiento asíncrono requerido por el patrón de arquitectura distribuida .
- ETL (patrón de comportamiento): Un patrón de proceso de aplicación para extraer datos de una fuente de origen, transformarlos según ciertas reglas de negocio y, finalmente, cargarlos en un destino. Algunas variantes del patrón ETL son ELT y ETLT.
- Patrón de comportamiento de solicitud-respuesta : Un patrón de integración de aplicaciones para el intercambio de datos en el que una aplicación solicita datos a otra y espera una respuesta con los datos solicitados. Este es el ejemplo más destacado de un patrón síncrono, en contraste con el procesamiento asíncrono al que se hace referencia en descripciones de patrones anteriores.
El patrón de aplicaciones adecuado depende del sector de la organización y del uso que se le dé a las aplicaciones que la componen.
Una organización puede presentar una combinación de varios patrones si ha crecido tanto de forma orgánica como mediante adquisiciones.
arquitecto de aplicaciones
TOGAF describe tanto las habilidades como las expectativas del rol de un arquitecto de aplicaciones . Estas habilidades incluyen la comprensión de la modularización/distribución de aplicaciones, la integración, la alta disponibilidad y los patrones, tecnologías y tendencias de escalabilidad. Cada vez más, se requiere que el arquitecto de aplicaciones comprenda los contenedores de aplicaciones, la computación sin servidor, el almacenamiento, los datos y el análisis, así como 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 obligatorias para este puesto (estas son habilidades propias de un arquitecto de software, quien lidera el equipo de programación ).
Dominios del conocimiento
- Modelado de aplicaciones
- Emplea el modelado como marco para el despliegue e integración de aplicaciones nuevas o mejoradas, utiliza el modelado para detectar problemas, reducir riesgos, mejorar la previsibilidad, reducir costes y tiempo de comercialización, prueba diversos escenarios de productos, incorporando las necesidades/requisitos no funcionales de los clientes, añade decisiones de diseño de pruebas al proceso de desarrollo según sea necesario y evalúa los problemas de diseño del producto.
- Inteligencia competitiva , modelado de negocios , análisis estratégico
- Comprensión del mercado global, los consumidores, las industrias y la competencia, y cómo se interrelacionan los modelos de negocio, las estrategias, las finanzas, las operaciones y las estructuras globales. Comprensión del entorno competitivo, incluyendo la tendencia actual en el mercado, la industria, la competencia y el entorno regulatorio, así como la comprensión de cómo los componentes del modelo de negocio (es decir, estrategia, finanzas, operaciones) se interrelacionan para hacer que la organización sea competitiva en el mercado. Comprensión de los procesos de negocio , sistemas, herramientas, regulaciones y estructura de la organización y cómo se interrelacionan para proporcionar productos y servicios que creen valor para los clientes, consumidores y partes interesadas clave. Comprensión de cómo el valor creado para los clientes, consumidores y partes interesadas clave se alinea con la visión, el negocio, la cultura, la propuesta de valor, la promesa de marca y los imperativos estratégicos de la organización. Comprensión de los logros y deficiencias pasados y presentes de la organización para evaluar fortalezas, debilidades, oportunidades y riesgos en relación con el entorno competitivo.
- Tecnología
- Conocimiento de la estrategia de TI , el ciclo de vida del desarrollo y el mantenimiento de aplicaciones e infraestructura; conocimiento de los procesos de servicio y soporte de TI para promover la ventaja competitiva, crear eficiencias y agregar valor al negocio.
- Estándares tecnológicos
- Demuestra un conocimiento profundo de las tecnologías clave que conforman la infraestructura necesaria para respaldar eficazmente los requisitos comerciales actuales y futuros , garantiza que todo el hardware y el software cumplan con los requisitos y estándares básicos antes de integrarse en el entorno empresarial, comprende y es capaz de desarrollar estándares y procedimientos técnicos para facilitar el uso de nuevas tecnologías, y desarrolla pautas útiles para el uso y la aplicación de nuevas tecnologías.
Tareas
Un arquitecto de aplicaciones es un experto en todo lo relacionado con las aplicaciones dentro de una organización. Proporciona directrices estratégicas a los equipos de mantenimiento de aplicaciones al comprender todas las aplicaciones desde las siguientes perspectivas:
- Capacidad de interoperabilidad
- Rendimiento y escalabilidad
- Fiabilidad y disponibilidad
- Etapa del ciclo de vida de la aplicación
- Riesgos tecnológicos
- Número de instancias
El análisis anterior pondrá de manifiesto las aplicaciones que necesitan una serie de cambios, desde una modificación de la estrategia de implementación para aplicaciones fragmentadas hasta la sustitución total de las aplicaciones que se encuentran al final de su ciclo de vida tecnológico o funcional.
Huella funcional
Comprender el flujo de procesos del sistema para los procesos de negocio principales. Esto proporciona una visión clara del mapa de funcionalidades y la distribución de las distintas aplicaciones en dicho mapa.
Muchas organizaciones carecen de disciplina en la documentación y, por lo tanto, no cuentan con diagramas de flujo detallados de procesos de negocio ni de sistemas. Quizás sea necesario iniciar una iniciativa para implementarlos primero.
Crear directrices de arquitectura de soluciones
Cada organización cuenta con un conjunto básico de aplicaciones que se utilizan en múltiples divisiones, ya sea como una única instancia o como una instancia diferente para cada división. Cree una plantilla de arquitectura de solución para todas las aplicaciones básicas, de modo que todos los proyectos tengan una base común para el diseño de las implementaciones.
Los estándares en el mundo de la arquitectura se definen en TOGAF, The 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:
- El marco de Zachman para la arquitectura empresarial
- Arquitectura empresarial federal (FEA)
- Gartner [ 3 ]
Véase también
- La norma ISO/IEC 42010, Ingeniería de sistemas y software — Descripción de la arquitectura, es una norma internacional para la descripción de la arquitectura de sistemas y software.
- IEEE 1471, una norma IEEE descontinuada para describir la arquitectura de un "sistema intensivo en software", también conocida como arquitectura de software .
- Arquitectura de aplicaciones de IBM Systems
- Planificación de la arquitectura empresarial
- Arquitectura de aplicaciones de alta disponibilidad
Referencias
- ↑ Steven Spewak ; SC Hill (1992). Planificación de la arquitectura empresarial: Desarrollo de un plan maestro para datos, aplicaciones y tecnología . Boston, QED Pub. Group. ISBN 978-0-471-59985-2.
- ↑ "Modelo de referencia para los certificados ISEB en arquitectura empresarial y de soluciones, versión 3.0" (PDF) . bcs. 2010.
- ↑ "Arquitectura de aplicaciones" . Glosario de TI de Gartner . 9 de febrero de 2012. Consultado el 26 de julio de 2017 .
- "Fase C: Arquitecturas de sistemas de información - Arquitectura de aplicaciones" . TOGAF 9.1 . Consultado el 26 de julio de 2017 .
- Hunter, Roy; Rasmussen, Brian. "Arquitectura de aplicaciones" . Oracle . Consultado el 26 de julio de 2017 .
- Arquitectura empresarial