Jahia Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3
Qu'est ce que c'est? Jahia est une solution de portail internet et de gestion de contenu destiné aux entreprises. (CMS and Enterprise Portal) Il permet de créer et administrer un site intranet / extranet Écrit entièrement en JAVA (J2EE) Basé sur un serveur applicatif TOMCAT et un serveur Web apache.
Sommaire Présentation Installation Utilisation
Définitions CMS CMS (Content Management System) Système pour que les employés puissent mettre en ligne du contenu, sans connaissance techniques particulières. Enterprise Portal : (Portail d'entreprise). Permet à une entreprise d'avoir un point d'entrée WEB unique pour toutes les personnes (clients, employés), qui seront ensuite redirigées
Caractéristiques de Jahia Edition facile du contenu des pages via interface WEB Basé sur des modèles («Templates») Gestion des langues Gestion de la sécurité avancée Gestion du Versionning du site / validation des pages Gestion de sites virtuels Moteur de recherche intégré Entièrement administrable
Qui l'utilise? Exemple d'utilisateurs commerciaux : Swiss Federal Institute of Technology University of Lausanne Education Network Australia Isover (St Gobain) Alstom...
Coût Sources disponibles gratuitement Gratuit pendant les phases de développement et test du site MAIS... Payant lorsque le serveur est en exploitation normale Possibilité de l'avoir gratuitement en participant au développement ( = produit ouvert mais pas gratuit!) Prix : 5000 par serveur + 49 par utilisateur Actif + 5 / utilisateur passif «Pay or Contribute» licence
Produits concurrents Zope (Open Source et Gratuit)
Architecture de Jahia Utilise beaucoup de projets apache : Tomcat, Struts, Slide, Lucene, POI, Log4J, Ant, Taglibs, Turbine JCS, Commons, Regexp, ORO, Xerces, Xalan, Axis, Velocity...
Architecture principale On peut la découper en 4 Grandes parties : Les fondations Le système de gestion de contenu Le serveur de portail Le central d'administration
Architecture (Fondations) Noyau : services et l accès aux BD Personnalisation : gestion des droits utilisateurs Gabarits JSP Cache HTML pour économiser accès aux DB Générateurs de rendu final, (dans HTML notamment)
Architecture (serveur de portail) Permet d'intégrer des web applications écrites en JAVA
Archi. (Gestion de contenu) L architecture du noyau du CMS L interface graphique utilisateur du CMS La gestion de fichiers électroniques Le moteur de recherche Le traitement de données (workflow, versioning, contenu avant validation, etc.)
Arch. (Console d'administration) Partie Applicative qui gère l'administration du site Utilise notamment Struts (MVC/java) et ResourceBundle pour la gestion des langues
Architecture complete Jahia Future (Estimates) Java Applet MS 3rd ActiveX Word Party Web Authoring Dynamic Internal Link Checking / HTML verification (Tidy) Jahia Scripting Emails/ Forms Input XML Import Filter HTML Dynamic Static HTML Files Generation XML Export HTML Cache Proxy (Apache Jcache) Default Templates Templates Other Devices (WML; ) Dreamweaver Plug-in GUI Engines (Apache Struts) Dynamic Web Publishing Dynamic Aggregation Jahia Doctor Upgrade System Cache Management Objects Management Repository of Content User/Group Management Web Page Workflow / Time Publishing CMS Indexing and searching (Apache Lucene / Apache POI) CMS driven Features (Navigation Tools, Sitemap, Content Filtering and Sorting; Page splitting; ) Versioning Staging Multilanguage (Draft Mode) & I18N Wizards Portlets API (JSR 168) Business Process Workflow Portal Collaboration and Productivity Tools Web Apps Portlets Web Services (Servlets) Layout My Settings My Home Page Manager Engine Management J2EE API SOAP Workflow Engine (BPML) Workflow Editor (BPMN) Third Party Application Backups System Properties Jahia Foundation Installation Wizard Database Settings Maintenance Tools Virtual Site Management Admin Tools Document Management Full WebDAV Jahia Resources (Apache Slide) (Apache Slide) Objects Associations, Categories and Perspectives Global Repository of Objects Style Content WebApps Events, Logging, Stats And Notifications Personalization, Security (ACL), action permissions and user roles JSR 170 - Conten t API Third Party Application Internal Cache Systems (Apache Jcache) User, Admin and Development Documentation Debugging logs (Apache Log4j) / Development tool (Apache Ant) JXTA - P2P Third Party Application Admin Center Database Layer (O/R Mapping) High Availability / Load Balancing Apache Web Server J2EE Application Server RDBMS LDAP File System
Connectivité Par défaut, les infos sont enregistrées dans une base HyperSonicSQL Sinon les bases peuvent être : Oracle Microsoft SQL Server MySQL PostgreSQL Toute base compatible 99,999% SQL & JDBC3 Possibilité d'interconnecter plus de bases grâce à JDBC On peut aussi utiliser un serveur LDAP pour récupérer des données utilisateur
Installation Je l'ai réalisé sous Windows Très simple Choix des portlets à installer Nécessite la mise à jour de la variable d'environnement HOME_JAVA Prend du temps lors du premier lancement -> compilation des sources
Installation (2) Après le premier lancement de Jahia, configuration de la plate forme. d'administration. Jahia entièrement configurable via HTTP A la fin, phase de compilation assez longue
Installation sous Linux Décompresser le package de Jahia dans un repertoire chemin sans espaces! Lancement d'un script qui lance les serveurs Auparavant, il faut avoir supprimé les services qui peuvent utiliser le port 8080!
Gestion des Utilisateurs 6 rôles d'utilisateurs principaux Invité : utilisateur qui visite le site sans se logger. (ex. : utilisateur web lambda) Lecteur : Peut accéder à certains contenus privés du site Auteur : Peut modifier certains contenus du site Manager : Valide les contenus modifiés par l'auteur et les met en ligne Administrateur de site : a tous les privilèges + gestion des utilisateurs Super-administrateur : Peut faire des modification «bas niveau» : accès BD, sauvegardes... Un même utilisateur peut cumuler plusieurs
Création d'une page Basé sur le principe de template (modèle). Tous les outils de création de la page sont disponibles via l'interface WEB. Il est conseillé par Jahia de créer une arborescence cla
Etapes de publication d'une page Modification / ajout par un utilisateur (Auteur) + Traduction éventuelle. Corrections + Validation éventuelle par un «Manager». Mise en ligne des modifications. Conservation des versions précédentes de la page. Les étapes de validation et Versionning peuvent être éventuellement retirées.
Portlets Un Portlet représente un contenu qui change dynamiquement. Quelques Portlets disponibles : Forum
Administration du site Deux panneaux d'administration : Au niveau de la configuration du serveur (paramètres de bases de donnée) Au niveau de la configuration du site (gestion des utilisateurs, etc...)
Sécurité Existence d'utilisateurs avec des droits différents Notion d'access Control List pour définir les droits par défaut. Par défaut, les droits sont propagés par héritage à travers l'arborescence des pages.
Performances Très dépendant du système de base Base de données Serveur J2EE Machine virtuelle Java Qq conseils pour améliorer les performances : Précompiler sources avec Jikes Optimiser les bases de données
Pour plus d'info... www.jahia.org / www.jahia.com www.boomtchak.net Comparaison de différents CMS et infos diverses