CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO ... - …

120
S.E.P. S. E. I. T. D. G. I. T. CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO Cenidet Formateador de Informes Web para un Sistema Manejador de Bases de Datos Distribuidas TESIS PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS EN CIENCIAS COMPUTACIONALES PRESENTA: BERNARDINO URlBE DOMINGUEZ CUERNAVACA, MORELOS. ENERO 2001. - - 0O-Q855

Transcript of CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO ... - …

CENTRO NACIONAL DE INVESTIGACION Y DESARROLLO TECNOLOGICO
Cenidet
Formateador de Informes Web para un Sistema Manejador de Bases de Datos Distribuidas
T E S I S
PARA OBTENER EL GRADO DE MAESTRO EN CIENCIAS
EN CIENCIAS COMPUTACIONALES
$0 Centro Nacional de Investigación y Desarrollo Tecnológico
FORMA C3 REVISION DE TESIS
Cuernavaca, . . Morelos a 24 de Noviembre de 2000
Dr. Raúl Pinto Elías 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 revisibn académica la tesis denominada: Formateador de Informes Web para un Sistema Manejador de Bases de Datos Distribuidas, realizada por el C. Bernardino Uribe Dominguez, 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
/ Dr. Rodolfo !&hazos Rangel
C.C.P. Dr. Javier Ortiz HernándezíJefe del Departamento de Ciencias Cornputacionalec
cenidet INTERIOR INTERNADO PALMIRA S/N, CUERNAVACA, MOR. M&lCO APARTADO POSTAL 5164 CP 62050. CUERNAVACA. TELS. (73112 2314.12 7613.18 7741,FAX(73) 12 2434 EMAIL 0rtizcEacenidet.edu.mx
A mi Dios, por brindarme la dicha de vivir, para contemplar y disfmtar de las cosas bellas de este mundo al lado de mis seres queridos ...
A mi Madre, que aunque no esta cohmigo fisicamente, siempre esta y estará conmigo en mi mente y en mi corazón ... y sé que donde quiera que estés, me cuidas y me proteges como siempre ....
A mi hermanita Jacke, por ser la inspiración y el motivo de mi existir para seguir luchando y salir adelante ...
A mi Padre y Hermanos, por creer y confiar en mi ...
A mi asesor el Dr. Rodolfo .A. Pazos Rángel, por compartir conmigo sus conocimientos, experiencias, y enseñanzas. Por los consejos y la confianza que deposito en mi ... espero no haberlo defraudado.
En especial a mi mejor Amigo y Compañero Juan Carlos Rojas Pérez, por haber compartido conmigo momentos de lucha, sacrificio, dedicación y alegrías durante nuestra estancia en el Cenidet. Y de quién he tenido la oportunidad de aprender muchas cosas, y a quien deseo todo el éxito del mundo.
A todos ellos ... Mil Gracias, por compartir conmigo la realización de uno más de mis sueños, anhelos, y esperanzas ...
Capitulo 1 Introducción
1.1. Motivación 1.2. Objetivo 1.3. Beneficios 1.4. Estado del Arte y Herramientas Comerciales 1.4.1. Generador Automático de Código para un Sistema de Información Distribuido a
Partir del Esquema de la Base de Datos 1.4.2. Herramienta Computacional que Permite Diseñar Visualmente Informes y Generar
de Manera Automática el Código Fuente para Producir el Informe Diseñado para un Sistema Manejador de Bases de Datos Distribuidas
1.4.3. Report Writer Xbase para Windows 95/NT versión 8.0 1.4.4. Crystal Reports versión 7.0 1.4.5. Oracle Reports versión 6.0 1.4.6. Web Viewer ActiveX Control para Windows versión 4.0 1.4.7. Xbase-On-The-Web versión 2.0 1.4.8. lmpromptu Web Reports versión 5.0 1.5. Justificación del Proyecto 1.6. Alcances y Limitaciones 1.7. Organización del Documento
Capitulo 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.1. Petición de Dirección URL del Visualizador de Web 2.2.3.2. Respuesta del Scrvidor 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 través de Internet 2.3.1.1. El mecanismo CGI 2.3.1.2. El modelo API 2.3.1.3. El mecanismo JDBC de Java
5
10 11 13
15 16 16 17 17 18 18 18 19 19 21 21 22 24 25
Capitulo 3 Análisis y Solución del Problema
3.1. Planteamiento General del Problema 3.2. Diseño General Propuesto 3.2.1. Editor Visual de Informes Web 3.2.2. Servidor de Servicetes 3.2.2.1. Proceso de Operación del Servidor de Servicetes
Capitulo 4 Descripción del Sistema
4.1. Descripción del Editor Visual 4.1.1. Propiedades Generales del Informe 4.1.2. Objeto tipo Texto 4.1.3. Objeto tipo Enlace 4.1.4. Objeto tipo Imagen 4.1.5. Objeto tipo Separador 4.1.6. Objeto tipo Fecha 4.1.7. Objeto tipo Consulta 4.2. Descripción del Servidor de Servicetes
Capitulo 5 Desarrollo de la Herramienta
5.1. Diseño General 5.2. Arquitectura del Editor Visual 5.2.1. Clase FWeb 5.2.2. Clase Ventínicio 5.2.3. Clase Cuadriculas 5.2.4. Clase CampoTexto 5.2.5. Clase CampoEnlace 5.2.6. Clase Campoimagen 5.2.7. Clase CanipoSeparador 5.2.8. Clase CaiiipoFecha 5.2.9. Clase CanipoQuerySQL 5.2.10. Clase DcscripcionEtiquetas 5.2.11. Clase MiTabla 5.2.12. Clase PropiedadesTabla 5.2.13. Clase PropiedadesColumna 5.2.14. Clase GcneraCodigoIntermedio 5.2.15. Clase GcneraForniulario 5.2.16. Clase GciiCodigo
28 28
41. 43 44 50
54 54 5 1 59 60 61 62 63 63 64 64 65 66 68 68 69 69 69
5.2.17. Clase GenCodigoJava 5.2.18. Clase GenFileConfig 5.2.19. Clase Estructuras 5.2.20. Clase EstructuraTexto 5.2.21. Clase EstructuraImagen 5.2.22. Clase EstructuraEnlace 5.2.23. Clase EstructuraSeparador 5.2.24. Clase EstructuraFecha 5.2.25. Clase EstructuraQuerySQL 5.2.26. Clase EstructuraPropiedades 5.2.27. Clase EstructuraPropiedadesTabla 5.2.28. Clase EstructuraPropiedadesColumna
Capítulo 6 Desarrollo del Servidor de Servicetes
6.1. Impiementación del Servidor de Servicetes 6.1.1. Clase Serve 6.1.2. Clase Servestub 6.1.3. Clase Serveconnection 6.1.4. Clase GeneraCodigoHTML
Capitulo 7 Pruebas
7.1. Objetivo de las Pruebas 7.2. Descripción del Ambiente de Pruebas 7.3. Esquemas de las Bases de Datos de Prueba 7.4. Casos de Prueba
Capitulo 8 Comentarios Finales
8.1. Contribución del Proyecto 8.2. Resultados Obtenidos 8.3. Liiiiitaciones del Trabajo 8.4. Mejoras y Ampliaciones a este Trabajo 8.5. Areas de Aplicación
12 15 16 16 11 19 80 81 81 83 84 85
88 88 89 90 91
95 95 96 99
Capitulo 1
Introducción
Este capítulo describe el objetivo de la tesis, la motivación para su desarrollo, los beneficios esperados, el estado del arte de las herramientas generadoras de informes Web, descripción del problema, alcances y limitaciones, así como la manera en que está organizado el documento.
I
1. Introducción
Internet fue creado a partir de un proyecto del Departamento de Defensa de los Estados Unidos llamado Red del Proyecto de Investigación Avanzada del Departamento de Defensa (DARPANET por las siglas de Defense Advanced Research Project Network) iniciado en ei año de 1969 y cuyo propósito principal era la investigación, desarrollo e implementación de protocolos de comunicación para Redes de Area Amplia (WAN por las siglas de Wide Area Network).
Estas investigaciones dieron como resultado el Protocolo de Comunicaciones TCPAP (Trasmission Control Protocol/Internet Protocol) un software de comunicaciones muy sólido y robusto en Internet.
Durante el desarrollo de TCP/IP se incrementó notablemente el número de redes locales de agencias gubernamentales y de universidades que participaban en el proyecto, dando origen a la red de redes más grande del mundo. Las actividades militares se separaron y se permitió el acceso a la red a todo aquél que lo requería sin importar de qué país provenía la solicitud, siempre y cuando fuera para fines académicos o de investigación y que pagara sus propios gastos de conexión. Los usuarios pronto descubrieron que la información que se encontraba en la red era muy Útil y si cada institución que se conectaba aportaba algo crecería más el acervo de información existente [I].
Internet puede ser definido como la red de redes de cobertura mundial que están interconectadas entre sí usando el Protocolo de Internet (IP por las siglas de Internet Protocol) y otros protocolos similares. El protocolo IP es el más importante de los protocolos sobre los cuales esta basado Internet, ya que permite a un paquete viajar a través de múltiples redes hasta alcanzar su destino [2].
No existe ninguna autoridad central que controle el funcionamiento de la red, aunque existen grupos y organizaciones que se dedican a organizar de alguna manera el tráfico y crecimiento de Internet.
Existen tres grupos que tienen un papel muy importante en la organización de Internet, el Grupo de Arquitectura de Internet (IAB por las siglas de Internet Architecture Board) que es el que controla los estándares de comunicaciones entre las diferentes plataformas para que puedan funcionar las máquinas y sistemas operativos de diferentes fabricantes sin ningún problema. Este grupo es responsable de cómo se asignan las direcciones y otros recursos de la red. El Centro de Información de Red (NIC por las siglas de Network Information Center) es el grupo encargado de asignar las direcciones y dominios a los solicitantes que desean conectarse a Internet. Uno de los grupos mas importante es la Fuerza de Trabajo de Internet (IETF por las siglas de Internet Task Force), en el cual los usuarios de Internet pueden expresar sus opiniones sobre cómo se deben implementar soluciones a los problemas operacionales que van surgiendo y cómo deben cooperar los usuarios para lograrlo [i].
El enorme crecimiento de Internet comenzó en 1994 cuando compañías con propósitos comerciales comenzaron a conectarse a la red, iniciando una nueva etapa de crecimiento.
2
Introduccibn Capítulo 1
Internet ofrece una gran variedad de servicios a los que se puede tener acceso con tan sólo contar con una cuenta de acceso a Internet. Estos servicios consisten en métodos de comunicación y entretenimiento como los siguientes: . . . .
World Wide Web (WWW). Correo Electrónico (e-mail). Transferencia de Archivos (FTP). Gnipos de Discusión (NEWSGROUPS). Acceso Remoto a otras Computadoras (TELNET).
World Wide Web
Antes del Web, en las universidades los investigadores utilizaban las aplicaciones de Internet como el correo electrónico y Telnet para acceder a compuiadoras remotas, directonos para el almacenamiento de archivos que se pueden compartir y buscar mediante Gopher, Archi y Veronica, o Finger para localizar y conocer datos sobre un usuario conectado a la red; todo esto a través de la clásica pantalla negra de una terminal Unix o una PC emulando la terminal con un programa de comunicaciones en modo texto, mediante el protocolo TCPDP. El problema se presentaba cuando los trabajos o investigaciones contenían archivos de gráficos, texto o video y un colega deseaba consultarlos o trasladarlo hasta su computadora [3].
El World Wide Web es un sistema distribuidor de inforntación basado en hipertexto e hipermedia. Fue desarrollado en 1990 por un grupo de investigadores bajo la dirección de Tim Berners-Lee en el Laboratorio Europeo de Física en Particulas, ubicado en Suiza. Ellos definieron los conceptos de Protocolo de Transferencia para Hipertexto (HTTP por las siglas de HyperText Transfer Protocol), Lenguaje de Marcado de Hipertexto (HTML por las siglas de Hypertext Markup Language) y Localizador de Recursos Uniformes (URL por las siglas de Uniform Resource Locator), que son la trilogía base para construir, localizar y acceder a las páginas del Web en cualquier nodo o red conectados a Internet.
En octubre de 1990 se define el nombre del nuevo servicio de información compartida, quedando como se conoce ahora: World Wide Web. Pronto comenzaron los primeros desarrollos de un visualizadoríeditor que permite crear ligas de hipertexto en línea. La primera demostración pública del World Wide Web se realiza en diciembre de 1991 en el evento Hypertext' 91 en San Antonio, EUA, con un navegador de Web instalado en una IBM con sistema VM/CMS. Para 1992 surge uno de los primeros visualizadores del Web llamado Viola, aunque todavía en modo texto.
En el Centro Nacional de Aplicaciones de Supercómputo (NCSA por las siglas de National Center for Supercomputing Applications) de la Universidad de IIIinois, Marc Andreessen, junto con el grupo de desarrollo de la Universidad, trabajó a principios de 1993 en un proyecto cuyo propósito era leer las páginas del Web que estaban en formato HTML, pero no en modo texto, sino en forma gráfica, utilizando las capacidades de hipertexto e hipermedia. El producto de estas investigaciones fue uno de los navegadores del Web más conocido hasta ahora: Mosaic, cimiento de los nuevos visualizadores como Netsrape, Explorer, Spry, y muchos otros.
3
Capítulo 1 introdueeibn
Por las siglas de este centro de investigacidn, se codoció a esta primera versión de abril de 1993 como NCSA Mosaic, que sigue evolucionando a'nuevas versiones [3].
Tan rápido surgió la necesidad de compartir información en forma de hipertexto e hipermedia, que para el mes de octubre de 1993 ya existian 200 servidores del World Wide Web utilizando el protocolo HTTP. En enero de 1994 la compañía Spry anuncia el paquete de navegación en el Web denominado Internet in a box, que proporcionaría a cualquier usuario de computadoras caseras, un paquete de herramientas para navegar en la red. En marzo del mismo año, Marc Andreessen y varios colegas forman la compañía Mosaic Communications Corporation que poco tiempo después se convertiría en la actual, Netscape.
1.1. Motivación
Las páginas HTML del WWW 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 tecnologías que permitan recoger información proveniente de clientes y de bases de datos (BDs), utilizando programas que funcionan en Internet e Intranet [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 151.
Actualmente han surgido herramientas inteligentes para desarrollo de aplicaciones Web, que permiten a los administradores diseñar informes de manera visual, que posteriormente son presentados a los usuarios a través de visualizadores, los cuales actualizan dinámicamente la información de las BDs. Dichas herramientas inteligentes, han venido a revolucionar el Web, para convertirla en un medio de información interactivo y comercial, que actualiza la información dinámicamente, en lugar de un simple medio de información estática.
1.2. Objetivo
El objetivo general de este trabajo es el de disefiar e implementar una herramienta visual que permita el diseño de informes Web y genere de manera automática el código fuente para producir el informe diseñado.
Entre los objetivos específicos que se persiguen con este trabajo son los siguientes:
a) Proporcionar al administrador del sistema una herramienta visual que le permita generar informes Web de una manera fácil y rápida.
b) Generar código en Java con instrucciones de SQL intercalado.
c) Que el código CGI generado pueda ser reutilizable para otras aplicaciones.
4
1.3. Beneficios
Los beneficios principales que se obtiene con el desarrollo de este trabajo de tesis son los siguientes:
e
Facilitar el desarrollo de informes Web al administrador del sistema al contar con una herramienta visual para el diseño de dichos informes. El administrador del sistema requiere menos esfuerzo y menos conocimientos para el diseño de informes, dando como resultado reducción en tiempos y costos. El diseño de un informe puede almacenarse y recuperarse para posibles modificaciones futuras, lo cual se traduce en menor esfuerzo para su mantenimiento. El usuario accede a información de bases de datos por medio de enlaces o vínculos a través de visualizadores. El código fuente generado en Java incluye comentarios, lo cual ayuda a la legibilidad del mismo para poder ser modificado para agregar características al informe Web no incluidas en la herramienta visual. El formateador de informes Web puede interactuar con cualquier manejador que cuente con el controlador SDBC. El formateador de informes Web es multiplataforma; se puede ejecutar independientemente de las características de hardware y software de la máquina.
1.4. Estado del Arte y Herramientas Comerciales
El objetivo de esta sección es presentar algunos de los formateadores de informes comerciales ampliamente usados, haciendo notar las características principales de cada uno de ellos, así como sus diferencias con el trabajo de tesis presentado en este documento. Además, se presentan proyectos de investigación que fueron desarrollados por diversas universidades y centros de investigación nacionales.
En cuanto al ámbito nacional, los trabajos de tesis de maestría que se encontraron relacionados con el trabajo de tesis propuesto son los siguientes:
1.4.1. Generador Automático de Código para un Sistema de Información Distribuido a Partir del Esquema de la Base de Datos
Esta tesis genera código para procesos de altas, bajas, cambios, consultas, e informes sobre una base de datos [22]. Respecto al generador de informes se especificaron las siguientes características: I ) el informe es sobrc una sola tabla; 2) no es visual; 3 ) únicamente permite disefiar informes básicos; y 4) genera código en Pascal para Windows.
5
Capítulo 1 . Introducción
Las diferencias con el trabajo de tesis presentado son las siguientes: 1) permite generar informes sobre varias tablas; 2) es visual; 3) perme diseñar una variedad de informes Web; y 4) genera el código concerniente al diseño del informe Web en el lenguaje de programación Java.
1.4.2. Desarrollo de una Herramienta Cornputacional que Permite Diseñar Visualmente Informes y Generar de Manera Automática el Código Fuente para Producir el Informe Diseñado para un Sistema Manejador de Bases de Datos Distribuidas
La herramienta en esta tesis permite generar informes de una manera fácil y rápida, dando los resultados por impresora [23]. La herramienta tiene las siguientes características: 1) esta implementada en Pascal para Windows con instrucciones de SQL intercaladas; 2) los informes generados pueden involucrar una o varias tablas de la base de datos; 3) la selección de la tabla o tablas a partir de las cuales se genera el informe, es a través de una consulta en SQL; 4) se tiene la posibilidad de agrupar la información en el informe mediante la especificación de un campo o varios campos de agrupación; 5) el diseño de un informe puede almacenarse y recuperarse para posibles modificaciones; 6) genera código asociado con el diseño del informe en Pascal para Windows 3.1 y Windows 95; y 7) el código generado está autodocumentado para su fácil comprensión por parte de los programadores.
Las diferencias con el trabajo de tesis presentado son las siguientes: 1) la implementación de la herramienta es en el lenguaje de programación Java, y al ser éste un lenguaje multiplataforma, la herramienta puede ejecutarse en diferentes plataformas independientemente de hardware y software; 2) genera en forma automática informes Web; y 3) puede interactuar con cualquier manejador que cuente con el controlador JDBC.
Entre las herramientas comerciales generadoras de informes Web más populares, se tienen las siguientes:
1.4.3. Report Writer Xbase para Windows 95/NT versión 8.0: Este generador de informes Web fue desarrollado por Microsoft [24,25, 2.61.
La herramienta tiene las siguientes características:
o
o
o .
Se ejecuta en plataforma Windows 3.1,95, y NT. Diseño de informes en forma visual. Permite especificar consultas involucrando hasta 1 O0 tablas. Pcrmite especificar el orden de los resultados de las consultas (ascendente o descendente). Los resultados de las consultas pueden ser desplegados con diferentes combinaciones de fuentes de letra, estilo, tamaño, y colores. Compatible con bases de datos dBASE 111, HI+, IV, V, Visual Dbase, FOXBASE+, FoxPro, Visual FoxPro, Clipper, Visual Objects, Alpha Four, y Alpha Five. Objetos soportados: textos, campos de BD, cajas de dialogo, líneas, y gráficos. Soporta gráficos con extensiones GIF, JPEG, y JPG.
G
Introducción Capítulo 1
El código que genera no es accesible para el usuario. 0 Permite realizar enlaces entre documentos Web.
Actualiza la información en forma dinámica.
1.4.4. Crystal Reports versión 7.0: Este generador de informes Web fue desarrollado por crystai (a Seagate Software Company) [27,28,29,30,31,32,331.
La herramienta tiene las siguientes Características:
0
Se ejecuta en plataforma Windows 95,98, y NT. Diseño de informes en forma visual. Cuenta con un editor de fórmulas con 160 funciones y operadores para manipular datos. Permite especificar consultas involucrando hasta 1 O0 tablas. Compatible con bases de datos dBASE, iBM DB2/2, INFORMIX, Microsoft Access, Microsoft Excel, Microsoft SQL Server, Oracle, Paradox, Sybase SQL Server, y Microsoft Visual FoxPro.. Objetos soportados: textos, campos de BD, cajas de diálogo, líneas, gráficos, y campos de fórmulas. Soporta gráficos con extensiones BMP, BLOB, JPEG, PCX, TIF, y TGA. El código que genera no es accesible para el usuario. Permite realizar enlaces entre documentos Web. Actualiza la información en forma dinámica.
1.4.5. Oracle Reports versión 6.0: Este generador de informes Web fue desarrollado por Oracle Corporation [34, 351.
La herramienta tiene las siguientes características:
Se ejecuta en plataforma Windows 95, 98, y Unix. Diseño de informes en forma visual. Permite especificar consultas involucrando cualquier número de tablas. Objetos soportados: textos, campos de BD, cajas de diálogo, líneas, y gráficos Soporta gráficos con extensiones BMP, GIF, JPEG, PCX, y TGA. El código que genera no es accesible para el usuario. Permite realizar enlaces entre documentos Web. Actualiza la información en forma dinámica.
1.4.6. Web Viewer ActivcX Control para Windows versión 4.0: Este generador de informes Web fuc desarrollado por Distinct Corporation [36, 371.
La Iicrraiiiicnta ticiie las siguientes características:
7
Introducción Capitulo 1
Se ejecuta en plataforma Windows 95,98, y NT. Diseño de informes en forma visual. Permite especificar consultas involucrando cualquier número de tablas. Compatible con bases de datos MS Visual Basic, MS VC++, MS VJtt-, Borland Delphi, Sybase PowerBuilder, y Sybase Power++. Objetos soportados: textos, campos de BD, cajas de diálogo, líneas, y @ficos. Soporta gráficos con extensiones GIF, JPEG, y JPG. El código que genera no es accesible para el usuario. Permite realizar enlaces entre documentos Web. Actualiza la información en forma dinámica.
1.4.7. Xbase-On-The-Web versión 2.0: Este generador de informes Web fue desarrollado por Grey Matters [ 3 81.
La herramienta tiene las siguientes características:
Se ejecuta en plataforma Windows 95 y 98. Diseño de informes en forma visual. Permite especificar consultas involucrando cualquier número de tablas. Compatible con bases de datos Clipper, FoxPro y Delphi. Objetos soportados: textos, campos de BD, y gráficos. Soporta gráficos con extensiones GIF, JPEG, y JPG. El código que genera no es accesible para el usuario. Permite realizar enlaces entre documentos Web. Actualiza la información en forma dinámica.
1.4.8. Impromptu Web Reports versión 5.0: Este generador de informes Web fue desarrollado por Cognos Ztnpronzptu [39,40,41].
La herramienta tiene las siguientes características:
Se ejecuta en plataforma Windows 95, 98, NT, y Unix (Sun Solaris, HP-UX, e IBM AIX). Diseiio de informes en fonm visual. Peiniite especificar consultas involucrando cualquier número de tablas. Compatible con bases de datos Borland InterBase, OpenIngres, dBASE, Centura SQLBase, IBM DB2, Informix, Microsoft SQL Server, Oracle, Sybase SQL Server and Adaptive Server, Oracle Transparent Gatcway, Sybase NetGateway, MDI DB2 Gateway, OmniSQL Gateway, NCR Teradata, y Red Brick. Objetos soportados: textos, campos de BD, y gráficos. Soporta gráficos con extensiones GIF, JPEG, y JPG. El código que genera no es accesible para el usuario.
Introducción Capítulo 1
.-
anteriormente y el generador visual de informes Web presentado en este trabajo.
En la Tabla 1 se muestra una comparación de las herramientas comerciales mencionadas
Crysial Oracle Web Viewer Xbase-On- Impromptu
7. O Ver. 6.0 Ver. 4.0 Ver. 2.0 Reports Web Writer Report Ver. Reports A c t i v a The- Web
8. O
Código comentado
Windows 3.1, Windows 95 Windows 95, Windows 95 Windows 95 Windows 95, NT, y Unix (Sun Solaris, HP-UX, y IBM AIX)
Visual Visual . Visual Visual Visual Visual
95. yNT Y NT Unix Y NT
Hasta 100 Hasta 100 Limitado por Limitado por Limitado por Limitado po el hardware el hardware el hardware el hardware
8 ilimitado Ilimitado Ilimitado Ilimitado Ilimitado
Texto, Texto, Texto. Texto, Texto, Texto, campos de campos de campos de campos de campos de campos de B.D., líneas, B.D., lineas, B.D., lineas, B.D.,lineas, B.D.,y B.D., y y gráficos y gráficos y gráficos y gráficos gráficos gráficos
No se puede No se puede No se puede No se puede No se puede No se puedf ver el código ver el código ver el código vcr el código ver el código ver el códig,
fuente fuente fuente fuente fuente fuente
No se puede No se puede No se puede No se puede No se puede No se puedt ver el codigo vcr el código ver el código ver el código ver el código ver el códig
fuente fuente fuente fuente fuente fuente
Eiilaces c ~ r e si si si si si si
Actualirocióri si si si si Si si
documeiitos
dhántica
Visual
si
Si
si
- Tabla 1. Tabla Comparativa de los Generadores de Informes Comerciales y el Generador Visual de Informes Web.
9
Introducción Capítulo 1
El problema que presentan estas herramientas comerciales es que el código que generan asociado al informe Web no es accesible para su modificación. El código se necesita en los siguientes casos: I) cuando se requiere que los informes diseñados pasen a formar parte del módulo de informes de una aplicación grande; o 2) para que el código generado pueda ser modificado para aquellos informes Web que, debido a requerimientos especiales -no soportados por la herramienta- únicamente pudieran ser generados parcialmente, y de esta manera no limitar al usuario en diseñar sólo informes Web soportados por las herramientas.
La principal diferencia con el trabajo de tesis presentado es que éste sí genera el código fuente accesible al usuario asociado con el informe Web, en el lenguaje de programación Java; además, de que este código fuente está autodocumentado para ayudar a la legibilidad del mismo para poder ser modificado, en los casos en que se requiera agregar características al informe Web no incluidas en la herramienta visual.
1.5. Justificación del Proyecto
Actualmente el Web es una de las herramientas más sofisticadas y usadas por personas de diferentes partes del mundo, debido principalmente a que de una manera sencilla se puede acceder a información que se encuentra en máquinas distribuidas a nivel mundial, y a que tal distribución es totalmente transparente para los usuarios. La información que se encuentra disponible en el Web está interrelacionada mediante el mecanismo de hipertexto; es decir, en fonna no lineal, ya que mediante el hipertexto s e puede acceder o navegar de una página Web a otra, y así sucesivamente ,de acuerdo a la información de interés para el usuario.
Por otro lado, las necesidades de información por parte de empresas e instituciones han requerido de sistemas manejadores de bases de datos para administrar grandes volúmenes de información. Debido a que mucha de la información está geográficamente distribuida, han surgido las bases de datos distribuidas (BDDs). Como resultado de este desarrollo en las bases de datos (BDs), las empresas e instituciones han diseñado páginas Web que les permiten mostrar su información a nivel mundial a través de Internet.
Es importante hacer notar que existen dos tipos de usuarios en esta área de desarrollo: 1) los adininistradores del sistema, quienes se encargan del diseño de las páginas Web; y 2) los zuilariosjinaíes, los cuales son beneficiados al hacer uso de la información que proporciona el sistema.
La información de interés que presentan dichas organizaciones, normalmente se encuentra en BDs. Cada vez que la BD es actualizada, los administradores tienen la tarea de actualizar en forma manual la inforniación que se muestra en el Web, de manera que sea congruente y actual. La actualización en forma manual da como resultado tiempos largos y costos elevados en el proceso. Además, es importante mencionar que las personas (administradores) que tienen la tarea de disefiar y actualizar la información presentada en las páginas Web, deben tener conocimientos y experiencia en el lenguaje HTML.
IO
Introducción ....~ ~
Capítulo 1
L~~ páginas HTML del WWW ,se han extendido a través de Internet, Y ha surgido la necesidad de dotar de mecanismos de programación a ¡as páginas HTML con el fin de consWir dinamismo e interacción entre 10s usuarios y los servidores de Web. De esta manera, el desarrollo de aplicaciones Web profesionales involucra ia utilización de tecnologías que permitan recoger información proveniente de clientes y de BDs, utilizando programas que fu~cionan en Internet e Intranet [4, 5, 6,7,8,9, 10, 11, 12, 13, 14, 151.
Actualmente han surgido herramientas inteligentes para desarrollo de aplicaciones Web, que permiten a 10s administradores diseñar informes de manera Visual, que posteriormente son presentados a los usuarios a través de visualizadores. Dichas herramientas inteligentes, han venido a revolucionar el Web, para convertirlo en un medio de información interactive y comercial, que actualiza la información, dinámicamente, en lugar de un simple medio de información estática.
Un problema que presentan las herramientas comerciales es que el código que generan asociado al informe Web no es accesible para su modificación. El código es necesario en los siguientes casos: 1) cuando se requiere que los informes diseñados pasen a formar parte del módulo de informes de una aplicación más grande; o 2) para que el código generado pueda ser modificado para aquellos casos en que, debido a requerimientos especiales -no soportados por la herramienta- Únicamente pudieran ser generados parcialmente, y de esta manera no limitar al usuario en diseñar sólo informes Web soportados por las herramientas.
El Propósito de este trabajo es desarrollar una herramienta que permita la constmcción de informes Web, que solucione algunos de los problemas de las herramientas comerciales
antes mencionadas. Algunas de SUS características son las siguientes: es multiplataforma, el código que genera es accesible para su modificación, además de que éste incluye comentarios, lo
a la kibilidad del mismo, Y puede ser modificado para agregar características al infome Web no soportadas por la herramienta visual.
1.6. Alcances y Limitaciones
El alcance de este trabajo de tesis comprendió por un lado la implementación de un editor visual, el cual permite al administrador del sistema diseñar informes Web, y por otro lado adaptar un servidor de servicetes (servlets), el cual permite poner disponibles en el Web los informes Web generados por el editor visual (servicetes) para ser visualizados por los usuarios a traves del Wcb.
El editor visual tiene las siguientes características:
El editor visual tiene disponibles los objetos visuales de texto, imagen, enlace o vínculo, consulta, separador, y fecha.
En el área de trabajo de la herramienta visual se colocan los objetos o elementos visuales con un conjunto de atributos que definen el diseño del informe.
Capítulo 1 Introducción
El editor visual a través del objeto consulta pe'rmite definir consultas en SQL sobre una o varias tablas, Además, permite. definir características individuales para cada una de las columnas resultado . . de las consultas.
El diseño del informe Web puede almacenarse y recuperarse para posibles modificaciones. Se genera código en Java con instrucciones de SQL intercalado asociado al informe Web.
El código fuente generado incluye comentarios, lo cual ayuda a la legibilidad del mismo. Para cada uno de los informes Web diseñados, se genera su, correspondiente formulario con etiquetas HTML. La implementación de la herramienta fue desarrollada en el lenguaje de programación Java. El informe Web es generado al momento de ser solicitado por el usuario Web a través de su formulario HTML, a partir del archivo CGI. El editor cuenta con un sistema de ayuda para guiar los pasos del diseñador,
El servidor de servicetes tiene las siguientes características:
.I
.
-
1.7. Organización del Documento
Este documento se encuentra dividido en ocho capítuios, 10s Cuales Contienen 10 siguiente:
En el Capitulo 2 se hace referencia a los fundamentos relacionados Con las bases de datos en Internet, tales como su arquitectura y componentes de la Web, así como los mecanismos de acceso a los datos.
El Capítulo 3 contiene el planteamiento general del problema, y se muestra un diseño general de la arquitectura de la herramienta. También se presentan los diagramas de módulos de la herramienta, así como la descripción de cada uno de ellos.
En el Capítulo 4 se hace una descripción del sistema completo basado en un ejemplo. Además, se explica el funcionamiento de cada una de las operaciones permitidas por el sistema, así como también todas las consideraciones que deben tomarse en cuenta al diseñar un informe Web.
El Capitulo 5 contiene la jerarquía de clases del editor visual de informes y la descripción de las clases más importantes de la implementación. El Capítulo 6 contiene la jerarquía de clases del servidor de servicetes y la descripción de las clases más importantes en la implementación.
En el Capítulo 7 se muestra la descripción de las pruebas realizadas a la herramienta, el ambiente de pmebas, y un conjunto de casos de prueba con sus respectivos resultados.
Finalmente en el Capítulo 8 se presentan los resultados obtenidos, las limitaciones, y las conclusiones generales del trabajo desarrollado, así como las mejoras al mismo.
13
Capítulo 2 Fundamentos de Bases de Datos en Internet
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 del Web, la arquitcctura genérica de esta tecnología, y sus mecanismos de acceso.
14
2.1. Introducción
corno se mencionó en el Capítulo 1, Internet puede ser definido como la red de redes de cobemra mundial que están interconectadas entre Si usando 'el Protocoio de Internet y Otros
protoco~os similares, ~1 protocoIo IP es el más importante de 10s protocolos sobre los cuales está basado Internet, ya que permite a un paquete viajar a través de múltiples redes hasta alcanzar Su
destino [2] .
Actualmente, Internet se utiliza para un conjunto de propósitos (correo transferencia de archivos, y WWW). El World Wide Web ( w w w 0 simplemente Web) Ofrece
una interfaz gráfica y sencilla para navegar y consultar documentos en Internet.
Dentro del contexto de este documento se va a entender que el World Wide Web es 1'11
sistema de información interrelacionada a través de direcciones, distribuida en nodos y basado en hiperfexto e hipermedia [2 ] .
El hipertexto es un método practico de organizar la información en Internet o cualquier otra información que se desee organizar. El hipertexto es un dato que contiene un vinculo o liga a otro dato [ 3 ] . Y la hipermedia es una combinación de hipertexto y multimedia [2].
La idea en la que se basa el hipertexto es que en lugar de leer un texto siguiendo una estructura rígida y lineal (como un libro), es posible avanzar de un punto a otro fácilmente, obtener más información, regresar al primer punto, brincar hacia otros temas, y desplazarse (navegar) por el texto según los intereses que tenga el usuario en determinado momento [ 3 ] .
El World Wide Web también se define como un conjunto de documentos ligados entre sí y ubicados en Internet. Gracias a 1a:vinculación entre sí de documentos afines, el Web facilita enormemente la localización de información por parte de sus usuarios [ 161.
Para acceder al World Widei'Web se utiliza lo que se llama visualizador. A veces a los visualizadores se les denomina también clientes, ya que obtienen información de algún servidor.
El trabajo de un visualizador es que una vez fijado un apuntador en cierto fragmento de información dentro de Internet llamado URL, debe establecer el acceso a dicho fragmento y realizar determinada tarea de acuerdo con el contenido del apuntador. Para documentos de hipertexto de Web, lo anterior significa la posibilidad de comunicarse con el servidor utilizando el protocolo HTTP. Como el Web también maneja información de senidores del Protocolo de Transferencia de Archivos (FTP por las siglas de File Transfer Protocol). dentro de nuevos sitios Postales de corre0 electrónico y demás tareas semejantes, el visualizador también debe tener la capacidad para comunicarse en el lenguaje de tales herramientas [I 71.
No obstante, lo que con mayor frecuencia ejecuta un visualizador es lo relacionado con los documentos Web. Cada una de las páginas que se cargan en el Web representa un documento, escrito en un lenguaje llamado HTML, que incluye el texto del docurnento, su estmctura, los vinculas hacia otros documentos, imágenes, y otros medios.
Capítulo 2 Fundamentos de Bases de Datos en Internet
La disponibilidad del WWW ha modificado mucho las cosas, inclusive ha evolucionado en tan corto tiempo, pasando de ser una Web simple y de sólo lectúra a una Web más interactiva con el usuario, construyendo páginas Web de manera dinámica y en el momento, por lo que el Web se usa cada vez más en nuevas aplicaciones.
En las páginas dinámicas se deben emplear transacciones u operaciones espontáneas para el usuario, esto requiere que el diálogo s'ea muy simple y natural para usuarios que la mayona de las veces son casuales, sin conocimiento 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 mucha información y tienen un control administrativo sofisticado de la misma [17, 181. 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 mas efectiva de acceder a bases de datos desde cualquier parte del mundo.
2.2. Arquitectura CIientelServidor en la Web
Un servidor de Web es un programa que radica en una máquina conectada a Internel, en espera de que se enlace a él un visualizador de Web y se le solicite, por lo general, un archivo. Una vez que la solicitud le llega, el servidor localiza y envía el archivo [17].
Un servidor de Web también se define como un programa que corre en el sitio de Web y que es responsable de responder a las solicitudes de archivos que hace el visualizador.
Un sitio de Web es un sistema de Internet que contiene una o máspresentaciones Web. Y una presentación Web es un conjunt0.de una o más páginas Web [i8].
Un servidor de Web utiliza el protocolo HTTP para atender las solicitudes de documentos que hacen los visualizadores. Luego, el servidor envía los archivos y las imágenes con los que dichos archivos tengan alguna referencia incorporada. En este proceso se involucra la arquitectura cliente-servidor.
2.2.1. Arquitectura Cliente-Servidor
La tecnología cliente-servidor hace posible distribuir el trabajo entre computadoras [15]. Esencialnieiite, 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 lo 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. Éste a su vez despliega la información al usuario.
Fundamentos de Bases de Datos en Internet Capitulo 2
2.2.2. El Web: Una Arquitectura Distribuida I Desde el punto de vista de desamollo, la arduitectura lógica de una aplicación de w e b es
muy a la del cliente-servidor 0 multicapa. Existen algunas diferencias Esicas; por
ejemplo, una cliente-servidor tradicional tiene ia interfa Cliente ConSrnida a base de
formularios en algún lenguaje de programación de Alto nivel (Como Visuamasic, Delphi, c, etc.)i
mientras que una aplicación de la Web tiene la idterfaz de usuario definida usando el lenguaje HTML, En esta arquitectura, la parte cliente está para acceder y visualizar recursos de.la Web, y de Web el cual administra las solicitudes
por el visualizador de Web utilizado está constituida Por el servidor
y envía los recursos
Las características claves de la
El ambiente de la aplicación es Todas las operaciones e interpretación de programas, y interpreta el contenedor) se ejecutan dentro de un contknedor externo: el visualizador. La arquitectura es inherentemente distribbda y multicapa. La mayor parte de la lógica de negocio se implementa en el servidor, y bonde los componentes de negocio del servidor,
Las conexiones entre cliente y servidor s i intermitentes y se realizan mediante HTTP (el protocolo de transporte utilizado para padar datos entre el servidor y el visualizador). La interfaz de usuario está definida en H ML.
se comunican con un sistema administrador I de bases de datos.
2.2.3. Proceso Cliente-Servidor dentro de la ' j e b I La Web es básicamente un sistema de peticiones y respuestas (cliente-servidor). EI
Programa cliente es un visualizador'.que p e d i t e ver y explorar la infomiación que hay en la www, se muestra en la Figura 2.1. Edisten diversos visualizadores: Mosaic, Microsoft Explorer, Y Netscape. LOS visualizadores de Web solicitan información enviando una dirección urn a un servidor de Web. El servidor de We8 responde devolviendo una página en HTML,
I Visualizador de Web
Servidor
17
Capítulo 2 Fundamentos de Bases de Datos en Internet
2.2.3.1. Petición de Dirección URL del Visualizador de Web
Todas las páginas en Internet tienen una dirección URL Única que las identifica. LOS
visualizadores de Web solicitan una página mediante el envío de una dirección URL a üii 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 especifica de protocoloi 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, 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.
I/
2.2.3.2. Respuesta del Servidor de Web
Un servidor de Web responde a la petición de un visualizador de Web devolviendo una página HTML. La página devuelta puede ser de tres tipos: estática, dinámica, o una lista de directorio.
2.2.3.2.1. Paginas 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 paginas 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 en un vinculo que apunte a una dirección URL. La petición de dirección UFZ se envía al servidor, y éste responde devolviendo la página HTML estática, como se aprecia en la Figura 2.2.
http://sd-cenidet.com.mx
sd-cenidet
A Internet
2.2.3.2.2. Páginas Dinámicas
Las páginas dinámicas se crean, como respuesta a las peticiones de 10s UsUarb. Un visualizador de Web recopila información presentando una página con cuadros de texto, menÚs Y casillas de palomeo 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, que normalmente se genera dinámicamente al momento de recibir los resultados.
La Figura 2.3 muestra cómo un usuario puede enviar una consulta a una aplicación de API de Internet Server (ISAPI) 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.
. I
Internet
Cliente Servidor sd-cenidet.com.mx
Figura 2.3. Ejemplo de Envío de una Consulta a una Aplicación ISAPI.
La Figura 2.4 muestra un usuario que envía un pedido a una base de datos usando un conector de bases de datos en Intemet (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 servidor. Éste envía los datos a la base de datos y acusa el pedido enviando una página HTML.
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 de Web o para un determinado directorio, o se
19
Fundamentos d e Bases de Datos en Internet Capitulo 2
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 10s directorios, se devuelve al usuario una lista de directorio (una versión hipertexto de una lista del visualizador O
del administrador de archivos) en forma de página HTML, como se muestra en la Figura 2.5. Después, el usuario puede ir al archivo apropiado haciendo clic en él dentro de la lista de
http:llsd-cenidet.com.mxlorder.ide Visualizador
Servidor sd-cenidet.corn.rnx
Figura 2.4. Ejemplo de Envio de un Pedido a una Base de Datos Usando
un Conector.
Servidor sd-cenidet.com.nix
I I
2.3. Mecanismos de Acceso a Bases de Datos I 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 visualizador de Web.
Una base de datos accesible en la Web es una base de datos que es accedida mediante otras aplicaciones de la Web, como forhularios 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 Internet
Existen diferentes maneras para acceder a una base de datos desde un visualizador 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 cliente AFT, conector de la base de datos, CGI (Interfaz Común de Compuerta, por las siglas de Common Gateway Interface), productos para servidor de Webbase 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 opción de un servidor de Web de Oracle [ 151.
Ahora bien, el modelo de servir archivos que ofrece el Web se extiende para permitir la interacción con programas externos al servidor de 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 de Web tienen extensiones para comunicarse con otras aplicaciones [ 161.
Un servidor de Web no sabe cómo interactuar con una base de datos, 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í.
Un CGI constituye un componente extremadamente poderoso de interacción entre visualizadores y servidores de Web, y se define como un programa que se ejecuta en un servidor de Web, que se pone en funcionamienlo por una orden de entrada proveniente del visuulizudor [i7]. La interfaz de acceso suele ser un enlace entre el servidor y algún otro programa que se ejecuta dentro del sistema; por ejemplo, un manejador de bases de datos. Estos programas pueden ser de diferente naturaleza, dependiendo de lo que pueda soportar el servidor de Web donde se ejecuten; pueden ser programas compilados o archivos de lotes o cualquier otra entidad ejecutable.
21
Capítulo 2 Fundamentos de Bases de Datos en Internet
El CGI también se define como el medio de comunicacibn que emplea un servidor de Web para enviar información útil en ambos sentidos, entre el visualizador y su propio programa de cómputo [191.
Cada vez que un CGI se ejecuta, 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 disefiado correctamente, la sekuridad puede violarse dejando al servidor m h ~ a b l e de accesos indeseables. Otro problema es ,,que es dificil 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 (Interfaz de Programación de Aplicaciones, por las siglas de Application Programming Interface) que permita al desarrollador modificar el comportamiento del servidor y darle nuevas capacidades [19]. Cuando el comportamiento 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 slrvidor y la otra aplicación.
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 visualizador de Web, un servidor de Web y una: aplicación CGI. AI utilizar un visualizador 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 devolher los resultados al visualizador. La acción se desarrolla de la siguiente manera [i9]:
1. El usuario llama a un programa conector que utiliza CGI, generalmente haciendo clic en un hipervinculo, u oprimiendo un botón en el visualizador de Web.
2. El visualizador reúne toda la información escrita por el usuario para enviarla al programa CGI.
3. El visualizador contacta al servidor de Web en la máquina donde reside el programa CGI, pidiéndole que localice a este último, y le transfiere la infomacióii.
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 CGI y transfiere a este la información del visualizador de Web. La Figura 2.6 muestra los pasos del 1 al 5.
6. Se ejecuta el programa CGI. .,
7. El proceso convierte la infomiación recibida a un formato que el sistema administrador de bases de datos sea capaz de entender.
8. El CGI usa el módulo de la base de datos para transferir la consulta a la interfaz de la base,
22
información tecleada por el usuario
....
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 al programa CGI.
Servidor de Web de Web ....................
Programa conector
dalos
4- Mensaje de error de la interfaz Mensaje de error de la interfaz
Mensaje de error
il Figura 2.1. Devolución de un Mensaje de Error.
23
11. El mensaje de error se envía al servidor de Web, el cual lo transfiere al visualizador de Web para que éste lo despliegue al usuario, y el proceso se detiene aquí. Los pasos del 6 al 11 se muestran en la Figura 2.7.
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 ai
programa CGI a través de la interfaz.
envío al visualizador de Web.
Figura 2.8.
14. El programa CGI formatea los resultados y los envía al servidor, por medio del CGI, para SU
15. El visualizador de Web despliega los resultados. Los pasos del 12 al 15 se muestran en ia
Servidor de
J - Programa
Resultados de la
Interfaz de la
Consulta para la base de datos
Verifica
Resultados de la cnniiiita 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 CGI.
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 ha'ker 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
24
Fundamentos de Bases de Datos en Internet Capítulo 2
cualquier otra operación. Un MI habilita a un cliente para interactuar con el servidor de la base de datos a un nivel íntimo que permite un mejor desempeño.
I
Netscape y Microsoft crearon APIs específicas para s\1s servidores. El API de Netscape Server (NSAPI) y el API de Internet SeAices (ISAPI) permitieron mejorar la velocidad de acceso [15, 161.
~1 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 traduce en beneficios porque mantiene la consistencia del sistema. Debido a que una aplicación MI 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 API son específicas para un servidor, porque cada servidor tiene un API diferente. El código API puede hacer fallar al servidor, y esto complica más el múltiples hilos de procesos y limpiar la memoria después
del código, el cual debe manejar 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 [20].
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 de bases de datos 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 Ia'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 API 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 de SQL, y obtención de resultados de la consulta.
A diferencia del mecanismo CGI, donde se tiene que desarrollar en dos diferentes lenguajes y requiere el conocimiento de dos tecnologías [20]; cuando se utiliza JDBC sólo sc necesita conocer el lenguaje Java, abreviando notablemente la rapidez del acceso, ya que la ejecución de una instrucción vía JDBC en la base de datos, requiere sólo de cierto tipo de servidor que pase los comandos 'SQL al servidor de base de datos para manejar todo el procesamiento. La Figura 2.9 muestra cómo se ejecuta una instrucción vía JDBC.
Con el USO del JDBC, es fácil enviar instrucciones SQL virtualmente a cualquier manejador de bases de datos relacional. En,otras palabras, con el API JDBC no es necesario escribir
25
-
26
Capítulo 3 Análisis y Solución del Problema
En este capítulo se hace el planteamiento general del problema y se muestra un diseño gcneral de la arquitectura de la herramienta. También se presentan los diagramas de módulos de la herramienta, así como la descripción de cada uno de ellos.
27
3.1. planteamiento General del Problema
HTML del www se han extendido a través de Internet, Y ha surgido la necesidad de dotar de mecanismos de pragramación a las páginas HTML con el fin de conseguir dinamismo e interacción entre 10s usuarios y los servidores de Web. De esta manera, de aplicaciones de Web profesionales involucra la UtiiiZaCiÓn de tecnologías que permitan recoger información proveniente de clientes y de BDs, utilizando Programas que funcionan en Internet e Intranet [4, 5, 6,7, 8,9, 10, 11, 12, 13, 14, 151.
Las
Actualmente han surgido herramientas inteligentes para desarrollo de aplicaciones de Web, que permiten a los administradores diseñar informes de manera visual, que postenormente son presentados a los usuarios a través de visualizadores, los cuales actualizan dinámicamente la información de las BDs. Dichas herramientas inteligentes, han venido a revolucionar la Web, para convertirla en un medio de información interactivo y comercial, que actualiza la información dinámicamente, en lugar de un simple medio de información estática.
El problema que presentan dichas herramientas es que el código que generan asociado al informe Web no es accesible para su modificación. El código es necesario en los siguientes casos: I ) cuando se requiere que los'linformes diseñados pasen a formar parte del módulo de informes de una aplicación más grande; o 2) para que el código generado pueda ser modificado para aquellos casos en que, debido a requerimientos especiales -no soportados por la herramienta- Únicamente pudieran ser generados parcialmente, y de esta manera no limitar al usuario en diseñar sólo informes Web soportado's por las herramientas. Además, otro problema es que las herramientas están diseñadas para ejecutarse bajo ciertas características de hardware y software de la máquina.
El Propósito de la herrarnientia desarrollada en este trabajo es solucionar algunos de los problenias de las herramientas comerciales antes mencionadas. Para ello se seleccionó el lenguaje de desarro~~o Java, Ya We éste Ofredi? la característica de ser multiplataforma; es decir, que sus aplicaciones pueden funcionar bajo cualquier característica de hardware Y software de la máquina en que Sean ejecutadas, el código que genera es accesible para su modificación, además de que éste incluye comentarios, 10 cual ayuda a la legibilidad del mismo, puede ser modificado para agregar Características ai infomie Wé!b no soportadas por la herramienta visual,
3.2. Diseño General Propuesto
Para el desarrollo de la herramienta fue necesario por un lado implementar un editor visual, el cual le permite al administrador del sistema diseñar informes Web, y por otro lado un servidor de servicetes, el cual permite poner disponibles en la Web los informes Web diseñados y generados por el editor visual (servicetes) para ser visualizados por usuarios.
En la Figura 3.1 se muestra:la arquitectura general del sistema. En ella puede observarse que el diseñador del sistema tiene la tarea de diseñar los informes Web en la máquina en la que se
28
Anhlisis y Soiuci6n del Problema Capítulo 3
encuentre instalado el editor visual, y después enviar el código generado a la máquina en donde se va a encontrar ejecutándose el servidor de servicetes, en el cual deben darse de alta todos y cada uno de los informes Web generados por el editor visual, para que éstos puedan estar disponibles a usuarios de Web a través de visualizadores.
___ __ -. Figura 3.1. Arquitectura General del Sistema.
3.2.1. Editor Visual de Informes Web
Para el diseño de la interfaz visual, consideramos las dos referencias siguientes:
La especificación de un programa en ambientes visuales, es la manipulación espacial de elementos visuales en la pantall; de la computadora [20]. Los lenguajes visuales para programació~z autornatica basados en formatos, realizan el proceso de programación a través de un '~ormaio de trabajo". lo cual implica no tener conocimientos de programación. Una vez de$nido el formato, el sistema genera autoniáticamente el código asociado a éste [21].
Los puntos anteriores ocasionaron que la interfaz se diseñara con la filosofia de un formato de trabajo, donde es posible manipular espacialmente los componentes u objetos visuales que conforman un informe.
29
Capítulo 3 Anilkis y Solucion del Problema
En la Figura 3.2 se muestra la arquitectura de 10s módulos PnnciPales que conforman editor visual de informes Web. A continuación se da una breve descripción de estos rnóddos.
Arreglo de Objetos Visuales. Este módulo contiene la estructura de datos que representa los objetos visuales incluidos en el diseño,:del informe, así como las propiedades de cada uno de ellos.
Manipulación de Eventos. Este módulo detecta las acciones (eventos del ratón) que se efectúan sobre los objetos insertados en la estructura de objetos visuales. Estas acciones se refieren a que una vez insertado un objeto en la estru'ktura de objetos visuales, éstos pueden ser seleccionados para modificar sus características, así ,!como para realizar las operaciones de deshacer, copiar, pegar, y eliminar el objeto del área de diseño del informe.
Propiedades del Texto. Este módulo permite insertar una cadena o cadenas de caracteres que se desean incluir en el diseño del informe:con sus respectivas propiedades, las cuales son el estilo de ia fuente, ei tamaño, ia justificación, y&i color.
Propiedades de f a Imagen. Este módulo permite insertar una imagen que se desea incluir en el diseño del informe con sus respectivas propiedades, las cuales son la ruta en donde se localiza el archivo de la imagen (con extensión .gif o .jpg), el ancho y largo de la imagen,
. . . .
30
Análisis y Solución del Problema Capítulo 3
pro pie da de^ del Separador. Este módulo:permite insertar una linea horizontal (separador) que se desee incluir en el diseño del informe con sus respectivas propiedades, las Cuales son el ancho Y largo de la línea.
Propiedades de la Fecha. Este módulo permite insertar la fecha, ya sea que el disefiador indique una fecha específica 0 que sea tomada del sistema operativo ai momento de generar el informe Web.
Propiedades de fa Consulta. Este módulo permite definir consultas en SQL e incluirlas en el diseño del informe. Además, es posible 'definir propiedades individuales a las columnas resultado de la consulta, así como también definir las columnas cabeceras (títulos) de las mismas. La herramienta permite insertar uno o másiobjetos tipo consulta en el diseño de un informe.
Generador de Etiquetas del Formulario. Este módulo permite generar un formulario con etiquetas HTML para cada uno de los informes diseñados, con los campos correspondientes al número de etiquetas involucradas en la(s) consulta(s) incluidas en el diseño del informe, para que éste sea presentado al usuario final para la edición de los campos y sea el punto de enlace para invocar el informe una vez editados 10s campos correspondientes al formulario.
Gerierador de Código Intermedio. Este módulo se encarga de generar el código intermedio que representa las propiedades de cada u& de los objetos visuales incluidos en el diseño del informe. Este código se genera con la finalidad de facilitar la generación del código fuente en Java, y consiste de un conjunto de primitivas que definen las acciones y secuencia lógica que el código final poseerá.
Generador de Código en Java. Este módulo tiene la función de tomar como entrada el código intermedio generado por el módulo generador de código intermedio, y generar a partir de éste un programa fuente escrito en lenguaje Java que represente las propiedades de cada uno de los objetos incluidos en el informe. El programa generado será un servicete del API de Java que se describirá más adelante.
3.2.2. Servidor de Servicetes
Típicamente un servidor de Web es un programa que radica en una máquina conectada a Internet, en espera de que se enlace a él un visualizador de Web y se le solicite, un archivo (página Web estática). Una vez que la solicitud le llega, el servidor localiza y envía el archivo. También se define como un programa que corre en el sitio de Web y que es responsable de responder a las solicitudes de archivos que hace el visualizador de Web [24].
Un servidor de Web utiliza el Protocolo de Transferencia de Hipertexto para atender las solicitudes de documentos que hacen los visualizadores. Luego, el servidor envía los archivos y las imágenes con los que dichos archivos tengan alguna referencia incorporada.
3 1
AnBlisis y Soluci6n del Problema Capítulo 3
EI servidor de servicetes implementado como parte de esta herramienta actúa.como un servidor de Web, sólo que en lugar de 8rindar el servicio de páginas Web esatic=, brinda el servicio de proporcionar programas sedicetes escritos en Java, 10s Cuales genera en forma dinámica páginas Web en el momentd de ser solicitados por visualiiadores Por medio de formularios, con información recuperada de bases de datos, a través de ias consultas en SQL definidas en la etapa de diseño de los informes Web. El uso de los formularios permite realizar consultas dinámicas, ya que el usuarib final tiene la oportunidad de especificar consultas individuales, además, de que haciendo uso de los servicetes es posible la generación de páginas al momento de ser solicitadas.
Un servicete es un programa CGI escrito en el lenguaje Java, y se define como el medio de comunicación que emplea un servidor de Web para enviar información Útil en ambos sentidos, entre el visualizador y su propio programa de cómputo [25]. La diferencia de los servicetes con otros CGIs escritos en otros lenguajes, es que una vez cargado un servicete en memoria éste permanece ahí disponible para invocacjones futuras, lo cual ahorra el trabajo de estar cargándolo en memoria cada vez que éste es invocado.
En la Figura 3.3 se muestra la arquitectura del servidor de servicetes, en ella se muestran los módulos principales que conforman la arquitectura, los cuales son descritos a continuación:
Corifguración del Puerto. Este módulo tiene como función configurar el puerto de comunicaciones, por medio del cual el servidor de servicetes estará atento en espera de solicitudes de servicetes por parte de visualizadores de Web. La forma de solicitar un servicete desde un visualizador es invocando ef protocolo HTTP, seguido de la dirección IP de la máquina en la que reside el servidor de servicetes, más el número de puerto de comiinicaciones del servidor de servicetes, y por Últirnolel nombre del servicete solicitado, como se muestra en el siguiente ejemplo:
httD://l48.208.92. I20:9094/Sewicete
'! En este ejemplo la dirección IP de la máquina es el 148.208.92.120, el puerto de
comunicaciones es el 9094, y el nombre del servicete invocado es Servicete.
Figura 3.3. Arquitectura del Servidor de Servicetes.
32
,I
Capítuio 3 AnBlisis y Soluci6n del Problema
cunfiguruci& de servicetes. En este módulo deben darse de alta todos Y cada uno de 10s informes generados por el editor visual (servicetes), de tal forma que estén disponibles Para Ser solicitados por visualizadores de Web.
Ejecución de Sewicetes. Este módulo detecta el servicete invocado por el visualizador de Web, procediendo a su búsqueda y ejecución.
Generador de efiquefas HTML Este módulo es utilizado por los servicetes en el momento de SU
ejecución, para generar los resultados de sus operaciones con formato de documentos de hipertexto en los visualizadores de Web,para su interpretación y visualización.
Cuntruludur JDBC. Este módulo proporciona un controlador JDBC que es la interfaz que fue desarrollada para ejecutar instrucciones de SQL dinámico, sobre un prototipo experimental de administrador de bases de datos distribuidas (SiMBaDD) y otros manejadores de bases de datos comerciales. Este controlador permite que las aplicaciones de acceso a bases de datos, sean independientes del sistema administrador de bases de datos [22].
,
3.2.2.1. Proceso de Operación del Servidor de Servicetes
El proceso de operación del servidor de servicetes se presenta en la Figura 3.4, en la cual se muestra que el servidor de servicites está en espera de solicitudes por parte de visualizadores de Web.
SiMBnDD Servidor de Servicetes
Figura 3.4. Operación del Servidor de Servicetes.
Una vez que un usuario de Web por medio de un formulario realiza una solicitud de un programa servicete a través del protocolo HTTP y por el puerto de comunicaciones correcto, el servidor tiene la tarea de localizár e invocar la ejecución del servicete solicitado. El servicete al ejecutarse hace la interfaz con el controlador JDBC para llevar a cabo las operaciones de consulta
33
Anhiisis y soluci6n del Problema Capitulo 3
sobre la base de datos administrada por el SiMBaDD. Cuando el servicete le pide ai JDBC la ejecución de ia(s) consulta(s) a ia(s) base(s) de datos, el JDBC se conecta con el SiMBaDD para realizar fisicamente la ejecución de la consulta, entonces el SiMBaDD retorna el resultado de la consulta al JDBC, el cual a su vez retorna este resultado al servicete. Una vez que el servicete recibe el resultado de la(s) consulta(s) ia(s) procesa dándole@) el formato de hipertexto especificado en la etapa de diseño del ,informe, y lo envía como resultado a la petición del visualizador de Web para su interpretación y presentación al usuario final.
Es importante destacar que el Editor Visual se carga en una máquina A, en la cual se diseñan los informes Web, y los resultados (servicetes) deben ser enviados en la máquina B en la cual radica el servidor de servicetes. En esta máquina B deben darse de alta los servicetes en el servidor para que éstos estén disponibles a usuarios del Web, ver Figura 3.5.
M4qulna A M4quina B
Figura 3.5. Diseño de Informes Web.
En la Figura 3.6 se muestra la interacción entre los componentes del sistema: el servidor de servicetes, el JDBC, el SiMBaDD, y el cliente. En ella se puede observar que el controlador JDBC, el SiMBaDD y la(s) base(s) de datos se encuentran en una máquina A, el servidor de servicetes se encuentra ejecutándose en espera de solicitudes en una máquina B y el visualizador Web en una máquina C. El proceso de operación es el que se mostró en la Figura 3.4.
M4quina A - Solicitud eonsulia - -
informe Web Virualizador Web
Figura 3.6. Interacción entre el Servidor de Servicetes, el JDBC, el SiMBaDD, y el Cliente.
34
Descripción del Sistema Capítulo 4
Capítulo 4 Descripción del Sistema
En este capítulo se hace una descripción del sistema completo basado en un ejemplo. Además, se explica el funcionamiento de cada una de las operaciones permitidas por el sistema, así como también todas las consideraciones que deben tomarse en cuenta al diseñar un informe Web.
35
Descripción del Sistema Capitulo 4
A continuación se hace una descripción general del editor visual de informes Web, así como tambih su modo de operación.
4.1. Descripción del Editor Visual
El editor visual consiste de un conjunto de ventanas que permiten diseñar un informe para Web a través de objetos en forma visual. Los objetos visuales que ofrece esta herramienta, son los componentes que pueden agregarse a una página Web con cualquier editor de páginas Web comercial, tales como textos, imágenes, enlaces o vínculos, y separadores (cada uno con sus diferentes propiedades). Además, este editor incluye la opción de definir consultas en SQL para ser ejecutadas al momento de ser solicitado el informe por el visualizador, y con el resultado generar el informe Web.
El editor visual cuenta con un menú de opciones en el cual puede seleccionarse el tipo de objeto a incluir en el diseño del informe, tal menú se muestra en la Figura 4.1. También puede observarse en la parte inferior de la: figura el área de diseño del editor, la cual consta de cuadrículas de 100 renglones por 3 columnas (con barra de desplazamiento en el caso de los renglones). En esta cuadrícula es donde se insertan los objetos visuales que se desean incluir en el informe. Para el caso de las columna’>, cuando un objeto es insertado en la cuadrícula izquierda del área de diseño, esto significa que el objeto tendrá una justificación izquierda, de la misma forma cuando un objeto es insertado en la cuadrícula del centro, esto significa que el objeto estará centrado. AI igual que las anteriores, ;cuando un objeto es insertado en la cuadrícula derecha del área de diseño, esto significa que el objeto tendrá una justificación derecha (siempre y cuando sea posible, ya que el lenguaje HTML tiene algunas limitaciones al respecto).
Figura 4.1. Editor Visual de Informes Web.
A continuación se describe un ejemplo del diseño de un informe que incluye una demostración de cada uno de los objetos ofrecidos por el editor visual, así como su explicación.
36
I,
Capítulo 4 Descripción del Sistema
4.1.1. Propiedades Generales del Informe
Para definir las propiedades generales del informe Web, del menú principal debe seleccionarse la opción Archivo, seguido ,de la opción Propiedades. Una vez seleccionada esta opción aparece la ventana que se muestralen la Figura 4.2, en la cual se definen las propiedades generales del informe Web.
Figura 4.2. Propiedades Generales del Informe Web.
Las propiedades generales de un informe Web son título del informe, gráfico de fondo o color de fondo del informe en su defecto, y el color de los enlaces visitados y no visitados.
Para seleccionar el gráfico de fondo puede hacerse de dos formas, la primera es tecleando directamente la ruta y el nombre del archivo gráfico en su campo de texto respectivo, y la segunda es pulsando sobre el botón Examinar, para hacer un recorrido en el árbol de directorio del disco duro de la máquina y buscdr el archivo gráfico de fondo. Para seleccionar el color de fondo, y el color de enlaces visitados no visitados, debe pulsarse con el ratón en la flecha de la lista desplegable correspondiente y seleccionar uno de los colores ofrecidos por el editor visual. Cabe mencionar que en caso en el que el diseñador no defina propiedades generales del informe Web, se toman los que están definidos por omisión.
Una vez definidas las propiedades generales del informe Web debe pulsarse el botón Aceptar para que éstas queden registradas, de lo contrario debe pulsarse el botón Cancelar.
4.1.2. Objeto Tipo Texto
Para insertar un objeto tipo, texto, del menú de opciones debe seleccionarse la opción Insertar, seguido de la opción Texto.
37
Capítulo 4 Descripción del Sistema
En la Figura 4.3 se muestra la ventana del objeto tipo texto, en la que se define el objeto A
con sus respectivas propiedades que se desea incluir en el diseño del informe.
Las propiedades del objeto tipo ,texto son fuente, tamaño y color del texto, así como su justificación, que puede ser a la izquierda, al centro, o sin justificación.
Con respecto a la fuente del texto, el editor ofrece las fuentes Times New Roman, Bold e Italic, que son las fuentes estándar del HTML y que los visualizadores de Web pueden reconocer e interpretar en forma estándar. '!
El editor ofrece las cinco opciones de tamaño de fuente disponibles en el HTML estándar, que son los parámetros del 1 a 5, siendo el parámetro 1 el tamaño más grande con que puede presentarse un texto y el parámetro 5 el tamaño más pequeño con que puede presentarse el mismo.
En el caso de la propiedad color, el editor ofrece una variedad de colores los cuales se seleccionan, al igual que las otras propiedades, en la lista desplegable de sus respectivas opciones de la ventana de definición del objeto tipo texto.
Una vez que se ha terminado de editar el texto y definir sus propiedades, debe pulsarse el botón Aceptar en el caso en el que se desee incluir el objeto en el diseño del informe, para que sea insertado el objeto con una cláusula TEXTO en la cuadrícula que se seleccionó para insertar el objeto. En caso en que no se desee:incluir el objeto en el diseño del informe, debe pulsarse el botón Cancelar para que éste no sea incluido como parte de diseño del informe. En la Figura 4.4 se muestra la ventana de diseño del informe con el objeto insertado.
38
Capítulo 4 Descripción del Sistema
Figura 4.4. Area de Diseño del Informe con un Objeto Texto Insertado.
4.1.3. Objeto Tipo Enlace
Para insertar un objeto tipo enlace, del menú de opciones debe seleccionarse la opción Insertar, seguido de la opción Enlace.
En la Figura 4.5 se muestra la ventana del objeto tipo enlace, en la que se define el objeto con sus respectivas propiedades que se desea incluir en el diseño del informe.
Figura 4.5. Objeto Tipo Enlace.
39
~ - - - I1
Capítulo 4 Descripción del Sistema
Un enlace es una dirección URL a la cual se desea hacer un enlace o vínculo. Esta debe definirse en su campo de edición respec'tivo. Un enlace, al igual que en los editores de páginas Web comerciales, puede hacerse a través de un texto o una imagen, incluso por ambas opciones, el editor visual ofrece estas posibilidades':
Si desea definirse el enlace o vínculo a través de un texto, en el campo respectivo al texto debe editarse el texto que aparecerá como un enlace a la dirección URL antes definida, así como sus propiedades de fuente, tamaño y justificación del texto. No es necesario definirle un color de texto, ya que los colores de texto de ros enlaces son definidos en la opción de propiedades generales del informe.
Si desea definirse el enlace o vínculo a través de una imagen, en el campo respectivo a la imagen debe editarse la ruta y nombre de la imagen o pulsarse el botón examinar para hacer un recorrido de búsqueda en el árbol de directorio del disco duro. También deben definirse sus propiedades de ancho y largo de la imagen.
Una vez que se ha terminado la definición del objeto enlace, debe pulsarse el botón Aceptar en el caso en el que se desee i n h r el objeto en el diseño del informe para que éste sea insertado con una cláusula ENLACE en la cuadrícula que se seleccionó para insertar el objeto. En caso de que no se desee incluir el objeto en el diseño del informe, debe pulsarse el botón Cancelar para que éste no sea incluido como parte de diseño del informe. En la Figura 4.6 se muestra la ventana de diseño del informe con el objeto insertado.
Figura 4.6. Area de Diseño del Informe con un Objeto Enlace Insertado.
4.1.4. Objeto Tipo Imagen
Para insertar un objeto tipo imagen, del menú de opciones debe seleccionarse la opción Insertar,