En este apartado me dedicar� a hablar un poco de la estructura interna y arquitectura en la que se basa Cocoon.
Antes de entrar en detalles es recomendable mostrar tres conceptos claves de la estructura de Cocoon. �stos son:
La idea es dividir el procesamiento de un documento XML en varios pasos m�s elementales. Un pipeline consiste en una entrada seguida de un conjunto de procesos de tratado de la entrada y una salida. Realmente es un concepto muy sencillo pero a la vez muy potente y hace que la programaci�n sea m�s f�cil y m�s escalable.
Son los que se encargan de llevar a cabo una tarea en particular en el pipeline como generar un documento XML, aplicar una transformaci�n o producir una salida, entre otros. Estos componentes se pueden personalizar y pueden ser creados por el propio desarrollador.
Existen cuatro grupos generales de componentes. �stos son:
Son los generadores y los lectores (Ver Secci�n 3.1.1) .
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:
Son los ficheros fuentes de donde proviene el XML. Estos pueden ser est�ticos o din�micos (es decir creados mediante XSP). La operaci�n de un productor se basa en transformar los datos del fichero en eventos SAX.
Atrapan el XML de los productores para aplicarle diversos procesos, como por ejemplo hacer conectividad a una base de datos, aplicar transformaciones XSL a los documentos XML, convertir los XSP en clases Java, etc. Son el proceso principal del Pipeline. El m�s com�n es el transformador XSLT
Cuando de contenido din�mico se habla, entran las acciones, es decir, procesos que s�lo se pueden llevar a cabo y de los que s�lo se puede saber el resultado en tiempo de producci�n, tales como interacci�n con bases de datos, validaciones, env�o de correo electr�nico, etc.
Es la central estructural. Extrae del XML del productor, las instrucciones para determinar qu� procesadores actuar�n en el documento.
Son el punto final en un Pipeline. Recogen la representaci�n interna del XML resultante (que est� dada en eventos SAX) y la preparan para enviar como respuesta al cliente en el formato adecuado.
El formateador o serializador m�s com�n es el serializador XML que simplemente obtiene los eventos SAX y los lleva a un documento XML.
La anterior informaci�n se puede apreciar con el siguiente gr�fico.
Es el coraz�n de Cocoon. Encontramos un entorno para el control de sesiones, ficheros para configuraci�n de Cocoon, para hacer manejo de contextos, aplicar mecanismos de cach�, Pipeline, generaci�n, compilaci�n, carga y ejecuci�n de programas.
En esta capa encontramos los generadores de XML, transformadores de XML, matchers de ficheros y serializadores para formatear los ficheros.
Son hojas l�gicas que necesita Cocoon para ficheros como sitemap, xsp, esql, request, response.
Es el nivel m�s externo en el cual un desarrollador puede hacer configuraci�n, creaci�n de componentes, creaci�n de hojas l�gicas y contenido definido por el usuario de Cocoon para su aplicaci�n