Bien, �sto mejora las cosas; sin embargo se siguen teniendo b�sicamente tres problemas:
Bien, para esta parte existen varias propuestas, pero la m�s interesante es un proyecto del grupo Apache que denominan XSP (eXtensible Server Pages). Para conocer un poco m�s de XSP vea el Cap�tulo 4
Como vemos, ya se explic� a grandes rasgos que el entorno de publicaci�n web basado en XML es la mejor soluci�n al problema planteado: Separar Contenido, L�gica y Presentaci�n. Es aqu� en donde entra el proyecto del grupo Apache llamado por ellos Apache Cocoon.
![]() | Es importante resaltar que esta soluci�n tiene un problema: Es muy poco madura y aun anda en proceso de prueba lo cual genera expectativas de todo tipo. Cocoon es hasta el momento entre este tipo de soluciones, la m�s desarrollada y cuenta con gran credibilidad en este momento. |
Existen cuatro grupos generales de componentes. �stos son:
Son los que llevan a cabo las transformaciones y las acciones (Ver Secci�n 3.1.1).
Son los serializadores (Ver Secci�n 3.1.1).
Es la parte encargada de hacer las selecciones y el proceso de match (Secci�n 7.1.1)
Esto incluye una serie de pasos, como identificar de forma selectiva el pipeline correcto que debe atender la solicitud pedida, cerciorarse de que el pipeline se lleve a cabo y producir el resultado al cliente que hizo la solicitud.
Estructuralmente hablando Cocoon est� compuesto de:
La anterior informaci�n se puede apreciar con el siguiente gr�fico.
De acuerdo a la forma como se programan, las XSPs se pueden dividir en tres grupos:
![]() | Para m�s informaci�n de XSP y acceso a Bases de Datos vaya a la Secci�n 8.2.2. |
La instalaci�n de Tomcat es realmente muy sencilla.
Lo primero que debe hacer es descargar el instalador. �sto lo puede hacer desde este enlace en el cu�l encontrar� la �ltima versi�n de este producto de licencia libre. Para el momento en el que este documento estaba siendo elaborado la versi�n m�s reciente de Jakarta Tomcat era la 4.0.3 y ya exist�a una alfa para la versi�n 4.1.0
Una vez descargado el instalador, ejec�telo. Los pasos a seguir son bastante intuitivos y no presentan problema alguno.
En el directorio donde instal� Tomcat, es decir, donde est� la ra�z de la aplicaci�n, lo llamaremos CATALINA_HOME (CATALINA es el nombre del contenedor de Servlets de Tomcat, el cu�l tiene una implementaci�n totalmente distinta desde la versi�n 4).
Para subir y bajar Tomcat vaya al directorio CATALINA_HOME/bin. Ah� encontrar� dos scripts para llevar a cabo esta operaci�n (startup y shutdown respectivamente).
Tomcat se ejecuta por omisi�n en el puerto 8080, as� que una vez que haya arrancado Tomcat puede probar la instalaci�n abriendo en el navegador la direcci�n http://localhost:8080. Si la instalaci�n no tuvo problemas se le mostrar� una p�gina de bienvenida semejante a �sta:
De Cocoon se pueden obtener dos distribuciones. La que trataremos en esta parte es la distribuci�n en binario que puede ser descargada de este enlace. Con esta distribuci�n lo �nico que usted debe hacer es descargarla y descomprimirla en cualquier directorio. En el directorio que usted eligi� deber� haber quedado el fichero cocoon.war. Este fichero es el de la aplicaci�n Cocoon.
Para que Tomcat y Cocoon se puedan comunicar, usted debe copiar el cocoon.war en el directorio CATALINA_HOME/webapps e iniciar Tomcat.
Cuando usted inicia Tomcat puede darse cuenta que el fichero es descomprimido autom�ticamente en el directorio CATALINA_HOME/webapps/cocoon/, el cual llamaremos de ahora en adelante COCOON_HOME. Para probar si cocoon est� funcionando puede abrir la direcci�n http://localhost:8080/cocoon/ en el browser, en la cual debe mostr�rsele una p�gina de bienvenida de este estilo.
Primero det todo, usted debe tener instalado CVS. Si usted no lo ha instalado a�n en su m�quina, puede consultar el sitio web de CVS para m�s informaci�n.
En el momento que tenga instalado el CVS, ingrese al servidor de CVS de Apache de la siguiente forma:
Cuando se le pregunte por una contrase�a escriba anoncvs. Luego escriba lo siguiente:
$ cvs -d:pserver:anoncvs@cvs.apache.org:/home/cvspublic -z3 checkout -r cocoon_20_branch xml-cocoon2
Una vez hecho esto se inicia la descarga de todo el c�digo necesario para la compilaci�n de Cocoon.
![]() | Si usted est� interesado en hacer pruebas con Cocoon es �til crear una aplicaci�n aparte para este fin. �sto lo puede hacer creando un directorio nuevo bajo CATALINA_HOME/webapps. Supongamos que a dicho directorio se le pone como nombre pruebasCocoon. Lo que usted debe hacer es copiar el fichero COCOON_HOME/cocoon.xconf y la carpeta COCOON_HOME/WEB-INF en CATALINA_HOME/webapps/pruebasCocoon/. �sto ya es suficiente para empezar a hacer sus pruebas y sus desarrollos ya que en WEB-INF est�n todas las clases necesarias para hacer que Cocoon pueda funcionar correctamente. Cree tambi�n su propio sitemap en CATALINA_HOME/webapps/pruebasCocoon(con lo cual no corre el riesgo de alterar los ejemplos y la documentaci�n que ya existan) y cargue su aplicaci�n en http://localhost:8080/pruebasCocoon/ |
![]() | Es de anotar que no tiene porque crear un fichero XSL por cada fichero XML que tenga en su aplicaci�n, s�lo que para efectos de un ejemplo de muestra basta con hacerlo de esta forma. |
![]() | Tenga en cuenta la ruta en la que guarda su DTD para que el fichero XML la pueda reconocer. |
![]() | Es recomendable manejar rutas relativas en la declaraci�n de la DTD para mejorar la portabilidad de la aplicaci�n. |
![]() | Cuando este construyendo aplicaciones en Cocoon es bastante �til definir directorios para guardar sus ficheros XML, XSL, sus DTD, sus fuentes, sus clases, etc. |
Bien, el pipeline que usted debe a�adir es de este estilo:
![]() | Para un ejemplo un poco m�s detallado consulte el Ap�ndice A. |
![]() | En Construcci�n |
Para acceder una base de datos usted debe tener en cuenta tres pasos:
�sto lo debe hacer en al fichero cocoon.xconf a�adiendo las siguientes l�neas en la etiqueta datasources
Para que cargue el driver e incluir el driver de tal forma que Cocoon tenga un lugar desde donde cargarlo.
Para configurar el web.xml con ayuda de la etiqueta init-param y la etiqueta hija de �sta, param-name con valor load-class enunciando dentro de esta �ltima el nombre del driver y separando el nombre de los distintos drivers por coma o espacio. Por ejemplo, para incluir un driver para Oracle y otro para IBM WebSphere las l�neas de c�digo que deber�an verse en el fichero web.xml ser�an:
![]() | Si usted est� utilizando la Base de Datos que viene con Cocoon (hsql)este paso no es necesario |
Para la construcci�n de p�ginas XSP, contamos con dos tipos de etiquetas, SQL y ESQL.
A�ada un pipeline en el sitemap que sea de la forma:
![]() | Para este caso, estamos indicando que el transformador es de tipo sql y que se debe usar una conexi�n llamada MiConexion. Es decir, estamos indicando desde el sitemap el nombre de la conexi�n |
Teniendo en cuenta todo lo anteriormente expuesto, se pueden escribir p�ginas con etiquetas sql.
A�ada un pipeline en el sitemap que sea de la forma:
![]() | Para este caso, estamos indicando que el generador es de tipo serverpages. |
Teniendo en cuenta todo lo anteriormente expuesto, se pueden escribir p�ginas con etiquetas sql.
![]() | Note que en este caso, es en la p�gina XSP en donde se define el nombre de la conexi�n. |
Para poder lograr esto Cocoon provee una herramienta poderosa, el concepto de SubSitemap.
Para poder utilizar esta t�cnica s�lo se deben tener en cuenta dos cosas:
En el fichero sitemap.xmap de Cocoon se deben a�adir las siguientes l�neas:
Bien, miremos un poco este c�digo para comprenderlo mejor:
![]() | En ambientes de desarrollo es bastante �til tener la opci�n de que cada vez que se haga un cambio, �ste se pueda reflejar de forma inmediata. Sin embargo en ambientes de producci�n es mejor tener configurado que los cambios se reflejen una vez el servicio se baje y se vuelva a restaurar; �sto es para no perjudicar a los usuarios de la aplicaci�n quienes podr�an tener la impresi�n de una aplicaci�n lenta. Mejor a�n si crea una copia de la aplicaci�n, para tener una en producci�n y otra en desarrollo para hacer las pruebas. Para conocer como crear una aplicaci�n en Cocoon consulte la sugerencia que est� al final de la secci�n Secci�n 6.2.2 |
Miremos un poco este subsitemap:
<!-- =========================== Components ================================ --> <map:components> <map:generators default="file"/> <map:transformers default="xslt"/> <map:readers default="resource"/> <map:serializers default="html"/> <map:selectors default="browser"/> <map:matchers default="wildcard"/> </map:components>
<map:pipelines> <map:pipeline> <map:match pattern="index.html"> <map:generate type="file" src="$MiAplicacion/XML/index.xml"/> <map:transform src="$MiAplicacion/XSL/HTML/index.xsl"/> </map:match> <map:handle-errors> <map:transform src="../stylesheets/system/error2html.xsl"/> <map:serialize status-code="500"/> </map:handle-errors> </map:pipeline> </map:pipelines>
![]() | F�jese que en la l�nea
<map:match pattern="index.html">
se est� diciendo que si se hace una solicitud de la
p�gina index.html, tome los datos
del documento index.xml y le
aplique la transformaci�n dada en
index.xsl. Lo importante aqu� es
observar que esta p�gina ser� mostrada cuando se
cargue la direcci�n
http://localhost:8080/cocoon/MiAplicacion/index.html
ya que el subsitemap
esta dentro de $MiAplicacion y en el
sitemap general se dijo
que la cadena $MiAplicacion ser�a
truncada.
|
Para las personas que no est�n familiarizadas con la tecnolog�a XML, en este documento se da una breve descripci�n de lo que es una DTD (Secci�n A.3.2.1), de lo que es un documento XML (Secci�n A.3) y de lo que es una XSL (Secci�n A.4) junto con un ejemplo de cada una de estas definiciones aplicadas al formato que tenemos como tema principal.
![]() | Este documento s�lo pretende ser un peque�o "abrebocas" de lo que son estas tecnolog�as punta. Es muy b�sico y la explicaci�n est� pensada para personas con muy pocos conocimientos. |
No es m�s que un conjunto de reglas para definir etiquetas sem�nticas para organizar un documento.
DTD es la sigla de Document Type Definition (Definici�n de Tipo de Documento).
Es un fichero l�gico que contiene la definici�n formal de un tipo de documento en particular
XSL es el acr�nimo de eXtensible Style Language (Lenguaje de Estilo eXtensible).
Tambi�n sirve para definir c�mo acceder cierto punto de la estructura de un documento. XPath.
![]() | Tenga en cuenta la ruta en la que guarda su DTD para que el fichero XML la pueda reconocer. |
![]() | Es recomendable manejar rutas relativas en la declaraci�n de la DTD para mejorar portabilidad de la aplicaci�n. |
![]() | Cuando est� construyendo aplicaciones en Cocoon es bastante �til definir directorios para guardar sus ficheros XML, XSL, sus DTD, sus fuentes, sus clases, etc. |