Muitos clientes já utilizam um planejador de carga de trabalho externo para gerenciar cargas de trabalho em lote no z/OS. Embora o lote Java executado em um ambiente do WebSphere Application Server seja atrativo, uma maneira de controlar as tarefas do WebSphere Compute Grid por meio de um planejador de carga de trabalho externo é importante.
Compute Grid é um componente do WebSphere Extended Deployment Versão 6.1 que fornece uma solução de programação corporativa em lote Java completa. Ele inclui um modelo de programação conciso, porém eficiente, baseado no POJO (Plain Old Java Object), um modelo de compactação e implementação simples, uma linguagem de controle de tarefa com recursos completos, um planejador de tarefa sofisticado, um ambiente de execução robusto e ferramentas administrativas e de gerenciamento de carga de trabalho abrangentes. Todos esses elementos se combinam para tornar o WebSphere Extended Deployment Compute Grid a solução em lote Java mais completa disponível atualmente.
Como mostra a imagem a seguir, uma tarefa em lote é uma série de programas executados em segundo plano sob controle de um gerenciador de tarefa. Cada programa consume zero, uma ou mais origens de dados de entrada e produz zero, um ou mais depósitos de dados de saída. O sistema operacional z/OS é um exemplo de ambiente de processamento de tarefa em lote perfeitamente desenvolvido. O WebSphere Extended Deployment Compute Grid generaliza esse modelo de processamento, tornando-o disponível em um ambiente do WebSphere/J2EE (Java 2 Enterprise Edition).
Um aplicativo do WebSphere Extended Deployment Compute Grid é uma classe POJO que implementa uma interface em lote e é chamado pelo contêiner de lote do WebSphere Extended Deployment. Ele possui acesso aos serviços do contêiner que expõem BDSs (fluxos de dados em lote), que representam origens e depósitos de dados. Normalmente, o objetivo desse aplicativo é executar operações em massa em um grande conjunto de registros. Uma definição de tarefa descreve uma série de etapas, em que cada uma chama um POJO em lote. A definição de tarefa descreve a ordem de execução das etapas e os fluxos de dados em lote que são entradas/saídas e utilizados pelas etapas.
Uma tarefa do Compute Grid é executada dentro de um WebSphere Application Server em um contêiner especial chamado contêiner de lote, conforme mostrado na imagem a seguir:
A definição de tarefa é descrita por um arquivo xJCL especial, que é uma linguagem de controle de tarefa baseada em XML. Um arquivo xJCL é enviado para o planejador de tarefa do WebSphere Extended Deployment que, em seguida, despacha a tarefa representada por esse arquivo xJCL para um WebSphere Application Server que hospeda os POJOs que compreendem o aplicativo de destino. Dentro do WebSphere Application Server, o contêiner do lote cria um encadeamento gerenciado, denominado bean assíncrono, para processar a tarefa. O bean assíncrono processa a tarefa chamando o POJO identificado pelas etapas de tarefas, iniciando com a primeira etapa, depois a segunda, e assim por diante. O POJO chamado pelas etapas possui acesso aos fluxos de dados em lote de entrada e saída descritos pela definição de tarefa (o arquivo xJCL).
O POJO processa, normalmente, vários registros de entrada e produz vários registros de saída. Como o POJO é executado dentro do WebSphere Application Server, ele possui acesso completo ao modelo de programação J2EE e a todos os serviços do WebSphere Application Server, como o gerenciamento de transação e conexão. Ele pode chamar outros serviços da Web e do J2EE localmente para melhorar a eficiência.
Como um planejador externo não sabe como gerenciar diretamente as tarefas do WebSphere Extended Deployment, é utilizado um modelo de proxy. O modelo de proxy utiliza uma tarefa JCL regular para enviar e/ou monitorar a tarefa do WebSphere Extended Deployment. A etapa da tarefa JCL chama um programa especial fornecido pelo WebSphere Extended Deployment denominado WSGRID. O aplicativo WSGRID envia e monitora uma tarefa especificada do WebSphere Extended Deployment. O WSGRID grava resultados intermediários da tarefa no log de tarefa da tarefa JCL. O WSGRID não retorna até que a tarefa subjacente esteja concluída, fornecendo, assim, um modelo de execução síncrona. Como o planejador externo pode gerenciar tarefas JCL, ele pode gerenciar uma tarefa JCL que chama o WSGRID. Utilizando esse padrão, o planejador externo pode gerenciar indiretamente uma tarefa. Uma interface de plug-in opcional no planejador de tarefa permite que um usuário inclua código que atualiza a operação de planejador externo para refletir o estado exclusivo da tarefa subjacente, como tarefa iniciada, etapa iniciada, etapa encerrada, tarefa encerrada. O programa WSGRID é gravado com processamento de recuperação especial para que, se a tarefa JCL for cancelada, a tarefa subjacente também seja cancelada, garantindo, assim, ciclo de vida sincronizado das duas tarefas.
O controle de tarefa para plataformas distribuídas é semelhante, conforme mostrado no seguinte diagrama, com a exceção de que o Job Entry Subsystem (JES) não é necessário para as plataformas distribuídas.
Muitos clientes já usam o TWS para gerenciar cargas de trabalho em lote na plataforma z/OS. Embora o lote Java executado em um ambiente do WebSphere Application Server seja atrativo, uma maneira de controlar as tarefas do WebSphere Extended Deployment Compute Grid por meio do TWS é necessária. Como o TWS não sabe como gerenciar diretamente as tarefas do WebSphere Extended Deployment, um modelo de proxy é usado. O modelo de proxy usa uma tarefa JCL regular para enviar/monitorar a tarefa do WebSphere Extended Deployment. A etapa da tarefa JCL invoca um programa especial fornecido pelo WebSphere Extended Deployment, denominado utilitário WSGrid. Consulte o O Utilitário de Linha de Comandos WSGrid .
O aplicativo WSGrid envia e monitora uma tarefa especificada do WebSphere Extended Deployment. O WSGrid grava resultados intermediários da tarefa do WebSphere Extended Deployment no log de tarefa da tarefa JCL. O WSGrid não retorna até que a tarefa subjacente do WebSphere Extended Deployment esteja concluída, com isso, fornecendo um modelo de execução síncrona. Como o TWS pode gerenciar tarefas JCL, ele pode gerenciar uma tarefa JCL que invoca o WSGrid. Usando esse padrão, o TWS pode gerenciar indiretamente uma tarefa do WebSphere Extended Deployment.
Uma interface de plug-in opcional no planejador de tarefa do WebSphere Extended Deployment permite que um usuário inclua código que atualiza o plano de operação do TWS para refletir o estado exclusivo da tarefa subjacente do WebSphere Extended Deployment, como tarefa iniciada, etapa iniciada, etapa encerrada, tarefa encerrada. O programa WSGrid é gravado com processamento de recuperação especial para que, se a tarefa JCL for cancelada, a tarefa subjacente do WebSphere Extended Deployment também seja cancelada, garantindo assim, o ciclo de vida sincronizado das duas tarefas.