Post on 31-Dec-2015
Khaled BEN DRISS
Portail d'entreprise J2EE :
des solutions libres
Khaled.bendriss@oxia-group.com
le samedi 08 mars 2008
J
2
E
E
Khaled.bendriss@oxiasoft.com
Khaled BEN DRISS Executive Partner
Ingénieur de l'Ecole Centrale de Lyon Docteur de l'Université Paris 6 Ancien Maître Assistant à l'EPT Fondateur Net-progress
khaled.Bendriss@oxiasoft.com 3
Plan
• Portail d'entreprise : le concept
• J2EE : présentation
• Portlet – JSR 168
• Des solutions open sources
khaled.Bendriss@oxiasoft.com 4
Portail : c'est quoi ?
• Un concept marketing porteur… mais pas
nouveau !
• Principaux concepts discriminants − Agrégation de contenu (aggregation, content
management)
− Contenu personnalisé (personalization)
− Contenu personnalisable (customization)
khaled.Bendriss@oxiasoft.com 5
Portail d'entreprise : Les Enjeux
• Difficulté d’accéder et de trouver l’information
− Applications et contenu de sources multiples et disparates
• Tous les sites Web et les applications sont différents
− Différents accès
− Différentes ergonomies, différentes organisations
• Contenu vite périmé ou inadapté
• Difficile à gérer par le service informatique − Infrastructure est très fragmentée et coûteuse
− Prolifération des systèmes extranets et intranets
khaled.Bendriss@oxiasoft.com 6
Typologie, terminologie
Portail d’Entreprise (Corporate, B2E)
Portail Documentaire
Portail B2B (places de marché, e-Procurement)
Portail B2C (fédération de sites institutionnels orientés
métier ou de sites informationnels thématiques, …)
Portail Décisionnel
Portail Collaboratif (forums/chat, participatif)
Portail Internet d’information grand public (Yahoo, …)
Portail vertical/horizontal (place de marché)
khaled.Bendriss@oxiasoft.com 7
Plate-Forme eBusiness
Services à Valeur Ajoutée
Portail d'entreprise : l'architecture
cible
Applications B2G, B2B, B2C
Portails spécialisés
Applications
Intégrer
Sécuriser
Administrer
Personnaliser
Applications traditionnelles
khaled.Bendriss@oxiasoft.com 8
Qu’est-ce qu’un portail d'entreprise ?
• Définition (essai !!) − Le portail est un bureau virtuel, adaptatif (dynamique),
personnalisé, proposant un accès unifié à diverses sources
d'information et services, permettant d'interagir avec
d'autres personnes, applications ou contenus pertinents
et intégrant les activités administratives et métiers.
khaled.Bendriss@oxiasoft.com 9
Tous converge vers le Portail Le marché et les offres
GED ERP
Décisionnel
Content Management
CRM EAI « Institutionnels » Généralistes
« Nouveaux » Spécialistes
Sécurité
Serveur d’application
Fournisseur de contenu
Moteur de recherche
khaled.Bendriss@oxiasoft.com 10
Portail d'entreprise : Pourquoi?
• Unique point d’accès pour toutes les informations
• Mise à disposition de tous types d’informations
• Signature unique : Single Sign On (SSO)
− Pour toutes Applications
• Complètement personnalisable par l’utilisateur
− Comme sur my.yahoo
• Mais, inclus des pages pré-définies par fonction
− PDG, Audit, Comptable …
khaled.Bendriss@oxiasoft.com 11
J2EE : c'est quoi ?
• J2EE est Spécification d’un modèle de composants distribués prenant en compte les différentes couches d’un système d’information d’entreprise (client, web, composants métier, persistance, connecteurs)
• J2EE est une spécification d’un serveur d’application
• Tomcat, JBoss, WebSphere (IBM), WebLogic (BEA), Sun One (Sun), Oracle 10gAS (Oracle), etc. sont des implémentations de J2EE
khaled.Bendriss@oxiasoft.com 12
Les conteneurs classiques de J2EE
J2SE
JM
S
JA
AS
JT
A
JA
XP
JD
BC
Co
nn
ecto
r
Java Mail
Java
Web Container
JSP Servlet
J2SE
JM
S
JA
AS
JT
A
JA
XP
JD
BC
Co
nn
ecto
r
Java Mail
Java
EJB Container
EJB
J2SE
JM
S
JA
AS
JA
XP
JD
BC
Application
Client Container
ApplicationClient
J2SE
Applet
Container
Applet
HTTPSSL
HTTPSSL
RMI/IIOP
RMI/IIOP
khaled.Bendriss@oxiasoft.com 13
J2EE & Portail : quoi de neuf?
• Extension de la spécification J2EE
• Extension de la notion de conteneur
khaled.Bendriss@oxiasoft.com 14
Portlet : un autre conteneur J2EE
Conteneur de Portlet
Portail
Portlet
khaled.Bendriss@oxiasoft.com 15
Portlet 1.0 : nouvelle spécification
soutenue par la communauté J2EE
• Java Portlet API (nom de code : JSR 168)
− Interopérabilité et Portabilité entre les Portails J2EE et les
Portlets
• JSR 168 (Java Specification Request 168)
(http://www.jcp.org/en/jsr/detail?id=168)
− Java Community Process (JCP)
• Les règles de développement des portlets sont définies au sein de
la communauté JCP, soutenu par IBM, SUN, Apache, palm …
dans le but de l’intégrer dans J2EE
khaled.Bendriss@oxiasoft.com 17
Qu’est-ce qu’une portlet ?
• En première approximation : un élément de contenu, agrégé par le portail − Un “pavé”, une “fenêtre” : ce sont les composants ou
ingrédients qui sont proposés sur le portail,
− ils forment les contenus proposés.
− Ils sont personnalisables et doivent respecter la norme JSR168.
• Au sens strict : un composant Java qui s’exécute dans un conteneur − En utilisant l'API Portlet (JSR-168)
− Produit un fragment de code HTML / XHTML
khaled.Bendriss@oxiasoft.com 18
Portail Java EE : Commercial ou Libre?
• Java EE : On ne parle plus de portail
propriétaire
mais portail compatible JSR168
− Portail open source compatible JSR168
− Portail commercial compatible JSR168
• … et de
− Portlet open source
− Portlet commerciale
khaled.Bendriss@oxiasoft.com 19
Les portlets (zoom)
Portail
Portlet
API Portlet (JSR-168) API JSP/Servlet
khaled.Bendriss@oxiasoft.com 20
Portlets et servlets
• Il y a d’évidentes similarités entre les portlets et
les servlets
− Ce sont des composants J2EE
− Les unes et les autres génèrent (normalement) du HTML
− Similitude architecturale (on l’a dit): ce sont des composants qui
s’exécutent dans un conteneur
• Ceux qui connaissent la programmation des servlets
ne seront donc pas totalement dépaysés
khaled.Bendriss@oxiasoft.com 21
Fonctionnalités additionnelles
• Les portlets ont accès à une API riche pour
retrouver et persister des informations de
configuration
• Les portlets ont accès à des informations de
profil sur l’utilisateur
khaled.Bendriss@oxiasoft.com 22
Développer une portlet
• Le conteneur crée une (et une seule) instance de chaque portlet et la détruit en cas de besoin − Pas de gestion du cycle de vie compliquée comme avec les EJB
• Il faut parler un langage (protocole) commun avec le conteneur − Défini par JSR-168
− Exactement comme les applets, servlets, EJB,…
• Pour cela une portlet étend directement ou indirectement l’interface
javax.portlet.Portlet
khaled.Bendriss@oxiasoft.com 23
Déploiement
• Les applications basées sur les portlets sont
comme une extension des applications web
− Elles ont donc un Descripteur de Déploiement (DD) web.xml
• Les informations de configuration propres à la
partie portlet sont contenues dans un autre DD:
portlet.xml
khaled.Bendriss@oxiasoft.com 24
Support de l’API Portlet aujourd’hui
• Implémentation de Référence (RI) : − Apache Pluto : http://portals.apache.org/pluto
• Implémentations commerciales − IBM WebSphere Portal
− BEA WebLogic Portal
− Sun ONE Portal Server
− Oracle 10g Portal
− …
khaled.Bendriss@oxiasoft.com 25
• Portail
− Liferay
• http://www.liferay.com/
− eXo :
• http://www.exoplatform.org/
− uPortal :
• http://www.uportal.org/
− Apache JetSpeed :
• http://portals.apache.org/
− Jahia (licence communautaire)
• http://www.jahia.org/
Support "open source" de l’API
Portlet
khaled.Bendriss@oxiasoft.com 26
J
2
E
E
1
6
8
URLs / Références
• http://portals.apache.org/
• http://www.jcp.org/en/jsr/detail?id=168
• http://www.bea.com/
• http://www-306.ibm.com/software/websphere/
• http://www.mediapps.com/nportal
• http://jporta.sourceforge.net/
• http://www.jahia.org/jahia/Jahia
• http://www.uportal.org/
• http://www.liferay.com/home/index.jsp
• http://www.ressources-java.net/articles/3008.ppt
• http://www.jacquenod.cicrp.jussieu.fr/jacqueno
• http://www.oracle.com/technology/products/ias/portal
• http://www.esup-portail.org/
• http://www.exoplatform.com/portal/faces/public/exo/home/my-portal
• http://sw-portal.deri.org/papers/presentations/CommercialPortal.ppt
• http://www.oracle.com/appserver/portal_overview.pdf
• http://wwws.sun.com/software/products/portal_srvr/home_portal.html
• http://www.sysdeo.com/
• http://portlet-opensrc.sourceforge.net/ • http://developers.sun.com/prodtech/portalserver/reference/techart/jsr168/index.html