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,