slides 03b [2pp], PDF, 71kb - Departamento de Informática

Anuncio
Arquitectura de Software
V: Prácticas
Hernán Astudillo
Departamento de Informática
Universidad Técnica Federico Santa María
<hernan at acm.org>
P
P
P
P
Contenido del curso
–
–
–
–
–
Sesión 05
Introducción, motivación y contexto
Representación de arquitecturas
Elaboración de arquitecturas
Principios y evaluación de arquitecturas
Prácticas de arquitectura
•
•
•
•
•
•
•
Políticas y Mecanismos
Re-visitando un ejemplo complejo
Componentes y Organizaciones
Terminología de Mercado
Estandarización
La profesión
Enseñando Arquitectura de Software
Arquitectura de Software H.Astudillo
2
1
V: Prácticas de arquitectura
• Políticas y mecanismos
•
•
•
•
•
•
Re-visitando un ejemplo complejo
Componentes y organizaciones
Terminología del mercado
Estandarización
La profesión
Enseñando Arquitectura de Software
Sesión 05
Arquitectura de Software H.Astudillo
3
Políticas y mecanismos
2
Políticas y mecanismos
• Idea:
– identificar y separar “dimensiones”
• Fundamento teórico
– Diferentes niveles de abstracción
– Ejecutar (“realize”) políticas con mecanismos disponibles
Sesión 05
Arquitectura de Software H.Astudillo
5
Ejemplo: e-mail
• Descripción del proceso:
– Escritor de correo prepara mensaje en cliente, y envía al lector,
quien lee el mensaje en su cliente de correo
– Implementación conocida por nosotros: vía Internet
– Modelo: caso de uso, diagrama de secuencia, etc.
• Nuestro interés: refinar el modelado de la comunicación
• Dimensiones de interés de la comunicación (en este ejemplo):
– Sincronía: sí ncrona vs. asíncrona
– Entrega: “push” vs. “pull”
– Topología: “broadcast” vs. “multicast”
Sesión 05
Arquitectura de Software H.Astudillo
6
3
e-mail: Sincronía [1/2]
• Modelo informal
– 2 personas – asíncronos – 2 clientes idem
– versión Internet:
• Clientes y servidores entre sí : TCP/IP síncrono
– versión con filas:
• Clientes y servidores entre sí son asíncronos
Sesión 05
Arquitectura de Software H.Astudillo
7
e-mail: Sincronía [2/2]
• Interesante: al refinar versión Internet...
– TCP/IP “realizado” por paquetes asíncronos
Sesión 05
Arquitectura de Software H.Astudillo
8
4
e-Mail: Entrega [1/2]
• Modelo informal
receiver
sender
push
toma
pull
me de
– usos:
• “push”: entrega cuando el enviador quiere
• “pull”: entrega cuando el receptor quiere
Sesión 05
Arquitectura de Software H.Astudillo
9
e-Mail: Entrega [2/2]
• Modelo UML
– (hacer in situ)
Sesión 05
Arquitectura de Software H.Astudillo
10
5
e-mail: Topología [1/2]
• Modelo informal
– “multicast” vs. “broadcast”
– (1:M especificados) vs. (1:todos en la red)
Sesión 05
Arquitectura de Software H.Astudillo
11
e-mail: Topología [2/2]
• Disonancia cognitiva
– “Multicast” puede ser implementado con “broadcast”
• Receptores que no debían escuchar ignoran el mensaje
• Requiere cambio en cada receptor
– “Broadcast” puede ser implementado con “multicast”
• Mantener catálogo de escuchadores
• Necesita cambio en cada receptor y catálogo
• Moraleja
– Mala opción inicial de política no impide buena solución
– Pero requiere trabajo adicional (tal vez sustancial)
Sesión 05
Arquitectura de Software H.Astudillo
12
6
Resumiendo
• Distinguir “políticas” y “mecanismos”
– roles en un proceso/descripcion de refinamiento
• Una solución que es mecanismo en un nivel de abstracción es
política en el nivel inferior
– (política y mecanismo son roles en una relación entre elementos
de diferentes niveles de abstracción)
• En general, una implementación puede ser documentada pero
no computada
– UML: «trace», «derive»
Sesión 05
Arquitectura de Software H.Astudillo
13
Componentes y organizaciones
7
Escalas de arquitectura
• Arquitectura de aplicaciones
– aplicación o sistema (colaboración de aplicaciones)
• Arquitectura de línea de productos
• “Framework” para un dominio
• Arquitectura de referencia
– definen vocabulario y permiten intercambio ínter-organizacional
– CORBA, .NET...
Sesión 05
Arquitectura de Software H.Astudillo
15
Componentes
• Componente [Whitehead]
– Pieza separable (independiente del contexto) de software
ejecutable
– ...que tiene sentido como unidad
– ...y puede interoperar con otros componentes
– ...dentro de un ambiente de apoyo
– ...y es accesable sólo vía sus interfaces
– ...y está listo para usar (posiblemente requiriendo instalación y
configuración)
• Fuentes de componentes
–
–
–
–
Sesión 05
Dominio (entidades, propiedades...)
Interfaces
Capas de abstracción (“máquinas virtuales”)
Instanciaciones de arquetipos
Arquitectura de Software H.Astudillo
16
8
Interoperabilidad
• Problema: cooperación entre componentes
– Número exponencial de pares
• Se complica al introducir más de una tecnología
• Mecanismos estandarizados para describir interfaces
– CORBA IDL
– COM IDL
– Interoperabilidad entre tecnologías
• “Modelos de componentes”
• COM, CORBA, EJB
• “Wrappers” (envoltorios)
– Servicios
• Propiedades transaccionales
• Manejo de seguridad
• Monitoreamiento
Sesión 05
Arquitectura de Software H.Astudillo
17
Modelos de componentes [1/3]
• Modelos de componentes distribuidos (clientes y servidores)
– COM: Common Object Model (Microsoft; en .NET)
– CORBA: Common ORB Architecture (OMG: Object Management
Group)
• ORB: Object Request Broker
– Java (Sun, JCP)
• Modelos extendidos para mejor apoyar servidores
– MTS (Microsoft Transaction Service)
– CCM (CORBA Component Model)
– EJB (Enterprise Java Beans)
• J2EE (Java 2 Enterprise Edition)
Sesión 05
Arquitectura de Software H.Astudillo
18
9
Modelos de componentes [2/3]
• Modelos extendidos con soporte adicional
–
–
–
–
Manejo transaccional
Seguridad
Persistencia
Disponibilidad
• “Clustering”, balanceo de carga
– Ambiente de ejecución
•
•
•
•
Ciclo de vida (instanciación, GC...)
“Threading”
“Pooling” de conexiones
Manejo de estado
– Monitoreamiento dinámico
Sesión 05
Arquitectura de Software H.Astudillo
19
Modelos de componentes [3/3]
• Servicios
– “Location” (ubicación)
• detección de componentes/servicios; análogo a guía telefónica
• JNDI (Java Naming & Directory Interface)
• CORBA Naming Service & Trading Service
– Manejo de transacciones
• autenticación, autorización, inviolabilidad, no-repudiación
• CORBA Security Service
• JAASL Java Authentication & Authorization Service
– Eventos, notificaciones & mensajería
• Mensajes asíncronos, point-to-point & publish-subscribe
• CORBA Notification (& Event) Services, Messaging Service
• JMS: Java Messaging Service
Sesión 05
Arquitectura de Software H.Astudillo
20
10
Organizaciones para arquitectura
• ¿Quién es responsable de hacer/gestionar arquitectura?
– Idea: asociar escalas de arquitectura a niveles de la
organización
• [Jacobson/Griss/Jonsson] 3 niveles:
– Empresa
– Departamento (unidad)
– Proyecto
• “Se delega autoridad, pero no responsabilidad”
– Estandarizar vía lenguaje compartido
• arquitectura de referencia
• patrones y estilos
Sesión 05
Arquitectura de Software H.Astudillo
21
Organizaciones para componentes
• Problema: propiedad y control de componentes
– Pueden no calzar con las unidades organizacionales
– Control de cambios
– Redundancia
• Soluciones
– Reestructurar la organización
– Imponer propiedad y/o factorización
– “Mercado interno” de componentes
• Decidir quién paga el costo de hacer casos generales
• Decidir quién paga cambios específicos
• Decidir modelo de propagación de cambios a los afectados
– Propiedad: unidades de negocio vs. centralizada
Sesión 05
Arquitectura de Software H.Astudillo
22
11
Terminología de mercado
“2 Capas”
• 2 capas: “cliente-servidor”
• Razón: concentrar recursos escasos en servidores
centralizados
– Redundancia mínima
– Rendimiento puede sufrir
– Autonomía mínima
Sesión 05
Arquitectura de Software H.Astudillo
24
12
“3 capas”
• 3 capas
– Razón: compartir datos, preservando integridad (ACID)
– “Negocio”: procesamiento propio del negocio
– 2 partes: objetos de negocio (entidades del dominio) y lógica de
control (funciones)
– “Presentación”: interacción con usuarios (incl. informes) y otros
sistemas
– “Datos”: manejo de datos persistentes (incl. integridad)
Sesión 05
Arquitectura de Software H.Astudillo
25
“4 capas”
Sesión 05
Arquitectura de Software H.Astudillo
26
13
“4 capas” (Cont.)
• “Usuario”: mecanismos de interacción con usuarios y otros
sistemas
• “Workspace”: manejo de sesiones y transacciones
• “Negocio” (empresa): procesos y entidades del negocio
• “Recursos”: elementos únicos compartidos (BD, sistemas
legado, servicios)
Sesión 05
Arquitectura de Software H.Astudillo
27
Productos
• Categorías de productos
– Empaquetados por tipo de problema y tipo de solución
• Tipos de solución: tecnologías
– “Middleware”
– MOM, BD, “directory servers”, TP Monitors, “workflow”...
• Tipos de problemas: servicios del negocio
– Paquetes
– ERP (Enterprise Resource Planning), CRM (Customer
Relationship management) y variaciones, Knowledge
Management...
Sesión 05
Arquitectura de Software H.Astudillo
28
14
Middleware
• “Middleware”: tecnologías para comunicar programas
distribuidos
• Britton propone clasificar middleware usando 8 aspectos de
la comunicación
–
–
–
–
–
–
–
–
Transporte (enlace) (ej: TCP/IP)
Protocolo (ej: HTTP)
API (ej: ODBC)
Formato (ej: ASCII)
Control de recursos en el servidor (ej: MTS)
Directorios/nombres (ej: DNS)
Seguridad (ej: Kerberos)
Administración
Sesión 05
Arquitectura de Software H.Astudillo
29
Middleware - Dimensiones
• Participantes en la comunicación
– programas/objetos cada vez más pequeños y numerosos
– IP (hardware), TCP (procesos), IIOP (objetos)
• Modo de comunicación
– sesiones: protocolos con o sin ellas
• TCP (IP con sesión), UDP (IP sin sesión)
– topología: 1:M, peer-to-peer, M:1
– iniciador: push, pull
– integridad vs. puntualidad (“timeliness”)
• Interfaz
– con API: número fijo de entradas
– con IDL: mecanismo para definir API ad-hoc
Sesión 05
Arquitectura de Software H.Astudillo
30
15
Servicios Web
• Integración usando infraestructura Web/Internet
• Aspectos
– Transporte
– Formato
– Búsqueda
• Soluciones empaquetadas (aún en desarrollo)
– “Web services”
• SOAP (Simple Object Access Protocol): HTTP + XML
• WSDL (Web Service Description Language)
• UDDI (Universal Description, Discovery and Integration)
– REST: Representational State Transfer
• HTTP + URL + XML/HTML/GIF/MIME/etc. (sin directorios)
– CORBA: IIOP + “marshalling” + Directory/Trader Service
Sesión 05
Arquitectura de Software H.Astudillo
31
Catálogos de arquitectura
• Catálogos
– Ingenieros tienen catálogos de partes disponibles
• con especificaciones de contexto, parámetros...
– Necesarios para centralizar y difundir información
• Fundamento teórico propuesto
– Clasificar Middleware
• Análisis de dimensiones aún pendiente
– Políticas y mecanismos
• Enfoque análogo
Sesión 05
Arquitectura de Software H.Astudillo
32
16
Estandarización
Estandarización
• Vasta cantidad de STLs
–
–
–
–
Sesión 05
OMG
OMA-RM
MDA
ECA
Arquitectura de Software H.Astudillo
34
17
OMG
• OMG: “Object Management Group”
– Consorcio industrial (600+ miembros)
• Propósitos:
– establecer guías para la industria
– crear especificaciones para administración de objetos
– proveer un marco común para desarrollar aplicaciones
• OMA: “Object Management Architecture”
– infraestructura conceptual para las especificaciones del OMG
• OMA-RM: “OMA Reference Model”
Sesión 05
Arquitectura de Software H.Astudillo
35
OMA-RM [1]
• ORB: “Object Request Broker”
– medio transparente para pedidos y respuestas en un ambiente
distribuido
– especificación: CORBA
– “Common ORB Architecture”
• Servicios de Objetos
– servicios (interfaces y objetos) con funciones básicas para
implementar objetos distribuidos
– especificación: CORBAservices
– ejemplos: Ciclo de Vida, Persistencia
Sesión 05
Arquitectura de Software H.Astudillo
36
18
OMA-RM [2]
• Facilidades Comunes
– servicios comunes pero no fundamentales
– especificación: CORBAfacilities
– ejemplos: administración, e-mail
• Objetos Aplicaciones
– aplicaciones (únicas por definición)
Sesión 05
Arquitectura de Software H.Astudillo
37
Modelado OMG
• Técnicas para desarrollar aplicaciones
– MOF: “Meta-Object Facility”
– UML: “Unified Modeling Language”
– MDA: “Model-Driven Architecture”
Sesión 05
Arquitectura de Software H.Astudillo
38
19
MDA [1]
• CIM: “Computing Independent Model”
– modelo de negocio
• PIM: “Platform Independent Model”
– arquitectura sin referencia a tecnología específica
• PSM: “Platform Specific Model”
– arquitectura en términos de una plataforma específica
– PM: “Platform Model”
• ISM: “Implementation Specific Model”
– arquitectura en términos de una implantación específica
Sesión 05
Arquitectura de Software H.Astudillo
39
MDA [2]
• Idea: a partir de modelos abstractos, refinar a modelos
concretos usando meta -modelos
• PM: “Platform Model”
– permite refinar PIM a PSM
Sesión 05
Arquitectura de Software H.Astudillo
40
20
ECA
• ECA: “Enterprise Collaboration Architecture”
– CCA: “Component Collaboration Architecture”
• consiste de “Process Components”
– Modelo de Entidades
– Modelo de Eventos
– Modelo de Proceso de Negocio
• especializa el CCA
Sesión 05
Arquitectura de Software H.Astudillo
41
La profesión
21
•
Otros sentidos de “arquitectura”
[1]
Por ámbito:
– “Enterprise Architecture”: visión y principios transversales en
la empresa
• p.ej. seguridad, flexibilidad, políticas de compra, reuso
– Arquitectura de Dominio: específica a un área
– Arquitectura de Línea de Productos: definiciones comunes a
productos (diseño y/o implementación)
– Arquitectura de Referencia: vocabulario (estilo y componentes)
para dominios de aplicación
Sesión 05
Arquitectura de Software H.Astudillo
43
Otros sentidos de “arquitectura” [2]
• Por tipo de preocupación:
– Arquitectura de Negocio: estrategias, organización y metas
para procesos de negocios
– Arquitectura de Aplicaciones: políticas para y soluciones de
software a problemas específicos
– Arquitectura Técnica (o Infraestructura): soluciones generales
y/o estandarizadas (redes, plataformas...)
– Arquitectura de Datos (o Información): almacenamiento y
manejo de información (propiedad, diseño, métodos...)
Sesión 05
Arquitectura de Software H.Astudillo
44
22
Metáforas y modelos
• Metáfora de arquitecto
– más adecuada: edificio, no casa
– justificar preguntas: así como el arquitecto del edificio puede
justificar sus preguntas, debemos poder justificar las nuestras
• Calidad de los modelos:
– casas: maquetas (modelos analógicos), levantamientos, planos...
– sistemas: vistas, diagramas...
• Apuesta de la disciplina: con el tiempo, nuestros modelos
mejorarán
– programa 1 de mejoramiento: ADLs
– programa 2: vistas
– (“programa” de investigación como en filosofía de la ciencia)
Sesión 05
Arquitectura de Software H.Astudillo
45
*** Teatro Japonés ***
• “leer” una performance
– sintaxis: gestos
– razones: historia detrás
• criticar
• hacer
• reflexionar
Sesión 05
Arquitectura de Software H.Astudillo
46
23
Técnicas del arquitecto [bis]
• Problema
– Elaboración concurrente de modelos para múltiples aspectos
• Técnicas clave
– Refinamiento
• Múltiples niveles de abstracción y completitud
– Descripción en capas
• Capas son modelos incompletos, pero comprensibles
– Refinamiento derivable
– “Refactoring” (factorización)
Sesión 05
•
Arquitectura de Software H.Astudillo
47
La gran “ility”: Rastreabilidad
[bis]
Noción fundamental de arquitectura
– Rastreabilidad: propiedad de un modelo que permite relacionar
una decisión con su justificación e implicaciones
– Permite estudiar impacto de cambios (forward) y razones para
acción propuesta (backward)
• Los modelos deben proveer información
– Refinamiento: explicado o aparente
– Niveles de abstracción : mapeables entre sí
• Una buena arquitectura “cuenta una historia”
– Explicar no sólo el que y como, sino el porqué
– Permite decisiones informadas a futuro
Sesión 05
Arquitectura de Software H.Astudillo
48
24
Enseñando Arquitectura de
Software
Analogías y educación
• Analogías desde la industria de construcción
– El arquitecto de software como arquitecto
– El diseñador o programador como constructor
• Analogías desde la industria cinematográfica
– El arquitecto del proyecto es el director de la película
– El jefe del proyecto es el productor de la película
• Formas de educación (y socialización)
– En estudios: como los abogados y los arquitectos
• Aprender mirando por encima del hombro
– En clínicas: como los médicos
• Aprender en equipo en modo crisis
– Pasiva: como los ingenieros
• Cursos teóricos, práctica post-graduación
Sesión 05
Arquitectura de Software H.Astudillo
50
25
Modelo docente
•
4 “niveles de competencia”
– Lectura de arquitecturas
• Poder usarlas como guía de acción
– Lectura crítica de arquitecturas
• Poder evaluarlas y modificarlas
– Elaboraci ón de arquitecturas
• Poder elaborar sistemas y descripciones de ellos
– Reflexión crítica sobre la disciplina
•
• Poder reflexionar más allá de lo operacional
• Ojo: no implica ser investigador
Formatos de entrega
– Secuencial vs. iterativo-incremental
• ¿Qué unidades usar?
Sesión 05
Arquitectura de Software H.Astudillo
51
Formato – modelo aplicado aquí
•
Estructura de esta charla
– Sólo los 3 primeros niveles
• conceptos superficiales (lectura no accionable )
– Entrega secuencial, sin iteraci ón
– Nivel de competencia impartido “bottom-up”
•
• ejemplos someros y recibidos, no elaborados
Algunas técnicas específicas
– “Problematizaci ón” inicial
• remover nociones previas, definir lo que no es arquitectura
– Uso de casos
•
• ejemplo seguido con complejidad incremental
• diálogo <flujo principal> -<”sidebars”> (introduciendo temas)
Restricciones clave
– tiempo: permitir reflexión
– dedicación: audiencia mixta
Sesión 05
Arquitectura de Software H.Astudillo
52
26
Formatos – modelos para cursos
•
Relajando restricciones: modelos posibles
•
Posibles extensiones
–
–
–
–
Casos: proyectos desarrollados en paralelo (entrelazados)
Modelo: “aprendiz” (como abogados, médicos, arquitectos)
Disyuntiva: formar arquitectos o investigadores
Casos límite: ¿cuánto tiempo y esfuerzo dedicar?
– Lectura crítica y elaboración: evaluaci ón y comparación
• soluciones alternativas de mercado a problema dado
– Reflexión: problemas aún abiertos
• derivación de arquitecturas desde requisitos sisté micos
• descripción de políticas, mecanismos, y realización
• relación derivación – capas (derivación aparente vs. real)
Sesión 05
Arquitectura de Software H.Astudillo
53
Conclusión
27
¿Un modelo o un diagrama?
Sesión 05
Arquitectura de Software H.Astudillo
55
Conclusión
• Reconocimiento reciente de la disciplina
– Dicotomía teoría-práctica
• Procesos, métodos y técnicas: aún madurando
– Arquitectos describen sistemas
– En forma que permita su evaluación a priori
– Y que permiten armar procesos para construirlos
• Rol fundamental:”stakeholders”
– Noción de calidad depende de ellos
• Las arquitecturas son medios
– (de comunicación y educación)
• El arquitecto es el director de la película
– Flor de laburo J
Sesión 05
Arquitectura de Software H.Astudillo
56
28
Referencias
• [Jacobson/Griss/Jonsson]
– Ivar Jacobson, Martin Griss, Patrik Jonsson
– Software Reuse: Architecture, Process and Organization for
Business Success
– Addison Wesley (1997)
• [Britton 2000]
– Chris Britton
– IT Architectures & Middleware: Strategies for Building Large,
Integrated Systems
– Addison Wesley (2000)
• [McLaughlin 2002]
– Brett McLaughlin
– Building Java Enterprise Applications, Vol. 1: Architecture
– O'Reilly (2002)
• [Sewell/Sewell 2001]
– Marc T. Sewell, Laura M. Sewell
– The Software Architect's Profession: An Introduction
– Prentice Hall (2001)
Sesión 05
Arquitectura de Software H.Astudillo
57
29
Descargar