Opencms: servir contenido de forma estática, dinámica o mixta

Thu May 28 18:23:00 CEST 2009       Technology for Solutions       Administración, OpenCms

Como servir los contenidos de un sitio Web es muy importante en términos de rendimiento. En OpenCms existen 3 formas deservir el contenido publicado a los visitantes Web:

  1. Modo Estático: habilitar la funcionalidad de ‘exportar estático’
  2. Modo Dinámico: desde el servlet de OpenCms haciendo uso de Flexcache
  3. Modo Mixto: combinación de ambas estrategias

Por naturaleza, el entorno de trabajo de Opencms es dinámico. Los archivos y carpetas son creados, lockeados, editados y deslockeados en el Workplace (Intranet). Sin embargo, una vez publicados los recursos, estos se vuelven estáticos. Los recursos disponibles en la Web permanecen inalterabes hasta un nuevo evento de publicación.

OpenCMS permite que cada recurso pueda ser configurado independientemente para funcionar en forma dinámica o estática según se evalúe conveniente.

Páginas en Modo Estático

En esta modalidad, la página es ‘renderizada’ a su forma final al momento de la publicación y luego es almacenada en el sistema de archivos. El contenido de las páginas se combina con el template elegido y el resultado se graba en un archivo HTML.

En el caso de contar con elementos JSP, estos se ejecutan por única vez y su resultado se ‘congela’ como HTML en el disco.

En esta modalidad de trabajo, no se corren parseos ni interpretaciones en tiempo de ejecución.

OpenCms brinda la posibilidad de configurar a nivel de recurso la exportación estática (true / false). De esta forma, podemos decirle a Opencms que al momento de entregar ese recurso lo haga de forma estática en un servidor Web determinado.

El contenido ya no es servido por el servlet HTTP de OpenCms sino que es servido por el web server creando una total independencia y desvinculación del motor de edición y publicación.

Ventajas del Modo Estático:

- Gran velocidad al servir páginas pre-generadas.

 Desventajas del Modo Estático:

- Incapacidad de trabajar con tempates JSP que requieran tomar información de contexto.

- Imposibilidad de personalizar contenido. 

Páginas en Modo Dinámico

El recurso es procesado por OpenCms en tiempo de ejecución. Al publicar se mueve la página desde el proyecto offline alproyecto online y cuando se realiza una nueva consulta a un servidor de frontera, OpenCms combina el contenido con el témplate y genera la página que le es enviada al usuario.

En este punto, los diferentes resultados posibles (variantes de cada JSP) son almacenados en la Flexcache de acuerdo a las directivas definidas por el administrador.

Ventajas del Modo Dinámico:

- Los templates con contenidos dinámicos JSP funcionan mucho mejor.

Desventajas del Modo Dinámico:

- Requiere ajustes de la configuración de Flexcache.

- Tiempo de generación del contenido del cache penaliza al primer visitante

- Requiere estricto control sobre la frecuencia de publicación  

Modalidad Mixta

A diferencia de otros Administradores de Contenidos, es natural para OpenCMS operar en un entorno mixto, donde algunos recursos son entregados de forma estática y otros de forma dinámica.

Las imágenes son normalmente definidas como estáticas para hacer uso de estrategias de CACHE a nivel del servidor web (apache mod proxy).

También es posible posible construir templatesprincipalmente estáticos que incluyan bloques dinámicosincorporados en forma de IFRAMES. El contenido dinámico incorporado a los templates estáticos podrá ser consumido desde los propios servidores de OpenCms.

La mejor estrategia para servir contenidos dependerá mayormente de la arquitectura seleccionada, el tipo de contenido y la funcionalidad a resolver.