Vue d ensemble technique

Dimension: px
Commencer à balayer dès la page:

Download "Vue d ensemble technique"

Transcription

1 DOCUMENTATION Vue d ensemble technique Jahia, le CMS open source de nouvelle génération apportant à vos projets la convergence applicative (web, document, social, recherche et portail) unifiée par la simplicité d utilisation des outils de gestion de contenu web. Jahia Solutions Group SA 9 route des Jeunes, CH-1227 Les acacias Genève, Suisse

2 Sommaire 1 Introduction Vue d ensemble Qu est ce que Jahia? Les différentes couches Configuration technique Tout est Contenu, quel que soit le type ou la source Personnalisation par les intégrateurs et les développeurs Technologies intégrées Aperçu de l architecture Les modules Les différents acteurs de Jahia Couche Web Flux des contenus Templates et vues Le Jahia Template Studio Templates de pages Templates de contenu L API REST Actions Exemple : Application native pour iphone/ipad Rendu sur appareil mobile Macros Filtres Couche back-end Workflow JBoss Drools et les écouteurs d évènements Repository de fichiers Recherche et indexation Page 2 sur 36

3 4.4.1 Requêtes plein texte utilisant des bibliothèques de tags de recherche Langages de requête Authentification et autorisation Single Sign-On Rôles et permissions Importation et exportation Publications distantes Portlets Portlets contre Modules Performances Cache Types de caches La couche de cache du navigateur La couche de cache HTML front-end Les caches de bases de données Clustering Nœuds visiteurs Nœuds de rédaction Nœuds de traitement Ressources supplémentaires sur les performances Pour en savoir plus Page 3 sur 36

4 1 Introduction Ce document est une introduction technique à Jahia. Il est conçu pour un public ayant des connaissances techniques (intégrateurs, développeurs, testeurs, etc.), afin de les aider à démarrer avec Jahia. Il ne s agit pas d un guide utilisateur ou administrateur. Veuillez vous référer aux documents correspondants si tel est votre besoin. Ce document comporte cinq sections : 1. une vue d ensemble de Jahia, ce dont il s agit, les différents types d acteurs impliqués, la configuration technique requise, les technologies et les frameworks intégrés ; 2. la couche Web qui est une description de la couche exposée au navigateur, et la façon dont elle est liée aux divers composants dans Jahia, et dont ceux-ci peuvent être utilisés pour construire des applications Web puissantes ; 3. la couche back-end, qui contient une description de tous les différents services et technologies disponibles dans Jahia. Ce back-end est utilisé par la couche Web mais dans certains cas, elle peut également être utilisée directement par les intégrateurs, par exemple dans le cas de l intégration de workflows personnalisés ; 4. une section sur les performances et la façon dont Jahia gère les scénarios très exigeants en termes de charge ; 5. pour terminer, une section présentant diverses ressources supplémentaires à disposition des développeurs et intégrateurs, allant des ressources en ligne aux contrats de support payants. 2 Vue d ensemble Cette section propose une vue d ensemble globale des éléments composant un système Jahia et apporte un éclairage sur les sujets suivants : Qu est ce que Jahia? Les différentes couches Configuration requise Comment Jahia interprète le paradigme «Tout est Contenu» Quelles technologies sont intégrées dans Jahia Aperçu de l architecture Modules : qu est-ce que c est? Les différents acteurs de Jahia 2.1 Qu est ce que Jahia? Jahia peut représenter beaucoup de choses différentes pour beaucoup de personnes différentes. La plupart des projets l utiliseront comme solution de gestion de contenus Web (également appelée WCM, ou Page 4 sur 36

5 tout autre nom à la mode au moment où vous lirez ceci), tandis que d autres s en serviront comme serveur de portail, plateforme d intégration Web, ou même comme une solution d intégration de contenu à part entière. Ce qu est Jahia en réalité, c est un logiciel qui écoute les requêtes HTTP et est capable de produire des réponses en HTML, en n importe quel langage à balises ou même sous forme de données binaires dont les utilisateurs pourraient avoir besoin. Au cœur de Jahia, on trouve un repository où sont stockés et d où sont servis les contenus, ainsi qu une grande variété de moyens disponibles pour déployer des logiques personnalisées destinées à agir sur le contenu ou à interfacer avec des systèmes tiers. Voici la vision longue-portée de Jahia, qui devrait vous donner une bonne idée de la souplesse du système. 2.2 Les différentes couches Si vous avez trouvé la description que nous venons de faire de Jahia un peu trop abstraite, alors celle qui suit devrait plus vous aider. Jahia est composé des couches suivantes : un conteneur de servlet (Apache Tomcat, Oracle WebLogic, IBM WebSphere ou autre) un ensemble de filtres et de servlets qui forment la couche externe de Jahia un ensemble de beans Spring qui constituent l architecture principale de Jahia un ensemble de modules pour étendre les fonctionnalités de base une implémentation JCR pour le stockage de contenus (Apache Jackrabbit 2.x) un conteneur de portail (Apache Pluto 2.x) un planificateur de tâches (Quartz) un moteur de workflow (jbpm) un moteur de règles (Drools) Bien entendu, il s agit d une vision très simplifiée des éléments qui composent Jahia, mais cela devrait vous aider à identifier le type de technologies à l œuvre. 2.3 Configuration technique La configuration minimale requise pour Jahia est la suivante : Oracle JDK 1.5 ou version supérieure, JDK 100% compatibles 32 bits ou 64 bits une API servlet 2.4 / conteneur JSP Go de RAM système d exploitation Windows, Linux (RedHat, Ubuntu), Mac OS X Configuration recommandée : Oracle 64 bits JDK 6 ou version supérieure Page 5 sur 36

6 Apache Tomcat 6.x 4 Go de RAM Linux Ubuntu ou RedHat, noyau 64 bits 2.4 Tout est Contenu, quel que soit le type ou la source On peut également présenter Jahia sous l angle du paradigme «Tout est Contenu», auquel nous avons ajouté «quel que soit le type ou la source» pour rester fidèles à notre vision des premiers jours. Depuis le début, Jahia agrège toutes sortes de contenus dans des pages, y compris des contenus dynamiques comme des portlets (et même de simples Webapps, avant l avènement de la standardisation des portlets). Jahia a toujours été capable de faire cohabiter des applications et du contenu sur les mêmes pages Web. Aujourd hui, Jahia 6.6 va encore plus loin en permettant de construire facilement des applications centrées sur les contenus, également appelées applications composites, qui facilitent la création d applications puissantes partageant un entrepôt de contenus en back-end. En d autres termes, travailler avec Jahia revient à manipuler du contenu et à définir des vues ainsi que des règles qui doivent être exécutées quand un évènement se produit sur le contenu. Tout élément de contenu stocké dans Jahia (documents texte, image, PDF, références de portlets, gadgets OpenSocial ou Google) est considéré comme contenu et partage donc : des propriétés communes (nom, UUID, métadonnées, etc.) des services communs (interface d édition, permissions, versions, etc.) des systèmes de rendu et de manipulation communs Le contenu est stocké selon une structure hiérarchique (qui utilise le standard Java Content Repository, ou JCR), mais comme le verrez il existe d autres façons de le requêter ou d agir dessus Personnalisation par les intégrateurs et les développeurs Les utilisateurs finaux voient peut-être Jahia comme un produit, mais pour les développeurs et les intégrateurs, c est aussi une plateforme très puissante que l on peut configurer et étendre pour répondre à un large éventail de besoins. Voici quelques-uns des différents types de personnalisation possibles : Intégration et personnalisation o de templates o de modules Jahia d origine Développement Page 6 sur 36

7 o de nouveaux modules à utiliser dans les pages o de nouveaux éléments logiques (règles, filtres, actions, classes) o de nouvelles fonctions ajoutant des fonctionnalités à Jahia Configuration o de workflows o de rôles et de permissions o de l interface utilisateur 2.5 Technologies intégrées Jahia embarque un grand nombre de technologies et de frameworks différents. Cette section vous donnera un aperçu de ceux qui sont inclus dans Jahia et de la façon dont ils sont utilisés. Jahia stocke toutes ses données dans un Java Content Repository (JCR) (Apache Jackrabbit 2.x) : o deux workspaces sont utilisés dans le JCR, un pour le contenu en cours d élaboration (appelé default ) et un pour le contenu publié (appelé live ) o le contenu JCR est stocké dans une base de données SQL (MySQL, PostgreSQL, Oracle, MSSQL, etc.). Pour des raisons de performance, les données des nœuds sont stockées sous forme sérialisée. Jahia intègre en son cœur : o le noyau (services et frameworks), contenant lui-même : Apache Lucene comme moteur de recherche et d indexation Apache Camel comme moteur d intégration d entreprise le framework Spring comme technologie d injection de dépendances et de configuration de beans (et bien plus encore ) Google Web Toolkit avec des extensions Sencha GXT pour l interface en Modes Édition et Studio JQuery et des extensions pour les Modes Contribution et En ligne JBoss Drools comme moteur de règles JBoss BPM comme moteur de workflow o des modules (extensions et templates) qui contiennent : XWiki comme moteur de wiki Apache Shindig (implémentation OpenSocial) des connecteurs LDAP des outils d optimisation pour les moteurs de recherche (SEO) des tags et des nuages de tags Page 7 sur 36

8 2.6 Aperçu de l architecture Comme vous pouvez le voir, les couches supérieures sont de simples couches de rendu et de communication, tandis que les services sous-jacents sont plus modulaires. Les cases bleues représentent ce qui est proposé dans les services de base, en tant que modules de base ou en tant que framework, tandis que les cases oranges montrent que les modules ne servent pas qu à ajouter des définitions de contenu, mais aussi des règles logiques personnalisées et plus encore. La version 6.5 de Jahia a marqué l arrivée des modules dans l architecture. Avant cette version, pour intégrer des extensions à Jahia il fallait déployer des beans Spring, mais il n était pas vraiment possible de packager ceux-ci efficacement. Depuis Jahia 6.5, on peut packager des modules dans des fichiers WAR que l on peut ensuite déployer pour étendre ou compléter les fonctionnalités du logiciel. Un grand nombre des fonctionnalités livrées avec Jahia sont en fait des modules, par exemple le Mode Contribution ou les sets de templates. Page 8 sur 36

9 2.7 Les modules Les modules sont un composant très important de Jahia 6.6 et on peut les considérer comme l infrastructure de plugins de Jahia. Ils sont composés de répertoires et de fichiers packagés dans un fichier WAR puis copiés dans le répertoire WEB-INF/var/shared_modules de Jahia pour leur déploiement. Lorsqu il détecte le nouveau fichier, Jahia déploie alors les contenus dans le répertoire modules/. Les modules peuvent aussi bien être très simples, par exemple la définition de nouvelles vues pour des types de contenus existants, que très complexes avec l implémentation de nouvelles couches de communication comme OpenSocial ou l implémentation de fournisseurs d utilisateurs et de groupes LDAP en back-end. Les sets de templates (voir ci-après la section sur le Jahia Template Studio) sont également packagés comme des modules, ce qui les rend faciles à déployer et mettre à jour. Parmi les avantages des modules : ils sont réutilisables : comme ils sont autonomes, il est facile de les déplacer d environnements de développement vers des environnements de travail ou de production. On peut également les réutiliser facilement sur d autres projets ou les partager avec d autres personnes. De plus, comme il est possible d hériter de modules existants, il est extrêmement facile d étendre un module livré avec Jahia. la maintenance : comme ce sont des blocs autonomes, ils peuvent se concentrer sur un cas d utilisation précis (comme dans le cas d un module forum), ce qui facilite la maintenance et l évolution. le fiabilité : si un module plante, c est la seule partie du système qui sera indisponible, le reste de la plateforme continuera à répondre aux requêtes. la séparation des tâches : comme les modules peuvent être intégrés plus tardivement, cela facilite le partage des responsabilités entre les membres d une équipe. Ainsi, un développeur travaillera principalement sur les modules, soit pour en créer des nouveaux, soit pour compléter ceux qui sont livrés avec Jahia. Il pourra également partager son travail (ou réutiliser les contributions d autres personnes) sur Jahia Forge ( Un module peut contenir : des définitions de contenus des scripts d affichage (JSP, des langages compatibles JSR-286 comme Velocity ou Freemarker, ou même PHP*) des ressources statiques (fichiers texte, image, CSS, Javascript) des bundles de ressources ou autres fichiers de propriétés Page 9 sur 36

10 des classes Java ou des librairies JAR des filtres des définitions de permission et de rôles des définitions de workflow Rules jbpm des bibliothèques de tags des fichiers de configuration Spring Framework des fichiers d importation de contenu (au format XML) Notez que la présence d aucun de ces fichiers n est obligatoire, et que vous pouvez tout à fait créer un module vide, même si ça ne vous servira pas à grand chose. * Via l intégration du moteur PHP Quercus de Caucho, susceptible d être soumis à une licence commerciale selon les besoins de déploiement. 2.8 Les différents acteurs de Jahia Dans cette section, nous allons présenter les différents types d acteurs qui peuvent jouer un rôle dans un système Jahia, et la façon dont ils sont liés à différentes activités. Page 10 sur 36

11 Les développeurs, les intégrateurs et les Webmasters utiliseront principalement le Studio ainsi que les modules pour créer des templates, des modules afin que les autres utilisateurs puissent utiliser un système adapté à leurs besoins. Dans ce rôle, ils seront en mesure de fixer la présentation et l ergonomie du site Web, ainsi que les définitions de contenus, les règles ou tout autre logique personnalisée. Les Webmasters et/ou les rédacteurs utiliseront ensuite le fruit de ce travail pour remplir le site de contenu, à l aide des Modes Édition et/ou Contribution. Le Mode Édition est une interface d édition de contenu vraiment puissante, principalement destinée à des utilisateurs avancés, tandis que le Mode Contribution est une interface d édition de contenu facile à utiliser, conçue pour les rédacteurs de contenu. Il faut également noter que les intégrateurs sont libres de personnaliser le Mode Contribution selon leurs besoins, afin de façonner au mieux l expérience pour les rédacteurs. Une fois que les rédacteurs seront satisfaits de leur contenu, ils pourront utiliser le workflow pour publier les modifications vers le workspace live (ou bien s ils ne sont pas autorisés à le faire directement, ils pourront lancer le processus de validation), ce contenu devenant alors accessible aux visiteurs du site. Les visiteurs pourront alors naviguer sur le site, et s ils y sont autorisés, ils pourront également créer du contenu UGC (contenu généré par l utilisateur) dans des modules comme le forum, le wiki ou tout autre composant déployé sur le site. 3 Couche Web Cette section détaille la couche Web d un système Jahia. Cette couche est à la fois souple et puissante, nous allons donc : passer en revue le flux des contenus ; puis présenter la façon dont une page est interprétée. 3.1 Flux des contenus Afin de mieux comprendre la façon dont Jahia fonctionne avec les contenus, nous avons illustré ces flux dans le schéma suivant : Page 11 sur 36

12 Si on lit ce schéma du bas vers le haut, le développeur peut créer différents types d objets, des définitions de contenus jusqu aux macros, qui seront utilisés par Jahia pour personnaliser l expérience pour les autres utilisateurs. Nous allons maintenant nous intéresser brièvement aux différents types d objets : Définitions : les définitions de contenu définissent le type d objets qui seront édités dans le système ainsi que leur structure. Il peut d agir de simples propriétés tout comme d arborescences complexes. Règles : les règles définissent des conséquences (similaires aux actions) qui doivent être exécutées lorsqu une certaine condition est remplie. Elles permettent par exemple de surveiller les modifications apportées aux objets de contenus (par exemple, des créations de page), puis de déclencher le type de conséquence désiré. Actions : les actions sont similaires aux appels de méthodes, sauf qu elles sont appelées depuis l API REST. Les développeurs ont le choix d utiliser des actions existantes (comme createuser ou startworkflow) ou bien de définir leurs propres actions pour répondre à leurs besoins. Ce mécanisme d extension simple mais néanmoins puissant permet d exécuter quasiment n importe quelle tâche dans le back-end Jahia à partir d un appel REST. Templates : les templates sont définis dans le Jahia Template Studio. Ils facilitent la conception de mises en page et de dispositions de contenus que l on peut ensuite utiliser lorsque l on crée une page ou que l on affiche des éléments de contenu (par exemple, des articles de news). Les templates peuvent être packagés sous forme de sets de templates avant d être déployés sur n importe quels sites Web ou déplacés d un environnement de travail à un environnement de production. Les sets de templates peuvent également Page 12 sur 36

13 contenir du contenu pré-établi, ce qui peut s avérer utile et très puissant si l on veut par exemple créer des usines à sites Web. Scripts : ils sont utilisés pour le rendu de types d objets de contenu particuliers. Le type de scripts par défaut est JSP, mais Jahia supporte tout langage de script compatible avec l API Java Scripting ( par exemple Velocity, Freemarker ou même PHP. Plusieurs scripts peuvent être fournis pour un seul type de nœud : on les appelle des vues dans Jahia. Macros : on peut également définir des macros pour procéder à des substitutions rapides sur la sortie finale d une page Jahia. Les macros sont exécutées même si une page est récupérée dans le cache HTML, elles peuvent donc s avérer très utiles pour personnaliser rapidement la sortie d une page. Il faut néanmoins surveiller les performances car les macros sont exécutées en permanence ; elles doivent donc toujours s exécuter très rapidement. Les rédacteurs pourront alors se connecter au système et commencer à créer des sites, des pages et autres types de contenus définis par les développeurs. Ils utiliseront le puissant Mode Édition de Jahia ou bien le Mode Contribution, plus simple, pour créer du contenu et construire le site, brique par brique. Lorsqu ils ajoutent du contenu, les règles et les actions sont mis en œuvre pour exécuter des actions logiques, et enfin les templates, les scripts, puis les macros sont mis à contribution pour produire le résultat en HTML. Les visiteurs peuvent surfer anonymement, ou bien se connecter au système, naviguer sur le site et interagir avec les types d objets dynamiques que les développeurs et les rédacteurs ont mis à leur disposition (un forum ou bien une liste de commentaires, par exemple). Le contenu qu ils fournissent est appelé UGC (User-Generated Content : contenu généré par l utilisateur). Une fois encore, Jahia utilisera les templates, les scripts et les macros pour afficher les pages pour les visiteurs, et s ils sont autorisés à soumettre du contenu, les règles, les actions et les définitions de contenu entreront alors à nouveau en scène (cela n est pas illustré ci-dessus afin de maintenir le schéma le plus simple possible). 3.2 Templates et vues Comme nous l avons vu dans la section précédente, Jahia 6.5 a introduit un nouveau système de templates éditables qui facilite la personnalisation basique ou même complexe de mises en page sans nécessiter de connaissances en programmation. Afin de mieux comprendre la composition d une page, nous allons maintenant illustrer ce système dans le schéma suivant : Page 13 sur 36

14 Exemple : Dans l exemple ci-dessus, nous appelons dans le Java Content Repository un objet de contenu qui est situé sur la page d accueil (home) et qui s appelle bellini. Jahia va donc d abord utiliser l URL pour trouver l objet de contenu correspondant, puis chercher les différents objets qui permettront d afficher la page finale. Dans cet exemple précis, nous n appelons pas une page, mais directement un objet de contenu, ce qui est un peu plus complexe. Si nous avions voulu afficher la page, nous aurions utilisé l URL suivante : Jahia aurait alors cherché un template de page, l aurait examiné pour trouver les différents objets présents dans la page, puis aurait utilisé les vues pour afficher chaque type d objet spécifique. Dans l exemple ci-dessus, nous avons illustré un cas d utilisation plus avancé, où l on appelle directement un objet de contenu. Si notre objet de contenu n était qu un script d affichage, alors en appelant l objet seul, nous n obtiendrions probablement qu un fragment de HTML au lieu d une page complète (puisque les vues d objets sont conçues pour être réutilisées à l intérieur des pages). Afin d éviter cela, Jahia dispose d un mécanisme appelé template de contenu qui permet aux intégrateurs de concevoir un template spécifique Page 14 sur 36

15 à un type d objet de contenu qui sera utilisé pour décorer autour de l objet, ce qui permet par exemple d afficher le menu de navigation, les en-têtes et les pieds-de-page autour de l objet. L affichage d une page HTML complète pour un objet de contenu isolé devient alors comparable à l affichage d une page de contenu standard. 3.3 Le Jahia Template Studio Comme les templates ne sont pas des scripts mais qu ils sont définis dans le repository de contenu, Jahia 6.6 d un outil pour les éditer, appelé le Jahia Template Studio. Un template est en fait un ensemble de nœuds qui vont définir la présentation d une page, permettant aux utilisateurs sans expérience en programmation ou en HTML de modifier ou de mettre à jour facilement des templates existants. Pour les utilisateurs avancés ayant une bonne connaissance de JCR, il est même possible d exporter le template en XML, de le modifier puis de le réimporter dans Jahia, si vous le souhaitez. Les templates sont regroupés en sets de templates, que l on peut ensuite choisir de déployer sur un site dans la même installation Jahia, ou bien de packager sous forme d un module exporté dans un fichier WAR pour être déployé sur une autre instance de développement ou sur une autre installation de Jahia, de travail ou de production par exemple Templates de pages Les templates de pages sont les types de templates par défaut, mis à la disposition des rédacteurs lorsqu ils créent une nouvelle page. À cette étape, le rédacteur peut indiquer le template qu il souhaite utiliser et qui définira la présentation de la page. La construction de façon verticale de templates structurés destinés au site en particulier aidera beaucoup les administrateurs de sites à s assurer que les sites sont structurés et présentés de manière cohérente, et cela les aidera également à faire des modifications ultérieurement. Les templates de pages (et les templates de contenu) peuvent également hériter d un template parent, vous pouvez donc avoir par exemple un template de base avec une structure très libre, puis en hériter pour construire des templates avec des structures plus rigides Templates de contenu Comme nous l avons vu dans le schéma des flux de contenus, les templates de contenus sont utilisés lorsqu une URL appelle un objet de contenu d un autre type qu une page. Il est donc possible de décorer un type de contenu en y ajoutant un menu de navigation, un en-tête, un pied-de-page ou tout autre élément de page souhaité, via la création d un template associé à une liste de types avec lesquels il doit Page 15 sur 36

16 être utilisé (dans l interface du Jahia Template Studio). Cela est très utile pour créer des vues référence/détail, ou la liste de référence des objets serait affichée sur une page, et la vue détaillée serait un unique objet de contenu affiché avec un template de contenu. Par exemple, imaginons que l on a des articles de news dans nos définitions, et que l on souhaite afficher un seul article de news sur une page HTML. On pourrait avoir une page d accueil qui afficherait une liste des résumés des dix derniers articles de news, et chacun d entre eux comporterait un lien vers l article de news en vue détaillée, avec toutes les informations et les sous-objets liés qui s affichent. La page d accueil serait affichée à l aide d un template de page et la vue détaillée de l article de news serait affichée à l aide d un template de contenu associé aux objets de type article de news. 3.4 L API REST Jahia 6.6 propose une API REST simple mais puissante permettant des opérations CRUD (Create, Retrieve, Update et Delete) sur le contenu. Elle permet également des opérations plus avancées comme la recherche, le déclenchement d actions (intégrées ou personnalisées), ainsi que l authentification. Jahia utilise également cette API dans divers modules (comme le Mode Contribution tout entier) pour implémenter leurs fonctionnalités, à l aide de technologies AJAX comme le JQuery. L accès à un élément de contenu dans l API REST se fait via une convention d URL : où : pe) Exemple : servername : le nom d hôte associé à un site, ou simplement le nom d hôte du serveur ou l adresse IP si aucun site n est associé à un nom d hôte serverport : un numéro de port optionnel si Tomcat n est pas configuré pour écouter le port 80, ou si aucun serveur Apache n a été mis en place devant Tomcat context : le contexte dans lequel Jahia est déployé (vide si Jahia est déployé en tant qu application root) servlet : la servlet que vous souhaitez utiliser. La plupart du temps, il s agira de la servlet /cms/render qui est la servlet de rendu de page principale, mais vous pourriez aussi avoir besoin d utiliser /cms/login, /cms/logout ou /cms/find workspace : live (version publiée) ou default (version en travail) lang : le code langue pour la langue que vous souhaitez afficher ou modifier path : le chemin vers un nœud (dans l exemple ci-dessus, /sites/acme/home.html ) Page 16 sur 36

17 view : une vue optionnelle. templatetype : le type de rendu désiré. La plupart du temps, ce sera.html, mais vous pouvez tout aussi bien appeler.csv,.xml ou.rss. Bien entendu, cela suppose que les vues correspondantes aient été configurées dans le système. Nous fournissons également un système d URL rewriting ainsi qu un système de Vanity URL pour l optimisation SEO. En réalité, l explication ci-dessus concerne plutôt les intégrateurs et les développeurs qui veulent utiliser l API REST. Maintenant que nous avons détaillé le format de l URL, voyons les méthodes que l on peut appeler dans une URL. L API REST propose les méthodes CRUD (Create, Retrieve, Update and Delete) de base qui sont mappées aux méthodes standard HTTP : GET affichera le nœud POST créera un nouveau nœud (ou appellera une action) PUT mettra à jour le nœud DELETE supprimera le nœud On peut avoir des méthodes supplémentaires en utilisant des actions Actions Les actions sont un point d extension aux méthodes HTTP par défaut fournies dans l API REST. Les méthodes peuvent être définies dans des modules et simplifient la réalisation d opérations supplémentaires sur les nœuds. Voici un exemple d action appelée dans une URL : POST Toutes les actions utilisent l extension *.do à la fin. L exemple ci-dessus initiera un processus de workflow sur le nœud /sites/acme/home. Des paramètres supplémentaires peuvent être spécifiés en utilisant la chaîne de requête d URL, bien qu il soit conseillé d utiliser des paramètres de corps HTTP. Voici quelques exemples supplémentaires d actions fournies par Jahia : NewUser (module : userregistration) PublishFile (module : docspace) MailAction (module : formbuilder) GetFeed (module : feedimporter) DocumentConverterAction (module : docconverter) Page 17 sur 36

18 Comme vous pouvez l imaginer, cela simplifie l utilisation d actions de contenu directement dans un formulaire HTML, sans aucun Javascript (dans cet exemple, appel à l action newuser ) : <form method="post" action="<c:url value='${currentnode.path}.newuser.do' context='${url.base}'/>" name="newuser" id="newuser"> Exemple : Application native pour iphone/ipad Le prototype d application iphone/ipad native conçu par Jahia est un exemple intéressant, illustrant l utilité de l API REST. L application native se connecte à Jahia au démarrage, récupère un fichier de configuration contenant différentes propriétés d écran, notamment des requêtes qui seront exécutées avec la servlet REST find. Les résultats sont générés avec une sortie JSON. L application native peut alors afficher le contenu comme elle l entend. Le fait de disposer du contenu au format JSON facilite l adaptation à différentes tailles d écran, le prototype natif étant une application pour iphone et ipad à la fois. L application est également capable de créer de nouveaux contenus via des requêtes HTTP POST qui créeront de nouveaux objets de contenus. Tout cela est plutôt optimal et intégré avec l authentification, puisque les servlets de connexion et de déconnexion sont également utilisées. Comme on peut le constater dans l exemple ci-dessus, l application native affiche le contenu de la démo ACME, avec le rendu natif de l appareil. Cela permet une expérience utilisateur forte sur mobile tout en ayant exactement la même base de contenu. On peut également mettre les données en cache dans le client natif, pour une consultation hors-connexion. Page 18 sur 36

19 3.5 Rendu sur appareil mobile Il existe une alternative au rendu des applications natives : il est possible d utiliser la variable user agent du navigateur pour changer le type de template afin d adapter les tailles et les menus de navigation aux dimensions des appareils mobiles. Jahia permet de configurer la détection du user agent à l aide d expressions régulières et de changer le type de template dynamiquement afin de permettre le passage à des scripts alternatifs pour afficher le contenu. Par exemple, avec la configuration suivante dans le fichier WEB-INF/etc/spring/applicationrenderer.xml : <bean class="org.jahia.services.render.filter.useragentfilter"> <property name="priority" value="6" /> <property name="applyonmodes" value="live,preview" /> <property name="applyonconfigurations" value="page" /> <property name="useragentmatchingrules"> <map> <entry key=".*iphone.*" value="iphone" /> <entry key=".*ipod.*" value="iphone" /> <entry key=".*ipad.*" value="iphone" /> <entry key=".*android.*" value="iphone" /> </map> </property> </bean> Cela signifie que si un user agent d iphone ou d Android est détecté, on cherchera d abord un script d affichage dans un répertoire de scripts html-iphone, et si celui-ci n existe pas, on utilisera par défaut un répertoire html. Ce mécanisme simple mais puissant permet de procéder à toutes sortes de détections de user agent. On pourrait même l utiliser pour adapter le rendu avec différents types de navigateurs sur ordinateur (les anciennes versions, par exemple). Il est également possible d utiliser des solutions du type Apache Mobile Filter ( capables d exposer les caractéristiques techniques des appareils mobiles sous forme d attributs de requêtes si l on a besoin d une plus grande maîtrise sur le rendu de la page. Cela peut également être un bon candidat pour un filtre, ou bien vous pourriez intégrer WURFL ( en tant que module. 3.6 Macros Comme mentionné dans le flux des contenus, Jahia a également un mécanisme de macros, permettant d insérer des marqueurs dans les pages (même dans un champ de texte libre) qui seront dynamiquement Page 19 sur 36

20 remplacés par les valeurs correspondantes. Cela peut être utile par exemple si vous voulez utiliser une macro pour insérer le nom d un utilisateur, ou toute autre valeur. Les macros peuvent être définies dans les modules comme des fichiers de script JSR-223 réagissant à une syntaxe spécifique (par exemple : {getconstant} ou {username}). Jahia est également livré avec quelques macros, par exemple : Affichage de constantes stockées dans les propriétés d un nœud Génération de jetons de formulaires (form tokens), afin d éviter les soumissions multiples du même formulaire Affichage du nom de l utilisateur courant 3.7 Filtres Les macros nécessitent l insertion d un marqueur dans la page pour que le contenu soit inséré, il peut donc arriver que vous souhaitiez filtrer le flux de sortie et opérer des transformations en temps réel. Pour cela, on peut utiliser des filtres. Par exemple, il peut être utile d utiliser un filtre pour transformer toutes les adresses détectées et les remplacer par une version masquée qui évitera qu elles ne soient détectées par les robots des spammeurs. Jahia est livré avec différents filtres, mais vous pouvez bien entendu développer les vôtres. En voici une liste non-exhaustive : portlet process action filter (pour le support des portlets) static asset filter (injecte du Javascript et du CSS dans l en-tête d une page HTML) metrics logging filter (rassemble des statistiques sur les affichages d objets) user agent dispatcher (pour le rendu sur appareil mobile) HTML cache obfuscator (détection et protection d adresses ) et bien plus encore Comme vous le voyez, certains filtres sont assez puissants, tandis que d autres peuvent être réservés à un usage très précis. Les filtres sont une partie importante du fonctionnement interne de Jahia. 4 Couche back-end Cette section présente les diverses technologies et frameworks disponibles dans la couche back-end de Jahia. Page 20 sur 36

21 4.1 Workflow Jahia embarque le moteur de workflow jbpm 4 ( qui permet de supporter l intégration de workflows avancés via la définition de workflows, en utilisant la spécification BPMN 2.0. L interface de Jahia intègre les écrans de workflow afin que l expérience soit la plus transparente possible pour les utilisateurs finaux, qui n auront jamais à quitter l interface Jahia pour procéder à des opérations de workflow (à moins que les intégrateurs ne le souhaitent, bien entendu). Il est également compatible avec tout outil de définition de workflow graphique compatible avec jbpm, comme l outil de modélisation Web Signavio ( 4.2 JBoss Drools et les écouteurs d évènements Souvent, lorsque des modifications sont effectuées sur le contenu, les intégrateurs vont se trouver face au besoin d exécuter une action particulière quand un évènement se produit. Dans des versions précédentes de Jahia, les écouteurs d évènements pouvaient être écrits soit dans des classes Java soit dans des fichiers JSP, ou même des scripts Groovy. Depuis la version 6.5 ce système a été remplacé par un système de règles basé sur JBoss Drools bien plus puissant et facile à utiliser. Voici un exemple de règle: rule "Image update" salience 25 #Rebuild thumbnail for an updated image and update height/width when A file content has been modified - the mimetype matches image/.* then Create an image "thumbnail" of size 150 Create an image "thumbnail2" of size 350 Set the property j:width of the node with the width of the image Set the property j:height of the node with the height of the image Log "Image updated " + node.getpath() end Comme vous le voyez, les règles ressemblent à la formulation de l anglais, ce qui rend plus faciles son utilisation et sa lecture pour les intégrateurs. Évidemment, le vocabulaire des conditions et les conditions elles-mêmes peuvent être étendus dans n importe quel module, facilitant la création de réponses à n importe quel évènement par n importe quelle action. Page 21 sur 36

22 4.3 Repository de fichiers Jahia 6 était la première version à utiliser Java Content Repository comme repository de fichiers standard et à élaborer des services sur cette base. En fait, l intégration de Jackrabbit ne constitue pas une forte dépendance, puisque Jahia utilise l API JCR standard pour permettre l accès à plusieurs repositories. Dans Jahia 6 il était déjà possible d accéder aux repositories de fichiers CIFS/SMB, et il existe quelques autres exemples d implémentation (parmi lesquels des connecteurs FTP, Alfresco, Exo Platform, Nuxeo). Au dessus des services de repository de fichiers, différentes interfaces exposent du contenu via des interfaces variées comme WebDAV, la navigation dans les fichiers de template et l interface AJAX de Jahia. De l autre côté du repository, l intégration avec un moteur de règles est utilisée entre autres pour la génération de vignettes d images et l extraction de métadonnées. Ce moteur de règles accepte également des plugins et peut être étendu par les intégrateurs pour exécuter d autres règles logiques lorsque se produisent certains évènements de repository. 4.4 Recherche et indexation Jahia est livré avec de grandes capacités de recherche et d indexation, et ce grâce à la combinaison de plusieurs frameworks dans le but de proposer les fonctionnalités suivantes : recherches plein texte (Apache Lucene) support de langages de requêtes multiples (Apache Jackrabbit) facettes (Apache Solr) reformulation : «Voulez-vous dire?» (Apache Solr) Open search des connecteurs pour d autres index de recherche, comme Alfresco via des connecteurs EntropySoft (disponible dans notre extension Jahia Unified Content Hub) Afin d utiliser les fonctionnalités ci-dessus, Jahia propose deux technologies : des bibliothèques de tags de recherche plein texte ou des langages de requête Requêtes plein texte utilisant des bibliothèques de tags de recherche La fonctionnalité de requête plein texte est possible grâce à un ensemble de tags destinés à rechercher selon la correspondance entre du texte simple et des propriétés d objets de contenu ou des contenus de fichiers. Elle renvoie des résultats sous forme d occurrences contenant des informations comme l objetcible correspondant à la recherche, un extrait du contenu et le degré de correspondance. Elle prend Page 22 sur 36

23 également en charge des options de recherche définies par le standard JSR-283, par exemple des mots optionnels, des mots obligatoires ou à exclure, une recherche par phrase ou par mot, etc.). Voici un aperçu des fonctionnalités disponibles avec l utilisation de requêtes plein texte : recherche sur l intégralité du contenu d un site recherche sur plusieurs sites sur le serveur recherche à l intérieur des fichiers stockés dans le repository de contenus recherche à l intérieur des fichiers stockés dans des repositories externes (seulement avec l extension Jahia United Content Hub) mise en surbrillance des termes recherchés dans la page de résultats classement par degré de correspondance exclusion de propriétés correspondantes (via des paramètres de définition de contenus) limitation des résultats pour améliorer les performances Les requêtes plein texte sont un moyen formidable de proposer une fonctionnalité de recherche facile à utiliser mais néanmoins puissante dans une installation Jahia, mais elles ne seront pas très efficaces pour des requêtes plus ciblées, par exemple pour récupérer la liste des dix derniers articles de news, ou autres requêtes similaires. C est précisément là que les langages de requête deviennent intéressants Langages de requête Les langages de requête sont en fait une fonctionnalité native dans une implémentation conforme à JCR comme Apache Jackrabbit. Ces langages de requête sont fonctionnellement équivalents, mais diffèrent dans leur implémentation et leurs scénarios d utilisation. Ils permettent de procéder à des requêtes avec des conditions complexes et un classement des résultats, ainsi que dans certains cas des jointures sur plusieurs types d objets de contenu. Le résultat de la requête est une liste de nœuds qui correspondent, classés selon les propriétés spécifiées. Voici un aperçu des fonctionnalités offertes par ce type de requêtes : recherche par type de contenu (article de news, billet, etc.) des conditions complexes basées sur les propriétés, voire dans le cas de SQL-2 ou de Query Object Model, des jointures. intégration avec la recherche à facettes intégration avec la mise en cache HTML en front-end Les langages de requête suivants sont disponibles : SQL- 2 : similaire au langage de bases de données SQL standard si facile à utiliser pour les développeurs. Les requêtes sont parsées et transformées en requêtes Java Query Object Model avant d être exécutées. Comme ce langage fait partie de JCR v2, il est Page 23 sur 36

24 relativement nouveau et pêche par sa jeunesse au niveau de l implémentation, notamment pour la performance des jointures. Pour des requêtes plus simples il s en sortira très bien, mais pour des cas plus complexes il est conseillé d utiliser XPath en attendant que l implémentation de ce langage n évolue. JQOM (Java Query Object Model) : il s agit d une représentation en objet Java d une requête JCR v2. On peut construire ces requêtes à l aide des bibliothèques de tags de recherche fournies par Jahia, ou bien directement à partir de code Java. Les requêtes SQL-2 et JQOM sont assez ressemblantes, sauf que les requêtes JQOM évitent l étape de parsing et sont donc légèrement plus rapides. En pratique, il est assez rare que le JQOM soit utilisé, mais cela pourrait être intéressant dans certains cas. XPath : bien que désigné comme obsolète dans JCR v2, ce langage est toujours disponible dans Apache Jackrabbit et est de loin le langage de requête le plus optimisé. Il n est pas aussi facile à utiliser que le SQL-2 mais il est très utile pour construire des requêtes très rapides et ces bonnes performances valent bien les efforts supplémentaires pour concevoir la requête. Il existe quelques astuces à connaître concernant la recherche sur un contenu multilingue, puisque cela n est pas aussi transparent que dans le cas des deux autres implémentations, mais même Jahia l utilise en interne pour sa vitesse lorsque les performances du SQL-2 ne sont pas assez rapides. Jahia est également livré avec des modules utilisant des requêtes pour accomplir leur fonctionnalité. Par exemple, la fonction Remontée des dernières actualités dans le module Actualités. Un module Requête JCR générique est également disponible qui demandera de saisir la requête dans un Engine lorsqu on l ajoute à une page de contenu. Les rédacteurs pourront donc construire facilement des requêtes personnalisées au moment de la création du contenu, sans nécessiter aucune assistance de la part des intégrateurs (bien entendu, si cela n était pas souhaité, l accès à ce module devrait être restreint). 4.5 Authentification et autorisation L une des forces de Jahia a toujours été son puissant sous-système d authentification et d autorisation. Il permet de contrôler les permissions de façon modulaire mais précise sur une grande variété d objets ou d actions. Les permissions peuvent être très granulaires ou aussi générales qu on le souhaite, ce qui en fait un excellent outil pour les déploiements dans les entreprises de taille modeste à très grande Single Sign-On Jahia embarque les frameworks SSO suivants : SSO Central Authentication Service (CAS) : support du SSO Kerberos : support de l authentification par conteneur Java EE un pipeline d authentification extensible qui peut être facilement implémenté pour ajouter le support de solutions SSO supplémentaires Page 24 sur 36

25 Ce dernier framework est utile dans le cas d intégration avec des technologies SSO non-standard ou custom. Par exemple, dans le cas d un fournisseur de services mobiles qui utiliserait les numéros de téléphone comme identifiants de connexion. L interfaçage avec une base de données personnalisée s intègrera dans le back-end Jahia, exposant les informations des utilisateurs et des groupes directement à l interface et aux permissions de Jahia. Une fois l utilisateur correctement identifié, le sous-système d autorisation se compose de : listes de contrôle d accès aux objets de contenu rôles auxquels l utilisateur peut participer permissions pour toutes les actions utilisateur pour chaque rôle Afin de pouvoir configurer des listes de contrôle d accès, des services d utilisateur et de groupe sont fournis, qui sont bien entendu également extensibles. Par défaut, Jahia est livré avec son propre service de fournisseur d utilisateurs et de groupes, ainsi qu un connecteur pour annuaires LDAP, mais il est également possible de développer des services personnalisés pour y brancher une base de données custom ou un service distant. Jahia peut également stocker des propriétés et des informations relatives aux utilisateurs et groupes externes dans ses propres services, permettant ainsi de stocker des données de personnalisation dans Jahia. Il faut également noter que toutes ces implémentations de services sont disponibles en même temps, il n y a donc aucun besoin d en remplacer un par un autre Rôles et permissions Une autre nouveauté introduite à partir de Jahia 6.5 est l introduction de véritables rôles. Les rôles sont en réalité des collections de permissions, regroupées sous un nom logique. Par exemple, un rôle de rédacteur (editor) regroupe les permissions nécessaires pour modifier du contenu et initier des processus de workflow. Jahia est livré avec des rôles prédéfinis, ainsi qu avec une interface puissante permettant de modifier les attributions par défaut (seulement disponible avec Jahia Enterprise Edition). Les intégrateurs peuvent bien entendu définir leurs propres rôles et permissions, et également changer les attributions par défaut. Il est également possible d ajouter des permissions dans des modules et de les affecter automatiquement à des rôles existants lors du déploiement. Les rôles peuvent alors être affectés aux utilisateurs et/ou groupes à tout emplacement du repository de contenu. Par exemple, vous pouvez définir un rôle editor pour un groupe particulier dans une section particulière du site. Ils pourront agir sous ce rôle uniquement à cet emplacement particulier du repository de contenu, et nulle part ailleurs. Cela facilite la délégation de responsabilités pour le travail collaboratif Page 25 sur 36

26 d édition et de révision de contenu, et pour la gestion de contenu dans son ensemble. Bien entendu, il est conseillé de réutiliser les rôles à travers les différents sites et sections, car un ensemble de rôles limité sera bon à la fois pour la gestion du site et pour les performances du système d autorisation (la mise en cache HTML utilisant également les rôles pour déterminer quel contenu est accessible ou pas). 4.6 Importation et exportation La fonctionnalité d importation et d exportation de Jahia est un mécanisme très puissant pour la migration de contenu de diverses façons entre sites Jahia, et même entre installations Jahia. Elle utilise le format XML JSR-170 (ou JCR) comme base pour l exportation de contenu, ainsi que d autres fichiers particuliers comme des hiérarchies de fichiers pour l exportation de données binaires. Ces différents fichiers sont compressés dans une archive ZIP utilisable par le sous-système d importation. Cela permet d exporter l intégralité d une installation Jahia, un ensemble de sites, un seul site ou bien même une sous-section d un site en utilisant la même technologie d importation et d exportation. Avec cette fonctionnalité, les utilisateurs peuvent migrer du contenu entre sites, ou même entre sections de sites, ou également exporter du contenu vers des systèmes autres que Jahia ou en importer depuis de tels systèmes. On utilise également le même système pour effectuer des migrations depuis des versions précédentes de Jahia vers la dernière version en date. 4.7 Publications distantes Jahia peut être déployé en instances multiples pour répondre aux scénarios dans lesquels une instance Jahia est située derrière un pare-feu et une instance publique est située dans une zone DMZ accessible depuis le Web public. Pour publier des données de l intérieur vers l extérieur, Jahia dispose d une fonctionnalité appelée publication à distance (également appelée remote publication), qui facilite l automatisation du processus de migration de données depuis un serveur de rédaction vers un serveur de navigation. Il est à noter que cela reste compatible avec les contenus générés par les utilisateurs, par exemple un forum déployé sur les instances publiques, ce qui signifie que la publication à distance ne touchera pas aux contenus UGC créés sur l instance publique. Page 26 sur 36

27 4.8 Portlets Jahia est livré avec un serveur de portail intégré, basé sur l implémentation de référence Apache Pluto de la spécification d API du portlet JCR. L objectif de cette implémentation est de fournir un appui aux intégrateurs qui doivent intégrer des portlets dans des pages de contenu. Cela signifie que toute application compatible avec les API de portlet peut être intégrée dans Jahia en quelques étapes seulement Portlets contre Modules Afin de différencier les portlets des modules, nous proposons le tableau suivant qui résume les principales différences : Portlet Module Classification Technologie plus ancienne, extension à un modèle de serveur Web traditionnel utilisant une approche bien définie basée sur un mode d isolement strict. Utilisation de techniques Web 2.0 librement définies et plus récentes, intégration à la fois au niveau du serveur et du client. Philosophie/Approche Approche de l agrégation selon un partage du rôle du serveur Web en deux phases : génération de markup et agrégation de fragments de markup. Utilise les API fournies par différents modules ainsi que le serveur de contenu pour agréger et réutiliser le contenu. Dépendances de contenu Agrège des fragments de markup orientés affichage (HTML, WML, VoiceXML, etc.). Peut fonctionner sur du contenu pur et aussi sur du contenu orienté affichage (HTML, JSON, etc.). Dépendances d emplacement L agrégation du contenu a traditionnellement lieu sur le L agrégation du contenu peut avoir lieu soit sur le serveur, soit sur le Page 27 sur 36

28 serveur. client, mais se passe généralement sur le serveur. Mode d agrégation Façon Salad Bar : le contenu Façon Melting Pot : le contenu agrégé est présenté 'côte-à-côte' individuel peut être combiné de sans chevauchement. n importe quelle manière, avec pour résultat un rendu et une édition hybrides structurés de façon arbitraire. Modèle d évènements Les modèles d évènements read et update sont définis via une API de portlet particulière. Les opérations CRUD sont basées sur des principes d architecture JCR et sur les interfaces REST du client, et permettent des interactions de contenus. Standards associés Le comportement des portlets est régi par les standards JSR 168, JSR 286 et WSRP, bien que la présentation des pages et les fonctionnalités de portail soient indéfinies et liées à l éditeur. Les standards de base sont JCR API, REST, JSON et XML. Les standards de facto comprennent JQuery en tant que framework Javascript. Portabilité Les portlets développés avec l API de portlet sont en théorie portables vers n importe quel conteneur de portlet. Les modules sont spécifiques à Jahia. Dépôts Les dépôts de portlet ont longtemps été une chimère, mais malgré de nombreux efforts ils n ont jamais vraiment Les modules sont disponibles sur Jahia Forge. Les développeurs et intégrateurs sont libres de les publier à cet endroit ou ailleurs et y Page 28 sur 36

29 marché et restent en général spécifiques à une implémentation de conteneur de portlet. sont même encouragés. Performance Une page dépendra entièrement Les modules supportent de la vitesse de rendu de chaque nativement la mise en cache des portlet pour obtenir de bonnes pages si elles réutilisent du contenu performances, ce qui peut être stocké dans Jahia, ce qui est difficile si des portlets généralement le cas. propriétaires sont présents dans le système. De manière générale, les intégrateurs recherchant des solutions d intégration puissantes et rapides se tourneront probablement vers les modules. Le principal cas d utilisation de portlets réside dans l intégration d applications anciennes qui n existent que sous forme de portlets. Dans le cas d autres systèmes (servlets, services Web), on préfèrera utiliser des modules car l intégration sera plus robuste, plus facile à réutiliser et à déployer, et bien sûr à maintenir. 5 Performances Il est souvent compliqué de réaliser des performances élevées sur des sites Web avec un fort trafic. Dans cette section, nous allons présenter les technologies disponibles au sein de Jahia et qui vous aideront à gérer des charges élevées ainsi qu à les répartir. Page 29 sur 36

30 5.1 Cache Les caches sont indispensables dans des systèmes Web de haute performance comme Jahia, afin d avoir la possibilité d éviter de générer à nouveau des contenus dynamiques sous des charges système élevées. Jahia utilise un sous-système de mise en cache multi-couches Types de caches Les différents types de caches utilisent tous le même service de cache, qui a la charge de fournir des implémentations de cache. Jahia utilise désormais le standard d implémentation EHCache ( qui peut aller de configurations très simples jusqu à des instances de cache distribué TerraCotta ( ou BigMemory ( Jahia utilise plusieurs couches de cache pour optimiser les performances d affichage des pages: le cache du navigateur les caches HTML front-end les caches objet les caches de bases de données Chacune de ces couches de cache joue un rôle différent pour s assurer que les valeurs ne soient calculées qu une seule fois. Page 30 sur 36

31 5.1.2 La couche de cache du navigateur Bien qu il ne soit pas intégré directement à Jahia, le cache du navigateur joue un rôle primordial pour garantir de bonnes performances à l utilisateur final. Par exemple, l utilisation du framework GWT par Jahia permet la mise en cache agressive de code source AJAX dans le cache du navigateur, s assurant ainsi de ne pas charger à nouveau du code qui n a pas changé. Jahia gère également correctement le cache du navigateur, de façon à s assurer qu il ne mette pas en cache des contenus de pages qui ont changé. Il contrôle également les dates d expiration pour les contenus en cache, afin que le navigateur ne cherche pas à recharger du contenu qui change rarement La couche de cache HTML front-end Historiquement, Jahia a eu de nombreuses implémentations de couches de cache HTML front-end. La première était la mise en cache HTML de la page entière. Bien que très efficace lorsqu une page était déjà disponible dans le cache, cela ne se dégradait pas très bien pour les pages avec un fragment de HTML qui changeait de page en page, ou d utilisateur en utilisateur (par exemple lors de l affichage du nom d utilisateur sur la page). Dans Jahia 5, nous avons introduit le serveur de cache ESI, qui ajoutait la possibilité de mettre en cache des fragments de HTML. Cette technologie nécessitait un serveur de cache séparé, exécuté sur une machine virtuelle séparée pour accomplir sa tâche. Bien meilleur que la mise en cache de pages entières pour ce qui concerne l affichage dynamique de pages, le système de mise en cache ESI souffrait néanmoins de problèmes de communication entre serveurs, ce qui le rendait assez compliqué à faire fonctionner de manière efficace. De plus, l intégration du cache ESI demandait une bonne connaissance du modèle de mise en cache des fragments lors du développement de templates, ce qui était un fardeau supplémentaire pour les intégrateurs. Jahia 6 a pris le meilleur des deux mondes, en associant l efficacité absolue de la mise en cache intégrée de pages entières au traitement des fragments par le serveur de cache ESI. Cette nouvelle implémentation de cache est appelée le cache module (module cache) et intègre la mise en cache de fragments au niveau du module, rendant très naturelle l interaction avec les templates. Les développeurs de templates n ont généralement pas à ajouter de marqueurs pour que leurs fragments soient mis en cache correctement. Même lorsqu ils ont besoin de contrôler la génération de fragments, cela est bien plus facile à faire que dans les précédentes versions de Jahia. Le cache skeleton (skeleton cache) est également un cache HTML front-end qui met en cache tout ce qui entoure les fragments, et en regroupant les deux sous-systèmes de cache, on obtient l équivalent en Page 31 sur 36

32 termes de performances de la mise en cache HTML de pages entières des versions précédentes de Jahia tout en gardant la souplesse de la mise en cache de fragments La couche de cache objet La couche suivante en dessous des sous-systèmes de cache HTML front-end est la couche de cache objet. Cette couche manipule des objets Java qui ne peuvent pas être mis en cache de façon optimale par les couches sous-jacentes. Dans des versions précédentes de Jahia, cette couche avait un grand nombre de caches différents, mais dans les versions les plus récentes elle a été réduite au strict minimum d après les tests de performance. Elle sert de couche au-dessus des caches de bases de données afin d éviter de reconstruire les objets pour chaque requête de modèle. Tout cela est géré de façon interne par Jahia et il est seulement important d interagir avec ces caches si les intégrateurs appellent directement des API backend qui ne mettent pas à jour les caches automatiquement (un bon exemple en est les caches d utilisateurs et groupes LDAP) Les caches de bases de données La dernière couche de caches est la couche de cache de bases de données qui s assure qu il n y a qu un minimum d interaction avec la base de données. Ce cache est important car la communication de base de données nécessite la (dé)sérialisation des objets et également une communication réseau ; le dépassement d exécution des requêtes de base de données peut donc être assez considérable. Les frameworks Hibernate ORM et Jackrabbit gèrent cette couche de façon transparente, les développeurs et intégrateurs n auront donc normalement pas besoin de s en occuper. 5.2 Clustering Page 32 sur 36

33 Le déploiement de Jahia dans un cluster est une façon très puissante de répartir la charge mémoire et CPU pour gérer des sites à plus fort trafic. Le schéma ci-dessus illustre une installation typique de Jahia en cluster. Les nœuds Jahia communiquent ensemble via les couches de cache et de base de données, mais accèdent également à des ressources partagées: un système de fichiers partagé et la base de données. Le système de fichiers est utilisé pour stocker le contenu binaire si le serveur est configuré pour le mettre à cet emplacement, sinon il est stocké dans la base de données si on utilise la configuration par défaut. La base de données stocke tout le reste. Il est donc très important d avoir une installation de base de données hautement performante, car Jahia en dépendra pour évoluer. Jahia peut également différencier les nœuds dans une configuration en cluster afin d offrir un traitement plus spécialisé. Nous allons passer rapidement en revue les différents types de nœuds Nœuds visiteurs Les nœuds visitors de Jahia sont des nœuds Jahia spécialisés qui ne servent que comme nœuds de publication de contenu. Ils interagissent également avec les portlets ou les modules d application pour interpréter les pages et envoyer du contenu généré par les utilisateurs. L utilisation de cette spécialisation de nœud permet de séparer la charge des visiteurs des charges de rédaction et des tâches de fond. Page 33 sur 36

34 5.2.2 Nœuds de rédaction Les nœuds authoring de Jahia sont des nœuds de cluster qui peuvent être utilisés pour naviguer dans du contenu Jahia ou pour le modifier. Il s agit de l utilisation la plus courante des nœuds Jahia, il est donc intéressant d avoir de multiples instances de ces nœuds afin de répartir la charge Nœuds de traitement Dans Jahia, les tâches longues à s exécuter comme les opérations de validation de workflow, les copiercoller, l importation et l indexation de contenu sont exécutées comme tâches de fond, et uniquement sur le nœud de traitement. Ainsi, pendant l exécution de ces longues opérations, les autres nœuds sont toujours en mesure de gérer la navigation dans le contenu et les demandes de modification. Il faut noter que pour le moment, il ne peut y avoir qu un seul nœud de traitement. Ce nœud est conçu pour être insensible aux défaillances, donc si jamais un plantage survient pendant le traitement, on peut simplement le redémarrer et il reprendra ses opérations là où il les avait laissées. 5.3 Ressources supplémentaires sur les performances Comme Jahia travaille en permanence à améliorer les performances, vérifiez régulièrement la présence de nouvelles ressources sur les performances sur notre site Web, et n hésitez pas à consulter notre guide sur la configuration et les réglages de précision qui présente les bonnes pratiques de déploiement et de configuration pour configurer Jahia correctement pour les charges élevées. 6 Pour en savoir plus Sur notre site Web, vous trouverez les ressources suivantes qui vous aideront à parfaire votre expérience de Jahia : Forum : il s agit du forum de la communauté Jahia, où les utilisateurs du produit peuvent échanger questions et réponses. Il est hautement conseillé de consulter le forum pour toute question que vous pourriez avoir, car il se peut qu elle y ait déjà été traitée. Support commercial : Jahia propose également des contrats de support commercial pour répondre à vos besoins. Ces contrats peuvent aller du support de niveau élémentaire jusqu aux contrats d assistance personnalisés. Vous pouvez consulter la section Services pour plus de détails sur nos offres commerciales. Documentation : dans cette section de notre site Web, vous trouverez également notre documentation en ligne, des guides utilisateurs aux documentations intégrateurs et API. Assurez-vous de consulter cette section fréquemment, car nous publions régulièrement des mises à jour et de nouveaux documents. Page 34 sur 36

35 Vidéos : des tutoriels vidéo sont également disponibles sur Ils montrent comment réaliser certaines tâches ou illustrent certaines fonctionnalités spécifiques. Page 35 sur 36

36 Jahia Solutions Group SA 9 route des Jeunes, CH-1227 Les acacias Genève, Suisse Page 36 sur 36

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

http://www.alfresco.com/fr/community/register/?source=docs Extensions, Documentation, Tutoriels, Astuces

http://www.alfresco.com/fr/community/register/?source=docs Extensions, Documentation, Tutoriels, Astuces Maryem Rhanoui 2013 Alfresco Liens utiles Le site Alfresco : http://www.alfresco.com/fr/ Le Portail Content Community http://www.alfresco.com/fr/community/register/?source=docs Extensions, Documentation,

Plus en détail

Joomla! Création et administration d'un site web - Version numérique

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

Plus en détail

Introduction à. Oracle Application Express

Introduction à. Oracle Application Express Introduction à Oracle Application Express Sommaire Qu est-ce que Oracle Application Express (APEX)? Vue d ensemble des fonctionnalités et des différents composants d Oracle APEX Démonstration de création

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA Comparatif CMS Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA Sommaire Introduction : Dans le cadre de notre projet de master première année, il nous a été demandé de développer un moteur de recherche

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

Présentation Alfresco

Présentation Alfresco Présentation d un CMS : Alfresco Présentation Alfresco Ludovic Plantin, Frédéric Sénèque, Xu Zhao Polytech Grenoble Décembre 2008 Plantin, Sénèque, Xu (Polytech) Présentation Alfresco Décembre 2008 1 /

Plus en détail

Open Source & Innovation exo Platform Oualid Chaker,

Open Source & Innovation exo Platform Oualid Chaker, Open Source & Innovation exo Platform Oualid Chaker, General Manager Middle East & Africa Agenda Introduction Innovation et Open Source Le cas exo Conclusion et recommandations Naissance de l Open Source

Plus en détail

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 SAS Cost and Profitability Management, également appelé CPM (ou C&P), est le nouveau nom de la solution SAS Activity-Based Management. Cette version

Plus en détail

RÉF : 2002/COFAX/LP V1.0

RÉF : 2002/COFAX/LP V1.0 Réf : 2002/COFAX/LP v0.1 Page 1 Smile COFAX -o- Livret de présentation RÉF : 2002/COFAX/LP V1.0 Réf : 2002/COFAX/LP v0.1 Page 2 INTRODUCTION Cofax est un outil de publication Web permettant de publier

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x WysiUpStudio CMS professionnel pour la création et la maintenance évolutive de sites et applications Internet V. 6.x UNE SOLUTION DE GESTION DE CONTENUS D UNE SOUPLESSE INÉGALÉE POUR CRÉER, MAINTENIR ET

Plus en détail

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D. Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D. TABLE DES MATIÈRES I. Présentation de Joomla II. III. IV. Documents disponibles Installation de Joomla 3.1) Installation sur

Plus en détail

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008 Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008 Objectifs À la fin de cette présentation, vous serez en mesure : de citer des ministères ayant fait

Plus en détail

Guide de démarrage rapide

Guide de démarrage rapide DOCUMENTATION Guide de démarrage rapide Découvrez Jahia 6.61 en 60 minutes Jahia, le CMS open source de nouvelle génération apportant à vos projets la convergence applicative (web, document, social, recherche

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING Durée : 3J / 21H Formateur : Consultant expert en PAO et Web-marketing. Groupe de : 4 max Formation au web marketing Objectifs : Mettre en oeuvre des

Plus en détail

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D NOVA BPM «Première solution BPM intégr grée» Pierre Vignéras Bull R&D Définitions Business Process Pratiques existantes qui permettent aux personnes et systèmes de travailler ensemble Business Process

Plus en détail

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit v 1.0.0 PD 20 mars 2008 Mouvements d arrivée / départ de personnels Description produit Fonctionnalités L application Gestion des mouvements d arrivée / départ de Requea permet la gestion collaborative

Plus en détail

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s Mickaël Mickaël BLANCHARD BLANCHARD Préface de Sébastien L e p e r s Magento Préface de Sébastien L e p e r s Magento Réussir son site e-commerce Réussir son site e-commerce Groupe Eyrolles, 2010, ISBN

Plus en détail

ECLIPSE ET PDT (Php development tools)

ECLIPSE ET PDT (Php development tools) ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

1 JBoss Entreprise Middleware

1 JBoss Entreprise Middleware 1 JBoss Entreprise Middleware Les produits de la gamme JBoss Entreprise Middleware forment une suite de logiciels open source permettant de construire, déployer, intégrer, gérer et présenter des applications

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

FileMaker Server 14. Guide de démarrage

FileMaker Server 14. Guide de démarrage FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques

Plus en détail

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3 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

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hé[email protected]

Plus en détail

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

Plus en détail

Catalogue Formations Jalios

Catalogue Formations Jalios Catalogue Formations Jalios Offre de services Jalios 23/04/2015-6.0 1 / 19 Sommaire Sommaire... 2 1. Introduction... 3 2. Jalios, organisme de formation... 4 3. Formations fonctionnelles... 5 3.1. Formation

Plus en détail

Projet en nouvelles technologies de l information et de la communication

Projet en nouvelles technologies de l information et de la communication Projet en nouvelles technologies de l information et de la communication Site Web universitaire du Prof. Jacques Moeschler. Nono Steeve Semestre de printemps 2013 Sous la direction du Prof Luka Nerima

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP L INTEGRATION DE SAS AVEC JMP Quelles sont les techniques possibles pour intégrer SAS avec JMP? Comment échanger des données entre SAS et JMP? Comment connecter JMP à SAS? Quels sont les apports d une

Plus en détail

Auteur LARDOUX Guillaume Contact [email protected] Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Auteur LARDOUX Guillaume Contact guillaume.lardoux@epitech.eu Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA Auteur LARDOUX Guillaume Contact [email protected] Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA Sommaire 1. Introduction 2. Installation 3. Fonctionnement 4. Développement 5. Démonstration 2

Plus en détail

Bien architecturer une application REST

Bien architecturer une application REST Olivier Gutknecht Bien architecturer une application REST Avec la contribution de Jean Zundel Ce livre traite exactement du sujet suivant : comment faire pour que les services web et les programmes qui

Plus en détail

Catalogue des formations Edition 2015

Catalogue des formations Edition 2015 Antidot - Formations Catalogue des formations Edition 2015 : catalogue_formation_2015 Révision du 06.01.2015 Sommaire!!"##$%&'( )! $*$+,(-'(."##'+.'&( /!,'.0+"1"2%'( /!!."3'( /! $(3&"3"!(-4(5(.$,$1"24'(-'!(6"&#$,%"+!(7('-%,%"+()89:(;(

Plus en détail

Hébergement de sites Web

Hébergement de sites Web Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise

Plus en détail

SQL Server Installation Center et SQL Server Management Studio

SQL Server Installation Center et SQL Server Management Studio SQL Server Installation Center et SQL Server Management Studio Version 1.0 Grégory CASANOVA 2 SQL Server Installation Center et SQL Server Management Studio [03/07/09] Sommaire 1 Installation de SQL Server

Plus en détail

WebSpy Analyzer Giga 2.1 Guide de démarrage

WebSpy Analyzer Giga 2.1 Guide de démarrage WebSpy Analyzer Giga 2.1 Guide de démarrage Ce document aide à vous familiariser avec l utilisation de WebSpy Analyzer Giga. Pour des informations plus détaillées, consultez le guide utilisateur Analyzer

Plus en détail

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site: MANUEL WORDPRESS Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site: A/ Traitement de la base de données: Pour cette étape, vous aurez besoin au préalable

Plus en détail

WorkflowGen 6.0 Guide de mise à jour

WorkflowGen 6.0 Guide de mise à jour WorkflowGen 6.0 Guide de mise à jour Date de mise à jour : le 10 juin 2015 Copyright Advantys 2015 www.workflowgen.com Table des matières Présentation 3 Préparation 4 Aperçu 4 Demander des nouveaux fichiers

Plus en détail

2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces... 4 2.3 Résumé de notre évaluation... 5

2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces... 4 2.3 Résumé de notre évaluation... 5 Livre Blanc LE PORTAIL D'INTÉGRATION LIFERAY Version 1.0 - Novembre 2006 SOMMAIRE 1 PRÉSENTATION... 3 2 SYNTHÈSE... 4 2.1 Liferay en un clin d'oeil... 4 2.2 Forces, faiblesses, opportunités et menaces...

Plus en détail

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected]

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected] 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies

Plus en détail

UltraBackup NetStation 4. Guide de démarrage rapide

UltraBackup NetStation 4. Guide de démarrage rapide UltraBackup NetStation 4 Guide de démarrage rapide Table des matières 1 Fonctionnalités... 3 1.1 Ce qu UltraBackup NetStation permet de faire... 3 1.2 Ce qu UltraBackup NetStation ne permet pas de faire...

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Modernisation IBM i Nouveautés 2014-2015 IBM Power Systems - IBM i 19 et 20 mai 2015 IBM Client Center, Bois-Colombes S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i Mardi

Plus en détail

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully Les grandes facettes du développement Web Qui sommes nous? Nicolas Thouvenin Stéphane Gully Projets Web depuis 2000 LAMP, NodeJS HTML, CSS, jquery

Plus en détail

Formation en Logiciels Libres. Fiche d inscription

Formation en Logiciels Libres. Fiche d inscription République Tunisienne Ministère de l'industrie et la Technologie - Secrétariat d'état de la Technologie Unité des Logiciels Libres Formation en Logiciels Libres Fiche d inscription (Une fiche par candidat)

Plus en détail

K-Portal et K-Sup 5.1 des nouveautés. Détails

K-Portal et K-Sup 5.1 des nouveautés. Détails K-Portal et K-Sup 5.1 des nouveautés Détails 5.1 Découvrez comment cette nouvelle version vous aidera à : " élargir considérablement votre offre de contenu, " proposer de nouveaux services à vos publics,

Plus en détail

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013 Exemple d utilisation du gestionnaire de conception Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013 6, rue de l Etang, L-5326

Plus en détail

A. Architecture du serveur Tomcat 6

A. Architecture du serveur Tomcat 6 Administration du serveur A. Architecture du serveur Tomcat 6 La compréhension de l architecture interne du serveur Tomcat 6 est un pré-requis indispensable pour bien en maîtriser l administration et la

Plus en détail

Drupal (V7) : principes et petite expérience

Drupal (V7) : principes et petite expérience Drupal (V7) : principes et petite expérience Jean-Luc Archimbaud CNRS/Mathdoc http://jl.archimbaud.free.fr/ Présentation journées Mathrice 10 oct 2012 V1.2 Corrigez mon discours ou complétez... Licence

Plus en détail

Automatisation de l administration système

Automatisation de l administration système Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications

Plus en détail

IBM DB2 Alphablox. d administration GC11-2170-00

IBM DB2 Alphablox. d administration GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 IBM DB2 Alphablox Guide d administration Version 8.4 GC11-2170-00 ii IBM DB2 Alphablox - Guide d administration Table des matières Avis

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Catalogue Formation «Vanilla»

Catalogue Formation «Vanilla» Catalogue Formation «Vanilla» Date : octobre 2009 Table des matières Liste des Formations...2 Contenu des formations...3 Vanilla FastTrack...3 Vanilla Architecture...5 Enterprise Services...6 BIPortail...7

Plus en détail

MailStore Server 7 Caractéristiques techniques

MailStore Server 7 Caractéristiques techniques MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Le moteur de workflow JBPM

Le moteur de workflow JBPM Le moteur de workflow Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX [email protected] http://litis.univ-lehavre.fr/ duvallet/

Plus en détail

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452 EXTENSION de Microsoft Dynamics CRM 2013 Réf FR 80452 Durée : 3 jours A propos de ce cours : Ce cours offre une information interactive et détaillée sur le développement d extensions pour Microsoft Dynamics

Plus en détail

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Gestion collaborative de documents

Gestion collaborative de documents Gestion collaborative de documents ANT box, le logiciel qui simplifie votre GED Les organisations (entreprises, collectivités, associations...) génèrent chaque jour des millions de documents, e-mails,

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <[email protected]> Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

Introduction au développement SharePoint. Version 1.0

Introduction au développement SharePoint. Version 1.0 Introduction au développement SharePoint Version 1.0 Z 2 Introduction au développement SharePoint 09/05/09 Sommaire 1 SharePoint : les bases... 3 1.1 Débuter sous SharePoint... 3 1.2 Connaissances Requises...

Plus en détail

FileMaker Server 12. publication Web personnalisée avec XML

FileMaker Server 12. publication Web personnalisée avec XML FileMaker Server 12 publication Web personnalisée avec XML 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont

Plus en détail

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Utilisation de Jakarta Tomcat

Utilisation de Jakarta Tomcat ISI 1022 : Déploiement d applications Web Jean-Noël Sorenti. Année 2002/2003 Déploiement d application Web Utilisation de Jakarta Tomcat ISI 1022 : 1 ISI 1022 : Déploiement d applications Web Une application

Plus en détail

arcopole Studio Version 3.3

arcopole Studio Version 3.3 arcopole Studio Version 3.3 Documentation d installation Mise à jour depuis une version antérieure Site du programme arcopole : www.arcopole.fr Auteur du document : Esri France Version de la documentation

Plus en détail

PRESENTATION D ADOBE LIVECYCLE ES4

PRESENTATION D ADOBE LIVECYCLE ES4 PRESENTATION D ADOBE LIVECYCLE ES4 Informations juridiques Informations juridiques Pour les informations juridiques, voir http://help.adobe.com/fr_fr/legalnotices/index.html. iii Sommaire Chapitre 1 :

Plus en détail

Microsoft Office SharePoint Server 2007. Guide d évaluation

Microsoft Office SharePoint Server 2007. Guide d évaluation Microsoft Office SharePoint Server 2007 Guide d évaluation Février 2007 Synthèse Ce guide d évaluation est conçu pour vous présenter les objectifs et les fonctionnalités de Microsoft Office SharePoint

Plus en détail

Manuel d utilisation du site web de l ONRN

Manuel d utilisation du site web de l ONRN Manuel d utilisation du site web de l ONRN Introduction Le but premier de ce document est d expliquer comment contribuer sur le site ONRN. Le site ONRN est un site dont le contenu est géré par un outil

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Surveiller et contrôler vos applications à travers le Web

Surveiller et contrôler vos applications à travers le Web Surveiller et contrôler vos applications à travers le Web Valérie HELLEQUIN Ingénieur d application Internet permet aujourd hui la diffusion d informations et de ressources que chaque utilisateur peut

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de En partenariat avec Webinar Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL avec la participation de 19 mars 2013 Qui sommes-nous? INTRODUCTION

Plus en détail

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2 Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement Introduction Phases du projet Les principales phases du projet sont les suivantes : La mise à disposition des sources Des fichiers Excel sont utilisés pour récolter nos informations L extraction des données

Plus en détail

Pourquoi utiliser SharePoint?

Pourquoi utiliser SharePoint? Pourquoi utiliser SharePoint? Partage de Fichiers Accès distant aux informations Mise à jour permanente Gestion électronique de documents (GED) Notifications / Alertes Workflow / Flux de travail Extranet

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna [email protected] Développement des systèmes d Information Syllabus

Plus en détail

Livre Blanc WebSphere Transcoding Publisher

Livre Blanc WebSphere Transcoding Publisher Livre Blanc WebSphere Transcoding Publisher Introduction WebSphere Transcoding Publisher vous permet d'offrir aux utilisateurs des informations Web adaptées à leurs besoins. Il vous permet, par exemple,

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Optimiser pour les appareils mobiles

Optimiser pour les appareils mobiles chapitre 6 Optimiser pour les appareils mobiles 6.1 Créer un site adapté aux terminaux mobiles avec jquery Mobile... 217 6.2 Transformer son site mobile en application native grâce à PhoneGap:Build...

Plus en détail

Bureautique Initiation Excel-Powerpoint

Bureautique Initiation Excel-Powerpoint Module de Formation Personnalisée : Bureautique Initiation Excel-Powerpoint Durée : jours ouvrables Prix : Formation personnalisée en vue d obtenir les notions de base indispensables pour : Excel Office

Plus en détail

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre

Plus en détail

Présentation de SOFI 2.0

Présentation de SOFI 2.0 Présentation de SOFI 2.0 Version 2.0.3 Présentation SOFI 2.0 1 Agenda Historique Utilisation de SOFI Pourquoi SOFI? 3 Grands Axes Développement Accompagnement et formation Communauté Architecture Les nouveautés

Plus en détail

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures 3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures Objectif global : A l issue de la formation, les stagiaires doivent être opérationnels dans la création d un site internet

Plus en détail

Fiche Technique Windows Azure

Fiche Technique Windows Azure Le 25/03/2013 OBJECTIF VIRTUALISATION [email protected] EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Fiche Technique Objectif 25/03/2013 27/03/2013 Windows

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail