El sistema de publicación en web Cocoon

Cocoon es un sistema de publicación electrónico basado en XML/XSL orientado a documentos.

Es 100% Java y está basado en estándares. Además es probablemente el framework de este tipo más maduro y reconocido. Como publishing framework aporta las ventajas descritas en el apartado anterior y además tiene características de valor añadido como:

  • Open source.
  • Altamente configurable y personalizable.
  • Incorpora la característica de poder escribir páginas de servidor aptas para el trabajo con XML (XSPs).
  • Permite diferenciar el procesado del documento en función del dispositivo o tipo de software que realiza la petición.
  • Incorpora un sistema de caché que permite un rendimiento muy elevado.

Cocoon puede trabajar como un programa en línea de comandos pero su uso normal es como Servlet para la publicación a través de la Web.

. Estructura de Cocoon

Desde el punto de vista estructural Cocoon se compone principalmente de los siguientes elementos:

Estructura de Cocoon
  • Productores: Son las fuentes del XML. Pueden ser desde ficheros XML estáticos hasta objetos Java que generen XML dinámicamente. Dentro de los productores cabe destacar las XSP (eXtensible Server Pages). Son parecidas a las JSP sólo que en lugar de compilar a un servlet, compilan a un Producer, que es la interfaz que debe implementar cada productor de XML que se integre con Cocoon.
  • Procesadores: Son los encargados de tratar el XML de los productores y someterlo a diversos procesos consecutivos. Por ejemplo las XSP son transformadas a clases Java por un procesador, otro procesador permite hacer peticiones a bases de datos en función de instrucciones en XML y otro por ejemplo puede aplicar transformaciones XSL al XML.
  • El Reactor: Es la pieza central encargada de extraer del xml generado por los productores las instrucciones de proceso que determinan que procesadores actuarán. Como estas instrucciones pueden ser cambiadas por los procesadores se puede alterar dinámicamente el flujo de proceso del xml.
  • Formateadores: Son los encargados de recoger la representación interna del xml resultante de los procesadores y prepararlo para enviarlo como respuesta al cliente en el formato adecuado (texto, html, xml, wml...).

Cabe destacar que Cocoon es un producto muy abierto. Podemos crearnos nuestros propios productores, procesadores y formateadores e integrarlos perfectamente. Además podemos cambiar el parser XML y el motor de transformación XSL por el que más nos convenga.

Para aprender más acerca de cómo crear Producers y Formatters se puede visitar http://xml.apache.org/cocoon/dynamic.html.

. Funcionamiento de Cocoon

A nivel funcional, el trabajo de Cocoon desde una petición del usuario a la devolución del documento final, a grandes rasgos, pasa por las siguientes fases:

  1. El usuario pide un documento.
  2. Se analiza la petición para saber a que productor de XML corresponde.
  3. El productor genera un documento XML.
  4. El reactor extrae las instrucciones de proceso del documento y se lo pasa al procesador adecuado. Y así sucesivamente hasta que no queden más instrucciones a procesar. Hay que tener en cuenta que los procesadores pueden añadir más instrucciones de proceso.
  5. El resultado le llega al formateador. Si es un documento final le aplica el formato solicitado según el tipo de documento y se le envía al cliente. Si lo que llega es código ejecutable (XSP compilada), el Loader lo recoge y lo coloca como productor empezando otra vez desde el paso 3.

Este sería un modelo muy simplificado, donde se ha omitido, por ejemplo la caché de Cocoon. Para aprender más sobre la caché de Cocoon ver el capítulo de referencias al final de este curso.

. eXtensible Server Pages (XSP)

Las páginas XSP vienen a solventar las dificultades de las JSP en el trabajo con XML.

Para leer una comparativa XSP vs JSP puede acudirse a: http://www.oreillynet.com/lpt/a/620.

Una XSP no es más que un documento XML donde podemos incluir contenido estático y lógica para generar XML dinámicamente. Dentro del modelo de Cocoon serían productores.

Aquí vemos cómo a partir de un contenido se obtienen diversas vistas para distintos formatos.

XSP

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.