Imprimir
Abr
02
2011

Joomla Platform Poject: el framework se separará del CMS

Autor // Isidro B.

( 3 Votos )

A finales del año pasado nombrábamos como uno de los grandes hitos del Proyecto Joomla en 2010 la puesta en marcha del proyecto "Joomla! Platform": la Plataforma Joomla.

Avanzábamos que ya os hablaríamos acerca de este proyecto más adelante, y ha llegado el momento: en el número de abril de 2011 del Joomla Community Magazine, Andrew Eddie confirma que por fin se ha puesto en marcha el proyecto en serio, y se espera el lanzamiento "inaugural" del código para el segundo trimestre del presente año.

Un poco de teoría sobre el funcionamiento de Joomla

Joomla es un sistema formado por tres "capas" o "niveles":

Arquitetura de Joomla

Cada capa está formada por "piezas de software" independientes:

  • La capa de extensiones está formada precisamente por casi todo lo que conocemos  como "extensiones de Joomla" (módulos y componentes) y los templates. Se trata de "programas" con una función específica, desarrollados total o parcialmente con el framework de Joomla para ejecutarse sobre alguna de las aplicaciones de la capa inferior.
  • La capa de aplicación conforma prácticamente todo el CMS. Se trata de 4 aplicaciones básicas creadas a partir del framework que proporcionan una serie de funcionalidades para la gestión de contenidos y una estructura sobre la que ejecutar extensiones. Estas cuatro aplicaciones básicas son:
    • El instalador de Joomla. Su única función es instalar todo el sistema Joomla sobre un servidor web. Una vez completada su función, es eliminado.
    • La parte pública del sitio o frontend. Es la aplicación encargada de crear y gestionar toda la parte que se presentará de forma abierta a todos los usuarios.
    • La parte privada o backend. Es la aplicación encargada de gestionar todos los parámetros de configuración de la parte pública (son tantos que para poder gestionarlos adecuadamente se requiere de una aplicación específica para ello). Además, permite la ejecución de extensiones, que generalmente desempeñarán funciones específicas de la administración de sitios web: gestión de ficheros, copia de seguridad, control de URLs...
    • La cuarta aplicación permite el control remoto del sitio mediante XML-RPC.
  • Y en la base de todo el sistema está la capa del framework, formada por librerías externas (que proporcionan funcionalidades específicas que ya han sido desarrolladas por terceros -viva el software libre-, como por ejemplo soporte avanzado para Javascript a través de Mootools), el framework propiamente dicho y una serie de plugins que permiten extender sus funcionalidades.

Estas tres capas -extensiones, aplicación y framework- interactúan entre sí de acuerdo con una serie de patrones establecidos para dar como resultado lo que solemos llamar "una web hecha con Joomla". Podría hacerse un símil por ejemplo con un automóvil, que está formado por varias piezas independientes (el motor, las ruedas, el habitáculo...) que al funcionar de forma conjunta dan como resultado lo que todos conocemos como "coche", "carro" o "auto".

Como hemos dicho, en la base de toda esa estructura se encuentra el framework de Joomla, que viene a ser el "esqueleto" o el "lenguaje común" a través del cual el resto de aplicaciones se entienden entre sí y mediante el cual pueden desarrollar sus funciones (NOTA: este artículo pretende ser una explicación general, no una descripción técnica exhaustiva).

¿Y en qué consiste entonces el proyecto de la Plataforma Joomla?

Actualmente, cuando nos "descargamos Joomla" nos descargamos un paquete comprimido que incluye todo el sistema que hemos descrito un poco más arriba, esto es, las tres capas con todos o algunos de sus componentes (Joomla incorpora "de serie" varias extensiones, pero no todas las que existen).

Sin embargo, para un desarrollador sería muy interesante poder descargarse e instalar de manera independiente únicamente el "esqueleto", y poder crear aplicaciones o sistemas basados en él totalmente nuevos, y que no estuvieran "limitados" por el resto de componentes que actualmente forman el CMS. Es como si pudiéramos adquirir un motor de manera independiente y a partir de él crear un automóvil completamente a nuestro gusto. Podríamos crear un automóvil pequeño, con una carrocería compacta, barata y que consumiera poco. O podríamos usar el mismo motor añadiéndole un turbo para crear un automóvil potente y rápido. Todo ello partiendo del mismo motor, sin necesidad de tener que preocuparnos de cómo está hecho el motor por dentro, pero conociendo dónde están todas sus conexiones al exterior y las funciones que podemos obtener de él.

Pues el proyecto de la Plataforma Joomla pretende justamente eso: desarrollar el framework, es decir, el motor de Joomla, de manera independiente, de forma que pueda ser usado por los desarrolladores para crear virtualmente CUALQUIER tipo de aplicación web, no solo un gestor de contenidos o CMS. Así, podría por ejemplo crearse directamente un sistema de foros "programado" en el framework de Joomla, en lugar de crear una extensión específica adaptada a la aplicación del frontend, con todo el beneficio en eficiencia que eso supondría.

Pero es que la cosa va aún más lejos: una vez que el framework ya no esté "encorsetado" o limitado por el CMS, ¿por qué no añadirle funciones específicas para otros tipos de escenarios? Una vez que se elimine de los parámetros de diseño el objetivo único de crear un CMS, podrá evolucionar de manera independiente y en distintas direcciones. Por ejemplo, podría dotársele de los mecanismos necesarios para crear aplicaciones para dispositivos móviles, o para sistemas embebidos en tablets. No sé si véis por dónde voy, pero si lo habéis visto os daréis cuenta de que las posibilidades que se abren son INCREÍBLES.

El proyecto fue anunciado "oficialmente" en octubre del año pasado en el transcurso de la reunión del Production Leadership Team de Joomla de finales de Octubre. Podéis descargaros la presentación de Chris Davenport pinchando aquí (el anuncio del proyecto de la Plataforma está en las páginas 25-27).

No se parte desde cero

Actualmente, el framework de Joomla ya tiene bastante entidad propia. Prueba de ello es que a partir de una instalación básica de Joomla pueden obtenerse multitud de tipos de aplicaciones web, con funcionalidades completamente distintas. Podemos crear blogs, foros, directorios, tiendas, comunidades... y todo a partir del mismo paquete de software.

Sin embargo, como apuntábamos antes el objetivo de los desarrolladores de Joomla era crear un CMS, y a lo largo del proceso de diseño del framework tuvieron eso en cuenta siempre. Esto ha dado como resultado que alguno de sus elementos esté muy enfocado a crear un CMS, y aunque puede usarse para otras cosas, no es tan eficiente como otras alternativas existentes. Volviendo al símil del automóvil, es como si desde el principio los desarrolladores del motor lo hubieran diseñado sabiendo que iría dentro de un todo terreno. Podría utilizarse para impulsar un bólido de carreras con algunas adaptaciones, pero siempre sería menos eficiente que un motor diseñado específicamente para correr.

Podría decirse que el Framework de Joomla actual es un motor específicamente diseñado para gestores de contenidos. La idea del proyecto de la Plataforma Joomla es trabajar sobre este motor para convertirlo en un motor flexible, potente y versátil, que lo mismo sirva para un avión de aeromodelismo que para una locomotora de alta velocidad.

 

Esta era una de las sorpresas que algunos barruntábamos para las próximas semanas. Personalmente creo que se trata del mayor anuncio de la Joomlaesfera desde la escisión de Mambo, por delante incluso del lanzamiento de Joomla 1.6. Disponer de un framework independiente que se desarrolle de manera autónoma puede convertir a Joomla en una auténtica bomba, dada la increíble comunidad que tiene detrás. Ya se lo decía en el último artículo: vienen tiempos apasionantes en la Joomlaesfera. ¿Se los van a perder? Ya saben que nosotros no ;)...

Enlace al repositorio del proyecto

Escribir un comentario

REGLAS APLICABLES A LOS MENSAJES

  • Los comentarios serán publicados una vez que hayan sido comprobados y aprobados por un administrador del sitio.

  • No están permitidos comentarios injuriosos o amenazadores.

  • No está permitido hacer spam.

  • Los enlaces que no vayan a sitios oficiales Joomla! o que no estén relacionados con el mensaje serán editados.


Código de seguridad
Refescar