Esta mañana he ido a la facultad a depositar por fin los tomos de mi proyecto de fin de carrera, y he realizado todos los papeleos necesarios. Ahora sólo me queda esperar a que me den fecha para el tribunal, y defender el proyecto, y seré por fin oficialmente ingeniero!!! Yuuupiiiii!!!! :P

Sobre mi proyecto, decir que el título oficial es “Sistema de Generación de Aplicaciones Web”, y es básicamente un módulo que se integra dentro del servidor web Apache, el cual, a partir de una serie de ficheros de configuración XML, realiza todas las acciones normalmente esperables de una aplicación web, como pueden ser consultas a base de datos, generación de formularios de introducción o muestra de datos, autenticación de usuarios, creación de informes y gráficas, envio de mails, etc.

Los ficheros XML de configuración de la aplicación son cargados por el sistema generador al inicializarse el servidor web. Cada vez que el servidor recibe una petición, el sistema ejecuta las acciones a correspondientes definidas en la configuración. La sintaxis de los ficheros de configuración es realmente sencilla, pudiendo generar una consulta dinámica de una serie de tablas de la base de datos, y mostrar los resultados ordenados de 20 en 20, en apenas 2 lineas de XML. Básicamente tu sólo le indicas que quieres hacer (consulta tablas a y b; muestra los resultados de 20 en 20), y el sistema generador se encarga de todo lo demas.

Una de las características que considero más interesantes del sistema es el hecho de que todas las acciones de la aplicación son ejecutadas por módulos, los cuales se cargan de forma dinámica en función de las necesidades concretas de cada aplicación, encargandose el nucleo del sistema de poco más que de cargar la configuración de la aplicación y llamar a los distintos módulos necesarios para atender la petición. Esta arquitectura modular favorece la creación de nuevos módulos que amplien las funcionalidades de las aplicaciones generadas, así como la ampliación o modificación de los ya existentes.

La generación de las respuestas se realiza en dos fases, la primera es generar un XML DOM que define la respuesta, el cual es posteriormente transformado en XHTML mediante XSLT. La ventaja principal y en principio obvia de esta generación de las respuestas en dos fases, es que el sistema no esta limitado a responder siempre con XHTML , sino que puede configurarse para generar la respuesta en cualquier otro formato deseado.

La velocidad del sistema es relativamente elevada, gracias a su integración dentro del propio servidor web, y al hecho de que toda la configuración de la aplicación y módulos necesarios son cargados al inicializar el servidor.

En fin, espero que a los que entiendan algo del tema les haya parecido interesante este rollo técnico lleno de abreviaturas raras. Me temo que después de escribir las 170 páginas del proyecto en menos de tres semanas, le he cogido el gusto a esto de soltar parrafadas ilegibles y sin sentido, y tenia ganas de echarle unas flores a mi proyecto, que ya es como un hijo para mí (aunque sólo sea por lo que me ha costado parirle :P).