La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Www.dflanvin.com/docencia/arquitectura Daniel Fernández Lanvin Capa de Persistencia.

Presentaciones similares


Presentación del tema: "Www.dflanvin.com/docencia/arquitectura Daniel Fernández Lanvin Capa de Persistencia."— Transcripción de la presentación:

1 Daniel Fernández Lanvin Capa de Persistencia

2 Daniel Fernández Lanvin 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.

3 Daniel Fernández Lanvin Posibles Alternativas 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 Daniel Fernández Lanvin Capa de persistencia EJBs de Entidad CMP Container Managed Persistence El programador no se preocupa de las SQLs NEGOCIO ACCESO A DATOS MySQL EEJBCMP HELPER

5 Daniel Fernández Lanvin Capa de persistencia EJBs de Entidad BMP NEGOCIO ACCESO A DATOS MySQL EEJBBMP HELPER SQLProvider Statements.xml Bean Managed Persistence El programador debe desarrollar las SQLs

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

7 Daniel Fernández Lanvin Capa de persistencia Framework 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 Daniel Fernández Lanvin Pool de Conexiones 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: 1. El cliente obtiene una referencia al pool 2. Obtiene del pool una conexión abierta 3. Ejecuta la sentencia SQL 4. 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 Daniel Fernández Lanvin Piloto con Pool de Conexiones Trabajo 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 Daniel Fernández Lanvin 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 Daniel Fernández Lanvin SQLProvider Proveedor 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 Daniel Fernández Lanvin Piloto con SQLProvider Piloto Trabajo Pasos: Crear SQLProvider.java Crear sentencias.xml y colocarlo en el classpath libro.selectAll select * from libro

13 Daniel Fernández Lanvin 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 Daniel Fernández Lanvin Referencias URLs Libros Mastering Tomcat Development de WILEY Java Server Programming J2EE Edition de Wrox


Descargar ppt "Www.dflanvin.com/docencia/arquitectura Daniel Fernández Lanvin Capa de Persistencia."

Presentaciones similares


Anuncios Google