Aplicaciones Web con Oracle y XML 5 a - PowerPoint PPT Presentation

About This Presentation
Title:

Aplicaciones Web con Oracle y XML 5 a

Description:

Title: MEDICARD Author: sciaac Last modified by: scidlj Created Date: 10/10/2002 8:38:36 AM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 29
Provided by: scia74
Category:

less

Transcript and Presenter's Notes

Title: Aplicaciones Web con Oracle y XML 5 a


1
Aplicaciones Web con Oracle y XML5 años de
experiencias
Universidad de las Islas BalearesCentro de
Tecnologías de la Información (CTI_at_UIB) Daniel
López Janáriz
2
Objetivos
  • Explicar las experiencias adquiridas en el
    CTI_at_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
  • CGIs PROCC
  • 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 SQLNet
BDD
6
Orígenescont
  • 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 SQLNet
7
Orígenescont
  • 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 SQLNet
servlet
servlet
servlet
BDD
Lógica de aplicación y presentación
8
Orígenescont
  • 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ígenescont
  • 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 -gt
    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
Contenedor de EJB1.1
JSP
JSP
Contenedor de Servlets
JDBC SQLNet
BDD
EJB
RMI
EJB
EJB
EJB
Lógica de aplicación
10
Orígenescont
  • 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 SQLNet
Beans
BDD
Beans
Beans
Beans
Lógica de aplicación
11
Orígenescont
  • 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
Lógica de negocio
Procesador XSL
WML
SVG
XSLT
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_at_UIB.

13
Implementacióncont
  • 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óncont
  • WebLEAF (PLSQL-XML,XSL)

HTML
Contenedor de Servlets
Tareas auxiliares
Java
WML
Servlet Controlador
Java
SVG
xml
BDD
xslt
xslt
Presentación
xslt
PLSQL
xml
PLSQL
JDBC SQLNet
PLSQL
xml
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óncont
  • WebLEAF (EJB2.1-XML,XSL)

Contenedor de Servlets y EJBs
HTML
Tareas auxiliares
Java
WML
Java
Servlet Controlador
SVG
EJB
xml
EJB
xslt
EJB
xslt
Presentación
xslt
JDBC SQLNet
BDD
Lógica de aplicación
xml
xml
xml
Ficheros auxiliares
17
Evolucióncont
  • WebLEAF (Hibernate-XML,XSL)

Contenedor de Servlets
HTML
Tareas auxiliares
Java
WML
Java
Servlet Controlador
Java
Java
SVG
Java
xml
Java
xslt
Hibernate
Java
xslt
Presentación
xslt
JDBC SQLNet
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
Hojas XSL
XML aux.
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
Ejemplos de uso Icont
  • 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
Ejemplos de uso IIcont
  • Aplicación accedida desde múltiples dispositivos

Acceso.leaf.conf
Browser.properties
ltBROWSERIZE CONFIG_FILE_NAME"Browser"gt
ltBROWSER NAME"WP HTTP_ACCEPT"wap
/gt lt/BROWSERIZEgt ltXMLOPERATION
XSLT_SOURCEAcceso.xsl gt ltSOURCE XMLSOURCEpls
ql//MiPool/MiPaq.Miproc/gt lt/XMLOPERATIONgt
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/develo
    per/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/
Write a Comment
User Comments (0)
About PowerShow.com