accesskey_mod_content
CTT - Centre de Transferència de Tecnologia

gvNIX. Framework per al desenvolupament àgil d'aplicacions web JAVA

  • Data Posada en Producció:

    01/01/2010

    Indicadors:

    A Juny 2014:

     

    Nombre d'Aplicacions desenvolupades en DGTI amb gvNIX: 7

    Grandària L : 1

    Grandària M : 2

    Grandària S : 4

     

    Nombre d'Aplicacions desenvolupades fora de la DGTI amb gvNIX: 13

    Grandària XL : 3 Diputació de València

    Grandària M : 4

    Grandària S : 6

     

    Nombre de plugins: 18

    Nombre d'usuaris en la Llista (dona idea de Comunitat): 100+ (entre llistes, stackoverflow, twitter, linkedin, etc)

    Cursos formatius: Cicle formatiu en conjunt amb Colegie d'Enginyers en Informàtica de la Comunitat Valenciana

    Cursos impartits per a funcionaris per l'EVES i l'IVAP.

    Descripció Funcional

    És multiplataforma i fàcil d'instal·lar

    gvNIX és fàcil d'instal·lar tant com a ferramenta independent que funciona en Windows, Mac OSX, Linux o com a ferramenta integrada en un entorn de desenvolupament: SpringSource Tool Suite, Eclipse i IntelliJ IDEA.

    Els únics requeriments són Java 6 SDK i Apatxe Maven 3. Una vegada instal·lats, es descarrega la distribució de gvNIX, es descomprimix i s'afig al PATH del sistema i llancem l'entorn amb el comando gvnix.

    Sistema de generació automàtica de codi

    Crea codi en unitats de compilació separades: arxius .aj d'AspectJ/ITD. D'esta forma, la generació de codi és totalment innòcua perquè independitza completament el cicle de vida del codi generat del cicle de vida del codi mantingut pels desenvolupadors.

    Combina el millor dels models passiu i actiu de generació de codi:

    • Generació passiva a través d'un intèrpret de comandos per a crear codi baix demanda.
    • Generació activa resultat del monitoratge constant dels canvis introduïts pels desenvolupadors en els arxius del projecte.

    No sobrecarrega l'entorn d'execució

    gvNIX no afig cap tipus de llibreria requerida en temps d'execució. A més, les anotacions Java utilitzades per a controlar i personalitzar la generació de codi no són compilades a codi objecte (arxius .class).

    Açò significa que les aplicacions desplegades en els entorns de producció no  tenen cap dependència de llibreries de gvNIX.

    Enginyeria inversa de base de dades

    Permet crear el model complet d'entitats Java de l'aplicació via la introspecció de la base de dades del projecte. A més, incrementalmente manté el model d'entitats sincronitzat amb tots els canvis realitzats en el model de dades.

    Scaffolding

    Construcció automàtica de l'aplicació a partir d'un meta-modele definit en anotacions Java, en només uns minuts es pot generar una aplicació totalment funcional.

    Generació automàtica de servicis web

    • Clients de sistemes externs: email, JMS i WebServices.
    • Servicis de l'aplicació via interfície WebService. gvNIX permet integrar l'aplicació amb processos de negoci remots fàcilment. A partir de codi Java amb anotacions JAX-W o partir d'arxius WSDL, genera automàticament tota la infraestructura necessària per a rebre telefonades des de processos externs.

    Control de concurrència optimista

    En entorns multiusuario, com les aplicacions web, és freqüent que dos usuaris accedisquen simultàniament al mateix registre per a editar-ho. El control de concurrència permet evitar que es perden els canvis del primer que guarde.           

    El patró de control de concurrència més acceptat en entorns web és el conegut com a control de concurrència optimista. La forma més habitual d'implementar-ho és utilitzar un camp de versió que ha d'incloure's en totes les taules del model de dades. En organitzacions públiques el model de dades seguix unes polítiques de seguretat molt rigoroses i és freqüent que no es puga afegir un nou camp de versió.

    gvNIX proporciona una implementació del control de concurrència optimista basat en l'estat dels objectes, igualment efectiu però no intrusiu.

    Seguretat

    Incorpora control d'accés i autorització per rols d'usuari fàcilment.

    Informes

    Utilitza JasperReports per a generar informes operatius dinàmicament i en diferents formats: PDF, LibreOffice, MSOffice, CSV. Cada informe és accessible des del menú de l'aplicació i genera un formulari previ per a especificar els paràmetres de filtrat.

    Els informes són totalment funcionals des de la seua creació, incloent la generació de la plantilla .jrxml per a permetre una personalització còmoda i fàcil.

    Proves unitàries i funcionals

    Genera automàticament proves de qualitat de codi, tant unitàries amb Junit com a funcionals amb Selenium.

    Altres funcionalitats:

    • Gestió de configuracions per entorn. Per exemple, desenvolupament, preproducció i producció
    • Generació de patrons de pantalles mestre-detalle multinivell.
    • Gestió de l'estructura de pàgines de l'aplicació.
    • Gestió de temes visuals.

    Descripció Tècnica

    El framework ha sigut implementat amb llenguatge Java i seguix un model d'arquitectura orientat a components sobre plataforma OSGi en el qual cada petit funcionalitat que oferix el framework és implementada com un petit component que col·labora amb la resta en les diferents tasques de generació. Esta arquitectura és emprada en el desenvolupament de grans sistemes modulars com, per exemple Eclipse, Jboss, Servicemix i un llarg etcètera.

     En estar construït el framework en petit mòduls (actualment uns 50) l'escalabilitat i mantenibilidad és senzilla. Gràcies a la petit grandària de cada mòdul el framework es fa molt manejable, entenedor i fàcilment modificable

Responsable