Mais ou va Play Framework ?

L’actualité play framework a été très riche ces derniers temps, Devoxx 2012, Play 2.0, La Sécurité Intérieure, scoop-it …. J’ai l’impression que le petit framework Play est en train de devenir une locomotive des évolutions autour du langage java et un peu sur le cloud computing.

Play framework a révolutionné le développement d’application Web en Java en apportant simplicité et agilité et en rompant avec les pratiques dites entreprise (DEVOXX).

La communauté des utilisateurs Play est divisée en deux parties actuellement. Mais je pense que nous allons très vite avoir des passerelles entre les 2 univers. J’attends une convergence avec impatience.

Un peu d’histoire :

Guillaume Bort est co-fondateur de Zenexity, cabinet spécialisé dans les architectures orientées Web. Ancien expert J2EE il a travaillé plusieurs années à mettre au point des frameworks Web pour de grand comptes, avant de profiter de son expérience pour créer Play framework en se focalisant sur les aspects de productivité et de simplicité pour les développeurs. Il est toujours « Lead Developer » du projet Play (DEVOXX).

Il y a eu diverses versions de Play,  je parlerai uniquement des versions principales.

Play 1.2.X

Play 1.2.X est un framework MVC Java  qui propose tous les composants nécessaires pour créer des applications Web modernes.  Il permet de créer très rapidement des applications web.

Il utilise de nombreux composants libres,

  • un moteur de template pour la partie IHM (qui se base sur Groovy comme langage de script),
  • l’api JPA (Hibernate) pour le mapping objet-relationnel,
  • un mécanisme de servlet sans état (stateless).

Play respecte les principes MVC. Il sépare les 3 parties fondamentales qui constituent un site web, le modèle de données de la base de données (c’est le Modèle), la présentation de l’ensemble (la Vue) et le traitement des actions utilisateur (le Contrôleur).

Il se distingue de la concurrence, car il ne se base pas sur la pile JSP Servlet des framework J2EE actuels.

L’équipe Play a construit sa propre pile d’interception des appels du navigateur clients.

La magie de Play réside dans les choix d’implémentation :

  • le cycle de développement « corriger et rafraîchir la page »,
  • la construction des applications en mode Web RestFul,
  • l’intégration de la notion de vue construite par fragment (les tags),
  • le choix de l’utilisation de JPA, pour la partie persistance en base de donnée,
  • le lanceur de tests intégré qui rend le « développement piloté par tests » naturel,
  • la vue base de donnée qui permet de voir les données de l’application.

Il contient beaucoup d’astuces qui simplifient la vie du développeur. Il y a moins de perte de temps sur les aspects techniques et plus de travail sur la partie conception et design.

Les applications sont construites sur un modèle qui permet de déployer une application sur plusieurs serveurs simultanément (sans besoin de synchronisation), et donc de supporter de très fortes charges.

Play a été pensé « Cloud computing ».

Le framework est très complet, les développeurs proposent de construire simplement des projets WEB.  Le concept du framework a été pensé en dehors de tous les modèles java existants. L’inspiration provient fortement du framework Rails on Ruby, et de la syntaxe du langage Groovy pour la partie vue. L’idée moteur a été de construire un framework de développement rapide en Java, d’intégrer les tests, pour donner un maximum de productivité.

Le modéle initial s’est ouvert progressivement à l’intégration et à la communication avec le monde J2EE, via les dépendances (dependencies.yml) et via l’outil Ant.

Le point fort de play, c’est aussi les modules. Il existe des modules pour tous les besoins. Les extensions offrent des possibilités supplémentaires à Play.

  • module Spring – Intégration avec String
  • module Google Application Engine
  • module Siena – une couche base de données
  • module Search – l’intégration d’un moteur de recherche

Play 2.0

Les concepteurs de Play ont lancé un nouveau projet Play 2.0 basé sur Java et Scala.

Play 2.0

La nouvelle mouture est sortie le 13 mars 2012.  Elle apporte des nouvelles fonctionnalités.

Play 2.0 est à la fois une réinvention de Play 1.2 et une convergence vers le framework Scala.

Play 2.0 un framework d’application Web pour Java et Scala, son modèle complètement non bloquant (réactif) avec une maitrise totale de la consommation des ressources (mémoire, CPU), son extensibilité, et son architecture sans état permettant de très forte montée en charge (Devoxx).

Play 2.0 apporte de nombreux changements :

  • au niveau du moteur de template (fortement Scala),
  • au niveau controleur,
  • au niveau modele (EBean),
  • au niveau fonctionnement du moteur générale (plus de contrôle),
  • au niveau de la compilation, exécution, test (SBT).

Il est plus lent au démarrage, il vérifie beaucoup plus la compilation du code et le bon fonctionnement.

Je vous invite a découvrir le nouveau moteur de template de play 2.0 sur le site de « Le Touilleur Express ».

Play 2.0 est un nouveau framework Play, plus réactif. Vous trouverez dans ce lien, une description des évolutions, et des manques (http://www.clever-age.com). Le Blog d’Ippon présente aussi les nouveautés de Play 2.0.

Actuellement, les projets écrits en Play 1.2.x ne sont pas compatibles avec la version 2.0. De nombres équipes travaillent sur le portage et les passerelles vers play 2.0.

L’avenir

L’avenir est un peu complexe a dessiner suite au split en deux de la communauté Play. La version 2.0 ouvre de nouvelles voies, des nouveaux concepts, des idées nouvelles. Les concepteurs de play 2.0 encouragent les personnes à continuer les applications qui fonctionnent sur la première version et a migrer progressivement vers la nouvelle version.

La non compatibilité des applications de première génération pose un problème. Le portage des projets a un coût.

Sur Internet, on commence a voir naitre des alternatives au nouveau moteur de template compatible Groovy ( ce lien) . Le moteur de Play 2.0 est beaucoup plus modulaire.  Sur le site de Objectify, on commence à discuter sur la modularité « Play 2 – modules, plugins, what’s the difference?« . Le rapprochement commence à avoir lieu.

Pour l’instant, je suis resté sur les projets « Cloud Computing » autour de Play 1.2.X. J’utilise des modules, des connaissances que j’ai acquis sur la première version stable.

Je cherche le moyen de faire cohabiter l’application Play 1.2.X avec l’application Play 2.0 sur Mac. Je suis embêté par les changements de PATH pour lancer soit l’un soit l’autre. Je n’ai pas trouvé l’astuce pour le faire simplement.

J’attends une plus grande stabilité et les évolutions du moteur 2.0 pour migrer vers la nouvelle version. La réécriture des applications (surtout des IHMs) ne me motive pas pour l’instant. La documentation évolue petit a petit.

La locomotive est en gare, attention au départ …

A propos Duarte TERENCIO

Architecte Solutions
Cet article, publié dans Programmation, est tagué , , , , . Ajoutez ce permalien à vos favoris.

10 commentaires pour Mais ou va Play Framework ?

  1. Ping : Mais ou va Play Framework ? | Portail d'entreprise, ITIL et cloud | Scoop.it

  2. opensas dit :

    Very good article, in respect to make them live together, I just have a play1 script pointing to a play1.2.4 installation and a play script poiting to a play2.0.1 install, they both live together with no problem

  3. Lyc1 dit :

    Play folder doesn’t relly need to be located in PATH, just play scripts.
    Create 2 symbolic links in /usr/local/bin called play (=> play1 script) and play2 (=> play 2 script).

  4. Wow! Thank you! I always needed to write on my blog something like that. Can I include a portion of your post to my website?

  5. Houda dit :

    Bonjour, et merci pour cet article, je veux juste connaitre le principe de fonctionnement de la barre search qui s’affiche sur la page web play , comment les termes de recherches sont transformés en requettes SQL? can you help me please!! Merci d’avance

  6. disk Recovery dit :

    I would like to thnkx for the efforts you’ve put in writing this web site. I am hoping the same high-grade website post from you in the upcoming as well. Actually your creative writing skills has inspired me to get my own blog now. Really the blogging is spreading its wings fast. Your write up is a great example of it.

  7. Buntha dit :

    Nice article , I tried play in cloud as well and it worked super well and this explanation clarified my doubts very well.
    http://jelastic.com/docs/jelastic-play-deploying

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.