Cet article fait partie de notre guide: Openworld / JavaOne 2013 : les grandes annonces

JavaOne 2013 : le projet Avatar disponible en Open Source

Après deux ans de gestation, les équipes de développement d’Oracle ont annoncé la publication d’Avatar ainsi que sa mise à l’Open Source. Ce projet apporte le concept de Thin Server Architectures (TSA) à Java EE 7.

Comment créer une interface à page unique avec Java ? Et pas uniquement les composants du front-end en HTML5 qui utilisent jQuery ou encore les composants inhérents au navigateur, comme le stockage côté client, mais également les composants en back-end ?

Lors de l’édition 2011 de JavaOne, Cameron Purdy et Adam Messinger semblaient bien avoir la réponse à cette question, avec la présentation du projet Avatar, un framework dont le concept repose sur les technologies de clients riches, modernes, à base de HTML 5, avec Java côté serveur. Et évidemment, tout cela est développé avec les technologies de navigateurs modernes et les standards Java. Il s’agissait alors d’une grande annonce, ou plutôt d’une pré-annonce, affirmait à l’époque Purdy, le vice président des activités développement de la firme de Redwood Shores. Mais depuis, le projet n’a donné que peu de signe de vie.

 

Une démo, plutôt minimaliste, a bien été réalisée lors de l’édition 2012 de JavaOne, avec quelques sessions, mais l’intérêt est plutôt resté embryonnaire et le projet très discret sur les IRC. Nombreux étaient ceux qui pensaient que ce projet pourtant très prometteur allait alors s'essouffler, surtout avec les efforts démultipliés d’Oracle en direction du cloud, du projet Lambda et bien sûr de la sortie de Java EE7 - avec laquelle il se débattait.

Mais deux ans après sa présentation, il semble que tout finisse par arriver : Purdy a annoncé lors du discours d’inauguration de JavaOne 2013 que non seulement le projet Avatar était enfin prêt mais qu’il était également placé à l’Open Source. «Nous avons annoncé le projet Avatar il y a deux ans,. Nous y avons travaillé d’arrache pied», a-t-il affirmé. «Cette fois, il ne s’agit pas d’une pré-annonce. Nous annonçons ce jour la mise à l’Open Source du projet Avatar, et il devrait être disponible dès aujourd’hui». 

Si l’on regarde dans les détails le projet, il est évident qu’au regard des nombreuses dépendances avec Java EE7, le projet ne pouvait véritablement pas être proposé à la communauté avant la sortie de Java EE 7. Surtout avec les interactions étroites du framework avec les fonctions HTML5 de l’édition Entreprise. «Lorsqu’on aborde les fonctions clés de Java EE7, le support de HTML 5 est souvent cité, tout comme le support des WebSockets, l’envoi des événements au serveur, le support de REST et toutes ces technologies qui contribuent à façonner des applications Web modernes». Et bien sûr, toutes ces technologies sont clés pour Avatar.

Si on s’attarde sur la documentation, Avatar semble reposer sur un unique modèle de programmation pour à la fois le développement côté client et côté serveur ; de quoi le comparer inévitablement au framework très populaire de Google, Google Web Toolkit, qui offre une approche similaire. En regardant de plus près le concept d’architecture TSA (Thin Server Architecture) exploité par le projet, Avatar s’adosse sur un client HTML 5 pour à la fois gérer et orchestrer les ressources côté serveur, simplifiant ainsi grandement la tâche, mais il propose également au développeur de l’interface utilisateur un niveau de contrôle élevé ainsi que de la flexibilité sur les possibilités d’interaction entre l’utilisateur et le système.

Javascript omniprésent côté serveur

La philosophie derrière Avatar semble quelque peu bouleverser la méthode de développement à laquelle étaient habitués les développeurs Java. Javascript est omniprésent côté serveur, à la base de la gestion des événements, de REST, des WebSockets, alors que côté client, tout est histoire de HTML 5 et CSS. Selon la documentation, la partie cliente ne nécessite qu’un niveau de compétence basique en Javascript : le copier-coller de bout de code type est suffisant pour obtenir un client web qui dialogue parfaitement avec ses homologues côté serveur. Côté serveur, Javascript est exploité beaucoup plus intensément. «Nous avons exploité Nashorn [un moteur Javascript, NDLR] de Java SE pour doter Java EE du support de langages tiers», affirme Purdy. «Nous avons étendu Java EE afin d’ajouter le support des services Javascript et de type Node.JS sur un serveur d’applications.»

L’intégration avec les flux de données temps réel est un autre aspect dont Purdy semble être très fier. «Avatar supporte les bases de données NoSQL ainsi que les informations temps réel, extraites de bases puis injectées dans l’application, non pas sur le mode requête-réponse, mais en live».

«Cette fois-ci, il ne s’agit pas d’une pré-annonce», insiste Purdy, semblant ainsi illustrer le fait que le communauté n’a souffert d’aucun manque de soutien pendant ces deux ans. «Nous souhaitons rendre Java EE encore plus facile. Supporter les derniers standards et conserver la pertinence de la technologie.» Avec le projet Avatar désormais disponible à l’Open Source, Purdy et son équipe sont objectivement engagés sur cette voie.

Traduit et adapté de l'anglais par la rédaction

Pour approfondir sur Outils de développement