Professional Documents
Culture Documents
Seminario de Arquitectura
de Software
Billy Reynoso
UNIVERSIDAD DE BUENOS AIRES
Billyr@microsoft.com.ar
Roadmap
Webcast #1: ¿Qué es la Arquitectura de
Software?
Webcast #2: Drilldown en Estilos de
Arquitectura
Webcast #3: Arquitectura para distribución
y agregación: Services Oriented
Architecture (SOA)
Webcast #4: Diseñando la arquitectura
¿Qué es la Arquitectura de Software?
http://www.sei.cmu.edu/architecture/definitions.html
• (1) Proceso dentro del ciclo de vida, (2) Topología, (3) Disciplina.
Arquitectura - IEEE 1471-2000:
• La Arquitectura de Software es la organización fundamental de un
sistema encarnada en sus componentes, las relaciones entre ellos y el
ambiente y los principios que orientan su diseño y evolución.
Adoptada por Microsoft en estrategia arquitectónica / MSF
Ingeniería - IEEE 610.12.1990:
• La aplicación de una estrategia sistemática, disciplinada y cuantificable
al desarrollo, aplicación y mantenimiento del software; esto es, la
aplicación de la ingeniería al software.
La Arquitectura no es…
UML?
Estilos Arquitectónicos
Estilos de Flujo de Datos Estilos de Código Móvil
• Tubería y filtros • Arquitectura de Máquinas
Virtuales
Estilos Centrados en Datos
Estilos heterogéneos
• Arquitecturas de Pizarra o • Sistemas de control de
Repositorio procesos
Estilos de Llamada y Retorno • Arquitecturas Basadas en
Atributos
• Model-View-Controller (MVC)
Estilos Peer-to-Peer
• Arquitecturas en Capas
• Arquitecturas Basadas en
• Arquitecturas Orientadas a Eventos
Objetos
• Arquitecturas Orientadas a
• Arquitecturas Basadas en Servicios
Componentes • Arquitecturas Basadas en
Recursos
Estilos derivados
C2
GenVoca
REST
Estilos
Sirven para sintetizar estructuras de soluciones
Pocos estilos abstractos encapsulan una enorme variedad
de configuraciones concretas
Definen los patrones posibles de las aplicaciones
Permiten evaluar arquitecturas alternativas con ventajas y
desventajas conocidas ante diferentes conjuntos de
requerimientos no funcionales
Ejemplo
Mala práctica:
• Aplicaciones clientes que consultan si sucedió algo
• Listener de HTTP, Archivo, Colas
Buena práctica:
• Estilo basado en Eventos
Ejemplo
Arquitectura basada en eventos
Modelo de push a veces se vincula con patrón Observador (Observer
pattern)
Arquitectura basada en eventos
Ventajas
• Simplicidad
• Evolución: se pueden reemplazar componentes suscriptores
• Modularidad: una sola modalidad para eventos diversos
• Puede mejorar eficiencia, eliminando la necesidad de polling por
ocurrencia de evento
Desventajas
• Posibilidad de desborde
• Potencial imprevisión de escalabilidad
• Pobre comprensibilidad: Puede ser difícil prever qué pasará en
respuesta a una acción
• No hay garantía del lado del publisher que el suscriptor responderá
al evento
• No hay mucho soporte de recuperación en caso de falla parcial
Arquitectura basada en eventos
Demo
Arquitectura basada en eventos
Herramientas en ambiente COM+/.NET
En muchos casos no se requiere programación de bajo
nivel
También hay profusión de herramientas programáticas y
servicios de “mano mágica”
Administrative tools
• Component Services
COM+ Applications
.NET Utilities, Biztalk Server/Interchange
Relación entre Estilos y
Patrones (Patterns)
Patterns
Patrones de llamadas
entre objetos (similar a
Relacionados a la Problemas arquitectónicos,
los patrones de diseño),
Patrones de interacción de objetos adaptabilidad a requerimientos
decisiones y criterios Diseño inicial
Arquitectura dentro o entre niveles cambiantes, performance,
arquitectónicos,
arquitectónicos modularidad, acoplamiento
empaquetado de
funcionalidad
Niveles de abstracción
Vistas
Documento
Frame
Requerimientos no funcionales
Escenarios, tácticas, frameworks
Performance
Disponibilidad
Modificabilidad
Seguridad
Verificabilidad (Testability)
Gestionabilidad (instrumentación, management, estado)
Usabilidad
Atributos de Calidad
Escenarios
Docs…
Webcast # 2 – Drilldown en estilos de arquitectura
Diseñar desde arriba: La especificidad de la abstracción
arquitectónica
Estilos: historia, definición, inventario
Estilos fundamentales
Práctica arquitectónica
Implementando estilos con Windows services, Middleware
MS y .NET Framework
¿Preguntas?
http://www.microsoft.com/spanish/msdn/arquitectura
Billyr@microsoft.com.ar