Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 74 - Conhecendo o Spring Batch
Utilize o poder do framework Spring Batch para integrar seus sistemas com aplicações externas
Java Magazine 74
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 74
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 74
Conhecendo o Spring Batch
De que se trata o artigo:
Utilização do framework Spring Batch para criar uma aplicação batch de exemplo simulando a integração entre sistemas distintos utilizando diferentes fontes de entrada (CSV e banco de dados) para popular uma base de dados destino.
Para que serve:
Fornecer uma solução para criação de aplicações batch, reduzindo o acoplamento entre os componentes utilizados e privilegiando a facilidade de manutenção através de componentes prontos para uso ou customizáveis como Jobs, Steps, Item Readers e Item Writers fornecidos pelo framework.
Em que situação o tema é útil:
A utilização do framework Spring Batch é útil em qualquer cenário onde a integração de sistemas torna-se necessária, facilitando a construção de aplicações batch flexíveis e mais fáceis de alterar.
Conhecendo o Spring Batch:
O Spring Batch Framework é parte do projeto Spring, e visa fornecer funções reutilizáveis para o processamento e gerenciamento de dados em um determinado cenário de integração de sistemas através de aplicações batch. Por exemplo, ler um arquivo texto de largura fixa e gerar um arquivo CSV (Comma Separated Value) como saída, consultar um banco de dados, transformá-lo e atualizar o banco de dados de uma aplicação externa, etc. O fluxo da aplicação a ser desenvolvida vai depender das regras de negócio definidas para cada aplicação e da estratégia de integração a ser adotada. Não existe uma lógica pré-definida, por isso precisamos de uma solução flexível e produtiva para criarmos integrações entre sistemas distintos sem “reinventar a roda”.
Neste artigo, vamos criar uma aplicação em Java para realizar o processamento em lote[1] de duas fontes de dados distintas e importar os dados para uma tabela de um banco de dados exemplo. A primeira fonte de dados será um arquivo CSV (campos separados por vírgula, do correspondente em inglês a Comma Separated Value) e a segunda uma tabela de um banco de dados.
Para nos ajudar nesta tarefa, faremos uso do framework Spring Batch, que provê uma abstração sobre batch, jobs e steps (desenvolvedores de aplicações batch já são familiarizados com estes termos, veja o significado de cada um deles em suas respectivas notas DevMan), e facilita algumas operações comuns para este tipo de aplicação, tais como: processar grandes volumes de registros, agendamento de tarefas, reprocessamento em caso de falhas, logging/tracking, transações, entre outras características. Com isso, o desenvolvedor ganha mais tempo e foca apenas na lógica de negócio da aplicação, deixando para o framework questões relacionadas à infraestrutura.
Batch: É um conjunto de jobs executados por uma única aplicação que possui um fluxo de processamento bem definido.
Job: É definido como um conjunto de steps que juntos executam uma determinada tarefa de um fluxo de processamento. Podemos dizer que um Job significa uma determinada tarefa de processamento que possui um nome e a ordem de execução dos steps que o compõe. Observe a configuração simplificada abaixo:
Step: Representa um passo a ser executado dentro de um determinado Job. Podemos dizer que um step é uma ação que lê, escreve ou envia informações nos mais diversos formatos.
O termo lote ou batch é bastante comum para programadores de Mainframe. As aplicações batch podem ser consideradas como programas ou rotinas executadas em segundo plano que possuem um fluxo a percorrer e sem a intervenção direta do usuário.
O Spring Batch Framework
O Spring Batch Framework é parte do projeto Spring, e visa fornecer funções reutilizáveis para o processamento e gerenciamento de dados em um determinado cenário de integração. Por exemplo, ler um arquivo texto de largura fixa[2] e gerar um arquivo CSV (Comma Separated Value) como saída, consultar um banco de dados, transformá-lo e atualizar o banco de dados de uma aplicação externa, etc. O fluxo vai depender das regras de negócio definidas para cada aplicação e da estratégia de integração a ser adotada, não existe uma lógica pré-definida.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Processe grandes volumes de dados em “background”
Utilize o poder do framework Spring Batch para integrar seus sistemas com aplicações externas
De que se trata o artigo:
Utilização do framework Spring Batch para criar uma aplicação batch de exemplo simulando a integração entre sistemas distintos utilizando diferentes fontes de entrada (CSV e banco de dados) para popular uma base de dados destino.
Para que serve:
Fornecer uma solução para criação de aplicações batch, reduzindo o acoplamento entre os componentes utilizados e privilegiando a facilidade de manutenção através de componentes prontos para uso ou customizáveis como Jobs, Steps, Item Readers e Item Writers fornecidos pelo framework.
Em que situação o tema é útil:
A utilização do framework Spring Batch é útil em qualquer cenário onde a integração de sistemas torna-se necessária, facilitando a construção de aplicações batch flexíveis e mais fáceis de alterar.
Conhecendo o Spring Batch:
O Spring Batch Framework é parte do projeto Spring, e visa fornecer funções reutilizáveis para o processamento e gerenciamento de dados em um determinado cenário de integração de sistemas através de aplicações batch. Por exemplo, ler um arquivo texto de largura fixa e gerar um arquivo CSV (Comma Separated Value) como saída, consultar um banco de dados, transformá-lo e atualizar o banco de dados de uma aplicação externa, etc. O fluxo da aplicação a ser desenvolvida vai depender das regras de negócio definidas para cada aplicação e da estratégia de integração a ser adotada. Não existe uma lógica pré-definida, por isso precisamos de uma solução flexível e produtiva para criarmos integrações entre sistemas distintos sem “reinventar a roda”.
Neste artigo, vamos criar uma aplicação em Java para realizar o processamento em lote[1] de duas fontes de dados distintas e importar os dados para uma tabela de um banco de dados exemplo. A primeira fonte de dados será um arquivo CSV (campos separados por vírgula, do correspondente em inglês a Comma Separated Value) e a segunda uma tabela de um banco de dados.
Para nos ajudar nesta tarefa, faremos uso do framework Spring Batch, que provê uma abstração sobre batch, jobs e steps (desenvolvedores de aplicações batch já são familiarizados com estes termos, veja o significado de cada um deles em suas respectivas notas DevMan), e facilita algumas operações comuns para este tipo de aplicação, tais como: processar grandes volumes de registros, agendamento de tarefas, reprocessamento em caso de falhas, logging/tracking, transações, entre outras características. Com isso, o desenvolvedor ganha mais tempo e foca apenas na lógica de negócio da aplicação, deixando para o framework questões relacionadas à infraestrutura.
Batch: É um conjunto de jobs executados por uma única aplicação que possui um fluxo de processamento bem definido.
Job: É definido como um conjunto de steps que juntos executam uma determinada tarefa de um fluxo de processamento. Podemos dizer que um Job significa uma determinada tarefa de processamento que possui um nome e a ordem de execução dos steps que o compõe. Observe a configuração simplificada abaixo:
Step: Representa um passo a ser executado dentro de um determinado Job. Podemos dizer que um step é uma ação que lê, escreve ou envia informações nos mais diversos formatos.
O termo lote ou batch é bastante comum para programadores de Mainframe. As aplicações batch podem ser consideradas como programas ou rotinas executadas em segundo plano que possuem um fluxo a percorrer e sem a intervenção direta do usuário.
O Spring Batch Framework
O Spring Batch Framework é parte do projeto Spring, e visa fornecer funções reutilizáveis para o processamento e gerenciamento de dados em um determinado cenário de integração. Por exemplo, ler um arquivo texto de largura fixa[2] e gerar um arquivo CSV (Comma Separated Value) como saída, consultar um banco de dados, transformá-lo e atualizar o banco de dados de uma aplicação externa, etc. O fluxo vai depender das regras de negócio definidas para cada aplicação e da estratégia de integração a ser adotada, não existe uma lógica pré-definida.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

3 COMENTÁRIOS
Fabiano Suet Da Silva
Antes de mais nada, parabens pelo artigo!
Estou num projeto de uma grande aplicação batch e estou propenso a usar o Spring Batch. No entanto, estou buscando material de estudo na mesma linha deste publicado na JM, de preferência em português, e estou tendo muita dificuldade em encontrar.
Além disso, tenho uma sugestão, de criar um grupo de discussão no Brasil, específico deste FW, pois acredito que outros desenvolvedores tenham interesse pelo assunto.
Abraços
Fabiano
Estou num projeto de uma grande aplicação batch e estou propenso a usar o Spring Batch. No entanto, estou buscando material de estudo na mesma linha deste publicado na JM, de preferência em português, e estou tendo muita dificuldade em encontrar.
Além disso, tenho uma sugestão, de criar um grupo de discussão no Brasil, específico deste FW, pois acredito que outros desenvolvedores tenham interesse pelo assunto.
Abraços
Fabiano
[há +1 ano] -
Responder

Fabiano Suet Da Silva
Olá,
Implementando os exemplos do tutorial, pude perceber que alguns fontes não estão presentes nas listagens. Onde posso obter essas listagens?
Grato.
Fabiano
Implementando os exemplos do tutorial, pude perceber que alguns fontes não estão presentes nas listagens. Onde posso obter essas listagens?
Grato.
Fabiano
[há +1 ano] -
Responder
Devmedia - Equipe De Moderação
Fabiano,
vc encontra os fontes dessa e de outras edições em http://www.devmedia.com.br/resumo/download.asp?site=6&idcanal=34
vc encontra os fontes dessa e de outras edições em http://www.devmedia.com.br/resumo/download.asp?site=6&idcanal=34
[há +1 ano] -
Responder
Você está em:
canal Java
André Diniz
Space do autor
André Diniz é Bacharel em Ciência da Computação (UNIFACS – Universidade Salvador), atualmente é Partner/Senior Software Analyst do HSBC Global Technology Brazil. Também é pós-graduado em Sistemas de Informação com Ênfase em Componentes Distribuídos e Web pela Faculdade Ruy Barbosa. Colabora com a re...
Space do autor



0
0
