semana05 - carloscastillo10/application-architecture-utpl-course GitHub Wiki
Un estilo arquitectónico expresa un esquema de organización estructural fundamental para los sistemas de software ya que proporciona un conjunto de tipos de elementos predefinidos, especificando sus responsabilidades e incluyendo reglas y pautas para organizar la relación entre ellos.
Los estilos se pueden utilizar durante el proceso de definición y diseño como paso previo a la implementación de la arquitectura.
Reutilización: A nivel de diseño, cuando las soluciones son bien entendidas se pueden aplicar a nuevos problemas. A nivel de codificación, las implementaciones a nivel de componentes y el uso de estructuras se pueden compartir con otros estilos. Comprensión: A nivel de diseño la representación y organización gráfica de elementos UML. A nivel de codificación la organización o modularidad del sistema. Interoperabilidad: A nivel de codificación compatible con la estandarización de estilos y patrones.
El estilo basado en servicios trata de implementar objetivos comunes cuando se reestructuran las arquitecturas monolíticas, ya que permiten la descomposición sin alterar los esquemas de las bases de datos y los puntos de integración existentes. Sigue una estructura distribuida en capas, es decir consta de una interfaz de usuario implementada por separado, servicios generales remotos implementados por separado y una base de datos monolítica.
El estilo basado en servicios impulsa una arquitectura con particiones de dominio, lo que significa que la estructura es impulsada por el dominio en lugar de la lógica de presentación o lógica de persistencia
Característica Calificación Elasticidad ⭐ ⭐ Evolutivo ⭐ ⭐ ⭐ Modularidad ⭐ ⭐ ⭐ ⭐ Escalabilidad ⭐ ⭐ ⭐ Despliegue ⭐ ⭐ ⭐ ⭐ Tolerancia a fallos ⭐ ⭐ ⭐ ⭐ Fiabilidad ⭐ ⭐ ⭐ ⭐ Testabilidad ⭐ ⭐ ⭐ ⭐
El estilo orientado a servicios tiene varios enfoques:
De negocio: Permite a las organizaciones satisfacer los cambios en las necesidades de la empresa, mediante la implementación de servicios web. Tecnológico: Aumenta la flexibilidad simplificando a adaptación de los sistemas existentes, mejorando la productividad de procesos y la usabilidad de las aplicaciones. Organización: Permite la consistencia en los procesos, ofrece rapidez de adaptación al cambio y mejora la cultura de servicio.
La principal ventaja que ofrece, es que su activo principal no son las aplicaciones o sistemas si no los Contratos que expone y es que con una definición correcta de un contrato podríamos incluso cambiar el aplicativo por otro y nadie se diera cuenta.
Característica Calificación Elasticidad ⭐ ⭐ ⭐ Evolutivo ⭐ Modularidad ⭐ ⭐ ⭐ Escalabilidad ⭐ ⭐ ⭐ ⭐ Despliegue ⭐ Tolerancia a fallos ⭐ ⭐ ⭐ Fiabilidad ⭐ ⭐ Testabilidad ⭐
Es un enfoque para el desarrollo de una aplicación única como un conjunto de pequeños servicios, cada uno ejecutándose en su propio proceso y mecanismos ligeros de comunicación, a menudo un recurso de una interfaz de programación de aplicaciones (API) sobre protocolo de transferencia de hipertexto (HTTP). Estos servicios están construidos alrededor de las capacidades del negocio y con independencia de despliegue e implementación totalmente automatizada.
Entrega contínua Libre elección de tecnologías Intensa modularización Altamente mantenible Débilmente acoplado
Característica Calificación Elasticidad ⭐ ⭐ ⭐ ⭐ ⭐ Evolutivo ⭐ ⭐ ⭐ ⭐ ⭐ Modularidad ⭐ ⭐ ⭐ ⭐ ⭐ Escalabilidad ⭐ ⭐ ⭐ ⭐ ⭐ Despliegue ⭐ ⭐ ⭐ ⭐ Tolerancia a fallos ⭐ ⭐ ⭐ ⭐ Fiabilidad ⭐ ⭐ ⭐ ⭐ Testabilidad ⭐ ⭐ ⭐ ⭐
J.D. (2009, 9 febrero). Architectural Styles. Shaping Software. https://shapingsoftware.com/2009/02/09/architectural-styles/ 城里的月光_欧阳. (2020, 24 noviembre). Service-Based Architecture Style. jianshu. https://www.jianshu.com/p/0ae3ff1050ea Education I.C. (2021, 12 abril). SOA (Service-Oriented Architecture). IBM. https://www.ibm.com/cloud/learn/soa Education I.C. (2021b, junio 23). Microservices. IBM. https://www.ibm.com/cloud/learn/microservices