aplicaciones web con oracle y xml 5 años de experiencias

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

Upload: kiri

Post on 14-Jan-2016

34 views

Category:

Documents


1 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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

Aplicaciones Web con Oracle y XMLAplicaciones Web con Oracle y XML5 años de experiencias5 años de experiencias

UniversUniversidadidad dede laslas Islas BalearesIslas BalearesCentro de Tecnologías de la Información (CTI@UIB)Centro de Tecnologías de la Información (CTI@UIB)

Daniel López Janáriz

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

2

ObjetivosObjetivos

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.

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

3

ContenidosContenidos

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

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

4

IntroducciónIntroducció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.

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

5

OrígenesOrí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

CGICGI

CGI

Lógica de aplicacióny presentación

Precompilador + SQL*Net

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

6

OrígenesOrígenes…cont…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 AplicacionesOracle PLSQL

PLSQL

PLSQL

Lógica de aplicacióny presentación

Servidor Web

Driver nativo +SQL*Net

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

7

OrígenesOrígenes…cont…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

servletservletservlet

Lógica de aplicacióny presentación

JDBC + SQL*Net

HTML

Servidor Web

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

8

OrígenesOrígenes…cont…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

Comandos Eventos

Selecciones

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

9

OrígenesOrígenes…cont…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

EJBBDD

EJBEJBEJB

Lógica de aplicación

JDBC + SQL*Net

HTML

Servidor Web

Contenedor de Servlets

JSPJSPJSPJSP

Presentación

RMI

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

10

OrígenesOrígenes…cont…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

JSPJSPJSPJSP

Beans BDDBeansBeansBeans

Lógica de aplicación

JDBC + SQL*Net

Presentación

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

11

Orígenes…Orígenes…contcont

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

XMLLógica

denegocio

WML

HTML

Procesador XSL

XSLT

USUARIO1
No siempre es cierto, a veces es un paso intermedio como cuando se genera SVG o FOP para posteriormente crear documentos gráficos o PDFs
Page 12: Aplicaciones Web con Oracle y XML 5 años de experiencias

12

ImplementaciónImplementació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.

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

13

ImplementaciónImplementación…cont…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).

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

14

ImplementaciónImplementación…cont…cont

WebLEAF (PLSQL-XML,XSL)

ServletControlador Java

Java

Lógica deaplicación

Presentación

SVG

WML

HTML

xsltxslt

xslt

BDD

PLSQL

PLSQL

PLSQL

xmlxml

xml

Tareas auxiliares

JDBC +SQL*Net

Contenedor de Servlets

Ficherosauxiliares

xml

xml

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

15

EvoluciónEvolució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.

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

16

EvoluciónEvolución…cont…cont

WebLEAF (EJB2.1-XML,XSL)

ServletControlador

EJBEJB

EJB

JDBC + SQL*NetPresentación

SVG

WML

HTML

xsltxslt

xslt

BDDxml

xmlxml

Lógica de aplicación

Contenedor de Servlets y EJBs

Ficherosauxiliares

xml

JavaJava

Tareas auxiliares

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

17

EvoluciónEvolución…cont…cont

WebLEAF (Hibernate-XML,XSL)

ServletControlador

JavaJava

Java

JDBC + SQL*NetPresentación

SVG

WML

HTML

xsltxslt

xslt

BDDxml

xmlxml

Lógica de aplicación

Contenedor de Servlets

Ficherosauxiliares

xml

JavaJava

Tareas auxiliares

JavaJava

Hibernate

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

18

Modelo de desarrolloModelo de desarrolloAnálisis y Definición de requerimientos

Maquetación HTML

Abstracción de informaciónModelado de datos y procesos

Definición contrato XML

Esquema de BDD

Maquetación XSL Implementación de procesos

MaquetaHTML

ModeloXML

InterfazXML

HojasXSL

ConfiguraciónentornoLógica de

negocio

Integración y pruebas

HojasXSL

Configuraciónentorno

XMLaux.Fuentes

XML

EsquemaBDD

EsquemaBDD

Aplicación

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

19

Ventajas e inconvenientesVentajas 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.

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

20

Ejemplos de uso IEjemplos 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.

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

21

Ejemplos de uso IEjemplos de uso I…cont…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

…<title><xsl:value-ofselect=“/ETIQUETAS/@Titulo”/></title>…

Contador.xsl

<INTERNACIONALIZE CONFIG_FILE_NAME=“Contador"/>…<XMLOPERATION XSLT_SOURCE=“Contador.xsl”…><SOURCEXMLSOURCE=“Etiquetas.xml”/><SOURCEXMLSOURCE=“plsql://MiPool/MiPaq.Miproc”/>…</XMLOPERATION>…

Contador.leaf.conf

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

22

Ejemplos de uso IIEjemplos 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.

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

23

Ejemplos de uso IIEjemplos de uso II…cont…cont

Aplicación accedida desde múltiples dispositivos

Acceso.xsl=“Acceso.xsl”

Acceso.xsl=“Acceso_wml.xsl”

Browser_wp.properties

<HTML>…<xsl:value-ofselect=“/EXPEDIENTE/@Nota”/>…</HTML>

Acceso.xsl

<BROWSERIZE CONFIG_FILE_NAME="Browser"> <BROWSER NAME="WP“

HTTP_ACCEPT="wap“ /></BROWSERIZE>…<XMLOPERATION XSLT_SOURCE=“Acceso.xsl”…><SOURCEXMLSOURCE=“plsql://MiPool/MiPaq.Miproc”/>…</XMLOPERATION>…

Acceso.leaf.conf

<WML>…<xsl:value-ofselect=“/EXPEDIENTE/@Nota”/>…</WML>

Acceso_wml.xsl

Browser.properties

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

24

Ejemplos de uso IIIEjemplos 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.

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

25

Ejemplos de uso IVEjemplos 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.

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

26

ConclusionesConclusiones 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.

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

Gracias por su atenciónGracias por su atención

¿Ruegos y preguntas?

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

28

ReferenciasReferencias 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/