El sistema de publicación en web Cocoon

En nuestros d�as, cada vez est� tomando mayor relevancia la presencia en la WEB. Cada d�a se demandan m�s servicios a trav�s de Internet y aumenta el n�mero de competidores. Todo este dinamismo requiere sistemas potentes en cuanto a servicios y contenidos, y a la vez con una gran capacidad de transformaci�n para adaptarse continuamente a las nuevas necesidades impuestas por las estrategias de mercado.

Otra necesidad actual que complica a�n m�s el problema es la de presentar informaci�n en diversos dispositivos y formatos. Seguramente a una empresa le gustar�a que los datos de su producto estrella en su cat�logo pudiesen ser visualizados desde un navegador web, desde un m�vil con tecnolog�a WAP o que se pudiesen imprimir con alta calidad para un cat�logo en papel.

Imaginemos una web formada por decenas o cientos de p�ginas HTML que necesite ser renovada para reflejar la nueva imagen de la compa��a. �Puede ser una aut�ntica pesadilla!. T�cnicas como el uso de Hojas de Estilo en Cascada (CSS) ayudan pero no deja de ser todo un desaf�o que puede durar demasiado tiempo. Si adem�s se pretende hacer versiones para distintos formatos se deber�a multiplicar el n�mero de p�ginas.

Si el contenido se genera din�micamente, por ejemplo mediante la consolidada tecnolog�a de los Java Servlets, el problema pasa del dise�ador web al desarrollador. Este debe retocar el c�digo fuente de sus programas para cambiar la est�tica del resultado, con el riesgo de alterar todo el funcionamiento del sistema y esto podr�a llevar a�n m�s tiempo hasta conseguir el cambio deseado. Para conseguir distintos formatos de presentaci�n se deber�a aumentar el n�mero de servlets o complicar la l�gica interna de cada uno para que, en funci�n de alg�n par�metro, se pueda cambiar la presentaci�n.

La aparici�n de las Java Server Pages (JSP) de la mano de Sun Microsystems supuso una mejora muy importante con respecto a los servlets en este sentido. Dos de las principales caracter�sticas de las JSP van orientadas a convertirlas pr�cticamente en vistas para datos que se generan con c�digo fuera de la p�gina:

  • El uso de JSP Beans: Un buen dise�o de JSP no deber�a contener apenas c�digo, s�lo el necesario para invocar otras clases que contienen toda la l�gica y para formatear dentro de la p�gina los datos obtenidos desde estas clases.
  • El uso de librer�as de etiquetas o taglibs: (A partir de la especificaci�n JSP 1.1.) Permiten definir etiquetas XML que se corresponden con un fragmento de c�digo. De esta forma se pueden construir p�ginas sin c�digo que contienen esta clase de etiquetas.

A pesar de que la situaci�n mejora, siguen existiendo algunos inconvenientes:

  • Existe el riesgo de que un dise�ador o un desarrollador de HTML pueda alterar el c�digo embebido en la p�gina, con lo que el mantenimiento se puede complicar.
  • Para obtener distintos formatos hay modificar el c�digo Java que formatea los datos, con lo que se requiere un programador para hacer el trabajo t�pico de un desarrollador de HTML / dise�ador. Este es uno de los problemas que plantea el solapamiento de perfiles profesionales que conlleva el desarrollo de JSPs.
  • Resulta muy tentador incluir demasiado c�digo en la p�gina sin utilizar en su lugar beans o taglibs.

Desde el principio se est� hablando de la misma cosa, y no es otra que la separaci�n entre contenido y presentaci�n. Por un lado estar�a bien tener productores de informaci�n que generen la informaci�n adecuada en un formato est�ndar y por otro lado poder definir distintas vistas de esos datos. As� un cambio de imagen s�lo afectar�a a ciertas vistas pero la l�gica para generar la informaci�n no se ve alterada. Del mismo modo, la necesidad de tener disponibles los datos en un nuevo formato s�lo implica la creaci�n de una nueva vista. Con esta idea surgen principalmente dos soluciones:

  • Motores de plantillas: La idea es que si las JSP solo se usan para crear vistas de los datos generados por los JSPBeans, �para qu� usar una sintaxis tan compleja?. Los motores de plantillas proponen dise�ar vistas a modo de plantillas con unas sintaxis muy sencillas que permitan especificar c�mo se obtienen los datos y c�mo se colocan para obtener el resultado final. El objetivo es que el dise�o de estas plantillas pueda ser llevado a cabo por dise�adores o desarrolladores de HTML con escasos conocimientos de programaci�n de forma sencilla. Esta soluci�n tambi�n tiene problemas:
    • No hay ninguna especificaci�n ni ning�n est�ndar, cada producto tiene su propia sintaxis.
    • A pesar de que las sintaxis para el control de datos son sencillas no deja de ser programaci�n, y es dif�cil convencer a un dise�ador para que trabaje con ella.
    • Los productos de este tipo no suelen ser demasiado eficientes comparados con otras soluciones.

    Los productos de este tipo m�s populares a la fecha de este documento son WebMacro de Semiotek, Apache Velocity y FreeMarker.

  • XML/XSL Publishing Frameworks: En la actualidad se est�n convirtiendo en la mejor alternativa.
  • Si se busca un formato con el que enviar los datos a las vistas, qu� mejor que usar un est�ndar con las ventajas de XML. Entre estas ventajas podemos destacar, en este contexto, sus capacidades de transformaci�n mediante XSL, sobre todo XSL-T. As�, podemos hablar de un publishing framework basado en XML/XSL como un sistema que:
    • Admite peticiones de documentos en diversos formatos.
    • Obtiene la informaci�n adecuada de diversas posibles fuentes de datos XML.
    • Obtiene la informaci�n sobre las transformaciones XSL necesarias y se las aplica a los datos.
    • Formatea el resultado final y lo sirve como respuesta a la petici�n inicial.

    Las ventajas de un sistema de publicaci�n basado en XML/XSL son, entre otras:

    • Separaci�n limpia entre contenido y presentaci�n.
    • Permite separar claramente los papeles del programador y el dise�ador.
    • Proporciona una mejora muy notable del mantenimiento: Se puede realizar un cambio radical de imagen de todo un site web con tan solo modificar las hojas XSL y sin tocar ni una sola l�nea de c�digo.
    • A partir de un solo documento XML con el contenido, se pueden obtener p�ginas HTML para su presentaci�n web, p�ginas WML para dispositivos WAP, documentos PDF para imprimir...
    • Aunque no hay ning�n est�ndar que regule como debe ser un sistema de publicaci�n si que est� basado en est�ndares con mucha fuerza en el mercado, por lo que es m�s sencillo pasar de usar uno a usar otro.
    • Es compatible con el resto de tecnolog�as web como servlets, JSPs...

    La desventaja principal es la poca madurez de la mayor�a de los proyectos de este tipo y que a�n no est�n del todo asentados.

    Actualmente ya hay un amplio abanico de soluciones, que pasan desde complementos para Apache escritos en Perl como AxKit a JSPs productoras de XML manejadas por servlets que aplican a su resultado diversas transformaciones. Por esta �ltima l�nea han surgido varias alternativas, casi siempre basadas en taglibs para manejar xml, pero no dejan de ser poco naturales. Al respecto hay una propuesta muy interesante que forma parte del proyecto Apache Cocoon, que son las XSP (parecidas a las JSP pero con total integraci�n con el manejo de XML).

    Este campo de aplicaci�n se est� moviendo deprisa, y continuamente aparecen nuevas propuestas. Una lista de ellas se puede encontrar en http://www.xmlsoftware.com/publishing/.

    El proyecto open source Apache Cocoon es la soluci�n m�s madura y m�s adecuada de las que se estudiaron al inicio del proyecto y a la que vamos a dedicar especial atenci�n en el resto del curso.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO