001_- Portail J2EE solutions libres.pdf

26
Khaled BEN DRISS Portail d'entreprise J2EE : des solutions libres [email protected] le samedi 08 mars 2008 J 2 E E

Transcript of 001_- Portail J2EE solutions libres.pdf

Khaled BEN DRISS

Portail d'entreprise J2EE :

des solutions libres

[email protected]

le samedi 08 mars 2008

J

2

E

E

[email protected]

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

[email protected] 3

Plan

• Portail d'entreprise : le concept

• J2EE : présentation

• Portlet – JSR 168

• Des solutions open sources

[email protected] 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)

[email protected] 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

[email protected] 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é)

[email protected] 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

[email protected] 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.

[email protected] 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

[email protected] 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 …

[email protected] 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

[email protected] 12

Les conteneurs classiques de J2EE

J2SE

JM

S

JA

AS

JT

A

JA

XP

JD

BC

Co

nn

ecto

r

Java Mail

Java

Mail

Web Container

JSP Servlet

J2SE

JM

S

JA

AS

JT

A

JA

XP

JD

BC

Co

nn

ecto

r

Java Mail

Java

Mail

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

[email protected] 13

J2EE & Portail : quoi de neuf?

• Extension de la spécification J2EE

• Extension de la notion de conteneur

[email protected] 14

Portlet : un autre conteneur J2EE

Conteneur de Portlet

Portail

Portlet

[email protected] 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

[email protected] 16

Portlet

[email protected] 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

[email protected] 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

[email protected] 19

Les portlets (zoom)

Portail

Portlet

API Portlet (JSR-168) API JSP/Servlet

[email protected] 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

[email protected] 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

[email protected] 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

[email protected] 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

[email protected] 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

− …

[email protected] 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

[email protected] 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