Ce document a comme
finalité la présentation díun état des lieux non exhaustif de ce que le terme
de portail induit et de proposer une base de débat. Je ne prétends en aucun cas
faire le tour complet de ce qui se fait et doit se faire. Ce document est un
travail de recherche ayant comme base díapproche, un séminaire auquel jíai
participé, sur ce thème, proposé par la
société Sysdeo http://www.sysdeo.com/ et présenté par Pascal Grojean.
Organisation de ce
document
Les portails : la synthèse___________________________________________ 1
Définition____________________________________________________ 2
Historique____________________________________________________ 3
Les concepts de base díun portail_________________________________ 7
Quelques éléments nécessaires__________________________________ 8
Les espaces de liberté émergents________________________________ 10
Architecture díun portail_________________________________________ 12
Les mécanismes de fonctionnement díun portail_____________________ 18
Les solutions disponibles______________________________________ 22
Exemple de session sur le portail Liferay___________________________ 26
Exemple 1 de configuration (code)________________________________ 28
Exemple 2 simple et complet (code)_______________________________ 30
Auteur : Jacquenod
Frédéric
24/11/2004
Que signifie le terme
portail ?
Ceci doit faire líobjet
díun vrai débat, díune vraie discussion.
En effet chacun possède sa
propre image de ce quíest un portail.
La réponse à cette question
va entraÓner des choix techniques et organisationnels totalement différents.
Un sondage récent du journal
du net concernant la vision de ce quíest un portail indique que :
ÿ
54% des sondés se le
représentent comme un gestionnaire de contenus ;
ÿ
25% comme un serveur
díapplications ;
ÿ
21% comme un élément de
partage et de travail collaboratif.
Líévolution depuis une
dizaine díannées des outils informatiques a fait évoluer cette représentation.
On le voit díailleurs, dans
les définitions suivantes :
ÿ
Le site de líacadémie
de Caen http://www.etab.ac-caen.fr/cdti-orne/circos/laigle/rech/#portail
définit la notion de portail ainsi :
´ Un portail est
une page WEB qui donne accès à
un ensemble de sites intéressant pour une population donnée.ª |
ÿ
Líuniversité de
Lausanne http://my.unil.ch/jahia définit
la notion de portail ainsi :
´ Le portail MyUNIL est un bureau virtuel, adaptatif, donc
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 académiques. ª |
|
A noter que le
portail mis en place est réalisé à partir du logiciel open source jahia http://www.jahia.org/jahia/Jahia. |
Qui a
raison ? Qui est le plus proche de la réalité ?
Un petit
historique de líévolution des portails permet peut-Ítre díy voir plus clair.
Dans les années 1998, avec
líavènement des technologies Web, notamment les outils permettant de réaliser
des intranets, de nombreuses entreprises (dans ce terme, jíinclus évidemment
les administrations de toutes sortes) ont mis en place des espaces de
publications électroniques (on ne parle pas alors de portail).
Souvent, dans la mÍme
entreprise, plusieurs espaces ont été créés, sans concertation, à des fins
propres à chaque service.
La plupart du temps, ces
mises en place, se sont faÓtes sans mettre dans la ´ confidence ª les
informaticiens concernant les choix techniques. Pour cause, ces choix
techniques ayant été effectués par des responsables plus proches de la partie communication
que de la partie technique (cela se retrouve encore de nos jours).
Résultat, dans une mÍme
entreprise, des outils différents ont été installés pour effectuer un travail
identique mais sans mise en commun de quoi que ce soit (technique, contenu, personnel).
Líoutil
´ intranet ª devait permettre une mise en commun de contenus, de
savoirs faire, voir mÍme de personnels, alors que dans ces cas, líeffet a été
contraire et a tendu plutÙt vers une segmentation de líentreprise et une
hétérogèneÔsation des outils.
Ces outils, malgré tout, se
sont trouvés Ítres très utiles et les besoins sont devenus croissants, les
problèmes aussi Ö
Les premiers outils se sont
alors révélés des choix discutables car peu évolutifs, compliqués à mettre en
úuvre. Un éléments a été aussi le plus souvent oublié, líélément humain. Il est
une chose de choisir, díinstaller, des outils de publications, mais, encore
faut il, ensuite, pouvoir mettre les contenus à jour, les suivre, les modifier
Ö Souvent cette partie a aussi été oubliée. On parle de líavant, du pendant
mais pas de líaprès.
De fait, les directions
díentreprise ont repris la main sur ces déploiements et ont tenté de
rationaliser tout cela. Pour ce faire, la partie technique a été remise en
avant afin de proposer des choix homogènes et proches des demandes plus
complexes des utilisateurs.
Les premiers portails sont
alors apparus proposant un point díaccès unique et homogène aux informations
permettant ainsi, de fédérer, de rassembler, de capitaliser toute la chaÓne de
la partie technique à la partie humaine, en passant par les savoirs.
Ces nouveaux choix
techniques ont dš prendre en compte les nouvelles demandes des utilisateurs
telle la personnalisation de leur navigation, la sophistication des outils
comme la recherche díinformations.
Historiquement, les
intranets des entreprises se sont transformés en portails pour rationaliser
toute la chaÓne. Líévolution des techniques et des besoins les a fait évoluer.
On peut les classer en 4 catégories :
ÿ Portail de 1ère génération : portail
díagrégation (centralisation des informations dispersées)
ÿ Portail de 2ème génération : portail
personnalisé (adaptation du portail au profil de líutilisateur implicitement ou
explicitement ñ on parle parfois de portail pré-portlets). Ce type de portail
pouvait supporter les canaux sans-fil de type Wap (Wireless
Application Protocol).
ÿ Portail de 3ème génération : portail
díintégration (accès à des applicatifs, gestion de contenus, agrégation,
personnalisation, recherche avancée, outils collaboratifs, accès universel Ö)
basé sur les portlets.
ÿ Portail de 4ème génération : portail
díunification. Dans les années à venir, ils :
¸ Seront multi-supports (pda, téléphonie) appelé aussi
MAG (Multichannel Access Gateway) ;
¸ proposeront des applications métiers en síappuyant
sur líapproche SOA (Service-oriented
architecture) ;
¸ se baseront sur des composants (portlets)
multi-fournisseurs (WSRP Web Services for Remote
Portlets) pour la communication et líintégration inter-portails ;
¸ déploieront des applications composites ;
¸ Ö
On trouve la
définition officielle de ce quíest un portail de 4ème génération en
lisant le draft JSR168 (Java Specification Requests http://www.jcp.org/aboutJava/communityprocess/review/jsr168/)
concernant les portlets (composants du portail) :
A portal is a
web based application that commonly provides personalization, single sign on,
content aggregation from different sources and hosts the presentation layer
of Information Systems. Aggregation is the action of integrating content from
different sources within a web page. A portal may have sophisticated
personalization features to provide customized content to users. Portal pages
may have different set of portlets creating content for different users. |
Il existe 3 grands types de
portails :
ÿ B2B : Business to Business (Portail orienté
partenaire ou client díentreprises) ;
ÿ B2C : Business to Consumer (portail grand public) ;
ÿ B2E : Business to Employee (portail destiné aux
collaborateurs de líentreprise dans le cas díune université, cela concerne les
étudiants et personnels).
Quel que soit le type de
portails, il existe 3 concepts principaux qui déterminent ce quíil doit Ítre :
ÿ Le rÙle :
que líon peut définir comme le ciblage de líutilisateur, son profil. Un
utilisateur peut posséder plusieurs profils selon son implication au sein du
portail, allant du simple utilisateur non référencé à líadministrateur du
portail. Selon ces rÙles, les possibilités ne seront pas les mÍmes.
ÿ Les portlets : 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 ou WSRP. Ce sont des servlets spécialisées.
ÿ Les templates : elles permettent de standardiser líagencement et líorganisation
des éléments du portail.
Le portail doit remplir un
certain nombre de missions :
ÿ Fédérer les services (un point díentrée unique pour
tous les services (données et applications)) ;
ÿ Simplifier líaccès aux informations (moteur de
recherche Ö) ;
ÿ Sécuriser les transactions et les contenus ;
ÿ Proposer des outils collaboratifs (forums Ö) ;
ÿ Evolutif (tant techniquement que rédactionnel) ;
ÿ Ne pas Ítre frustrant en tentant de tout centraliser
sans proposer díespaces de liberté, ne pas rendre líinformation et sa
publication ´ stalinienne ª.
Pour que ces enjeux et ces
missions soient remplis par le produit portail mis en place, il est nécessaire
de bien penser au rÙle que doit jouer ce portail, on parle de taxonomie du portail.
Quelques éléments
nécessaires
|
ß Pour Ítre un succès, le portail doit avant tout Ítre
utile, simple à
utiliser, personnalisable,
réactif, à jour tout en proposant des outils à la pointe.
ß Pour cela, un élément important est le suivi de ce
portail. Il est
essentiel que le maÓtre
díouvrage prenne conscience quíaussi beau que puisse Ítre le produit, il níaura
díintérÍt pour les utilisateurs que si il vit.
Son développement futur, la
mise à jour des informations, líajout díoutils Ö sont des éléments aussi
importants que la mise en place et qui nécessitent un potentiel humain à la
hauteur (quantitativement et qualitativement) des enjeux. Il est nécessaire de
posséder des outils díadministration qui permettent notamment de collecter les
informations ainsi que le personnel pour les analyser et en déduire les
comportements des utilisateurs pour une meilleure adhérence du produit aux
besoins.
ß Pour une bonne gestion et un développement du portail,
il est nécessaire de
permettre une administration
´ conjointe ª. Une délégation des droits díadministration doit Ítre
possible.
ß Un portail de 4ème génération, comme celui
díune université ouverte
vers le monde se doit díÍtre
multilingues.
ß Avec líarrivée des technologies mobiles, le portail
doit Ítre
multi-supports (PDA,
téléphonie Ö).
ß Certains portails, et cela peut Ítre utile dans le
cadre díune
université, proposent la
possibilité de synchroniser son poste local avec son ´ poste
distant ª à travers le portail. Vous pouvez ainsi travailler en offline et
ensuite synchroniser les contenus. Selon líoutil, cette synchronisation
peut síeffectuer de manière
unidirectionnelle ou bi-directionnelle.
ß Un élément à ne pas oublier : la communication
autour de ce
portail afin de le faire
connaÓtre, díexpliquer son intérÍt et díexpliquer líintérÍt quíil y a à
líutiliser.
Un portail de
base peut ou doit comporter (non exhaustif et modulable) :
ÿ une sécurisation des accès de type SSO
(Single Sign On) ;
ÿ un profilage de líutilisateur pour une
consultation d'informations personnalisée ;
ÿ une administration et une gestion des
contenus (moteur de recherche, ajout, mise à jour, validation et publication de
documents et/ou de données Ö) avec possibilité de délégation ;
ÿ des espaces de travail collaboratif (mél,
agenda, forum Ö) ;
ÿ des applications ´ locales ª
(demandes de congés, relevé de carrière, réservation de billets via le CE, menu
cantine, consultation de son dossier personnel, de ses notes Ö) ;
ÿ des applications métiers (accès à des
outils de gestions Ö) ;
ÿ une disponibilité 24h/24h, 7j/7j ;
ÿ une évolutivité des contenus et des outils ;
ÿ une accessibilité pour tous et par tous les
environnements (OS, navigateurs, PDA Ö) ;
ÿ des espaces de liberté ;
ÿ Ö
Les espaces de liberté
émergents
|
Pour laisser un
espace de liberté au sein de ces portails, des outils sont parfois proposés.
Ils permettent aussi díaméliorer la communication et de simplifier son échange
comme les blogs ou les wiki (attention aux débordements dans les contenus voir
líaffaire récente de blogs de la radio skyrock en France).
Des logiciels
très simples et facilement installables sont disponibles pour mettre en ligne
ces sites web díun ´ nouveau ª type.
ÿ Les blogs (contraction de web logs) sont
des sites web personnels composés
principalement
de líactualité en rapport avec son créateur un peu comme un journal intime. Ces
éléments sont très prisés des entreprises, qui donnent ainsi un espace
díexpression à ses employés avec un lien sur le portail de cette mÍme
entreprise. En France, le journal Libération a lancé la mode en proposant un
blog à ses journalistes durant les élections américaines.
ÿ Le WiKi, dont le nom provient du mot
WikiWiki qui signifie ´ vite ª en hawaÔen,
est un site web
collaboratif o˜ tout intervenant peut ajouter, modifier les pages de la
communauté de manière très simple. A la différence du blog, le wiki exprime la
voix díun groupe et non pas díun individu. Outre-atlantique, les entreprises
utilisent ce système, en France il en existe peu. Par contre, il en existe un connu qui est ouvert à tous :
CraoWiki (http://wiki.crao.net/).
Architecture díun portail
|
Le terme architecture peut
englober de nombreux points qui vont du graphisme aux choix techniques.
Du cÙté utilisateur, ce
portail doit Ítre personnalisable tant dans son contenu que dans sa
présentation. Ne pas oublier que líutilisateur est au cúur du système et que le
portail est fait pour quíil puisse líutiliser dans les meilleures conditions.
ÿ Graphisme
Une ligne directrice est
fournie par les responsables du projet mais, il peut Ítre nécessaire de
proposer à líutilisateur (comme le font les portails jahia ou liferay), une
personnalisation de son environnement comme cela existe le plus souvent sur les
postes de travail de type PC via une conservation de ses préférences. On parle
de skin (Ensemble de paramètres et d'images
définissant l'apparence d'une application, díune page web Ö).
Malgré tout, quels que
soient les outils díaccès et notamment les outils mobiles (PDA, Portable ...)
il faut garder en mémoire que líécran níest pas un espace extensible à
líinfini.
Pour palier à ce problème,
il existe des astuces pour organiser une page. Cette organisation à líécran se
nomme layout.
Le plus souvent les pages
proposent des onglets (pane).
On peut retrouver ces
recommandations dans les documents associés au développement du portail ESUP
(Environnement numérique de travail díaccès intégré aux services pour les
étudiants et le personnel de líenseignement supérieur) à líadresse http://www.esup-portail.org/.
ÿ Accessibilité
Il existe des
recommandations pour l ëaccessibilité aux données quíil peut Ítre utile de
consulter et díessayer de suivre comme líindique le site de líADAE (Agence pour
le Développement de líAdministration Electronique http://www.adae.gouv.fr).
Ces recommandations sont
proposées par le W3C sous líacronyme WAI (Web
Accessibility Initiative) à líadresse http://www.w3.org/WAI.
ÿ Les Portlets
Pour mettre en úuvre ces
éléments, les portails de 3ème et 4ème génération
utilisent des portlets. Ces éléments ont été initiés en 1999 par Apache dans le
projet de développement díun portail open source nommé jetspeed (http://portals.apache.org/).
Les portlets sont les
composants JAVA que líon retrouve au sein du portail au niveau applicatifs
(voir la définition ci-dessous).
Définition
´ Module intégré à un portail d'entreprise, qui permet à
l'utilisateur de disposer, dans la mÍme fenÍtre, d'un accès centralisé et
convivial à différentes ressources (données, applications, sites Web, etc.),
de modifier l'interface du portail selon ses besoins et de personnaliser
ainsi son environnement de travail. ª |
Un portlet (ou
une portlet) est líéquivalent díun servlet mais à líintérieur díun portail.
Un portlet est
construit sur la base díune applet mais uniquement pour une utilisation au sein
díun portail.
Le mot Portlet
provient de la contraction de PORTail et appLET.
Rappel
ß
Une
applet est un petit
programme, en langage JAVA conÁu pour Ítre téléchargé via un réseau à chaque
fois quíil doit Ítre utilisé à travers un navigateur. Une applet est donc
exécutée cÙté client. En franÁais, on parle díapplette ou díappliquette.
ß
Une
servlet est une
applet qui síexécute cÙté serveur.
Les règles de
développement des portlets sont définies au sein de deux communautés JCP (Java
Community Process) et OASIS (Organization for the advancement of structured
information standards)
ÿ JSR168 (Java Specification Requests 168)
http://www.jcp.org/en/jsr/
soutenu par Ibm, Sun, Apache, palm Ö dans le but de líintégrer dans J2EE.
ÿ WSRP (Web services remote portal)
http://www.oasis-open.org
soutenu par Ibm, Sun, Oracle, Citrix, Microsoft Ö
- Les Web Services sont décrits dans un document WSDL (Web Services Description
Language) en XML (eXtensible Markup Langage) qui permet de décrire les web
services et la faÁon díy accéder. Sa version actuelle est la 1.1 que vous
pouvez retrouver sur le site du W3C http://www.w3.org/TR/wsdl.
- Pour communiquer, les web services
utilisent le protocole SOAP (Simple Object Access Protocol) dont la version actuelle est 1.2.
Vous retrouvez là aussi les spécifications sur le site du W3C http://www.w3.org/TR/soap/. Vous pouvez
aussi, obtenir des informations sur le site http://www.w3schools.com/soap qui
propose un tutorial assez bien fait.
- Pour publier et rechercher ces Web
Services, le protocole UDDI (Universal Description, Discovery and Integration) est utilisé.
Ce protocole est défini par le groupement OASIS (vu précédemment) et a pour but
de rendre interopérable les web services entre toutes les plateformes et
applications à travers líinternet. Il se base sur les travaux du W3C à travers
líutilisation de SOAP, XML, HTTP et de líIETF (Internet Engineering Task Force http://www.ietf.org) pour des protocoles comme
le DNS (Domain Name Service). Vous pouvez obtenir les informations à
líadresse : http://www.uddi.org/.
Logo |
Adresse Web |
|
|
|
|
|
|
Pour mieux comprendre les
implications des Web Services vous pouvez consulter le site :
http://www.service-architecture.com/web-services/articles/index.html
Les mécanismes de
fonctionnement díun portail
|
Les portlets se situent au
niveau de la couche application du portail.
ÿ
MVC (Model View
Controller)
Du point de vue mise en
place, les portlets sont encapsulés dans une architecture MVC. Ce mode de
fonctionnement est apparu en 1979 avec smalltalk-80 et développé par Trygve Reenskaug.
|
|
Vous retrouvez
le descriptif díorigine à líadresse http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
ainsi quíun
document sur les origines du MVC à líadresse de son créateur qui pointe sur un
Ö Wiki http://c2.com/cgi/wiki?ModelViewControllerHistory
ÿ
Le modèle représente l ëensemble des données utilisées
par líapplication indépendamment de la présentation graphique (gérée par la
vue) et des interactions de líutilisateur (gérées par le contrÙleur) ; ÿ
La vue ou plutÙt les vues sont les différentes
présentations graphiques à líécran des données du modèle ; ÿ
Le contrÙleur gère les interactions de líutilisateur (souris,
clavier Ö) et définit les actions à effectuer sur les données du modèle. |
Le fonctionnement du MVC est
le suivant (Voir JSR168)
ÿ
Intéraction de
líutilisateur via un accès au portail ;
ÿ
A travers la
personnalisation, le portail identifie et invoque les portlets ;
ÿ
Pour chacune des
portlets, le conteneur appelle une méthode render() (vue) ou une méthode
processAction() selon le mode dans lequel se trouve la portlet (view, edit
Ö) ;
ÿ
La méthode render fait
alors appel à une méthode doXX() qui à travers une JSP (Java Server Page http://java.sun.com/products/jsp/)
va afficher les informations dans une page html (doEdit(), doView(), doHelp()
Ö).
Le schéma suivant montre
líarchitecture basique díun portail
Au niveau de ce MVC, trois
entités entrent en jeu
¸ Le portail qui reÁoit la requÍte de líutilisateur,
líidentifie, personnalise la page en invoquant les portlets désirés, active les
portlets à travers le gestionnaire de portlets et en fonction des réponses
construit la page ´ portail ª ;
¸ Le gestionnaire de portlets (appelé aussi conteneur
ou container en anglais) qui gère le cycle de vie des portlets à travers les
méthodes init(), processAction(), render() et destroy() ;
¸ Les portlets qui traitent les demandes
(processAction), effectuent le rendu (render) et envoient cette information au
conteneur (html).
La portlet joue donc les 3
rÙles à travers des appels Java
ÿ
Modèle ;
ÿ
Vue ;
ÿ
ContrÙleur.
Les modes díusage de la portlet peuvent Ítres
ÿ
View (affichage des
données du modèle) ;
ÿ
Edit (modification des
préférences de líutilisateur sur la portlet) ;
ÿ
Help (aide associée à
la portlet) ;
ÿ
About (description de
la portlet) ;
ÿ
Config (configuration
de la portlet) ;
ÿ
Preview (visualisation
de la portlet avant acceptation des modifications) ;
ÿ
Print (Impression des
données affichées dans la portlet) ;
ÿ
Il peut y en avoir
díautres ´ constructeur ª.
On peut accéder à certains
de ces états à travers les icÙnes associés à la portlet (icÙnes en haut à
droite)
Les états de la portlet peuvent Ítres
ÿ
Normal (la portlet
partage líécran selon la mise en page choisie) ;
ÿ
Maximized (la portlet
prend tout líécran) ;
ÿ
Minimized (on ne voit
que la barre de menu de la portlet) ;
ÿ
Closed (supprime la
portlet de la page, elle peut Ítre réactivée à travers le menu de préférences
associé à la page).
|
Þ |
|
|
|
|
Les solutions disponibles
|
Il existe des solutions
´ clé en main ª commerciales ou non qui proposent des solutions
portails ou qui ressemblent à un portail. Voici une liste non exhaustive.
Attention
Toutes les solutions ne se
valent pas et surtout níont pas le mÍme périmètre de travail (simple gestion de
contenus, travail collaboratif ou vraie solution portail basée sur les
portlets).
Une étude récente évalue le
marché ´ portail ª comme ceci
Vous retrouvez ces
informations sur le site web :
http://solutions.journaldunet.com/dossiers/chiffres/gestioncontenu.shtml
ÿ
Les solutions
généralistes
Société |
Logo |
Solution |
BEA |
|
BEA Weblogic Portal |
IBM |
|
Websphere |
Bowstreet |
|
Bowstreet
Factory |
Mediapps |
|
Net.Portal |
Oracle |
|
Oracle9iAS
Portal |
PeopleSoft |
|
Enterprise
Portal |
|
||
SAP |
|
mySAP
Enterprise Portal |
Tibco |
|
PortalBuilder
et PortalPacks |
Sun |
|
Sun ONE Portal
Server |
http://wwws.sun.com/software/products/portal_srvr/home_portal.html |
||
Sybase |
|
Enterprise
Portals |
http://www.sybase.fr/francais/products/enterprise-portal.jsp |
ÿ
Autres types de
portails
ATG |
|
ATG Portal |
Hummingbird |
|
Enterprise
Content Management Solutions |
Instranet |
|
Content-Based
Applications Suite |
Microsoft |
|
SharePoint
Portal Server (collaboratif) |
Plumtree |
|
Plumtree
Corporate Portal (collaboratif) |
Tridion |
|
Portal Server
Integration (gestion de contenus) |
Verity |
|
Verity K2 Entreprise (gestion de
connaissances) |
Vignette |
|
Vignette (gestion de contenus) |
ÿ
Les portails
open-source
Apache |
|
Jetspeed |
eXo platform |
|
Exo Portal |
http://www.exoplatform.com/portal/faces/public/exo/home/my-portal |
||
Memtum Group |
|
Jporta |
Jahia |
|
Jahia |
Ja-sig (iniversités) |
|
uPortal |
Liferay |
|
Liferay Entreprise Portal (Voir exemple
ci-dessous) |
Uzine |
|
Spip (publication sur internet) |
Zope |
|
Zope (langage python) |
Exemple de session sur le portail Liferay
|
Vous pouvez vous connecter
sur une démo personnalisée de portail utilisant des portlets à líadresse :
http://demo.liferay.net/c/portal_public
(http://demo.liferay.net/c/portal_public)
Vous obtenez la page
suivante :
Les portlets visibles ont
été choisies et mises en page selon mes préférences.
Exemple 1 de configuration (code)
|
Les portlets
sont des objets Java, ils peuvent Ítres inclus dans une archive .war (web
application archive) pour Ítre déployées sur le serveur díapplication J2EE
(JBoss, TomCat Ö).
La configuration
des portlets est faite au moyen díun fichier de description au format xml qui
se situe sur le serveur web.
Líexemple
provient du site : http://portlets.blogspot.com/
ÿ
Exemple
fichier portlet.xml
1:<?xml
version="1.0" encoding="UTF-8"?> 2: 3:<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
version="1.0" 4:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5:xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> 6: <portlet> 7: <description
lang="EN">query_portlet</description> 8: <portlet-name>query_portlet</portlet-name> 9: <display-name
lang="EN">query_portlet</display-name> 10:
<portlet-class>QueryPortlet</portlet-class> 11: <init-param> 12: <name>view_url</name> 13:
<value>/templates/view.jsp</value> 14: </init-param> 15: <init-param> 16: <name>edit_url</name> 17:
<value>/templates/edit.jsp</value> 18: </init-param> 19: <init-param> 20: <name>help_url</name> 21:
<value>/templates/help.jsp</value> 22: </init-param> 23:
<expiration-cache>-1</expiration-cache> 24: <supports> 25:
<mime-type>text/html</mime-type> 26: <portlet-mode>edit</portlet-mode> 27: <portlet-mode>view</portlet-mode> 28: <portlet-mode>help</portlet-mode> 29: </supports> 30:
<supported-locale>en</supported-locale> 31: <portlet-info> 32: <title>Query
Portlet</title> 33: <short-title>Query
Portlet</short-title> 34: </portlet-info> 35: <portlet-preferences> 36: <preference> 37:
<name>title</name> 38:
<value>Employees</value> 39: </preference> 40: <preference> 41:
<name>sql</name> 42:
<value>SELECT * FROM emp</value> 43: </preference> 44:
<preferences-validator>QueryPreferencesValidator</preferences-validator>
45: </portlet-preferences> 46: </portlet> 47:</portlet-app> |
On retrouve les 3 modes
obligatoires edit, view et help qui sont initialisés au niveau des balises
init-param au sein de laquelle se situe le programme jsp appelé (balise
value) :
12: <name>view_url</name> 13:
<value>/templates/view.jsp</value> 14: </init-param> |
La partie codage
Java est un autre domaine, je ne la fournis donc pas. Vous pouvez la trouver
précisément à líadresse http://www.developer.com/java/web/article.php/3372881.
Le rendu final, avec
líinteraction à la base de données pour récupérer les informations, donne la
visualisation de la portlet comme suit :
Exemple 2 simple et complet (code)
|
Pour bien comprendre les
différents éléments qui sont impliqués dans la mise en place díune portlet sur
un portail voici un exemple complet associé au portail Liferay.
Le but est simplement
díafficher un texte dans une portlet au sein du portail.
La portlet mise en place est
une simple portlet sans interaction possible, qui affiche juste un mot de jour
sur la page du portail.
Il existe une arborescence
web dans laquelle doivent Ítres installés les différents éléments comme le
fichier descriptif en Xml de la portlet, le code Jsp, le code Java de la
portlet Ö
Dans Liferay, chaque portlet
possède un fichier descriptif (comme celui présenté dans le premier exemple).
Le fichier descriptif se situe dans le dossier WEB_INF. Dans cet exemple il se
nomme mot_du_jour.xml.
Ce fichier à lui seul ne
suffit pas.
Il existe un fichier global liferay-portlet.xml qui recense toutes les portlets disponibles.
Il se situe aussi dans le
dossier WEB-INF. Il est lié à la description de la portlet (mot_du_jour.xml) au
moyen de son identifiant qui se situe au sein de la balise Xml <portlet-name> du fichier mot_du_jour.xml.
Afin que la porttet ait la
possibilité díÍtre incluse au sein de la page de présentation du portail par
líutilisateur, il faut quíelle soit indiquée au sein du fichier
liferay-display.xml qui se situe dans le dossier WEB-INF.
Pour le moment, seuls les
fichiers de descriptions sont mis en place, il manque líessentiel, à savoir la
portlet elle mÍme.
La portlet développée en
langage Java, est associée à une classe et mise dans líarchive .war. Son appel
se situe au niveau de la balise Xml <portlet-class>
dans son fichier de configuration mot_du_jour.xml
Voici le code associé à ces
4 fichiers :
ÿ
mot_du_jour.xml
<portlet> <portlet-name>mdp_portail</portlet-name> <display-name>Mot
du Jour</display-name> <portlet-class> com.liferay.portlet.mdp.MotDuJour </portlet-class>
<expiration-cache>0</expiration-cache> <supports>
<mime-type>text/html</mime-type> </supports> <portlet-info>
<title>Mot du Jour</title>
<short-title>MDJ</short-title>
<keywords>Mot jour</keywords> </portlet-info> <security-role-ref>
<role-name>Power User</role-name>
</security-role-ref> <security-role-ref>
<role-name>User</role-name>
</security-role-ref> </portlet> |
En bleu, la partie qui
permet de lier le fichier de description à la portlet située dans líarchive.
ÿ
liferay-portlet.xml
<portlet
id="mdp_portail"
struts-path="mot_du_jour" narrow="true" /> |
La portlet se situe dans la
colonne la moins large (narrow).
ÿ
liferay-display.xml
<category
name="category.info"> <portlet id="mdp_portail" /> </category> |
Category.info doit Ítre
référencé dans le fichier
/portal-ejb/classes/content/Language.properties
afin de proposer le texte vu par líutilisateur dans les catégories de portlets
quíil peut inclure. Exemple category.info=Informations.
Il verra dans la
liste une catégorie informations o˜ la portlet Mot du Jour sera disponible.
ÿ
Code Java de la
portlet
La classe MotDuJour hérite
des classes supérieures :
java.lang.Object
extended byjavax.portlet.GenericPortlet
extended
bycom.liferay.portlet.mdp.MotDuJour
Elle possède simplement 2
méthodes doView et processAction.
package
com.liferay.portlet.mdp; import
com.liferay.portal.util.Constants; import
java.io.IOException; import
javax.portlet.ActionRequest; import
javax.portlet.ActionResponse; import
javax.portlet.GenericPortlet; import
javax.portlet.PortletException; import
javax.portlet.RenderRequest; import
javax.portlet.RenderResponse; public class MotDuJour extends GenericPortlet { public void
doView(RenderRequest req, RenderResponse res) throws
IOException, PortletException { res.setContentType(Constants.TEXT_HTML); res.getWriter().print("Vous
disposez díun nouveau calendrier personnalisable !"); } public void
processAction(ActionRequest req, ActionResponse res) throws
IOException, PortletException { } } |