02.07.2013 Views

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

SHOW MORE
SHOW LESS

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 !

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!