cenidet Fabio… · Capítulo 1 Introducción 1.1. Motivación 1.2. Objetivo de la tesis 1.3....

130
SEP SElT DGlT CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO cenidet HERRAMIENTA PARA CONSULTAS BASADAS EN EJEMPLOS (QBE) PARA UNA BASE DE DATOS EN INTERNET TESIS Que para obtener el grado de Maestro en Ciencias en Ciencias Computacionales presenta Fabiola Rasgado Celaya Directores de Tesis Dr. Rodolfo A. Pazos Rangel Dr. Joaquín Pérez Ortega Cuernavaca, Moreios. Diciembre de 1999

Transcript of cenidet Fabio… · Capítulo 1 Introducción 1.1. Motivación 1.2. Objetivo de la tesis 1.3....

  • SEP SElT DGlT

    CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO

    cenidet

    HERRAMIENTA PARA CONSULTAS BASADAS EN EJEMPLOS (QBE) PARA UNA

    BASE DE DATOS EN INTERNET

    T E S I S Que para obtener el grado de Maestro en Ciencias en

    Ciencias Computacionales

    p r e s e n t a

    Fabiola Rasgado Celaya

    Directores de Tesis

    Dr. Rodolfo A. Pazos Rangel Dr. Joaquín Pérez Ortega

    Cuernavaca, Moreios. Diciembre de 1999

  • Centro Nacional de Investigación y Desarrollo Tecnológico

    FORMA C3 REVISION DE TESIS

    Cuernavaca, Morelos a 2 de Diciembre de 1999

    M.C. Máximo López Sanchez 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: Herramienta para Consultas Basadas en Ejemplos (QBE) para una Base de Datos en Internet, realizada por la C. Fabiola Rasgado Celaya, y habiendo cumplido con todas 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

    I . .L.i L L&, I + , 6- . . \k t x . Dr. José Luis Liñán García M.C. Mario Guillén Rodriguez

    O Director de tesis

    pL& / r - Dr. Joaquífi Pérez Ortega -

    Co-Director de tesis

    C.C.P. Dr. Javier Ortiz HemandezlJefe del Departamento de Ciencias Computacionales IMERIOR IMERNADO PALMIRA SN, CUERMVACA. MOR, MEXICO APARTADO POSTAL 5-1 6P CP 62050. CUERMVACA. IELS.(73112 2314.12 7613.18 7741,FAX(73]12 2434

    EMNL orí[email protected] cenidet

  • Centro Nacional de Investigación y Desarrollo Tecnológico FORMA C4

    AUTORIZACION DE IMPRESIÓN DE TESIS

    Cuernavaca. Morelos. A 6 de Diciembre de 1999

    C. Fabiola Rasgado Celaya Candidato al grado de Maestro en Ciencias en Ciencias Computacionales Presente

    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: Herramienta para Consultas Basadas en Ejemplos (QBE) para una Base de Datos en Internet, me es grato comunicarle, que conforme a los lineamientos 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.

    Oriiz Hernández . Ciencias Computacionales

    IMERIOR IMERNADO PALMIRA SW, CUERWVACA. MOR. MEXICO APARTADO POSlAL 5-164 CP 62050. CUERNAVACA. lELS.[73]12 2314.12 7613.18 7741.FAX[73/12 2434

    EMAIL [email protected] ceniúet

  • A mi familia Por apoyarme en los momentos más decisivos de mi vida.

    A Victor Hugo: Esto no es como un poema de amor, pero sí una historia que

    perdurará toda una eternidad.

    'I

  • AGRADECIMIENTOS

    AI Dr. Rodolfo A. Pazos Range1 por brindarme sus conocimientos, experiencia, apoyo y tiempo para el mejor desarrollo de este trabajo.

    A mis revisores: Dr. José Luis Liñán García, M.C. Mario Guillén Rodríguez y M.C. José Antonio Zárate Marceleño, por su interés y valiosas observaciones en la revisión de esta tesis.

    AI Centro Nacional de Investigación y Desarrollo Tecnológico por darme la oportunidad de seguir adelante con mis estudios.

    Gracias al Consejo Nacional de Ciencia , y Tecnología Educativa por el apoyo económico que me otorgo para la realización de mis estudios.

    A cada uno de los profesores del Cenidet por sus conocimientos transmitidos, tiempo y orientación.

    A mis amigos y compañeros del Laboratorio de Sistemas Distribuidos por todos los bellos momentos y su apoyo en general: Alberto Mario, Alfonso, Javier, José Aurelio, Ismael, Rocío, Rogelio, y Santiago. II

    A mis amigos y compañeros de generación por su amistad, apoyo y aliento: Mirna Cruz Marín, Martha A. Rocha S., Noé Carrillo A., Norma E. Rodríguez S. , José Luna, Ismael Zúñiga F., y a todos aquellos que me acompañaron en este largo recorrido por Ceniúet.

  • .I

    TABLA DE CONTENIDO

    Capítulo 1 Introducción 1 . 1 . Motivación

    1.2. Objetivo de la tesis

    1.3. Descripción del problema

    1.4. Beneficios

    1.5. Estado del arte

    1.6. Plan de exposición

    Capítulo 2 Fundamentos de Bases de Datos en Internet 2.1. Introducción

    2.2. Arquitectura cliente/servidor en la Web

    2.2.1. Arquitectura Cliente-Servidor

    2.2.2. El Web: Una arquitectura distribuida

    2.2.3. Proceso cliente-servidor dentro de la Web

    2.2.3. I . Petición de dirección.üTU del explorador de Web

    2.2.3.2. Respuesta del servidor de Web

    2.2.3.2.1. Páginas estáticas.

    2.2.3.2.2. Páginas dinámicas.

    2.2.3.2.3. Lista de directorios.

    2.3. Mecanismos de acceso a bases de datos a través de la Web

    2.3.1. Métodos de acceso a bases de datos a traves de la Web.

    2.3.1.1, El mecanismo CGI

    2.3.1.2. El modelo API

    2.3.1.3. El mecanismo JDBC de Java

    I,

    Capítulo 3 Análisis del Problema 3. I . Planteamiento general del problema I

    8

    8

    8

    9

    9

    I O

    10

    I O

    1 1

    12

    12

    13

    14

    16

    17

    19

  • 3.2. Alcances y limitaciones

    3.3. Interfaz QBE

    3.3.1. El problema de la interfaz

    3.3.2. Solución conceptual propuesta.

    3.4. Diccionario de Datos.

    3.4.1. El problema de la interrogación del Diccionario de Datos

    3.4.2. Solución conceptual

    3.5. Proceso de comunicación entre el cliente y el servidor de bases de'datos

    3.5.1. El problema de la comunicación con el servidor de bases de datos

    3.5.2. Solución conceptual

    3.6. Transformaciones de formato fecha y unidad de medida

    3.6.1. El problema de las transformaciones de unidad de medida y formato fecha

    3.6.2. Solución conceptual

    3.7. Visualización de resultados

    3.7.1. El problema del formate0 de los resultados de la consulta

    3.7.2. Alternativas de solución

    19

    20

    20

    20

    21

    21

    22

    22

    22

    23

    24

    24

    24

    25

    25

    25

    Capítulo 4 Descripción de la Interfaz de la Herramienta QBE 4.1. Descripción del Cliente (Herramienta QBE)

    4.2.. Elementos de la herramienta

    4.2.1. Selección de BD y Columnas

    4.2.3. Ejecución de la consulta y presentación de resultados.

    21

    21

    27

    29

    35

    4.2.2. Formulación de la Consulta

    Capítulo 5 Diseño de la Herramienta QBE 5.1. Diseño General 37

    5.1.1. Proceso de Comunicación entre el Cliente y el Servidor de Bases de Datos 38

    5.2. Arquitectura del Cliente (Herramienta QBE) 38

    5.2.1. Jerarquía de Clases. 38

    5.2.1.1. Clase QBE. 41

  • 5.2.1.2. Clase PoneTablas.

    5.2 1.3. Clase AgregaTabla.

    5.2.1.4. Clase EliminaTabla.

    5.2.1.5. Clase VisuaiizaInfoColumnas.

    5.2.1.6. Clase VentanaDiseño.

    5.2.1.7. Clase DefineCriterio.

    5.2.1.8. Clase DefineOR.

    5.2.1.9. 'Clase MuestraMensajes.

    5.2.1, IO. Clase Definepropiedad.

    5.2.1.1 I . Clase GeneraCodigo.

    5.2.1.12. Clase ToolbarPanel.

    5.2.1.13. Clase InicializaConsulta.

    5.2.1.14. Clase ExtracciónDD.

    5.2.1.15. Clase ExtraeUC.

    5.2.1.16. Clase Comunica.

    5.2.1.16.1. Presentación de resultados de la ejecución de la consulta

    5.2.1.17. Clase Ayuda.

    5.2.1.18. Clase FinSesion.

    5.3. Servidor de Web

    5.4. Intermediario

    5.4. I . Extracción del Diccionario de Datos

    5.4.1. I . Instrucción SHOW-DATABASE

    5.4.2. Instrucción EXECUTE-QUERY

    5.4.3. Implementación de transformaciones

    5.4.3.1. Formate0 de fechas

    5.4.3.2. Conversión de unidad de medida

    5.4.3.2.1. Instrucción G E T F C

    5.4.4. Instrucción FIN-SESION

    5.5 . Servidor de base de datos distribuidas

    5.5.1. Extensión del Diccionario de Datos del Servidor de Bases de Datos

    5.5.1.1. Estructura original

    5.5.1.2 Campos agregados al diccionario de datos

    44

    45

    45

    45

    46

    47

    48

    49

    49

    50

    55

    56

    56

    57

    58

    59

    59

    59

    60

    60

    63

    63

    64

    65

    65

    69

    71

    73

    73

    73

    73

    75

    iii

  • 5.6. Diseño de la página Web de la herramienta

    Capítulo 6 Pruebas Experimentales 6.1, Objetivos de las pruebas

    6.2. Descripción del ambiente de pruebas

    6.2.1. Esquemas de las bases de datos de prueba

    6.3. Casos de prueba para la herramienta

    Capítulo 7 Comentarios Finales 7.1. Contribución del proyecto

    7.2. Resultados de las pruebas

    7.3. Limitaciones del trabajo

    7.4. Mejoras y ampliaciones a este trabajo

    7.5. Áreas de aplicación

    7.6. Comentarios finales

    Anexo A

    Referencias

    Bibliografía

    I7

    80

    80

    81

    87

    104

    104

    105

    105

    106

    106

    108

    114

    117

    /I

    iv

  • LISTA DE FIGURAS

    Figura Nombre Página

    1.1. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9. 3 . 1 . 3.2.

    3 . 3 . 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. 4.10. 4.11. 4.12. 4.13. 5 . 1 .

    5.2 .

    5 . 3 . 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. 5.10 5 .11 5.12 5 . 1 3

    QBE del sistema Employee Locator. Sistema cliente-servidor en la Web. Solicitud de una página estática. Ejemplo de envío de una consulta a una aplicacion ISAPI. Ejemplo de un envío de un pedido a una base de datos usando un conector. Ejemplo de una lista de directorio Llamada a un programa CGI desde un navegador de Web. Devolución de un mensaje de error. Devolución de resultados formateados de la consulta a la Base de Datos. Ejecución de una instrucción de JDBC. Procesamiento concurrente de consultas por el servidor. Proceso de una petición de la’ herramienta QBE al servidor de consultas SiMBaDD. Proceso del intermediario propuesto. Selección de la base de datos a consultar Ventana de la opción “Ver Descripción” Ventana de la opción “Ver Columnas” Ventana para editar consulta Inclusión de columnas Ventana para definir propiedades (Función SQL) Ventana para definir propiedades (Unidad de conversión) Ventana para definir propiedades (Formato de fecha) Ventana para construir condición Ventana para construir reunión Formulación de consulta Condición AND sencilla aplicada a la última columna Resultado de consulta Arquitectura cliente/servidor .de la comunicación empleada en la herramienta. Proceso de comunicación Cliente-Intermediario-Servidor de bases de datos Simbología de la representación de tipos de clases Jerarquía de clases de la interfaz gráfica de la herramienta QBE Métodos de la clase QBE Representación de vectores en la cuadrícula del diseño de la consulta Métodos de la clase PoneTablas. Métodos de la clase AgregaTabla. Métodos de la clase EliminaTabla. Métodos de la clase VisualizaInfoColumnas. Métodos de la clase VentanaDiseño. Métodos de la clase Definecriterio. Métodos de la clase DefineOR.

    5 IO 11 1 1 12 12 14 15 16 17 22 23

    24 28 28 29 29 30 31 32 32 33 34 34 3 5 35 37

    38

    39 40 41 43 44 45 45 46 47 47 48

    V

  • 5.14. 5.15. 5.16. 5.17. 5.18. 5.19 5.20. 5.21. 5.22. 5.23. 5.24. 5.25. 5.26. 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. 6.9. 6. IO. 6.11. 6.12. 6.13. 6.14. 6.15.

    6.16. 6.17. 6.18. 6.19. 6.20. 6.21. 6.22. 6.23. 6.24. 6.25. A.1. A.2. A.3. A.4. A.5. A.6.

    Métodos de la clase MuestraMensajes. Métodos de la clase DefinePropiedad. Clase GeneraCodigo. Clase ToolbarPanel. Clase InicializaConsulta. Métodos de la clase ExtraccionDD. Clase ExtraeUC. Clase Comunica. Métodos de la clase Ayuda. Clase FinSesion. Proceso de extracción del diccionario de datos. Proceso de comunicación de la orden EXECUTE-QUERY. Proceso de obtención del factor de conversión. Ambiente utilizado para la ejecución de consultas. Tablas S, P, y SP de la base de datos del servidor Cad12

    Tablas S y P de la base de datos del servidor Cadl3. Resultados del ejemplo 1. Resultados del ejemplo 2. Resultados del ejemplo 3. Resultados del ejemplo 4. Resultados del ejemplo 5. Resultados del ejemplo 6 Resultados del ejemplo 7. Resultados del ejemplo 8. Resultados del ejemplo 9. Resultados del ejemplo IO, con condiciones separadas. Resultados del ejemplo 10, con condiciones agrupadas en una misma columna. Resultados del ejemplo 11. Resultados del ejemplo 12. Resultados del ejemplo 13. Resultados del ejemplo 14. Resultados del ejemplo 15. Resultados del ejemplo 16: Resultados del ejemplo 17. Resultados del ejemplo 18. Resultados del ejemplo 19. Resultados del ejemplo 20. Elementos de aplicaciones distribuidas. Arquitectura de aplicaciones distribuidas. La Web como una aplicación distribuida. Presentación de un apliquete dentro de un visualizador de Web. Las etapas del ciclo vital de un apliquete. Funcionamiento de un apliquete Java.

    Tablas C y D de la base de datos del servidor Cad13 ii

    49 49 50 56 56 56 57 58 59 59 63 65 72 80 81 82 83 88 88 89 90 91 91 92 93 93 94 94

    95 96 97 97 98 99

    1 O0 101 102 102 108 109 110 110 111 112

    Vi

  • Tabla

    LISTA DE TABLAS

    Nombre Página

    2.1.

    5.1.

    5.2.

    5.3.

    5.4.

    5.5.

    6.1.

    6.2.

    6.3.

    6.4.

    Ejemplos de direcciones URL.

    Lista de objetos utilizados en la clase QBE.

    Vectores utilizados para almacenar el diseño de la consulta.

    Lista de ejemplares empleados en la clase GeneraCodigo.

    Proceso de conversión para el formate0 de fechas.

    Estructura de la tabla conversiones.BD1, en el servidor de base de datos

    Tabla A de la base de datos del servidor Cadl4. . Tabla I de la base de datos del servidor Cadl4.

    Tabla T de la base de datos en el servidor Cad14

    Tabla LI de la base de datos en el servidor Cad14

    10

    41

    42

    50

    66

    12

    84

    85

    86

    86

    vii

  • I:

    Capítulo 1 Introducción

    Este capítulo contiene el objetivo de esta tesis, la motivación para su desarrollo, la descripción del problema, los beneficios a obtener, el estado del arte de las bases de datos en la Web y en los sistemas de consultas basados en ejemplos.

    1

  • Capitulo 1 Introducción

    1.1. Motivación

    La información siempre ha tenido un gran impacto dentro de todas las organizaciones, y actualmente, “la WWW (World Wide Web) se está convirtiendo en el medio más popular de acceder a la información, debido a que la interfaz gráfica de los visualizadores del Internet y al protocolo de comunicación HTTP que son fáciles de utilizar” [] l .

    La actividad de la internet es importante desde una perspectiva de la administración de bases de datos, simplemente debido a la diversidad de información que hace disponible. La mayoria de las herramientas existentes de acceso en internet están basadas en visualizadores. Sin embargo hay una demanda para realizar consultas complejas sobre sitios de Internet, y esto es todo un reto a lograr. Uno de los problemas fundamentales es la heterogeneidad inherente de las fuentes de donnación y la carencia de un esquema para guiar el proceso de consulta [ 2 ] . En esta tesis se atacará el último aspecto mencionado.

    Esta tesis es parte integral del proyecto global llamado “Sistema Manejador de Bases de Datos Distribuidas para Internet”, cuyo objetivo general consiste en agregar funcionalidades adicionales al manejador SlMBaDD para que pueda ser accesado a través de la red Internet y que las tablas de una base de datos distribuida se puedan reubicar auto.máticamente para adaptarse a cambios en los patrones de explotación de la base de datos.

    1.2. Objetivo de la Tesis

    El objetivo general que se plantea en esta tesis es desarrollar una herramienta de consulta intuitiva de fácil utilización que posibilite a los usuarios casuales de la red Internet, acceder a los datos almacenados en una base de datos administrada por SiMBaDD.

    El propósito de construir un sistema de consultas QBE para el SiMBaDD, es facilitar la explotación de la base de datos desde cualquier punto geográfico en que se encuentre el usuario, sin que éste necesite estar familiarizado con el uso del lenguaje SQL y con los detalles de la estructura de la base de datos.

    1.3. Descripción del Problema

    Normalmente los sistemas.de información se han implementado para un grupo cerrado de usuarios, generalmente empleados de una empresa o institución. Los usuarios de los sistemas se pueden clasificar en dos tipos: expertos e inexpertos. Los primeros están familiarizados con el esquema de la base de datos y dominan las herramientas de desarrollo de sistemas de información; mientras que los segundos carecen de estos conocimientos. En los sistemas cerrados las necesidades de los usuarios inexpertos se satisfacen mediante programas de aplicación desarrollados por los usuarios expertos.

    Con el advenimiento de la red Internet ha surgido el problema de satisfacer las necesidades de usuarios casuales e inexpertos que desean acceder via Internet a la información de bases de datos que son desconocidas para ellos.

    Una de las metas de este proyecto ha sido desarrollar una herramienta de consulta intuitiva de fácil utilización para este tipo de usuarios. Para tal efecto se decidió incorporar a

    11

    2

    http://sistemas.de

  • Capítulo 1 I iitroducción

    la herramienta el estilo QBE (Query by Example), ya que consideramos que es el método más amigable para la formulación de consultas.

    Existen varios tipos de implementaciones del QBE. En la filosofia original del QBE, el usuario debe “formular” su consulta escribiendo un ejemplo de los datos que desea que aparezcan en los resultados [1, 21. Sin embargo, muchas impiementaciones recientes del QBE son simplemente herramientas gráficas que guían al usuario en la construcción de una expresión en el lenguaje de consultas SQL.

    En este proyecto se decidió adoptar la filosofia original del QBE. Además, como la herramienta está orientada a usuarios casuales (que no conocen la naturaleza de la información ni la estructura de la base de datos que deseen consultar), se debe proporcionar tanta información acerca de la base de datos como sea posible, de modo que éstos puedan entender el contenido y estructura de la base de datos hasta donde deseen.

    1.4. Beneficios

    Los principales beneficios de este proyecto de tesis son los siguientes:

    Facilitar la consulta de datos. Las consultas se hacen en QBE, expresadas mediante ejemplos. Por lo que en vez de dar un procedimiento para obtener la respuesta deseada, el usuario da un ejemplo de lo que desea.

    Proporcionar una herramienta que permita hacer consultas a una base de datos del manejador SiMBaDD, en Internet, desde cualquier punto geográfico y plataforma cliente.

    1.5. Estado del Arte

    En la actualidad, varias compañías se encuentran desarrollando herramientas y aplicaciones para bases de datos en la Web. Una de las grandes ventajas que ofrece la Web es que no existen restricciones en el uso del sistema operativo. En consecuencia, las compañías no requieren cambiar de plataforma debido a que los servidores operan en todas las plataformas disponibles y que la mayoría de las herramientas de desarrollo para bases de datos en la Web generan aplicaciones portables a otras plataformas. Además, no necesitan cambiar la estructura de datos de sus bases de datos existentes.

    En el artículo publicado en Internet ‘por Sarah Mae Feitler [3], se menciona que Oracle provee una herramienta para visualizar datos en bases de datos de una manera mas flexible, llamada Data Browser. Esta herramienta permite a los usuarios cargar las tablas de las bases de datos por nombre y visualizar los renglones en una hoja de cálculo, además proporciona funciones para visualizar datos mediante condiciones de especificación complicadas, y permite combinar renglones de tablas diferentes dentro de una vista. El uso de la herramienta requiere un estudio de la base de datos más detallada que las requeridas en los formatos de las consuitas. Para usar, el Data Browser el usuario debe saber la organización exacta de la base de datos, incluyendo las tablas y definiciones de sus registros, en contraste con la herramienta QBE desarrollada en este proyecto de tesis, en donde no se

  • Capítulo I Introduccion

    requiere que el usuario tenga un conocimiento previo de la estmctura de la base de datos

    La compañía SYSDECO [4] actualmente ofrece en el mercado herramientas Query by Example que permiten consultas más complejas del tipo QBE. El producto OSE Vision, uno de los productos que ofrecen en el mercado, es un ambiente completo para el desarrollo y mantenimiento de sistemas, combina las características de 4GL y el diseñador de formularios. El producto ofrece soporte a profesionales en el desarrollo de nuevos sistemas? apoyando también a los usuarios finales en las'herramientas de consulta y generación de informes. Las plataformas de trabajo en la cuales puede correr esta herramienta son Windows 3.1, 95, NT, y próximamente en el estándar gráfico Motif.

    La corporación Allaire [5] ofrece la herramienta Cold Fusion que se usa en servidores de Web de Windows 95 o Windows NT, proporciona acceso a cualquier base de datos vía la Web empleando ODBC (Object Data Base Connectivity). Cold Fusion utiliza SQL para recuperar y manipular los datos, realizando operaciones de inserción de tablas a una base de datos, inserción de registros a una tabla, y actualización de múltiples renglones en una tabla mediante acciones de consulta.

    En el mercado encontramos el producto PDB Biowser [6 ] que permite tener un rápido acceso a la información completa de la base de datos, mediante una búsqueda con restricciones. Estas restricciones pueden ser expresiones regulares o limitaciones numéricas. Una vez establecidas las restricciones y terminada la búsqueda, el usuario puede seleccionar diferentes maneras para visualizar los resultados de la búsqueda como un documento de hypertext0 o como una imagen manipulable utilizando un programa' de dominio público llamado RasMol.

    En la actualidad, encontramos muchas herramientas de consultas QBE tanto para el entorno Windows, por ejemplo Access de Microsoft, como para la plataforma Internet. Pero, encontramos varias características que difieren con la presente herramienta, por ejemplo, las herramientas QBE para la plataforma Internet requieren un conocimiento de la estructura de la base de datos, lo cual dificulta su explotación por usuaiios no familiarizados.

    PWA. Professional Web Authoring Inc., es una compañía desarrolladora de software [7], especializada en servicios de aplicaciones Internethtranet. Como parte de las aplicaciones que ha desarrollado esta compañía, el sistema Employee Locator es una aplicación QBE específica de un sistema de localización de empleados. En la Figura 1.1, se muestra el QBE del sistema Employee Locutor, en donde se nota que esta aplicación utiliza una base de datos específica sin una descripción de los campos de información, difiriendo con la herramienta QBE objeto de esta tesis, con la cual se pueden hacer consultas a cualquier base de datos administrada por SiMBaDD.

    '

    1

  • !I

    Capitulo I Introducción

    ~ ~

    Figura 1.1. QBE del Sistema Employee Locator

    En la Universidad de Toronto actualmente se encuentran realizhdo investigaciones en el área de sistemas de información basados en Internet. Ahí han construido herramientas para explorar y consultar grandes espacios de información global como la World Wide Web (la red mundial) [SI. El lenguaje de consulta WebSQL combina consultas basadas en contenido con estructuras. Este lenguaje se encuentra inmerso en una clase de biblioteca de Java que se utiliza para desarrollar aplicaciones basadas en la Web de: la misma manera en que SQL se utiliza para facilitar el desarrollo de aplicaciones' de bases de datos convencionales.

    En [9] se describe un lenguaje híbrido que resulta de la combinación de los lenguajes HTML y SQL. El lenguaje híbrido es un lenguaje de marcación estándar utilizado para acceder a manejadores de bases de datos. Dicho lenguaje utiliza un mecanismo de sustitución de variables entre los datos de entrada del lenguaje HTML y la consulta en SQL. Lo 'que se implementó es un programa ejecutable que funciona como CGI, el cual interacciona con la intetfaz cliente implementada en HTML y el servidor de bases de datos.

    1.6. Plan de Exposición

    El presente documento se encuentra dividido en siete capítulos y un anexo, los cuales contienen lo siguiente En el Capítulo 2 se hace referencia a los fundamentos relacionados con las bases de datos en Internet, como su arquitectura y componentes de la Web, así como los mecanismos de acceso a datos a traves de la Web.

  • I

    Introducción Capitulo I !

    : El Capitulo 3 contiene el análisis de la3 operaciones incorporadas a la herramienta.

    las soluciones conceptuales propuestas para la interfaz QBE, el diccionario de datos. el proceso de comunicación entre el cliente y servidor de BDs, las transformaciones a implementar en la herramienta, y la visualización de resultados.

    En el Capítulo 4 se hace una descripción completa de la interfaz de la herramienta. A través de un ejemplo se dan a conocer cada uno de ¡os elementos y opciones con que cuenta la herramienta.

    En el Capítulo 5 se presenta una descripción detallada de la arquitectura de la herramienta, la cual incluye la jerarquía de clases que conforman a la herramienta, las estructuras de datos utilizadas, la metodología y algoritmos implementados, haciendo referencia a los problemas que se encontraron en las implementaciones.

    En el Capítulo 6 se muestran ias pruebas experimentales realizadas a la herramienta, el ambiente de las pruebas, y un conjunto de casos de prueba con sus respectivos resultados.

    En el Capítulo 7 se presentan las aportaciones del proyecto de tesis realizado, los resultados de las pruebas, mejoras y ampliaciones futuras posibles, &as de aplicación, y comentarios finales del proyecto.

  • Capítulo 2 Fundamentos de Bases de Datos en Internet

    En este capítulo se describen los fundamentos sobre las bases de datos accedidas a través de la Web, la arquitectura genérica de esta nueva tecnología, mecanismos de acceso, etc

    7

  • Capítulo 2 Fundamentos de Bases de Datos en Internet

    2.1. Introducción

    telnet. común

    Internet es una red mundial de equipos que proveen diferentes servicios (finger, E-mail. FTP,WAIS, Archie, Gopher, World Wide Web) basados en un protocolo de red (TCP/IP). Es similar al sistema telefónico internacional: nadie posee ni

    controla todo el sistema, pero está conectado de tal manera que hace que funcione como una red muy grande [lo]. El objetivo de Internet es proporcionar una fuente de información global, no controlada y flexible. Internet es hoy para los sistemas distribuidos una herramienta muy potente y barata que permite solucionar los problemas de acceso a información, esto le ha dado a Internet una mayor proyección como una forma de brindar información y servicios a clientes (actuales o potenciales).

    Actualmente, Internet se utiliza para un conjunto de propósitos (correo electrónico, transferencia de archivos, WWW). World Wide Web (WWW o simplemente Web) ofrece una interfaz gráfica y sencilla para navegar y consultar los documentos de Internet. La disponibilidad de la WWW ha modificado mucho las cosas, inclusive ha evolucionado en tan corto tiempo, pasando de ser una Web simple y de sólo lectura a una Web más interactiva' con el usuario, construyendo páginas Web de manera 'dinámica y en el momento, por lo que la Web se usa cada vez más en nuevas aplicaciones.

    se deben emplear transacciones u operaciones espontáneas para el usuario, esto'requiere que el diálogo sea muy simple y natural a usuarios muchas veces casuales, sin entrenamiento alguno (y básicamente sin ayuda) y que los tiempos de espera no sean irritantes para estos usuarios. En la gran mayoría de estas páginas, sus fuentes de información provienen de bases de datos debido a que los sistemas manejadores de bases de datos alojan tanta información y tienen un control administrativo sofisticado de la misma [33]. En el pasado, las bases de datos eran explotadas, en una compañía, utilizando una red de área local (LAN) o una red de área amplia (WAN). Ahora, la red Internet proporciona la manera más'efectiva de acceder a bases de datos desde cualquier parte del mundo.

    En las páginas dinámicas'

    2.2. Arquitectura Cliente/Servidor en la Web

    Normalmente cuando un navegador de Web (como por ejemplo el Netscape) solicita un recurso en un üRL. (Uniform Resource Locator, Localizador Uniforme de Recursos) particular, sucede lo siguiente. Primero la computadora contacta al servidor HTTP' (Hypertext Transport Protocol, protocolo de Transporte de Hipertexto) con dicho URL. El servidor HTTP, o servidor de Web, revisa si el recurso requerido se encuentra en su sistema, en caso afirmativo envía una copia del archivo (recurso) como respuesta. El navegador entonces, muestra el archivo en el formato apropiado [1 11. En este proceso se involucra la arquitectura cliente-servidor.

    2.2.1. Arquitectura Cliente-Servidor

    Una pagina duiámica permite crear programas que se ejecutan denuo de un navegador. y que pueden trabajar con datos colocados en computadoras ubicadas en cualquier park del mundo. Esto reduce costos de operación.

    I

    H l T P es el protocolo que se utiliza en las comunicaciones en la Web entre el servidor y el visualizador. 8

  • Capitulo 2 Fundamentos de Bases de Datas en Internet ,I

    La tecnologia cliente-servidor hace posible distribuir el trabajo entre computadoras [ IZ] . Esencialmente, un trabajo se separa y es procesado por más de una computadora. Las computadoras denominadas como servidores se utilizan para almacenar los recursos a los que muchos usuarios desean acceder. El servidor espera pasivamente la. solicitud de servicio de los clientes que los acceden. Un cliente hace una solicitud al servidor para información o para especificar un recurso. El servidor recupera la información y la envía al cliente. Este a su vez despliega la información al usuario,

    2.2.2. El Web:.Una Arquitectura Distribuida

    Desde el punto de vista de des&rollo, la arquitectura lógica de una aplicación de Web es muy similar a la del cliente-servidor o multicapa. Existen algunas diferencias fisicas. Por ejemplo, una aplicación cliente-servidor tradicional tiene la interfaz cliente construida a base de formularios en algún lenguaje de programación de alto nivel (como VisualBasic, Delphi, C, etc.), mientras que una aplicación de la Web tiene la interfaz de usuario definida usando el lenguaje HTML (Hypertext Markup Language, Lenguaje de Marcación de Hipertexto). En esta arquitectura, la parte cliente está 'constituida por el visualizador de Web'utilizado para acceder y visualizar recursos de la Web, y la parte servidora está constituida por el servidor de Web el cual administra las solicitudes del navegador, recupera y envía los recursos solicitados.

    Las características claves de la arquitectura de una aplicación de Web son las

    El ambiente de la aplicación es'abierto, público (aunque en la Intranet3 puede ser privado) y distribuido.

    Todas las operaciones (recuperación y presentación de información, carga e interpretación de programas, y demás operaciones que pueda permitir el lenguaje que interpreta el contenedor) se ejecutan dentro de un contenedor externo: el visualizador.

    La arquitectura es inherentemente distribuida y multicapa. La mayor parte de la lógica de negocio se implementa en el servidor y donde los componentes de negocio del servidor se comunican con un sistema administrador de bases de datos.

    Las conexiones entre cliente y servidor son intermitentes y se realizan mediante HTTP (el protocolo de transporte utilizado para pasar datos entre el servidor y el visualizador).

    La interfaz de usuario está definida en HTML

    siguientes:

    2.2.3. Proceso Cliente-Servidor dentro de la Web

    La Web es básicamente un sistema de peticiones y respuestas (cliente-servidor). El programa cliente es un visualizador (o browser) que permite ver y explorar la información que hay en la WWW, como se muestra en la Figura 2.1. Existen diversos visualizadores: Mosaic, Microsofi Explorer, y Netscape. Los visualizadores de Web sa!iritan información

    Una Iiiuanet es cualquier red TCP/IP que no este conectada a Internet pero que utilice estándares y

    9

    3

    herramientas de comunicación de Internet para suministrar información a los usuarios de la red privada.

  • Capitulo 2 Fundamentos de Bases de Datos en internet

    Protocolo http:// gopher:// ttp:/l

    enviando una dirección üRL a un servidor de Web. El servidor de Web responde devolviendo una página en HTML

    Nombre de dominio www.cenidet.edu.mx /web-dcc/menu. htm gopher.colegio.edu /investigacion/astronomia/indice. htm Alfa.oficina.gob /estrellas/cuadrantealfa/lista. txt

    Ruta de acceso a la información

    Cliente Servidor

    Figura 2-1. Sistema Cliente-Servidor en la Web.

    2.2.3.1. Petición de Dirección URL del Explorador de Web 'I

    Todas las páginas en Internet tienen una dirección URL única aue la identifica. Lc . _ navegadores de Web solicitan una página mediante el envío de una dirección üRL a un servidor de Web. El servidor utiliza la información de la dirección URL para encontrar y mostrar la página.

    La sintaxis de las direcciones URL' es una secuencia específica de protocolo, nombre de dominio y ruta de acceso a la información solicitada. El protocolo es el método de comunicación utilizado para tener acceso a la información; por ejemplo, el Protocolo de Transpone de Hipertexto (HTTP). El nombre de dominio es el nombre del Sistema de Nombres de Dominio (DNS) del equipo que contiene la información. La ruta de acceso es el camino a la información solicitada dentro del equipo. La Tabla 2.1 muestra diferentes ejemplos de direcciones URL.

    2.2.3.2. Respuesta del Servidor de Web

    Un servidor de Web responde a la petición de un navegador de Web devolviendo una página HTML. La página devuelta puede ser de tres tipos: una página HTML estática, una página HTML dinámica, o una página con una lista de directorio.

    2.2.3.2.1, Phginas Estáticas.

    Las páginas estáticas son páginas HTML fijas ya preparadas antes de la petición. El servidor de Web devuelve las páginas HTML al usuario, pero no realiza ninguna acción especial. El usuario pide una página estática escribiendo una dirección URL o haciendo clic

    10

    http://gopher.colegio.edu

  • Capitulo 2 Fundamentos de Bases de Datos en Internet

    en un vinculo que apunte a una dirección üRL La petición de dirección URL se envía al servidor, y éste responde devolviendo la página HTML estática, como se aprecia en la Figura 2.2.

    aiente Internet Servidor ww.organizacion .corn

    Figura 2.2. Solicitud de una Página Estática.

    2.2.3.2.2. Páginas Dinámicas. *!

    Las páginas dinámicas se crean como respuesta a las peticiones de los usuarios. Un navegador de Web recopila información presentando una página con cuadros de texto, menús y casillas de verificación que el usuario completa o activa. Cuando el usuario hace clic en un botón de un formulario, los datos procedentes del formulario se envían al servidor de Web. El servidor pasa los datos a un archivo de comandos o una aplicación para su procesamiento, o bien consulta o envía datos a una base de datos. Entonces, el servidor devuelve los resultados al usuario en forma de una página HTML.

    La Figura 2.3 muestra cómo un usuario puede enviar una consulta a una aplicación de API de Internet Server (ISAp14) que suma dos números. El usuario escribe los dos números que se van a sumar y después hace clic en un botón, lo que ocasiona que los dos números se envíen al servidor de Web. Este servidor llama a la aplicación ISAPI para sumar los números y devuelve el resultado al usuario en forma de una página HTML

    Sew.aor de Web Sew.aor de Web sew do, de Web

    Internet 6r .u do r uiwui.organizacio".com

    Cliente

    Figura 2.3. Ejemplo de Envio de una Consulta a una Aplicación ISM1

    La Figura 2.4 muestra un usuario que envía un pedido a una base de datos usando un conector de bases de datos de Internet (gateway). El usuario completa el formulario y después hace clic en un botón, lo que ocasiona que los datos del formulario se envíen al

    ISAPI es el MI de Internet Server que Microsoft ofrece para su explorador. esto se detallará mas adelante. 1 1

    http://uiwui.organizacio".com

  • Capitula 2 Fundamentas de Bases de Datas en Internet

    servidor. €1 servidor envia los datos a la base de datos y acusa el pedido enviando una página HTML,.

    Base de daos

    b a a s d e datos

    üiente Internet Se-ryidar ' www.organizacion .corn

    Figura 2.4. Ejemplo de un Envío de un Pedido a una Base de Datos Usando un Conector

    2.2.3.2.3. Lista de Directorios.

    Si los usuarios quieren enviar consultas sin especificar un archivo en concreto, se puede crear un documento predeterminado para un sitio Web o para un determinado directorio, o se puede configurar el servidor para explorar los directorios. Si no se crea ningún documento predeterminado para un directorio y está configurada la exploración de los directorios, se devuelve ai usuario una lista de directorio (una versión hipertexto de una lista del navegador o del administrador de archivos) en forma de página HTML Después, el usuario puede ir al archivo apropiado haciendo clic en él dentro de la lista de directorio.

    í

    Cliente Internet Sei$dor wwni.organizacion.com

    Figura 2.5. Ejemplo de una Lista de Directorio

    2.3. Mecanismos de Acceso a Bases de Datos a Través de la Web

    Una de las mejores maneras de aprovechar el potencial de la Web es en la publicación de bases de datos, permitiendo a los usuarios de la red Internet acceder a cualquier base de datos mediante cualquier visuaiizador de Web.

    Una base de datos accesible en la Web es una base de datos que es accedida

    12

    http://wwni.organizacion.com

  • . . . - . .

    Capitulo 2 Fundamentos de Bases de Datos en Iiitemet

    mediante otras aplicaciones de la Web, como formularios del lenguaje HTML. Las aplicaciones Web son aplicaciones de ' computadora que utilizan el' internet como su plataforma de procesamiento, además son accedidas 'por los usuarios mediante sus visualizadores. Tales aplicaciones pueden utilizar información extraída de la propia base de datos para que ayude al usuario a comprender el proceso de la aplicación.

    2.3.1. Métodos de Acceso a Bases de Datos a Través de la Web.

    Existen diferentes maneras para acceder a una base de datos desde un navegador de Web. Los métodos a seleccionar dependen de varios factores. Un factor a considerar es la plataforma de la base de datos a la que se desee proporcionar el acceso. Otro factor es el tipo de acceso que se desee utilizar, como clientes MIS, conector de la base de datos, CGI (Common Gateway Interface, Interfaz Común de Conexión), productos 'para servidor de Weblbase de datos, etc. Otro factor a considerar sería el costo del método de acceso. Por ejemplo, si se desea integrar un servidor de Web a una base de datos en Oracle, se podría seleccionar la solución de un servidor de Web de Oracle [13].

    Ahora bien, el modelo de servir archivos que ofrece el Web se extiende para permitir la interacción con programas externos al servidor Web. En este tipo de aplicaciones, los resultados que se esperan de la consulta se generan de forma dinámica a partir de los datos persistentes. Para ese propósito los servidores Web tienen extensiones para comunicarse con otras aplicaciones [14].

    Un servidor de Web no sabe cómo interactuar con una base de datos y para lo cual se auxilia de programas externos que residen en la misma máquina para que hagan el trabajo por él. Típicamente el servidor dispone de un mecanismo simple para invocar esos programas, denominado CGI, que permite que ambos procesos, el que representa al servidor y el que corresponde al programa invocado, puedan comunicarse entre sí. El programa CGI es el responsable de retomar una salida compatible con HTTP. El CGI es una especificación de programación, lo que implica que no está ligado a ningún lenguaje. El CGI puede procesar la información por sí mismo o se comunica con una aplicación, la cual procesa la información, la regresa al CGI y éste a su vez al servidor.

    Sin embargo, cada vez que un CGI se procesa, se crea un proceso adicional en el servidor, demandando más recursos y por consiguiente aumentando el tiempo de respuesta del servidor. También si el CGI no es diseñado correctamente, la seguridad puede violarse dejando al servidor vulnerable de accesos indeseables. Otro problema es que es difícil mantener el estado, es decir, preservar la información sobre el cliente de una petición (o solicitud) HTTP a la siguiente petición.

    Para resolver el problema anterior y para dar a los desarrolladores acceso a la parte interna de los servidores, se han desarrollado nuevos mecanismos que resuelven los inconvenientes de utilizar un CGI, como utilizar un API (application programming interface, interfaz de programación de aplicaciones) que permita al desarrollador modificar el comportamiento del servidor y darle nuevas capacidades ' '[15]. Cuando el cúniportamiento de un servidor se modifica, el servidor utiliza el código en un módulo API en vez de construir su propio código. Cuando se añade funcionalidad a un servidor (como el acceso a una base de datos) el API actúa como una interfaz entre el servidor y la otra aplicación.

    13

  • ~ . . . . . . . .. . -

    Capitulo 2 Fundamentos de Bases de Datos en Internet

    Con la introducción del lenguaje Java, se planteó una interfaz de programación para acceder a fuentes de datos basadas en SQL: JDBC (Java Database Connectivity).

    2.3.1.1. El Mecanismo CGI

    CGI es un conjunto de especificaciones para transferir información entre el explorador de un cliente Web, un servidor de Web y una aplicación CGI. Ai utilizar un navegador de Web para acceder a una base de datos, hay varios componentes que intervienen para transferir la consulta del usuario a la base de datos y devolver los resultados al navegador. La acción se desarrolla de la siguiente manera [16]:

    1. El usuario llama a un programa conector que utiliza CGI, generalmente haciendo clic en un hipervínculo, u oprimiendo un botón en el navegador de Web.

    2. El navegador reúne toda la información escrita por el usuario para enviarla al programa CGI.

    1;

    3 . El navegadorcontacta al servidor de Web en la máquina donde reside el programa CGI, pidiéndole que localice a este último, y le transfiere la información.

    4. El servidor de Web corrobora si la máquina solicitante tiene autorización de acceso al programa CGI.

    5. Si el usuario tiene autorización, el servidor de Web localiza el programa conector y transfiere a éste la información del navegador de Web. La Figura 2.6 muestra los pasos del 1 al 5. Fi Navegador de Servidor de

    Web

    Fom"lano ................................................................................................................................. ! HTML I

    Autentificacion del usuano

    Figura 2 6. Llamada a un Programa CGI desde un Navegador de Web

    6 Se ejecuta el programa conector 14

  • . . . . . ._

    CdpitUlO 2 Fundamentos de Bases de Datos en Internet

    7 El proceso convierte la información recibida a un formato que el sistema administrador de bases de datos sea capaz de entender.

    El conector usa el módulo de la base de datos para transferir la consulta a la interfaz de la base

    8

    9. La interfaz de la base de datos analiza la sintaxis de la consulta para asegurar que sea correcta.

    10. Si la interfaz encuentra un error de sintaxis en la consulta, se envía un mensaje de error

    11. El mensaje de error se envía al servidor de Web, el cual lo transfiere al navegador de Web para que éste lo despliegue al usuario, y el proceso se detiene aquí. Los pasos 6 al 11 se muestran en la Figura 2.7.

    al programa conector.

    de Web

    Mensaje de error

    con e c t o r base de datos

    Procesa Consulta para la base Analizador de información de datos sintams

    barser) descubre un Envia mensaje Mensaje de error

    de error

    Figura 2.7.' Devolución de un Mensaje de Error.

    12 Si no hay error, la interfaz envía la consulta al sistema administrador de bases de datos.

    13 El sistema administrador de bases de datos atiende la consulta y devuelve los resultados al programa conector a través de la interfaz.

    14 El programa conector formatea los resultados y los envia al servidor, por medio del CGI. para su envío al navegador de Web.

  • Capitulo 2 Fundamentos de Bases de Datos en internet

    Resultados formateados

    15 El navegador de Web despliega los resultados Los pasos 12 al 15 se muestran en la Figura 2 8

    Programa conector

    Procesa información Consulta para

    Envía mensaje Resultados de

    Interfaz de la base de datos

    Venfica Consulta para consulta

    Resultados de Resultados de la consulta

    SeMdor dc la base de datos

    + Procesala consulta

    Figura 2.8. Devolución de Resultados Formateados de la Consulta a la Base de Datos.

    Independientemente de qué tan exacto sea el proceso, realmente funciona con mucha uniformidad En muchos casos, el módulo de la base de datos y la interfaz de ésta son partes integrales del software del conector

    2.3.1.2. El Modelo API

    Una Interfaz para Programación de Aplicaciones (API) es una colección de funciones que un programador puede usar para hacer que un servidor .de bases de datos efectúe tareas. La API proporciona una forma de abrir conexiones a la base de datos, enviar y recibir datos y efectuar casi cualquier otra operación. Una AF'I habilita a un cliente para interactuar con el servidor de la base de datos a un nivel íntimo que permite un mejor desempeño.

    Nestcape y Microsoft crearon APIs específicas para sus servidores. El API de Netscape Server (NSAPI) y el API de Internet Services (ISAPI) permitieron mejorar la velocidad de acceso [17].

    El uso de un API ofrece otras características y beneficios, como la capacidad para compartir datos y recursos de comunicación con un servidor, la capacidad para compartir bibliotecas de funciones, y la capacidad de autentificación y manejo de errores. Esto se

    16

  • . ~ . ~~ . - . . . . . .. . .

    Aplicación

    Capitulo 2 Fundamentos de Bases de Datos en Internet

    Servidor de JDBC

    traduce en beneficios porque mantiene la consistencia del sistema. Debido a que una aplicación API permanece entre la memoria y la solicitud del cliente, la información del cliente se puede almacenar y utilizar otra vez cuando el cliente decida hacer otra solicitud.

    Existen. sin embargo, algunas desventajas de este mecanismo. Las funciones MI son específicas para un servidor, porque cada servidor tiene un API diferente. El código MI puede hacer fallar al servidor, y esto complica mas el desarrollo del código, el cual debe manejar múltiples hilos de procesos y limpiar la memoria después de que se haya ejecutado.

    2.3.1.3. El Mecanismo JDBC de Java

    Sun Microsystems con Java,. ha logrado toda una plataforma y cuenta con JDBC para el acceso a BDs compatibles con ODBC, es decir, manipula mediante objetos la información [ 181.

    JDBC hace para Java lo que ODBC para el lenguaje C (o Visual Basic). No es un protocolo Cliente/Servidor o un conjunto de funciones para visualizadores, ' pero puede comunicarse a través de un controlador con el servidor usando la red nativa de comunicación del servidor. No indica qué nivel de SQL usar, simplemente pasa las instrucciones SQL al controlador específico de la BD. Es un complemento a la plataforma Java para manejar bases de datos relacionales que entienden SQL.

    JDBC proporciona una abstracción al desarrollador que le permite olvidarse de la conexión con la BD y concentrarse en el desarrollo de la aplicación y SQL. El MI del JDBC consiste de un conjunto de interfaces abstractas para dirigir solicitudes de consulta a una base de datos, como conexión a una base de datos, ejecución de instrucciones SQL, y obtención de resultados de la consulta [19].

    A diferencia del mecanismo CGI, donde se tiene que desarrollar en dos diferentes lenguajes y requiere el conocimiento de dos tecnoiogías [20]; cuando se utiliza JDBC sólo se necesita conocer el lenguaje Java, abreviando notablemente la rapidez del acceso ya que la ejecución de una instrucción JDBC en la base de datos requiere sólo de cierto tipo de servidor que pase los comandos SQL al servidor de bases de datos. La solución JDBC permite que la aplicación tenga la conexión a la base de datos para manejar todo el procesamiento. La Figura 2.9 muestra cómo se ejecuta una instrucción JDBC.

    Figura 2.9. Ejecución de una Instrucción de JDBC

    17

  • Capítulo 3 Análisis del Problema

    En este capítulo se consideran los siguientes puntos: planteamiento del problema, alcance de la tesis y análisis de los puntos que se consideran en la hirramienta, como la interfaz QBE, diccionario de datos, proceso de comunicación entre el cliente y servidor de BDs, transformaciones a implementar en la herramienta, y visualización de resultados.

    18

  • Capitulo 3 Análisis del Problema

    3.1. Planteamiento General del Problema.

    Normalmente los sistemas de información se han implementado para un grupo cerrado de usuarios, generalmente empleados de una empresa o institución. Los usuarios de estos sistemas se pueden clasificar en dos tipos: expertos e inexpertos. Los primeros están dominan las herramientas de desarrollo de sistemas de información; mientras que los segundos carecen de estos conocimientos. En estos sistemas cerrados las necesidades de los usuarios inexpertos se satisfacen mediante programas de aplicación desarrollados por los usuarios expertos.

    Con el advenimiento de la red Internet, ha surgido el problema de satisfacer las necesidades de usuarios casuales’ e inexpertos que desean acceder vía Internet a la información de bases de.datos que son desconocidas para ellos. Por lo que se propone desarrollar una herramienta de consulta intuitiva de fácil utilización para este tipo de usuarios que no conocen la naturaleza de la información ni la estructura de la base de datos que deseen consultar. Para tal efecto se decidió incorporar a la herramienta el estilo QBE (Query by Example), ya que es el método más amigable para la formulación de consultas en una base de datos, además de proporcionar tanta información acerca de la base de datos .como sea posible, de manera que los usuarios puedan entender el contenido y estructura de la base de datos hasta donde deseen.

    3.2. Alcances y Limitaciones

    El presente trabajo de tesis considera los siguientes alcances:

    Extensión del diccionario de datos, que incluya información de la descripción del campo de información y tipo de unidad de medida.

    La herramienta sólo permitirá efectuar consultas a una base de datos seleccionada por el usuario, la cual estará conformada de una o varias tablas, localizada en un servidor Web.

    Las bases de datos con las que podrá funcionar la herramienta serán aquellas manejadas por el “Servidor de Consultas Distribuidas con Arquitectura ClientdServidor” [23] del manejador SiMBaDD, que funciona en el ambiente Unix. Esto implica que la herramienta no soportará otros manejadores comerciales de bases de datos.

    El sistema completo deberá ejecutarse en cualquier computadora con conexión a Internet, mediante la dirección de la página Web de la herramienta.

    El diseño de la interfaz del QBE estará sujeto a las limitaciones gráficas que proporcionen los lenguajes para Internet.

    ’ Un usuano casual es un usuano que accede a Internet ocasionalmente ya sea por necesidades especificas. distraccion o cunosidad

    19

  • . . .-

    Capitulo 3 .4nálisis dcl Problema

    i

    3.3. Interfaz QBE

    La interfaz del usuario es el.mecanismo a traves del cual se establece un diálogo entre el programa y el humano [24]. Un sistema por más poderoso que sea no podrá ser explotado en su totalidad, ya que al ser dificil de utilizarse, su potencialidad no puede transformarse en resultados concretos.

    A medida que el equipo se ha hecho más eficiente y se han considerado los factores humanos y su impacto en el diseño de la interfaz, han ido apareciendo las modernas interfaces orientadas a ventanas con opción de señalar y elegir. La: creación de estas interfaces no son una tarea sencilla.

    Al implementar el diseño de una interfaz de usuario, se deben tener en cuenta (entre varios mas) los siguientes puntos:

    Tipo y características del usuario para quien se diseña.

    Necesidades y objetivos de ia(s) tarea(s)

    Requerimientos del sistema para cumplir la tarea.

    Métodos de ergonomía e ingeniería de usabilidad (facilidad de aprendizaje y de uso).

    Por otro lado, Query by Example (QBE) plantea un estilo muy peculiar de realizar una consulta en una base de datos. Se introduce un ejemplo de los datos que se desean obtener, .y el sistema da una respuesta basada en el ejemplo dado; de tal manera que el usuario sea capaz de aprender a manejar y explotar la herramienta en forma productiva tras pocas horas de aprendizaje. Bajo esta filosofia se requiere que el usuario conozca muy poco acerca de bases de datos (como el manejo del lenguaje SQL). Por lo que QBE ofrece una fácil utilización de un sistema para visualizar el contenido de una base de datos.

    3.3.1. El Problema de la Interfaz

    Uno de los aspectos que se consideran en este punto es la selección adecuada del software de desarrollo para Internet, ya que se pretende que la interfaz de la herramienta sea lo mas amigable e intuitiva posible para el usuario. Por otra parte, considerando que la interfaz de QBE estándar es eminentemente gráfica y, como se estipula en los alcances, la herramienta debe explotarse desde la plataforma Internet; por lo tanto se tiene que desarrollar en un lenguaje que proporcione facilidades gráficas, conectividad, y ejecución mediante el uso de un navegador de Web.

    3.3.2. Solución Conceptual Propuesta.

    Fundamentado en lo anterior, se eligió el lenguaje Java como lenguaje de desarrollo, debido principalmente a que'facilitaría el desarrollo de la interfaz para el sistema de consultas, y a que no sólo permite desarrollar para múltiples plataformas, sino también permite hacer16 a n más facilidad. Además de tener esa capacidad, los apliquetes6 de Java

    Un aphquete es un programa Java que se ha escrito para ser utilizado dentro de un navegador de Web 6

    I' 20

  • pueden ejecutarse mediante el uso de un navegador de Web. Esto permite que los apliquetes de Java sean utilizados por los millones de personas que usan WWW.

    Dentro del conjunto de herramientas que Java .ofrece, encontramos el Swing JFC [ 2 5 ] (Java Foundation Class), el cual es un ambiente de desarrollo de interfaz gráfica de usuario (GUI), que simplifica e introduce componentes para el desarrollo de ventanas; es decir, componentes visuales (como menús, barras de herramientas, y cajas de diálogo) que se utilizan en programas que incorporan una interfaz gráfica. Con el uso de esta herramienta se resuelve el problema del desarrollo de la interfaz.

    3.4. Diccionario de Datos.

    El diccionario de datos (DD) es una referencia de “datos acerca de los datos” (metadatos); es decir, definiciones de otros objetos en el sistema, y no sólo “datos en bruto” [26]. En particular, en el diccionario de datos se almacenan fisicamente todos los diversos esquemas y correspondencias (externos, conceptuales, etc.) tanto en sus versiones fuente como en las versiones objeto. Una manera de saber lo que debe contener el diccionario de datos, es visualizar cómo llegará a utilizarse. El DD es el elemento básico de referencia para localizar los nombres y atributos de los datos utilizados en todo el sistema de la base de datos. Por esto, se deberán incluir todos los datos simples. Con el fin de ser de utilidad, los registros del diccionario de datos deben contener información referente a las categorias siguientes:

    a) El nombre del dato.

    b) La .descripción del dato.

    c) El tipo de dato

    d) El rango permitido del dato,

    e) La longitud disponible en caracteres.

    f) Cualquier otra información pertinente de edición.

    i:

    3.4.1. El Problema de la Interrogación del Diccionario de Datos ,.

    Como se menciona en el apartado 3.3, la herramienta sólo accederá a bases de datos del “Servidor de Consultas Distribuidas con Arquitectura ClienteiServidor” [23] ‘del rnanejador SiMBaDD (bajo ambiente Unix), y como debido a que” éste servidor está diseñado solamente. para efectuar operaciones de consultas en una red local, ‘no tiene una interfaz o conexión que proporcione acceso a la base de datos desde el exterior, con la que se pueda interrogar y transferir la información del diccionario de datos al cliente que lo solicita (navegador de Web).

    21

  • Capítulo 3 Análisis del Problema

    3.4.2. Solución Conceptual

    El diccionario de datos se encuentra dividido en un número de fragmentos igual al número de nodos servidores de la red, y tiene los detalles de todas las tablas y de todos los dominios conocidos por el sistema [27]. Las tablas del diccionario se pueden interrogar usando las operaciones de recuperación del lenguaje de manipulación de datos (LMD).

    El diccionario de archivos distribuidos (DAD) constituye uno de los módulos más importantes del SiMBaDD. El DAD contiene la información acerca de las tablas y archivos de índices de la BDD. Esta información es utilizada por el precompilador del lenguaje de manipulación de datos (LMD) y por el módulo QBE para conocer la estructura de cada una de las tablas de la BDD.

    Una solución a este problema es implementar un servicio más para los clientes dentro del servidor. Este servicio se denominará SHOW DATABASE, el cual extraerá todos los nombres de las tablas con sus respectivas columnas y detalles de información (como tipo de dato, longitud del dato, etc.) que estén disponibles en la base de datos (BD) y se encargará de transmitir esta información al programa que lo solicitó (cliente). Esto resulta útil en la herramienta QBE, en el momento que el usuario desee seleccionar ia(s) tabla(s) y10 columna(s) a incluir en la consulta.

    3.5.Proceso de Comunicación entre el Cliente y el Servidor de Bases de Datos

    3.5.1. El Problema de la Comunicación con el Servidor de Bases de Datos

    En la tesis titulada “Servidor de Consultas Distribuidas en Arquitectura CIienteíServidor” [23], se tuvo como objetivo el desarrollo e implementación de algoritmos para el procesamiento de consultas globales en bases de datos distribuidas bajo la arquitectura clientdservidor y el procesamiento en paralelo en diferentes máquinas En la Figura 3.1 se muestra la manera en que trabaja dicho servidor.

    Figura 3 . 1 .

    La herramienta QBE interactuará con este servidor, enviándole la consulta definida por el usuario vía un navegador de Web (cliente). El servidor procesará la consulta o las

    22

  • Análisis del Problema Capitulo 3

    peticiones que le solicite e l cliente, retornando los resultados de dichas peticiones. como se muestra en la Figura 3.2.

    Figura 3.2. Proceso de una Petición de la Herramienta QBE al Servidor de Consultas SiMJ3aDD.

    Una de los términos cruciales relativos a las bases de datos grandes en estos días es la escalabilidad, y para que el SiMBaDD ofrezca esta característica requiere de un mecanismo de comunicación con el exterior. El problema con el servidor de consultas, es que precisamente no ofrece esa interfaz de comunicación, si el plan es conectar la base de datos a la Web.

    3.5.2. Solución Conceptual

    En la sección 2 3 se mostraron los métodos de acceso a una base de datos a través de la Web, y debido al problema expuesto anteriormente, se plantea el uso de una interfaz o intermediario que proporcione un método para interactuar con el navegador de Web y el servidor de consultas.

    El intermediario recibirá los datos transferidos desde un navegador de Web mediante un servidor de Web y los convertirá a un formato que el servidor de consultas pueda entender. Los resultados, si es que existe alguno, se devuelven al programa intermediario, el cual convierte los resultados de manera que el navegador los pueda desplegar. Los resultados convertidos se envían de regreso al navegador de Web y se exhiben ai usuario, como se muestra en la Figura 3.3.

  • .Análisis del Problema Capítulo 3

    SemilmdeWb

    ,

    8 $ -,. servidor envia la 8 &$

    suha en un página Web al Clieme

    La BD retorna un @conjumo de datos y

    se constniye una página dinámica del conjunto de resunados

    8

    Figura 3.3. Proceso del Intermediario Propuesto.

    3.6. Transformaciones de Formato de Fecha y Unidad de Medida

    3.6.1. El problema de las Transformaciones de Unidad de Medida y Formato de Fecha

    Se han desarrollado diversas versiones del SiMBaDD, algunas de ellas bajo las plataformas DOS y Windows, utilizando el lenguaje de desarrollo Turbo Pascal [28, 291. Existe una versión del servidor de consultas que se trasladó a la plataforma Unix [23], pero en ella sólo fueron trasladadas aquellas unidades y líneas de código estrictamente necesarias para implementar los objetivos que planteaba esa versión con relación al tiempo que se disponía. Por lo que, el servidor de consultas tiene una funcionalidad austera referente a servicios a usuarios, como, por ejemplo, altas, bajas y modificaciones del DDL.

    Otros servicios a agregar al servidor son los siguientes:

    Unidad de medida en que puede expresarse un tipo de dato numérico

    Formato de fecha utilizado.

    El dilema es en qué sitio sería mejor implementar la conversión de unidad de medida y el cambio de formato fecha.

    3.6.2. Solución Conceptual

    Existen tres alternativas de solución a considerar para la implementación de dicha transformación:

    1. Implementado en la parte cliente (Interfaz QBE).

    2. Implementarlo en el servidor intermediario

  • Análisis del Problema Capitulo 3

    3 Implementarlo en el servidor de bases de datos.

    En el capitulo 4 se indica y detalla la alternativa elegida en las implementaciones de las transformaciones de unidad de medida y formato de fecha,

    3.7. Visualización de Resultados

    3.7.1. El Problema del Formate0 de los Resultados de la Consulta

    Después de que se haya enviado la consulta y se haya ejecutado, los resultados de dicha consulta deben ser regresados al cliente que los solicitó. El problema es cómo presentar esos resultados en una página Web pero bajo el entorno del lenguaje Java (como apliquete), ya que sobre éste se desarrolla la interfaz de la herramienta.

    3.7.2. Alternativas de Solución

    Existen dos opciones para la presentación de los resultados de la consulta:

    I . Utilizando un archivo con formato de tabla del lenguaje HTML. Las tablas en HTML son de gran utilidad para agrupar gran cantidad de datos en un espacio relativamente reducido. Con la clase JeditorPane es posible cargar y desplegar el contenido de un archivo con texto formateado en HTML. ' .

    2. Utilizando la clase JTable. Con esta clase se pueden desplegar tablas de datos, la cual permite mostrar una vista de los mismos. En principio, se crearon para constituir una interfaz ligada a bases de datos a través del Java Database Connectivity (JDBC), y asi evitar la complejidad inherente al manejo de los datos, proporcionando mucha flexibilidad al programador.

  • Capítulo 4 Descripción de la Interfaz de la Herramienta QBE

    l s t e capítulo contiene una descripción detallada de la interfaz de la herramienta QBE. En él, se describe el proceso para realizar consultas en la herramienta QBE, así como cada una de las opciones que forman parte de dicha herramienta.

    26

  • Capitulo 4 Descripción de la interfaz de la Herramienta QBE

    4.1. Descripción del Cliente (Herramienta QBE)

    La interfaz cliente es la responsable de interactuar con el usuario. El cliente es cualquier visualizador como Netscape Communicator o Microso!? Internet Explorer. La interfaz gráfica básica que proporcionan interpreta documentos escritos en el lenguaje de descripción de paginas (HTML), que es una de las especificaciones de SGML (Standard Generalized Markup Language). Con este lenguaje se puede insertar texto, imágenes y formularios para recabar información. Los navegadores se han ido perfeccionando al grado de poder incorporar código “independiente de la plataforma” al estilo de Java, lo que les da una mayor capacidad de interacción con el usuario.

    Los visualizadores actuales pueden, con auxilio de otros programas, desplegar documentos descritos en lenguajes diferentes de HTML Esos programas se acoplan al visualizador mediante técnicas de “plug-ins” como en los casos del Netscape y el Internet Explorer, o hacen uso de técnicas propietarias de Microsoft, para el caso del Internet Explorer.

    4.2. Elementos de la Herramienta

    distinguen tres fases:

    Formulación de la consulta

    Ejecución de la consulta y presentación de resultados

    Dicho proceso se muestra utilizando el ejemplo de una consulta, describiendo detalladamente la funcionalidad de la herramienta. En e1 se guía al usuario en la selección de las tablas que desee involucrar en la formulación de la consulta, para que posteriormente formule su consulta llenando la cuadrícula del ejemplo; y finalmente se proceda a la generación del código de la consulta, ejecución de la misma y la presentación de resultados.

    En el proceso de formulación y ejecución de una consulta con esta herramienta, se

    Selección de la base de datos y tablas participantes en la consulta

    4.2.1. Selección de BD y Columnas

    Para formular una consulta, primeramente el usuario tiene que seleccionar el diccionario de datos (DD) de la base de datos que desee consultar, a través de la dirección IP en que esté ubicado el servidor de bases de datos, como se muestra en la Figura 4.1

    Considerando que el usuario puede desconocer el contenido y estructura de la base de datos, la herramienta ofrece la facilidad de presentar información detallada de la definición de la base de datos para que el usuario encuentre las tablas y columnas que le pueden servir para formular su consulta.

    Para tal efecto, la herramienta presenta una lista de las tablas de la base de datos, la cual aparece en la ventana de la esquina superior izquierda de la Figura 4.2.

  • Capitulo 4 Descripción de la Interfaz de la Herramienia QBE

    Figura 4.1. Selección de la Base de Datos a Consultar

    Figura 4.2. Ventana de la Opción “Ver Descripción”

    Para cada tabla, el usuario puede ver una descripción en texto libre de la información que contiene la tabla (Figura 4.2), así como una lista de las columnas que posee la tabla (Figura 4.3). Además, la herramienta ofrece la posibilidad de ver para cada columna información tal como una descripción de su contenido en texto libre, tipo de dato, unidad de medida de los datos, y formato de fecha (en caso dado).

    28

  • Capitulo 4 Descripción de la Inierfaz de la Herramienta QBE

    Las columnas de la cuadrícula se usan para que el usuario indique las columnas de la base de datos que van a participar en la formulación de la consulta. Para evitar confusiones entre las columnas de la cuadrícula y las columnas de la base de datos, a las primeras se les denominará simplemente columnas, mientras que a las segundas se les llamará columnas de BD.

    Por lo tanto, para cada columna de BD involucrada en la consulta, el usuario deberá

    La cuadrícula contiene seis renglones con las siguientes etiquetas:

    Tabla. Para una columna dada, este renglón se usa para especificar la tabla a la que pertenece la columna de BD incluída.

    Columna. Para una columna dada de la cuadrícula, este renglón sirve para especificar la columna de BD incluida.

    0 Mostrar. Para una columna dada, este renglón sirve para indicar que los datos de la columna de BD incluída deben aparecer en los resultados de la consulta.

    0 Propiedades. Para una columna dada, este renglón se usa para indicar las propiedades a aplicar a la columna de BD incluída. Estas propiedades son: función de SQL (count, min, max, sum, y average), y unidad de medida o formato de fecha en que se desean los datos.

    0 Condición. Para una columna dada este renglón se usa para especificar la condición de búsqueda que se desea aplicar a la columna de BD incluída.

    0 O. Para una columna dada, este renglón sirve para especificar una condición "OR" extra que se desea aplicar a la columna de BD incluida.

    incluir el nombre de la columna de BD en una columna de la cuadrícula (Figura 4.5).

    Figura 4.5. Inclusión de Columnas

  • capitulo 4 Descnpcion de la Interíaz de Id Hemnuenta QBE

    Despues de seleccionadas las tablas, ,el usuario deberá formular su consulta llenando la cuadricula del ejemplo. Para tal efecto, el usuario deberá realizar los siguientes pasos: '

    Incluir en la cuadrícula los nombres de las columnas de BD involucradas en la formulación de la consulta (Figura 4.5). La inclusión de una columna se realiza colocando el cursor del ratón sobre el nombre de una columna de BD que aparezca en alguna de las tablas seleccionadas, y desplazando el cursor hasta una columna vacía de la cuadrícula. Al efectuar esta acción, la herramienta llena automáticamente los renglones Tabla y Columna con los nombres de la tabla y columna de BD correspondientes.

    Habilitar las columnas de BD cuyos datos se desea que aparezcan en los resultados de la consulta. La habilitación de una columna se efectúa colocando el cursor sobre el renglón Mostrar de la columna correspondiente y haciendo doble clic con el ratón.

    Figura 4.6. Ventana para Definir Propiedades (Función SQL)

    Especificar propiedades para las columnas de BD que han sido habilitadas p&a aparecer en los resultados. Este paso es opcional, y para realizar la especificación de propiedades de una columna, se debe colocar el cursor sobre el renglón Propiedades de la columna y hacer doble clic para que aparezca una ventana en donde se pueden elegir las propiedades adecuadas para la columna (Figuras 4.6, 4.7, y 4.8). Las propiedades que el usuario puede asignar son las siguientes:,

    1. Aplicación de una función de agregación en SQL, como Counr, Min, M a , Sum, y Average.

    2. Cambio de unidad de medida

    3 . Cambio en la presentación del formato de la fecha

  • Capítulo J Descnpción de la interfaz de la Herramienta OBE

    Figura 4.7. Ventana para Definir Propiedades (Unidad de Conversión)

    Figura 4.8. Ventana para Definir Propiedades (Formato de Fecha)

  • Capiiuio 4 Descnpcion de la interfaz de la Herramienta OBE

    Figura 4.9. Ventana para Construir Condición

    Formular la condición de selección de la consulta, lo cual se logra definiendo condiciones sobre una o varias columnas de BD. Para definir la condición correspondiente a una columna, se debe colocar el cursor sobre el renglón Condición (o el renglón O) de la columna y hacer doble clic para que aparezca una ventana que facilita la definición de la condición (Figura 4.9).

    Ya que la definición de la condición de selección es la operación más complicada, a continuación se describen algunos detalles referentes a ésta

    Cuando se requieran definir varias condiciones sobre una misma columna de BD y se desee establecer una operación "AND" entre ellas, se puede repetir el nombre de la columna de BD en otras columnas para definir las otras condiciones sobre la misma columna de BD, o bien se pueden especificar todas las condiciones en una sola columna.

    Cuando se deseen definir condiciones adicionales que tengan una operación "OR' con las del renglón Condición, las condiciones adicionales se pueden definir análogamente usando el renglón O.

    La herramienta permite definir una operación de reunión mediante una variante de la definición de una condición. Para tal efecto, la ventana para definir una condición muestra una carpeta con dos opciones: Valor y Columna (Figura 4.10). La primera opción sirve para definir una condición que involucra la comparación de un a columna de BD con un valor dado por el usuario, mientras que la Última opción se usa para definir una operación de reunión. Al usar esta última opción, se debe especificar el operador y la otra columna de BD que participa en la reunión (Figura 4. IO).

  • Capitulo 4 Descnpcion de la lnierfaz de la Herramienta QBE

    Figura 4.10. Ventana para Construir Reunión

    En la Figura 4 11, se muestra la formulación final de la consulta "obtener el número de cuenta, nombre y domicilio de los clientes que tienen un saldo superior a 500". La primera, tercera, cuarta y quinta columna tienen habilitada la opción mostrar. En la segunda columna, se especificó una reunión con la columna tres. En la última columna, tiene aplicada una condición AND sencilla (Figura 4.12).

    _.__._.__._.._.__._,.__...

  • Capítulo 5 Diseño de la Herramienta

    Este capítulo contiene una descripción de la arquitectura de la herramienta, 'su jerarquía de clases, las estructuras de datos utilizadas, la metodología, y los algoritmos de las soluciones. Asimismo se mencionan los problemas que se encontraron en la implementación de la herramienta QBE.

    36

  • Capitulo 5 Diseño de la Herramienta QBE

    5.1. Diseño General

    En el diseño general intervienen los siguientes componentes:

    1. Una interfaz del tipo QBE, en la que se define la consulta a través de un lenguaje gráfico. Ésta es presentada dentro de un visualizador de Web mediante un apliquete. Esta interfaz se implementó en el ¡enguaje Java, el cual está diseñado para integrarse en redes como Internet y otras redes de gran escala, incluyendo un gran número de bibliotecas de red para utilizar redes T C P m y varios protocolos que se emplean comúnmente en Internet; como HTTP. Esto da como resultado una amplia gama de funcionalidad en la red y aplicaciones que se prestan para su uso en red, y además, encaja bien dentro de un modelo de software distribuido. Los archivos de apiiquetes son pequeños y transportables, lo cual permite que se puedan cargar e integrar con facilidad dentro del diseño de una página Web. Estos apliquetes pueden agregarse a las páginas para dotarlas de nuevos niveles de funcionalidad e interactividad. Puesto que por lo general son pequeños, no incrementan de manera significativa el tiempo de transferencia de una página y puesto que son programas reales, ofrecen más flexibilidad que los guiones (scripts) de HTML y CGI tradicionales.

    2. Un servidor de Web que atenderá los requerimientos de conexión emitidos por el visualizador de Web. Cuando se establece la conexión (vía una dirección URL), el servidor de Web transfiere el apliquete al navegador, y éste es el que se encarga de interactuar con el servidor intermediario.

    3. Un servidor intermediario, que atiende a las solicitudes del apliquete. Este programa está implementado en lenguaje C bajo el ambiente Unix.

    4. Un servidor de bases de datos que procesa las consultas definidas en la interfaz QBE

    Estos componentes se aprecian en la arquitectura implementada, la cual usa una comunicación de tres capas (3-tiered), como se muestra en la Figura 5.1

    visualizador

    Servidor - Servidor de Web I

    lnienediano 1

    SiMBaDD

    Figura 5.1. Arquitectura ClienteKervidor de la Comunicación Empleada en la Herramienta.

  • Capitulo 5 Diseño de la Herramienra QBE

    5.1.1. Proceso de Comunicación entre el Cliente y el Servidor de Bases de Datos

    Para la conexión de la interfaz con el servidor de bases de datos SiMBaDD [23] fue necesario implementar un programa que gestione las peticiones de la interfaz (cliente) con el servidor de bases de datos. A este programa se le denomina servidor intermediario.

    El intermediario recibe las solicitudes de información desde un navegador de Web mediante un "socket" y los convierte a un formato que el servidor de bases de datos pueda entender. Los resultados, si es que existe alguno, se devuelven al servidor intermediario, el cual convierte los resultados de manera que el navegador los pueda desplegar. Los resultados convertidos se envían de regreso al navegador de Web y se exhiben al usuario. La Figura 5.2 muestra este proceso.

    Con la finalidad de que la interfaz proporcione información suficiente de las'tablas que se alojan en el servidor, ésta tiene que solicitar información del diccionario de datos (comando SHOW DATABASE). Posteriormente, ya que el usuario haya formulado y generado el código de la consulta, procederá a ejecutar la consulta, para esto la interfaz solicitará la ejecución de la consulta (comando EECUTE QUERY), el factor de conversión de una unidad de medida (comando GET-FC) o la finalización de la consulta (comando FIN-SESIOiV).

    Ihtermediwio de BDDÍ

    Figura 5.2. Proceso de Comunicación Cliente-Intermediario-Servidor de Bases de Datos

    5.2. Arquitectura del Cliente (Herramienta QBE)

    5.2.1. Jerarquía d e Clases.

    Debido a la naturaleza del proyecto, nos propusimos usar un lenguaje que ofreciera facilidades gráficas y conectividad a Internet, por tal motivo se eligió el lenguaje Java. Específicamente para la interfaz gráfica se utilizó el JFC Swing (Java Foundation Classes), el cual es una ampliación del AWT (Abstract Windowing Toolkit, herramienta de ventanas abstractas), y posee un conjunto de bibliotecas de clases de interfaz gráfica de usuario.

    La Figura 5.4 muestra la jerarquía de clases utilizada en la hemmienta (en la Figura 5.3 se presenta la simbología utilizada en los tipos de clases). En la parte superior de la jerarquía está la clase Object; todas las clases' heredan de esta superclase. Object es la clase más general de la jerarquía ya que define el comportamiento heredado por todas las clases

    38

  • Capitulo 5 Diseño de la Herramienra QBE

    en Java. El ambiente Java proporciona un conjunto de clases estándar (llamada biblioteca de clases) que implementan muchos de los comportamientos básicos que se necesitan. Las clases que se implementaron utilizan dicha biblioteca.

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Clase publica abstracta

    Clüse publica Dchnioo en otro porir

    extiende \-

    Local alpaquete implementa ,'

    Interfaz publica Dejinida en otra parte

    Interfaz I Local ai paquete Figura 5.3. Simbología de la Representación de Tipos de Clases

    A continuación se detallará cada una de las clases involucradas en la jerarquía de clases de la interfaz gráfica.

    39

  • Diseño de la Herramienta QBE Capiiulo j

    Java.lang

    Component Java.awt

    Container Javaawi Javñawt

    Javñapplet Javax.swing

    JApplet Javax.swing

    I Panel 1 Javaxswing

    I 1 QBEApplet Clase publica

    VentanaDiseio .-? Local al paquete

    , !

    Clase pública definida

    PoneTablas Loca1 al paquete

    Clase pública definida e" olra Darle

    Clase pública definida enotra pane

    Local al paquete

    Ayuda' Clase pGblica definida

    en OUB pane

    Fin S e s i o n Clase pUblica definida

    en otra pane

    visualizaInfocol~as 1 Local al paquete t Definecriterio Local al paquete

    Local al paquete

    Local al paquete

    MueshaMensajrs Local al paquete

    Local al paquete

    Local al paquete

    IniciaiizaConsulta Local al paquete

    MueshaMensajeAdvertencia Local al paquete

    1 ComboListener Local al paquete

    Figura 5.4. Jerarquia de Clases de ¡a Interfaz Gráfica de la Herramienta QBE

  • Capitulo j Diseño de la Herramienta QBE

    5.2.1.1. Clase QBE.

    F o d c c h DefaultC

    ValDefaultC

    Figura 5 5 Métodos de la Clase QBE

    expresada la columna. Presenta el formato de fecha de la columna. Indica 1 si la columna tiene definido un valor por omisión. O de otra manera. Indica 1 si la columna acepta un valor por omisión

    Arreglo de la clase Object Arreglo delaclaseObject

    Arreglo de la clase Object

    La clase QBE es la clase base o principal en la que se definen y usan todas las variables globales, objetos a utilizar (ver Tabla 5.1 y 5.2), métodos (Ver Figura 5.5) y subclases. Los objetos definidos en la Tabla S. 1 se utilizan para almacenar el esquema del diccionario de datos, los cuales serán utilizados en el desarrollo del diseño de la consulta.

    GuardaTabla

    Nombre del objeto 1 . Tipo de clase Descripción DatosDic Arreglo de la clase String Proporciona los datos que debe contener el

    Arreglo de la clase Suing Almacena las tablas que son seleccionadas por el usuario, para realizar consultas sobre ellas.

    ~ la columna. rnl11mn2

    1 iguai a nulo. I Contiene el valor por omisión para la columna. en DefisNull I Arreglo de la clase Object

    I I I caso de que la columna tenga definido un valor por I I I omisión v ese va~or no sea el valor nulo -1

    Enteros , Decimdies

    I Arreglo de 1.1 clase Object 1 Arreglo de la clase Object

    I Indica la longitud de ld columna I Indica el número de dccinialcs cuando el tipo de dato - I es numérico. 1 Indica 1 si la columna acepta valores NULOS. O de NuloC I Arreglo de la clase Object

  • Capítulo 5 Diseño de la Herramienta QBE

    Nombre del objeto NombreTabla

    Nombrecampo

    TextPaneMosm

    COnfrmaMOsrrar

    Los vectores que se muestran en la Tabla 5.2 se utilizan para guardar el diseño de la consulta.

    Tipo de clase Descripción Vector

    Vector

    Vector

    Vector

    Vector utilizado para guardar el nombre de la tabla en la cuadncnla de la consulta. Vector utilizado para guardar el nombre del campo en la cuadrícula de la consulta. Vector utilizado en la opción "Mostrar", es utilizado para guardar la imagen. Vector utilizado en la opción "Mostrar", determina si la

    FechaFormato

    UnidadConversion

    I 1 columna se considerará en la consulta. TextPaneTipoPropiedad 1 Vector 1 Vector utilizado en la oución "Prooiedades". almacena un

    ejemplar de la clase JTekField. Vector utilizado en la opción "Propiedades"; si indica 1, la propiedad formato fecha está asignada. Vector utilizado en la opción "Propiedades". si'indica 1 entonces la propiedad unidad de conversión está

    Vector

    Vector

    ElementoFuncion, ElementoUC. ElementoUCA. ElementoFecha

    I I asignada. FuncionCQL I Vector I Vector utilizado en la opción "Propiedades". Cuando el

    valor es igual a uno propiedad función SQL está asignada En estos vectores se guardan (en cadena de caracteres) las propiedades seleccionadas por el usuario.

    Vector

    CondicionAND

    TipoCondicion

    campo.

    definida por el usuario. Vector Vector utilizado para almacenar la condición AND

    Vector Este vector se utiliza facilitar el oroceso inverso de

    CondicionOR VectorFC

    VectorColumnaUC

    la formulación de la condición. Vector Vector utilizado para almacenar la condición OR. Vector Vector donde se almacena el factor de conversión,

    durante la generación de código en lenguaje SQL. Vector Vector que w d a el nombre de la columna que tiene una

    '

    VectorColumnaFF

    VectorFormatoACambiar

    propiedad de unidad de conversión asignada: después de generar el código en SQL. Vector que guarda el nombre de la columna que va a sufrir un cambio de formato, después de generar el código en SQL. Vector que almacena el formato de fecha al que se va a cambiar el campo, durante la generación del código de la consulta en SQL.

    Vector

    Vector

  • Diseño de la Herramienta QBE Capitulo 5

    TdPaneMostrur, ConfirmaMomar

    Celda o C O h l M

    NombreTabla

    Vector ..,,

    CondicionOR

    CondicionAND, TipoCondicion

    TdPuneTipoPropieda4 FechaFormato, UnidadConversion, FuncionSQL,

    ElementoFuncion, Elemento UC, Elemento UCA, ElementoFecha, TipoDaioCampo, UniMedCampo,

    FormFech Campo

    Figura 5.6. Representación de Vectores en la Cuadrícula del Diseño de la Consulta

    El algoritmo principal de esta clase es el siguiente.

    Inicio Registro del receptor del evento que cierra o finaliza la aplicación. Creación de la ventana principal mediante un ejemplar de la clase Frame, en el que se incorporarán las restantes ventanas. Creación de un ejemplar de la clase QBE. Obtención de la dirección IP de la máquina cliente que ejecuta la interfaz QBE. Despliegue de la ventana principal

    Fin

    La clase QBE tiene implementados los dos constructores siguientes:

    QBEO. Retorna el mismo objeto

    QBE(java applet.Applet anApplet) Muestra un ejemplar de la clase JDeskfopPane, el cual es una subclase de Layeredpane y tiene la ventaja de incorporar multiples ventanas internas, y la barra de menú. El algoritmo de este constructor es el siguiente:

    43

  • Capíruio j Diseño de la Herramienia QBE

    Inicio Creación.de un ejemplar de la clase JDesktopPane. Adición del componente anterior al contenido de la ventana principal Adición de la barra de menú.

    Fin

    Los métodos implementados en esta clase son los siguientes:

    0 CreaMenuBarO. Se construye la barra de menú principal de la aplicación. Dentro de este método se hacen ejemplares de las clases ExtraccionDD, PoneTablas,

    O Loadhagelcon(). Método utilizado para cargar las imágenes en caso de que sea un apliquete