Apache Struts - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Apache Struts

Description:

Ofrece servicios de persistencia y recuperaci n de informaci n a las capas ... las operaciones m s caras - Abrir y cerrar conexi n por cada consulta es muy costoso. ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 15
Provided by: bas61
Category:

less

Transcript and Presenter's Notes

Title: Apache Struts


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
Capa de persistenciaEJBs de Entidad CMP
  • Container Managed Persistence
  • El programador no se preocupa de las SQLs

5
Capa de persistenciaEJBs de Entidad BMP
  • Bean Managed Persistence
  • El programador debe desarrollar las SQLs

6
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 -gt 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 -gt 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(
  • "javacomp/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
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltjenial-sql-statementsgt
  • ltsqlgt
  • ltidgtlibro.selectAlllt/idgt
  • ltstatementgtselect from librolt/statementgt
  • lt/sqlgt
  • lt/jenial-sql-statements
  • Modificar la recuperación de la sentencia SQL
  • pscon.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
Write a Comment
User Comments (0)
About PowerShow.com