41
@EmmanuelPavaux #DevoxxPortail2014 Pourquoi utiliser un portail en 2014 @EmmanuelPavaux Oxiane, www.oxiane.com Architecte, consultant et formateur

DevoxxFR Présentation des portails en 2014

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

@YourTwitterHandle@EmmanuelPavaux@EmmanuelPavaux#DevoxxPortail2014#DevoxxPortail2014

Dem

o

Life

ray

@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

blank slidefor your own

pictures

blank slidefor your own

pictures

@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

title-lessslide

title-lessslide

@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