Objetivos

Definición del objetivo principal científico y tecnológico

 

El desarrollo de aplicaciones Web es una de las áreas más activas en el desarrollo software, tanto a nivel nacional como a nivel europeo. JEE (Java Enterprise Edition) es la opción preferida por los desarrolladores de software a la hora de elegir un lenguaje para llevar a cabo sus desarrollos, que cuenta con un millón de desarrolladores en Europa y 50.000 desarrolladores en España, un número muy elevado si lo comparamos con otros países como Italia con 35.000 desarrolladores [Eur06].

 

A pesar de que el desarrollo Web es un área muy activa, no es área madura, lo que ha provocado la aparición de múltiples frameworks y componentes. Esto ha incrementado notablemente las habilidades que necesitan los desarrolladores para llevar a cabo desarrollos web, provocando un decremento en su productividad y en la fiabilidad de los desarrollos Web.

  

La aparición de un nuevo paradigma de desarrollo software para el desarrollo de aplicaciones web como Ruby on Rails [Taf04], unido a la moderna integración de servicios web usando tecnologías mashup, ha cuestionado las actuales tendencias en desarrollo software, y ha mostrado importantes incrementos en la productividad [Nor06] y fiabilidad en los desarrollos software.

 

El proyecto Java Sobre Ruedas (JsR) tiene el objetivo de contribuir a la promoción de un nuevo paradigma para desarrollar sistemas web con tecnología Java. El proyecto investigará en el estudio del modelo del dominio como conductor en el diseño (Domain Driven Design, DDD [Eva03]), para el desarrollo de aplicaciones web en Java, y propone, además, el empleo de un metaframework de código abierto en Java para llevar a cabo aplicaciones web.

 

El proyecto no se centrará solamente en el desarrollo software, sino que tratará los requisitos no funcionales del sistema, tales como la seguridad, la fiabilidad y el rendimiento.

  

Con el objetivo de tener un fuerte impacto, el proyecto no empezará desde cero, sino que está basado en varios proyectos open source, Roma y Trails. Estos proyectos serán extendidos de acuerdo a las necesidades de la propuesta y siguiendo la metodología de desarrollo de proyectos open source, para difundir y explotar los resultados del proyecto.

 

Por un lado Roma y Trails nos permitirá desarrollar proyectos en Java de manera más fácil, integrar frameworks y herramientas usando un Metaframework y reducir el tiempo de implementación. El proyecto se centrará en mejorar las herramientas que ya existen, como por ejemplo Spring, Tapestry, Hibernate, realizando una correspondencia entre los elementos del metaframework y estos frameworks. Esto permite facilitar el uso de los frameworks y aprovechar su robustez y evolución, pero reduciendo la curva de aprendizaje para su uso, mediante la generación de código automático a partir de la definición del dominio.

  

Objetivos industriales y socioeconómicos

 

El principal objetivo de Java Sobre Ruedas es mejorar el desarrollo web en diferentes aspectos como son la productividad, la fiabilidad y la seguridad. El proyecto centrará sus esfuerzos en mejorar los desarrollos web basados en tecnologías Java.

El impacto de Java Sobre Ruedas en el ámbito nacional está fundamentado en los siguientes puntos:

  • La mayoría de desarrollos software están implementados con Java Enterprise Edition. Este hecho está fundamentado en las siguientes referencias:

- Hegemonía del lenguaje Java. Basándonos en [Pri06, Tio07], Java es el lenguaje de programación más popular en comparación con C# o Ruby. En la comunidad de código abierto, Java empieza a tener la misma popularidad que C/C++ [Ohl07], mientras C# o Ruby son lenguajes todavía sin mucho peso dentro de la misma.

- Fuerte implantación en España. Basándonos en Sun Microsystems, hay 1 millón de desarrolladores Java en Europa, 50.000 en España, y cerca de 4,5 millones en todo el mundo. Basándose en Forrester, Java Enterprise Edition es el líder europeo del dominio financiero [Hop05].

- Hegemonía de Java Enterprise Edition en Europa. En un reciente estudio de Computer People [Bro06], sobre anuncios de trabajo en el Reino Unido, todos los anuncios de trabajo que requerían Java, también requerían Java Enterprise Edition. Este estudio también comparaba Java contra .Net, donde los anuncios que solicitaban conocimientos de Java, suponía un 36.86%, frente al 15.5% de .Net. Un estudio de QNB Intelligence [Cul03] mostró las mismas tendencias.

- Java Sobre Ruedas se basa en comunidades líderes que desarrollan usando el lenguaje de programación Java y con un carácter Open Source, como son ROMA y TRAILS.

- Java Sobre Ruedas es un proyecto de código abierto, que se albergará en la comunidad de código abierto española MORFEO, en la que Gesfor, UPM y ESI participan, y forman parte del Comité Gestor de la Plataforma Tecnológica INES de la que Morfeo forma parte. Además, Java Sobre Ruedas utiliza tecnologías de código abierto, lo que implica que puede ser usado, modificado y extendido por otras compañías de ámbito nacional y europeo. Muchas compañías que decidieron invertir en tecnologías de código abierto han tenido éxito, lo que ha provocado que muchas administraciones públicas se decidan a migrar sus productos propietarios a productos de código abierto, reduciendo costes en soporte y licencias.

 

Objetivos estratégicos y de infraestructura

 

En la actualidad existen numerosos frameworks y herramientas para llevar a cabo desarrollos software, esta variedad más que ayudar, confunde al desarrollador con numerosas preguntas: que frameworks son más maduros/extensos, cual es más productivo para mi problema concreto, cual tiene la curva de aprendizaje más corta, etc. Java Sobre Ruedas tendrá como objetivos estratégicos ayudar a los desarrolladores a llevar a cabo esa elección del framework más adecuado para su problema, a la integración de los mismos, a reducir la curva de aprendizaje, a centrar sus esfuerzos en la interacción con el usuario final y en resumen a ser más productivo.

 

Los objetivos que se alcanzarán en el proyecto son los siguientes:

 

Objetivo 1: Incrementar la productividad de los desarrollos web, que están basados en el lenguaje de programación Java: La existencia de numerosos frameworks y herramientas, requieren cada vez más y mejores habilidades por parte de los ingenieros web, a la hora de seleccionar, integrar y mantener estos componentes. Esto ha provocado un decremento en su productividad. Un objetivo clave en este proyecto es el uso de un diseño conducido por modelo del dominio, que se base en metaframework, para solucionar el problema de la integración de frameworks y herramientas, y que por lo tanto provoque un incremento en la productividad.

 

Objetivo 2: Mejorar la calidad del desarrollo software, tratando aspectos no funcionales, como por ejemplo la fiabilidad, rendimiento, seguridad y demás requisitos no funcionales: En el proceso de desarrollo software, los aspectos no funcionales como pueden ser el rendimiento, la fiabilidad y la escalabilidad, no se tienen muy en cuenta en el proceso de desarrollo y cuando se tienen en cuenta no queda muy claro cuales son los criterios que regulan su cumplimiento. Este proyecto investigará en la identificación y anotación en el metaframework de estos aspectos.

 

Además se profundizará en los aspectos de seguridad, ya que la inclusión de los mismos dentro del ciclo de vida del desarrollo software es una tarea necesaria, pero normalmente olvidada. La aplicación de un modelo de dominio como conductor del diseño puede facilitar la anotación semántica de los aspectos de seguridad. Este enfoque, unido a la generación automática de código, que abarca tanto aspectos de seguridad, como la generación de tests de seguridad, ayudará a reducir drásticamente el riesgo de introducir agujeros de seguridad por los desarrolladores, que lo que necesitan son facilidades y rapidez a la hora de desarrollar la lógica de su negocio y no en los aspectos de negocio.

 

Objetivo 3: Investigar en el balance adecuado entre tecnología de web de servidor y la nueva tendencia de cliente rico de internet. Recientemente, se está cambiando el balance entre tecnologías cliente y servidor, que está siendo una tendencia creciente con la difusión de Ajax y Flash. Un objetivo clave dentro de este proyecto, consistirá en investigar la integración de tecnologías de cliente desde la concepción del sistema, y analizar cómo esto posibilita aplicaciones más usables y eficientes.

 

Objetivo 4: Incrementar la productividad software mediante el uso de mashup: El uso de Mashup Web Services es una de las tendencias que están habilitando la Web 2.0. Sin embargo, no se ha investigado aún cómo los mashup web services pueden ser integrados en el proceso de desarrollo, y qué implicaciones tienen para los mismos, en cuanto a su fiabilidad y mantenibilidad. El uso de mashup de servicios web transforma la concepción de la web misma, que pasa de ser una web de información a una plataforma de servicios. Sin embargo, no está claro cómo se modelan estos servicios. En este proyecto se investigará en modelar los servicios mashup siguiendo una metodología de diseño dirigido por el dominio, integrando los mashups en el dominio. En el proyecto nos centraremos facilitar la introducción de mashups en los desarrollos para favorecer el incremento de la productividad. Se abordarán dos tipos de mashup: mashup de servicios web y enterprise mashup.

Mashup de Servicios Web. El uso de servicios web, tipo Google Maps y Yahoo Pipes ha provocado una aceleración en el desarrollo software. El objetivo de este punto será investigar en como integrar mashup de servicios web dentro de la definición del problema y como esto puede ayudar a la composición de servicios web de manera dinámica. (mashup de mashup).

Enterprise mashup. La finalidad de esta sección consistirá en investigar como la definición de un servicio enterprise mashup puede combinar información de motores de búsqueda, servicios web, sistemas de mensajes, motores BI y soluciones de integración de datos con servicios externos.

 

 

 

Proyecto PROFIT Tractor FIT-350401-2007-8 cofinanciado por el Ministerio de Industria, Turismo y Comercio, dentro del Plan Nacional de Investigacion Cientifica. Desarrollo e innovacion Tecnologica 2007-2008 (Nº Proyecto FIT-350401-2007-8 ).