Está en la página 1de 4

Mtodo para Generar una Arquitectura de Referencia para Integrar Sistemas Heredados y Bases de Datos Heterogneas

Jaime Muoz Arteaga Juan Muoz Lpez Univ. Autnoma de Aguascalientes Univ. Autnoma de Aguascalientes Av.Universidad #940, Ags. Mexico. Av.Universidad #940, Ags. Mexico. jmunozar@correo.uaa.mx jmunoz@correo.uaa.mx
RESUMEN En este documento se propone un mtodo para desarrollar modelos arquitectnicos y la creacin de una arquitectura de referencia para construir nuevos sistemas a partir de la integracin de sistemas autnomos preexistentes y bases de datos heterogneas. Esta arquitectura adems podra ser utilizada para agregar funcionalidad a sistemas heredados sin modificarlos. componentes y conectores de un programa o sistema, la forma en que interactan y se configuran dichos componentes y conectores y los principios y guas que norman su diseo y evolucin en el tiempo. La abstraccin que proporciona la arquitectura de software es crtica para el sistema ya que lo vuelve intelectualmente tratable y permite explotar patrones recurrentes en su organizacin [4]. Un patrn o estilo arquitectnico provee un conjunto de subsistemas predefinidos, especifica sus responsabilidades e incluye reglas y guas para organizar las relaciones entre ellos. El patrn permite conceptualizar el diseo del sistema a un alto nivel antes de comenzar a implementarlo [1]. La seleccin estilos arquitectnicos por medio de un sistema de clasificacin que adems establezca como deben interconectarse es una decisin de diseo fundamental al desarrollar sistemas de software pues define un conjunto de arquitecturas que son viables [2]. Un modelo arquitectnico de referencia se utiliza para crear arquitecturas de software. Como puede observarse en la figura 1, este modelo es una meta-arquitectura que influye fuertemente en la integridad y estructura del sistema. La arquitectura de referencia se genera a partir de un sistema de patrones arquitectnicos y de un modelo de referencia proyectado en elementos de software y los flujos de datos que existen entre ellos [1]. Las caractersticas no funcionales y los requerimientos funcionales son elementos bsicos para el diseo de la arquitectura de software [5].

I. INTRODUCCIN Las organizaciones generalmente crean sistemas para resolver problemas puntuales de procesamiento de informacin que se presentan en un rea de la empresa. Los sistemas que son implantados correctamente y satisfacen las necesidades por las que fueron creados se integran a los procesos de la organizacin. Si estas aplicaciones continan funcionando y recibiendo mantenimiento, eventualmente se convertirn en sistemas heredados [6]. Al ir agregando nuevo software, el ambiente computacional de la organizacin se convierte en una mezcla de sistemas distribuidos, heterogneos y autnomos [7]. Al madurar en el uso de las tecnologas los usuarios solicitan programas ms complejos para solucionar problemas ms grandes y ms difciles. Es necesario aplicar los principios de la arquitectura de software para comprender mejor como se resolvern los problemas y en que forma debern coordinarse los esfuerzos de quienes intervienen en su desarrollo.

Figura 1.- Elementos para generar una arquitectura de software Un modelo arquitectnico (conocido tambin como arquitectura de software) describe los

II. PROBLEMTICA Este documento aborda la necesidad de crear un modelo de referencia para comenzar a resolver dos problemas relacionados con los sistemas que conforman el ambiente computacional de las organizaciones: ampliar la funcionalidad de los sistemas heredados; y segundo, integrar la informacin de dichos sistemas. El primer problema aparece conforme evolucionan las empresas y las expectativas de los usuarios

crecen, ya que los sistemas con que cuentan pueden llegar a ser insuficientes para satisfacer las nuevas necesidades de informacin que demanda la organizacin. Es difcil sustituir los sistemas heredados por otros nuevos ya que se deben considerar aspectos como: la cantidad de recursos invertidos; la criticidad y el conocimiento de los procesos que soportan; las habilidades tcnicas con que cuenta la organizacin; la cantidad de recursos que se deben invertir para crear el nuevo sistema; etc. Si se establece que no es posible desechar ni modificar al sistema con que se cuenta y es necesario satisfacer nuevas necesidades de informacin, entonces: Cmo agregar nueva funcionalidad a los sistemas heredados? Ya que los sistemas heredados estn ntimamente ligados a los procesos de la organizacin es importante adaptarlos a las nuevas necesidades para mantener a la empresa competitiva. Un conjunto de sistemas que no se adapta al entorno organizacional cambiante, le inhibe en lugar de facilitar su labor. Adaptar en vez de desarrollar nuevamente implica un considerable ahorro de recursos. El segundo problema se presenta por la necesidad de integrar y enriquecer la informacin de los sistemas del medio ambiente computacional de la organizacin que se encuentra contenida en diferentes bases autnomas y posiblemente heterogneas. Integrar estos sistemas es un problema tan difcil y comn que numerosas empresas crean diversas soluciones complejas para lograr este objetivo. La creacin de aplicaciones cooperativas distribuidas que trabajen a travs de Internet para ofrecer servicios en lnea tambin requiere de la integracin de sistemas heterogneos. Solucionar los problemas planteados puede derivar en beneficios como: 1. Dotar a las organizaciones de un marco de trabajo para modernizar y gradualmente reemplazar sus sistemas heredados. 2. Utilizar la informacin de diferentes sistemas de manera integral, aprovechando el efecto de sinergia que se genera. 3. Reutilizar sistemas como partes de un sistema mayor. 4. Reducir el retrabajo necesario para transportar informacin entre sistemas autnomos. 5. Disminuir los costos de mantenimiento de los sistemas actuales. Para llegar a desarrollar este tipo de soluciones Bass et al. [3] y Malveau [8] proponen la aplicacin de modelos arquitectnicos de referencia que pueden utilizar los diferentes participantes en un proyecto como punto de

partida para crear arquitecturas que integren sistemas autnomos preexistentes y bases de datos heterogneas y que adems permitan agregar nuevo valor a la informacin que se encuentra en dichos sistemas. Desafortunadamente en los trabajos de ingeniera de software, tales como el de Malveau [8], no se indica explcitamente como se puede mejorar un modelo de referencia con el fin de adaptarlos a los continuos cambios que requiere un sistema heredado. IV METODO Con el fin de dar una solucin a la problemtica planteada en la seccin anterior, este trabajo propone un mtodo que permite generar y adaptar el modelo arquitectnico de referencia en base a un proceso iterativo e incremental. Consideramos que dentro del proceso la retroalimentacin que se obtiene en cada iteracin puede utilizarse para ir perfeccionando al propio modelo de referencia, lo que extiende los beneficios de la retroalimentacin a las arquitecturas de otros sistemas (ver figura 2).

Figura 2.- Mtodo para generar un modelo de arquitectura de software La figura 2 muestra nuestro mtodo compuesto por una serie de pasos secuenciales, sin embargo, en muchas ocasiones es posible comenzar a ejecutar alguna tarea sin haber concluido completamente a su predecesora. Un modelo arquitectnico se desarrolla en forma iterativa mediante un proceso que comienza en una fase de conceptualizacin. Durante esta fase se establecen los requerimientos funcionales y las caractersticas no funcionales que deber contener el sistema, se evala su pertinencia y se establecen prioridades para las caractersticas no funcionales. Las decisiones iniciales que se toman en el diseo

de la arquitectura incorporarn o excluirn casi todos los atributos de calidad del sistema [3]. Posteriormente se identifican los elementos arquitectnicos bsicos y se adopta o se crea un modelo arquitectnico de referencia para crear la arquitectura de software. El modelo arquitectnico de referencia se crea inicialmente a partir de un modelo de referencia y de la aplicacin de patrones arquitectnicos organizados en un sistema. La arquitectura de software se ajustar conforme al modelo de referencia y ser evaluada para validar que contemple todos los requerimientos funcionales. Durante la creacin de un sistema intervienen diferentes participantes como: el administrador del proyecto, el encargado de la lnea de produccin de la aplicacin, los analistas, los programadores, el equipo de pruebas, los integradores, el personal de soporte, los encargados de mantenimiento, los usuarios, los clientes, los arquitectos de software y los nuevos interesados. Las vistas son mecanismos que permiten representar las perspectivas de los diferentes roles en un modelo arquitectnico [3]. La arquitectura se documenta y se presenta a los participantes en la construccin del sistema para que la evalen. El modelo debe ser tcnicamente lgico, muy simple pero completo y mostrar a cada uno de los involucrados las partes que le son interesantes y necesarias. La arquitectura de software simplifica la complejidad de la construccin de los sistemas, asegura la incorporacin de los atributos funcionales y no funcionales requeridos y proporciona los elementos necesarios para su diseo. El modelo arquitectnico de referencia despus de ser aplicado en un sistema a travs de una arquitectura de software puede perfeccionarse mediante un proceso de evaluacin y ajustes, lo que permitir contar con un modelo que evolucionar en forma continua, cada vez que se aplica para la construccin de un nuevo sistema.

ser lo suficientemente modular y flexible para permanecer funcionando mientras se realizan los ajustes necesarios para aadir, sustituir o eliminar los elementos funcionales que fallen o requieran ser reemplazados. Un sistema con las caractersticas descritas deber contemplar otros factores como por ejemplo: La informacin que proporcione el sistema integral deber ser congruente con la proporcionada individualmente por las partes funcionales que lo conforman, o al menos, tener mecanismos de explicacin que ayuden a entender las diferencias que se encuentren. Coordinar coherentemente los mecanismos de seguridad originales de cada uno de los sistemas autnomos que integre. No se cuenta con un modelo arquitectnico de referencia eficiente para integrar sistemas autnomos y bases de datos distribuidas que cuenten con estructuras heterogneas. Como primera aproximacin para generar esta arquitectura de referencia se propone un modelo que utiliza tres patrones arquitectnicos: corredor (broker), capas (layers), y todo-partes (whole-part) [2]. Estos patrones facilitan la estructuracin de los procesos mentales necesarios para conceptualizar una solucin a los problemas propuestos anteriormente. La integracin de los sistemas es posible realizarla aplicando el patrn de broker. El sistema resultante contara con una capa de servicios que proporcionara los mecanismos de integracin como intermediario entre los sistemas preexistentes y el sistema integrado. Este patrn proporciona una alta flexibilidad que permite agregar o eliminar componentes con facilidad.

V. CASO DE ESTUDIO Para ejemplificar la aplicacin del mtodo propuesto, se mostrar como se pueden aplicar sus pasos iniciales para conceptualizar la arquitectura de referencia de modelos arquitectnicos que resuelvan los dos problemas que se han planteado en este documento. Se requiere que un sistema que base su modelo arquitectnico en la arquitectura de referencia que se pretende crear transforme continuamente la informacin producida por los sistemas autnomos que integra. El nuevo sistema deber

Figura 3.- Modelo arquitectural basado en un patrn para la integracin de software Al aplicar el patrn broker se pueden ubicar varios puntos de enlace que son crticos para realizar la integracin del sistema. En la figura 3 se sealan con cuadros punteados diferentes tipos de interfaces que resultan de inters: la de lectura entre las bases de datos de los sistemas autnomos y los mecanismos de integracin; las de entrada y

las de salida entre los mecanismos de integracin y los sistemas autnomos; las que existen entre los mecanismos de integracin y entre los mecanismos de integracin y el sistema integrado. Un punto de atencin muy especial ser el mecanismo de interfase que permitir que todos los mecanismos de integracin se unan y sean percibidos como un solo sistema (el sistema corredor). El mecanismo que se utiliza para integrar varios sistemas puede aplicarse a un sistema para agregarle funcionalidad sin modificarlo, resolviendo tambin el primer problema planteado. Adicionalmente, los requerimientos funcionales y las caractersticas no funcionales de la arquitectura se representarn mediante una estructura de capas; el uso de este patrn permitir que la arquitectura sea modular, flexible y de sencilla comprensin. En las capas inferiores del modelo prevalecern los aspectos relacionados con las caractersticas no funcionales del sistema, conforme se avance hacia capas superiores, los requerimientos funcionales cobrarn mayor relevancia.

[2] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. y Stal M., Pattern-Oriented Software Architecture, A system of Patterns, Volume I, Willey, U.SA., 1996 [3] Clements, P., Kazman, R. y Klein, M., Evaluating Software Architectures, Methods and Case Studies, Adison Wesley, U.S.A., 2002 [4] Garlan, D., Allen, R., Ockerbloom, J., Exploiting Style in Architectural Design Environments, SIGSOF 94, ACM, 1994, pp. 175-188 [5] Liao, L., From Requirements to Architecture: The State of the Art in Software Architecture Design, Department of Computer Science and Engineering, University of Washington, 2002, pp. 1-13 [6] OCallaghan, A., Migrating Large-Scale Legacy Systems to Component-Based and Object Technology, Communications of AIS, Volume 2, Article 3, Julio 1999, pp. 1-40 [7] Pitoura, E., Bukhres, O., Elmagarmid, A., Object Orientation in Multidatabase Systems, ACM Computing Surveys, Vol. 27, No. 2, Junio 1995, pp. 141-195 [8] Malveau, R., Mowbray, T., Software Architecture Bootcamp, Second Edition, Prentice Hall, U.S.A., 2004

VI. CONCLUSIONES En este documento se han tratado algunos aspectos relativos a la creacin de arquitecturas de software y se ha propuesto un mtodo para su diseo. As mismo, se ha propuesto la creacin de una arquitectura de referencia para crear nuevos sistemas a partir de la integracin de sistemas autnomos preexistentes y bases de datos heterogneas. Esta arquitectura tambin podr ser utilizada para agregar funcionalidad a sistemas heredados sin modificarlos. Se vislumbra que la labor necesaria para crear la arquitectura propuesta comprende an una gran cantidad de trabajo donde se destacan cuatro grandes tareas, a saber: Afinar y validar el proceso propuesto para la creacin de modelos arquitectnicos. Definir las caractersticas funcionales relevantes para los problemas que se han planteado. Establecer un esquema con los mecanismos para la evaluacin de las caractersticas no funcionales en la arquitectura de referencia. Concretar la propuesta del modelo de arquitectura planteada y documentarlo. VII. REFERENCIAS
[1] Bass L., Clements, P. y Kazman R., Software Architecture in Practice, Second Edition, Adison Wesley, U.S.A., 2003

También podría gustarte