Boletín de RedIRIS n. 58-59

Webber 2.0: Un modelo de desarrollo de sitios Web

Webber2.0: A model for web site development

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.

Manuel Pérez Coca,
(manuel.perez@isotrol.com)

ISOTROL