SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
JUG Lausanne

Spring Batch
9 novembre 2010

Julien Jakubowski
Olivier Bazoud
1
Intervenants
➢

Olivier Bazoud, FullSIX, 12 ans d'expérience
●

●

Java EE / Spring, Spring Batch, Groovy, Grails

●

Co auteur de « Spring Batch in Action »

●

➢

Architecte technique de sites web à fort traffic

Spring User Group France

Julien Jakubowski, OCTO Technology
●

Architecte, 10 ans d'expérience

●

Spécialisé Java EE / Spring

●

Productivité et qualité des développements

●

Ch'ti JUG, Agile Tour Lille
2
De quoi va-t-on parler ce soir ?
➢

On va parler de batchs en Java ...

Spring Batch
➢

… et aussi de bière

http://www.flickr.com/photos/fromeyetopixel/2559391584/

3
Teaser
➢

Quand j'écris une application Web, il y a pléthore de
frameworks Web

JSF

4
Teaser
➢

Quand j'accède à une base de données, il y a moult
solutions de persistance

5
Teaser
➢

Quand je fais du batch, je suis ... à poil !

➢

Les batchs seraient-ils les parents pauvres de Java ?

http://www.flickr.com/photos/crystaljingsr/3914729343/sizes/o/in/set-72157622354789320/

6
Teaser
➢

Spring Batch offre pourtant une solution pour vous
guider lors de l'écriture de vos batchs

Spring Batch

7
Nos objectifs
➢

En sortant de la salle, vous :
●

Savez identifier certains problèmes récurrents avec les
batchs écrits en Java

●

Savez si Spring Batch est utile pour vous (ou pas)

●

Avez intégré les notions principales

●

Pouvez faire un batch « Spring Batch » demain

8
Batch : de quoi parle-t-on ?
➢

Batch processing = suite de traitements sur ensemble
de données...

http://www.flickr.com/photos/burnblue/308441464/

9
Batch : de quoi parle-t-on ?
➢

… potentiellement grands volumes...

http://www.flickr.com/photos/claudiasofia99/2878579560/

10
Batch : de quoi parle-t-on ?
➢

… sans intervention d'un utilisateur humain.
(pas d'interface graphique)

11
Batch : de quoi parle-t-on ?
➢

Exemples :
●

Import Flat/XML dans une base de données

●

Mise à jour de données de référentiels

●

Intégration de flux bancaire, financier dans un SI

12
Batch : de quoi parle-t-on ?
➢

Un batch n'est pas un scheduler
●

Cron, Quartz, $U...

●

Mais un scheduler peut le lancer

13
Ce qui vous attend
➢

Spring Batch en 1 slide

➢

Un batch « à poil »

➢

Le même en Spring Batch

➢

Introduction progressive des notions de Spring Batch

➢

Retours d'expérience

➢

Forces et faiblesses

➢

Questions / réponses

14
Spring Batch propose
✔ Un cadre
✔ Un vocabulaire (domain language)
✔ Traitement par lots (grands volumes de données)
✔ Gestion des transactions, commit régulier
✔ Spring dans ses batchs

Parallélisme
Partitionnement

Une infrastructure pour les batchs
Reprise sur erreurs
15
Beer batch
➢

Implémentation « naïve »

➢

Caractéristiques :
●

Lire le fichier XML de recettes, au format BeerXML

●

Filtrer certaines recettes et créer un fichier de rejets

●

Ecrire en base de données

16
Démo

Anti-patterns...

17
Problèmes récurrents
➢

Fiabilité

18
Problèmes récurrents
➢

Maintenabilité

19
Problèmes récurrents
➢

Réinvention de la roue

20
Le nouveau batch
➢

Ecrire la date de début du batch

➢

Lire le fichier XML de recettes de bières

➢

Filtrer et créer un fichier de rejets

➢

Ecrire en base de données

21
Schéma du batch
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

22
ItemReader
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

23
➢

Besoin
●

➢

ItemReader

Lire le XML des recettes

ItemReader
●

Fournir des items en entrée

<xml>

SELECT … FROM ...

123;AB;
456;CD;
24
Morceaux de code

25
ItemProcessor
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

26
ItemProcessor
➢

Besoin
●

➢

Transforme, valide ou/et filtre une recette

ItemProcessor
●

Transforme un item et en retourne un autre

●

Emplacement pour les « règles métier »

27
Morceaux de code

28
Morceaux de code

29
ItemWriter
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

30
Item Writer
➢

Besoin
●

➢

Décharger les bières dans une base SQL

ItemWriter
●

Ecrire les items

<xml>

INSERT INTO...

123;AB;
456;CD;
31
Morceaux de code

32
Chunk
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

33
Chunk
➢

Besoin
●

➢

Lire, transformer et écrire

Chunk
●

Lire et transformer les données successivement

●

Ecrire le lot de données

●

Le commit-interval définit la taille du lot (différent
de la taille du fichier)

●

Gestion de la transaction : Commit/Rollback

34
Chunk

35
Morceaux de code

36
Listener
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

37
Listener
➢

Besoin
●

➢

Création du fichier de rejet

Listener
●

Etre à l'écoute des événements du batch

38
Morceaux de code

39
Morceaux de code

40
Morceaux de code

41
Tasklet
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

42
Tasklet
➢

Besoin
●

➢

Effectuer une tâche unitaire

Exemples
●

Suppression de fichiers

●

Unzip d'un fichier

●

Appel d'une procédure stockée

●

Appel d'un web service

43
Morceaux de code

44
Step
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

45
Step
➢

Besoin
●

Etape dans le processus du batch

●

Contrôle le workflow

46
Job
InitialStep
InitialTasklet

RecipeStep
Chunk Oriented Tasklet

ItemReader

ItemProcessor

ItemWriter

47
Job
➢

Besoin
●

Décrire les étapes du batch

●

Composé d'une ou plusieurs steps

Spring Tool Suite

48
Morceaux de code

49
Traitement par lots

50
Lancer un job

51
Tests
➢

Tests unitaires facilités via le découpage Spring Batch
●

➢

writers, processors etc...

Tests d'intégration facilités par Spring
●

@RunWith

●

Step, Job

Sonar

52
Morceaux de code

53
Morceaux de code

54
Retours d'expérience FullSIX
➢

Framework de batch
●
●

➢

Moins de code produit, moins d'erreurs possibles
Plus de tests unitaires + intégrations

Mise en place par l'exemple
●
●

➢

J'ai fait le premier batch pour montrer la voie
Un même vocabulaire aide à se comprendre

Répond à nos besoins même si les batchs sont différents au niveau métier

55
Retours d'expérience FullSIX
➢

Nos batchs « Spring Batch » sont en SQL plutôt qu'en
Hibernate

➢

Spring Batch s'occupe de la gestion transactionnelle

➢

En moyenne
●
●

➢

15% - 50% de gain sur le temps de développement
15% - 50% de gain au « runtime »

Gains plus impressionnants sur certains cas
●

XML 100Mo + SQL; Gain : de 60 mn à 8mn

●

10 fichiers 4Mo + SQL; Gain : de 10mn à 1mn30s

56
Forces et faiblesses
✔ Fiabilité et bons patterns
✔ Tests, TDD
✔ Batchs complexes mieux maintenables
✔ Bénéficie de fonctions avancées à moindre coût
...the Spring way, Spring Intégration

✔ Productivité, à terme...
✗ … après avoir payé le ticket d'entrée

57
Notions avancées non-abordées
➢

Partionning, parallélisme, remoting

➢

Flow

➢

Reprise sur erreurs, Skipping

➢

Infrastructure pour les batchs

➢

Spring Batch Admin
A votre disposition...

58
Spring Batch in Action
➢

http://www.manning.com/templier

59
Liens
➢

Spring User Group Paris
●

➢

Le code de la présentation
●

➢

http://code.google.com/p/fr-sug-spring-batch

Spring Batch 2.1.x
●

➢

http://groups.google.fr/group/sugfr

http://static.springsource.org/spring-batch

Articles sur le web
●

http://www.theserverside.com/news/1363855/Spring-Batch-Overview

●

http://www.infoq.com/presentations/syer-introducing-spring-batch

●

http://blog.zenika.com/index.php?post/2010/03/05/To-batch-or-not-to-batch

●

http://blog.octo.com/spring-batch-par-quel-bout-le-prendre/

60
Questions ?

http://www.flickr.com/photos/crystaljingsr/3914729343/in/set-72157622354789320/

61
ROTI

http://www.flickr.com/photos/34943981@N00/202923614/

62

Contenu connexe

Tendances

TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with ChefOlivier BAZOUD
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs13p
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerGeeks Anonymes
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielleDavid Buros
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logiciellejollivetc
 
Du Docker dans notre workflow de dev
Du Docker dans notre workflow de devDu Docker dans notre workflow de dev
Du Docker dans notre workflow de devKodo Kojo
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.jsTelecomValley
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Amélie DUVERNET
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 

Tendances (20)

TDD for DevOps with Chef
TDD for DevOps with ChefTDD for DevOps with Chef
TDD for DevOps with Chef
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
Node.js
Node.jsNode.js
Node.js
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003JENKINS_BreizhJUG_20111003
JENKINS_BreizhJUG_20111003
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
Intégration continue & Qualité logicielle
Intégration continue & Qualité logicielleIntégration continue & Qualité logicielle
Intégration continue & Qualité logicielle
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
Du Docker dans notre workflow de dev
Du Docker dans notre workflow de devDu Docker dans notre workflow de dev
Du Docker dans notre workflow de dev
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Release quotidienne
Release quotidienneRelease quotidienne
Release quotidienne
 

En vedette

Cigarette electronique - Cigego.fr
Cigarette electronique - Cigego.frCigarette electronique - Cigego.fr
Cigarette electronique - Cigego.frCigego
 
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableProceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableEdward Eliecer Silva Mejia
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009JUG Lausanne
 
Pasos para crear una cuenta en facebook
Pasos para crear una cuenta en facebookPasos para crear una cuenta en facebook
Pasos para crear una cuenta en facebookKxrlosSxntixgo
 
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...Victoria Beatriz Charca León
 
Nuevas Generaciones
Nuevas GeneracionesNuevas Generaciones
Nuevas GeneracionesIraisOcampo
 
Identification de compatibilites sémantiques entre descripteurs de lieux
Identification de compatibilites sémantiques entre descripteurs de lieuxIdentification de compatibilites sémantiques entre descripteurs de lieux
Identification de compatibilites sémantiques entre descripteurs de lieuxEstelle Delpech
 
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012JUG Lausanne
 
Educación en la sociedad del conocimiento
Educación en la sociedad del conocimientoEducación en la sociedad del conocimiento
Educación en la sociedad del conocimientonilzuhu
 
las tics en el aula
las tics en el aulalas tics en el aula
las tics en el auladavidmagno
 
Dossier de production definitif
Dossier de production definitifDossier de production definitif
Dossier de production definitifJohanna Lry
 
Le recyclage électronique, ce n’est pas de l’exportation!
Le recyclage électronique, ce n’est pas de l’exportation!Le recyclage électronique, ce n’est pas de l’exportation!
Le recyclage électronique, ce n’est pas de l’exportation!Recyclage Informatique Quebec
 
El homo videns_al_ser_digital
El homo videns_al_ser_digitalEl homo videns_al_ser_digital
El homo videns_al_ser_digitalIraisOcampo
 
Resolucion de problemas aditivos3
Resolucion de problemas aditivos3Resolucion de problemas aditivos3
Resolucion de problemas aditivos31986manuelhdz
 
Réaliser son rêve avec Eric Domb (Pairi Daiza)
Réaliser son rêve avec Eric Domb (Pairi Daiza)Réaliser son rêve avec Eric Domb (Pairi Daiza)
Réaliser son rêve avec Eric Domb (Pairi Daiza)De Jonghe Pierre-Jean
 
Teorías de aprendizaje tic
Teorías de aprendizaje ticTeorías de aprendizaje tic
Teorías de aprendizaje ticnilzuhu
 

En vedette (20)

Cigarette electronique - Cigego.fr
Cigarette electronique - Cigego.frCigarette electronique - Cigego.fr
Cigarette electronique - Cigego.fr
 
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableProceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
 
RHONE ENVIRONNEMENT
RHONE ENVIRONNEMENTRHONE ENVIRONNEMENT
RHONE ENVIRONNEMENT
 
Polimorfismo2015c1
Polimorfismo2015c1Polimorfismo2015c1
Polimorfismo2015c1
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
 
Pasos para crear una cuenta en facebook
Pasos para crear una cuenta en facebookPasos para crear una cuenta en facebook
Pasos para crear una cuenta en facebook
 
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...
Clase 1 pensamiento estratégico - UNMSM, Pensamiento estratégico del trabajo ...
 
Programacionorientada a objetos
Programacionorientada a objetosProgramacionorientada a objetos
Programacionorientada a objetos
 
Nuevas Generaciones
Nuevas GeneracionesNuevas Generaciones
Nuevas Generaciones
 
Identification de compatibilites sémantiques entre descripteurs de lieux
Identification de compatibilites sémantiques entre descripteurs de lieuxIdentification de compatibilites sémantiques entre descripteurs de lieux
Identification de compatibilites sémantiques entre descripteurs de lieux
 
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
 
Educación en la sociedad del conocimiento
Educación en la sociedad del conocimientoEducación en la sociedad del conocimiento
Educación en la sociedad del conocimiento
 
las tics en el aula
las tics en el aulalas tics en el aula
las tics en el aula
 
Dossier de production definitif
Dossier de production definitifDossier de production definitif
Dossier de production definitif
 
Cars 3
Cars 3Cars 3
Cars 3
 
Le recyclage électronique, ce n’est pas de l’exportation!
Le recyclage électronique, ce n’est pas de l’exportation!Le recyclage électronique, ce n’est pas de l’exportation!
Le recyclage électronique, ce n’est pas de l’exportation!
 
El homo videns_al_ser_digital
El homo videns_al_ser_digitalEl homo videns_al_ser_digital
El homo videns_al_ser_digital
 
Resolucion de problemas aditivos3
Resolucion de problemas aditivos3Resolucion de problemas aditivos3
Resolucion de problemas aditivos3
 
Réaliser son rêve avec Eric Domb (Pairi Daiza)
Réaliser son rêve avec Eric Domb (Pairi Daiza)Réaliser son rêve avec Eric Domb (Pairi Daiza)
Réaliser son rêve avec Eric Domb (Pairi Daiza)
 
Teorías de aprendizaje tic
Teorías de aprendizaje ticTeorías de aprendizaje tic
Teorías de aprendizaje tic
 

Similaire à Spring Batch - Julien Jakubowski - November 2010

Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011Olivier BAZOUD
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaOlivier BAZOUD
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring BatchOlivier BAZOUD
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EEAntonio Gomes Rodrigues
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsAgile Tour 2009 Québec
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - IntroductionOlivier ETIENNE
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Horacio Gonzalez
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance frontJean-Pierre Vincent
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logJulien Maitrehenry
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et RecetterStéphane Bordage
 

Similaire à Spring Batch - Julien Jakubowski - November 2010 (20)

Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Sug spring batch
Sug spring batchSug spring batch
Sug spring batch
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
 
Spring Batch ParisJUG
Spring Batch ParisJUG Spring Batch ParisJUG
Spring Batch ParisJUG
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
 
Deux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succèsDeux ans de développement Agile, erreurs et succès
Deux ans de développement Agile, erreurs et succès
 
Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Integration continue - Introduction
Integration continue - IntroductionIntegration continue - Introduction
Integration continue - Introduction
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance front
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de log
 
Spring Batch Avance
Spring Batch AvanceSpring Batch Avance
Spring Batch Avance
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter7 Suivre Les Developpements Et Recetter
7 Suivre Les Developpements Et Recetter
 

Plus de JUG Lausanne

Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesJUG Lausanne
 
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienJUG Lausanne
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidJUG Lausanne
 
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkJUG Lausanne
 
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012JUG Lausanne
 
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011JUG Lausanne
 
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011JUG Lausanne
 
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...JUG Lausanne
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010JUG Lausanne
 
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010JUG Lausanne
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010JUG Lausanne
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010JUG Lausanne
 
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010JUG Lausanne
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009JUG Lausanne
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009JUG Lausanne
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009JUG Lausanne
 
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008JUG Lausanne
 
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008JUG Lausanne
 
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007JUG Lausanne
 

Plus de JUG Lausanne (20)

Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
 
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
 
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
 
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
 
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
 
Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
 
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
 
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
 
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
 
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
 
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
 
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
 

Spring Batch - Julien Jakubowski - November 2010