|
|
HTML.tab
: Herramienta para la consulta
y actualización de tablas tridimensionales en WWW
Manuel Cerdas
|
Indice
|
|||
[-] | Comité Asesor
|
||
[-] | Introducción | ||
[-] | Objetivos
|
||
[-] | Objetivo General | ||
[-] | Objetivos Específicos | ||
[-] | Justificación y Antecedentes
|
||
[-] | Marco Teórico
|
||
[-] | Diseño e Implementación de Bases de Datos Tabulares | ||
[-] | Formato de los datos tabulares | ||
[-] | Diseño del Diccionario de Datos | ||
[-] | Consideraciones de Implementación | ||
[-] | Tecnologías para la Transferencia de Datos a través de WWW | ||
[-] | HTML | ||
[-] | Despliegues Tabulares en HTML | ||
[-] | Visualizadores de HTML | ||
[-] | Consideraciones de Seguridad | ||
[-] | Localizadores Universales de Recursos (URL) | ||
[-] | Ejecución de Programas en WWW: CGI y Java | ||
[-] | Areas de Estudio de la Carrera
|
||
[-] |
Definición de la Modalidad del Trabajo de Graduación
|
||
[-] | Productos y Resultados
|
||
[-] |
HTML.tab : Herramienta de acceso a Datos Tabulares en WWW
|
||
[-] | Aplicación de prueba | ||
[-] | Guía Hipertextual de la Aplicación | ||
[-] | Delimitación de la Investigación
|
||
[-] |
Indice Tentativo del Reporte Final de Investigación
|
||
[-] | Metodología y Cronograma
|
||
[-] | Actividades de la Investigación
|
||
[-] | Plan de Trabajo
|
||
[-] | Recursos Requeridos
|
||
[-] | Mecanismos de Evaluación
|
||
Bibliografía Tentativa
|
|||
Indice de Figuras
|
|||
[-] | Figura 1. Código HTML para desplegar "Hola mundo" con su salida | ||
[-] | Figura 2. Código HTML necesario para desplegar la Tabla 5 | ||
[-] | Figura 3. Las partes de un URL | ||
[-] | Figura 4. Diagrama del funcionamiento de CGI | ||
Indice de tablas
|
|||
[-] | Tabla 1. Tabla sencilla (tomada de [GRILL84]) | ||
[-] | Tabla 2. Tabla con dos tablas independientes (tomada de [SANAB96]) | ||
[-] | Tabla 3. Tabla con 3 tablas subordinadas (tomada de [SANAB96]) | ||
[-] | Tabla 4. Tabla con tablas anidadas (tomada de [OZSOY85]) | ||
[-] | Tabla 5. Tabla HTML visualizada (tomada de [CHEON96]) | ||
|
|||
Portada
|
|||
Acerca del autor
|
|||
Acerca de este documento
|
|||
Principio
Indice
Final
|
HTML.tab
: Herramienta para la
consulta y actualización de tablas tridimensionales en
WWW",esté formado por los siguientes distinguidos
profesores:
Como muestra de su aval a esta propuesta de investigación, a continuación están las firmas del comité asesor propuesto.
|
Octubre, 1996
Las computadoras han sido una herramienta muy importante para manipular información tabular, dado que es muy sencillo representar una tabla en la computadora. Han surgido muchas herramientas que permiten manejar este tipo de información, entre las que podemos mencionar las hojas electrónicas, los procesadores de palabras, que incorporan módulos para crear e imprimir tablas, y las bases de datos relacionales, que utilizan la metáfora tabular para almacenar enormes cantidades de datos.
Mas no es suficiente almacenar la información, sino que también es necesario hacérsela llegar a quien la necesita. Las redes de computadoras pueden ser utilizadas para este fin. Para este proyecto trabajaremos con la red Internet, más específicamente con su rama gráfica la Gran Telaraña Electrónica (WWW: World Wide Web), ya que esta es la red que tiene mayor cobertura a nivel mundial [CHEON96].
Existen varias métodos para desplegar tablas en WWW. Sin embargo todas adolecen de algunos inconvenientes. Para desplegar información en WWW se usa el HTML (HTML: HyperText Markup Language, el lenguaje utilizado para desplegar hipertexto) [LEMAY95], lo que permite establecer enlaces entre los servidores WWW de manera simple y transparente. Las extensiones de HTML para desplegar tablas en los documentos, tienen la restricción de que no permiten realizar actualizaciones. Dicho de otra manera, podemos desplegar una tabla, pero no podemos crearla o actualizarla en línea.
Por otro lado, existen programas manejadores de bases de datos (DBMS: Data Base Management Systems), que permiten efectuar consultas en línea en la plataforma WWW, y despliegan los resultados de las mismas en HTML. Sin embargo, éstos son productos muy caros. Además presuponen un conocimiento técnico por parte de sus usuarios. La salida de estos productos no es de naturaleza tabular, y debe ser traducida a este formato manualmente. Aún más, estas herramientas están orientadas a manejar volúmenes muy altos de información, lo cual dificulta justificar la inversión para quienes solo quieren poner en línea unas cuantas tablas pequeñas.
El propósito de este proyecto es el de proveer una nueva herramienta para el despliegue y actualización de información tabular en WWW. Esta herramienta deberá permitir crear y actualizar tablas en línea de manera económica y sencilla. Deberá además ser independiente de la plataforma en que se corra, en la medida que las herramientas de desarrollo lo permitan; y debe poder ser usada por personas sin conocimientos técnicos en computación. Junto con la aplicación deberán proveerse guías hipertextuales sobre el uso de la aplicación y sobre las tecnologías subyacentes.
Objetivo General: | |||
Construir una herramienta capaz de crear y actualizar tablas
en línea, en la plataforma WWW - TCP/IP. Esta
herramienta se llamará HTML.tab .
|
|||
Objetivos Específicos: | |||
1. |
Diseñar e implementar la herramienta HTML.tab . Esta
herramienta deberá ofrecer la siguiente
funcionalidad:
|
||
1.1 | Permitir la creación de tablas en línea. Es decir, debe permitir hacerlo desde el programa visualizador de WWW. | ||
1.2 | Permitir la modificación y actualización en línea de las tablas creadas con esta herramienta, ya sea del contenido de sus celdas, así como de su estructura (i.e cantidad de filas, cantidad de columnas, etc.). | ||
1.3 | La herramienta debe ser capaz de manejar tablas anidadas. Se manejarán al menos dos niveles de anidación. | ||
1.4 | La herramienta debe ofrecer la opción de transponer la tabla, sin importar si esta está anidada ó no. | ||
1.5 |
Debe ofrecerse la opción de formatos
numéricos. Por ejemplo, si se desea visualizar el
número cien mil doscientos setenta y cinco punto
cinco, este número se deberá poder visualizar
como 100275.5, o como 100,275.50 .
|
||
1.6 | La herramienta permitirá ocultar columnas de la tabla cuando esta se despliegue. | ||
2. |
Definir los requerimientos de la aplicación de prueba
de la herramienta HTML.tab .
|
||
3. | Implementar una aplicación de prueba que cumpla con los requerimientos definidos en el punto anterior. | ||
4. | Confeccionar una guía interactiva sobre el uso y aplicación de esta tecnología. |
Lo anterior es particularmente cierto desde el advenimiento de las computadoras. No solo se han creado herramientas especiales para crear y manipular tablas, como las hojas electrónicas; sino que también la estructura de datos tabla es muy usada en distintas aplicaciones, como por ejemplo en las Bases de Datos Relacionales [KORTH88].
La utilización de la metáfora tabular está muy extendida en la computación. Los programas dedicados al manejo de este tipo de información, las hojas electrónicas, han gozado de una gran popularidad desde su aparición en el mercado. Los procesadores de palabras actuales incluyen módulos para crear tablas. También podemos considerar el caso de los manejadores de Bases de Datos Relacionales que almacenan grandes volúmenes de información en tablas [KORTH88].
Existen varias maneras de distribuir información tabular a través de medios electrónicos, como por ejemplo mediante sistemas de pizarras electrónicas (BBS: Bulletin Board Systems) [SANAB96]. Sin embargo, existen pocas herramientas para uno de los medios más populares del momento: la red Internet y su acceso a través de la Gran telaraña de Información, conocida en inglés como World Wide Web (WWW).
WWW es la rama gráfica de la red Internet [LEMAY95]. Esta red se extiende por todo el mundo y ha experimentado un fuerte crecimiento en los últimos años.
La historia de Internet comienza en 1969, cuando en el Laboratorio Nacional de Física en Inglaterra, se implementa la primera red de conmutación de paquetes en el mundo. Esta red fue seguida por la red ARPAnet de Estados Unidos, en ese mismo año [CHEON96].
ARPAnet surge de una iniciativa de la Agencia de Proyectos de Investigación Avanzada (ARPA: Advanced Research Project Agency) del Departamento de Defensa de los Estados Unidos. Empezó como una red de conmutación de paquetes, cuyo primer nodo fue instalado en UCLA (UCLA: University of California, Los Angeles) a finales de 1969. En 1970, ARPAnet contaba con 4 nodos. En 1971 había 15 nodos, y para 1973, la cantidad había subido a 37 [CHEON96].
EN 1973 la Agencia de Proyectos de Defensa de Investigación Avanzada (DARPA: Defense Advanced Research Project Agency), empezó un programa de investigación orientado a encontrar técnicas para conectar distintas redes de conmutación de paquetes. La principal red de redes que surgió de este proyecto fue llamada Internet [CHEON96].
En 1974, Vinton Cerf y Robert Kahn mostraron el Protocolo Internet (IP: Internet Protocol), y el Protocolo de Control de Transmisión (TCP: Transmission Control Protocol) [CHEON96]. Estos protocolos definen la manera en que se intercambian datos entre redes de conmutación de paquetes. La primera implementación física de Internet involucró una red de paquetes de satélite, una red de paquetes de radio, ARPAnet, y una red Ethernet en el Centro de Investigación de Xerox en Palo Alto, California.
En 1983 DARPA empezó a convertir las máquinas conectadas a sus redes de investigación al protocolo TCP/IP. La transición a esta tecnología se completó en 1983 cuando DARPA decretó que todas las computadoras conectadas a ARPAnet usarían el protocolo TCP/IP. Fue así como TCP/IP pasó de ser un simple protocolo a ser una plataforma de intercomunicación global [CHEON96].
De esta manera nació el servidor de nombres de dominios (DNS: Domain Name Server) que es una base de datos distribuida para almacenar los nombres y direcciones de las estaciones en cada sub red conectada a la Internet. Esta base de datos provee la traducción de nombres a números y a la inversa y permite a su vez fragmentar este directorio de computadores de manera que la Internet pueda crecer de manera elegante, sin aumentar indefinidamente el tamaño del directorio de estaciones [PARKE95].
En 1984 la Fundación Nacional de Ciencia (NSF: National Science Foundation) empezó a conectar sus centros de super computadores con una red de banda ancha llamada NSFnet. Esta red empezó a funcionar en 1986, dándole servicios principalmente a los seis centros de super computadores de la NSF [CHEON96].
Merit, una organización sin fines de lucro, empezó a manejar la columna vertebral de la red (backbone) de NSFnet en Julio de 1988, después de una alianza con IBM y la compañía de comunicaciones MCI. Esta alianza tenía como objetivo el terminar la primera mejora del backbone de NSFnet: se pasó de un backbone de 56 Kilobits por segundo (Kbps) a uno de 1.544 Megabits por segundo (Mbps). NSFnet se convirtió en el backbone para la colección de redes conocida como Internet [CHEON96].
A partir de 1986, la NSF financió redes de mediano nivel. Estas redes proveyeron una extensa conectividad a instituciones educativas, a agencias del gobierno, y a empresas comerciales. De esta manera NSF aceleró el ya rápido crecimiento de la Internet [CHEON96].
En 1990, ARPAnet fue retirada de uso oficialmente, y su papel para todo propósito práctico fue asumido por NSFnet. En este mismo año, NSF crea Servicios Avanzados de Red Incorporados (ANS Inc: Advanced Network Services Incorporated). Esta es una corporación sin fines de lucro, cuyos dueños son IBM, Merit y MCI. Para 1990 ANS toma el control del backbone de NSFnet.
Aunque la NSF encontró inaceptables ciertos usos del backbone como el uso de NSFnet con fines de lucro, o para fines estrictamente personales, en 1990 el Consejo Federal de Redes, como parte del cuerpo administrativo de Internet, hizo un cambio radical de política. Se eliminó la necesidad del patrocinio de una agencia gubernamental para unirse a la Internet, lo que impulsó enormemente su crecimiento [CHEON96].
En 1992, al extender el contrato de ANS para administrar NSFnet, NFS se consideró a sí misma como un cliente ANS. Como resultado, las políticas de aceptabilidad de uso de NSF se aplicarían únicamente al tráfico que surgiera de NSF. Para todo propósito práctico se habían abierto las puertas de Internet para su uso comercial [CHEON96].
En 1989 ocurrió otro importante desarrollo tecnológico: Tim Bernes-Lee, empleado del Centro Europeo para la Investigación Nuclear (CERN: Centre Europien pour la Recherche Nucleaire) propuso un sistema de hipertexto para facilitar el conmutación de información entre los distintos centros de física de alta energía [PESCE96]. En Octubre de 1990 se inició el desarrollo de la World Wide Web, o WWW. Para Navidad de 1990, se mostró el acceso a archivos de hipertexto y a la Internet. Para finales de 1991, una publicación del CERN anunció WWW al mundo [CHEON96].
WWW permitió el acceso a Internet a todas la personas, ya que no se necesita ser técnico de computación para usar la red, pues WWW la presenta como una combinación de texto, video, audio y gráficos. WWW es a Internet lo que Windows es a las computadoras personales: es un ambiente gráfico intuitivo y fácil de usar que garantiza el acceso a todos los recursos de la red.
Desde su aparición, a finales de 1991, WWW ha experimentado un crecimiento extraordinario. Para 1994 el tráfico de WWW creció un 1500% [CHEON96]. Para Julio de 1994, WWW había sobrepasado la capacidad administrativa del CERN, que decidió entonces transferir en control de la red a un nuevo grupo llamado la Organización W3. Este grupo es un proyecto conjunto entre el CERN y el Instituto Técnico de Massachusetts (MIT, por sus siglas en inglés). Entre 1994 y 1995 este proyecto fructificó en un conjunto de organizaciones conocido como el Consorcio de la World Wide Web. [CHEON96].
Es en el contexto de WWW que se debe analizar la investigación hecha en el área de despliegue de información tabular. Se han realizado trabajos sobre el manejo de información tabular, en los cuales se apoya esta investigación. Adolfo Di Mare enfrentó el problema de las bases de datos heterogéneas (como lo sería una base de datos que guardara distintos tipos de tablas) en [DIMAR93]. Posteriormente Alonso Sanabria adaptó el trabajo de Di Mare al caso específico de la información tabular. Para su tesis de licenciatura creó una herramienta que permite la consulta y actualización en línea de información tabular en un ambiente de Pizarras Electrónicas (BBS). Sin embargo, esta solución no es aplicable al ambiente de WWW, ya que hace uso de características propias de un BBS en particular (el Searchlight BBS) y de una herramienta específica de una plataforma particular (FoxPro para MS-DOS) [SANAB96].
[OZSOY85] analizó el problema del almacenamiento y manejo de tablas estadísticas. En este trabajo se propone un esquema de base de datos para almacenar estas tablas, así como reglas para su manipulación. Este modelo puede se generalizado para otros tipos de tablas.
En WWW disponemos de herramientas sencillas y baratas que no permiten la creación y actualización en línea. Estas herramientas son de un nivel relativamente bajo, ya que no son expresamente diseñadas para manejar información tabular, sino que pueden simular esa funcionalidad.
También existen herramientas que sí permiten modificar la información tabular en línea, pero son caras y complicadas. Éstas herramientas son DBMS, con extensiones que les permiten recibir consultas y desplegar resultados vía WWW. Para usar estas herramientas es necesario un conocimiento técnico en el área de bases de datos (alguien tiene que programar las consultas), así como una fuerte inversión en software y equipo (un DBMS puede valer unos $40,000 actualmente).
Dada la popularidad de las tablas, es razonable suponer que una herramienta que permita la creación y modificación de tablas en línea, de manera económica y sencilla, sería muy importante. Le permitiría a cualquier usuario poner su información tabular en línea, sin importar que éste no tenga conocimientos de computación. Sería una alternativa económica para instituciones que desean poner en línea sus datos institucionales, ya que no sólo se ahorrarían el monto del DBMS con extensiones WWW, sino que las demandas sobre el equipo disminuirían.
Las bases de datos tabulares son relevantes al problema, ya que sin ellas sería imposible almacenar la información para consultas futuras.
Dado que toda la interacción de la herramienta con el usuario se da a través de la red Internet, las tecnologías involucradas en esta transferencia de datos son indispensables para el desarrollo de este proyecto.
# | Peso | Agente Analgésico | Cantidad en cc | Vía | #de vasos ligados | Cianosis | Rel. | Curso Post Operatorio |
1 | 20 | P.N. | 10 | I.P | 3 | + | + | Normal |
2 | 14 | P.N | 7 | I.P | 3 | + | + | Normal |
3 | 16 | P.N | 8 | I.P | 4 | ++ | + | Normal |
4 | 22 | P.N | 11 | I.P | 4 | ++ | 0 | Normal |
5 | 20 | P.N | 10 | I.P | 5 | ++ | 0 | Normal |
6 | 20 | P.N | 10 | I.P | 6 | ++++ | 0 | Normal |
7 | 18 | P.N | 9 | I.P | 7 | ++++ | 0 | Normal |
8 | 14 | P.N | 7 | I.P | 6 | ------ | -- | Anormal |
Existen otros tipos de tablas además de las tablas sencillas. Estas son las tablas con subtablas . Estas subtablas pueden ser independientes entre si, o pueden estar subordinadas entre ellas. En la Tabla 2 se puede observar un ejemplo de una tabla que contiene dos tablas independientes, y la Tabla 3 muestra una tabla con 3 tablas subordinadas, (mostradas en distintos tonos de gris).
Anexo 1
Salarios de un obrero no especializado de la construcción
de enero 1990 a enero 1994
Salario a enero Salario a agosto
Año |
Por día |
Por mes |
Incremento |
% |
Por día |
Por mes |
Incremento |
% |
|
1990 |
490.00 |
12,740.00 |
562.00 |
14,612.00 |
|||||
1991 |
614.00 |
15,964.00 |
3,224.00 |
25.31% |
675.00 |
17,550.00 |
2,938.00 |
20.11% |
|
1992 |
716.00 |
18,616.00 |
2,652.00 |
16.61% |
811.00 |
21,086.00 |
3,536.00 |
20.15% |
|
1993 |
852.00 |
22,152.00 |
3,536.00 |
18.99% |
895.00 |
23,270.00 |
2,184.00 |
10.36% |
|
1994 |
975.00 |
25,369.50 |
3,217.50 |
14.52% |
Tabla 2. Tabla con dos tablas independientes (tomada de [SANAB96])
Cuadro No. 12
Número y monto de las créditos formalizados ante el BANHVI
por mutuales de ahorro y préstamo
1990-1991
(Miles de Colones)
1990 1991 Total
Mutuales de Ahorro y Préstamo |
Cantidad |
Monto |
Cantidad |
Monto |
Cantidad |
Monto |
Mutual la Vivienda |
804 |
464,038.7 |
621 |
302,201.5 |
1,425 |
766,240.2 |
Mutual Alauela |
1819 |
1,081,645.7 |
1557 |
869,923.9 |
3,376 |
1,951,569.6 |
Mutual Cartago |
1667 |
1,077,445.5 |
1124 |
626,165.2 |
2,791 |
1,703,610.7 |
Mutual Heredia |
935 |
585,648.9 |
749 |
403,134.1 |
1,684 |
988,783.0 |
Mutual Metropolitana |
809 |
392,394.4 |
598 |
165,549.3 |
1,407 |
557,943.7 |
Mutual Puntarenas |
386 |
312,389.5 |
34 |
7,736.3 |
420 |
320,125.8 |
Depto. Hipotecario BCAC |
130 |
89,507.5 |
130 |
89,507.5 |
Tabla 3. Tabla con 3 tablas subordinadas (tomada de [SANAB96])
También existen casos en que las tablas contienen tablas en sus celdas. Estas son llamadas tablas anidadas. La Tabla 4 es un ejemplo de este tipo de tabla:
1980-COUNT |
*AGE |
|||||
{11,…,40} |
{41,…,70} |
|||||
M |
115 |
70 |
||||
USA |
SEX |
|||||
F |
85 |
60 |
||||
GAME |
Alpine- skiing |
18 |
3 |
|||
COUNTRY |
||||||
M |
75 |
15 |
||||
CAN |
SEX |
|||||
F |
80 |
20 |
||||
GAME |
Nordic-skiing |
20 |
15 |
Tabla 4. Tabla con con tablas anidadas (tomada de [OZSOY85])
La anterior no es una lista exhaustiva de los posibles tipos de tablas, pero ilustra la heterogeneidad que existe en los datos tabulares.
En este esquema en la meta base de datos se almacenan características de la tabla como título, cantidad de columnas, etc. En otras tablas de la meta base de datos se almacena información sobre los formatos de la columna y sobre los formatos de las celdas. Es un esquema de implementación sencilla, aunque requiere recorrer muchas tablas de la meta base de datos para hacer un solo despliegue tabular.
Otro esquema a considerar es el propuesto en [OZSOY85]. En este trabajo también se utiliza una meta base de datos, distinta la propuesta en [DIMAR93]. Esta meta base de datos está orientada al almacenamiento de tablas estadísticas, que en el fondo son tablas anidadas.
Para almacenar las tablas descritas en [OZSOY85] se propone in esquema de tablas resumen. En estas tablas las filas y columnas son rotuladas por atributos llamados atributos de categoría, que pueden ser estructurados como un conjunto ordenado de árboles. El conjunto de atributos de categoría de fila (o de columna) forman un camino de la raíz a la fila (o columna) hoja en el árbol de atributos de categoría.
La principal cualidad del esquema propuesto para almacenar estas tablas jerarquizadas es que es fácilmente generalizable, y requiere menos archivos que el esquema de Di Mare. Sin embargo no se almacena información sobre el formato tabular, lo que dificulta la generación de un despliegue tabular a partir de los datos almacenados.
Otra solución más simple es utilizar el sistema de archivos del sistema operativo para guardar cada tabla. Se utilizarían distintos archivos, donde cada archivo correspondería a una tabla; ya sea una tabla de la meta base de datos o una tabla resumen. La ventaja que ofrece este esquema, es que es independiente de la plataforma, pues todos los sistemas operativos tienen sistema de archivos.
Una vez almacenados los valores de cada tabla, es necesario contar con algún mecanismo para recuperarlos. Dado que no estamos utilizando un DBMS, va a ser necesario crear programas para este propósito. Por consiguiente es necesario escoger un lenguaje de programación para implementar esta funcionalidad, así como mecanismos para que este programa pueda ser accesado a través de WWW.
En WWW existen dos posibles formas de ejecución para un programa: se pueden ejecutar los programas en el servidor de Internet utilizando la Interfaz Común de Compuertas (CGI: Common Gateway Interface), o se pueden ejecutar en el computador cliente utilizando la tecnología Java. Esos mecanismos se discutirán posteriormente.
Al utilizar la tecnología CGI, lo que se hace es correr un programa en el servidor. Por ende es necesario crear el programa que correrá en el servidor. Este programa se puede crear en cualquier lenguaje de programación que produzca ejecutables que corran en el servidor.
La tecnología Java en cambio, permite correr un programa en el computador cliente. A diferencia de CGI, este programa no puede ser implementado en cualquier lenguaje, sino que tiene que ser escrito en el lenguaje de programación Java.
HTML.tab
.
Los hipertextos en WWW están escritos en el lenguaje HTML. Este lenguaje está basado en el lenguaje SGML (SGML: Standard Generalized Markup Language, lenguaje marcador estándar generalizado) [LEMAY95].
Un archivo HTML es un archivo ASCII (ASCII: American Standard Code for Information Interchange, código muy utilizado para codificar textos). Dicho en otras palabras es un archivo de texto común y corriente.
Dentro de este texto se encuentran comandos, identificados por estar entre los signos <>, que le indican al programa visualizador lo que debe desplegar.
<head> <title>Hola Mundo </title> Hola Mundo </head> <body> <h1>Hola Mundo</h1> </body> |
Hola Mundo |
Código HTML | Salida en el visualizador |
---|
Por ejemplo para crear una pantalla con el mensaje
"Hola Mundo"
es necesario el código
HTML que se observa en la
Figura 1.
HTML ofrece funciones más allá del simple despliegue de hipertextos. También ofrece facilidades para campos de despliegue de datos como por ejemplo cajas de texto y botones de escogencia [BOUTE96].
Para desplegar una tabla es necesario incluir varios códigos especiales por cada celda. Esto hace que la creación de una tabla en HTML sea un proceso largo y tedioso. Por ejemplo para desplegar la Tabla 5 es necesario el código HTML de la Figura 2.
Crecimiento de Dominios de Internet | |
Fecha | Dominios |
Jul 88 | 900 |
Jul 89 | 3.900 |
Oct 90 | 9.300 |
Jul 91 | 16.000 |
Oct 92 | 18.100 |
Oct 93 | 28.000 |
Oct 94 | 56.000 |
Ene 95 | 71.000 |
<CENTER><TABLE BORDER="1"> <TR> <TD ALIGN="CENTER" COLSPAN="2"> Crecimiento de Dominios de Internet </TD> </TR> <TR ALIGN="CENTER"> <TD> <STRONG>Fecha</STRONG> </TD> <TD> <STRONG>Dominios</STRONG> </TD> </TR> <TR ALIGN="CENTER"> <TD> Jul 88 </TD> <TD> 900 </TD> </TR> <TR ALIGN="CENTER"> <TD> Jul 89 </TD> <TD> 3.900 </TD> </TR> <TR ALIGN="CENTER"> <TD> Oct 90 </TD> <TD> 9.300 </TD> </TR> <TR ALIGN="CENTER"> <TD> Jul 91 </TD> <TD> 16.000 </TD> </TR> <TR ALIGN="CENTER"> <TD> Oct 92 </TD> <TD> 18.100 </TD> </TR> <TR ALIGN="CENTER"> <TD> Oct 93 </TD> <TD> 28.000 </TD> </TR> <TR ALIGN="CENTER"> <TD> Oct 94 </TD> <TD> 56.000 </TD> </TR> <TR ALIGN="CENTER"> <TD> Ene 95 </TD> <TD> 71.000 </TD> </TR> </TABLE></CENTER> |
En la versión 3.02 de HTML se incluyó el manejo de tablas anidadas. Esto se maneja de forma muy sencilla. Simplemente se define el código de una tabla dentro del código de otra tabla.
Existen muchos visualizadores en el mercado, algunos ofrecen capacidades adicionales a las mencionadas anteriormente, como por ejemplo capacidad de transmitir mensajes encriptados (para transmisiones seguras) y soporte al lenguaje Java.
Todas estas funciones son ofrecidas por los programas visualizadores que soportan la versión 3.02 de HTML. Esto es de gran relevancia en la seguridad de la aplicación.
Este sistema tiene una debilidad. La palabra debe viajar del cliente al servidor a través de WWW. Durante este trayecto la palabra puede ser interceptada y copiada. La solución para esto sería encriptar la palabra de paso antes de enviársela al servidor. Para ello el visualizador tiene que tener capacidades de encriptación. Una alternativa a este sistema es ejecutar una rutina de encriptación escrita en Java.
Para adoptar estas medidas es necesario que el visualizador provea soporte ya sea a la encriptación o a Java, lo cual es cierto para todos los visualizadores que soportan la versión 3.02 de HTML.
Un URL consta de cuatro partes, las que se muestran en el siguiente diagrama [CGI96]:
|
El protocolo representa la manera en que el documento será accesado; esto es el tipo de protocolo o programa que utilizará el visualizador para obtener el archivo. En la Figura 3 se utiliza el protocolo de transferencia de hipertexto (HTTP: HyperText Transfer Protocol), que le indica al visualizador que el recurso debe desplegarse como un hipertexto escrito en HTML.
El nombre del anfitrión, es el nombre del computador Internet, o servidor, donde se encuentra la información deseada.
Los directorios indican dónde se encuentra el archivo deseado en el servidor Internet.
Finalmente, el nombre del recurso que indica cuál es el recurso que se desea accesar [LEMAY95]. Lo usual es que los recursos sean archivos, pero también pueden designar otros tipos de recursos como, por ejemplo, llamadas a programas CGI.
En la Figura 3 se puede ver que el archivo foobar.html se encuentra en una máquina llamada www.yoyodine.com, en el directorios /pub/files.
CGI es un estándar para interfazar aplicaciones externas con servidores de datos, como por ejemplo servidores WWW [CGI96].
Un programa CGI es invocado por el servidor con base a la información proporcionada por el visualizador. En la Figura 4 se muestra la secuencia de eventos que resulta en el despliegue de información producida por un programa CGI.
Esta es una breve descripción de lo que ocurre entre el visualizador, el servidor y CGI.
Entre los lenguajes más populares para implementar programas CGI se encuentran C y Perl [CGI96].
La tecnología Java fue desarrollada por Sun Microsystems [GONZA95]. Java es un lenguaje orientado a objetos derivado de C++ diseñado para ejecutar código en cualquier plataforma de cómputo, con un grado de seguridad [JAVA96].
A diferencia de CGI, Java corre las aplicaciones en el cliente y no en el servidor. Esto reduce la carga de tráfico en la red y mejora el tiempo de respuesta, ya que cada cliente utiliza sus ciclos de CPU y libera al servidor de hacer ese trabajo [JAVA96]. El programa Java se ejecuta en una máquina virtual en el cliente. Por ende es necesario que el programa visualizador de la capacidad de crear esta máquina virtual [NAUGH96].
HTML.tab
: Herramienta de acceso a datos
tabulares a través de WWW
La herramienta HTML.tab
será un programa que se
ejecutará a través de la plataforma WWW. Le
permitirá a sus usuarios crear y manipular datos tabulares
en línea.
El usuario podrá añadir filas y columnas a cada tabla, así como tablas anidadas. Esto es podrá definir que una celda de una tabla contendrá otra tabla. Se permitirán al menos dos niveles de anidamiento.
Se deberá ofrecer la capacidad de transponer la tabla, sin importar si esta está anidada dentro de otra tabla o no.
Además se podrán ocultar columnas y utilizar formatos numéricos, al desplegar los datos.
Requerimientos de la aplicación:
La aplicación debe permitir crear y actualizar tablas en línea, sin necesidad de que el usuario tenga conocimientos de bases de datos, y un mínimo conocimiento de HTML. Esto último se debe a que será necesario que el usuario incluya al menos una referencia a la aplicación dentro de su documento HTML.
La aplicación deberá generar el código HTML, necesario para desplegar las tablas, así como los diálogos que permitirán la creación y actualización de las mismas. Se deberá proveer campos de tipo fórmula, esto es, campos cuyo valor sea determinado por los datos de los otros campos, mediante una fórmula dada por el usuario. Además, se ofrecerá la posibilidad de salvar las tablas en disco en ASCII, y de ser posible, en el formato de al menos una hoja electrónica.
Requerimientos Técnicos:
Esta aplicación debe correr en un servidor WWW. Dado que el lenguaje que se escogerá, debe ser independiente de la plataforma, el servidor puede ser Unix, OS/2, Linux, o Windows NT.
Para el cliente, bastará con cualquier máquina capaz de correr un visualizador de WWW que soporte la versión 3.02 de HTML.
Restricciones de la aplicación:
HTML.tab
, con
"candados" aplicados a nivel de tablas.
HTML.tab
, se pueden implementar varias
aplicaciones, entre las cuales están las siguientes:
La aplicación se escogerá durante el desarrollo del
Trabajo Final de Graduación, de acuerdo a las
técnicas que sea necesario probar en la herramienta
HTML.tab
.
HTML.tab
HTML.tab
será el permitirle a un único usuario
modificar la tabla en un momento dado.
Reporte final de la investigación:
En el reporte final de investigación se discutirán
los siguientes puntos:
HTML.tab
: contiene una descripción
detallada, del diseño de la herramienta y la forma en que
se hace uso las diferentes teorías expuestas en el marco
teórico.HTML.tab
: se describen la funcionalidad que
debe ofrecer, así, como herramientas adicionales utilizadas
en su creación. Además se presentan los detalles de
implementación.A continuación se muestra un índice tentativo para el reporte final de la investigación, el cual puede servir como referencia del contenido que tendrá el trabajo al final.
[1] | Introducción | ||
[2] | Objetivos | ||
[3] | Marco teórico | ||
[4] | Diseño de la herramienta HTML.tab |
||
[4.1] | Diseño del Diccionario de Datos | ||
[4.2] | Consideraciones de implementación | ||
[4.2.1] | CGI | ||
[4.2.1.1] Lenguaje de programación C | |||
[4.2.1.2] Lenguaje de programación Perl | |||
[4.2.2] | Java | ||
[5] | Implementación de HTML.tab |
||
[5.1] | Modelo utilizado | ||
[5.2] | Interacción con el servidor HTTP | ||
[5.3] | Transparencia y concurrencia | ||
[6] | Aplicación de HTML.tab |
||
[6.1] | Requerimientos de la aplicación | ||
[6.2] | Restricciones de la aplicación | ||
[6.3] | Dificultades encontradas | ||
[7] | Evaluación de resultados | ||
[8] | Conclusiones | ||
[8.1] | Posibilidades de ampliación | ||
[8.2] | Direcciones de investigación futura | ||
[9] | Bibliografía | ||
[10] | Anexos |
Actividad Mes | NOV | DIC | ENE | FEB | MAR | ABR |
Diseño de la aplicación | XXX | |||||
Selección de herramientas | XXX | |||||
Implementación y prueba | XXX | XXX | XXX | |||
Creación de la guía hipertextual | XXX | XXX | ||||
Escritura del reporte | XXX | XXX | XXX |
HTML.tab
, serán necesarios
los siguientes recursos:
http://
www.perl.com
).http:// www.sun.com
/java
).
HTML.tab
depurada y funcionando de manera
que satisfaga todos los objetivos planteados.
[AHO88] | Aho, Alfred V. et al.: Estructuras de Datos y Algoritmos, Addison-Wesley Iberoamericana, México, 1988. |
[BARAN95] | Baran, Nicholas: The Greatest Show on Earth, BYTE, Volumen 20, N° 7, Julio de 1995. |
[BERGH95] | Berghel, H.:
Using the WWW test pattern to check HTML
client compliance,
Computer, Volumen 28, N° 9, Setiembre de
1995.
|
[BOUTE96] | Boutell, Thomas:
CGI Programming in C &
Perl,
Addison-Weley Developers Press, 1996.
|
[CARLS95] | Carlson, B.:
A jolt of Java could shake up the computing
community,
Computer,
Volumen 28, N° 11, Noviembre de 1995.
|
[CGI96] | The Common Gateway Interface,
http:// www.lib.cuhk.edu.hk
/~terence/documents/cgi/ , 1996.
|
[CHEON96] | Cheong Fah-Chun:
Internet Agents: Spiders, Wanderers,
Brokers, and 'Bots,
New Riders Publishing, Indianapolis Indiana, Estados
Unidos, 1996.
|
[DAVIS95] | Davison, A.:
Coding with HTML forms,
Dr. Dobb's Journal, N° 231, Junio 1995.
|
[DIMAR93] |
Di Mare, Adolfo:
El Vínculo
InfoCAD-Oracle,
Ministerio de Vivienda y Asentamientos humanos, Sistema de
Información del Sector Vivienda y Asentamientos
Humanos, 1993.
|
[DUNCA95] | Duncan, R.:
Tables for your home page,
PC Magazine, Volumen 14, N° 18, Octubre de
1995.
|
[GONZA95] | González, S.:
Java & HotJava: Waking up the
Web, PC Magazine, Volumen 14,
N° 18, Octubre de 1995.
|
[GRILL84] | Grillo, Bustamante, Eduardo:
Anatomía Topograífica,
Radiológica y Quirúrgica,
Integradas, Página 108,
Editorial de la Universidad Costa Rica, Segunda
Edición, 1984.
|
[HTML96] | HTML: Hypertext Markup
Language,
http:// lcweb.loc.gov /global/ html.html , 1996.
|
[HTMLP96] | A Beginner's Guide To HTML,
http:// www.ncsa.uiuc.edu /General/InternetWWW/
HTMLPrimer.html , 1996.
|
[KERNI91] | Kernighan, Brian W. & Ritchie, Dennis M:
El Lenguaje de Programación
C, Segunda Edición, Editorial
Prentice Hall, México, 1991.
|
[JAVA96] | Java FAQ list and Tutoral: a work in
progress,
http:// sunsite.unc.edu /javafaq/ javafaq.html , 1996.
|
[KORTH88] | Korth, Henry F. & Siberschatz Abraham:
Fundamentos de Bases de
Datos, McGraw-Hill, México, 1988.
|
[LAQUE93] | Laquey, Tracy & Ryer, Jeanne C.:
The Internet Companion Plus: A Beginner´s
Start-up Kit for Global Networking,
Addison-Wesley Publishing Co., Primera Impresión,
Agosto de 1993.
|
[LEMAY95] | Lemay, Laura:
Aprendiendo HTML para Web en una
semana, Editorial Prentice Hall,
México, 1995.
|
[MOSAI96] | Mosaic for X version 2.0 Fill-Out Form
Support,
http:// www.ncsa.uiuc.edu /SDG/Software /Mosaic/Docs
/fill-out-forms/ overview.html ,
1996.
|
[NAUGH96] | Naughton, Patrick:
The Java HandBook, Osborne
McGraw-Hill, California, Estados Unidos, 1996.
|
[OZSOY85] | Ozsoyoglu, Gulletkin & Mata, Francisco:
A Language and physical Orgnization Technique
for Summary Tables, ACM Press, 1985.
|
[PARKE95] | Parker, Timothy:
Aprendiendo TCP/IP en 14
Días, Editorial Prentice Hall,
México, 1995.
|
[PERL96] | The Perl Programming
Language,
http:// www.mit.edu:8001 /perl/ perl.html ,
1996.
|
[PESCE96] | Pesce, Mark:
VRML para Internet, Editorial
Prentice Hall, México, 1996.
|
[SANAB96] | Sanabria, Gustavo:
MIVAH BBS: Sistema de Información en
línea sobre vivienda y asentamientos
humanos, San José, Costa Rica
1996.
|
[SWAIN95] | Swaine, M.:
Getting wired on HotJava,
Dr. Dobb's Journal, N° 235, Octubre de 1995.
|
[TANEB88] | Tanenbaum, Andrew:
Sistemas Operativos: Diseño e
Implementación, Editorial Prentce
Hall, México, 1988.
|
[VACCA95] | Vacca, J.:
Mosaic spins the Web, LAN,
Volumen 10, N° 9, Setiembre de 1995.
|
[VALDES] | Valdés, R.:
Net gets a Java buzz,
Dr. Dobb's Developer's Update, Volumen 2,
N° 8, Agosto de 1995.
|
[VANHO95] | Van Hoff, A.:
Java and Internet
programming, Dr. Dobb's Journal,
N° 233, Agosto de 1995.
|
HTML.tab
:
Manuel Cerdas <mcerdas@terra.ecouncil.ac.cr>
Referencia: | Cerdas, Manuel:
HTML.tab : Herramienta para la consulta y
actualización de tablas tridimensionales en WWW,
Propuesta de Tesis de Licenciatura,
Escuela de Ciencias de la Computación e Informática;
Universidad de Costa Rica;Octubre 1996.
|
Internet: |
http://www.di-mare.com/adolfo/cursos/mcerdas.htm
|
Autor: | Manuel Cerdas
<mcerdas@terra.ecouncil.ac.cr>
|
Contacto: | Apdo 4249-1000, San José Costa Rica Tel: (506) 235-4504 Fax: (506) 223-5363 |
Tipografía: |
Este documento ha sido tipografiado por
Adolfo Di Mare,
como un ejemplo para su artículo
"Recomendaciones para la
preparación de propuestas de
tesis", que está disponible en:
http://www.di-mare.com/adolfo/p/pretesis.htm .
|
Revisión: | ECCI-UCR, Diciembre 1997
|
Visitantes: |
|
|