A Service-Oriented Framework for Model-Driven Development of Software Architectures
Total Page:16
File Type:pdf, Size:1020Kb
Universidad Rey Juan Carlos Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos II ArchiMeDeS: A Service-Oriented Framework for Model-Driven Development of Software Architectures Doctoral Thesis by Marcos López Sanz Thesis Supervisor: Dr. Esperanza Marcos Martínez Thesis Co-Advisor: Dr. Carlos E. Cuesta Quintero February 2011 La Dra. Dª. Esperanza Marcos Martínez, Catedrática de Universidad, y el Dr. D. Carlos E. Cuesta Quintero, Profesor Titular Interino, ambos del Departamento de Lenguajes y Sistemas Informáticos II de la Universidad Rey Juan Carlos de Madrid, directora y co-director, respectivamente, de la Tesis Doctoral: ―ArchiMeDeS: A SERVICE-ORIENTED FRAMEWORK FOR MODEL-DRIVEN DEVELOPMENT OF SOFTWARE ARCHITECTURES‖ realizada por el doctorando D. Marcos López Sanz, HACEN CONSTAR QUE: Esta tesis doctoral reúne los requisitos para su defensa y aprobación. En Madrid, a 25 de febrero de 2011 Fdo.: Esperanza Marcos Martínez Fdo.: Carlos E. Cuesta Quintero Entia non sunt multiplicanda praeter necessitatem 1 (William of Ockham, c. 1288 – c. 1348) Quod est inferius, est sicut quod est superius, et quod est superius est sicut quod est inferius, ad perpetranda miracula rei unius 2 (Tabula Smaragdina, Hermes Trismegistus) 1 Entities must not be multiplied beyond necessity. 2 That which is below is as that which is above, and that which is above is as that which is below, to perform the miracles of the one thing. RESUMEN I RESUMEN La dependencia de la industria en las tecnologías de la información se ha acentuado en los últimos años conforme lo han hecho sus necesidades de buscar nuevas fórmulas de negocio. Esto se debe, principalmente, a un cambio de tendencia hacia nuevos modelos de negocio basados en la externalización o el posicionamiento online. Desde el ámbito de las tecnologías de la información han surgido nuevos paradigmas de computación e iniciativas de desarrollo con el fin de ayudar en estos nuevos escenarios. La principal línea de actuación se centra en ofrecer una solución para conseguir un alineamiento entre las entidades involucradas en la provisión de servicios de negocio y aquellas tecnologías y plataformas que soporten sus requisitos de negocio. En este sentido, dos iniciativas han demostrado ser de gran ayuda: la aproximación MDA, como forma de abordar la especificación de metodologías y estrategias de desarrollo de software, y la orientación a servicios, como paradigma de computación. En los últimos años estos dos elementos han constituido la base de multitud de iniciativas de investigación, proyectos y propuestas enfocadas a solucionar el problema citado anteriormente. Por otro lado, la Arquitectura, como artefacto central de cualquier solución software, se considera, por lo general, el elemento adecuado sobre el que los principios de la orientación a servicios pueden aplicarse mejor. De igual forma, en los últimos años el uso de estrategias dirigidas por modelos para su especificación constituye una aproximación que se ha demostrado válida dentro del área de investigación de las arquitecturas software. Esta Tesis se centra en agrupar los tres aspectos mencionados con anterioridad: tiene como objetivo la definición de un marco dirigido por modelos para la especificación de arquitecturas software que tengan como base los principios de la orientación a servicios. El marco descrito, bajo el nombre de ArchiMeDeS, representa una solución coherente para definir arquitecturas que reduce el salto existente entre las configuraciones de alto nivel de un sistema, entendido desde un punto de vista organizativo y de negocio, y su representación de bajo nivel, donde los aspectos tecnológicos determinan el aspecto final del sistema ofreciendo un soporte tecnológico a los procesos de negocio y restricciones aplicables previamente identificados. Para alcanzar este objetivo, ArchiMeDeS presenta una solución integrada que sigue los principios de MDA para la especificación de arquitecturas software. Consecuentemente, y siguiendo la separación en niveles de abstracción promovida II MARCOS LÓPEZ SANZ por MDA, se han creado varios DSLs para la representación de Arquitecturas Software: un DSL a nivel PIM que permite la especificación conceptual de arquitecturas basadas en servicios y diferentes DSLs en el nivel PSM. El modelado específico de la plataforma (PSM) ha sido dividido en dos subniveles con el fin de reflejar, separadamente, los aspectos comunes a cualquier plataforma de servicios por un lado y, por otro lado, las particularidades de las tecnologías concretas de servicios, para lo cual se ha definido un DSL para cada aproximación tecnológica escogida. La diferenciación en niveles PIM y PSM para la especificación de la arquitectura permite aislar las características más abstractas y conceptuales de la arquitectura del sistema (nivel PIM) de aquellos aspectos específicos de la plataforma de ejecución o tecnología de implementación del sistema (nivel PSM). Además, el modelado a diferentes niveles de abstracción permite la inclusión de información adicional referida a decisiones arquitectónicas tanto en uno como en otro nivel. A nivel PIM, por ejemplo, se incorpora en los modelos arquitectónicos información referente a la utilización de estilos arquitectónicos. Asimismo, y como se ha indicado anteriormente, el nivel PSM se ha dividido en dos subniveles: PDM, que congrega todos aquellos conceptos que comparten las plataformas de ejecución de servicios: y TDM, que contendrá extensiones a este modelo PDM particularizadas con las características concretas de las tecnologías de servicios basadas en Servicios Web, Servicios Grid y Servicios REST. En cada caso, tanto a nivel PIM como PSM, se han detallado la semántica (entendida como el conjunto de conceptos que definen la sintaxis abstracta del lenguaje) y la sintaxis concreta. Para la semántica, los conceptos utilizados son aquéllos provenientes del paradigma SOC. Como consecuencia directa, las arquitecturas software modeladas se convierten en artefactos orientados a servicios, beneficiándose de esta manera de sus propiedades a la hora de representar las características estructurales de soluciones software que soporten procesos de negocio concretos. Para llegar a tal fin, los conceptos han sido definidos dentro de metamodelos que permiten la definición de modelos arquitectónicos de servicios. Por otro lado, la sintaxis concreta de cada uno de los DSL definidos se basa en el uso de UML como notación gráfica. El fin último es proveer a cada DSL de una notación específica, adaptable, fácil de comprender a simple vista y que esté ampliamente extendida y aceptada como notación para representar artefactos software. Además, la utilización de UML permite apoyarse en sus capacidades de extensión para la definición de modelos gráficos personalizados mediante perfiles UML. RESUMEN III Con el fin de mejorar los modelos arquitectónicos e incorporar información adicional (como la que puede aportar la selección de un estilo arquitectónico determinado), se ha definido un conjunto de transformaciones entre modelos. Por un lado, se ha definido un proceso de fusión entre los modelos de nivel PIM y aquéllos conteniendo la información sobre estilos arquitectónicos. Para ello se han utilizado modelos de weaving y transformaciones definidas en ATL. Por otro lado, y con el fin de adaptar la información arquitectónica conceptual recogida a nivel PIM a las peculiaridades de las plataformas de servicios, se han definido reglas de transformación, también con ATL, entre los metamodelos de nivel PIM y cada uno de los metamodelos definidos a nivel PSM para las plataformas anteriormente citadas. Además de la definición de los metamodelos a diferente nivel de abstracción (PIM, PDM, TDM) y de transformaciones entre ellos (PIM-a-PIM, PIM-a-PDM/PIM-a-TDM), se ha definido un conjunto de herramientas de modelado como parte de ArchiMeDeS. Este conjunto de herramientas permiten la edición gráfica de los modelos arquitectónicos, la validación de los mismos de acuerdo a sus correspondientes metamodelos y la ejecución de las transformaciones de modelos definidas entre ellos. Para su implementación se ha utilizado Eclipse como plataforma de desarrollo. Además, se han utilizado diversas extensiones, específicas para el desarrollo dirigido por modelos en Eclipse, tales como EMF, GMF o aquéllas que soportan la definición y ejecución de transformaciones de modelos en ATL. En conjunción con estas extensiones se han utilizado también otros entornos de modelado especializados en la definición de procesos de weaving (como AMW). Finalmente, ArchiMeDeS ha sido validado y refinado mediante su aplicación a la especificación de la arquitectura de diferentes casos de estudio: un sistema para la gestión de imágenes médicas, una pasarela para el envío de SMS y la emulación de una situación de juego concreta en un partido de baloncesto como metáfora para el estudio de coreografías de servicios. ABSTRACT V ABSTRACT The reliance of companies on IT has been rocketed in parallel to their search towards new business models. This is mainly due to the diversification of businesses towards new formulas based on externalization or online positioning. To assist in this scenario, new computing paradigms and development initiatives have come up. The main line of attack to give support to all the needs detected by companies focuses on providing with a solution to the alignment between the entities involved in business service provisioning and the technologies and platforms that support their business