Diapositive 1 - TeamSoftsuite

Download Report

Transcript Diapositive 1 - TeamSoftsuite

Plan
►Historique
►Définition d’une portlet
►La spécification JSR 168
►Le portlet container Pluto
►Définition d’un serveur de portails
►Le serveur de portails Jetspeed
►Conclusions
Historique
►Dans les années 1998, avec l’apparition des
technologies Web, notamment les outils permettant
de réaliser des intranets, de nombreuses entreprises
ont mis en place des espaces de publications
électroniques.
►Le problème de ces espaces étaient l’hétérogeneité
des outils utilisés pour la mise en place et le fait que
plusieurs espaces étaient créés indépendemment
des autres à des fins propres à chaque service de
l’entreprise
Historique
►Avec l’expansion du phénomène, les difficultés sont
devenues gênantes et il a fallu remettre en cause la
partie technique afin de proposer des choix
homogènes et proches des demandes plus
complexes des utilisateurs.
►C’est pour répondre à ce besoin que les portails sont
apparus. Les premiers portails étaiant des portails
d’agrégation et de centralisation des informations
►Les portlets sont apparues avec la troisième
génération des portails introduisant de nouvelles
fonctionnalités telles que l’accès à des applicatifs, la
gestion
de
contenus,
l’agrégation,
la
personnalisation,la recherche avancée…
Qu’est ce qu’une Portlet ?
La spécification JSR-168 fournit deux définitions
d’une portlet :
►Une portlet est un composant web destiné à être
intégré dans le contexte d’une page composite.
Usuellement, plusieurs portlets sont invoqués dans
le contexte d’une page portail.
Chaque portlet produit un fragment de code qui est
combiné avec les fragments des autres portlets afin
de s’intégrer au code de la page.
►Une portlet est un composant web basé sur la
technologie Java, géré par un conteneur de portlet
qui traite des requêtes et génère un contenu
dynamique.
Techniquement
Qu’est ce qu’une Portlet ?
►Une portlet est une classe java qui implémente
l’interface javax.portlet.Portlet et qui est packagée
et déployée avec d’autres fichiers de configuration
sous forme de .war file dans un conteneur de
portlet.
Exemple de portlets :
Le site d’IBM Websphere Portal
Exemple de portlets :
Le portail my.yahoo.com
Eléments d’une page portail
Décorations et contrôles
Contenu de la Portlet
Fenêtre de Portlet
Page Portail
Portlet VS Servlet
Points communs entre portlet et servlet :
► Les portlets sont gérées par conteneur spécifique
► Les portlets génèrent du contenu dynamique
► Le cycle de vie d’une portlet est géré par le conteneur
► Les portlets interagissent avec le client web selon un schéma
request/response.
Différences entre portlet et servlet :
► Les portlets ne génèrent que des fragments de code et non des
documents
► Les portlets ne sont pas directement adressables par une URL
► Les portlets ne peuvent pas générer un contenu arbitraire. Le
contenu généré doit être conforme à ce que demande le
serveur ou le navigateur
La spécification JSR 168
►Java Specification Request 168 Portlet
Specification (JSR 168) est une spécification JCP
qui standardise la façon de développer des
composants pour des serveurs de portail (des
portlets) .
►La JSR 168 définit une API et une infrastructure
pour les portlets qui offrent des possibilités de
personnalisation,de présentation et de sécurité.
Théoriquement, les portlets se conformant à cette
API peuvent être déployées sur tout portail qui
adhère à cette spécification.
Thèmes de la JSR 168
►Conteneur de portlets
►Modes de portlets et Window state
►Gestion des préférences de portlet
►Informations Utilisateurs
►Packaging et Déploiement
►Sécurité
►Tags JSP pour développement de portlets
Le conteneur de portlets
Comme pour les servlets qui tournent sur un servlet
container, la JSR définit ce que doit être un portlet
container qui gère les portlets.
Ce conteneur doit appeler certaines méthodes de la
portlet gérant le cycle de vie de celle-ci :
init()
appelée lors de l’instanciation de la portlet.Contient la
logique pour préparer la portlet à traiter des requêtes
destroy()
processAction()
appelée lors de la destruction de la portlet
render()
appelée à chaque fois que la portlet doit être affichée
sur la page.
appelée lorsque l’utilisateur effectue des
modifications sur la portlet.Permet de traiter des
inputs effectués par l’utilisateur
Cycles de vie d’une portlet
Interactions
Le conteneur de portlets
Le conteneur de portlet offre aux développeurs une
classe GenericPortlet qui implémente l’interface Portlet
et qui donne accès à d’autres méthodes plus
spécifiques que la méthode render() pour générer le
contenu de la portlet. Ces méthodes sont basées sur
les modes de la portlet :
doView()
doEdit()
doHelp()
appelée par render() si la portlet est en
mode View
appelée par render() si la portlet est en
mode Edit
appelée par render() si la portlet est en
mode Help
Le conteneur de portlets
Les méthodes de la portlet manipulent des objets
appelés portlet request et response qui permettent à la
classe portlet de :
►Maintenir son état et communiquer avec d’autres
portlets et JSP grâce au concept de sessions
►Manipuler des inputs introduits dans un formulaire de
la portlet
►Renvoyer le contenu de la portlet à travers l’objet
response
►Récupérer des informations sur le portail et la portet
Modes et Window states
Le conteneur gère deux options d’états pour les
portlets :
►Les modes sont utilisés par la méthode render()
pour savoir quelle sous-méthode appeler.Ils sont au
nombre de trois : View, Edit et Help
►Les Window States indiquent l’espace que doit
occuper la portlet dans la page. Ils sont au nombre
de trois : Minimized, Maximized et Normal
Préférences
►Les portlets sont généralement configurées pour
offrir une vue qui diffère d’un utilisateur à un autre.
Ces préférences sont représentés par un jeu de
paires Clé-Valeur.
►Le portlet container s’occupe de charger et
d’enregistrer ces préférences à travers l’interface
PortletPreferences via les méthodes getValues() et
setValues().
Informations Utilisateurs
►La Portlet Specification fournit un mécanisme
d’accès aux données utilisateurs tels que le nom,
l’email et le n°de téléphone en les chargeant à
partir du descripteur de déploiement et les plaçant
dans un objet Map.
►Cet objet Map est accessible dans l’objet Request
de la portlet à travers la constante USER_INFO.
Packaging et Déploiement
►La JSR spécifie le packaging et le déploiement des
portlets comme faisant partie d’une archive WAR
qui peut contenir d’autres composants web tels que
servlet et pages JSP.
►L’archive doit contenir deux descripteurs de
déploiement : le descripteur classique web.xml et
un descripteur portlet.xml qui définit les portlets et
des configurations qui s’y rapportent.
►La spécification définit l’ensemble des éléments
standards pouvant figurer dans le fichier portlet.xml
Sécurité
La Portlet Specification inclue plusieurs moyens de
développer des portlets sécurisées :
►Mise en place d’un flag qui oblige les portlets à
tourner sur HTTPS.
►Définition d’une politique de gestion des utilisateurs
basée sur l’authentification, les notions de rôles et
de groupes.
JSP Tag Library
Une bibliothèque de balises JSP est incluse afin de
permettre l’affichage des portlets avec la
technologie JSP. Par exemple :
►Une balise personnalisée permet de déclarer
automatiquement les objet portlet request et
response afin qu’ils soient disponibles dans la
pasge JSP
►Une autre balise permet de construire des URL qui
renvoient vers la portlet.
Pluto : Exemple de Portlet Container
►Pluto est un conteneur de portlet qui implémente la
Portlet API et offre aux développeurs une platforme
fonctionnelle à partir de laquelle on peut tester les
portlets JSR168
Pluto : Exemple de Portlet Container
►Apache Pluto est un sous projet du projet de portails
d'Apache. La version en cours activement
développée est la version 1.1.
►Pluto est une d’application web qui se déploie sous
Tomcat
►Les distributions disponibles de Pluto se présentent
sous forme d’un package contenant une version de
Tomcat sur laquelle est déployé Pluto
Pluto : Exemple de Portlet Container
►Un portlet container ne suffit pas car pour faire
fonctionner des portlets, un serveur de portails est
nécessaire. Pluto remédie à ce problème en offrant
un driver intégré qui permet de simuler un serveur de
portail minimaliste qui sera suffisant pour tester des
portlets simples.
►Toutefois, nous aurons besoin d’adopter un vrai
serveur de portails pour exploiter au mieux les
fonctionnalités avancées des portlets.
Lab 1
►Développement de portlets JSR 168
►Déploiement de portlets sur Apache Pluto
Qu’est ce qu’un serveur de portail ?
►Selon la portlet specification un serveur de
portails
est
une
application
web
qui
généralement
fournit
la
personnalisation,
l’authentification
unique,
l’aggrégation
de
contenus à partir de sources différentes et
héberge la couche présentation des systèmes
d’information.
►Plus généralement, un portail est un
emplacement central permettant de mettre tout
type d'information à la disposition d'un large
public. On peut distinguer deux catégories
principales de portails : les portails d'informations
d'entreprise et les portails de gestion de contenu.
Portlet Container Invoker
Portlet API
Container Provider SPI
Architecture de la Technologie Portlets
J2EE
Architecture de la Technologie Portlets
J2EE
L’application web receuille la
requête du client puis fais
appel au portlet container
pour récupérer le contenu de
chaque portlet .
Pour cela, le portal server accède au portlet container en utilisant
le Portlet Container Invoker API.Cette interface représente
l’interface principale qui supporte des méthodes acceptant des
requêtes pour appeler portlets du point de vu du portail. Le
container provider SPI est une interface qui nécessite d’être
implémentée par le portal server pour fournir aux portlets des
informations sur le portail. Le portlet container appelle les portlets
via la portlet API.
Les portails d'informations d'entreprise
►Les portails d'informations d'entreprise visent
essentiellement à regrouper une large gamme
d'informations provenant de différentes sources
sur un écran unique. En général, les utilisateurs
de ces informations n'effectuent pas de
publication vers ce type de portail ; ils sont plutôt
consommateurs des informations préparées et
publiées par d'autres.
Les portails de gestion de contenu
►Les portails de gestion de contenu sont
conçus pour améliorer l'accès aux informations
et leur partage. Dans un portail de ce type, les
fonctions de publication en libre service
permettent aux utilisateurs finaux d'envoyer et
de partager tout type de document ou de
contenu Web avec d'autres utilisateurs, quelle
que soit leur situation géographique.
Les portails de gestion de contenu
►Imaginons par exemple un groupe de
développement composé d'ingénieurs, de chefs
de produit et d'ingénieurs en assurance de la
qualité dispersés aux quatre coins du monde.
Chacun dispose de documents qu'il doit
partager avec des membres de son équipe,
mais aussi avec d'autres groupes.
Exemple de serveur de portail
►Jetspeed est une implémentation Open source de
Enterprise Information Portal utilisant Java et
XML.
►Un portail met des Ressources réseau
(applications, bases de données..) disponibles
aux utilisateurs. L'utilisateur peut accéder au
portail par l'intermédiaire d'un web browser, du
WAP-phone, ou de n'importe quel autre dispositif.
Jetspeed agit en tant que hub central où les
informations des sources multiples sont rendues
disponibles facile à employer.
►Le projet de Jetspeed se concentre sur le portail
lui-même plutôt que le conteneur des portlets.
Exemple de serveur de portail
►Les données présentées par l'intermédiaire de
Jetspeed sont indépendantes du type du
contenu , ceci signifie que les contenus de type
XML, RSS ou SMTP peuvent aussi être intégrés
avec Jetspeed.
Lab 2
►Design du portail
►Organisation du portail
►Sécurité
►Portlet HelloWorld
►Portlet JSP
►Portlet DataBaseBrowser
►Portlet RSS
Portlets et Serveur d’application
Conclusion:
Acteurs de la technologie Portlets J2EE
►Portail :
Regroupe les contenus d'une ou
plusieurs portlets - - fournit des
services à valeur ajoutée.
►Conteneur de portlets
Fournit la gestion de Cycle de vie
de la Portlet - - Fournit
L'Invocation De Portlet
►Portlet Application
Applications Web standards qui
consistent en une ou plusieurs
Portlets
►Portlet
Composant web
Conclusion:
Quel avenir pour les portails ?
Portail de 4ème génération : portail d’unification :
►Seront multi-supports (pda, téléphonie) appelé aussi MAG
(MultichannelAccess Gateway)
►proposeront des applications métiers en s’appuyant sur
l’approche SOA (Service-oriented architecture)
►se baseront sur des composants (portlets) multifournisseurs (WSRP Web Services for Remote Portlets) pour
la communication et l’intégration inter-portails
►déploieront des applications composites
Conclusion:
Quel avenir pour les portlets ?
►Apparition d’assistants permettant aux Designers
Web de créer rapidement des portlets en capturant
des Applications développées avec des technologies
web différentes comme JSP, ASP, .NET, HTML, Cold
Fusion, Flash
►Les futurs Portal Servers tendent de plus en plus à
se conformer à la spécification JSR 168. La version
2 de Jetspeed n’acceptera que des portlets JSR 168.