Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

Le coin de la technique

Actualité éditeurs / SSII

Mozilla Firefox 4 RC 1

La première release candidate de Mozilla Firefox 4 est sortie le 9 mars. Cette release fait suite à une (longue) liste de versions bêta. On peut citer au nombre des nouveautés : l’intégration d’un nouveau moteur d’exécution JavaScript plus performant nommé JägerMonkey, un support partiel des transitions CSS, un meilleur support du HTML 5 avec notamment le support de l’API HTML forms, le support de l’accélération matérielle. La note de version complète est accessible ici.

Un petit rappel sur HTML forms: cette API permet d’effectuer une validation des formulaires directement par le navigateur. Cet ajout majeur devrait standardiser et simplifier la gestion de la validation côté client en mettant fin aux validations bricolées en JavaScript : des attributs positionnés directement sur les contrôles du formulaire permettront de valider avec élégance les contraintes les plus courantes (longueur, non-nullité, conformité vis-à-vis d’une expression régulière, etc.). Des fonctions de rappel (callbacks) en JavaScript demeurent malgré tout accessibles pour les cas non triviaux.

On peut aussi noter l’inclusion de la fonctionnalité Do Not Track, censée mieux protéger la vie privée des utilisateurs. Son activation ajoute un élément dans l’entête HTTP enjoignant aux sites visités de ne pas procéder au suivi de l’utilisateur. Toutefois, cette fonctionnalité n’aura pas d’impact sur votre navigation avant que les sites et les annonceurs ne la prennent en compte.

xCode 4 : l’âge de raison

Après de longs mois en bêta développeur (conditionnée à l’achat d’une licence annuelle), la version 4 de xCode est enfin disponible. L’environnement de développement Mac/iPad/iPhone propose ici une refonte majeure avec, notamment, l’unification dans xCode des outils jusqu’alors isolés dans d’autres applications (construction de l’interface et gestion des performances). Deuxième modification majeure, le choix du compilateur LLVM par défaut et l’arrivée — enfin ! — du quick fix lors de l’écriture (et plus seulement lors de la compilation). Troisième apport, GIT et SVN sont désormais intégrés bien que quelques ajustements semblent encore nécessaires.

Si ces changements peuvent être perturbants, l’aide contextuelle — appuyée par des vidéos de démonstration — aide souvent à s’y retrouver. Attention, xCode devient payant pour les « candidats libres » (sans licence annuelle) : 4€ qui sont surtout un prétexte au plébiscite du nouvel App Store pour Mac.

Le coin de la technique

Java EE 7

Suite à la sortie de Java SE 7 en developper preview, c’est au tour de Java EE 7 de faire parler de lui. Il y a deux semaines, la spécification de la plateforme Java Entreprise Edition dans sa version 7 a été soumise au JCP sous la JSR 342. Bien entendu, cette spécification est une proposition qui devra être votée et implémentée par l’« expert group ». Selon plusieurs sources, JEE 7 devrait voir le jour courant 2012, au troisième ou quatrième trimestre.

Au programme de cette version 7 : du cloud, du cloud et encore du cloud. En effet, cette JSR « umbrella » — c’est-à-dire chapeautant à son tour d’autres JSR — se veut résolument « cloud-friendly ».

Mais JEE 7 couvrira aussi d’autres sujets : le support des derniers standards du Web, la modularité et la facilité de développement.

Focus sur le Cloud

Le spec lead de cette JSR voit le cloud comme un prolongement du modèle orienté conteneur (accès au système et aux ressources externes géré par le conteneur) de la plateforme Java Entreprise Edition, où une application peut être déployée sur une machine unique comme sur un cluster de manière distribuée, sans changements radicaux, grâce à la souplesse de la stack.

La plateforme JEE étant déjà bien parée pour des environnements cloud — grâce à son modèle orienté conteneur et à son abstraction d’accès aux ressources — l’objectif de la spécification est d’améliorer l’intégration de la plateforme dans des clouds privés ou publics, afin que les applications y soient exposées « as a service », avec le support de fonctionnalités telles que l’extensibilité horizontale (« horizontal scalability ») ou encore la « multitenancy » (principe d’architecture logicielle où une seule instance d’une application peut servir, de manière individualisée, différents clients avec potentiellement des configurations et des paramétrages personnalisés).

Il s’agit également de tenir compte des problématiques liées au cloud (sécurité, isolation, qualité de service), en définissant par exemple de nouveaux rôles, tel que celui de PaaS (Platform as a Service) administrator ou en mettant à jour le modèle de sécurité de la plateforme en ce sens. Aussi, les applications qui voudront tirer avantage des différentes fonctionnalités spécifiques au modèle PaaS devront-elles obéir à certaines contraintes et fournir un moyen d’être identifiées comme étant conçues pour évoluer dans un environnement cloud.

Bon nombre d’APIs vont être mises à jour pour tenir compte de ces problématiques. Celles notamment qui gèrent des accès aux ressources, comme JPA, JDBC ou encore JMS, devront se rendre compatibles avec les systèmes multitenants. Dès lors, des ressources externes telles qu’une source de données ou une file de messages pourront être marquées comme étant partagées entre plusieurs applications. Les « expert groups » qui gouvernent chaque API seront chargés d’identifier ces besoins et de prendre les mesures adéquates.

Les derniers standards du Web

Le Web est aussi à l’honneur pour cette version 7 de la plateforme. D’ailleurs, deux nouvelles APIs, venant étoffer le support des dernières technologies Web dans le vent, sont en discussion :

  • Support du HTML5 et des Web Sockets via l’API Java Web Sockets.
  • Support de JSON (JavaScript Object Notation) via l’API Java JSON.

JEE 7 inclura aussi la version 2.0 de l’API JAX-RS (Java API for RESTful Web Services) définie par la JSR 339. Cette dernière sera rajoutée au profil Web, en plus des mises à jour des APIs déjà présentes au sein de celui-ci.

Modularité

Cette JSR a aussi pour objectif de faciliter la modularité et la gestion de versions, en permettant par exemple à une application d’utiliser une version supérieure d’une API déjà incluse dans la plateforme. Ce travail devra être coordonné avec la JSR à venir sur la modularité dans Java SE afin de rendre les deux plateformes cohérentes.

Facilité de développement

Tirant les leçons de certaines API vilipendées pour leur lourdeur ou leur complexité — on pense aux EJB d’avant la version 3.0 — cette version 7 se veut simple, légère, efficace et efficiente. En ce sens, l’API JMS dans sa version 2.0 va être améliorée et l’API CDI (Context and Dependency Injection), introduite dans JEE 6, se verra doter d’une API pour configurer un injecteur : l’API DI 1.1 (la suite de la JSR 330).

A noter que la JSR 342 propose l’ajout de deux nouvelles JSRs, à savoir :

  • Concurrency Utilities for Java EE (JSR-236) : construite sur l’API java.util.concurrent, cette API offre des facilités pour exécuter des tâches de manière asynchrone.
  • JCache (JSR-107) : cette API a pour objectif de standardiser un système de cache accessible depuis tous les conteneurs en vue de rendre les applications plus « scalables » (extensibles).

En résumé, plusieurs APIs déjà présentes dans JEE seront mises à jour :

  • Java Persistence API (JPA)
  • Java API for RESTful Web Services (JAX-RS)
  • JavaServer Faces (JSF)
  • Servlets
  • Enterprise JavaBeans (EJB)
  • JavaServer Pages
  • Expression Language
  • Java Messaging Service (JMS)
  • Java API for XML-based Web Services (JAX-WS)
  • Contexts and Dependency Injection for Java EE (CDI)
  • Bean Validation
  • Dependency Injection for the Java Platform (JSR-330)
  • Common Annotations (JSR-250)
  • Java Connector Architecture

Billets sur le même thème :

2 commentaires

Laisser un commentaire