1. Portail d'entreprise J2EE :
des solutions libres
Khaled BEN DRISS
J
2
Khaled.bendriss@oxiasoft.com
E
le samedi 08 mars 2008
E
2. 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
3
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)
4
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
5
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é)
6
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.
8
khaled.Bendriss@oxiasoft.com
9. Tous converge vers le Portail
Le marché et les offres
« Nouveaux »
ERP GED
Spécialistes
Content Fournisseur
Management de contenu
Sécurité Décisionnel
Moteur de Serveur
recherche d’application
CRM EAI
« Institutionnels »
Généralistes
9
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 …
10
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
11
khaled.Bendriss@oxiasoft.com
12. Les conteneurs classiques de J2EE
Web Container
Applet HTTP
Container SSL JSP Servlet
Applet
RMI/IIOP
Java
Connector
J2SE
JDBC
Mail
JAAS
JAXP
JMS
JTA
Java
Mail
HTTP
J2SE
SSL
EJB Container
Application
Client Container RMI/IIOP
EJB
Application
Client
Java
Connector
JDBC
Mail
JAAS
JAXP
JMS
JTA
JDBC
JAAS
JAXP
JMS
Java
Mail
J2SE
J2SE
12
khaled.Bendriss@oxiasoft.com
13. J2EE & Portail : quoi de neuf?
• Extension de la spécification J2EE
• Extension de la notion de conteneur
13
khaled.Bendriss@oxiasoft.com
14. Portlet : un autre conteneur J2EE
Portail
Portlet
Conteneur de Portlet
14
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
15
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
17
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
18
khaled.Bendriss@oxiasoft.com
19. Les portlets (zoom)
Portlet
Portail
API Portlet (JSR-168) API JSP/Servlet
19
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
20
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
21
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
22
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
23
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
−…
24
khaled.Bendriss@oxiasoft.com