Logiciel de Gestion de Contenu Magnolia

Présentation

Magnolia est un logiciel de gestion de contenu (CMS) open source développé par Magnolia Organisation, basée en Suisse. Le projet a démarré en 2003 et est actuellement disponible dans sa version 4.1.

Le projet a été fondé pour implémenter le standard JSR-170 (jetant les bases de fonctionnement des portails). Il a l'avantage de pouvoir s'exécuter sur la majorité des serveurs d'applications actuels.

Magnolia existe sous deux versions :

  • La Community Edition, disponible sous licence GPL
  • L'Entreprise Edition distribuée sous licence MNA (Magnolia Network Agreement), ce qui permet l'accès aux codes sources pour votre propre usage, mais interdit la distribution ou le déploiement de l'exécutable.


La « Community Edition » est relativement complète et contient de nombreuses fonctionnalités, proposant une alternative aux solutions commerciales souvent très coûteuses.

La version 3, sortie en juin 2006, a constitué une réelle avancée, avec l'ajout de fonctionnalités importantes comme le workflow, le versioning, la planification de tâches ou le module Site-Designer. Ce module permet la création des layouts directement depuis le navigateur (intégrée uniquement dans la version Entreprise). De plus, cette version intègre une nouvelle interface administrative, intégrant de l'AJAX, la rendant très intuitive.
La version 4.1 vient de paraître en juin 2009. Désormais, les modèles de pages (templates) pourront être créés à partir de FreeMarker, en plus de l'utilisation du mécanisme de JSP actuel. Comme FreeMarker ne dépend pas du système de fichiers, on peut désormais archiver les versions des modèles de pages, et les stocker dans le repository.

Magnolia dans le détail

1. Installation et configuration

L'installation est simple. Le déploiement de Magnolia facilité par la fourniture d'un package pour Apache Tomcat permettant une installation rapide, en moins de 10 minutes. Aucun autres logiciels ou bases de données sont nécessaires. Pour un déploiement sur un autre serveur, il suffit de le télécharger sous forme de fichier WAR.
La documentation de l'installation et de la configuration est complète et large. En effet, elle comprend les explications pour les déploiements sur plusieurs serveurs d'application comme JBoss, JOnAS ou Glassfish.

2. Intégration

Magnolia supporte tous les serveurs d'application J2EE comme IBM Websphere, Weblogic, Tomcat, Jboss, ...
Par défaut, Magnolia stocke ses données sur un système de fichier. Néanmoins, il est possible de définir la façon d'accéder aux données par l'API et ainsi utilise une base de données. Des documentations sont disponibles sur le wiki communautaire quant à l'intégration de certains SGBD (MySQL par exemple).
La capacité d'intégration de Magnolia permet de mettre à profit de nombreuses ressources déjà existantes. De plus, l'édition entreprise offre un Connecteur CRX pour les exigences les plus élevées en matière de sécurité et d'évolutivité.

3. Extensibilité

Même si les fonctionnalités de base d'un CMS sont intégrés à Magnolia, l'intégration ou le développement de nouveaux modules permet d'adapter Magnolia selon ses besoins.
Ainsi les modules disponibles sont sous forme d'archive .jar et sont à ajouter très simplement dans la librairie de Magnolia. Néanmoins, la documentation de certains de ces modules manquent cruellement d'approfondissement. De plus, des modules comme le blog ou la newsletter sont malheureusement absents.

4. Rendu

Le rendu par défaut est aux couleurs de Magnolia (vert). Plusieurs templates « exemples » sont disponibles.
Pour créer ses propres templates, il y a trois possibilités : les développer à l'aide des pages JSP, ou bien en utilisant les deux moteurs de templates disponibles : Velocity et Freemarker.
L'utilisateur aura donc le choix de choisir le template à appliquer à sa page.

5. Administration

  a) Administration des utilisateurs

Magnolia permet de gérer simplement les utilisateurs et les permissions depuis le pannel d'administration. Magnolia permet de définir ses propres « rôles », pouvant être regroupés en « groupe ».
Un rôle défini les droits et les restrictions d'accès aux différentes parties du site et du panel d'administration. Parallèlement, les groupes rassemblent des rôles, pouvant être communs à certains utilisateurs. Enfin, un utilisateur peut faire partie d'un ou plusieurs groupes et peut être défini par des rôles supplémentaires.

  b) Administration des modules

Il est possible de redéployer les modules directement depuis le panel d'administration sans redémarrage du serveur d'application. Néanmoins, l'ajout d'un nouveau module nécessite le redémarrage de ce même serveur.
Autre outil intéressant : on peut même programmer un intervalle de redéploiement automatique.

  c) Administration des pages
 
Lorsqu'on créé une page avec du contenu, celui-ci n'est pas tout de suite accessible en ligne.
Il faut d'abord activer celle-ci. Ainsi, le contenu pourra être vérifié s'il est inclus dans la ligne de publication d'un workflow.
 
6. Gestion de contenus

Les contenus sont enregistrés dans le JCR1, API destinée à standardiser l'interface entre une application de gestion de contenus et des opérations de modification, insertion, requête... effectuées sur la base de données (repository).
La gestion de contenu est simplifiée par la définition de paragraphes : zones d'une page dans laquelle on peut définir le type de contenu, sa mise en page, ...
Ainsi pour un utilisateur non averti, rien de plus simple que de remplir les champs d'un formulaire, préalablement défini par l'administrateur, pour avoir un paragraphe structuré, en totale cohérence avec la charte graphique de son site.
De plus, on peut en un seul clic déplacer son contenu pour le réorganiser comme il le sou-
haite, grâce à la technologie du glisser-déposer.

7. Outils collaboratifs

De nombreux outils collaboratifs sont fournis avec Magnolia sous forme de modules : Workflow, Wiki, Forum, Sondages, ...
La communauté a su développer quelques-uns des outils manquants et sont mis à la disposition des utilisateurs (Calendrier d'événement par exemple). Ils ne fournissent pas des fonctionnalités très avancées mais offrent une bonne base de démarrage.

8. Business intelligence

Il n'y a aucun système de reporting dans Magnolia. Toutefois, un simple système de logging (log4j) est présent. Celui-ci est directement configurable depuis le pannel d'administration.

9. Perspectives

Magnolia est aujourd'hui un produit mature, possédant toutes les fonctionnalités de bases d'un CMS. De nombreux modules importants sont disponibles mais il manque toutefois des applications additionnelles telles que le blog, le chat ou la newsletter. Les développements futurs combleront certainement ces lacunes.
L'installation et la configuration générale sont bien documentées, permettant un déploiement et une prise en main rapide. A l'inverse, la documentation de certains modules est légère voire inexistante, ce qui peut conduire à des difficultés de configurations de ceux-ci.
Même si la communauté semble s'accroître, elle n'est pas encore très importante. Elle est malgré tout très active notamment grâce à l'appui des développeurs de Magnolia.
Magnolia est l'un des CMS Java apportant une réelle alternative aux solutions propriétaires du même langage.

Conclusion

Pour une vision globale et synthétique de l'étude réalisée, voici un résumé des forces et faiblesses de l'outil Magnolia.


POINTS FORTSPOINTS FAIBLES
  • Interface ergonomique, simple à prendre en main
  • Documentation de certaines fonctionnalités manquantes
  • Disponible dans plus de quinze langues (français, anglais, allemand, espagnol, chinois, japonais, ...)
  • Absence de certains modules (Blog, Newsletter, ...)

Technique

 
  • Conforme au standard JSR 170
  • Déploiement facilité par la fourniture d'un package pour Apache Tomcat
  • Performances (cache avancé, load balancing, ...)
  • Permet d'importer et d'exporter des données en XML