1 / 14

Capa de Persistencia

Capa de Persistencia. Capa de Persistencia Responsabilidades. Ofrece servicios de persistencia y recuperación de información a las capas superiores: Servicios de lógica de persistencia Ej. “insertar cliente”, “insertar factura”, etc. Independiente de la capa de negocio. Posibles Alternativas.

maegan
Download Presentation

Capa de Persistencia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capa dePersistencia

  2. Capa de PersistenciaResponsabilidades • Ofrece servicios de persistencia y recuperación de información a las capas superiores: Servicios de lógica de persistencia • Ej. “insertar cliente”, “insertar factura”, etc. • Independiente de la capa de negocio.

  3. PosiblesAlternativas • Capa de EJBs de entidad • BMPs • CMPs • Beans normales de acceso a datos • Framework de persistencia mapeo O/R • Conjunto de conectores a otros sistemas Back • Ej. JCO o Business Connector para el acceso a SAP y BIW. • Integración con sistemas LEGACY • Soluciones Híbridas de las anteriores.

  4. NEGOCIO HELPER HELPER HELPER HELPER ACCESO A DATOS EEJBCMP EEJBCMP EEJBCMP EEJBCMP MySQL Capa de persistenciaEJBs de Entidad CMP • Container Managed Persistence • El programador no se preocupa de las SQLs

  5. NEGOCIO HELPER HELPER HELPER HELPER ACCESO A DATOS EEJBBMP EEJBBMP EEJBBMP EEJBBMP SQLProvider MySQL Statements.xml Capa de persistenciaEJBs de Entidad BMP • Bean Managed Persistence • El programador debe desarrollar las SQLs

  6. NEGOCIO HELPER HELPER HELPER HELPER DTO DTO DTO DTO ACCESO A DATOS Session EJB SSL Session EJB SSL Session EJB SSL Session EJB SSL DBBean DBBean DBBean DBBean SQLProvider MySQL Statements.xml Capa de persistenciaBeans Acceso a Datos • Beans java que ejecutan sentencias SQL contra el motor de persistencia

  7. Capa de persistenciaFramework de Persistencia • Herramientas de Mapeo Objeto/Relacional • Pueden estar basadas, entre otras cosas, en EJBs de entidad • Fama de bajo rendimiento • Desarrollo rápido de aplicaciones • Aplicaciones portables a otras bases de datos, siempre y cuando sean contempladas por el framework aplicado. • Ej: Hibernate Framework

  8. Pool deConexiones • Técnica destinada a gestionar y reutilizar objetos. • Crear objetos Connection es una de las operaciones más caras -> Abrir y cerrar conexión por cada consulta es muy costoso. • Gestión adecuada de las conexiones de la base de datos • Un solo usuario de base de datos para todos los usuarios de la aplicación web -> una sola licencia. • Funcionamiento pool conexiones estándar: • El cliente obtiene una referencia al pool • Obtiene del pool una conexión abierta • Ejecuta la sentencia SQL • Devuelve la conexión al pool para que sea reutilizada sin ser cerrada • Los Pools de conexiones NO SON SOLO PARA BBDD. Ej: Pool JCO de SAP

  9. Piloto conPool de Conexiones • Trabajo 11.0. Pasos: • Dar de alta el pool de conexiones en TOMCAT • Server.xml • Modificar las clases de acceso a datos (xxxDataBean) para que recuperen la conexión del pool en lugar de abrirla y cerrarla Context ctx = new InitialContext(); if(ctx == null ) throw new Exception("Boom - No Context"); DataSource ds = (DataSource)ctx.lookup( "java:comp/env/jdbc/AmazinDB"); if (ds != null) con = ds.getConnection();

  10. Externalización de SQLs • SQL estándar? No existe. Lo más parecido, SQL 92 • Cada proveedor ha personalizado el SQL a su propia base de datos • Sentencias básicas son iguales • Sentencias optimizadas NO • Consecuencia: Las SQLs limitan la portabilidad del sistema. • Solución: Externalizarlas a un fichero XML. • Se limita el impacto de una posible migración de base de datos a tareas de configuración • Permite hacer tunning mediante creación de índices, alteración del modelo, etc. sin necesidad de desarrollar. • No siempre es posible (generación dinámica de SQLs).

  11. SQLProviderProveedor de SQLs • Piloto Trabajo 12.0 • Instancia del patrón Singleton • Nos garantiza que sólo se instancia una vez • Lee una sóla vez las sentencias SQL del fichero y las mantiene en memoria. • Se recarga a cada arranque del sistema • Permite modificar las SQLs sin necesidad de • Programar • Recompilar • Repaquetizar • Redesplegar

  12. Piloto conSQLProvider • Piloto Trabajo 12.0. Pasos: • Crear SQLProvider.java • Crear sentencias.xml y colocarlo en el classpath <?xml version="1.0" encoding="UTF-8"?> <jenial-sql-statements> <sql> <id>libro.selectAll</id> <statement>select * from libro</statement> </sql> </jenial-sql-statements • Modificar la recuperación de la sentencia SQL ps=con.prepareStatement( SQLProvider.getInstance().getSentence(SQL_ID));

  13. WorkShop!Adaptar el servicio de persistencia IVA • Sobre la versión del piloto 12.0, modificar IvaDataBean para que: • Obtenga la conexión del pool de conexiones en lugar de crearla y destruirla en cada operación de base de datos. • Obtenga la SQL del SQLProvider en lugar de tenerla hardcodeada como una constante dentro de la clase.

  14. Referencias • URLs • http://jakarta.apache.org/Struts • http://theserverside.com • Libros • Mastering Tomcat Development de WILEY • Java Server Programming J2EE Edition de Wrox

More Related