Upload
stephane-lietard
View
20
Download
2
Embed Size (px)
Citation preview
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pourquoi utiliser un portail en 2014Pourquoi utiliser un portail en 2014
@EmmanuelPavauxOxiane, www.oxiane.comArchitecte, consultant et formateur
@EmmanuelPavauxOxiane, www.oxiane.comArchitecte, consultant et formateur
@YourTwitterHandle#DVXFR14{session hashtag} @EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Som
mai
r
e
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
SommaireSommaire
•Historique
•Définition d’un portail
•Principe des portlets et des widgets
•Les fonctions du portail
•Les cas d'utilisations
•Les offres du marché
•Pourquoi choisir un portail en 2014
•Le futur du portail
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Historique – les grandes étapesHistorique – 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Outils ressemblant à un portail …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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Définition du portailDé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, …
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Agrégation de multiples sourcesAgrégation de multiples sourcesNatures différentes
Fonctionnellement application metier,
application portail,
collaboration,
contenu,
...
Techniquementportlet,
widget,
iframe,
web clipping,
…
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Agrégation de multiples sourcesAgrégation de multiples sourcesDifférents niveaux d’agrégation : Navigateur par mashup
Applicatifs portails
Appels backend (Web Services, …)
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Principe des portletsPrincipe 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
La requête HTTP est transformée en requêtes ciblées pour les portlets
Application Portail
HttpRequest
HttpResponse
PortletRequest
PortletResponsePortlet
Portlet
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Normes des portlets JSR 168 / 286Normes 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Avantages des portletsAvantages 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Inconvénients des portletsInconvé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, ...
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Principe des widgetsPrincipe 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Avantages des widgetsAvantages 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Inconvénients des widgetsInconvé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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#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 portailLes fonctions du portail
Moteur de portail
Serveur d’application
WORKFLOW
LO
OK
n F
EE
L
AD
MIN
IST
RA
TIO
N
CONTENEUR DE PORTLETS
PO
RT
LE
T
PO
RT
LE
T
PO
RT
LE
T
MOTEUR DERECHERCHE
SOCIAL
INTEGRATION
HA
BIL
ITA
TIO
N
PE
RS
ON
NA
LIS
AT
ION
AGREGRATION CMS
COLLABORATIONWIDGET
CLOUD
PREVISUALISATION
PO
RT
LE
T
1e génération2e génération
3e génération
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les cas d’utilisation d’un portail 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
•...
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché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, ...
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché : IBMLes 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché : OracleLes 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, ...
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché : Jboss / ExoLes 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, …
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché : LiferayLes 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, …)
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Les offres du marché : LiferayLes 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pourquoi choisir un portail en 2014Pourquoi 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pourquoi choisir un portail en 2014Pourquoi choisir un portail en 2014• Complexe à mettre en œuvreProblé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, …
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pourquoi choisir un portail en 2014Pourquoi 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pourquoi choisir un portail en 2014Pourquoi 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, …
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Le futur du portailLe 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, …
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Le futur du portailLe futur du portail
•Clouds : plusieurs cas d’utilisations
•Déploiement du portail
•Déploiement des portlets / applications (offre SAS)
• Cloud privé
@YourTwitterHandle#DVXFR14{session hashtag} @EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Q & A
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
A 2 columns slideA 2 columns slide
•Première colonne
•un
•deux
• trois
•quatre
•Autre point important
•okdak
•Deuxième colonne• one
• two
• three
• four
@YourTwitterHandle#DVXFR14{session hashtag} @EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Objec
tifs
Ce que vous allez apprendre pendant cette présentationWhat you will learn during this presentation
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#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 codeShow me some code
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
A code sampleA code sampleDo not try to show more than 15 lines of code per slideRemember, your audience will READ the slides and won’t listenTry to take screenshot of your code in Eclipse or IntelliJ
Evitez de montrer plus de 15 lignes de code par slideSouvenez-vous que votre audience va lire le slide et ne vous écoutera pasEssayez d’utiliser des captures d’écran d’Eclipse ou IntelliJ
@YourTwitterHandle#DVXFR14{session hashtag} @EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Sum
mar
y
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Pensez à utiliser des imagesPensez à 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
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Use images (wisely)Use images (wisely)
•Some web sites with free HD photos :
•http://www.colourlovers.com/
•http://www.flickr.com/creativecommons
•http://www.morguefile.com/archive
@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014
Crédit image / Creative CommonsCré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