DevopsDays Paris 2013
Les DevopsDays Paris ont eu lieu ces jeudi 18 et vendredi 19 avril 2013. Nous y étions, et voici ce que nous en retiendrons : [SPOILER] Du positif ! [/SPOILER]
Les DevopsDays Paris ont eu lieu ces jeudi 18 et vendredi 19 avril 2013. Nous y étions, et voici ce que nous en retiendrons : [SPOILER] Du positif ! [/SPOILER]
Cet article a pour but de présenter l’utilisation de l’approche Comet au sein du framework Play a travers la création d’une application de chat basique.
Play est un framework MVC de développement rapide pour Java et Scala, dont la version 2 est sortie le 13 mars 2012.
Comet est une approche permettant au serveur web d’envoyer des informations au navigateur web sans que celui-ci l’ait explicitement demandé.
Lire la suite…
Mon objectif principal est la présentation de résultats de recherche sous forme de tableau avec gestion de la pagination. Du grand classique!
Comme j’ai envie que ça soit beau sans faire trop d’effort, je pense très rapidement à jQuery. Après une rapide recherche, j’opte pour un plugin très populaire de présentation de données tabulaires : dataTable. En effet, celui-ci permet en très peu de configuration de gérer la “présentation des résultats paginés” tout en déléguant la gestion de la pagination au serveur : bingo!
Par contre, si j’opte pour cette solution les résultats à afficher devront être récupérés grâce à des requêtes AJAX. D’un côté ça m’arrange car ça me permet de coller à ma deuxième contrainte, qui était de rendre la navigation plus fluide; mais d’un autre côté, ça m’embête un peu parce que je n’ai pas envie de rentrer dans les problématiques techniques d’AJAX.
Je fais donc ma petite enquête et me rends compte que Spring 3.x apporte un support intéressant pour AJAX censé faciliter la vie du développeur. Spring et jQuery, je signe sans hésitation et me lance dans l’aventure.
Lire la suite…
Cette année 2012 à été riche pour l’écosystème javascript et particulièrement pour les frameworks MVC côté client.
Je me propose dans cet article de vous présenter un challenger méconnu à côté de Backbone.js ou de Angular.js.
Ember.js
Dans le cadre de la refonte d’une application extranet chez un client, j’ai été plus particulièrement chargé du développement des batchs. Les batchs à développer devaient tous réaliser des tâches similaires :
Dans l’ancienne version de l’application, les batchs étaient développés grâce à un framework interne (vieillissant). J’ai donc recherché des frameworks de batch permettant de remplacer l’ancienne architecture tout en s’intégrant avec les composants utilisés dans la partie web de l’application (développée en Spring et Struts 1).
Dans un souci de facilitation de la maintenance, le choix de Spring-batch s’est rapidement imposé. En effet, la plupart des composants (DAOs, services) nécessaires pour réaliser les tâches ci-dessus avaient déjà été développés sous la forme beans Spring utilisés par l’application web ; la principale tâche restant à accomplir étant le câblage de ces différents composants. Il était donc plus efficace et plus maintenable de réutiliser les composants existants et de les injecter dans les batchs via IOC.
Le développement a donc consisté à créer les classes composant la partie « front » des batchs et à gérer leur enchaînement.
Le but de cet article n’est pas de décrire de manière détaillée le fonctionnement de Spring-batch. Il s’agit plutôt de réaliser par étapes un petit tutoriel, la documentation officielle de Spring étant très complète mais peu adaptée à une prise en main rapide : http://static.springsource.org/spring-batch/reference/html-single/index.html
Ce tutoriel traitera surtout du développement de tâches pour lesquels un composant de Spring-batch n’existe pas déjà. En effet, ce framework propose des classes permettant de mettre en place rapidement (et généralement en ne manipulant que les fichiers de configuration Spring) des tâches récurrentes dans le domaine des batchs :
Des exemples fonctionnels pour ces tâches sont disponibles sur le web, notamment dans la documentation officielle ; en revanche, il n’existe que très peu d’exemples de la mise en place de tâches “spécifiques” : dans le cas qui nous intéresse, ces tâches étaient par exemple l’upload/download de fichiers via FTP et de manipulation sur des fichiers images (en tant que fichiers, et donc sans lire leur contenu comme c’est le cas avec des fichiers CSV ou XML plus fréquemment manipulés par les batchs).