oows suite un entorno de desarrollo mda de aplicaciones web 2 · en la sección 3 se introduce la...

14
OOWS Suite: Un Entorno de desarrollo para Aplicaciones Web basado en MDA 1 Francisco Valverde 1 , Pedro Valderas 1 , Joan Fons 1 1 Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, Camino de Vera S/N, 46022 Valencia, España {fvalverde, pvalderas, jjfons}@dsic.upv.es Resumen En este trabajo, se introduce un entorno de desarrollo MDD para aplicaciones Web: La OOWS Suite. Dicho entorno proporciona herramientas que dan soporte al proceso de desarrollo del método OOWS permitiendo la ge- neración automática de aplicaciones Web totalmente funcionales. Estas herra- mientas son: (1) Un modelador basado en Eclipse que permite la edición visual de modelos OOWS. (2) Un conjunto de transformaciones modelo-a-texto que permiten generar de forma automática la interfaz Web de una aplicación a partir de estos modelos. Para implementar dicha interfaz se ha desarrollado un fra- mework que, siguiendo la filosofía de las Factorías de Software, reduce el nivel de abstracción entre los modelos conceptuales y el código a generar facilitando la definición de las transformaciones. (3) Una estrategia para integrar dichas herramientas con OlivaNova, una herramienta comercial de generación de apli- caciones tradicionales (no-Web) en ambientes transaccionales. Esta integración nos permite delegar la generación de la lógica de negocio de una aplicación Web en una herramienta altamente contrastada a nivel industrial 1 Introducción El Desarrollo de Software Dirigido por Modelos (DSDM) comienza a proporcionar resultados prometedores. Existen distintos indicadores que nos hacen ser optimistas en cuanto a la evolución e implantación industrial de esta filosofía de desarrollo. Em- pezando por el gran empuje que constituye MDA del OMG [1] y la reciente aparición de las Fábricas de Software [2] impulsadas por Microsoft. Quizás uno de los aspectos más esperanzadores es el desarrollo continuo de tecnologías y herramientas para la construcción de herramientas CASE que dan soporte al DSDM como son el proyecto Eclipse Modeling Project [3] y las DSL Tools [4] integradas en MS Visual Studio 2005. También invita al optimismo la proliferación de herramientas con un soporte explícito al DSDM, como son ArcStyler [5], Together [6] o AndroMDA [7]. El mundo de la ingeniera Web no es ajeno a esta tendencia, y diversas aproximacio- nes han ido apareciendo con el fin de proporcionar soporte para el desarrollo de apli- caciones Web dirigido por modelos. Estas aproximaciones introducen modelos con- ceptuales para capturar de forma abstracta los diferentes aspectos que definen una 1 Este trabajo ha sido desarrollado con el soporte del MEC bajo el proyecto DESTINO TIN2004-03534 y cofinanciado por FEDER

Upload: dinhxuyen

Post on 18-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

OOWS Suite: Un Entorno de desarrollo para

Aplicaciones Web basado en MDA1

Francisco Valverde1, Pedro Valderas

1, Joan Fons

1

1 Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de

Valencia, Camino de Vera S/N, 46022 Valencia, España

{fvalverde, pvalderas, jjfons}@dsic.upv.es

Resumen En este trabajo, se introduce un entorno de desarrollo MDD para

aplicaciones Web: La OOWS Suite. Dicho entorno proporciona herramientas

que dan soporte al proceso de desarrollo del método OOWS permitiendo la ge-

neración automática de aplicaciones Web totalmente funcionales. Estas herra-

mientas son: (1) Un modelador basado en Eclipse que permite la edición visual

de modelos OOWS. (2) Un conjunto de transformaciones modelo-a-texto que

permiten generar de forma automática la interfaz Web de una aplicación a partir

de estos modelos. Para implementar dicha interfaz se ha desarrollado un fra-

mework que, siguiendo la filosofía de las Factorías de Software, reduce el nivel

de abstracción entre los modelos conceptuales y el código a generar facilitando

la definición de las transformaciones. (3) Una estrategia para integrar dichas

herramientas con OlivaNova, una herramienta comercial de generación de apli-

caciones tradicionales (no-Web) en ambientes transaccionales. Esta integración

nos permite delegar la generación de la lógica de negocio de una aplicación

Web en una herramienta altamente contrastada a nivel industrial

1 Introducción

El Desarrollo de Software Dirigido por Modelos (DSDM) comienza a proporcionar

resultados prometedores. Existen distintos indicadores que nos hacen ser optimistas

en cuanto a la evolución e implantación industrial de esta filosofía de desarrollo. Em-

pezando por el gran empuje que constituye MDA del OMG [1] y la reciente aparición

de las Fábricas de Software [2] impulsadas por Microsoft. Quizás uno de los aspectos

más esperanzadores es el desarrollo continuo de tecnologías y herramientas para la

construcción de herramientas CASE que dan soporte al DSDM como son el proyecto

Eclipse Modeling Project [3] y las DSL Tools [4] integradas en MS Visual Studio

2005. También invita al optimismo la proliferación de herramientas con un soporte

explícito al DSDM, como son ArcStyler [5], Together [6] o AndroMDA [7].

El mundo de la ingeniera Web no es ajeno a esta tendencia, y diversas aproximacio-

nes han ido apareciendo con el fin de proporcionar soporte para el desarrollo de apli-

caciones Web dirigido por modelos. Estas aproximaciones introducen modelos con-

ceptuales para capturar de forma abstracta los diferentes aspectos que definen una

1 Este trabajo ha sido desarrollado con el soporte del MEC bajo el proyecto DESTINO

TIN2004-03534 y cofinanciado por FEDER

Page 2: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

aplicación Web. A partir de estos modelos proponen el uso de transformaciones mo-

delo-a-modelo o modelo-a-texto con el fin de obtener el código equivalente a la repre-

sentación abstracta de la aplicación Web que constituye el modelo. En este sentido,

hay que destacar aproximaciones como OOHDM [8], WebML [9], WSDM [10],

OOWS [11], UWE [12] u OOH [13] que son ampliamente aceptadas en el ámbito

científico de la ingeniería Web y que han sido probadas y validadas en el desarrollo

de diferentes aplicaciones. Además, algunas de ellas ya proporcionan herramientas

que dan soporte a su método, como son el caso de WebRatio (herramienta que da

soporte a WebML y que ha sido implantada a nivel industrial), ArgoUWE (UWE) o

VisualWade (OOH). Estas herramientas permiten la definición de modelos que captu-

ran los aspectos estructurales, navegacionales y de presentación de las aplicaciones

Web. Además, proporcionan soporte para la generación de código a partir estos mo-

delos. Sin embargo, aunque estas herramientas se encuentran en constante desarrollo,

los aspectos de comportamiento son actualmente soportados de forma parcial desde

un punto de vista de modelado conceptual. El comportamiento que ofrecen se centra

básicamente en operaciones CRUD2 ligadas a la base de datos y en operaciones arit-

méticas básicas, no permitiendo establecer pre/postcondiciones en las operaciones o

definir cambios complejos en el estado de los objetos.

En este trabajo, se introduce la OOWS Suite, un entorno de desarrollo para aplica-

ciones Web basado en el método de ingeniería Web OOWS. OOWS constituye una

extensión del método OO-Method [14] para dar soporte al modelado conceptual de

aplicaciones Web. En este contexto, el entorno de desarrollo OOWS Suite proporcio-

na herramientas que, basándose en una arquitectura MDA, permiten la creación de los

diferentes modelos OOWS/OO-Method y la generación automática de aplicaciones

Web. Con dicho fin, la OOWS Suite integra la herramienta industrial OlivaNova. Esta

herramienta comercial ha sido desarrollada por la empresa Care Technologies S.A.

[15] y permite generar de forma automática sistemas software completos a partir de

los modelos OO-Method. La OOWS Suite proporciona mecanismos que extienden la

funcionalidad de OlivaNova para soportar correctamente el modelado de aplicaciones

Web y la posterior generación de código. Estas extensiones constituyen la principal

aportación de este trabajo y son las siguientes:

1. Se ha desarrollado una herramienta de modelado basada en Eclipse que da soporte

a la definición de los modelos introducidos por OOWS: el modelo navegacional y

el modelo de presentación.

2. Se ha definido una estrategia basada en transformaciones modelo-a-texto que per-

mite generar código a partir de los modelos OOWS. El código generado está basa-

do en un framework de implementación de aplicaciones Web que reduce el nivel

de abstracción entre los modelos OOWS y el código a generar. Para ello, el fra-

mework proporciona constructores basados en conceptos abstractos del desarrollo

Web (como página, enlace, mecanismo de identificación, etc.).

3. Se han implementado mecanismos para la integración conservativa de las exten-

siones propuestas por OOWS con la herramienta comercial OlivaNova. Esta inte-

gración se realiza a dos niveles: (1) A nivel de modelado, permitiendo que, en

tiempo de modelado, la herramienta que da soporte a los modelos OOWS interac-

túe correctamente con los modelos OlivaNova, y (2) a nivel funcional, permitiendo

2 Create, Relationship, Update, Delete

Page 3: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

la interoperabilidad, en tiempo de ejecución, entre la interfaz Web generada a partir

de los modelos OOWS y la lógica de negocio generada por OlivaNova.

El resto del trabajo se estructura como sigue: La sección 2 presenta brevemente el

proceso de desarrollo basado en OOWS/OO-Method al cual de soporte la OOWS

Suite. En la sección 3 se introduce la herramienta de modelado desarrollada para crear

modelos OOWS. En la sección 4 se detalla la estrategia seguida para la generación de

código a partir de estos modelos así como el framework de implementación y los

mecanismos para definir y asociar aspectos estéticos al código generado. En la sec-

ción 5 se introduce la integración de las extensiones propuestas por OOWS con la

herramienta comercial Olivanova. Por último, la sección 6 introduce las conclusiones

y líneas de trabajo futuras.

2 Proceso de desarrollo OOWS/OO-Method

La OOWS Suite proporciona soporte para el desarrollo de aplicaciones Web basándo-

se en el método de ingeniería Web OOWS. OOWS surge como una extensión para el

ámbito de las aplicaciones Web del método de producción de software orientado a

objetos OO-Method. OO-Method proporciona mecanismos para la generación de có-

digo a partir de modelos conceptuales. Basándose en una arquitectura MDA, este

método define un PIM en el cual se modelan tanto los aspectos estáticos como diná-

micos del sistema a través de tres vistas complementarias entre sí:

• Un Modelo Estructural, que define la estructura estática del sistema mediante la

definición de sus clases y las relaciones entre éstas. Este modelo se basa en el dia-

grama de clases UML.

• Un Modelo Dinámico, que describe la secuencia válida de estados en la vida de los

objetos pertenecientes a cada clase del sistema. Para ello se utiliza un Diagrama de

Transición de Estados UML. Además, también se describe la interacción entre ob-

jetos de diferentes clases mediante un Diagrama de Secuencia UML.

• Un Modelo Funcional, que especifica la semántica de cada cambio de estado en la

vida de un objeto definiendo el efecto de sus servicios. Para ello, se utiliza una es-

pecificación formal textual.

OO-Method ha sido implantado a nivel industrial mediante la herramienta OlivaNo-

va [16], la cual da soporte al método. OlivaNova proporciona un modelador que per-

mite la edición visual de los modelos OO-Method e implementa un motor de trans-

formación [17] que genera de forma automática y completa código en entornos tran-

saccionales (Java y .NET). Para ello, la herramienta transforma internamente el PIM

de OO-Method en el PSM correspondiente a la tecnología destino. A partir de este

PSM, genera código basado en una arquitectura de tres capas (presentación, lógica de

negocio y persistencia). La figura 1 muestra, en su parte izquierda, el proceso de desa-

rrollo de OO-Method.

OOWS introduce dos nuevos modelos en el proceso de desarrollo OO-Method, con

el fin de soportar correctamente las nuevas características enfatizadas en el desarrollo

de aplicaciones Web (navegación y presentación). Estos modelos son:

Page 4: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

• El Modelo Navegacional, que define la estructura navegacional del sistema. Dicho

modelo se define a partir de un conjunto de grafos cuyos nodos (contextos navega-

cionales) representan vistas sobre el modelo estructural de OO-Method y cuyos ar-

cos representan enlaces de navegación entre los nodos. Cada una de las vista define

la información y funcionalidad que debe proporcionarse en los contextos navega-

cionales. Básicamente, un contexto navegacional representa a nivel conceptual una

de las páginas que definen la aplicación Web a nivel de implementación.

• El Modelo de Presentación, que especifica las propiedades que deben cumplir la

información mostrada. Para ello, se proponen un conjunto de patrones de presenta-

ción aplicables a las primitivas abstractas definidas en el modelo navegacional. Di-

chos patrones indican aspectos como la organización de la información (modo re-

gistro, tabular, maestro-detalle, etc), ordenación de la información, etc.

PIM

DIG

O

OO-Method

PIM

-to-P

SM

-to-C

ode

MODELO DINÁMICO

MODELO FUNCIONAL

OLIVANOVA MODELLER

Clase Relación

Atributos

PSM+

Generador de Código

OLIVANOVA

TRANSFORMATION ENGINE

Aplicación

MODELO NAVEGACIONAL

MODELO DE PRESENTACIÓN

OOWS

Capa de Presentación

Capa de Lógica de Negocio

Capa de PersistenciaArquitectura de 3

capas

Framework

Interfaz Web

PROCESO DE TRADUCCIÓN

Mod

el D

riven

Arc

hite

ctur

e

+Generador de codigo

PIM

DIG

OTra

nsf

orm

aci

ón A

uto

mátic

aCompilador OOWS

Aplicación Web

Integración

MODELO ESTRUCTURAL

Editor Visual OOWS

Desarrollo de aplicaciones Web mediante OOWS Suite

Fig. 1. Proceso de desarrollo MDA

En este contexto, la herramienta que da soporte a OO-Method, OlivaNova, debe ser

extendida para permitir la creación de los nuevos modelos introducidos por OOWS

así como para considerar correctamente, en el proceso de generación de código, la

información definida en ellos. Como se ha comentado en la introducción, debido a

políticas comerciales de la empresa, dicha extensión debe realizarse de una forma

conservativa (sin modificar el producto OlivaNova) con el fin de asegurar que no

existen problemas de compatibilidad con las aplicaciones previamente desarrolladas.

Para lograr esta meta, se ha construido el entorno de desarrollo OOWS Suite. Dicho

entorno introduce una serie de herramientas que, basándose en OOWS, complemen-

tan conservativamente el proceso de desarrollo OO-Method con el fin de dar soporte

Page 5: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

al desarrollo de aplicaciones Web. El nuevo proceso de desarrollo que define la

OOWS Suite se muestra en la Figura 1. La parte izquierda de esta figura representa el

proceso de desarrollo de OO-Method. La parte derecha representa las extensiones que

complementan este proceso y que dan soporte al desarrollo de aplicaciones Web. Así

pues, el proceso de desarrollo que soporta la OWS Suite se divide en tres etapas:

1. Modelado: Se construye el PIM que define los diferentes aspectos de una aplica-

ción Web. Los modelos OO-Method que capturan los aspectos estáticos y de com-

portamiento son definidos mediante el modelador de OlivaNova [16]. El modelo de

navegación y de presentación son definidos por la herramienta de modelado

OOWS. Dicha herramienta se presenta en la sección 3. La estrategia definida para

la interacción de ambas herramientas se explica con detalle en la sección 5.1

2. Generación de código: En esta etapa se llevan a cabo dos procesos de generación

de código paralelos. Por un lado, el motor de transformación de OlivaNova obtiene

código a partir de los modelos OO-Method mediante una transformación PIM-

PSM-Código. Información sobre esta transformación puede encontrase en [17]. Por

otro lado, un compilador de modelos OOWS genera una interfaz Web mediante

una transformación modelo-a-texto (lo que MDA denomina una transformación

automática). Dicha transformación se introduce en la sección 3.2.

3. Integración OOWS/OO-Method: La integración de la información capturada por

los modelos OO-Method con la información capturada por los modelos OOWS se

lleva a cabo a nivel de implementación. La interfaz Web generada a partir de los

modelos OOWS está basada en un framework que se encarga de interactuar con la

lógica de negocio de OlivaNova (.NET, Java etc.). Las diferentes primitivas que in-

troduce del framework, así como ejemplos de su uso se introducen en las secciones

4.1 y 4.3. La integración del framework con el código OO-Method se introduce en

la sección 5.2.

El proceso de desarrollo propuesto por la OOWS Suite permite implementar (si-

guiendo una arquitectura MDA) aplicaciones Web totalmente funcionales. Además,

extiende de forma conservativa la herramienta OlivaNova, ahorrándole a Care Tech-

nologies problemas de compatibilidad con proyectos ya desarrollados. A continua-

ción, se presentan cada una de las extensiones introducidas por la OOWS Suite.

3 Herramienta de modelado para los modelos OOWS

Para dar soporte a la creación de modelos OOWS, se ha desarrollado una herramienta

basada en la plataforma Eclipse Modelling. Dicha herramienta debe soportar dos

aspectos básicos:

• Creación y Persistencia de Modelos: Se deben proporcionar mecanismos que

faciliten la creación de modelos OOWS, respetando siempre su metamodelo, y la

serialización de los modelos en un lenguaje estándar. Para satisfacer estas necesi-

dades se han utilizado los componentes que proporciona el Eclipse Modelling

Framework (EMF) [18]. A partir de la definición en ECore (subconjunto del están-

dar MOF de la OMG) del metamodelo de OOWS, EMF nos proporciona la funcio-

nalidad necesaria para poder crear y modificar modelos conceptuales. Además,

EMF proporciona mecanismo para almacenar los modelos en el formato XMI, es-

Page 6: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

tándar de la OMG para el intercambio de modelos conceptuales, abriendo la posi-

bilidad de interacción con otras herramientas de modelado externas.

• Edición visual de Modelos: Para facilitar la construcción de los modelos OOWS

se propone desarrollar una herramienta de edición visual de modelos similar a las

herramientas CASE industriales. Para esta tarea se ha utilizado el Eclipse Grap-

hical Modelling Framework (GMF). Este framework permite la generación auto-

mática de editores gráficos a partir de una especificación que asocie primitivas de

modelos Ecore a su representación gráfica o textual.

Fig. 2. OOWS Case Tool

En la figura 2 puede verse una captura de la herramienta desarrollada con el modelo

navegacional OOWS de la aplicación Web IMDB3 (la cual utilizaremos como caso de

estudio en el resto del articulo). La aplicación Web IMDB constituye la mayor fuente

de información cinematográfica de acceso público. En este sentido, en el modelo

navegacional de dicha aplicación se definen contextos navegacionales que proporcio-

nan información relacionada con el cine. Por ejemplo, el contexto TopMovies muestra

un ranking de las mejores películas valoradas por los usuarios y el contexto MovieIn-

formation proporciona información detallada sobre una película determinada.

4 Generación de código a partir de los modelos OOWS

La estrategia definida para generar código a partir de los modelos OOWS está basada

en un conjunto de transformaciones modelo-a-texto. Con el fin de facilitar la defini-

ción de estas transformaciones, se ha desarrollado un framework que reduce el gap

semántico entre los modelos OOWS y el código generado. Para ello, el framework

proporciona un conjunto de constructores de alto nivel de abstracción. Además, dicho

3 The Internet Movie Database, http://www.imdb.com

Page 7: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

framework define una serie de mecanismos para incorporar los aspectos estéticos a

través de plantillas de presentación, totalmente independientes del código que imple-

menta la funcionalidad y la recuperación de información.

Así pues, en esta sección se introduce en primer lugar el framework desarrollado

para la implementación de aplicaciones Web. A continuación, se presentan las trans-

formaciones modelo-a-texto. Finalmente, se comentan los mecanismos proporciona-

dos por el framework para integrar aspectos estéticos.

4.1 Framework de implementación

El objetivo del framework de implementación es el de simplificar la definición de las

transformaciones de modelo a código. El lenguaje de implementación utilizado ha

sido PHP 5, al ser un lenguaje habitualmente utilizado para la creación de frameworks

en entornos Web como Zend Framework [19] o CakePHP [20]. El framework propor-

ciona constructores de alto nivel de abstracción para la implementación de páginas

Web. Dichos constructores se definen a partir de un conjunto de clases que represen-

tan conceptos habituales a la hora de construir aplicaciones Web como son página,

enlace, menú de navegación, etc. En este sentido, el framework define una aplicación

Web como un conjunto de objetos que especifican la información y funcionalidad que

la aplicación Web debe proporcionar. Los objetos principales que componen una a-

plicación Web son:

• Application: Este objeto, que es único en cada aplicación, contiene la información

global. Por ejemplo, a través del método Rol permite definir los tipos de usuarios

que pueden acceder a la aplicación o mediante la propiedad AllowAnonymous per-

mite autorizar el acceso anónimo. También es posible seleccionar los estilos de

presentación mediante el método DefaultStyle. Además, proporciona el método

AddPage para definir los objetos Page que compone nuestra aplicación.

• Page: Cada objeto Page permite implementar una página Web. Siguiendo criterios

de usabilidad definidos en [21], este objeto construye cada página Web como la

agregación de un conjunto de zonas de contenido. Las zonas de contenido más im-

portantes que permite definir este objeto son:

− Navegación: proporciona al usuario el conjunto de enlaces de navegación que puede activar dentro de la página en la que se encuentra.

− Información: recupera información del sistema para ser mostrada, generalmen-

te, desde la capa de persistencia.

− Entrada de datos: se encarga de proporcionar al usuario un formulario, en el

cual pueda introducir la información necesaria para la ejecución de un servicio.

− “Custom”: contiene información, generalmente independiente del dominio de

la aplicación, que no puede ser catalogada como por ejemplo banners.

El objeto Page proporciona primitivas para añadir estás zonas de contenido como

por ejemplo AddNavigationZone o AddInformationZone.

• Zone: Este objeto se encarga de especificar cada una de las zonas de contenido citadas anteriormente. Tomando como ejemplo la zona de información, proporcio-

na el método AddField para indicar los atributos van a ser recuperados y AddDetail

para mostrar información relacionada. También es posible definir mecanismos de

Page 8: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

filtrado e indexación de la información, a través de las primitivas DefineFilter y

DefineIndex respectivamente.

La figura 3 muestra la implementación parcial de una página del caso de estudio.

Por último, comentar que para poder utilizar el framework, éste debe ser previamente

instalado en el servidor donde se encuentren las páginas Web de la aplicación. Cuan-

do el usuario realiza una petición de acceso a una página Web, el framework se en-

carga de crear el conjunto de objetos que forman la página Web solicitada (según la

definición del objeto Page correspondiente). Dichos objetos se encargan de producir

código XHTML que permite visualizar la página en el navegador Web del usuario.

Además, el framework proporciona constructores de alto nivel pero independientes

del método OOWS. Esto permite que el framework pueda ser utilizado como tecnolo-

gía destino por cualquier método de ingeniería Web.

Fig. 3. Ejemplo del código del framework

4.2 Proceso de generación de código

A la hora de abordar el proceso de transformación de un modelo a código existen

distintas alternativas. Desde la transformación basada en grafos como se muestra en

[22], pasando por el uso de lenguajes de plantillas [23] e incluso la aplicación de

transformaciones XSLT [24]. La opción que se ha escogido ha sido la de utilizar

openArchitectureWare (oAW) [25], un framework de herramientas de soporte al

DSDM. La gran ventaja de oAW respecto a otras soluciones se basa en el hecho de

estar basada en la plataforma Eclipse y por lo tanto, es posible integrar perfectamente

las herramientas que proporciona dentro de la OOWS Suite. Entre otras utilidades,

oAW proporciona el lenguaje xPand para la generación código a partir de modelos.

Este lenguaje, permite la definición de reglas que toman como entrada una primitiva

Page 9: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

conceptual de un modelo. A partir de la información de dicho elemento se completa

una plantilla de código.

Para hacer posible el proceso de generación de código, se han definido las corres-

pondencias entre las primitivas conceptuales de OOWS y las primitivas del frame-

work. Todo elemento del metamodelo de OOWS tiene asociada una regla que esta-

blece el código del framework al cual se traduce. Tomemos como ejemplo, la primiti-

va conceptual “modelo navegacional” (descrita en la sección 2) junto con su regla

asociada, ModelNavigationRule (ver Figura 4). En primer lugar, esta regla añade el

usuario al cual pertenece el modelo navegacional a través de la primitiva Rol del obje-

to Application. A continuación para cada contexto se crea una nueva página Web a

través de la primitiva Page.

Fig. 4. Regla de transformación para el modelo navegacional

4.3 Definiendo los aspectos visuales de presentación

La OOWS Suite proporciona una estrategia para definir los aspectos estéticos basada

en plantillas de presentación., definidas mediante el lenguaje CSS. Se introducen dos

tipos de plantillas:

• Independientes del Dominio: los estilos de estas plantillas se definen a partir de las primitivas conceptuales de OOWS/OO-Method y los términos que introduce el fra-

mework. Estilos de este tipo son por ejemplo: InformationZone, AttributeName,

NavigationLink, etc. Este grupo de etiquetas define un conjunto de estilos genéri-

cos que pueden ser aplicados a cualquier aplicación generada mediante la OOWS

Suite.

• Dependientes del Dominio: a diferencia de las anteriores, sus estilos se definen a partir de conceptos propios del dominio de la aplicación a construir. Estilos de este

tipo son por ejemplo: MovieTitle, Director, Cast, etc. Estos estilos no son reutiliza-

bles.

La Figura 5A muestra la definición de dos estilos dependientes. Dichos estilos se

han definido específicamente para el caso de estudio IMDB. Definen las propiedades

estéticas que deben presentar el título de cada película .MovieInformation.MovieTitle)

así como el reparto de actores (.MovieInformation .Cast). Como vemos, estos estilos

están definidos a partir de conceptos propios de la aplicación IMDB y no pueden ser

utilizados en otras aplicaciones. La Figura 5B muestra la definición de tres estilos

independientes los cuales, definen las propiedades estéticas que deben cumplir la zona

de información de cada página (.InformationZone), el nombre de los atributos defini-

dos en las clases del modelo estructural (.AttributeName) y el valor de dichos atribu-

tos (.AttributeValue). Estos estilos, aunque también han sido utilizados en el caso de

Page 10: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

estudio, son independientes de dominio y por tanto pueden ser utilizados en el desa-

rrollo de otras aplicaciones Web.

Fig. 5. Estilos dependientes e independientes de domino

El framework es el encargado de asociar los aspectos estéticos definidos en las plan-

tillas de presentación al código que implementa la aplicación Web. Para ello, la estra-

tegia seguida es la siguiente:

1. En primer lugar, los constructores del framework producen código XHTML sin

ningún tipo de formato predefinido. Sin embargo, dicho código esta marcado

mediante un conjunto de estilos independiente y dependientes. Los estilos inde-

pendientes han sido predefinidos e integrados directamente en el framework. Por

otra parte, los estilos dependientes son generados dinámicamente por los cons-

tructores del framework, a partir de la información de nuestros modelos.

2. Por otro lado, el framework proporciona el método DefaultStyle del objeto Ap-

plication, que nos permite introducir las plantillas de presentación que deben

asociarse al código XHTML. Por ejemplo, si asociamos la plantilla de presenta-

ción que define el look and feel de ImDB del siguiente modo:

$Application->DefaultStyle("IMDB");

El framework generará la siguiente línea de código XHTML cada vez que el

usuario acceda a una página de la aplicación Web:

<link rel="stylesheet" type="text/css" href="IMDB.css">

Esta estrategia basada en plantillas dependientes e independientes de dominio pre-

senta las siguientes ventajas:

• Adaptabilidad: Cambiar el “look and feel” de una aplicación resulta tan sencillo

como cambiar la plantilla del método DefaultStyle del objeto Application. La fi-

gura 6 presenta la visualización de una página Web del caso de estudio tras

haberle asociarlo dos plantillas de presentación diferentes.

• Reusabilidad: todas las aplicaciones Web desarrolladas mediante la OOWS Sui-

te están implementadas mediante código XHTML. Dicho código comparte en

cualquier desarrollo el marcado basado en los estilos de presentación indepen-

dientes de domino. En este contexto, las plantillas independientes de domino

pueden ser asociadas al código de cualquier aplicación Web.

Page 11: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

Fig. 6. Una misma página Web con diferente “Look & Feel”

5 Integración OOWS/OO-Method

A fin de dar soporte a la generación automática de aplicaciones Web a nivel indus-

trial, los nuevos modelos introducidos por OOWS deben integrarse con los modelos

OO-Method proporcionados por la herramienta OlivaNova. Dicha integración debe

realizarse a dos niveles: En primer lugar, a nivel de modelado, permitiendo la correcta

interacción de los modelos OOWS basados en EMF con los modelos OO-Method de

OlivaNova. En segundo lugar, a nivel de generación de código, donde la funcionali-

dad generada por OlivaNova debe comunicarse con la interfaz Web generada a partir

de los modelos OOWS.

5.1 Integración a nivel de modelado

La definición de los modelos OOWS se realiza partiendo del modelo estructural de

OO-Method definido mediante el modelador de OlivaNova. Por ejemplo, para definir

la vista que constituye cada contexto navegacional es necesario conocer las clases

definidas en el modelo estructural. Así pues, la integración entre ambas herramientas

de modelado se llevará a cabo a través del modelo estructural OO-Method. Para ello,

se deben proporcionar dos tipos de mecanismos: (1) Mecanismos que faciliten a la

herramienta OlivaNova la exportación del modelo estructural y (2) mecanismos que

faciliten a la herramienta de modelado OOWS la importación del mismo modelo.

Los mecanismos para la exportación del modelo estructural ya vienen proporciona-

dos por la herramienta OlivaNova, ya que dicha herramienta almacena sus modelos

mediante el lenguaje estándar XML. Los mecanismos para la importación de este

modelo estructural deben ser implementados en la herramienta de modelado OOWS.

La solución adoptada para resolver este problema ha sido la siguiente (ver Figura 7):

• En primer lugar, se ha utilizado Ecore para definir el metamodelo del modelo es-

tructural. Ecore es un lenguaje definido a partir de un subconjunto de MOF para la

Page 12: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

construcción de metamodelos. Además, es la base de EMF por lo que es fácilmente

integrable en la herramienta de modelado OOWS (la cual ha sido desarrollada tam-

bién mediante EMF, ver sección 3). Así pues, el metamodelo definido en Ecore se

introduce en dicha herramienta extendiendo el metamodelo de OOWS. Esto permi-

te que la herramienta soporte los diferentes conceptos abstractos que definen el

modelo estructural.

• A continuación, se ha definido una transformación de modelo-a-modelo que permi-

te transformar un modelo estructural de OlivaNova en un modelo estructural basa-

do en el metamodelo Ecore (almacenado en un documento XMI basado en XML).

Una vez realizada esta transformación, el modelo estructural Ecore (en el cual se

especifica la lógica de negocio de la aplicación Web) puede ser cargado en la

herramienta de modelado OOWS. Para definir la transformación se ha utilizado

una plantilla XSLT. Se ha optado por esta opción porque el modelo estructural

OlivaNova y el modelo estructural Ecore se almacenan como documentos XML.

XSLT nació con el fin de proporcionar precisamente transformaciones entre este

tipo de documentos.

Modelo Estructural

Olivanova (XML)

OlivaNova Modelador OOWS

Modelo Estructural Ecore (XMI)

TransformaciónM2M Metamodelo

OOWS

Metamodelo del Modelo EstructualBasado en Ecore

<<extiende>>XSLT

Paso 1Paso 2

Basado en

Fig. 7. Integración a nivel conceptual con OlivaNova

5.2 Integración a nivel funcional

A partir de los modelos OOWS se genera una interfaz Web implementada mediante el

framework introducido en la sección 4.1. Sin embargo, la lógica de negocio es gene-

rada por OlivaNova en una tecnología diferente a la que utiliza dicho framework. En

este sentido, es necesario definir un mecanismo para integrar la interfaz con la lógica

de negocio.

Para acotar el problema, nos hemos centrado en el código generado por OlivaNova

para la plataforma .NET, en donde la lógica de negocio se encapsula como un com-

ponente COM+. La comunicación de las interfaces con dicho componente se produce

mediante el envío de un mensaje XML con la consulta/servicio requerido y la recep-

ción de otro mensaje con la respuesta. Así pues, la interfaz Web implementada me-

diante el framework debe comunicarse con la lógica de negocio implementada por

OlivaNova a través de mensajes XML.

Para llevar a cabo este proceso de comunicación, se ha definido una fachada de

negocio denominada OlivaNovaFacade (ver Figura 8). Dicha fachada proporciona un

Page 13: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

conjunto de métodos que pueden ser utilizados por el framework y que se encargan de

construir los mensajes XML adecuados. Los métodos más importantes son:

• QueryPopulation: devuelve la población relacionada de una clase determinada.

• QueryById: devuelve una única instancia de una clase a partir de su oid. • QueryRelated: a partir del oid de una instancia, devuelve todas las instancias de

una clase relacionadas.

• ExecuteService: a partir del identificador unívoco de un servicio tal y el conjunto de valores de los argumentos, ejecuta dicho servicio.

• GetServiceResponse: recupera el resultado o el error de la ejecución de un servicio.

Fig. 8. Integración con la funcionalidad generada con OlivaNova

6 Conclusiones

En este trabajo, se ha introducido la OOWS Suite, un entorno de desarrollo MDD

para aplicaciones Web. Dicho entorno proporciona herramientas que dan soporte al

proceso de desarrollo OOWS/OO-Method permitiendo la generación automática a

partir de modelos de aplicaciones Web totalmente funcionales. Dicha aplicaciones

Web están basadas en tres capas (presentación, lógica de negocio y persistencia).

Para el desarrollo de la capa de presentación (o interfaz Web), la OOWS Suite

proporciona una herramienta de modelado y un conjunto de transformaciones mode-

lo-a-texto que permiten la edición visual de los modelos introducidos por OOWS y la

posterior generación automática de código. Dicha herramientas han sido construidas a

partir de estándares MDA (XMI, MOF) y herramientas libres (EMF, oAW) de gran

aceptación dentro del ámbito del DSDM y con grandes posibilidades de evolución.

Por otro lado, el código generado por las transformaciones está basado en un fra-

mework de implementación que, siguiendo la filosofía de las Factorías de Software,

reduce el nivel de abstracción entre los modelos conceptuales y el código a generar,

facilitando la definición de las transformaciones. El framework también proporciona

mecanismos que facilitan la adaptación y reutilización de aspectos estéticos a través

de plantillas de presentación.

Para el desarrollo de las capas de lógica de negocio y persistencia, se ha definido

una estrategia para integrar la herramienta comercial que da soporte a OO-Method

(OlivaNova) en la OOWS Suite. Esta integración permite delegar la generación de la

Page 14: OOWS Suite un entorno de desarrollo MDA de aplicaciones Web 2 · En la sección 3 se introduce la herramienta de modelado desarrollada para crear ... PIM-to-PSM-to-Code MODELO DINÁMICO

lógica de negocio de una aplicación Web en una herramienta altamente contrastada a

nivel industrial. Además, extiende de forma conservativa la herramienta OlivaNova,

evitando que surjan problemas de compatibilidad con proyectos ya desarrollados.

Por ultimo, comentar que el proceso de desarrollo soportado por la OOWS Suite ha

sido validado en el desarrollo de aplicaciones Web reales como el sitio Web del de-

partamento de sistemas informáticos y computación (www.dsic.upv.es).

Referencias

[1] Object Management Group (OMG). www.omg.org.

[2] Greenfield, J., Short, K., Cook, S., Kent S. and Crupi, J., Software Factories: Assembling

Applications with Patterns, Models, Frameworks, and Tools, Wiley.

[3] Eclipse Modelling Project. www.eclipse.org/modeling/

[4] Microsoft DSL Tools. http://msdn2.microsoft.com/en-us/vstudio/aa718368.aspx.

[5] Arcstyler. www.interactive-objects.com/products/arcstyler

[6] Borland Together. www.borland.com/us/products/together/index.html

[7] AndroMDA. www.andromda.org

[8] Schwabe D., Rossi G., and Barbosa. S. Systematic Hypermedia Design with OOHDM. In

ACM Conference on Hypertext, Washington, USA, 1996.

[9] Ceri, S. Fraternali, P., Bongio, A., Brambilla M., Comai S., Matera M. (2003). Designing

Data-Intensive Web Applications.Morgan Kaufman

[10] O. De Troyer and S. Casteleyn. Modelling Complex Processes from web applications

using WSDM. In IWWOST 2003. Oviedo, Spain. 2003 pp 1-12.

[11] Fons J., Pelechano V., Albert M., and Pastor O. Development of Web Applications from

Web Enhanced Conceptual Schemas. In ER 2003, vol. 2813 of LNCS. Springer

[12] N. Koch. Software Engineering for Adaptive Hypermedia Applications. PhD thesis,

Ludwig-Maximilians-University, Munich, Germany, 2000.

[13] J. Gómez, C. Cachero, O. Pastor. Extending an Object-Oriented Conceptual Modelling

Approach to Web Application Design. June 2000. CAiSE'2000, LNCS 1789, Pags 79-93

[14] Pastor, O., Gomez, J., Insfran, E. and Pelechano, V. The OO-Method Approach for Infor-

mation Systems Modelling: From Object-Oriented Conceptual Modeling to Automated

Programming. Information Systems 26, pp 507–534 (2001)

[15] Care Technologies S.A. www.care-t.com

[16] OlivaNova Modeller. http://www.care-t.com/products/modeler.asp

[17] OlivaNova Transformation Engine. http://www.care-t.com/products/transengine.asp

[18] Budinsky, F., Steinberg, D., Merks, E., Ellersick, R. and Grose T.J., Eclipse Modelling

Framework: A developer’s guide, Addison-Wesley, 2004.

[19] Zend Framework. http://framework.zend.com/

[20] CakePHP. www.cakephp.org

[21] Olsina, L. Metodologia Cuantitativa para la Evaluacion y Comparacion de la Calidad de

Sitios Web. PhD thesis, Facultad de Ciencias Exactas de la Universidad Nacional de La

Plata (1999).

[22] Rozenberg G. (ed.).Handbook of Graph Grammars and Computing by Graph Trans-

formation. World Scientific, Singapore (1997)

[23] Muñoz, J. and Pelechano, V., Building a software factory for pervasive systems develop-

ment., in CAiSE, volume 3520 of Lecture Notes in Computer Science, pages 342–356,

Springer, 2005.

[24] Kovse, J. and Härder, T. Generic XMI-Based UML Model Transformations. 8th Interna-

tional Conference on Object-Oriented Information Systems, Montpellier, France, 2002.

[25] OpenArchitectureWare. www.openarchitectureware.org