article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
T echnologie<br />
requêtes sur "<strong>de</strong>ux événements". La classe<br />
principale est évi<strong>de</strong>mment le controller<br />
PortletServlet qui hérite <strong>de</strong> ActionServlet. La<br />
gestion du premier événement est déléguée<br />
aux actions Struts et celle du <strong>de</strong>uxième événement<br />
pour le rendu est traitée par les pages<br />
JSP à la sortie <strong>de</strong>s actions. Une application<br />
Struts développée selon les standards préconisés<br />
peut être déployée comme un portlet<br />
avec très peu <strong>de</strong> modifications (modification<br />
<strong>de</strong>s <strong>de</strong>scripteurs, ajout du portlet.xml, ajout <strong>de</strong><br />
librairies, remplacement <strong>de</strong>s tags Struts par les<br />
tags Struts Bridge). Il est ensuite encore possible<br />
<strong>de</strong> déployer l'application adaptée à un<br />
environnement portlet comme une application<br />
Web standard, ce qui peut faciliter et accélérer<br />
les phases <strong>de</strong> développement et <strong>de</strong> test.<br />
Aller plus loin ?<br />
Dans le cadre <strong>de</strong> la rédaction <strong>de</strong> cet <strong>article</strong>,<br />
d'autres aspects relatifs aux portlets ont été<br />
explorés. Cela inclut notamment le développement<br />
d'un <strong>de</strong>uxième portlet plus complexe.<br />
Ce portlet gère <strong>de</strong>s actions <strong>de</strong> l'utilisateur.<br />
Il affiche toujours la date et l'heure<br />
courantes, mais cette fois-ci, l'utilisateur<br />
peut sélectionner le fuseau horaire à utiliser<br />
pour l'affichage. Les mo<strong>de</strong>s 'help' et 'edit'<br />
sont implémentés pour afficher un message<br />
d'ai<strong>de</strong> et pour sélectionner le format d'affichage<br />
parmi une liste prédéfinie. Les services<br />
permettant <strong>de</strong> sauvegar<strong>de</strong>r <strong>de</strong>s préférences<br />
<strong>de</strong> l'utilisateur sont utilisés pour<br />
conserver le format d'affichage entre plusieurs<br />
sessions.<br />
Ce portlet utilise <strong>de</strong>s pages JSP pour générer<br />
les vues. Ces JSP permettent d'extraire le co<strong>de</strong><br />
HTML du portlet, ce qui rend l'écriture <strong>de</strong>s<br />
pages beaucoup plus aisée. Le portlet se comporte<br />
alors comme un controller qui traite les<br />
requêtes <strong>de</strong> l'utilisateur et qui sélectionne la<br />
vue à afficher.<br />
Un autre axe développé concerne la compatibilité<br />
<strong>de</strong> plusieurs portails OS et commerciaux<br />
avec la spécification JSR-168. En effet, l'utilité<br />
et le succès <strong>de</strong> cette spécification ne peuvent<br />
qu'aller <strong>de</strong> pair avec un support large <strong>de</strong>s portails<br />
du marché. Les <strong>de</strong>ux portlets développés<br />
ont donc été testés sur plusieurs serveurs<br />
commerciaux et systèmes pour vérifier leur<br />
niveau respectif <strong>de</strong> compatibilité. Il s'est avéré<br />
que cette <strong>de</strong>rnière était très bonne car les<br />
<strong>de</strong>ux portlets <strong>de</strong> tests ont parfaitement fonctionné<br />
sur les 7 portails suivants :<br />
• Jetspeed 2<br />
• Liferay Portal Pro 3.6.1<br />
• exoPlatform 1.0<br />
• jBoss Portal 2.0<br />
• uPortal 2.5.0<br />
• BEA WebLogic Portal 8.1<br />
• IBM WebSphere Portal 5.0.2.1<br />
Pour chaque portail, il a été nécessaire d'effectuer<br />
une petite préparation <strong>de</strong> notre application<br />
<strong>de</strong> test (ajout d'informations dans le<br />
fichier web.xml, ajout <strong>de</strong> <strong>de</strong>scripteurs supplémentaires).<br />
Néanmoins, la compatibilité est<br />
bien là et le déploiement s'effectue sans problème<br />
particulier sur ces portails.<br />
Cela nous montre que cette spécification est<br />
maintenant largement supportée. Cela permet<br />
d'envisager sereinement <strong>de</strong> développer <strong>de</strong>s<br />
portlets en l'utilisant.<br />
Conclusion<br />
Cette spécification a encore plusieurs limitations.<br />
On peut noter l’absence <strong>de</strong> la notion <strong>de</strong><br />
filtres. Comme il existe <strong>de</strong>s ServletFilter pour<br />
filtrer <strong>de</strong>s requêtes, il serait utile <strong>de</strong> pouvoir le<br />
faire dans un portlet. Ce n’est pour l’instant<br />
possible qu’en faisant un développement spécifique.<br />
On trouve une autre limitation dans la<br />
communication inter-portlets. L’API ne met<br />
aucun outil à disposition pour transmettre <strong>de</strong>s<br />
informations entre <strong>de</strong>s portlets au sein d’un<br />
portail. Là aussi, un développement spécifique<br />
utilisant le contexte du portail <strong>de</strong>vrait permettre<br />
<strong>de</strong> parer à cette situation, mais laisse<br />
encore aujourd’hui la porte ouverte à <strong>de</strong>s<br />
Programmez n°85 53 avril 2006<br />
implémentations propriétaires.<br />
Le groupe d'experts travaillant sur cette spécification<br />
semble vouloir adresser ces limitations<br />
dans la version 2.0 <strong>de</strong> l’API (JSR-286). IBM a<br />
proposé cette nouvelle version en décembre<br />
2005 pour une revue initiale, la version finale<br />
est prévue pour fin 2006.<br />
En marge <strong>de</strong>s améliorations déjà mentionnées,<br />
cette version <strong>de</strong>vrait normalement apporter<br />
plusieurs nouveautés telles que :<br />
- l'interopérabilité avec la norme CC/PP (capacités<br />
combinées/profils <strong>de</strong> préférences) via<br />
JSR-188. Cette norme permet à l'utilisateur <strong>de</strong><br />
définir les caractéristiques du terminal utilisé<br />
pour visualiser un site ainsi que les préférences<br />
<strong>de</strong> consultation. En fonction <strong>de</strong> ces<br />
paramètres les portlets pourront adapter le<br />
contenu à afficher.<br />
- l'alignement avec la version 2.0 <strong>de</strong> WSRP.<br />
- l'amélioration <strong>de</strong> la librairie <strong>de</strong> tags.<br />
- le support <strong>de</strong> J2EE 1.4.<br />
- un rapprochement entre JSF et les portlets.<br />
Références<br />
- La spécification :<br />
http://www.jcp.org/en/jsr/<strong>de</strong>tail?id=168<br />
- Le site Apache relatif aux portails (Pluto,<br />
Jetspeed…) :<br />
http://portals.apache.org/<br />
- Des sites d’échanges et d’informations sur<br />
les portlets :<br />
http://portlet-opensrc.sourceforge.net/<br />
http://www.portletswap.org/<br />
http://community.java.net/portlet/<br />
http://groups.yahoo.com/group/portlets/<br />
Pour aller plus loin :<br />
http://www.sqli.com/sqliCorpo/home/sqli/veille<br />
_it/breves~pid/comprendre_et_<strong>de</strong>velopper_<strong>de</strong><br />
s_portlets_en_java<br />
■ Frédéric Chopart<br />
Consultant du Groupe SQLI<br />
www.programmez.com<br />
TOUT NOUVEAU, TOUT BON !