Portail d'entreprise J2EE : des solutions libres Khaled BEN DRISS
Khaled.bendriss@oxiasoft.com 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 Khaled.bendriss@oxiasoft.com
Plan • Portail d'entreprise : le concept • J2EE : présentation • Portlet – JSR 168 • Des solutions open sources
khaled.Bendriss@oxiasoft.com
3
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
4
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
5
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
6
Portail d'entreprise : l'architecture cible
Portails spécialisés
Applications B2G, B2B, B2C
Services à Valeur Ajoutée
Plate-Forme eBusiness Applications traditionnelles
Sécuriser Personnaliser Administrer Intégrer Applications
khaled.Bendriss@oxiasoft.com
7
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
8
Tous converge vers le Portail Le marché et les offres
ERP
« Nouveaux » Spécialistes
Content Management
Fournisseur de contenu
Sécurité
Décisionnel
Moteur de recherche CRM
GED
Serveur d’application « Institutionnels » Généralistes
khaled.Bendriss@oxiasoft.com
EAI
9
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
10
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
11
Les conteneurs classiques de J2EE Applet Container
Web Container
HTTP SSL
JSP
Servlet
Applet RMI/IIOP
Connector
JDBC
HTTP SSL
Java Mail
JAXP
JTA
JAAS
JMS
J2SE
Java Mail
J2SE
Application Client Container
EJB Container RMI/IIOP
EJB
Application Client Connector
JDBC
Java Mail
JAXP
JTA
JAAS
JMS
JDBC
JAXP
JMS
JAAS
Java Mail
J2SE
J2SE
khaled.Bendriss@oxiasoft.com
12
J2EE & Portail : quoi de neuf? • Extension de la spécification J2EE • Extension de la notion de conteneur
khaled.Bendriss@oxiasoft.com
13
Portlet : un autre conteneur J2EE
Portail Portlet Conteneur de Portlet
khaled.Bendriss@oxiasoft.com
14
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
15
Portlet
khaled.Bendriss@oxiasoft.com
16
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
17
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
18
Les portlets (zoom)
Portlet Portail
API Portlet (JSR-168)
API JSP/Servlet
khaled.Bendriss@oxiasoft.com
19
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
20
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
21
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
22
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
23
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
24
Support "open source" de l’API Portlet • 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/ khaled.Bendriss@oxiasoft.com
25
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/
1 J
6 8
2 E E
• http://portlet-opensrc.sourceforge.net/ •
http://developers.sun.com/prodtech/portalserver/reference/techart/jsr168/index.html
khaled.Bendriss@oxiasoft.com
26