Aplicações corporativas
muitas vezes são construídas para lidar com processos que envolvem grandes
volumes de dados. Neste cenário, é normal que apareça a necessidade de
desenvolvimento de processos em lote. Por causa disso, é importante para todos
os desenvolvedores Java conhecer a API que se tornará a padrão para a criação
de processos desse tipo.
Autores: Renan
de Melo Oliveira, Julien
Renaut e Marcelo Takeshi Fukushima
O desenvolvimento de software permitiu que diversas tarefas antes consideradas impossíveis se tornassem não só possíveis, mas também viáveis. Vivemos na era da informação onde o acesso a uma quantidade de dados virtualmente infinita está ao alcance de um clique. Hoje podemos realizar transferências bancárias entre diferentes bancos que são finalizadas em minutos, falar com voz e vídeo com um grupo de dezenas de pessoas distribuídas no mundo inteiro e realizar cálculos com uma velocidade surpreendente. No entanto, computacionalmente falando, manipular tamanha quantidade de dados é um desafio.
No mercado de aplicações corporativas é comum a necessidade de lidar com volumes massivos de dados. Processar manualmente estes dados é repetitivo e burocrático, gerando assim pouco valor para as empresas. No entanto, com os avanços obtidos nos últimos anos, tanto em hardware como software, hoje é possível automatizar muitos destes processos de forma a diminuir custos e aumentar a confiabilidade das informações extraídas.
Atualmente, uma das necessidades mais comuns em grandes operações de software é o desenvolvimento de processos batch (em lote). Processos batch são operações realizadas por um sistema que não necessitam de interação direta com o usuário. Estes processos são caracterizados por lidarem com um grande volume de dados e normalmente são executados em um período diferente do horário comercial – durante a madrugada por exemplo. Diversos fatores relacionados às áreas de negócio destas empresas justificam essa necessidade, como a integração com outros sistemas, sumarização de operações financeiras realizadas durante o dia, ou mesmo limpezas periódicas.
A versão mais recente da Java Enterprise Edition (Java EE 7) incluiu a JSR 352 (Batch Applications for the Java Platform), uma biblioteca para desenvolvimento de processos em lote de forma fácil e padronizada. Esta API permite definir, executar e acompanhar processos batch em um container compatível como o GlassFish 4.
Neste artigo, iremos implementar um processo batch para simular o fechamento de faturas de um sistema bancário, o FaturaWeb. O processo será composto por algumas etapas como conversão de valores em dólar e totalização dos lançamentos para uma fatura. Para isso, usaremos algumas das funcionalidades básicas da API, como a definição de uma tarefa e seus componentes, assim como o disparo e acompanhamento do processo como um todo.
Necessidades e problemas de processos em lote
Para compreendermos as vantagens desta API da forma como foi proposta, é importante avaliarmos os problemas inerentes de processos batch. Esta reflexão é essencial para sabermos como lidar melhor com este tipo de operação.
Um processo em lote, como já foi dito, é caracterizado por não necessitar de interação com o usuário, podendo ser executado de forma assíncrona. Uma operação assíncrona não exige que o componente chamador espere o término da execução para prosseguir com o restante das instruções. Desta forma, uma operação assíncrona pode realizar um processamento demorado sem que isto impacte a experiência do usuário, pois o mesmo não ficará “travado” esperando a resposta da operação. Além disso, ao contrário do caso síncrono, a partir do momento em que o usuário requisita ou agenda a execução de um processo em lote, o mesmo perde o contato direto com a execução deste, dificultando o acompanhamento e a administração da tarefa.
No entanto, por serem assíncronos e normalmente demorados, é importante permitir que o usuá ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.