Spring Batch

De Dos Ideas.
Revisión del 13:13 8 sep 2008 de 201.251.185.130 (discusión) (Arquitectura básica)
Saltar a: navegación, buscar

Spring Batch es el framework para procesamiento de lotes de Spring Framework. Este framework apunta a crear una plataforma que brinde servicios comunes para los programas batch.

Arquitectura básica

El elemento principal de Spring Batch es el Job (Trabajo). Un Job representa un procesamiento batch a ejecutar. Un Job está compuesta de varios Step (Pasos), que se ejecutan en forma secuencial.

El mismo Job puede configurarse con distintos parámetros que lo diferencian (por ejemplo, la fecha de ejecución). Esto se conoce como JobInstance. Así, un JobInstance es la particularización de un Job con un conjunto de datos determinados.

La ejecución de un JobInstance es un JobExecution. Así, un JobInstance puede tener asociados muchos JobExecution, uno por cada intento de ejecución (por ejemplo, 2 intentos fallidos y uno exitoso).

Además, Spring Batch lleva un registro de todas las ejecuciones y parámetros con las que se lanzaron los Job. El encargado de guardar estos registros es el JobRepository, que cuenta con una implementación para almacenar la información en una base de datos. Spring Batch utiliza un modelo de tablas propio para guardar la información de las corridas, tiempos, parámetros de invocación, pasos que se ejecutaron y otros datos.

Por último, el encargado de ejecutar los Job se llama JobLauncher.

Los Step

Un Job está compuesto de varios Step que se ejecutan, inicialmente, de manera secuencial. El Step más común es el implementado por la clase SimpleStepFactoryBean, o por la clase TaskletStep.

SimpleStepFactoryBean

Esta clase crea Steps que constan de un "lector de datos" (ItemReader) y un "procesador de datos" (ItemWriter).

El ItemReader será un bean encargado de leer datos de algún origen. Cada dato leído será pasado al ItemWriter para su procesamiento.

Existen varias implementaciones de ItemReader y ItemWriter que ya trae Spring Batch. Estas implementaciones resuelven accesos comunes, como ser leer de una base de datos, lectura/escritura en archivos de texto, etc.

Además, es muy simple implementar un ItemReader o ItemWriter propio.

TaskletStep

Un Tasklet es una acción muy básica en Spring Batch, y se usa para realizar ejecuciones simples. Un Step que ejecuta un tasklet se implementa con la clase TaskletStep.

Ver también