001_- Portail J2EE solutions libres.pdf
Transcript of 001_- Portail J2EE solutions libres.pdf
Khaled BEN DRISS
Portail d'entreprise J2EE :
des solutions libres
le samedi 08 mars 2008
J
2
E
E
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
Plan
• Portail d'entreprise : le concept
• J2EE : présentation
• Portlet – JSR 168
• Des solutions open sources
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)
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
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é)
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
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.
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
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 …
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
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
J2EE & Portail : quoi de neuf?
• Extension de la spécification J2EE
• Extension de la notion de conteneur
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
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
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
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
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
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
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
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
− …
• 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
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