Septiembre 27 a Octubre 01 de 2005 Bogotá, Colombia Arquitecturas flexibles y adaptables: ¿hacia...

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?