La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicaciones Web con Oracle y XML 5 años de experiencias Universidad de las Islas Baleares Centro de Tecnologías de la Información Daniel López.

Presentaciones similares


Presentación del tema: "Aplicaciones Web con Oracle y XML 5 años de experiencias Universidad de las Islas Baleares Centro de Tecnologías de la Información Daniel López."— Transcripción de la presentación:

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

2 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 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 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 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. CGI HTML Servidor Web BDD CGI … Lógica de aplicación y presentación Precompilador + SQL*Net

6 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. BDD PLSQL HTML Servidor Aplicaciones Oracle PLSQL Lógica de aplicación y presentación Servidor Web Driver nativo + SQL*Net

7 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. Contenedor de Servlets servlet BDD servlet Lógica de aplicación y presentación JDBC + SQL*Net HTML Servidor Web

8 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. Modelo Vista Presentador Datos ComandosEventos Selecciones

9 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. Contenedor de EJB1.1 EJB BDD EJB Lógica de aplicación JDBC + SQL*Net HTML Servidor Web Contenedor de Servlets JSP Presentación RMI

10 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 Contenedor de Servlets JSP Beans BDD Beans Lógica de aplicación JDBC + SQL*Net Presentación

11 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. SVG XML Lógica de negocio WML HTML Procesador XSL XSLT

12 12 Implementación El Light wEb 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 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 14 Implementación …cont WebLEAF (PLSQL-XML,XSL) Servlet Controlador Java Lógica de aplicación Presentación SVG WML HTML xslt BDD PLSQL xml Tareas auxiliares JDBC + SQL*Net Contenedor de Servlets Ficheros auxiliares xml

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

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

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

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

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

24 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 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 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 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/ 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 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/http://www.w3.org/TR/xsl/ XSL Transformations (XSLT) Version 1.0, W3C Recommendation 16 November 1999, http://www.w3.org/TR/xslthttp://www.w3.org/TR/xslt XSLT : Programmer's Reference, Michael Kay, Wrox, ISBN 0764543814 Extensible Markup Language (XML), W3C, http://www.w3.org/XML/ http://www.w3.org/XML/ Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation 6 October 2000, http://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xml Proyecto WebLEAF, https://webleaf.dev.java.net/


Descargar ppt "Aplicaciones Web con Oracle y XML 5 años de experiencias Universidad de las Islas Baleares Centro de Tecnologías de la Información Daniel López."

Presentaciones similares


Anuncios Google