accesskey_mod_content
CTT - Centro de Transferencia de Tecnología

gvNIX. Framework para el desarrollo ágil de aplicaciones web JAVA

  • Fecha Puesta en Producción:

    01/01/2010

    Indicadores:

    A Junio 2014:

     

    Número de Aplicaciones desarrolladas en DGTI con gvNIX: 7

    Tamaño L : 1

    Tamaño M : 2

    Tamaño S : 4

     

    Número de Aplicaciones desarrolladas fuera de la DGTI con gvNIX: 13

    Tamaño XL : 3 Diputación de Valencia

    Tamaño M : 4

    Tamaño S : 6

     

    Número de plugins: 18

    Número de usuarios en la Lista (da idea de Comunidad): 100+ (entre listas, stackoverflow, twitter, linkedin, etc)

    Cursos formativos: Ciclo formativo en conjunto con el Colegio de Ingenieros en Informática de la Comunidad Valenciana

    Cursos impartidos para funcionarios por el EVES y el IVAP.

    Descripción Funcional

    Es multiplataforma y fácil de instalar

    gvNIX es fácil de instalar tanto como herramienta independiente que funciona en Windows, Mac OSX, Linux o como herramienta integrada en un entorno de desarrollo: SpringSource Tool Suite, Eclipse e IntelliJ IDEA.

    Los únicos requerimientos son Java 6 SDK y Apache Maven 3. Una vez instalados, se descarga la distribución de gvNIX, se descomprime y se añade al PATH del sistema y lanzamos el entorno con el comando gvnix.

    Sistema de generación automática de código

    Crea código en unidades de compilación separadas: archivos .aj de AspectJ/ITD. De esta forma, la generación de código es totalmente inocua porque independiza completamente el ciclo de vida del código generado del ciclo de vida del código mantenido por los desarrolladores.

    Combina lo mejor de los modelos pasivo y activo de generación de código:

    • Generación pasiva a través de un intérprete de comandos para crear código bajo demanda.
    • Generación activa resultado de la monitorización constante de los cambios introducidos por los desarrolladores en los archivos del proyecto.

    No sobrecarga el entorno de ejecución

    gvNIX no añade ningún tipo de librería requerida en tiempo de ejecución. Además, las anotaciones Java utilizadas para controlar y personalizar la generación de código no son compiladas a código objeto (archivos .class).

    Esto significa que las aplicaciones desplegadas en los entornos de producción no  tienen ninguna dependencia de librerías de gvNIX.

    Ingeniería inversa de base de datos

    Permite crear el modelo completo de entidades Java de la aplicación vía la introspección de la base de datos del proyecto. Además, incrementalmente mantiene el modelo de entidades sincronizado con todos los cambios realizados en el modelo de datos.

    Scaffolding

    Construcción automática de la aplicación a partir de un meta-modelo definido en anotaciones Java, en sólo unos minutos se puede generar una aplicación totalmente funcional.

    Generación automática de servicios web

    • Clientes de sistemas externos: email, JMS y WebServices.
    • Servicios de la aplicación vía interfaz WebService. gvNIX permite integrar la aplicación con procesos de negocio remotos fácilmente. A partir de código Java con anotaciones JAX-WS o partir de archivos WSDL, genera automáticamente toda la infraestructura necesaria para recibir llamadas desde procesos externos.

    Control de concurrencia optimista

    En entornos multiusuario, como las aplicaciones web, es frecuente que dos usuarios accedan simultáneamente al mismo registro para editarlo. El control de concurrencia permite evitar que se pierdan los cambios del primero que guarde.           

    El patrón de control de concurrencia más aceptado en entornos web es el conocido como control de concurrencia optimista. La forma más habitual de implementarlo es utilizar un campo de versión que debe incluirse en todas las tablas del modelo de datos. En organizaciones públicas el modelo de datos sigue unas políticas de seguridad muy rigurosas y es frecuente que no se pueda añadir un nuevo campo de versión.

    gvNIX proporciona una implementación del control de concurrencia optimista basado en el estado de los objetos, igualmente efectivo pero no intrusivo.

    Seguridad

    Incorpora control de acceso y autorización por roles de usuario fácilmente.

    Informes

    Utiliza JasperReports para generar informes operativos dinámicamente y en diferentes formatos: PDF, LibreOffice, MSOffice, CSV. Cada informe es accesible desde el menú de la aplicación y genera un formulario previo para especificar los parámetros de filtrado.

    Los informes son totalmente funcionales desde su creación, incluyendo la generación de la plantilla .jrxml para permitir una personalización cómoda y fácil.

    Pruebas unitarias y funcionales

    Genera automáticamente pruebas de calidad de código, tanto unitarias con Junit como funcionales con Selenium.

    Otras funcionalidades:

    • Gestión de configuraciones por entorno. Por ejemplo, desarrollo, preproducción y producción
    • Generación de patrones de pantallas maestro-detalle multinivel.
    • Gestión de la estructura de páginas de la aplicación.
    • Gestión de temas visuales.

    Descripción Técnica

    El framework ha sido implementado con lenguaje Java y sigue un modelo de arquitectura orientado a componentes sobre plataforma OSGi en el que cada pequeña funcionalidad que ofrece el framework es implementada como un pequeño componente que colabora con el resto en las distintas tareas de generación. Esta arquitectura es empleada en el desarrollo de grandes sistemas modulares como, por ejemplo Eclipse, Jboss, Servicemix y un largo etcétera.

     Al estar construido el framework en pequeños módulos (actualmente unos 50) la escalabilidad y mantenibilidad es sencilla. Gracias al pequeño tamaño de cada módulo el framework se hace muy manejable, entendible y fácilmente modificable

Responsable