Desarrollo de Capas de Abstracción para Mejorar la Eficiencia en la Construcción de Aplicaciones Web J2EE

Las capas de abstracción son componentes de software que permiten encapsular funcionalidades de un sistema permitiendo la reutilización de componentes a través de una interfaz de programación estandarizada. El objetivo del presente trabajo de título es desarrollar 2 capas de abstracción que permitan agilizar los tiempos de desarrollo de aplicaciones Web bajo la arquitectura J2EE. Estas capas están enfocadas al desarrollo de componentes EJB, y la otra para el desarrollo de capas de persistencia vía JDBC. El surgimiento de estas capas se plantea debido a los largos tiempos de desarrollo que se tienen al usar EJB y JDBC directo para desarrollar servicios y persistencia. Lo anterior se justi ca por varias razones, por ejemplo, en el caso de los servicios EJB existe una gran cantidad de archivos que se tienen que manipular para hacer un EJB, lo cual trae multiples con ictos en el sistema de control de versiones cuando trabajan varios desarrolladores simultáneamente en la capa de servicios, o bien la di cultad para tener traza de errores cuando se tienen problemas de con guración de estos archivos y otras clases de problemas referidos a la falta de automatización de ciertos procesos repetitivos de invocación de implementaciones nales y manejo de excepciones. En el caso de la persistencia, los problemas típicos que se plantean son las tareas repetitivas y conducentes a error, como por ejemplo, obtención y cierre de los recursos, consultas mal escritas, validaciones de largo, tipo y otras que no se efectúan antes de la ejecución de consultas, complejidad y código poco mantenible para hacer consultas con ltros dinámicos, la asociación de valores de los resultados de las consultas a objetos de negocios muchas veces se ve replicada, etc. Todo lo anterior induce la necesidad de crear una abstracción que permita hacer todas estas tareas de una manera lo más simple posible tratando de no perder algunas de las características que tienen estas tecnologías. El resultado nal corresponde a 2 capas de abstracción, la primera tiende a facilitar la creación de EJB, de manera de que el desarrollo de estos mismos involucre menos procesos de con guración y manejo de archivos, como a su vez tener cierto nivel de independencia de la tecnología EJB en términos de encapsularla al desarrollador. La segunda por su parte, permite encapsular las tareas de obtención de recursos y conectividad a nivel de aplicación contra la base de datos, en conjunto con la generación y ejecución de consultas SQL y la transformación de datos de objetos de negocios a datos del modelo relacional. Como resultado de este trabajo, a través del uso de métricas de comparación, se pueden notar las diferencias en tiempos de desarrollo, facilidad de mantención y complejidad entre una solución usando capas de abstracción versus una solución sin ellas. Cabe destacar que ambas capas de abstracción en de nitiva son capas generadoras de código, con la característica que el código generado se hace en tiempo de ejecución, lo cual tiene el bene cio que no es necesario tener código generado dentro del código de las aplicaciones que utilicen estas capas de abstracción.