Le but principal d’ICEfaces est de faciliter le développement d’une application sophistiquée avec une interface riche pour une application JSF. La construction de la page est basée sur l’insertion de tags, à l’image de blocs, avec la flexibilité de modifier bon nombre de paramètres pour chacun d’eux. La suite des composants disponibles utilise un pont Ajax commun et une technique direct to DOM unique à ICEfaces. Ceci permet de créer une application riche sans avoir à écrire une seule ligne de code JavaScript pour gérer les communications asynchrones.
L’approche D2D, unique à ce cadre applicatif, effectue une comparaison de l’ancien DOM et du nouveau durant la phase Render Response de JSF pour minimiser la transmission de données vers le client.
L’intégration des effets de script.aculo.us y est aussi centrale. La majorité des composants peuvent facilement être animés pour rendre l’expérience du client plus riche. Ces effets peuvent être générés autant au niveau du navigateur qu’à distance par le serveur.
La sécurité est aussi centrale à ce cadre applicatif. Il respecte les standards Java EE et permet une sécurité orientée rôles. L’intégration des composantes dans l’arbre JSF peut être dépendante des rôles de sécurité que possède l’utilisateur. Par exemple, un utilisateur possédant le rôle d’éditeur n’aura pas les mêmes composantes sur une même page qu’un utilisateur possédant seulement le rôle de lecteur.
Finalement le principe du drag & drop, un principe avancé en web tel qu’illustré dans la ICEfaces, est parfaitement intégré et facile d’utilisation pour le développeur. La modification de simples paramètres d’un composant permet de les rendre déplaçables pour l’intervention naturelle dont l’utilisateur est habitué dans une application classique.
Ajax Push
La nouvelle évolution du Ajax est l’Ajax push, nommé aussi Comet. Cette technique d’avant-garde permet de rétablir le lien manquant entre le serveur vers les clients. Cette technique permet donc à la couche applicative de garder un état pour chaque client, et de communiquer sur demande au client, sans aucune intervention nécessaire de la part, ou d’utilisation abusive de la bande passante. Cette possibilité est essentielle dans un outil de collaboration entre utilisateurs, car ils peuvent voir en temps réel les interventions des autres participants à l’opération commune.
La figure suivante présente les différentes techniques possibles pour tenir les informations à jour sur l’interface client. La première développée fut le polling. Cette technique consiste à effectuer une requête par intervalle de temps. Un événement survenant entre ce délai ne sera informé au client que lors de la prochaine requête de ce dernier. De plus, l’utilisation réseau pour cette technique est faramineuse. Par exemple, si un client est configuré pour faire une requête aux 10 secondes et un événement survient après 2 minutes, le client aura fait 12 requêtes inutiles avant d’obtenir cet événement. La première technique considérée comme Ajax Push est le long poll. Cette technique n’utilise qu’une seule requête par événement, peu importe le délai entre la requête initiale et ce dernier. Une nouvelle requête est initiée par la suite. Cette technique minimise l’utilisation réseau, mais nécessite quand même une communication par événement, ce qui peut augmenter sa demande en bande passante si ces événements sont trop nombreux. La plus récente technique Ajax Push est le streaming. Cette technique permet d’obtenir un nombre illimité d’événements par une seule requête initiale. Cette technique idéale n’est malheureusement pas disponible par tous les serveurs applicatifs J2EE. Glassfish avec son module Grizzly est l’implémentation actuellement qui supporte le mieux le streaming.
Implémentation Ajax Push d’ICEfaces
L’API de communication par Ajax push a trois avantages qui la différencient de ses compétiteurs. Premièrement, elle possède un outil de maintien et de surveillance des connexions. Cet outil configurable permet le maintien de connexions à long terme du serveur avec ces clients, en plus de détecter des connexions rompues abruptement. Il empêche ainsi d’avoir une série de connexions fantômes utilisant les ressources du système inutilement. Le second avantage est qu’ICEfaces permet le partage des connexions de plusieurs instances dans un même navigateur, palliant ainsi aux limitations du nombre de connexions d’un navigateur. Le dernier avantage est l’optimisation du rendu. En effet, il utilise le cycle JSF pour forcer la mise à jour de clients tout en prodiguant les outils de synchronisation à l’application.
Trois composantes majeures sont nécessaires à l’utilisation d’Ajax Push dans une application. Premièrement, le render manager est un JavaBean dans la portée applicative de l’application. Il s’intègre dans le cycle JSF et coordonne les requêtes. Il s’occupe aussi de l’enregistrement aux render groups. Le second composant est les render groups. Ces groupes permettent de rassembler les clients dans des ensembles dont le rendu se fera simultanément. Finalement, l’interface renderable est utilisée pour permettre à un objet d’être utilisé dans une requête d’Ajax Push. Leurs intégrations se fait comme illustré à la figure suivante.
Sources :
Hightower, Rick : JSF for nonbelievers: The JSF application lifecycle [ en ligne ]. Disponible sur : < http://www.ibm.com/developerworks/library/j-jsf2/> (consulté le 18 avril 2009)
IceSofts Technologies : Ajax Push [ en ligne ]. Disponible sur : < http://www.icefaces.org/main/ajax-java/ajaxpush.iface > (consulté le 18 avril 2009)
IceSofts Technologies : ICEfaces Component Suite [ en ligne ]. Disponible sur : < http://www.icefaces.org/main/ajax-java/jsf-components.iface > (consulté le 18 avril 2009)
Kiener, Micha et Goddard, Ted : Ajax Push For Revolutionary Enterprise Applications [ en ligne ]. Disponible sur : < http://jazoon.com/download/presentations/5420.pdf > (consulté le 18 avril 2009)
Cet article est un extrait du document Bureau virtuel par Ajax push, produit par Julien Chouinard
4 Comments for IceFaces
jozzy-online | February 28, 2010 at 10:34
PERRY | July 15, 2010 at 13:49
Buy:Mega Hoodia.Synthroid.Nexium.Zyban.Zovirax.100% Pure Okinawan Coral Calcium.Valtrex.Retin-A.Accutane.Lumigan.Prednisolone.Actos.Petcam (Metacam) Oral Suspension.Prevacid.Arimidex.Human Growth Hormone….
FREDDIE | July 20, 2010 at 22:08
Buy:Zithromax.Cialis Soft Tabs.Viagra Super Force.Soma.VPXL.Propecia.Viagra.Viagra Super Active+.Cialis.Cialis Professional.Super Active ED Pack.Viagra Soft Tabs.Tramadol.Cialis Super Active+.Levitra.Viagra Professional.Maxaman….
solar | August 29, 2010 at 23:40
Jebaco http://ijebaco2ndsj.BESTPARTSPLUS.INFO/tag/Jebaco+Pond+Solar+solar/ : Jebaco…
solar…


ce que je cherchais, merci