Vous êtes sur la page 1sur 7

ANLISIS DE HIBERNATE COMO TECNOLOGA DE PERSISTENCIA DE OBJETOS SOBRE BASE DE DATOS RELACIONALES EN APLICACIONES EMPRESARIALES: CASO PRCTICO CONTROL

DE BIENES DEL GOBIERNO MUNICIPAL DE CARLOS JULIO AROSEMENA TOLA

Oljer Alfredo Cando Cando Escuela Superior Politcnica de Chimborazo, candooljer@hotmail.com

RESUMEN El presente proyecto est orientado al anlisis de Hibernate como tecnologa de persistencia de objetos sobre base de datos relacionales en aplicaciones empresariales, adems del desarrollo de una aplicacin web para el control y gestin de bienes del Gobierno Municipal de Carlos Julio Arosemena Tola basada en la tecnologa J2EE. La parte investigativa se centra en el anlisis de Hibernate como un ORM que soluciona la persistencia de datos entre dos paradigmas que se usan en el desarrollo de aplicaciones, la programacin Orientada a Objetos para la implementacin de la capa de negocio y las Bases de datos relacionales para almacenamiento de datos los cuales manejan valores simples como integer, date, varchar, etc. Los mismos que forman un registro. Con el Framework analizado se implementa un sistema web siguiendo los lineamientos y buenas prcticas para cumplir con los objetivos requeridos por el Gobierno Municipal de Carlos Julio Arosemena Tola. El software est basado en el patrn de diseo Modelo Vista Controlador y empleando PostgreSQL como motor de base de datos. Se desea que la aplicacin traiga como beneficio el correcto uso de los materiales usados en la construccin de una obra y el control de los combustibles. ABSTRACT This project is aimed at analyzing and Hibernate object persistence technology on relational database in enterprise applications, and the development of a web application for control and asset management of the municipal government of Carlos Julio Arosemena Tola based on technology J2EE. The research part focuses on the analysis of Hibernate as an ORM that solves the persistence of data between two paradigms that are used in application development, Object Oriented programming to implement the business layer and Relational Databases for data storage which handle simple values such as integer, date, varchar, etc. Since they form a record. With the Framework analyzed web system is implemented following the guidelines and best practices to meet the objectives required by the Municipal Government of Carlos Julio Arosemena Tola. The software is based on the design pattern Model View Controller and using PostgreSQL as database engine. They want the application to bring the proper use and benefit of the materials used in the construction of a work and fuel control.

Palabras Clave: Persistencia, Mapeo

1. INTRODUCCION El mapeo objeto-relacional (Object-Relational mapping ORM) es una tcnica de programacin para convertir datos entre el sistema de tipos utilizados en un lenguaje de programacin orientada a objetos y el utilizado en la base de datos relacional. En la prctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos. Hibernate es un ORM para la plataforma Java que facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos de una aplicacin, mediante archivos declarativos (XML) que permiten establecer estas relaciones y ha conseguido en un tiempo record una excelente reputacin en la comunidad de desarrollo posicionndose claramente como el producto OpenSource lder en este campo gracias a sus prestaciones, buena documentacin y estabilidad. La aplicacin web se desarrollara aplicando el patrn de Diseo Modelo Vista Controlador, la parte del modelo se realizara con el Framework de Hibernate, el sistema permitir optimizar el proceso de gestin de bienes (materiales) adquiridos para una obra ya que el proceso es manual y los tiempos de respuesta de los departamentos son largos adems de conocer la disponibilidad de materiales solicitados por el departamento. Tambin permitir controlar el uso de combustible ya que podremos saber los kilmetros recorridos con una cantidad de combustible y determinar el rendimiento. Otro problema que soluciona es llevar el historial de los equipos adquiridos por la institucin as que se puede saber custodio, mantenimientos a fin de administrar los recursos de una forma adecuada.

2. HIBERNATE Hibernate es una capa de persistencia objeto/relacional y un generador de sentencias sql que permite disear objetos persistentes que podrn incluir polimorfismo, relaciones, colecciones, y un gran nmero de tipos de datos. De una manera muy rpida y optimizada se puede generar BBDD en cualquiera de los entornos soportados: Oracle, DB2, MySql, PostgreSQL, etc. Y lo ms importante de todos, es open source, lo que supone, entre otras cosas que no se tiene que pagar ningn costo para adquirirlo. Uno de los posibles procesos de desarrollo consiste en, que una vez que se tenga el diseo de datos realizado, se mapea este a ficheros XML siguiendo la DTD de mapeo de Hibernate. Desde estos se puede generar el cdigo de nuestros objetos persistentes en clases Java y tambin crear BBDD independientemente del entorno escogido. 2.1. Caractersticas de Hibernate No intrusivo (estilo POJO) Muy buena documentacin (forums para ayuda, libro) Comunidad activa con muchos usuarios

Transacciones, cach, asociaciones, polimorfismo, herencia, lazy loading, persistencia transitiva, estrategias de fetching. Potente lenguaje de consulta (HQL): subqueries, outer joins, ordering, proyeccin (report query), paginacin. Apoyo en consulta SQL nativo. Criterios de Consulta de Hibernate. [1]

Hibernate es la capa intermedia entre la aplicacin y la base de datos, de esta manera proporciona a la aplicacin de servicios (objetos) persistentes.

Fig.1. Arquitectura Base de Hibernate Fuente: http://docs.jboss.org/hibernate/orm/3.5/reference/es-ES/html/architecture.html La Arquitectura de Hibernate posee tres grandes componentes Gestin de la conexin Gestin de Transacciones Mapeo Objeto Relacional.

Gestin de Conexin: Provee una gestin eficiente, segura con la base de datos relacional por medio del objeto Session la cual se encarga de la comunicacin con la base de datos. Gestin de Transacciones: Permite al usuario ejecutar una o ms transacciones en el mismo tiempo. Mapeo Objeto Relacional: Transforma o mapeo la representacin de datos de un modelo de objetos a un modelo de datos relacional. Este componente de Hibernate consulta, inserta, actualiza o elimina los registros de las tablas de BBDD. Cuando la aplicacin llama el mtodo Session.save() con el objeto deseado, Hibernate lee el estado de los atributos del objeto y ejecuta las instrucciones o consultas necesarias. Hibernate soporta la mayora de los sistemas de las bases de datos SQL. Adems posee su propio lenguaje de consulta denominado HQL (Hibernate Query Language) diseado como una extensin mnima, orientada a objetos, proporciona un puente elegante entre el mundo de objetos y lo relacional, permite consulta de programticas y declarativas. Utilidades de Hibernate

Hibernate mapea objetos java a tablas de bases de datos relacional, permitiendo de una manera sencilla la persistencia, actualizacin consulta y eliminacin de los datos almacenados en las BBDD. La manera como se realiza el mapeo se lo estable en un archivo XML, que ha ser validado con el DTD de Hibernate. Para construir las relaciones de la base de datos tambin se le ha de indicar a Hibernate mediante un archivo XML. En este archivo ha de indicar qu tipo de relacin es(one-to-one, one-to- any, many-to-many), las tablas correspondientes y as como tambin las claves por las que se relacionaran las tablas. Una vez creada las tablas y sus relaciones, si deseamos almacenar, recuperar, actualizar informacin de esta BBDD, el desarrollador interacta con el motor de Hibernate mediante un objeto especial llamado Sesin (clase Session). Este objeto ofrece diversos mtodos para que el desarrollador pueda comunicarse con la base de datos. Por ejemplo: save(Objet object) : realiza una actualizacin del objeto pasado como parmetro. createQuery(String queryString): realiza una consulta. beginTransaction(): comienza una transaccin sobre la BBDD. close(): cierra el objeto Session.

Hibernate puede soportar tres lenguajes de consultas diferentes para realizar la comunicacin desde la aplicacin a la base de datos relacional. Estos son: Hibernate Query Language (HQL): es una extensin orientada a objetos de SQL. Permite acceder a la informacin de la BBDD de diferentes maneras incluyendo consultas orientadas a objeto. Ejemplo: List users = session.find("from Person as p where p.fullName = ?", "Ana Sanz", Hibernate.STRING ); Hibernate Criteria Query API: construye consultas dinmicas. Ejemplo: Criteria criteria = session.createCriteria(Person.class); criteria.add (Expression.eq ("fullName", "Ana Sanz")); criteria.setMaxResults(20); List users = criteria.list(); Native SQL: soporte para consultas creadas en SQL. Ejemplo: List users = session.createSQLQuery("SELECT {user.*} FROM USERS AS {user}", "user", UserInfo.class).list();

3. HERRAMIENTAS Para el desarrollo de la aplicacin y proyecto se ha considerado la utilizacin de las siguientes herramientas de software libre: 3.1. Java Enterprise Edition

Java Platform Enterprise Edition o JEE, es una plataforma de desarrollo diseada para construir aplicaciones empresariales multicapas basadas en componentes estandarizados, modulares y reutilizables, permitiendo as, manejar muchos aspectos de la programacin de forma automtica, logrando aplicaciones robustas que trabajen a travs de internet. [4] 3.2. PostgreSql PostgreSQL es un sistema de gestin de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su cdigo fuente disponible libremente. Es el sistema de gestin de bases de datos de cdigo abierto ms potente del mercado y en sus ltimas versiones no tiene nada que envidiarle a otras bases de datos comerciales. [5] 3.3 Glassfish Glassfish es el servidor de aplicaciones para Java en su versin J2EE, que permite la creacin de aplicaciones empresariales con componentes web, transaccionales y de persistencia. [6] 4. DISEO E IMPLEMENTACIN El producto resultante es un sistema web distribuido en Capas de negocio, presentacin y datos; usando el lenguaje de programacin Java, basado en el Patrn de diseo Modelo Vista Controlador y empleando PostgreSql como motor de base de datos,

Fig. 4 Pantalla de Lista de Ordenes Generadas por un Departamento Fuente: Autor El sistema fue desarrollado para cumplir los siguientes requerimientos: Administracin de solicitudes de Compras, Entrega, productos, materiales disponibles por obra, materiales utilizados en una obra, obras en un sector, inversin en el cantn, control de combustibles. RESULTADOS El principal parmetro para analizar los resultados, fue el nivel de usabilidad del sistema.

Se logr proveer de una herramienta fcil de manejar, a travs de una interfaz intuitiva para el usuario, que brinde comodidad de navegacin y entendimiento a personas con poca experiencia en el uso de ordenadores. La realizacin del sistema en su totalidad con herramientas libres, permiti abaratar costos de implementacin al evitar la compra de licencias y la inversin en infraestructura excedente; gracias a ello se logr proyectar un retorno de la inversin en un tiempo no mayor a un ao. El uso de reportes en lnea permiti acceder de forma rpida a informacin actualizada del proceso de gestin y uso de bienes para la toma de decisiones. Hibernate es fcil de configurar y la curva de aprendizaje si bien lleva un poco de tiempo luego se palpa los beneficios en el tiempo de desarrollo e interaccin con la base de datos.

CONCLUSIONES Hibernate permite al desarrollador simplificar enormemente la programacin lgica de persistencia se trata de una idea madura que se vuelve cada vez ms popular. Nuestra lgica de negocios trabaja contra un modelo de dominio completamente orientado a objetos. Generamos entre un 30% y un 40% menos de cdigo y el tipo de cdigo generado es mucho ms sencillo y mantenible lo cual permite tener un producto ms refinado y que cumpla completamente con las expectativas del usuario. En cuanto al manejo de consultas Hibernate saca una ligera ventaja frente ya que tiene su propio lenguaje HQL que lo hace multimotor de base de datos, eso es uno de los atractivos de Hibernate. Es fundamental conocer bien cmo funcionan las tecnologas que utilizamos. En el caso de Hibernate hemos visto que dependiendo de cmo hagamos las cosas puede afectar directamente al rendimiento de la aplicacin. El sistema de gestin y control de bienes permitir realizar el uso adecuado de los recursos disponibles adquiridos para una obra. El sistema de gestin de bienes reduce los tiempos de respuesta entre los departamentos y los responsables de retiro de los bienes. El Sistema de gestin de bienes hace un lado los formularios manuales los cuales implican costos como impresora, cartuchos, papel, formularios. La informacin en lnea del uso de combustibles por los vehculos reduce el mal uso o desviacin del mismo ya que los responsables administrativos y tcnicos tienen informacin sobre los kilmetros recorridos por los vehculos.

REFERENCIAS BIBLIOGRAFICAS

[1] Caractersticas de Hibernate, Recuperado 23 de enero, 2013, http://www.biconsulting.mx/index.php/2012-04-16-16-24-13/2012-04-16-16-31-22/2012-04-1616-32-14/12-fabrica-de-software/21-2012-06-01-18-40-57?showall=&start=1 [2][3] Hibernate, ES/html/architecture.html http://docs.jboss.org/hibernate/orm/3.5/reference/es-

[4] JEE, Recuperado 23 de enero, 2013, de http://www.oracle.com [5] PostgreSQL, Recuperado 23 http://www.postgresql.org.es/sobre_postgresql de enero, 2013, de

[6] Glassfish, Recuperado 23 de enero, 2013, de http://glassfish.java.net/es/downloads/3.0.1final.html [7] Hibernate, Recuperado 23 de enero de 2013, de http://www.hibernate.org