Spring Batch: Conceptos

Ahí va un post de esos de copiar y pegar 🙂

Qué es una Aplicación Batch:

  • Las aplicaciones Batch necesitan procesar grandes volúmenes de datos críticos de negocio de forma transaccional
  • Un programa típico Batch normalmente:
    • Lee un gran número de datos de una base de datos, ficheros o cola
    • Procesa los datos de alguna forma
    • Escribe los datos modificados

Spring Batch:

  • es el primer framework Java para procesamiento Batch
  • provee un framework altamente escalable, sencillo de usar y personalizable para desarrollo de aplicaciones Batch
  • Spring Batch se basa en los patrones y prácticas de Spring permitiendo a los desarrolladores centrarse en la lógica de negocio.
  • Versiones:
    • 1.0 Febrero 2008
    • 1.1 Agosto 2008
    • 2.0 Abril 2009

Escenarios de uso de Aplicaciones Batch

  • Commit batch periódicos
  • Procesamiento batch concurrente
  • Procesamiento masivo y en paralelo
  • Reinicio manual o temporizado tras fallo
  • Procesamiento secuencial de pasos dependientes (workflow-driven)
  • Procesamiento parcial

Opciones de Procesamiento batch:

  • Procesamiento normal en Batch dutante offline
  • Batch concurrente / online
  • Procesamiento en paralelo de varios Jobs a la vez
  • Particionamiento: varias instancias del mismo Job a la vez

Por su fuente de entrada se pueden categorizar por:

  • Aplicaciones Database-driven: dirigidas por valores recuperados de una BD
  • Aplicaciones File-driven
  • Aplicaciones Message-driven
  • Aplicaciones Workflow-driven

CONCEPTOS SPRING BATCH

  • Job:
    • Entidad para encapsular todo un proceso batch.
    • Compuesto de una serie de pasos (Steps) que tienen una relación lógica
  • JobInstance:
    • Es la ejecución de un Job
    • Cada JobInstance puede tener múltiples intentos de ejecución (JobExecution)
    • El JobInstance se considera terminado cuando alguno de sus intentos de ejecución tuvo éxito
  • JobExecution:
    • Es el intento de ejecución de un JobInstance, terminado con éxito o no
    • Un JobInstace solo se considera terminado cuando alguno de sus JobExecution ha terminado con éxito.
    • Tiene las siguientes propiedades:
      • Status
      • startTime, endTime,
      • createTime, lastUpdate
      • executionContext :valores que mete usuario para persistirse entre ejecuciones)
      • failureException: excepciones durante la ejecución
  • Step:
    • objeto de dominio que encapsula de manera independiente una de toda la secuencia de fases de un Job
  • StepExecution:
    • representa un intento de ejecutar un Step
    • Se crea una instancia de StepExecution cada vez que se intenta ejecutar un Step
    • si un Step falla porque un Step anterior fallo no se persistira su ejecucion
    • Tiene las siguientes propiedades:
      • Status, exitStatus
      • startTime, endTime
      • executionContext
      • readCount, writeCount
      • commitCount, rollbackCount
      • readSkipCount, processSkipCount, writeSkipCount
  • ExecutionContext:
    • Colección de elementos llave/valor que son persistidos y controlados por el propio framework que permiten al desarrollador almacenar valores que son persistidos y que están dentro del alcance de un StepExecution o un JobExecution
    • Permite almacenar valores que permiten el reinicio de procesos desde un punto en particular.
  • JobRepository:
    • Es el mecanismo de persistencia que usan los ExecutionContext para los StepExecution y JobExecution
  • Contiene operaciones CRUD

JobLauncher: representa el mecanismo para ejecutar un Job con ciertos JobParameters. ItemReader: Representa el obtener datos de entrada para un Step, un elemento (item) a la vez Cuando el ItemReader ha acabado de obtener los elementos indica que ya no hay más elementos que tomar regresando null. Varias implementaciones out-of-the-box ItemWriter: Representa la salida de un Step, un elemento a la vez. Varias implementaciones out-of-the-box ItemProcessor: representa el procesamiento de un elemento Mientras el ItemReader lee un elemento y el ItemWriter lo escribe, el ItemProcessor aplica transformaciones u otras reglas. Si el ItemProcessor determina que un elemento no es valido regresa null para indicar que el elemento no debe ser escrito

Modelo de Datos

Ejemplo:

Tipos de Ejecución:

Arquitectura Tipo:

Pencil: Herramienta gratuita para hacer bocetos de pantallas

Pencil es una herramienta opensource (licencia GPL 2) y gratuita para crear diagramas y bocetos GUI.

Yo soy un gran fan de pero he encontrado que Pencil ofrece una serie de características que la hacen muy interesante para hacer bocetos (no generación de pantallas finales):

· Es más sencillo de usar que WireframeSketcher: funciona como plugin de Firefox 3.5+ o como aplicación standalone

· Ofrece varios Stencils (widgets de Ext JS, de Dojo, de Android). Además es sencillo crear nuevas colecciones: consiste en un conjunto de imágenes y un XML de configuración.

· Soporta navegación entre pantallas

· Permite exportar la aplicación a HTML, PNG, Openoffice, Word y PDF. Eso sí, lo que genera es una imagen por cada pantalla linkada.

· Posibilidad de generar nuevas plantillas de generación (esto no parece tan fácil J)

Si tenéis que crear un boceto de una aplicación os recomiendo su uso como aplicación standalone.

Yo ya me lo he guardado en favoritos 🙂

Spring Roo Getting Started

Ya sabéis todos lo fan que soy de estos Getting Started … pues en este caso de una herramienta por la que tengo especial predilección (ya lo sabéis verdad :))

En este caso el Getting Started nos llega un poco tarde a algunos pero para otros seguro que os ofrece una forma muy sencilla de entender lo que ofrece Roo. Podéis descargar el PDF desde aquí

Interesante algunos de sus diagramas que reflejan perfectamente algunos de los temas que menos agradan al principio (el uso de Aspectos):

.

También son interesantes los puntos que indican cómo eliminar las dependencias de Roo para que Roo sólo se use en Desarrollo.

A ver si Stefan Shmidt se anima y acaba el libro que lo tiene en MEAP (desde hace muchoooo tiempo 😉 (actualizándolo cada poco pero en MEAP):

Chrome 11

Chrome 11 ya está disponible para la descarga.

La novedad más destacable de esta nueva versión estable es la posibilidad de poder grabar voz usando sólo HTML, gracias a los nuevos estándares. Desde el blog oficial de Chrome, Google anima a probarlo a través del mismo Google Translate, ya preparado para poder grabar voz y traducir.

En esta versión cambia el icono. Las explicaciones oficiales del cambio de icono que dio la compañía hace unas semanas argumentan que con el nuevo diseño se consigue una mayor sensación de limpieza y facilidad de uso. De hecho, la llegada del nuevo icono a la versión estable hace que el antiguo desaparezca definitivamente.

Como siempre, Chrome es gratuito y se puede descargar la nueva versión desde su web oficial o bien actualizando desde el panel ‘Acerca de’ del navegador.

Windows 8 con Time Machine

Se confirma el rumor que situaba a Microsoft desarrollando un sistema de copias de seguridad incremental similar a Time Machine. Time Machine de Apple en un programa que hace copias de todos los cambios que se realizan en los ficheros del sistema de forma gradual.

Así, se puede restaurar una copia de los ficheros en fecha anterior (pudiendo ser todos ellos diferentes).

Por ahora en Windows 8 recibe el nombre de History Vault y, básicamente, funciona igual que el sistema de Apple.

Aunque History Vault era un rumor más que sonado y repetido, han aparecido nuevas capturas de pantalla en las que aparece el diseño del interfaz, su forma de funcionar, configuración… lo que viene a confirmar los rumores. Las capturas han sido sacadas de la build 7955 de Windows 8.

Windows 7 : 350 millones de licencias

Microsoft ha anunciado que Windows 7 ha conseguido llegar a los 350 millones de licencias en sus primeros 18 meses en el mercado, uno registro bastante superior al conseguido por Windows Vista.

Según la compañía, el éxito del sistema operativo se está extendiendo, sobre todo, entre las empresas. Desde Microsoft citan datos de la consultora IDC en la que se asegura que un 90 % de las empresas están migrando sus sistemas Windows hacia Windows 7.

Microsoft asegura que el éxito se sustenta en la reducción de costes que permite a los usuarios y a la optimización de rendimiento. La empresa cifra en 96 euros al año(140 dólares) el ahorro por cada ordenador que supone su sistema.

Splashup: edición de imágenes online

Splashup es una aplicación web Flash que permite editar desde la Web imágenes al estilo Photoshop (con capas y todo).

Los trabajos realizados con Splashup se pueden subir a Flickr, Picasa,…también permite editar imágenes desde estos sitios:

A %d blogueros les gusta esto: