Présentation de l'état de l'art du Portail en 2014 à la conférence des développeurs java, Devoxx, en France par Emmanuel Pavaux, consultant formateur Oxiane.
4. @EmmanuelPavaux#DevoxxPortail2014
Historique – les grandes étapes
•1995-2000 : Explosion des intranets / extranets en entreprise
•1998-2000 : Apparition puis explosion de l’offre de portails
• Pure players (Plumtree, Vignette, HummingBird, …)
• Editeurs d’infrastructure (IBM, BEA, MICROSOFT, …)
• Editeurs métiers (SAP, Peoplesoft, …)
•2001-2005 : Consolidation de l’offre
• Plumtree -> BEA -> ORACLE
• Epicentric -> Vignette -> Open Text
•2006 : Portails web 2.0, collaboratif
•2008 : Réseaux sociaux
5. @EmmanuelPavaux#DevoxxPortail2014
Outils ressemblant à un portail …
•CMS : vocation première est de créer du contenu
• Et non d’intégrer d’autres applications
•Outil de syndication de contenus
• Agrégation
• Personnalisation
• Fenêtres de
contenus
6. @EmmanuelPavaux#DevoxxPortail2014
Définition du portail
•Le portail est le point d'entrée unique et personnalisé de
l'utilisateur
• Pour les informations et la communication : contenus, …
• Pour les applications et les services : applications B.O,
• Pour la collaboration entre les utilisateurs : forum,
wiki, agenda, documents partagés, …
• Pour la gestion des relations :
réseaux sociaux
d’entreprises, …
9. @EmmanuelPavaux#DevoxxPortail2014
Principe des portlets
•Composant web côté serveur générant un fragment de la
page (HTML la plupart du temps)
• Conçue pour l’agrégation et la personnalisation
• Agrégation des fragments dans une seule page HTML réalisée côté
serveur
Application Portail
HttpRequest
HttpResponse
PortletRequest
PortletResponse
Portlet
Portlet
10. @EmmanuelPavaux#DevoxxPortail2014
Normes des portlets JSR 168 /
286
•Définir une API Java Portlet standard basée sur l'API
Servlet
• Interfaces PortletXXX, gestion des URLs, modes, états,
préférences, gestion d’événements, ressources non-HTML, ...
•Définir un packaging : war avec portlet.xml
•Permettre l'interopérabilité entre les portails
• Pas de normes sur le portail : spécificités non portable
• Sauf JSR 170 / 283 pour la communication avec un CMS
11. @EmmanuelPavaux#DevoxxPortail2014
Avantages des portlets
•Intégration plus forte avec le portail
• Style commun avec les portlets, mêmes cookies, …
• Interaction avec le portail ou entre les portlets
• Authentification / autorisation commun à toutes les portlets
•Pour les composants les plus complexes et les plus
robustes
12. @EmmanuelPavaux#DevoxxPortail2014
Inconvénients des portlets
•Limitation des normes JSR 168 / 286
• Basé sur API servlet : équivalent à développer en servlet / JSP
• Possibilité d’utiliser des frameworks de navigation standard
basé sur des bridges : Struts, JSF (JSR-301, JSR-329), Spring
MVC, GWT, …
• Autres possibilités : WSRP peu utilisé, ou Iframe / Web
Clipping (vite limité ou difficile à maintenir)
•Particularités des portlets à connaître
• Session, phases (action, …), instances, préférences, cache, ...
13. @EmmanuelPavaux#DevoxxPortail2014
Principe des widgets
•Agrégation/exécution du côté client
(HTML, JS, AJAX) en consommant
des services distants
• Connexion HTTP distinct pour chaque widget
• Indépendantes de la technologie serveur
• Écrite dans plusieurs langages
• Propre feuille de style CSS, propres cookies, ...
•Utilisable au sein d’un portail
•Normes
• W3C Packaging/Configuration 27 September 2011
• OpenSocial Gadget de Google destiné aux réseaux sociaux
14. @EmmanuelPavaux#DevoxxPortail2014
Avantages des widgets
•Utilise des services RESTFull
• Les préférences sont stockées sur côté serveur
•Rapide pour développer de simples applications
• Composants plus légers à base web standard
•Facile à partager
•Plus agile que les portlets
• Ajoutés dynamiquement (mais certains portails le permettent
aussi pour les portlets)
• Edition en ligne du code source
15. @EmmanuelPavaux#DevoxxPortail2014
Inconvénients des widgets
•Problème d’intégration déportée côté client
• DOM manipulés par plusieurs widgets, …
• Gestion des différents navigateurs
•Fonctionnalités complexes plus difficiles à réaliser
• Modification sur plusieurs pages /transactionnelles, ...)
•Multiples appels du navigateur vers le(s) serveur(s)
• Attention à la bande passante si de trop nombreux appels
•Sécurité : code source disponible, JS malveillant, …
•Problèmes avec la plupart des moteurs de recherche
16. @EmmanuelPavaux#DevoxxPortail2014
Permettre la personnalisation
Agréger les informations
Gérer du contenu et des
documents
Favoriser l'accès et la
recherche des informations
Intégrer les applications
d'entreprise
Améliorer la collaboration des
employés
Permettre l'administration
fonctionnelle du portail
Gérer des communautés
d'utilisateurs
Gérer les identités des
utilisateurs
Gérer les habilitations des
utilisateurs
Liens vers réseau sociaux
Les fonctions du portail
Moteur de portail
Serveur d’application
WORKFLOW
LOOKnFEEL
ADMINISTRATION
CONTENEUR DE PORTLETS
PORTLET
PORTLET
PORTLET
MOTEUR DE
RECHERCHE
SOCIAL
INTEGRATIO
N
HABILITATION
PERSONNALISATION
AGREGRATION CMS
COLLABORATIONWIDGET
CLOUD
PREVISUALISATION
PORTLET
1e génération
2e génération
3e génération
17. @EmmanuelPavaux#DevoxxPortail2014
Les cas d’utilisation d’un portail
•Intranet standard (communication interne)
•Application d’accès aux services
•Groupe de travail collaboratifs
•Mutualisation d’applications
•Bureau virtuel
•Usine à sites
•Réseau social d’entreprise
•...
18. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché
• Pluto simple container de portlets (implementation de
référence)
• uPortal utilisé notamment par plusieurs universités
américaines et françaises
• JetSpeed portail open source du projet Apache
• Lutece moteur de portail libre avec des fonctions de
. gestion de contenu et de gestion modulaire
d'applications métiers
• Jahia initalement un CMS qui a étendu ces fonctions vers le
portail : portlets, espaces de travail collaboratif
(Blog, Forum, Newsletter et Wiki), droits, recherche, ...
19. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché : IBM
• Websphere Portal : offre complète avec une famille
de produits WP Server, WP Enable (workflow et de
gestion de contenu et de document), WP Extend (travail
collaboratif), WP Express (pour les PME), ...
• Services de contenus (ex Lotus WCM), de syndication, workflow,
portlets, widgets, recherche, sécurité, surveillance, personnalisation,
administration interfaces, page, ...
• Services d’intégration : Lotus Domino, Outlook, Quickr, Sametime,
SAP, LDAP, OpenID, ...
• Cloud privé : WPS Hypervisor Edition (préinstallée et pré-configurée)
• Plus d’informations dans la documentation
20. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché : Oracle
• WebCenter Portal (suite logiciel WebCenter)
• WebCenter Portail (Ex WLP + UCM + WCI) : personalisation des
services, des contenus, de la navigation, laf, integration
Siebel, Peoplesoft, JDEdwards, ...
• WebCenter Sites (ex FatWire - Web experience management) :
gestion du contenu ciblé par segments utilisateurs, gadgets,
analyse du comportement, canaux de publication ...
• WebCenter Content : Check-in/out, versions, tag, édition
inline
• WebCenter Social : chat, partage de documents, notifications,
activité des réseaux sociaux, recherche unifiée, mobile, ...
21. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché : Jboss /
Exo
•GateIn projet OpenSource communautaire / socle
commun à la partie portail ExoPlatform et à Jboss EPP
(Entreprise Portal Platform)
• Fondamentaux du portail : standards, widgets,
portlets, gestion des pages / layouts / sites,
multilingue, des utilisateurs / droits / ...
• EXo Platform : fonctionnalités de contenu,
de collaboration, de réseaux
sociaux, cloud, mobiles, …
22. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché : Liferay
• Portail Open Source de référence
Magic Quadrant Gartner
• Ecosystème : communauté, symposuim, Web Events, …
• Licence CE (LGPL) et Licence EE (Liferay Inc.)
• Interface utilisateur web 2.0 moderne et pratique
• Extension : Hook, Service Buidler, Plug-in SDK
• Normes JSR 170 / 286 / 314, CMIS, Open Search, …
• Plus d'une soixantaine de portlets en standard : gestion de
site, CMS, gestionnaire de documents, collaboration (blog,
wiki,forum, calendrier, …), social (mur, …)
23. @EmmanuelPavaux#DevoxxPortail2014
Les offres du marché : Liferay
• Sécurité/habilitation : sites, organisations, …
• Intégration facile LDAP, SSO (CAS,...), Identity Manager
• Cycle de vie du portail : LAR, Staging, …
• Liferay Marketplace
• Liferay Sync
• Un succès
24. @EmmanuelPavaux#DevoxxPortail2014
Pourquoi choisir un portail en
2014
•Le portail a dépassé les échecs passés
• Engouement excessif et sur-médiatisation
En 2000, tout le monde «fait» du portail
=> Rationalisation des offres et sélection naturelle
• Coûteux à acquérir
Souvent une entrée vers les autres offres d'un éditeur
=> De vrais solutions Open source
25. @EmmanuelPavaux#DevoxxPortail2014
Pourquoi choisir un portail en
2014
• Complexe à mettre en œuvre
Problématique complexe d'intégration avec de nombreuses
applications => pas le portail lui même
• Complexe à utiliser, manque de contrôle des utilisateurs
=> Evolution de la convivialité des produits pour les utilisateurs
finaux ou pour les administrateurs
=> Les utilisateurs ont repris la main : personnalisation,
collaboratif, sociaux
• Cycles de déploiement long
=> Déploiement à chaud des portlets, widgets, méthodes
agiles, …
26. @EmmanuelPavaux#DevoxxPortail2014
Pourquoi choisir un portail en
2014
•Promesses du portail enfin tenu
• Convivialité : user friendly
• Personnalisation : choix des pages, portlets et contenu, …
• Gestion de la mobilité
• Véritable outil de travail centré sur l’utilisateur :
informations, collaboration, social
• Cycle de vie du portail
27. @EmmanuelPavaux#DevoxxPortail2014
Pourquoi choisir un portail en
2014
•Concept d’architecture
• Brique d'infrastructure : dépasser la spécification de portlet et
garder le concept
• Rationalisation des aspects traités de manière hétérogène
selon les projets : authentification, habilitation, navigation,
look n feel, …
28. @EmmanuelPavaux#DevoxxPortail2014
Le futur du portail
•Le portail va rester l’outil d’agrégation des applications
métiers de l’entreprise
•Evolution du portail pour devenir une plate-forme
d’exécution d’applications
• Suite logicielle (marketplace) fournie par le portail :
collaborative, social, gestion de processus métier, …
29. @EmmanuelPavaux#DevoxxPortail2014
Le futur du portail
•Clouds : plusieurs cas d’utilisations
• Déploiement du portail
• Déploiement des portlets / applications (offre SAS)
• Cloud privé
34. @EmmanuelPavaux#DevoxxPortail2014
static String friendlyBirthDate(Date date) {
def days = date - BIRTH
switch (days) {
case 0: return "Jour de naissance"
case 1: return "1 jour"
case 1..<31: return "${days} jours"
case 31..<90: return "${days.intdiv(7)+1} semaines"
case 91..<914: return "${days.intdiv(30)} mois"
case 914..365*100:
int y = days.intdiv(365)
boolean half = (days - 365.25 * y) > 182
return "${y} ans${half ? ' et demi' : ''}"
}
}
static String friendlyBirthDate(Date date) {
def days = date - BIRTH
switch (days) {
case 0: return "Jour de naissance"
case 1: return "1 jour"
case 1..<31: return "${days} jours"
case 31..<90: return "${days.intdiv(7)+1} semaines"
case 91..<914: return "${days.intdiv(30)} mois"
case 914..365*100:
int y = days.intdiv(365)
boolean half = (days - 365.25 * y) > 182
return "${y} ans${half ? ' et demi' : ''}"
}
}
Show me some code
35. @EmmanuelPavaux#DevoxxPortail2014
A code sample
Do not try to show more than 15 lines of code per slide
Remember, your audience will READ the slides and won’t listen
Try to take screenshot of your code in Eclipse or IntelliJ
Evitez de montrer plus de 15 lignes de code par slide
Souvenez-vous que votre audience va lire le slide et ne vous écoutera pas
Essayez d’utiliser des captures d’écran d’Eclipse ou IntelliJ
38. @EmmanuelPavaux#DevoxxPortail2014
Pensez à utiliser des images
•Quelques sites avec des photos libres de droit :
•http://www.colourlovers.com/
•http://www.flickr.com/creativecommons
•http://www.morguefile.com/archive
41. @EmmanuelPavaux#DevoxxPortail2014
Crédit image / Creative Commons
• Rue pavée — By-Nc-Sa
•http://www.flickr.com/photos/22914687@N05/4957591422/sizes/l/
• Sous la Tour Eiffel — By-Nc-Sa
•http://www.flickr.com/photos/stewiedewie/244850735/sizes/l/in/photostream/
• Sous le pont — photo par B.Monginoux - By-Nc-Nd
•http://www.landscape-photo.net/displayimage.php?pid=5194
• Le Louvre – Photo par Anthony Gaudun - By-Nc-Sa
•http://www.flickr.com/photos/anthonygaudun/7474397964/sizes/o/in/photostream/
• Slide template created by @glaforge, completed by @nmartignole for Devoxx FR2014
Notes de l'éditeur
Manque contexte applicatif côté client =&gt; à développer pour avoir un maximum de navigation côté client, ou en déconnecté
OK
Perso
Agrégation
CMS
Recherche
Admin
Sécurité
Habilitation
Intégration
Développement
Look&Feel
Workflow
Collabo
Widget
Cycle de vie
Bridge
Template
I18N
Social
Cloud
WS
OK
Site Builder
Résau social pour hopitaux
Modularité des portlets (différentes versions dans un même portail)
Bundle OSGi pour les services
Widget versionné côté présentation
TODO
schéma montrant l&apos;aggrégation côté navigateur, et côté portail
interne et externe à l&apos;entreprise
Agrégation de multiples sources =&gt; indifférent pour l’utilisateur
Différents niveaux
back-end, par agrégation de Web Service, de données, …
Applicatif ???
navigateur Web Mashups par l’utilisation de gadgets,
TODO
schéma montrant l&apos;aggrégation côté navigateur, et côté portail
interne et externe à l&apos;entreprise
Agrégation de multiples sources =&gt; indifférent pour l’utilisateur
Différents niveaux
back-end, par agrégation de Web Service, de données, …
Applicatif ???
navigateur Web Mashups par l’utilisation de gadgets,