Lors de la dernière édition de la conférence JavaOne, Oracle annonçait la release du projet open source : Avatar
C'est lors de l'édition 2011 que le projet avait été annoncé.
Aujourd'hui, l'ensemble des applications Web définissent une architecture SPA (Single Page Application). Dans ce type d'application, l'ensemble de la logique est déportée du serveur vers le client, où l'on retrouve l'ensemble des composants modèle, vue et contrôleur. Pour aider à l'implémentation, il existe une multitude de frameworks (Angular.js, Backbone.js, …)
Ce type d'architecture requiert une connaissance avancée de Javascript.
L'idée du projet Avatar est de proposer un framework basé, entre autres, sur Javascript côté serveur et HTML5 coté client.
C'est-à-dire que toute la stack technique côté serveur est basée sur Javascript (un schéma très clair est disponible ici : https://avatar.java.net/docs/overview.html).
Cette couche a pour objectif de fournir des services basés sur un protocole 'standard' (REST et Websoket).
La partie cliente sera basée principalement sur HTML5 et propose un découplage net entre la vue et la couche de service.
Le framework facilite la conception et la réalisation d'application de type SPA.
Un point original : La documentation du projet indique que les développeurs ont seulement besoin de faire des copier/coller à partir d'exemples, et ensuite adapter le code pour bâtir une application.
L'utilisation de Javascript n'est pas là pour remplacer Java, mais plutôt comme une nouvelle possibilité dans les choix d'implémentation côté serveur.
Il est naturellement possible d'utiliser conjointement les deux langages (cas d'une ancienne API écrite en Java, par exemple).
Les pré requis techniques :
– un conteneur compatible avec la spec JavaEE 7,
– un runtime Java 8
L'interprétation du Javascript côté serveur sera assurée par le runtime issu du projet Nashorn.
Le projet est sous licence open source et le code est disponible sur github.
La documentation du projet est bien faite et permet une prise en main aisée de l'outil.
Avatar permet à Oracle d'intégrer dans son socle technique qu'est la stack JavaEE, la possibilité d'implémenter facilement des applications aux architectures contemporaines.
Je me souviens que lors d'un épisode du podcast des castcodeurs, Antonio Goncalvez exprimait le regret de l'absence d'un outil tel que Avatar dans la stack JavaEE… visiblement son vœu a été exaucé. 🙂