View
1
Download
0
Category
Preview:
Citation preview
Septiembre 27 a Octubre 01 de 2005Bogotá, Colombia
Arquitecturas flexibles y adaptables: ¿hacia dónde vamos?
Jorge A. Villalobosjvillalo@uniandes.edu.co
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20052
+“No hay nada permanente,
excepto el cambio”
+- Heráclito -
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20053
Motivación
+ La manera como se espera que
evolucione el software ha evolucionado
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20054
Motivación
+Algunos retos para un arquitecto:
–Aplicaciones de alta disponibilidad–Arquitecturas reactivas–Aplicaciones con un alto volumen de usuarios–Fábricas de software y líneas de producción–Arquitecturas de integración–…
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20055
Motivación
+ Es un problema de hoy, con muchos
frentes abiertos de trabajo …
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20056
Motivación
+Una inquietud vieja:
– R.S. Fabry : “How to design a system in which modules can
be changed on the fly”, Proc. 2nd lnt. Conf. on Soft. Eng.,
(1976).
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20057
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20058
Evolución = mantenimiento
desarrollo
mantenimiento 80%
evolución: el iceberg
Una lección aprendida
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 20059
Evolución
+Visión clásica del mantenimiento:– algo cambia en el problema– se modifica el programa (algo monolítico)– se remplaza el programa anterior por el nuevo– si hay necesidad se reestructuran los datos
+Requerimientos sobre la arquitectura:– localización– aislamiento
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200510
Propiedades deseables
+ Localización: dado un elemento del problema, se puede localizar su representación en el programa
mundo M
mundo M
Requerimientosfuncionales
programa
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200511
Propiedades deseables
+Aislamiento: un cambio en un elemento del programa tiene una frontera de impacto conocida (predecible)
programa
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200512
El reto de la época
+Buscar una buena manera de estructurar una aplicación:– funciones (descomposición funcional)– objetos
+En la búsqueda de buenas metodologías, lenguajes y
herramientas
+Se producen arquitecturas rígidas, pero mantenibles
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200513
Arquitecturas rígidas
mundo M
mundo M
Requerimientosfuncionales
programa
implementación
construcción
instalación
arranque
ejecuciónanálisis
diseño
Las decisiones arquitecturales se toman en la etapa de diseño, y hacen referencia a elementos computacionales concretos
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200514
Arquitecturas rígidas
+Y qué pasó?
– En algunos casos es suficiente con una arquitectura rígida,
pero fácil de mantener
– En otros casos es insuficiente: El problema cambió Aparecieron los requerimientos no funcionales Insuficientes las funciones y los objetos Las expectativas de los clientes cambiaron La evolución sucede cada vez más rápido
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200515
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200516
Motivación
+Se puede hacer evolucionar un programa, sin cambiar su código
+“Distintas maneras de hacer lo mismo”
+Se debe poder utilizar información de etapas posteriores al diseño para definir la arquitectura
+“Una familia de arquitecturas posibles”
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200517
“Distintas maneras de hacer lo mismo”
+Ejemplos:
– Balanceo de carga– Aplicaciones basadas en web services– Plug and play– Jini– Servidores de nombres– Archivos de configuración– …
– El caso Dassault Systèmes
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200518
Arquitecturas flexibles
programa
implementación
construcción
instalación
arranque
ejecución
diseño
Cómo?
Aplazando decisiones para utilizar información de lasetapas posteriores del ciclo de vida
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200519
En la búsqueda de flexibilidad
+ Qué implica?– Arquitectura abstracta– Mecanismos de concretización– Distintas arquitecturas concretas, dependiendo del contexto
+ Usando qué?– Programas no monolíticos– Componentes– Servicios– Contenedores– …
+ Cuál es el reto para el arquitecto?
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200520
La gran limitación?
+Las posibles evoluciones deben estar
previstas desde la arquitectura abstracta
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200521
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200522
Motivación
+“Maneras parecidas de hacer cosas parecidas”
cliente-1
cliente-2
cliente-3
adaptación
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200523
“Maneras parecidas de hacer cosas parecidas”
+Cómo crear aplicaciones de una familia, como una
“evolución” de un núcleo básico?
+Cuál es la estructura de dicho núcleo básico? Cómo
se diseña? Con qué mecanismos se adapta?
+Fábricas de software y líneas de producción
+Ejemplo:– El caso APEL
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200524
Adaptación
+Dos aproximaciones distintas al problema
proceso y herramientas
arquitectura
generación, aprovechando la flexibilidad
frameworksplug-insnuevos elementosnuevos mecanismosnuevas tecnologías
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200525
Dos aproximaciones distintas
proceso y herramientas
arquitectura
más simple y directomenos riesgomás limitado
más compleja la arquitecturamás difícil de diseñarmás general
Arquitecturas adaptables
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200526
El reto del arquitecto
+Diseño de la arquitectura del framework de base
+Diseño de los mecanismos de adaptación
+Diseño de los mecanismos y herramientas de
generación
+Incorporación de nuevos elementos, estructuras y
tecnologías
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200527
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200528
Motivación
cliente
“Evolución y adaptación
en ejecución”
adaptacióndinámica
aplicaciones que no pueden detenerse para cambiar
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200529
Aplicaciones dinámicas: motivación
+Algunos ejemplos:
– sistemas 24/24– sistemas críticos– sistemas altamente dinámicos– sistemas embebidos – sistemas altamente distribuidos– recuperación ante fallas– gran volumen de usuarios– sistemas que se adaptan al contexto
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200530
Adaptación y evolución dinámica
arquitectura
plug-ins (Eclipse > 3.0 sobre OSGI)JBoss / JMXcoordinación en lugar de composicióncomponentes & servicios especializadosnuevas tecnologías y estilos de arquitectura
nuevos problemas en el diseño
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200531
El reto del arquitecto
+Cómo diseñar una arquitectura de una aplicación cuya
evolución se debe hacer mientras se está ejecutando?
+Una mezcla de nuevas tecnologías, elementos de
diseño, metodologías, herramientas.
+La limitación: implica la intervención de una persona
para hacer la evolución
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200532
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200533
Auto-adaptación dinámica
Arquitecturas reactivas: muchas formas disponibles.
El sistema es capaz de seleccionar la forma adecuada, dependiendo del contexto
auto-adaptacióndinámica
cliente
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200534
Auto-adaptación dinámica
+Aparecen nuevos elementos en la arquitectura:– sensores– actuadores– modelos y lenguajes para expresar la adaptación
políticas reglas sincronización recuperación …
– tecnologías de soporte– …
+Nuevos problemas en el diseño
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200535
El reto del arquitecto
+Diseñar una arquitectura abstracta adaptable y
dinámica
+Diseñar un modelo abstracto de su evolución
+Diseñar la manera de integrar esos dos modelos
+Incorporar nuevas tecnologías y elementos
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200536
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200537
Integración y evolución
EAI
Empresas virtuales en tiempo realSistemas altamente volátiles
Arquitecturas flexibles y adaptables de integración
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200538
El reto del arquitecto
+Cómo diseñar una arquitectura para integrar
aplicaciones, sabiendo que:
– Los requerimientos sobre la integración pueden ser volátiles– Las aplicaciones van a evolucionar– Nuevas aplicaciones van a llegar– Las aplicaciones son heterogéneas
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200539
Integración y evolución+ Objetivo:
– Poner a trabajar juntas aplicaciones que no fueron hechas para trabajar juntas
– Crear una arquitectura que le permita evolucionar
+ EAI – clásico: dificultad de evolución de los adaptadores
AA
A A
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200540
Integración y evolución
+ Coordinación más que
composición+ Arquitecturas guiadas por los
procesos empresariales (BPM)+ Elementos:
– Orquestación– Servicios y web-services– Workflows– Buses de eventos– Sistemas de reglas– …
A A
AA
A A
AA
coordinación
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200541
Integración y evolución
+El gran problema:
– Falta de correspondencia semántica: conceptos similares,
pero diferentes
Problema abierto
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200542
Agenda
+Evolución = mantenimiento+Arquitecturas flexibles+Adaptación+Aplicaciones dinámicas+Auto-adaptación+Integración y evolución+Conclusiones
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200543
Conclusiones
+Evolución+Flexibilidad+Adaptación+Adaptación dinámica+Auto-adaptación+Integración
nuevos retos y problemas para el arquitectonuevas tecnologíasnuevas arquitecturasnuevas metodologíasnuevas herramientascrecimiento exponencial de la complejidad
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200544
Conclusiones
+Los nuevos requerimientos en las aplicaciones se
traducen en arquitecturas basadas en elementos
distintos, con propiedades distintas
+Un tema abierto de trabajo
+Más información en:+ http://agamenon.uniandes.edu.co/~jvillalo
XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de 200545
Preguntas?
Recommended