Faire du RIA avec des composants ajax et des services REST

Nous publions sur le site www.www.oxiane.com un dossier décrivant une manière d’intégrer des composants riches de type Ajax dans une application web (classique ou de type RIA), grâce à la bibliothèque Ajax JQuery et à JAX-RS, l’API Java pour les services Restfull.

Depuis plusieurs années maintenant, la plupart des applications sont développées pour être accessibles par un simple navigateur. Ainsi par exemple un gestionnaire de contrats d’assurance peut-il récupérer les données concernant son client en ayant une simple connexion internet. Ces solutions dites « client léger » sont faciles à déployer et à maintenir, mais souvent elles ne sont pas ergonomiquement satisfaisantes. Le besoin est grand d’avoir des applications qui s’exécutent toujours depuis un navigateur, mais avec des caractéristiques similaires aux logiciels de bureau : un arbre de sélection, un menu en accordéon, des changements dynamiques dans la page affichée…  Les frameworks RIA se sont développés notamment pour répondre à ce besoin. Grâce à  Flex, Silverlight, JavaFX ou GWT, on peut envisager de créer des applications multi-plateformes, aisément déployables, et « engageantes ».

Cependant, il est de nombreux cas où l’on aimerait avoir une application riche, mais sans forcément s’embarquer dans un développement spécifique avec un framework complet, qui ajouterait un langage (et donc une complexité) à l’application – mais en utilisant simplement html et javascript, si possible au travers d’une bibliothèque ajax toute faite. On peut imaginer cela dans au moins trois cas.

Il peut arriver par exemple, que l’on veuille, dans une application classique – par exemple écrite en Struts –  ajouter  quelques éléments ajax dynamiques, sans toutefois casser l’architecture générale. Pour cela, il convient d’avoir une méthode générale pour intégrer aisément des composants ajax dans une page jsp.

Autre possibilité : on aimerait s’appuyer sur le travail des graphistes et des spécialistes du web. Ceux-ci, depuis quelques années, sont devenus de grands connaisseurs des pages html dynamiques. Les bibliothèques Ajax – JQuery, Proptotype en particlulier – ont supplanté Dreamweaver dans les études qui montrent les outils préférés des développeurs web.  Nombreux sont ceux qui savent maintenant créer des interfaces graphiques dynamiques d’une ergonomie et d’une efficacité redoutable.

Troisième cas, on aimerait créer une architecture logicielle fondée sur une série de composants html/javascript réutilisables aisément, réembarquables tels quels dans des applications. Le but de cet architecture serait de venir faire une véritable application RIA – une Rich Internet Application – mais tout cela en client léger, sans se lier à un framework « maison » (Flex, Silverlight…). Plus loin, dans cette démarche, on peut envisager de créer des composants qui sachent eux même comment se présenter, comment s’afficher, et comment récupérer les informations côté côté serveur.

Pour réaliser cela, nous utiliserons dans notre exemple la bibliothèque JQuery, avec un de ses plugins (JQGrid) qui permet d’afficher de manière « sexy » un tableau dynamique. C’est ce composant qui se chargera du tri, de la pagination etc.

Pour intégrer les composants Ajax à notre back-end, nous utiliserons la JSR dédiée aux services REST (JAX-RS : « JAX-RS: The JavaTM API for RESTful Web Services »). Grâce à cette nouvelle API, nous irons récupérer des données  grâce à une simple requête HTTP (qui sera une requête Ajax). Il faut savoir que la JSR311 est bien plus vaste que cela puisqu’elle permet de construire des applications suivant  les principes Rest. Nous ne l’utiliserons ici qu’en partie, mais ce Proof of Concept ne demande qu’à être étendu.

Faire du RIA avec des composants ajax et des services REST.

Auteur : Gabriel Kastenbaum