Aplicativos em lote são aplicativos J2EE (Java 2 Platform Enterprise Edition) baseados em EJBs (Enterprise JavaBeans). Esses aplicativos estão em conformidade com algumas interfaces bem definidas que permitem que o ambiente de tempo de execução em lote gerencie o início de tarefas em lote destinadas ao aplicativo. A construção de um aplicativo em lote baseado em POJO é o método preferido para se construir um aplicativo em lote.
Uma tarefa em lote pode ser composta por uma ou mais etapas em lote. Todas as etapas de uma tarefa são processadas em seqüência. Dividir um aplicativo em lote em etapas permite a separação de tarefas distintas em uma aplicação em lote. Uma etapa em lote é implementada como um bean de entidade container-managed persistence local que utiliza interfaces chave, de negócios e home fornecidas pelo WebSphere Extended Deployment. A interface de negócios, com.ibm.websphere.batch.BatchJobStepLocalInterface, do EJB de uma etapa em lote fornece métodos que o ambiente de tempo de execução em lote chama para controlar um aplicativo em lote.
Você pode enviar planejamentos de tarefas para que as tarefas sejam processadas em um determinado momento. Também pode configurar planejamentos de tarefas para que uma tarefa volte a ocorrer em um período específico do dia ou da semana, etc. Quando estiver pronto para enviar uma tarefa, poderá optar por atrasar seu envio especificando a data e hora de início de quando deseja executar a tarefa.
Nesse descritor de implementação, uma aplicação em batch é necessário para declarar um bean de sessão sem preservação de estado especial. Esse bean atua como um controlador de tarefa em lote e deve conter referências do enterprise bean para todos os enterprise beans da etapa em lote que estão sendo utilizados no aplicativo em lote. A implementação desse bean é fornecida pelo WebSphere Extended Deployment, não pelo aplicativo em lote. O bean precisa apenas ser declarado no descritor de implementação do aplicativo em lote. Apenas um bean do controlador pode ser definido por aplicativo em lote.
Uma etapa em lote pode ter zero ou mais BDSs (fluxos de dados em lote) associados a ela. Um BDS é uma classe Java que implementa a interface com.ibm.websphere.batch.BatchDataStream. Um BDS é um objeto Java que lê o fluxo de entrada que contém os dados a serem processados por uma etapa em lote. Um BDS também pode ser um fluxo de saída que grava os dados em vez de lê-los.
Os métodos na interface BatchDataStream permitem que o ambiente de tempo de execução em lote gerencie o fluxo de dados que está sendo utilizado por uma etapa em lote. Por exemplo, um dos métodos recupera as informações atuais do cursor do fluxo para acompanhar quantos dados foram processados pela etapa do batch.
O ambiente de tempo de execução em lote utiliza algoritmos de ponto de verificação para decidir com que freqüência confirmar transações globais sob as quais as etapas em lote serão chamadas. A definição xJCL (XML Job Control Language) de uma tarefa em lote define os algoritmos de ponto de verificação a serem utilizados. As propriedades especificadas para os algoritmos de ponto de verificação no xJCL permitem que o comportamento do ponto de verificação, como tempos limites da transação e intervalos do ponto de verificação, seja customizado para etapas em lote. O WebSphere Extended Deployment fornece algoritmos de ponto de verificação baseados em tempo e baseados em registro. Um SPI de algoritmo de ponto de verificação também é fornecido para construir algoritmos adicionais e customizados de ponto de verificação.
Um aplicativo em lote é compactado como um aplicativo J2EE (Java 2 Platform Enterprise Edition) EJB padrão dentro de um arquivo J2EE EAR (Enterprise Archive). É necessário compactar os enterprise beans de entidade da etapa em lote e as classes de fluxo de dados em lote que as etapas em lote precisam compactar com o aplicativo. O bean do controlador da tarefa em lote também precisa ser declarado no descritor de implementação do enterprise bean de cada aplicativo em lote. Utilize as ferramentas de desenvolvimento J2EE padrão para desenvolver e compactar o arquivo EAR do aplicativo em lote.
Os algoritmos de resultados são um recurso opcional do modelo de programação de batch. Os algoritmos de resultados são aplicados a etapas em lote através do XML Job Control Language (xJCL). Os algoritmos são utilizados para manipular os códigos de retorno das tarefas em lote. Além disso, eles atuam como marcadores para acionadores baseados em códigos de retorno da etapa.
Os códigos de retorno de tarefa em lote são divididos em dois grupos denominados sistema e usuário. Os códigos de retorno de sistema são definidos como números inteiros negativos. Os códigos de retorno de aplicativo de usuário são definidos como números inteiros positivos. Os dois intervalos, sistema e usuário, incluem o código de retorno zero (0). Se um código de retorno de aplicativo de usuário estiver especificado no intervalo do código de retorno de sistema, uma mensagem de aviso será postada nos logs de tarefa e de sistema.