1 / 28

Aplicaciones Web con Oracle y XML 5 años de experiencias

Aplicaciones Web con Oracle y XML 5 años de experiencias. Univers idad de las Islas Baleares Centro de Tecnologías de la Información (CTI@UIB) Daniel López Janáriz. Objetivos.

naasir
Download Presentation

Aplicaciones Web con Oracle y XML 5 años de experiencias

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. Aplicaciones Web con Oracle y XML5 años de experiencias UniversidaddelasIslas BalearesCentro de Tecnologías de la Información (CTI@UIB) Daniel López Janáriz

  2. Objetivos • Explicar las experiencias adquiridas en el CTI@UIB sobre el desarrollo de aplicaciones web con Oracle, XML y XSLT, mostrando: • Cómo se llegó a la decisión de usar esa técnica • Cómo funciona • La evolución que ha sufrido • Qué ventajas e inconvenientes conlleva • Cómo influye en el modelo de desarrollo • No pretender ser una comparativa exhaustiva de técnicas ni entornos de desarrollo, si no mostrar una alternativa real basada en la experiencia.

  3. Contenidos • Introducción • Orígenes • Implementación de la arquitectura basada en XML y XSL • Evolución de la arquitectura • Metodología • Ventajas e inconvenientes • Conclusiones

  4. Introducción • Las aplicaciones basadas en el navegador son muy habituales para acceder a sistemas basados en Oracle. • Sin embargo, su desarrollo es más costoso que las aplicaciones tradicionales, por varios motivos: • Tecnologías y metodologías inmaduras • Desarrollo en “tiempo Internet” • Requerimientos cambiantes • Múltiples dispositivos, múltiples idiomas • … • Por ello se hace imprescindible utilizar técnicas de desarrollo que nos permitan adaptarnos nuestras aplicaciones fácilmente y controlar un poco todo ese caos. • Una de esas técnicas, es el uso de una arquitectura MVC para tratar las peticiones y el uso de XML/XSL para comunicar las capas y generar la interfaz.

  5. Orígenes • CGI’s + PROC*C • Sencillez. • Problemas de rendimiento bajo cargas elevadas. • Problemas de mantenimiento debido a la dispersión de código y la falta de flexibilidad. • Lógica de aplicación y presentación mezcladas. Lógica de aplicación y presentación HTML CGI Servidor Web … CGI CGI CGI Precompilador + SQL*Net BDD

  6. Orígenes…cont • Servidor de aplicaciones de Oracle, módulo PL/SQL (WAS, OAS, IAS…) • Programación de BDD más sencilla. • Comprobación del esquema de BDD en compilación. • Tecnología propietaria de Oracle. • Lógica de aplicación y presentación mezcladas. Lógica de aplicación y presentación HTML BDD Servidor Web PLSQL Servidor Aplicaciones Oracle PLSQL PLSQL PLSQL Driver nativo + SQL*Net

  7. Orígenes…cont • Servlets + JDBC • Neutra en cuanto a plataforma. • Basada en un estándar con variadas implementaciones. • Problemas de mantenimiento debido a la dispersión de código y la falta de flexibilidad. • Lógica de aplicación y presentación mezcladas. HTML Servidor Web Contenedor de Servlets servlet JDBC + SQL*Net servlet servlet servlet BDD Lógica de aplicación y presentación

  8. Orígenes…cont • La arquitectura Modelo-Vista-Controlador (MVC), o Modelo-Vista-Presentador (MVP), se usa para separar la lógica de la aplicación de su representación en HTML. Presentador Comandos Eventos Selecciones Datos Modelo Vista

  9. Orígenes…cont • JSP1.1 + EJB1.1 • Neutra en cuanto a plataforma. • Basada en un estándar con variadas implementaciones. • Lógica de aplicación y presentación separadas. • Inmadurez de la especificación EJB1.1 -> Problemas de rendimiento y de extensiones propietarias. • Posibles problemas de mantenimiento debido a la dispersión de código. HTML Servidor Web Presentación JSP JSP JSP Contenedor de EJB1.1 JSP Contenedor de Servlets JDBC + SQL*Net BDD EJB RMI EJB EJB EJB Lógica de aplicación

  10. Orígenes…cont • JSP + Beans + JDBC • Neutra en cuanto a plataforma. • Basada en un estándar con variadas implementaciones. • Lógica de aplicación y presentación separadas. • Posibles problemas de mantenimiento debido a la dispersión de código. HTML Servidor Web Presentación JSP JSP JSP JSP Contenedor de Servlets JDBC + SQL*Net Beans BDD Beans Beans Beans Lógica de aplicación

  11. Orígenes…cont • Arquitectura final: Desarrollo en base a XML/XSL: • Generar desde la lógica de negocio, implementada como se desee, documentos XML. • Juntar esos documentos con otros documentos XML auxiliares, en caso necesario. • Procesar el documento XML resultante con una hoja XSL para producir el resultado, o sea la interfaz. HTML XML Procesador XSL Lógica de negocio WML SVG XSLT

  12. Implementación • El LightwEb Applications Framework (WebLEAF) es un entorno para la ejecución de aplicaciones web de tamaño pequeño/mediano. • Surge en 1999 de la necesidad de crear un entorno para no tener que rehacer una serie de tareas en cada aplicación, y ante la falta de alternativas en aquel momento. • Basado en el modelo MVC a través de la técnica del servlet controlador. Evolucionó hacia el desarrollo de aplicaciones con XML y XSL. • Utilizado desde entonces en unas 25-30 aplicaciones web en el CTI@UIB.

  13. Implementación…cont • PLSQL para la lógica de negocio • Detección desvíos lógica-modelo de datos en compilación. • Independiente de sistema operativo. • Formación independiente de web y Java. • XML para la comunicación negocio-vista • Independiente de la implementación de negocio. • Especificación relativamente madura. • Formación independiente de negocio. • Separación total entre capas • Java para unir ambas piezas • Multiplataforma • Facilidades para el desarrollo web • Librerías para acceder tanto a base de datos (JDBC) como a XML (JAXP) y XSLT (TrAX).

  14. Implementación…cont • WebLEAF (PLSQL-XML,XSL) HTML Contenedor de Servlets Tareas auxiliares Java WML Servlet Controlador Java SVG xml BDD xslt xslt xslt Presentación PLSQL xml PLSQL JDBC + SQL*Net xml PLSQL xml xml Lógica de aplicación Ficheros auxiliares

  15. Evolución • Refinamiento del acceso a base de datos para hacerlo más “resistente”. • Mayor flexibilidad en la configuración, incluyendo opciones de localización (tanto por idioma como por dispositivo que accede). • Ampliación de las posibilidades para la implementación de la lógica de negocio y clases auxiliares • EJB2.1 • P.O.J.O. + Hibernate • P.O.J.O. • Generación automática de partes del código a partir del esquema de la BDD.

  16. Evolución…cont • WebLEAF (EJB2.1-XML,XSL) Contenedor de Servlets y EJBs HTML Tareas auxiliares Java Java WML Servlet Controlador SVG EJB xml EJB xslt EJB xslt xslt Presentación JDBC + SQL*Net BDD Lógica de aplicación xml xml xml Ficheros auxiliares

  17. Evolución…cont • WebLEAF (Hibernate-XML,XSL) Contenedor de Servlets HTML Tareas auxiliares Java Java WML Servlet Controlador Java Java SVG Java xml Java xslt Hibernate Java xslt xslt Presentación JDBC + SQL*Net Lógica de aplicación BDD xml xml xml Ficheros auxiliares

  18. Modelo de desarrollo Análisis y Definición de requerimientos Maquetación HTML Maqueta HTML Abstracción de información Modelado de datos y procesos Modelo XML Definición contrato XML Esquema de BDD Interfaz XML Maquetación XSL Implementación de procesos Hojas XSL Configuración entorno Lógica de negocio Esquema BDD Integración y pruebas Esquema BDD XML aux. Hojas XSL Configuración entorno Fuentes XML Aplicación

  19. Ventajas e inconvenientes • A favor • Separación total de la lógica de negocio de la generación de la interfaz. Utilizando la modularidad de XSL se puede mejorar la productividad y la coherencia visual. • Lenguaje para la generación de la interfaz especificado por el W3C, independiente y con múltiples implementaciones. • La separación en capas facilita la generación de interfaces para múltiples dispositivos. • Los servicios web utilizan XML. • La separación en etapas de la metodología facilita la distribución de las tareas y la colaboración de diferentes perfiles. • En contra • Disminución del rendimiento por el procesado de XSLT, solventados con las últimas técnicas de programación. • La creación de hojas XSLT no es lo mismo que la creación de HTML. Por eso hacen falta conocimientos y herramientas diferentes para sacarle todo el partido a la técnica. • No se adapta a según que grupos de trabajo, donde la interfaz la realiza un diseñador gráfico puro. • Falta de soporte de herramientas para facilitar la creación de la interfaz.

  20. Ejemplos de uso I • Aplicación con múltiples idiomas (Contador de accesos a Campus Extens) • Solución • Los literales de la aplicación se extraen en ficheros XML estáticos, un fichero por cada idioma. • Definimos un fichero de propiedades por idioma que indica que fichero XML utilizar. • Utilizamos las facilidades de internacionalización de Java para cargar el fichero de propiedades adecuado según la preferencia del usuario. • El idioma escogido por el usuario se pasa como variable de entorno a la lógica de negocio, para que pueda variar la información a devolver, en caso necesario. En este caso no lo era así que la lógica es la misma. • Sólo hace falta escribir una hoja XSL.

  21. Contador.xsl … <title> <xsl:value-of select=“/ETIQUETAS/@Titulo”/> </title> … Etiquetas_ES.xml Contador_es.properties Titulo=“Contador de acceso” Introduccion=“Bienvenido a…” … Etiquetas.xml= “Etiquetas_ES.xml” … Contador.leaf.conf Etiquetas_CA.xml <INTERNACIONALIZE CONFIG_FILE_NAME=“Contador" /> … <XMLOPERATION XSLT_SOURCE=“Contador.xsl” …> <SOURCE XMLSOURCE=“Etiquetas.xml”/> <SOURCE XMLSOURCE=“plsql://MiPool/MiPaq.Miproc”/> … </XMLOPERATION> … Titulo=“Comptador d’accés” Introduccion=“Benvingut a…” … Contador_ca.properties Etiquetas.xml= “Etiquetas_CA.xml” … Ejemplos de uso I…cont • Aplicación con múltiples idiomas

  22. Ejemplos de uso II • Aplicación accedida desde múltiples dispositivos (Resultados de las PAAU y el proceso de preinscripción) • Solución • Se crea una hoja de estilo por cada dispositivo desde el que se va a acceder: Navegador, móvil por WAP y móvil por SMS. • Se crea un fichero de propiedades por cada dispositivo, que indica que hoja de estilo usar en cada caso. • Se configura el entorno para que detecte el dispositivo que accede y se utilizan las facilidades de internacionalización de Java para cargar el fichero de propiedades adecuado. • La lógica de negocio no sufre ninguna modificación.

  23. Acceso.xsl Acceso_wml.xsl <HTML> … <xsl:value-of select=“/EXPEDIENTE/@Nota”/> … </HTML> <WML> … <xsl:value-of select=“/EXPEDIENTE/@Nota”/> … </WML> Browser_wp.properties Acceso.xsl= “Acceso_wml.xsl” … Ejemplos de uso II…cont • Aplicación accedida desde múltiples dispositivos Acceso.leaf.conf Browser.properties <BROWSERIZE CONFIG_FILE_NAME="Browser"> <BROWSER NAME="WP“ HTTP_ACCEPT="wap“ /> </BROWSERIZE> … <XMLOPERATION XSLT_SOURCE=“Acceso.xsl” …> <SOURCE XMLSOURCE=“plsql://MiPool/MiPaq.Miproc”/> … </XMLOPERATION> … Acceso.xsl= “Acceso.xsl” …

  24. Ejemplos de uso III • Aplicación con múltiples idiomas y múltiples vistas (The WebGuide) • Solución • Se crea un estilo básico para todas las vistas e idiomas, aplicando la técnica de múltiples idiomas del primer ejemplo. • En función del subdirectorio utilizado al acceder, se configura el parámetro «país» además del de idioma. • Para cada vista se extiende la interfaz básica, sobre-escribiendo estilos CSS, reglas de XSL y ficheros auxiliares XML. • Se crea un fichero de propiedades por vista e idioma, indicando que hoja XSL y ficheros auxiliares utilizar. • Se utilizan las facilidades de internacionalización de Java para cargar el fichero de propiedades adecuado en función del idioma y del subdirectorio.

  25. Ejemplos de uso IV • Aplicación con generación dinámica de imágenes y versión estática (El web de la UIB) • Solución para las imágenes  • Se crea una operación que devuelve SVG en vez de HTML, y se post-procesa para conseguir imágenes jpg. • Solución para la versión estática  • Crear una hoja XSL que sobre-escriba la de la aplicación y genere enlaces estáticos. Configurarla siguiendo la técnica para dispositivos diferentes. • Con una utilidad de WebLEAF, llamar periódicamente a una operación que devuelve la lista de páginas a generar. Llamar a dichas páginas con una cabecera HTTP especial, para que se utilice al generar las hojas la nueva XSL.

  26. Conclusiones • La separación de capas que da XML y XSL facilita la reutilización de código, tanto en negocio como en presentación. A cambio, se complica algo la generación de la interfaz. • Realizar la comunicación en XML permite implementaciones diferentes de la lógica (POJOs, SLSBs, PL/SQL…) • La generación de la interfaz con XSL es más compleja, pero al ser una especificación nos da diferentes implementaciones donde elegir. • Al utilizar XSL hay que prestar atención al rendimiento y no olvidar que estamos haciendo. • La separación en capas sencillas facilita el desarrollo y el mantenimiento de las aplicaciones. • XML/XSL no es LA solución definitiva, si no una técnica más a tener en cuenta.

  27. Gracias por su atención ¿Ruegos y preguntas?

  28. Referencias • Designing Enterprise Applications with the J2EETM Platform, Second Edition, Inderjeet Singh, Beth Stearns, Mark Johnson, Enterprise Team , Addison-Wesley Pub Co , ISBN 0201787903 • Designing Enterprise Applications with the J2EETM Platform, Second Edition (11.1.1 Model-View-Controller Architecture), http://java.sun.com/.../app-arch/app-arch2.html/ • MVP: Model-View-Presenter, Taligent, Inc., Mike Potel, ftp://www6.software.ibm.com/software/developer/library/mvp.pdf • Extensible Stylesheet Language (XSL) Version 1.0, W3C Recommendation 15 October 2001, http://www.w3.org/TR/xsl/ • XSL Transformations (XSLT) Version 1.0, W3C Recommendation 16 November 1999, http://www.w3.org/TR/xslt • XSLT : Programmer's Reference, Michael Kay , Wrox , ISBN 0764543814 • Extensible Markup Language (XML), W3C , http://www.w3.org/XML/ • Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation 6 October 2000, http://www.w3.org/TR/REC-xml • Proyecto WebLEAF, https://webleaf.dev.java.net/

More Related