Manuel Pérez Coca
Resumen
Webber 2.0 es la nueva versión de la herramienta que produce y mantiene los documentos que se publican
en el servidor Web de RedIRIS. Esta versión incorpora nuevas mejoras tales como el interface en XML y un
nuevo modelo de herencia.
Se ha intentado mantener la parte del interface de usuario casi idéntica a su versión anterior para que los
usuarios actuales no tengan que preocuparse de aprender a manejar una nueva herramienta. Sí ha
cambiado totalmente el núcleo del entorno, introduciendo los mecanismos de soporte XML, el nuevo
modelo de herencia y la nueva implementación del espacio de tuplas basado en el DOM del W3C.
Palabras clave:
Webber, herramienta Web, XML, DOM, espacio de tuplas, herencia, clases.
Summary
Webber 2. 0 is the new version of the tool that produces and maintains all documents published at the
RedIRIS Web server. This version includes new improvements such as an XML interface and a new
inheritance model.
Efforts have been made to maintain the user interface almost identical to the previous version so that users
do not have to learn how to use a new tool. The changes have taken place at the kernel layer, integrating
the new XML support mechanisms, the new inheritance model and the new implementation of the tuple
space, based on the W3C DOM.
Keywords:
Webber, web tool, XML, DOM, tuple space, inheritance, class.
1.- Introducción
Después de un curso académico de trabajo y muchas horas escribiendo y depurando código Perl, ha
visto la luz la segunda versión de la herramienta que mantiene y produce los contenidos de la Web de
RedIRIS: WEBBER. Esta nueva versión mantiene y mejora la filosofía de la primera con el objetivo de
facilitar la publicación de información en Internet, ofreciendo un interface lo más declarativo posible,
capaz de homogeneizar el formato de las páginas que se publican, y evitar así los problemas que se
presentan cada vez que las páginas deben sufrir un cambio en su aspecto u organización.
En todo momento se ha pretendido facilitar la tarea de aquellos que ya conocen la herramienta y la
están utilizando, conservando los elementos esenciales de la misma, como son su interface totalmente
declarativo y el empleo de un modelo de desarrollo basado en componentes. A la vez se ha
pretendido mejorar el entorno mediante el empleo de un estándar de gran difusión como es XML,
junto con la incorporación de mecanismos de herencia basados en la definición de clases, propios del
diseño orientado a objetos.
2.- Cambios más significativos
Veamos a continuación las características más destacables que presenta Webber v2.0 con respecto a
su versión anterior:
-
La nueva versión sigue soportando la herencia a través del URL como lo hacía su antecesora (a la
que denominamos herencia implícita) mediante las plantillas ubicadas en los directorios que
aportan características comunes en cuanto a formato y metainformación. Pero además se ha
añadido un nuevo modelo de herencia por clases (herencia explícita), mediante el cual un fichero
fuente puede heredar explícitamente los valores definidos para una clase ubicada en cualquiera
de las librerías de clases reconocidas por Webber (indicadas en la nueva variable del núcleo
llamada wbbClassLib). De esta forma podemos tener definiciones de clase que se heredan por los
elementos fuente de Webber, los cuales poseerán las características propias de los elementos
ubicados en su misma URL heredadas de forma implícita a través de las plantillas situadas en los
directorios, y también pueden adquirir características explícitas heredadas por la definición de la
clase a la que hace referencia.
-
La forma de invocar a Webber no ha cambiado, por lo que es posible utilizar los mismos
argumentos que se utilizaban en la versión anterior para configurar su modo de ejecución. Hemos
considerado que no era necesario ni ampliar ni reducir los modos de ejecución que existen, de
forma que se consigue mantener idéntico el interface de usuario de la versión anterior. Además,
esta nueva versión incluye XWebber, un entorno gráfico desarrollado con la librería de Perl
conocida como Perl/Tk. El objetivo fundamental de realizar este nuevo interface de Webber es
facilitar al usuario de una forma más clara e intuitiva la posibilidad de observar la lista de
plantillas y clases heredadas a partir de un elemento de entrada.
Debido a los dos mecanismos de herencia que Webber v2.0 soporta, como son la herencia a través
de la URL y la herencia explícita de clases (una de las novedades de la segunda versión), un mismo
elemento puede heredar valores a través de dos jerarquías independientes: la estructura de
directorios y la jerarquía de clases. Esto implica que no se pueda ver con facilidad qué ficheros y en
qué orden han sido heredados. Xwebber facilita esta labor, además de que permite editar
cualquier fichero de la lista de herencia con sólo seleccionarlo, así como ejecutar Webber con los
argumentos deseados, a la vez que es posible capturar la salida de depuración que,
opcionalmente, se pueda generar.
-
Los procesadores que se estaban utilizando en la primera versión de Webber, siguen funcionando
para esta segunda versión sin necesidad de modificar su código fuente. Por tanto, no es necesario
rescribir los procesadores para que funcionen en la nueva versión, ni crear otros nuevos.
Para esto se emplea la instrucción "tie" de Perl, que permite emular los accesos de los
procesadores al array asociativo que representaba el espacio de tuplas en la primera versión, por
accesos al nuevo espacio de tuplas con las nuevas funciones que suministra el actual núcleo de
Webber. Siempre de una manera transparente, por lo que los procesadores no se ven afectados.
Un módulo específico, llamado "DomWrapper", es el encargado de implementar este interface.
-
La última nueva característica de Webber v2.0 es la más significativa de todas: el uso de XML para
definir todos los elementos fuente, tanto plantillas (de clase o de URL) como ficheros. El uso de
XML permite alinear Webber con las normas para la representación de información textual
estructurada, y aprovechar la gran cantidad de software disponible para procesar datos en este
formato.
3.- Componentes
El núcleo de esta segunda versión de Webber ha sufrido grandes cambios con respecto a la anterior
versión debido al uso de XML, lo que implica una nueva implementación del espacio de tuplas. Sin
embargo, se mantiene el mismo modelo de ejecución de la primera y que estaba basado en tres
componentes: Parser, Gestor de Herencia y Planificador.
-
El Parser es el encargado de procesar los ficheros fuente y plantilla en XML para verificar su
sintaxis y convertirlos en un formato accesible al Gestor de Herencia, ubicándolos en el espacio
de tuplas, para que éste inicialice dicho espacio compartido por los componentes que se ejecutan
dentro de Webber. Para ello el Parser utiliza el DOM, un interface orientado a objetos
normalizado por el W3C para manipular ficheros XML, que utiliza una estructura en árbol para
representar estos ficheros. Como ya hemos comentado, el espacio de tuplas ha dejado de estar
implementado por una tabla hash de Perl, y ha pasado a convertirse en un árbol en formato
DOM al cual accederán todos los componentes que se ejecutan dentro de Webber con las
funciones que el núcleo suministra.
-
El Gestor de Herencia va a trabajar sobre los árboles en formato DOM que el Parser ubicó en el
espacio de tuplas y que se corresponden con los elementos fuente y plantilla heredados por éste,
para producir un único árbol final sobre el que trabajará todo el entorno Webber. Para ello tiene
en cuenta las dos posibles herencias que ofrece el entorno, siempre dando preferencia a la
herencia explícita frente a la herencia implícita a través del URL.
-
Por último, el Planificador es el encargado de invocar a los procesadores en el orden adecuado y
de forma secuencial para producir el resultado final.
Los procesadores son los componentes que se van a ejecutar dentro de Webber y que no
pertenecen a su núcleo. Son los encargados de producir el resultado final cumpliendo las
especificaciones de formato exigidas para los documentos que se van a publicar.