125
Sistema Nacional de Institutos Tecnologicos ICA SUBSECRETARIA DE EDUCACIÓN E INVESTIGACIÓN TECNOLÓGICAS Dirección General de Instiiutos Tecnológicos CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOL~GICO cenidet “GENERADOR AUTOMÁTICO DE INFORMES WEB EN BASE AL ESQUEMA DE B A S ES DE D A T O S UTILIZANDO TECNOLOG~AS XML *’ TESIS PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS DE LA COMPUTACI~N PRESENTA: c. MA. DEL ROSARIO VÁZQUEZ ARAGÓN

ICA SUBSECRETARIA DE EDUCACIÓN E ......Figura 5.21, Usuario y password para establecer conexión con el SMBD Mysql ..... 62 Figura 5.22. Mensaje mostrado cuando la conexión se estableció

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • Sistema Nacional de Institutos Tecnologicos

    ICA SUBSECRETARIA DE EDUCACIÓN E INVESTIGACIÓN TECNOLÓGICAS Dirección General de Instiiutos Tecnológicos

    CENTRO NACIONAL DE INVESTIGACI~N Y DESARROLLO TECNOL~GICO

    cenidet “GENERADOR AUTOMÁTICO DE INFORMES WEB EN BASE AL ESQUEMA

    DE BASES DE DATOS UTILIZANDO TECNOLOG~AS XML *’

    T E S I S

    PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS

    EN CIENCIAS DE LA COMPUTACI~N

    PRESENTA: c. MA. DEL ROSARIO VÁZQUEZ ARAGÓN

  • . 13 . .. ' I " ' j

    FORMULARIO C3 REVISIÓN DE TESIS

    Cuemavaca, Mor., a 26 de Septiembre del 2003.

    Dr. Gerard0 Reyes Salgado Presidente de la Academia de Ciencias Computacionales Presente

    Nos es grato comunicarle, que conforme a los lineamientos para la obtención del grado de Maestro en Ciencias de este Centro, y después de haber sometido a revisión académica la tesis denominada: Generador Automático de Informes Web en base al Esquema de Bases de Datos utilizando Tecnologías XML, realizada por el(la) C. Ma. del Rosario Vázquez Aragón, y habiendo realizado las correcciones-que le fueron indicadas, acordamos no tener objeción para que se le conceda la autorización de impresión de la tesis.

    Sin otro particular, quedamos de usted.

    Atentamente

    La comisión de revisión de tesis

    . ario Guillén Rodriguez

    Codirector de tesis

    C.C.P. Dr. Rodolfo A. Pazos Rangel, Jefe del Depto. de Ciencias Computacionales. Lic. Olivia Maquinay Díaz, Jefe del Depto. de Selvicios Escolares. C. Ma. del Rosario Vázquez Aragón, alumno del programa de maestría.

    INTERIOR INTERNADO PALMIRA S/N. COL, PALMIRA , A.P. 5-164. CP. 62490. CUERNAVACA, MOR. - MEXICO TELS. 17771 312 23 14,318 77 41, FAX 17771 312 2434 EMAll [email protected]

  • C. Ma. del Rosario Vázquez Aragón Candidato al grado de Maestro en Ciencias en Cimcias de la Computación Presente

    Cuernavaca, Mor., a 03 de Octubre de 2003.

    Después de haber atendido las indicaciones sugeridas por la Comisión Revisora de la Academia de Ciencias Computacionales en relación a su trabajo de tesis: Generador Automático de Informes Web en base al Esquema de Base de Datos Utilizando Tecnologías XML, me es grato comunicarle, que conforme a los linearnientos establecidos para la obtención del grado de Maestro en Ciencias en este Centro, se le concede la autorización para que proceda con la impresión de su tesis.

    Atentamente

    C.C.P. Lic. Ohvia Maquinay Díaz, Jefe Depto. de Servicios Escolares. INTERIOR INTERNADO PALMIRA S/N, COL. PALMIRA , A.P. 5.164. CP. 62490. CUERNAVACA. MOR. - MÉXICO TELS.(777)312 2314,318 7741,FAX(777) 312 2434 EMAlL pozos~sd-cenidel.com.mx

  • A mis padres:

    Este trabajo se los dedico a ustedes, ya que siempre conté con su apoyo moral, siendo mi principal motivación para concluir mis estudios.

    A Alex:

    Por brindarme esa fuerza para seguir adelante y por confiar en mí. Gracias por permanecer a mi lado. Te quiero.

  • El desarrollo de este trabajo de tesis no hubiera sido posible sin el apoyo de instituciones como: CoSNET y SEP. Le Agradezco a CoSNET por financiar mis estudios de maestría durante dos años, as¡ como a la SEP que apoyó parte de mis estudios.

    Agradezco a cenidet por darme la oportunidad de realizar mis estudios de maestría en esta institución, así como a los profesores que laboran en ella, por haberme proporcionado parte de sus conocimientos. Gracias.

    Especialmente, agradezco a mi director de tesis, al M.C. Mario Guillén Rodriguez por guiarme y orientarme dúrante el desarrollo del trabajo de tesis. Así como a los integrantes del comité revisor: M.C. José Antonio Zarate Marceleño, Dr. René Santaolaya Salgado y Dr. Joaquín Pérez Ortega por sus acertadas recomendaciones durante el desarrollo del trabajo de tesis.

  • Contenido Pág.

    Lista de figuras ............................................................................................................................... v

    Lista de tablas ........................ ....................................................................... Capítulo 1. Introduccion ............................................................................................................... 1

    1.1 Antecedentes .............. ........... ............. 2

    .I

    1.2 Planteamiento del problema ............................................................................................... 3 1.3 Propuesta de Solución ...................... .............................................. .................... 3 1.4 Alcances ........................................... .................................................. 4 1.5 Limitaciones ........................................................................................................................ 4

    .................................................................................... 1.7 Organización del documento _..__ ........................................................... ........

    2.1 Aplicación Web ........................... ......... ............ 7 Capítulo 2. Marco teórico ............................................................................................................. 6

    2.2 Conectividad con bases de datos ....................................................................................... 8

    2.3 Paginas Web Dinamicas ............................................................................................ 2.3.1 Servlets ............................................................................................................. 2.3.2 Tecnología JavaServer Page ...........................................................................

    I . . I .

    2.4 Librería Estándar de Etiquetas JSP ............................................................. 9 . . 2.5 Servidor de aplicaciones ...........................................................

    2.6 Lenguaje de Marcado Extensible .................... 2.6.1 Objetivos del XML ................................................................................. 2.6.2 Características de un documento XML ................ ~ ............ 2.6.3 Ventajas de utilizar XML en las aplicaciones Web ...........................

    2.7 Tecnologías XML asociadas ....................................... ................................................ 12 2.7.1 Definición de Tipo ........................................ 2.7.2 Esquema .............. ............................................................... 12 2.7.3 Espacio de Nomb 2.7.4 Hojas de Estilo ........................................................

    ........................................... 13 .................................. 13

    2.7.4.1 Hojas de Estilo en Cascada ............................................ 2.7.4.2 Lenguaje Extensible de Hojas de Estilos ..........................

    2.7.4.2.1 Funciones de los componentes de XSL .................................................. 14 2.7.4.2.2 Funcionamiento del XSL.. 2.7.4.3 XSL versus CSS .......................................................

    .......................................................... 15 ........... 16

    i

  • 2.8 API Para el Procesamiento de XML ............. : ............................................... 2.8.1 Características de las APls Java ............................................. 2.8.2 Tecnologías del JAXP .................................................

    2.8.2.1 API Simple para XML ........................................... .... ................. 17 2.8.2.2 Modelo de Objeto de Documento ............ 2.8.2.3 Características SAX y DOM ........... ; .........................................

    ..............................

    Capítulo 3. Estado del arte ......................................................................................................... 20 3.1 Introduction ................................................................................... .......................... 21 3.2 Trabajos de Investigacion ................................................................................................. 21

    . I

    . .,

    3.2.1 Formateador de Informes Web para un Sistema Manejador de Bases de datos

    Distribuidas ........... ........................................................ 3.2.2 Módulo XML para acceder al sistema Administrador de Bases de Datos SQLmx a

    través de Internet. .......................................................................................... 22 3.3 Herramientas Comerciales .......................................................... ...................

    3.3.1 Crystal Report Versión 8.5 ................................................. 3.3.2 Oracle Reports Versión 9i ..................................................... 3.3.3 Impromptu Web Reports. ..................................................... 23 3.3.4 Generador de reportes PDF de FyTek ............................. .... 24 3.3.5 EspressReport Versión 3.0 ........ ........................................................................... 24

    _. . _. . _. ., .. 24

    ............................................... 24 3.4 Librerías de soporte para generar reportes (freeware) .............................

    3.4.1 Generador de reportes genérico ......................... 3.4.2 Faceless Versión 1 .I .e... 3.4.3 JFreeReport Versión 8.5 ......................................... 3.4.4 Maverick MVC Framework ....... ..................................... ................... 25

    ............................................... ....................................

    .... .............................................................................. 26 3.4.5 Freemarker ................. .27 3.5 Caracteristicas principales de las herramientas analizadas ..............

    4.1 Descripción del Sistema Generador Automático de Informes Web 4.2 Arquitectura del sistema .......... 4.3 Componentes del sistema .................

    Capitulo 4. Arquitectura y diseño del sistema ......................................................................... 28 ................... 29 .................. 29 .................. 31 .......................................

    . I 4.4 Operation del sistema ................................................................................................ 4.4.1 Fase 1: Traducción al formato XML del esquema de la base de datos ylo consultas

    personalizados ........................................................................ 4.4.2 Fase 2: Generación de Hojas de Estilo .. ......................

    < <

    11

  • 4.4.3 Fase 3: Generación de archivos JSPs a partir del documento XML generado 37 ......... 4.5 Diseño del sistema ...................... ................................................. 38

    4.5.1 Diagrama de Casos de uso .............. ......... .............................. 39 4.5.1.1 Cas0 de uso: Generación del documento XML .................................... 4.5.1.2 Caso de uso: Aplica diseño .................................... 4.5.1.3 Caso de uso: Genera informe ...

    4.5.2 Diagramas de Actividades.. ......

    4.6 Restricciones de diseño ....... ........................................................................................ .43 Capítulo 5. Pruebas y resultados del sistema .......................................................................... 44

    5.1 Fase de pruebas ............................................................................................................... 45 45 5.2 Plataforma de pruebas .............................................................................................

    SMBDR postgresql 7.1 ................................................................ ............... 5.3 Obtención de informes Web a partir del esquema de la base de datos utilizando el

    5.3.1 Prueba 1: Conexión a la base de datos .... 5.3.1.1 Caso A: Datos de entrada válidos .,.. 5.3.1.2 Caso B: Datos de entrada no válidos ............... ....................... 49

    5.3.2 Prueba 2: Generación del documento en formato XML a partir del esquema de la base de datos .......................................................

    5.3.2.1 Caso A: Generación exitosa del documento XML ...... 5.3.2.2 Caso B: Generación fallida del documento XML ................................... 53

    5.3.3 Prueba 3: Generar informes Web 5.3.4 Prueba 4: Conversión del contenido del informe Web generado a formato Excel ..... 57

    5.3.5 Prueba 5: Cambiar el diseño del informe Web ..................................... 5.3.6 Prueba 6: Ejecución de un informe cuya tabla ha sido eliminada de la base datos ..59

    5.4 Obtención de informes Web a partir del esquema de la base de datos utilizando el ....................... ....................... 60 SMBDR mysql 3.23.57 .....................

    5.4.1 Prueba 1: Conexión a la base de datos .......... 5.4.2 Prueba 2: Generación del documento en formato XML a partir del esquema de la

    ......................... ..60

    ...................... 62 ....................... 64

    66 66

    .......................... 67 Capítulo 6. Conclusiones ........................................................................................................... 69

    base de datos ... ................................. 5.4.3 Prueba 3: Generar informes Web

    5.5 Obtención de informes Web a partir de consultas personalizadas ................ 5.5.1 Prueba 1: Generación del documento en formato XML 5.4.3 Prueba 2: Generar informes Web ...................................

    ... 111

  • 6.1 Conclusiones generales .............................. .... ... ...... 70 6.2 Beneficios ....... .............................................................................................................. 70 6.3 Resultados obtenidos ...................................................................... 71 6.4 Trabajos Futuros ............................................................................................................... 71

    Anexos ........................................................................................................................................ 73 Anexo A . Notas de instalación del sistema ............ ............................................ 74 Anexo B . Sistema de archivos GAR ........................................................................................ 75 Anexo C . Guía rápida del sistema .................. ;. ..................... ~ .............. Anexo D . Problemas comunes del sistema .......................................... Anexo E . Problemas comunes del sistema ........................................................................... 103

    Glosario de términos ............................................................................................................... 106 Referencias ............................................................................................................................... 109

    iv

  • Lista de tablas

    Tabla 2.1. Características SAX y DOM ........................................................................................ 19 Tabla 3.1. Tabla comparativa del estado del arte ........................................................................ 27 Tabla B1 . Descripción de las propiedades del archivo Gar.xml ................................................... 76

    Pág .

    ... VI11

  • Lista de figuras Pág.

    Figura 2.1, Arquitectura de una aplicación Web Figura 2.2. Evolución de la especificación XCL ..................................... Figura 2.3. Procesador XSLT ............................ ~ .............. ._ ......

    .........................

    ......................... Figura 4.1. Arquitectura del sistema ...................... Figura 4.2. Diagrama de clases del sistema ................................................................................ 30 Figura 4.3. Diagrama de operación del sistema generando el documento XML a partir de la

    ....................................................

    extracción de los metadatos de la base de datos ............................................. Figura 4.4. Diagrama de operación del sistema generando el documento XML a partir de

    consultas personalizadas .......................................................................................... .33

    33

    Figura 4.5. Modelo conceptual de la Fase 1 .................................................................... Figura 4.6. Esquema de la base de datos Control ........................ ... Figura 4.7. Estructura de árbol generada al utilizar el API DOM ... ........................... 35 Figura 4.8. Documento XML generado a partir del esquema de la base de datos ......... 36 Figura 4.9. Documente XML generado a partir de una consulta ................................................... 36 Figura 4.10. Contenido de la plantilla XCL ..... ........................................................................ 38 Figura 4.1 1. Caso de uso del prototipo desarrollado ............................................................ Figura 4.12. Diagrama de caso de uso para generar el documento XML ........ Figura 4.13. Diagrama de caso de uso para aplicar diseño a los informes ..... Figura 4.14. Diagrama de caso de uso para generar informes ....................... Figura 4.1 5. Diagrama de actividad para generar el documento XML .......................................... 42 Figura 4.16. Diagrama de actividad para generar los archivos JSPs ....... ............................ ..43 Figura 5.1. Plataforma de pruebas utilizada con el SMBD Postgresql ....... Figura 5.2. Archivo de configuración Drivers.xml ................................................ Figura 5.3. Cuadro de diálogo conexión ............... ...................................... Figura 5.4. Cuadro de diálogo con datos de la cuenta ............................. Figura 5.5. Mensaje de éxito al establecer conexión con la base de datos Figura 5.6. Cuadro de diálogo conexión con datos inválidos ........................................... Figura 5.7. Mensaje de error mostrado al no obtener conexión ................. Figura 5.8. Cuadro de diálogo con las tablas y/o vistas existentes en la b Figura 5.9. Documento XML generado a partir del esquema de la base d Figura 5.10. Esquema conceptual de la base de datos Control ............... Figura 5.1 1. Mensaje de error mostrado al no generarse el documento XML ................

    V

  • Figura 5.12. Sección hojas de estilo del cuadro de diálogo Configuración ........... Figura 5.13. Página index generada por el sistema Figura 5.14. Archivo JSP de la tabla profesores ........................... ;, Figura 5.15. Informe profesores con el diseño mezclilla ...........................................

    ............................... ...............................

    Figura 5.1 6. Datos de Conexión ........................................................ ...................................... 57 Figura 5.17. Datos del informe Web profesores en formato Excel ........................... Figura 5.18. Informe profesores con el diseño Diseño3D ......................... ................................ 59 Figura 5.19. Página de error al no ser posible visualizar un informe Web ..................... Figura 5.20. Parámetros de conexión correspondientes al SMBD Mysql ....................... Figura 5.21, Usuario y password para establecer conexión con el SMBD Mysql .......................... 62 Figura 5.22. Mensaje mostrado cuando la conexión se estableció de manera satisfactoria .......... 63 Figura 5.23. Tablas ylo vistas existentes en la base de datos Control del SMBD Mysql ... Figura 5.24. Documento XML generado a partir del esquema de la base de datos del SMBDR

    .63

    Mysql ......................................... ........................................................................... 64 Figura 5.25. Esquema conceptual de la base de datos control del SMBD Mysql ............. Figura 5.26. Página index con los informes generados del SMBD Mysql ......... ........................ 65 Figura 5.27. Informe especialidad con el diseiio DiseiioMezclilla ................................................. 65 Figura 5.28. Cuadro de diálogo para consultas perconalizadac ............................... Figura 5.29. Contenido del archivo consultas.xml ............................... Figura 5.30. Página index con el informe generado del SMBD Mysql ........................................... 68 Figura 5.31. Informe Web generado a partir de la consulta realizada .......................................... 68 Figura B I . Archivos de configuración del sistema ................................... Figura 82. Contenido del archivo Gar.xml ..................... ; ............................................................. 76 Figura 83. Contenido del archivo Drivers.xml . ..... .

  • base de datos ............................................................................................................ 84 Figura C9. Selección de tablas sobre las cuales se generará el documento XML ....................... 84 Figura CIO. Cuadro de diálogo con los documentos xml existentes .................................... Figura C11. Cuadro de diálogo para realizar consultas personalizadas.. Figura C12. Cuadro de diálogo para asignar alias a los campos de las relaciones ... Figura C13. Mensaje de error al no ser posible generar ¡os informes ....

    ....................... 86 .87

    .............................. a7

    .............................. aa Figura C14. Opciones del comando archivos del sistema ...................... Figura C15. Visualizacion del contenido de los archivos de configuración del siste Figura C16. Subopciones de la opcion Generar del comando Informes ....... Figura C17. Opciones del comando Herramientas ......... ........................................................ 89 Figura C18. Sección Hojas de estilo del cuadro de diálogo configuración .................................... 90

    91

    Figura C20. Sección Drivers del cuadro de diálogo configuración ................................................ 92 Figura C21. Adición al sistema de los datos de los controladores ............................................... 93 Figura C22. Opción del comando ayuda ....................................................................................... 93 Figura C23. Cuadro de diálogo con información acerca del sistema ............................................. 94 Figura C24. Cuadro de diálogo conexión ........................... ........................................... 95 Figura C25. Error generado por el servidor de aplicadones ........................................................ 98 Figura DI . Directorios del servidor de aplicaciones .................................... .. 99 Figura D2. Contenido del directorio Generator ............ : ............................... 101 Figura D3. Visualización del archivo especialidad.jsp ................................................................ 102 Figura E l . Opciones del menú Inicio ................................. ..................................... Figura €2. Cuadro de dialogo propiedades de Barra de tareas y menú Inicio ............. Figura E3. Opciones de carpeta del comando herramientas .... :... .............................................. 105 Figura E4. Cuadro de dialogo Opciones de carpeta ...................................................... 105 Figura E5. Cuadro de dialogo Modificar tipo de archivo ............................................................. 105

    Figura C19. Sección Directorio de la aplicación del cuadro de diálogo configuración .........

    vii

  • Capítulo 1 Introducción

    En este capítulo se exponen los antecedentes que motivaron la realización de la presente tesis Se específica la descripción del problema, la propuesta de solución, los alcances y limitaciones.

  • Capitulo 1 Introducción

    El desarrollo de aplicaciones Web basadas en bases de datos incluye tareas monótonas y repetitivas, lo que ocasiona que se generen un sinnúmero de programas para las diferentes consultas que se desean desplegar, esto recae en'el hecho de que la generación de cualquier página HTML, en donde se despliegan cada una de las consultas y/o vistas, son muy similares entre si, ya que tienen código en común y solo varían ciertos datos. Lo monótono y repetitivo representa un problema para el desarrollador de aplicaciones, ya que normalmente la generación de páginas HTML se realiza copiando y pegando partes de código predefinido para posteriormente aplicar los cambios necesarios y asi adaptarlo a la nueva página.

    Además, para el desarrollo de aplicaciones Web basada en base de datos, es necesario que para la generación de las consultas, los desarrolladores tengan cierto conocimiento, tanto para el diseño de páginas Web como para realizar consultas a una base de datos, sin este conocimiento muchos desarrolladores principiantes se verán limitados para acceder a sus datos a través de Internet e Intranets.

    1.3 Propuesta de solución.

    Dado el problema anteriormente expuesto, se diseñó e implementó una herramienta que permite automatizar el desarrollo de aplicaciones Web basadas en base de datos, a través de la generación de archivos JSP que permitan desplegar la información de las tablas de la base de datos. Lo anterior es posible al extraer el esquema de la base de datos en el formato XML y por medio de transformaciones con herramientas XSLT,(por sus siglas en inglés, Extensible Markup Language Transformation) son traducidas a páginas JSP. Aci mismo si se desean consultas especiales que involucren dos o más tablas, éstas .se realizan por medio de vistas Ó consultas previamente definidas para ello.

    Se propuso esta solución, debido a que las consultas a las diferentes tablas ylo vistas estarán disponibles para el desarrollador de aplicaciones, y de esta manera será posible manipular el formato de diseño de las páginas donde se desplegará la información relacionada al informe. El desarrollo de la herramienta está basado en 3 fases, las cuales se mencionan a continuación:

    o Fase 1 : Extracción del esquema de la BD en formato XML. o Fase 2 : Generación de un archivos JSP. o Fase 3 : Módulo divisor del archivo JSP generado en varios JSP.

    Para el desarrollo de dicha herramienta se hizo uso de tecnologias tales como: páginas JSP, Servlets, bibliotecas de etiquetas perconalizadac, XML.etc.

    1.4 Alcances.

    Los alcances de este trabajo de tesis, se listan a continuación:

    o Diseño e implementación de un prototipo para la extracción del esquema de la base de datos en base a ciertos parámetros introducidos por el usuario tales como el nombre de la base de datos, el SMBD que se está utilizando, asi como el directorio donde se localiza el controlador para dicho SMBD.

    3

  • Capítulo 1 lntroduccion

    1 .I Introducción.

    En sus inicios la Internet fue diseñado para desplegar documentos hipertexto con información estática, posteriormente apareció el CGI (Common Gateway Interface), un estándar que permite a los servidores Web interactuar o tener una interface con aplicaciones externas, que pueden generar páginas dinámicas. Por ejemplo, un programa CGI puede recuperar resultados desde una base de datos e insertar estos resultados como una tabla dentro de un documento hipertexto.

    En aplicaciones CGI, por cada petición que llega desde un visualizador, el sistema operativo crea un nuevo proceso. Una vez que el CGI termina de ejecutarse, los recursos utilizados por el proceso son reclamados por el sistema operativo, la creación de procesos es ineficiente; ya que se consume demasiado tiempo en la obtención y liberación de recursos. El tiempo de respuesta podria ser lento si existen varios usuarios haciendo peticiones de manera concurrente a la misma aplicación Web. Otra limitante de los CGls es que no se pueden ligar a otros escenarios de procesamiento de peticiones de un servidor web. Esto se debe a que se ejecutan como un proceso separado desde el servidor y es dificil manejar situaciones tales como: autorización, acceso (log in), etc.

    A mediados de los go’s, el lenguaje Java experimentó un gran crecimiento y auge entre los desarrolladores de aplicaciones, la tecnologia Java fue evolucionando dando origen a los Java Servlets que permiten ejecutar aplicaciones Web en el lado del servidor.

    La principal diferencia de los servlets con los CGls es que permiten el uso de multihilos, en programación multihilos se crea un solo proceso y por cada petición de usuario se genera un hilo, debido a que cada petición del usuario se asocialcon un hilo separado, varios hilos o usuarios pueden invocar métodos de servicio al mismo tiempo consumiendo menos recursos. Los multihilos de los servlets son una de las principales ventajas sobre las aplicaciones CGI. La introducción de las Páginas Java del Servidor (JSP, por sus sigias en inglés, JavaServer Pages) ayudan a mejorar las limitantes de los servlets, por ejemplo; modificar una página HTML generada dinámicamente implica que el servlet se recompile nuevamente, debido a que ésta se encuentra embebida en el mismo servlet, otra de las limitantes es que no es posible separar el diseño de la página de la lógica de la programación. Los problemas que presentan los servlets son resueltos por las páginas JSP. ya que éstas separan la presentación de la lógica de la aplicación.

    Este trabajo de tesis fué desarrollado en el Centro Nacional de Investigación y Desarrollo Tecnológico, y el prototipo obtenido permite a los desarrolladores de aplicaciones Web generar sistemas que obtengan información de una base de datos de una manera fácil y rápida, además de automatizar el uso de tareas repetitivas.

    1.2 Planteamiento del problema.

    Las páginas HTML del World Wide Web se han extendido a través de Internet, y ha surgido la necesidad de dotar de mecanismos de programación a las páginas HTML, con el fin de conseguir dinamismo e interacción entre los usuarios y los servidores de Web. De esta manera, el desarrollo de aplicaciones Web profesionales involucra la utilización de tecnologias que permiten obtener información proveniente de clientes y de bases de datos, utilizando programas que funcionen en Internet.

    2

  • Introducción

    o Traducción del esquema de la base de datos en lenguaje SQL obtenido en el punto anterior, a un esquema XML.

    o Diseño del formato de las páginas que despliegan el contenido de las tablas ylo vistas definidas en la base de datos; para el diseño de estas paginas se hizo uso de la tecnología XSL.

    o Obtención de un archivo JSP a partir del esquema XML y la hoja de diseño contenida en un archivo con extensión XSL utilizando tecnología XSLT.

    o Desarrollo de un módulo separador para dividir el archivo JSP generado en el punto anterior a diversos archivos JSP correspondiente a cada tabla o vista de la Base de Datos.

    o Diseño e implementación de un servlet controlador de etiquetas JSP,

    o Despliegue de la información de las tablas de la base de datos.

    o Generación de varios formatos de diseño para el despliegue de los informes

    o La herramienta es capaz de trabajar con,el Sistema Manejador de Bases de Datos Postgresql versión 7.0.3 ó posterior, que soporte el Estándar Internacional de SQL ISOllEC y tenga un JDBC disponible.

    Capitulo 1

    o Es posible ejecutar la herramienta en cualquier máquina que tenga instalada la máquina virtual de java y cuente con un servidor web, el cual debe tener un contenedor de servlets (Tomcat).

    1.5 Limitaciones.

    Los puntos que no se consideraron en el desarrollo de este proyecto de tesis se listan a continuación:

    o Esta herramienta no permite realizar operaciones de actualización sobre la información definida en la base de datos.

    La herramienta no implementa la optimización del código generado; es decir, el código que se genere puede crecer sin límite dependiendo de las características del informe Web diseñado.

    o La herramienta es compatible con aquellos sistemas manejadores de bases de datos (SMBD) que cuenten con un controlador JDBC.

    o

    1.6 Organización del documento.

    Este documento de tesis se encuentra dividido en seis capítulos. A continuación se da una breve explicación acerca del contenido de cada uno de ellos.

    4

  • Capitulo 1 Introducción

    Capítulo II Se tratan las tecnologías disponibles para procesar documentos XML. Estas tecnologías se dividen en diferentes niveles de abstracción y proporcionan diferentes niveles de utilización para el programador Java. Es posible que algunas tecnologías como SAX, DOM, Xpath y XSLT, se relacionen unas con otras. Además se presenta una introducción a estas tecnologías que existen para el desarrollo de aplicaciones Web, así como el metalenguaje XML y sus tecnologías asociadas.

    Capítulo 111

    Capítulo IV

    Capítulo V

    Capítulo VI

    5

    Anexo A

    Anexo B

    Anexo C

    Anexo D

    Anexo E

    Se presentan herramientas similares a este trabajo de tesis, tanto comerciales como trabajos de investigación, así como una tabla comparativa entre ellas.

    Se presentan los módulos de los cuales está compuesto el sistema

    Se presentan los casos de prueba a los que fue sometida la herramienta

    Se presentan las conclusiones que se obtuvieron con el desarrollo de este trabajo de tesis, así como los beneficios que aporta y trabajos futuros que pudieran implementarse a la herramienta.

    Notas de instalación del sistema.

    Sistema de archivos GAR.

    Manual de usuario

    Plataforma de ejecución

    Configuración del explorador Windows 2000.

    5

  • Capítulo Marco teórico

    2 En este capítulo se definirá el origen, áreas de aplicación, conceptos y una visión global de las tecnologías relacionadas con XML.

  • Marco Teórico Capítulo 2

    2.1 Aplicación Web.

    Una aplicación Web es una colección de servlets, páginas JSPs, clases java, archivos de descripción de la aplicación, documentos estáticos HTML (Lenguaje de Marcado de HiperTexto), XHTML (Lenguaje de Marcado de HiperTexto extensible), imagenes, etc., y otros recursos que pueden ser empaquetados y ejecutados en distintos servidores de diferentes proveedores. Esto es, una aplicación Web se podría definir como la capa Web de cualquier aplicación.

    La Web se diseñó originalmente como un medio para suministrar páginas estáticas a los usuarios de Internet. Cuando un navegador Web solicita una página a un servidor Web, éste último extrae el archivo que contiene la página solicitada de su sistema de archivos y lo devuelve al navegador a través de la conexión HTTP (Protocolo de Transferencia de HiperTexto).

    El servidor Web es responsable de administrar un conjunto de documentos almacenados en el sistema de archivos. Cuando el servidor Web recibe la petición para presentar un documento lo recupera, y lo regresa al navegador por medio de una respuesta HTTP.

    htta:/Www.cenidet. edumx

    Cliente (Navegad or)

    1

    intranet Internet

    Servidor Web

    Figura 2.1 Arquitectura de una aplicación Web.

    Hoy en día, las aplicaciones Web se construyen generalmente siguiendo el modelo trifásico. Este modelo surgió ante la necesidad de separar la lógica empresarial de la interfaz gráfica de usuario (GUI) y de las diferentes fuentes de información como podría ser una base de datos Ó una aplicación heredada [Maruyama, 2000, pp, 7-81, De acuerdo con este modelo se ejecutan en plataformas distintas tres procesos separados y perfectamente definidos:

    o La GUI, es decir, el navegador que se ejecuta en la computadora del usuario. o El programa o programas de aplicación que se ejecutan en el servidor Web y que se

    encargan de procesar los datos (nivel lógico empresarial). o Una aplicación heredada ó un sistema de base de datos requiere de la fase 2 del

    modelo.

    7

  • Capítulo 2 Marco Teórico

    Para el resto de este documento se considera a la tercera capa del modelo como un Sistema Manejador de Base de Datos.

    2.2 Conectividad con bases de datos.

    Para que un programa de aplicación pueda extraer información de un sistema de administración de base de datos relacionales (RDBMS. por sus siglas en inglés, Relational Database Management Systems), es necesario establecer una conectividad con la base de datos. Ésta permite recuperar y actualizar los datos de forma eficaz y sencilla, sin afectar a la integridad y consistencia de los mismos, Java cuenta con la API denominada JDBC, la cual ofrece una forma para que las aplicaciones Web accedan a bases de datos.

    El JDBC fue definido por Sun MicroSystems, y permite que los programas Java ejecuten consultas utilizando el Lenguaje de Consultas Estructurado (SQL, por sus siglas en inglés, Structured Query Language), y por tanto, interactuar con bases de datos compatibles con SQL, condición que casi todos los RDBMSs reúnen. Ésto, unido a la capacidad de Java para ejecutarse en la mayoría de plataformas, permite que una sola aplicación Java de base de datos pueda ejecutarse en distintas plataformas, e interactuar con otros RDBMSs. Por ello, las aplicaciones Web que tengan que acceder a bases de datos deben hacerlo a través de JDBC [Maruyama, 2000, 178-791.

    2.3 Páginas Web Dinámicas.

    AI utilizar una aplicación Web, lo que devuelve el servidor Web no necesariamente tiene que ser una página estática almacenada en el servidor ya que ésta se puede generar de manera automática al momento en que el cliente hace la solicitud. Para ello, existen varias tecnologías en el lado del servidor tales como: los CGls, servlets, JSPs, ASP (por sus siglas en inglés, Active Server Pages), PHP, etc.. las cuales se explican a continuación y que permiten al desarrollador de aplicaciones generar páginas Web dinámicas. .

    2.3.1 Servletc.

    Son programas Java que se ejecutan en el lado del servidor Web y fungen como una capa intermedia entre una petición proveniente del navegador u otra aplicación HTTP y/o bases de datos u otro tipo de aplicaciones del servidor [Hans,2001]. Para este caso Únicamente se consideran tecnologías Java.

    Las principales caracteristicas de los servlets son [Hall, 2001, pp.5-9, Ceballos, 2000, pp. 737- 7381:

    o Consumen menos recursos porque sólo son cargados la primera vez que se solicitan sus servicios, debido a que la máquina Virtual de Java permanece inicializada. Cada petición del Servlet es manejada por un hilo Java, y no por un proceso generado por el sistema operativo (como el CGI ).

    a

  • Marco Tedrico Capítulo 2

    o Debido a que existen varios contenedores de servlets gratuitos o de bajo costo, se reduce el costo para el desarrollo de servlets.

    o No requieren soporte para Java en el explorador del cliente, ya que operan en el dominio del servidor y envían los resultados en HTML. No obstante, se pueden utilizar otras interfaces de cliente como aplicaciones Java o Applets.

    o Son independientes de la plataforma, ya que están escritos en el lenguaje Java

    La principal limitante que presenta el Servlet, es que no es posible separar, el diseño de la página, de la lógica de la programación, debido a que la página HTML se encuentra embebida en el mismo Servlet [Chuck,2001].

    2.3.2 Tecnología JavaServer Pages.

    Java Server Pages (JSP) es una tecnología que permite al desarrollador de aplicaciones mezclar HTML estático con instrucciones de Java que permiten generar HTML en forma dinámica [Chuck,2001, Hall, 2001, pp. 9-13], es decir; la tecnología JSP combina elementos del lenguaje de marcas estáticos (HTML) y elementos creados dinámicamente mediante objetos del lenguaje Java.

    Los JSP surgen como una solución a las limitantes que presentan los Servlets, ya que permiten separar la presentación de la página, de la lógica de la aplicación. Las páginas JSP son una extensión de la tecnología Servlet ya que simplifican la forma de desarrollar Servlets y hacen énfasis en la parte de presentación de la aplicación. Las páginas JSP son traducidas a un Servlet y compilados en forma automática por el contenedor Web. Por lo que finalmente en el contexto de un servidor Web lo que se ejecuta es un Servlet.

    Los JSP son preprocesados y traducidos a archivos Java (Servlet), el compilador de Java compila el archivo fuente y crea el código de Byte que puede ser cargado y ejecutado como un Servlet [Chuck,2001].

    La tecnología JSP proporciona un número de características que son ideales para trabajar con XML. Las páginas JSP pueden contener cualquier tipo de datos basados en texto, es por esto que son ideales para generar documentos que contienen marcas XML. Las páginas JSP también pueden usar todo el poder de la plataforma Java para acceder a objetos del lenguaje para analizar y transformar mensajes XML en documentos. En particular, como parte del entorno Java, las páginas JSP pueden usar objetos que utilicen los nuevos APIs Java para procesar datos XML

    2.4 Librería Estándard d e Etiquetas JSP.

    La librería Estándar de Etiquetas JSP (JSTL) es una colección de etiquetas que permiten producir páginas Web dinámicas sin necesidad de aprender el lenguaje Java. JSTL está construida sobre una tecnología en el lado del servidor llamada JSP, la cuál a su vez está construida sobre el lenguaje Java [Bayern, 2002, pp. 4-14]. A diferencia de los JSP donde el uso de sus etiquetas pueden tornarse difíciles de comprender, a menos que quien desarrolle Ó dé mantenimiento al JSP sea un programador, JSTL proporciona etiquetas fáciles de usar y comprender; y facilita a los programadores Java el desarrollo de etiquetas personalizadas.

  • Marco Teórico Capítulo 2

    AI utilizar JSTL con JSP. es posible crear páginas que lean documentos XML, que accedan a base de datos y que ejecuten una variedad de tareas,. El JSTL está construido sobre una caracteristica JSP conocida como etiquetas personalizadas.

    El JSTL 1.0 incluye etiquetas para realizar las siguientes tareas:

    o Realizar ciclos sobre datos para producir tablas, listas, etc. o Operaciones condicionales o Importación y procesamiento de datos desde otras páginas Web o Manipulación simple de documentos XML o Acceso a base de datos o Internacionalización y formate0 de texto

    2.5 Servidor de Aplicaciones.

    Para que las páginas Web sean generadas dinámicamente, se requiere que, además de utilizar una tecnologia en el lado del servidor (Servlets, JSP, ASP, etc), se utilice un servidor de aplicaciones Ó contenedor Web. El contenedor es el que contiene o alberga una aplicación Web, y no es más que la estructura de directorios en donde están colocados todos los archivos necesarios para la ejecución de la aplicación Web. Los datos enviados dentro de la solicitud HTTP se transfieren del servidor Web al servidor de aplicaciones. La aplicación puede utilizar los datos como referencia para obtener otros datos o para realizar cálculos, finalmente se genera en forma dinámica la página HTML que es retornada al navegador Web dentro de la respuesta HTTP.

    Un contenedor JSP es un servidor Web al que también se le conoce como intérprete de páginas JSP y etiquetas JSTL.

    Actualmente existen una gran cantidad de Servidores de Aplicaciones de los cuales se puede mencionar: Apache Tomcat [Apache,2002], Allaire Jrun [JRun,2002]. ServletExec de New Atlanta [Atlanta,2002]. etc.

    2.6 Lenguaje de Marcado Extensible.

    El lenguaje de Marcado Extensible (XML) comenzó a desarrollarse en septiembre de 1996 patrocinado por el W3C (World Wide Web Consortium) con el propósito de diseñar un lenguaje de marcas optimizado para poder ser utilizado en Internet; El W3C es el organismo encargado de mantener las especificaciones y estándares relacionados con la Web: lenguajes HTML y XHTML, protocolo HTTP, etc.

    XML combina la simplicidad de HTML con la capacidad expresiva de SGML (Lenguaje Estándar y Generalizado de Marcado), que parte del concepto de tipo de documento que puede interpretarse como una abstracción de documentos que comparten un objetivo, propiedades y necesidades de tratamiento comunes [Eito,2001 pp. 18-24].

    El SGML es el estándar Internacional para la definición de la estructura y el contenido de diferentes tipos de documentos electrónicos; es decir; es un metalenguaje que permite definir lenguajes para definir la estructura y el contenido de los documentos. XML no es ningún tipo de

    10

  • Marco Teórico Capítulo 2

    documento SGML, sino que es una versión abreviada de SGML, optimizada para su utilización en Internet.

    XML es un estándar industrial para representar datos, y es independiente del sistema [Goldfarb,l999], por otro lado, el Lenguaje de Marcado de Hipertexto (HTML) permite definir como se van a presentar los datos en la web de una manera estática. A diferencia del HTML, las etiquetas de XML tienen relación con el significado del texto que encierran, mientras que las etiquetas HTML sólo especifican como mostrar el texto

    Además las etiquetas XML son extensibles, esto es que permiten escribir etiquetas XML propias para describir contenido propio. Con HTML, el diseñador de páginas está limitado a utilizar aquellas etiquetas que han sido definidas en la especificación HTML.

    La popularidad de XML se debe a que un documento XML no incluye instrucciones de formateo, por lo que éste puede visualizarse de vanas formas. Mantener los datos separados de las instrucciones de formateo significa que los mismos datos pueden publicarse en diferentes medios.

    Entre otras características que contribuyen a la popularidad de XML se puede mencionar

    XML está escrito en formato de texto, que puede ser leido tanto por los usuarios como por que :

    cualquier software de edición de texto.

    2.6.1 Objetivos del XML.

    La edición de documentos XML persigue los siguientes objetivos:

    o Diferenciar el contenido Informativo y la estructura de los documentos, de su presentación.

    o Hacer explícita la estructura y los contenidos informativos de los documentos mediante la utilización de marcas.

    o Crear documentos portables, que puedan intercambiarse y procesarse con facilidad en sistemas informativos heterogéneos.

    2.6.2 Características de un documento XML.

    Un documento XML correctamente escrito requiere características importantes: primero que el documento este bien formado y segundo que sea válido [Marino,2000].

    Un documento XML bien formado (well formed) es aquél que se ha establecido de acuerdo con el estándar XML 1.0. Un documento XML está bien formado sí:

    o Consta de al menos un elemento - 1 - Todos los elementos están comprendidos dentro del elemento documento o raiz Sus elementos están anidados correctamente Todas las entidades que se utilizan han sido declaradas en el subconjunto interno

    de la DTD Ó esquema (descritos en la sección 2.7.1 y 2.7.2).

    11

    - 0 3 - 0 7 5 3

  • Marco Teórico Capítulo 2

    o Un documento XML válido es aquél que además de cumplir con la definición del estándar, está lógicamente bien estructurado y define en su totalidad cada uno de sus contenidos sin ambigüedad alguna; es decir, si cumple las restricciones indicadas en su DTD Ó esquema. Estas restricciones indican que elementos pueden aparecer en el documento, en qué orden deben hacerlo, cómo pueden anidarse, que atributos están permitidos para cada elemento, etc. Para que un documento XML sea válido, es necesario disponer de su DTD Ó esquema para poder hacer las comprobaciones necesarias.

    2.6.3 Ventajas de utilizar XML en las aplicaciones Web.

    Las ventajas que ofrece XML al ser utilizado en aplicaciones Web se listan a continuación:

    o Sencillez. La sencillez tiene que ver con la habilidad de XML para representar estructuras de datos en forma de árbol con todas las ventajas que trae consigo.

    o Variedad de estructuras de datos. XML permite expresar estructuras de datos complejas que satisfacen las exigencias de casi todas las aplicaciones.

    o Capacidad de tratamiento de caracteres internacionales. Permite gestionar conjuntos de caracteres internacionales. La recomendación 1 .O de XML está definida de acuerdo con el conjunto de caracteres ISO-10646 (Unicode), por lo que todos los caracteres que se utilizan en el mundo son caracteres oficiales.

    2.7 Tecnologías XML asociadas.

    XML es un conjunto de estándares, todos relacionados y complementarios, a continuación se listan algunos de ellos:

    o Definición de Tipo de Documento (DTD) y Esquemas de XML (XML Schema) o Hojas de Estilo: Hojas de Estilo en Cascada (CSS) y Lenguaje Extensible de Hojas de

    Estilo (XSL) o Espacio de Nombres

    2.7.1 Definición de Tipo de Documento.

    Las etiquetas del XML se pueden definir utilizando un esquema de lenguaje XML, el cual describe la estructura de un conjunto de documentos XML y puede utilizarse para limitar los contenidos de los documentos XML. El lenguaje de esquemas más común es el DTD (Definición de Tipo de Documento), que es lo que le da al XML su portabilidad. Si una aplicación recibe un documento en formato XML y tiene un DTD, se puede procesar el documento de acuerdo a las reglas especificadas en el DTD [Violleau,2002].

    12

  • Capítulo 2 Marco Teórico

    2.7.2 Esquema XML.

    El W3C hizo pública su recomendación para esquemas XML, el 31 de marzo del 2001. A estos esquemas se le conoce como esquemas W ~ C ó esquemas XSD. LOS cuales vienen a sustituir a los DTDs. Una de las caracteristicas más importantes de los esquemas XML, que constituye una importante diferencia frente a las DTDs, es la posibilidad de definir con mayor precisión nuevos tipos de datos de atributos y de elementos [Eito, 2001, p. 271; además permite definir nuevas restricciones y caracteristicas.

    2.7.3 Espacio de Nombres XML.

    Los espacios de nombres XML (Namespaces) proporcionan un método simple para calificar nombres de elementos y atributos usados en el Lenguaje Extensible para el Formato de Documentos (Extensible Markup Language) asociándolos con espacios de nombres identificados por referencias URI (Uniform Resource Identificator).

    El objetivo primario de la especificación espacio de nombres consiste en que el autor de un documento pueda decirle al analizador que DTD o esquema utilizar para analizar un elemento dado. Para una definición de elemento el analizador consulta el DTD o el esquema apropiado.

    2.7.4 Hojas de estilo.

    Para visualizar el contenido de los documentos XML a través de la Web es necesario aplicarle formato de diseño a esta información, para ello se hace uso de las hojas de estilo, las cuales permiten ariadir presentación al documento XML para su visualización en el navegador y que éste sea comprensible a los usuarios.

    Actualmente existen 2 enfoques distintos sobre cómo dar estilo a los documentos XML:

    o Hojas de estilo en cascada (CSS). o Lenguaje Extensible de Hojas de Estilo (XSL).

    2.7.4.1 Hojas de estilo en Cascada.

    CSS (por sus siglas en inglés, ) es un lenguaje de hojas de estilos que está diseñado para proporcionar una forma de dotar de estilo a los documentos HTML, permitiendo a los desarrolladores Web separar el contenido de la presentación. Aunque las CSS fueron diseñadas para ser utilizadas con HTML, también son muy Útiles para dar estilo a los documentos XML [Morrison, 2002, pp. 130-1 381.

    Las CSS existen como estándar Web desde diciembre de 1996, y se basan en el soporte que les da el navegador.

  • Marco Teórico Capítulo 2

    2.7.4.2 Lenguaje Extensible de Hojas de Estilo.

    XSL (por sus siglas en ingles, ) es una especificación desarrollada dentro del W3C para aplicar formato a los documentos XML, es decir, la hoja de estilo XSL específica como se mostrarán los datos XML [Elliote,l999]. El XSL incluye tanto un lenguaje de transformación (XSLT) como un lenguaje de forrnateo (XSL:FO) (ver Figura 2.2) [Violleau,2001].

    XSLT originalmente formó parte del lenguaje Extensible de hojas de estilo. De hecho, XSLT es técnicamente parte del XSL. El uso del XSL va mas allá del sólo hecho de convertir documentos a archivos de formateo, ya que puede convertir un documento XML a cualquier otro formato, a este lenguaje de transformación se le conoce como XSLT; el grupo de trabajo del W3C obtuvo por separado una especificación propia del XSLT, aunque la especificación XSL muestra que toda la especificación fue considerada para ser parte del XSL [DuCharme,2002].

    o Lenguaje de Transformación (XSLT): Es aquel que provee elementos que definen reglas para transformar un documento XML a otro documento XML, HTML, PDF u otro formato.

    o El Lenguaje de formateo (XSL:FO) : Es un vocabulario XML que describe como formatear el contenido de un documento, Este vocabulario es una colección de elementos especializados llamados objetos de formateo, la cual especifica la página de salida y otros detalles de presentación relacionados

    Figura 2.2. Evolución de la especificación XSL

    2.7.4.2.1 Funciones de los componentes de XSL.

    o XSL es la especificación que desarrolla el lenguaje de formateo, y hace uso de la especificación XSLT.

    o Transformación XSL (XSLT), definido por el grupo de trabajo XSL de la W3C, describe un lenguaje para transformar documentos XML en otros documentos XML o en otros formatos. Hace uso de la especificación Xpath y ha sido disetiada para ser utilizada de forma independiente aunque es utilizada desde la especificación XSL.

    14

  • Marco Teórico Capitulo 2

    XSLT es un lenguaje para describir cómo transformar un documento XML (explícita o implícitamente representado como un árbol) en otro; XSLT es un árbol para transformaciones de árboles, desde un árbol fuente a un árbol resultante. Permite definir plantillas (reglas) que serán aplicadas sobre los elementos del documento fuente, e insertar elementos en el árbol resultante. El documento resultante puede ser otro documento XML bien formateado ya sea un documento XML, un documento WML (por SUS siglas en ingles. Wireless Markup Language), un documento HTML, un documento de texto, o cualquier otro formato para el que esté disponible el método de salida apropiado. XSLT usa expresiones XPath para consultar elementos desde el árbol fuente o para evaluar fragmentos del documento a ser insertados dentro del árbol resultante.

    Un procesador XSLT lee un documento fuente XML y una hoja de estilo XSL, la hoja de estilo es a su vez un documento XML bien formado. Dependiendo de la implementación, un motor XSLT podría leer una fuente de entrada como eventos SAX (por sus siglas en inglés, Simple API for XML) Ó árboles DOM (por sus siglas en inglés, Document Object Model) y también generar eventos SAX o árboles DOM (ver Figura 2.3).

    o XPATH es la especificación que desarrolla el lenguaje para acceder a los elementos de un documento XML. Ha sido desarrollada para ser utilizada desde la especificación XSLT y Xpointer.

    XPath es un lenguaje de expresión. XSLT utiliza Xpath como base para recorrer un documento XML y llegar a un nodo determinado. Este recorrido se consigue utilizando expresiones. La especificación XPath, que se encuentra en http://w.w3.or~¡TR/x~ath, describe cómo usar la sintaxis Xpath para construir expresiones. Existen algunos motores XSLT (como Xalan de Apache) que permiten invocar su propia implementación de Xpath de manera independiente a través de un API específico.

    I

    Figura 2.3. XSLT permite transformar un documento XML en otro documento XML o en otros formatos tales como HTML.

    15

  • Marco Teórico Capitulo 2

    2.7.4.2.2 Funcionamiento del XSL.

    Antes de que un procesador XSL pueda procesar un documento, es necesaria, la representación del árbol XML del documento y la hoja de estilo XSL. La representación del árbol XML de un documento se obtiene analizando sintácticamente el documento, lo que significa que el procesador XSL debe equiparar con un analizador XML para que funcione.

    El procesador XSL comienza con el nodo raíz del árbol, utilizándolo para llevar a cabo el cotejo de los patrones en la hoja de estilos. Una hoja de estilos XSL está formada por plantillas que utilizan patrones para determinar que partes de un documento XML tienen que ser formateadas. El procesador XSL analiza estas plantillas y los patrones asociados para procesar las distintas partes del árbol. Cuando hay una coincidencia, la parte del árbol que coincide con el patrón determinado se pasa a la plantilla de la hoja de estilos para su procesamiento. El procesador XSL sigue las reglas de la plantilla para generar un árbol de resultados. Toma un árbol como entrada y genera otro árbol como salida [Morrison, 2002, pp. 156-1621.

    A diferencia de los ficheros de definición de datos, que pueden estar embebidos en el propio archivo XML; los ficheros de presentación están diseñados como ficheros independientes. Lo que hace posible diseñar un modelo de presentaciones para distintos tipos de datos, creando una especie de estilo, aplicable a distintos ficheros XML [Marino,2000].

    2.7.4.3 XSL versus CSS.

    a Las CSS se pueden usar para dar estilo a los documentos HTML mientras que con los XSL esto no es posible.

    a XSL se puede usar para transformar documentos XML, mientras que con las CSS esto no es posible.

    2.8 API para el procesamiento de XML.

    Existen ciertas APIs de Java para manipular documentos XML, que facilitan el desarrollo de aplicaciones Web, es decir, hacen fácil el proceso de datos XML con aplicaciones escritas en Java. Una característica de estas APIs es la flexibilidad de uso que ofrecen al desarrollador de aplicaciones, debido a que XML hace posible la portabilidad de los datos y la plataforma Java permite la portabilidad de código [Violleau,2002].

    Las APls Java Se dividen en 2 categorías, aquellas que tratan directamente con documentos XML y aquellas que tratan con procedimientos:

    o Orientadas a Documento:

    1 API Java para Procesar XML (JAXP). Procesa documentos XML usando varios

    1 Arquitectura Java para Uniones XML (JAXB). Mapea elementos XML a clases del analizadores

    lenguaje Java.

    16

  • Marco Teórico Capítulo 2

    o Orientadas a Procedimiento:

    1 API Java para Mensajería XML (JAXM). Envía mensajes SOAP a través de Internet de una forma estándar.

    1 API Java para Registros XML (JAXR). Proporciona una forma estándar para acceder a registros de negocios que comparte información.

    = API Java para RPC (Llamada a Procedimientos Remotos) basado en XML(JAX- RPC). Envia llamadas a métodos SOAP a partes remotas a traves de Internet y recibe resultados.

    2.8.1 Características de las APIs Java:

    o Soportan los estándares de la industria, asi se aseguran de la interoperabilidad

    o Permiten una gran flexibilidad. Los usuarios tienen flexibilidad en el modo de utilizar los APls. Por ejemplo, en el API JAXP se pueden utilizar varias tecnologias tales como el SAX (API Simple para XML), DOM (Modelo Objeto Documento) y el JDOM para procesar un documento XML.

    2.8.2 Tecnologías del JAXP.

    JAXP contiene 2 APIS: SAX y DOM, que incluyen dentro de ellas una aplicación que lee y analiza expresiones, que agrupa sus tokens en estructuras sintácticas, esta aplicación llamada analizador Ó parser es la parte más importante y necesaria para interpretar un lenguaje [Schildt,l989, p.1 I ] .

    El analizador del API SAX permite analizar datos como flujos de eventos y el analizador del API DOM permite construir una representación de objetos con los datos. La versión 1.1 de JAXP también soporta el estándar XSLT, permitiendo el control sobre la representación de los datos y permitiendo convertir los datos contenidos en documentos XML a otros formatos como HTML [Violleau,2002].

    El primer paso para cualquier sistema que planea hacer uso de documentos XML es leer documentos XML en memoria. La naturaleza estructurada de XML impone algunos requerimientos en los analizadores. Además, el comportamiento del analizador necesita ser consistente para que los documentos XML puedan ser intercambiadoc de manera confiable entre diferentes sistemas

    Actualmente existen 2 tipos de analizadores XML: analizadores con validación y analizadores sin validación. Los analizadores sin validación leen documentos XML y verifican que estén bien formados, mientras que los analizadores con validación leen documentos bien formados y verifican que concuerden con su DTD, esquema XML u otro conjunto de validación [Schmelzer, 2002, p. 631.

    17

  • Capitulo 2 Marco Teórico

    2.8.2.1 API Simple para XML.

    Un analizador basado en eventos como SAX provee una vista de documentos XML. Cuando un usuario lee un documento XML utilizando SAX, los elementos que son encontrados por el analizador son leidos, son procesados, y después son eliminados. El SAX lee los elementos desde el documento y los regresa a la aplicación con una lista de atributos y contenido. Tomando este enfoque, un usuario obtiene un medio más eficiente de procesar documentos XML, debido a que el tiempo de búsqueda es optimizado, requiriendo menos código y memoria, la razón principal de ésto, es que no se requiere representar en memoria el árbol de un documento XML. Un API basada en eventos reporta un análisis de los eventos tales como el inicio y fin del documento XML, los cuales son procesados por aplicaciones manejadoras de eventos a través de un mecanismo "callback, este mecanismo es ampliamente utilizado en muchos sistemas "procesa y elimina", y es especialmente apropiado para sistemas de transacción y de mensajes basados en XML, donde el uso de una estructura de árbol del documento XML no es necesaria [Schmelzer, 2002, p.64-651.

    2.8.2.2 Modelo de Objeto de Documento.

    Un Analizador XML es esencial para trabajar con documentos XML, pero las aplicaciones que en realidad planean utilizar y manipular contenido XML, requieren un modelo más robusto para una interacción programática con documentos XML. Para este efecto, el DOM fue creado como un medio para permitir a los desarrolladores, referirse, recuperar y cambiar el contenido y estructura del documento XML.

    Un DOM es un API que permite manipular documentos XML en una estructura de árbol en memoria, y ofrece 2 niveles de irnplementación de interfaz: El DOM core que es completo como el DOM del W3C, el cual soporta la integración básica de un documento XML. El DOM HTML que extiende el modelo a documentos HTML es incompleto ya que permite sólo un acceso parcial al documento.

    El modelo también puede seguir uno de 3 patrones comunes:

    o Modelos lineales: Es el modelo más sencillo, detallando el documento de un modo lineal. Este modelo tiene la desventaja de que toda alteración en la primera parte del documento invalidaria cualquiera de las referencias de la Última parte del documento.

    o Modelos de árbol: Describen los documentos con los términos de un árbol. El modelo de árbol tiene una raiz del documento, así como elementos dentro del árbol a los cuales se les conoce como nodos, y elementos finales llamados hojas. La desventaja que presenta este modelo es que al eliminar un nodo que tiene hijos, las relaciones numéricas que haya entre los nodos cambiarán y todas las listas de nodos deberán reconstruirse.

    o Modelos de objeto. Son los menos sensibles a los cambios. Con un modelo de objeto, cada sección de un documento tendrá una propiedad con nombre.

  • Marco Teórico Capítulo 2

    El API DOM definido por la W3C, es un conjunto de interfaces para construir objetos, y representar un documento XML analizado en forma de árbol. Una vez que se ha construido el DOM, es posible manipularlo con métodos DOM como insert y remove, de la misma forma como se manipularía cualquier otra estructura de datos en forma de árbol. A diferencia del analizador SAX, un analizador DOM permite acceso a datos particulares de un documento XML. Además con un analizador SAX, sólo es posible leer un documento XML, mientras que con un analizador DOM, es posible construir una representación objeto del documento y manipularlo en memoria, añadiendo un nuevo elemento o eliminando uno existente.

    La desventaja de utilizar esta API es que requiere la lectura de toda la estructura XML y mantener el árbol de objetos en memoria, lo que significa un mayor consumo de CPU y de memoria.

    2.8.2.3 Características SAX y DOM.

    La Tabla 2.1 muestra tanto las características del API DOM como las del API SAX

    Tabla 2.1 Características SAX y DOM

  • Capítulo 3 En este capitulo se analizan las tecnologías utilizadas para el desarrollo de esta tesis, así como otras herramientas similares.

  • Capítulo 3 Estado del Arte

    3.1 Introducción.

    La evolución natural de la tecnología permitió que el modelo Web fuera más potente al hacer posible que el servidor Web retornara páginas cuyo contenido se genera de forma dinámica con datos obtenidos de diferentes fuentes de información, tales como una base de datos o una aplicación heredada, para ello, se hace uso de ciertas tecnologías tales como CGI, Servlets, JSP, PHP, etc., en el lado del servidor.

    En [Leverman,2001] se hace un estudio acerca de las tecnologías existentes para desarrollar aplicaciones que generen páginas web de manera dinámica. [López,2002] también se enfoca en las tecnologías y protocolos involucrados en el desarrollo de aplicaciones Web, tales como Arquitectura Cliente/Servidor, el HTTP, HTML, así como los paradigmas que existen para el desarrollo de aplicaciones Web: CGI, entre otras tecnologías; fundamentalmente en tecnologías de software libre.

    El W3C propuso la tecnología XML, la cual se desarrolló con el propósito de que fuera un lenguaje para ser utilizado en Internet. Esta tecnología permite que los datos estén organizados de una manera estructurada. Se han desarrollado trabajos de investigación en los cuales se exploran las capacidades de esta tecnología. [Reyes,2001] desarrolló, un sistema de consulta de información contenido en documentos estructurados mediante el uso de lenguajes de definición de documentos y operaciones de consulta en el cual se consideró tanto la estructura como el contenido de los documentos, facilitando la interacción con el usuario mediante una interfaz gráfica .

    A continuación se presentan algunas herramientas comerciales para el desarrollo de aplicaciones Web, así como sus características más sobresalientes. Además se presentan proyectos de investigación relacionados con esta tesis y que fueron desarrollados por universidades y/o centros de investigación.

    3.2 Trabajos de Investigación.

    Los trabajos de investigación relacionados con el trabajo de tesis propuesto son los siguientes:

    3.2.1 Formateador de Informes Web para un Sistema Manejador de Bases de Datos Distribuidas.

    En este trabajo de tesis [Uribe,2001] se desarrolló una herramienta visual que facilita al administrador del sistema el desarrollo de informes Web.

    La herramienta tiene las siguientes características:

    o El diseiio de un informe puede almacenarse y recuperarse para posibles modificaciones futuras.

    o El usuario accede a la información de BDs por medio de enlaces Ó vinculos a través de visualizadores.

    21

    CENTRO DE INFORMACION DG'Tl SEP CENIDET I

  • Capítulo 3 Estado del Arte

    o Genera código en Java, el cual está documentado, dando la posibilidad de modificarlo para agregar características al informe web no incluidas en la herramienta visual.

    Las diferencias del sistema Formateador de Informes Web con respecto al trabajo de tesis

    1) Se libera al administrador del diseño de cada página, las cuales contendrán el resultado de las consultas realizadas, ya que todas las páginas tendrán un diseño uniforme, dando la flexibilidad al administrador de modificar el formato de diseño de las páginas a través del archivo XSL.

    presentado en este documento son las siguientes:

    2) El administrador no tiene que introducir ningún tipo de consulta ya que, la herramienta las generará automáticamente en base a tablas y/o vistas definidas en la base de datos.

    3) El administrador puede definir consultas personalizadas.

    3.2.2 Módulo XML para acceder al sistema Administrador de Bases de 'Datos SQLmx a través de Internet.

    En este trabajo de tesis [Trejo,2002] se desarrolló una herramienta que permite a los usuarios realizar consultas, así como operaciones de actualización a la base de datos (insertar, eliminar y/o actualizar registros), para ello, la herramienta genera un documento XML con la consulta Ó en su defecto con los datos y/o registros que se deban insertar, eliminar ó actualizar. Esta herramienta fue desarrollada para acceder al SMBD experimental SQLmx, el cual fue desarrollado en el Centro de Investigación en Computación del Instituto Politécnico Nacional (CIC-IPN). SQLmx, se basa en el modelo relaciona1 y hace uso del SQL, para la administración de la información.

    El sistema presentado en este documento con respecto al trabajo de tesis analizado en este punto difiere en lo siguiente:

    1) No se enfoca a un SMBD en particular, es posible acceder a cualquier SMBD que soporte el controlador JDBC.

    2) Se definen 2 hojas de estilos para proporcionar diseño a los lnfomes Web, liberando al desarrollador de aplicaciones de está tarea.

    3) La herramienta desarrollada genera los reportes en forma automática

    Las desventajas que presenta no permite inserción, actualización o borrado de información.

    3.3 Herramientas Comerciales.

    Actualmente existe una gran variedad de productos comerciales que generan reportes Web de manera dinámica, a continuacion se mencionan las principales características de algunas de las herramientas que utilizan tecnologías parecidas a las que se utilizaron en este trabajo de tesis.

    22

  • Capítulo 3 Estado del Arte

    3.3.1. Crystal Report versión 8.5.

    Esta herramienta [Abits,2002] tiene las siguientes características:

    o Se ejecuta en la plataforma Windows 95,98,2000, Windows NT en adelante. o Diseño de informes de forma visual. o Soporta gráficos con extensiones bmp, tiff, jpeg, png. o Incluye herramientas de análisis: graficación, mapeo, resaltamiento de campos. o Capacidad de creación de Informes en tiempo de ejecución. o Compatible con bases de datos Informix, Microsof Access, Oracle, Paradox, Sybase

    SQL Server, Microsoft Visual Fox Pro.

    El problema que presenta esta herramienta es que el código que genera asociado al informe web no está accesible para su modificación. El código se necesita en los siguientes casos: Para modificar el diseño de las páginas a las necesidades del desarrollador de aplicaciones, dichas páginas contendrán el resultado de los informes.

    La principal diferencia con este trabajo de tesis es que esta herramienta está orientada a los desarrolladores de aplicaciones Web, los cuales tienen la posibilidad de modificar el diseño de las páginas donde se desplegarán los resultados de las consultas ylo vistas.

    3.3.2 Oracle Reports version 9i.

    Desarrollado por Oracle Corporation [Oracle,2003]. Sus características se mencionan a continuación:

    o Se ejecuta en plataforma Windows NT, 2000, XP, Solaris, Linux, HP, UX. o Los reportes que se generen pueden ser visualizados en plataformas Windows NT,

    2000, XP, Solaris, Linux. HPNX. HP Tru64 e IBM-AIX. o Diseño de Informes de manera visual. o Los formatos de salida que tiene disponibles para los reportes a generar son: XML,

    PDF, Postcript, PCL y RTF. o Permite desplegar los informes en el navegador (HTML), en el Portal de Oracle9iAS o

    almacenarlos en el sistema de archivos. o Soporta un número ilimitado de consultas. o Soporta diferentes tipos de ligas de consultas o Hace uso de la tecnología JSP (etiquetas JSP). o No es posible acceder al código fuente

    3.3.3 Impromptu Web Reports.

    Desarrollado por Cognos Impromptu [Cognos,2003]. Sus características se listan a ContinuaCiÓn:

    o Se ejecuta en plataformas Windows NT y Linux. o Diseño de informes de manera visual. o Soporta un número ilimitado de consultas. o Exporta los reportes a formato PDF, manteniendo la integridad del diseño del reporte.

    23

  • Capítulo 3 Estado del Arte

    o Los reportes pueden ser exportados a formatos Excel y CSV. o Compatible con los RBDMSs: Oracle, IBM DB2, Microsorft SQL Server, Sybase SQL

    Server y Adaptive Server, Sybase NetGateway, dBase, Centura SQLBase, NCR Teradata, Sybase, Informix, Borland InterBase, Openlngres, MDI IDB2 Gateway.

    o No es posible acceder al código fuente

    3.3.4 Generador de reportes PDF de FyTek.

    Este producto [Fytek,2003] utiliza las tecnologías XML (etiquetas XML) y HTML para generar reportes, los cuales se generan en formato PDF. Este generador proporciona una interfaz visual en la cual le proporciona al usuario la flexibilidad de dar formato a la información contenida en los reportes (manejo de imagenes, centrar, justificar texto)

    Dentro de sus principales características se encuentran:

    o Crea reportes en formato PDF o Convierte la información contenida en el documento PDF a formato de Microsoft Excel

    o Microsoft Word o El diseño de informes se hace de manera visual

    La desventaja que presenta la herramienta es que no es posible acceder al código fuente

    3.3.5 EspressReport version 3.0.

    Desarrollada por QuadBase [QuadBase,2003]. Entre sus principales características se encuentran:

    o La herramienta se puede ejecutar en cualquier plataforma que tenga instalada la máquina virtual de java.

    o Recuper datos provenientes desde una base de datos relacional, documentos XML, archivos de texto o archivos de java .class.

    o Hace uso de la tecnología JDBC y ODBC para acceder a datos provenientes de bases de datos relacionales.

    o Diseno de Informes de manera visual. o Permite generar reportes en formatos como: HTML, DHTML, PDF y documentos Excel.

    Da flexibilidad para que los reportes generados puedan ser incorporados a servlets y JSPs. o Soporta la mayoría de servidores de aplicaciones entre los que se encuentran: WebLogic,

    Websphere, Webobject, ¡Planet, Dynamo y SylverStream. o Proporciona una interfaz visual para generar reportes.

    3.4 Librerías de soporte para generar Reportes (freeware).

    Existen herramientas gratuitas que generan informes Web, las cuales le dan flexibilidad al desarrollador de aplicaciones de acceder al código fuente para adaptarlo a sus necesidades, a continuación se da una descripción general de algunas de estas herramientas.

    24

  • Capítulo 3 Estado del Arte

    3.4.1 Generador de Reportes Generico.

    Un generador de reportes en java manejado con menues.

    Las características principales de esta herramienta [Ridenou,ZOOS] son:

    o Genera reportes en modo texto o Trabaja con cualquier SMBD que soporte el controlador JDBC o Desarrollado en el lenguaje Java 1.2 o Es posible acceder al código fuente o El usuario es el encargado de convertir el reporte generado a formato HTML para

    poder ser visualizado en cualquier explorador.

    3.4.2 Faceless versión 1 . I .8.

    Es un componente desarrollado en Java [Faceless,2003], liberado el 15 de Julio del 2003, que permite generar informes Web en formato PDF. Entre sus características principales se encuentran:

    o La herramienta se puede ejecutar en cualquier plataforma que tenga instalada la máquina virtual de java versión 1.2 Ó posterior

    o Utiliza las tecnologías JSP, ASP entre otras, para generar un documento XML y posteriormente generar los reportes en formato PDF

    o Hace uso de las hojas de estilos en cascada para proporcionarle diseño a los informes. o Es posible acceder al código fuente

    3.4.3 JFreeReport Version 8.5.

    Es una librería que permite generar reportes [JFree,2003]. Entre sus principales Características se encuentran:

    o Los reportes se generan en formato XML o Da la flexibilidad de utilizar otras librerías para convertir el reporte a otros formatos

    tales como PDF, HTML o Da la flexibilidad de dar formato al texto (tipo, tamaño, color de la fuente,)

    3.4.4 Maverick MVC Framework.

    Permite suministrar vistas utilizando JSP, el lenguaje script Velocity Ó el lenguaje XSLT directamente. Maverick [Maverick,2002] es una arquitectura de tipo MVC (por sus siglas en inglés, Model-View-Controller) para publicaciones Web utiliza Java y J2EE (por sus siglas en inglés, Java 2 Enterprise Edition), permitiendo generar presentaciones utilizando una gran variedad de tecnologías de plantilla; no genera código XML así como tampoco realiza algún tipo de análisis, lo que permite un mejor desempeño cuando se utiliza XSLT para generar las vistas.

    Sus características son:

  • Capítulo 3 Estado del Arte

    o Soporta transformaciones iterativas o o

    o

    Permite la configuración utilizando sitemap XML Soporte de framework para la internacionalización, la personalización del contenido basado en browser, y WML Es un conjunto de aplicaciones muestra que utiliza una variedad de lenguajes para plantillas.

    3.4.5 Freemarker.

    Es una plantilla HTML de código abierto para Java servlets [FreeMarker,2002]. AI almacenar plantillas HTML las cuales son compiladas a objetos de plantillas, estos generan HTML dinámicamente utilizando los datos dados por los servlets. Usa su propio lenguaje y exige velocidades aproximadas a las páginas HTML estáticas.

    Las herramientas mencionadas anteriormente utilizan la arquitectura MVC para la generación de plantillas de presentación utilizando tecnología XSLT y JSP; la arquitectura MVC permite separar el diseño de la presentación (cómo se van a mostrar los datos) de la lógica de la programación.

    La diferencia de estas herramientas con el trabajo de tesis propuesto es la extracción de los datos de la base de datos, además de generar la plantilla de presentación de los informes.

    26

  • Capitulo 3 tsraao aei Arte

    Visual

    3.5 Características principales de las herramientas analizadas.

    En la tabla 3.1, se muestran algunas de las características más importantes del sistema desarrollado (GAR), de las herramientas comerciales analizadas , y de los componentes de software libre.

    HP, UX Visual Visual

    Tabla 3.1 Tabla comparativa de las características de las herramientas analizadas en este capítulo

    Comercial

    HTML

    Base de Datos Relacional

    (JDBC, ODBC)

    ilimitado

    Platafoma

    Diseño del Informe

    Tipo de Software Formatos

    del reporte Datos Fuente

    Tecnología empleada

    Numero de consultas

    soportadas

    Comercial Comercial

    XML, PDF, RTF

    Base de Datos

    PDF, XLS, CSV

    Base de Datos

    (ODBC, JDBC) Relacional Relacional

    JSP

    ilimitado ilimitado

    Crystal Oracle Impromptu Reports 8.5 Reports 9i Web Reports

    Windows Windows NT, Windows NT, 95,98.200. NT 2000, XP, Linux + ó posterior Solaris, Linux,

    NA : No Aplica

    PDF de FyTek 3.0 Windows,

    Linux

    Visual

    Comercial

    PDF, XLS, DOC

    3ase de Datos Relacional

    XML, HTML

    ilimitado

    Java)

    Visual

    Comercial Libre

    HTML, DHTML, PDF, XSL

    Base de Datos 1 Base de Datos Relacional (JDBC, Relacional ODBC), archivos xml. archivos de

    texto XML. oermite 1 JSP. ASP. . . incorporar 10s XML, kerviets,

    informes a JSP. I css2

    JFreeReport 8.5

    AultiDlatafoma (que soporte

    Java)

    NA

    Libre

    PDF, HTML, XLS

    TableModel (Datos desde

    una tabla)

    JAXP1.l

    Trae los datos iredefinidos en

    un Table Model

    Sistema GAR

    Aultiplatafomz (que soporte

    Java)

    A través de iojas de estilo predefinidas

    Libre

    JSP, XLS

    3ase de Datos Relacional

    (JDBC)

    XML, JSP, XSL. JSTL

    .imitado por el hardware

  • Capítulo 4 Arauitectura v diseño del sistema En este capítulo se presenta una descripción de la operación del sistema y de la arquitectura del Sistema Generador Automático de Informes Web. Se presentan las fases en las cuales se divide la arquitectura, así como los principales procesos y flujos de información necesarios para su operación.

  • Capítulo 4 Arquitectura y diseno del sistema

    4.1 Descripción del Sistema Generador Automático de Informes Web.

    En este trabajo de tesis se presenta el sistema "Generador de informes Web con base ai esquema de base de datos utilizando tecnologías XML" cuyo objetivo es generar informes Web a partir del esquema de una base de datos. A partir de este capítulo se hará referencia a la herramienta con el nombre de GAR (Generador Automático de Reportes). El sistema GAR importa el esquema de la base de datos y lo convierte a una representación genérica utilizando XML, para que, posteriormente al utilizar la tecnología XSL se puedan generar informes Web dinámicos basados en la tecnología JSP.

    Además la herramienta GAR ofrece la posibilidad de generar consultas personalizadas, sólo que, en lugar de generar el documento XML con el esquema de la base de datos, se genera el documento XML con los datos de la consulta a realizar.

    La herramienta GAR desarrollada es capaz de trabajar con Sistemas Manejadores de Bases de Datos Relacionales (SMBDR), que soporten el controlador JDBC (por ejemplo postgresql, HyperSonic Database (hsqldb), etc.).

    4.2 Arquitectura del sistema.

    El sistema Gar contiene los siguientes módulos:

    o Módulo traductor del esquema de la base de datos a formato XML o Módulo generador de un documento XML a partir de una consulta o Módulo traductor del documento XML a JSP.

    En la Figura 4.1 se muestra la arquitectura del sistema Gar y en la Figura 4.2 se muestra el diagrama de clases utilizado para el desarrollo del prototipo. Los diagramas de clases expresan de manera general la estructura estática de un sistema, representando los enlaces de un objeto hacia otro objeto.

    Descripción de las clases.

    A continuación se describen de manera general la funcionalidad de las clases más importantes del sistema.

    FrmPrincipal. Este es el Frame principal del sistema, es el encargado de llamar a todos los cuadros de dialogo utilizados por el sistema.

    Configura. Esta clase es la encargada de manipular el archivo de configuración gar.xml, el cual es utilizado por el sistema para detectar y establecer la configuración actual del sistema.

    Conecta. Esta clase permite establecer conexión con la base de datos, recibe como parámetros los datos de conexión.

    Esquema. Esta clase es la encargada de generar el documento en fomato XML a partir del esquema de la base de datos.

    29

  • Capítulo 4 Arquitectura y diseño del sistema

    Figura 4.1. Arquitectura del sistema.

    Figura 4.2. Diagrama de clases del sistema

    30

  • Capítulo 4 Arquitectura y diseño del sistema

    DoctoXMLConsultas. Genera el documento en formato XML a partir de la@) consulta(s) introducida(s) por el usuario.

    Informes. Esta clase genera los informes Web en el directorio indicado, aplicando el diseño que recibe como parámetro.

    4.3 Componentes del sistema.

    A continuación se da una breve descripción de los componentes que intervienen en cada fase del sistema :

    Fase 1:

    Base de datos: Contiene la Información a consultar, se encuentra almacenada dentro de un software llamado Sistema Manejador de Bases de Datos.

    Extractor: Este módulo se encarga de convertir los metadatos de la base de datos a un documento en formato XML.

    Documento XML: Este documento se genera en esta fase, y contiene los metadatos de las tablas y/o vistas definidas en la base de datos, ó en su defecto contiene las consultas personalizadas a ejecutarse.

    Fase 2:

    Editor XML SPY: Editor de XML en el cual se editaron las hojas de estilos definidas por defecto por el sistema, así como la manipulación de tecnologías asociadas tales como DTD. XSD, XSL, etc.

    Plantilla XSL: Esta plantilla está definida por el sistema, con esta plantilla es posible aplicar diseño a los informes.

    Fase 3:

    Traductor XSL: Este módulo se encarga de generar el archivo JSP a partir del documento XML obtenido en la fase 2 así como la plantilla de la hoja de estilo previamente definida por el sistema.

    Archivo JSP (database.jsp): Este archivo contiene todos los archivos jsp que genera el sistema.

    Fase 4:

    Módulo divisor: Este módulo es el encargado de dividir el archivo JSP generado en varios archivos JSP conforme tantas tablas haya en la base de datos, o en su defecto tantas consultas personalizadas se encuentren en el documento XML generado por el sistema en la fase 2.

    Servidor de aplicaciones: Es el que se encarga de generar el contenido dinámico de los informes Web. En este trabajo de tesis se hizo uso del servidor de aplicaciones Apache Tomcat.

    31

  • Capítulo 4 Arquitectura y disetio del sistema

    Tecnología JDBC: Por medio de esta API de Java es posible acceder a la información contenida en la base de datos desde la aplicación del sistema, ya que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real.

    4.4 Operación del Sistema. A continuación se explican a detalle cada una de las fases que componen el sistema, así como cada uno de sus procesos, es decir, que es lo que reciben como entrada, como se manipula esa entrada y que es lo que arrojan como salida (flujo de la información).

    Las fases de operación del sistema GAR se listan a continuación:

    o Fase 1 : Traducción del esquema de la base de datos ylo consultas personalizadas al formato XML

    El documento XML, puede ser generado de 2 maneras distintas: a) A partir del Esquema de la base de datos b) A partir de Consultas personalizadas

    o Fase 2: Generación de la Hoja de Estilos

    o Fase 3: Traducción del Documento XML a un archivo JSP

    En la Figura 4.3, se presenta el diagrama del sistema GAR, en donde se genera el documento XML a partir de la extracción del esquema de la base de datos y en la Figura 4.4 se muestra el mismo diagrama del sistema GAR, pero ahora el documento XML es generado a partir de una consulta definida por el usuario.

    4.4.1 Fase 1: Traducción al formato XML del esquema de la base de datos y/o consultas personalizadas.

    a) Extracción del esquema de la base de datos.

    En esta fase, se lleva a cabo el proceso de extracción de los metadatos de una base de datos específica y su conversión a un documento en formato XML. para ello es necesario seguir los siguientes pasos:

    o Establecer conexión con la base de datos. o Extracción de los metadatos de la base de datos. o Convertir el esquema de la base