11 razones por las cuales OPENCMS es la mejor solución de CMS para alto tráfico

22/05/2009       Technology for Solutions       Administración, OpenCms

En el mes de marzo del 2006 nuestra firma tuvo la necesidad de evaluar diferentes tecnologías de Administración de Contenidos (CMS) para el desarrollo de un Diario Online (www.perfil.com). En su momento, la evaluación nos llevó a OpenCMS (www.opencms.org). Recientemente hemos repetido ese proceso de evaluación incluyendo en la comparación productos como Drupal, Alfresco y Dotnetnuke y los resultados nos han llevado a mantener nuestra posición respecto de la línea a seguir para portales de alto tráfico, diarios y revistas online.

A continuación, compartimos las 11 razones que nos llevaron a elegir OpenCMS para la construcción de portales de alto tráfico como www.perfil.com, www.lacapital.com.ar y www.diariouno.net.ar.

1. Comunidad / Soporte

Opencms cuenta con una importante comunidad de desarrollo, más de 120 proveedores de soluciones a nivel mundial y más de 5.000 casos de implementación en el mundo entre los cuales se encuentran: FOX Australia, Dreamworks Animation, 3M, Renault y Bayer.

Posee módulos libres y comerciales provistos por terceras partes y por el desarrollador del producto (Alkacon Software GmbH).

El soporte comercial de OpenCMS se brinda tanto por la empresa desarrolladora de la solución (Alkacon Software) como a través de su red de proveedores de soluciones.

2. Gestión de Contenido

La solución permite la utilización de múltiples tipos de contenido o definir tipos propios a través de un modelo de propiedades y atributos extensible. Los contenidos son persistidos en un sistema de archivos virtual (VFS) y pueden ser entregados a los navegantes de forma estática o dinámica. Nuestra firma ha extendido OpenCMS para incorporar soporte a tipos de contenido como: Video Flash, Audio Flash, PDF, Noticias, Carteleras, etc.

El modelo de carga es muy sencillo, pudiendo optar por múltiples editores, tipos de contenido estructurados o carga programática. La opción por defecto es un editor avanzado (FCKEditor). El editor de contenido puede ser actualizado de forma independiente al resto de la plataforma permitiendo un correcto desempeño con navegadores modernos.

OpenCMS posee soporte nativo de versionado automático, permitiendo ver un historial completo de lo ocurrido con un elemento dentro del sistema. Esto es sumamente importante en un entorno de redacción donde debe llevarse cierto nivel de control sobre la evolución de una nota. Además, posee soporte de “bloqueo” de contenido para permitir la colaboración entre diferentes usuarios (símil check-in / check-out).

3. Templates

La construcción de templates dentro de la herramienta de CMS es una de las barreras de entrada más fuertes que presentan muchas soluciones existentes en el mercado actual.

La generación de templates a medida en OpenCMS puede realizarse utilizando cualquier herramienta de diseño web HTML para su posterior integración en páginas java (JSP), las cuales pueden ser construidas tomando como base el templates nativo TEMPLATEONE.

La construcción de estos templates requiere conocimientos básicos de Java, HTML / CSS y sólidos conocimientos de JSP, XML / XSD para interactuar con funcionalidad dinámica construida por el usuario alrededor de OpenCMS.

4. Gestión de Imágenes

La solución cuenta con un módulo nativo de gestión de imágenes que permite subir archivos individuales, archivos ZIP para la carga de múltiples elementos, ajuste de tamaño automático, y estatificación configurable a nivel de elemento o carpetas. De esta forma puede servir el contenido visual haciendo uso del cache nativo del servidor Web.
Los usuarios pueden organizar sus imágenes a nivel de Galerías temáticas o por fecha.

Para aquellos casos donde la gestión de activos visuales es un requerimiento es posible realizar la integración con sistema de imágenes como CUMULUS. OpenCMS posee uno de los casos más importantes de referencia: THE ROYAL LIBRARY.

5. Rendimiento, Disponibilidad y Escalabilidad

La problemática de los sitios de alto tráfico suele estar íntimamente vinculada con la reducción del impacto en múltiples servidores Web consultando el motor de base de datos. En este punto es importante definir una estrategia para servir el contenido a los usuarios: dinámica o estático. Afortunadamente OpenCMS puede trabajar con ambas y expone mecanismos de cache diferenciados para cada caso.

OpenCMS presenta diferentes niveles de cache orientados a solucionar ese problema en forma eficiente:
1. FlexCache: realiza el cache de las diferentes JSP y sus variantes
2. OCEE Accelerator (DB): es un sistema de cache que tiene por objetivo reducir la cantidad de consultas a la base de datos (VFS).
3. Static Export (servir estáticamente) + Modproxy: realiza el cacheo del contenido que fue definido como estático a nivel del servidor Web Apache.

La FlexCache posee directivas avanzadas para la gestión de diferentes tipos de contenido. En la versión 6.x se recrea en cada publicación mientras que en versión 7.x la limpieza del cache se realiza a nivel de ítem. Por su parte el OCEE Cache de base de datos persiste a través de las múltiples publicaciones y sólo es renovado cuando el sistema se reinicia o los elementos expiran.

A diferencia de otras soluciones de CMS, la escalabilidad en OpenCMS es provista a nivel de la aplicación OpenCMS Alkacon OCEE Cluster que permite tener un servidor designado como Workplace (Intranet) y múltiples servidores de frontera encargados de servir el contenido a los navegantes. Este modelo posibilita una escalabilidad ilimitada y alta disponibilidad a través de diferentes esquemas de implementación que detallaremos en otro artículo.
A nivel de base de datos OpenCMS ofrece las opciones de mercado más reconocidas: MySQL, Microsoft SQL Server, PostgreSQL y Oracle.

6. Seguridad

Los aspectos centrales de la seguridad son:
1. Proteger el acceso a los contenidos en preparación (externo)
2. Administrar eficientemente el acceso de usuarios (interno)

A nivel externo, el servidor de Workplace (también llamado Intranet de publicación) puede existir sin necesidad de estar publicado en Internet. Es recomendable además que este equipo disponga de conectividad independiente (entre el servidor y los usuarios que acceden a él) para no competir por ancho de banda con los servidores públicos retrasando la publicación de nuevo contenido en situaciones de picos de alto tráfico.

A nivel interno, la seguridad se basa en modelo por listas de acceso (ACL) en el Virtual File System a nivel de elemento. Asimismo se brinda soporte para la gestión de soporte para grupos, roles y usuarios. OpenCMS posee una extensión comercial OCEE LDAP para la integración con Servicios de Directorio.

OpenCMS permite además tener un alto nivel de auditoría sobre las acciones de los usuarios en el sistema mediante un “historial de proyecto’”a nivel de recurso.

7. Localización

OpenCMS tiene soporte multi-idioma. Ofrece de forma nativa las localizaciones para inglés y alemán. La comunidad ha desarrollado localizaciones para español e italiano.

8. Motor de Búsquedas

La solución integra el producto Lucene Search Engine. A partir de una extensión de OpenCMS, nuestra firma brinda soporte de búsquedas avanzadas. Permite también la construcción de múltiples fuentes de indexación permitiendo tener un modelo de búsqueda especializado por cada índice.

Los índices de búsqueda pueden asociarse con tipos de contenido, recursos y proyectos. La indexación se realiza por atributos de los elementos como por ejemplo título, palabra clave, meta tag, categorías, fecha de creación, fecha de publicación, edición, tipo de publicación, etc.

9. Funcionalidad Interactiva

La funcionalidad interactiva puede ser construida fácilmente como contenido estructurado o como módulo que extienden a OpenCMS. Actualmente, se encuentran disponibles módulos para:

* Registración y Autenticación de Usuarios Web
* Valoración de Contenido
* Comentarios y Reporte de Abuso
* Suscripción y Administración de Newsletter
* Opiniones (símil Foro)
* Recomendación de contenido
* Múltiples tipos de Rankings para los navegantes
* RSS para sindicar contenido
* Gestor de Encuestas
* Etc (http://www.tfsla.com/productos_opencms_modulos.php)

10. API de Integración y Extensión

OpenCMS expone abiertamente todo su código (excluyendo las extensiones comerciales) permitiendo a los usuarios tener una versión personalizada del CMS y extender el mismo. El acceso a la funcionalidad básica puede realizarse a través de la Core Build API.

El conocimiento disponible sobre el desarrollo se encuentra muy bien documentado y disponible en www.opencms.org, Online Javadoc y el repositorio CVS.

11. Separación de Entornos

La separación tradicional de entornos incluye desarrollo, pruebas y producción. En OpenCMS es posible alcanzar esta separación de diferentes formas:

La primera, consiste en tener un servidor de desarrollo con las extensiones OCEE instaladas en modo desarrollo lo cual nos permite trabajar en un entorno prácticamente idéntico al productivo. Una vez terminado el desarrollo, el módulo completo puede ser exportado e importado en el nuevo servidor.

La segunda forma implica la utilización del OCEE Replicator para enviar la información del servidor de desarrollo al servidor de producción de forma automática.

La tercera forma, aunque la menos recomendada pero apta para situaciones particulares, considera el despliegue de OpenCMS en diferentes servidores (N) y el consumo de 2 o más bases de datos. A idéntico sistema de archivos de los servidores, la única diferencia posible es el contenido del sistema de archivos virtual (VFS). El VFS vive dentro de una base de datos que puede replicarse de forma manual o automática y lograr que otro servidor, consumiendo esta base “esclava”, obtenga la misma funcionalidad que la primera.