Java

Archi & techno

Thrift et Protocol Buffers : compacité du message sérialisé dans le monde Java

Un précédent article a exposé les grands principes de la sérialisation avec Thrift et Procotol Buffers. Ces deux frameworks promettent notamment une représentation des messages optimisée en termes de taille, ce qui est avéré dans le benchmark JVM Serializers : Thrift et Protocol Buffers y obtiennent une réduction de taille du message de 73% par rapport à la sérialisation native Java. Ce benchmark regroupe par ailleurs de nombreux autres frameworks de sérialisation du monde Java, mais se limite toutefois à l'utilisation d'un unique message de…

Lire la suite
Archi & techno

GWT et sécurité, se prémunir des CSRF

Préambule Les applications Web enrichies, utilisant JavaScript pour mettre à jour tout ou partie d’une page web, sont officiellement nées en 2005 avec l’apparition du terme Ajax, et sont aujourd’hui communes. De ce concept sont ensuite nées les applications JavaScript « Single Page Interface », modèle dans lequel rentre l’application typique GWT. Le framework propose aujourd’hui un modèle de programmation au juste milieu entre les paradigmes du développement RDA (pour Rich Desktop Application) et du développement Web. Après compilation, une application GWT devient une application…

Lire la suite
Archi & techno

Les grandes tendances de Devoxx 2011

La plus grand conférence de la communauté Java avec JavaOne a eu lieu à Anvers en Belgique au mois de Novembre. Cette année, les thèmes principaux de Devoxx étaient (sans ordre particulier): Le futur de Java Les langages alternatifs sur la JVM HTML5 JavaFX Android Un peu de Cloud, de NoSQL et d'architecture haute performance Nous avons aussi eu droit à une grande annonce pour une nouvelle conférence qui démarre en 2012 : Devoxx France! Bien sûr, OCTO était sur place. Dans cet article, nous ne…

Lire la suite
Archi & techno

Utilisation avancée de CXF : les intercepteurs

Le framework CXF est aujourd'hui probablement le meilleur framework pour implémenter des web services selon la spécification JAX-WS en Java. Ayant réalisé un projet d'envergure autour de CXF, cet article n'a pas pour but d'être une initiation à ce framework car les tutoriaux de base de la documentation sont très bien faits ( http://cxf.apache.org/docs/index.html). Nous allons plutôt, dans une série d'articles, tenter de vous présenter quelques "tips avancés" sur CXF. Une grande qualité de CXF est d'être un framework très modulaire de par sa conception…

Lire la suite
Archi & techno

JSR 303 (Bean Validation) : état des lieux

La JSR 303 (Java Specification Request) a été lancée en 2006. Elle a pour objet d'éviter la duplication de la validation des données dans les diverses couches de l'application en la localisant dans la définition des Beans Java. Ceci, dans le but de gagner en productivité et d'éviter les bugs liés à la redondance de la validation. 5 ans après son lancement, nous sommes tentés d'en savoir plus sur le chemin parcouru par cette JSR et surtout de savoir si oui ou non elle a atteint ses…

Lire la suite
Archi & techno

Comment ne plus avoir de NullPointerException en Java ?

NullPointerException : l'erreur la plus courante dans un programme Java. On est tous à un moment ou à un autre tombé sur cette exception. Malheureusement, ce n'est qu'en production à 4h du matin qu'elle arrive. On corrige donc le bug suivant : MonObjet monObjet = null; … monObjet.maMethode(); // => NullPointerException Par un rapide : if(monObjet != null) { monObjet.maMethode(); } Ce correctif est tout à fait honorable, mais pourquoi ne pas essayer de ne plus avoir aucune exception de ce type ? Il existe plusieurs…

Lire la suite
Archi & techno

Le Cloud au service de l’intégration continue

Il est bon de commencer par le pourquoi (c.f « start with Why » de Simon Sinek à l'USI 2011). En effet, pourquoi diable pousser le développement dans le Cloud ? Combien de temps me faut-il pour obtenir un environnement prêt à builder jours et nuits ? Combien de temps faut-il entre mon dernier build et la mise à disposition de mon application ? C’est pour répondre à ces problématiques que le passage à un modèle de « Development As A Service » prend tout son sens. Cet article s'inscrit dans la continuité…

Lire la suite
Archi & techno

Socle technique des applications Java EE : dans le WAR ou dans le serveur ?

Le sujet du packaging des applications Java EE a suscité récemment des échanges riches sur notre mailing-list interne. C'est pourquoi nous avons trouvé intéressant d'en publier une synthèse. Nous remercions Dominique Jocal pour avoir réalisé cette synthèse, ainsi que les participants à ce débat : Benoît Lafontaine, Mikael Robert, Bertrand Paquet, Marc Bojoly - et nous vous souhaitons une bonne lecture ! Un projet de montée en version ou de changement de serveur d’application Java et de JVM est l’occasion pour une direction technique de…

Lire la suite
Archi & techno

Vers des API haut niveau pour Java et NoSQL avec Spring Data

A l'heure où les nouvelles technologies de stockage de données regroupées sous les termes NoSQL et Distributed Data Grid deviennent populaires, il est intéressant de suivre l'évolution de cet écosystème et notamment des librairies d'intégration avec ces outils. Des librairies apportant un certain niveau d'abstraction émergent, avec l'espoir de voir apparaître des solutions de haut niveau comparables aux ORM que nous utilisons pour les bases relationnelles. Nous allons nous intéresser aujourd'hui au projet Spring Data, qui propose une certaine unification pour les accès aux bases de…

Lire la suite
Archi & techno

Audit avec JPA : date de création et de dernière mise à jour

Lorsqu'on écrit une application avec des données persistantes, il est souvent nécessaire de pouvoir réaliser de l'audit sur les modifications. Aujourd'hui, l'état de l'art pour la persistance des données se base sur des outils de type ORM à travers l'interface JPA en Java. Etre capable d'ajouter à chaque table la date de création et de dernière mise à jour est souvent la première demande en terme d'audit. Borémi et moi avons du répondre à cette question en mission. Nous avons regroupé et étudié différentes implémentations,…

Lire la suite