Páginas filhas
  • Grid de processamento AdvPL - Configuração

Grid de processamento AdvPL - Configuração

Este artigo contém instruções de configuração de ambiente.

 

Abrangência
ERP 10 e 11



Grid
de processamento é um ambiente preparado para executar processos utilizando mais de um servidor simultaneamente. O aplicativo e/ou programa responsável pelo processo é desenhado para executar frações independentes deste processo, que são distribuídas para outros servidores e executados em paralelo.

   

Grid de processamento AdvPL 

O Grid de processamento AdvPL é um componente integrado ao framework da linguagem AdvPL, que oferece infraestrutura para execução de processos especialistas distribuídos, responsável pelo controle de distribuição otimizada de requisições de processamento e tratamento de exceções.

Atualmente, este recurso está na fase piloto de implementação, ou seja, determinados processos do ERP – Enterprise Resource Planning Microsiga Protheus atendem aos critérios de paralelismo e aderência às condições de uso em Grid, onde tais processos podem ser parametrizados para uso da infraestrutura do Grid de processamento AdvPL.

Para executar esses processos, inicialmente, é necessário partir de um ambiente já configurado para balanceamento de carga (Load Balance), no qual existe mais de um serviço para o TOTVS | Application Server em execução em um ou mais servidores.  Para isso, deve-se criar um serviço adicional para gerenciar os processos em Grid, chamado de GridServer ou Coordinator, e na etapa seguinte os serviços slave do TOTVS | Application Server já em uso para balanceamento de conexões remotas, devem ser configurados para atuarem também como agentes de processamento de Grid

Configuração do GridServer – Coordenador de Processos Distribuídos

Trata-se de um TOTVS | Application Server configurado para execução exclusiva do processo (JOB) de controle de distribuição de agentes e processos em Grid (GridServer). Não deve ser um serviço que execute outras aplicações ou JOBS, inclusive não deve ser colocado na lista de servidores de balanceamento de carga.

Para realizar a configuração, é necessário criar o serviço GridServer. Este serviço pode ser configurado em qualquer máquina da infraestrutura do cliente, desde que todos os serviços do TOTVS | Application Server enxerguem essa máquina e vice-versa.

Exemplo:

[OnStart]
Jobs=GridServer
RefreshRate=60

[GridServer]
Main=GridServer
Environment=EnvName
 
Observações
  •   O job GridServer deve ser especificado na seção [OnStart], do serviço, e chamar a função de gerenciamento GridServer.
  • O GridServer deve ser configurado exclusivamente para um ambiente (environment).

   

Configuração do(s) GridAgent(s) – Agente Executor de Processos

A partir de um ambiente que tenha mais de um serviço do TOTVS | Application Server em um ou mais servidores, já configurados para balanceamento de carga, e após já ter configurado o GridServer para o ambiente, é necessário criar a configuração da seção [GridAgent] para um serviço slave, para o mesmo ambiente (environment) utilizado no GridServer. E, replicar essa configuração em todas as configurações de slaves para balanceamento de carga.

Exemplo

[OnStart]
Jobs=GridAgent
RefreshRate=15

[GridAgent]
Main=GridAgent
AgentIp=
Instances=
Environment=
CoordServer=
Importante
JOB GridAgent, deve ser inserido na seção [OnStart], de cada slave, e a chave RefreshRate configurada para 15 segundos. Definindo assim um intervalo de tempo para o serviço verificar a quantidade de processos de agente on-line.

A princípio, a única alteração destas configurações, que terá variação entres os serviços slave, será a chave AgentIp (em negrito), onde deve-se indicar o endereço IP sob o qual o serviço atual está atendendo as conexões das aplicações TOTVS | SmartClient e, eventualmente, a configuração Instances, onde será informado para o serviço atual quantos processos/threads serão colocados no ar para uso pelo Grid.

IMPORTANTE: Não utilize "localhost" nesta configuração, pois isto obrigaria ao serviço de coordinator e todos os demais agentes e clientes do grid a estar na mesma máquina. Esta configuração do agente precisa informar o IP da máquina onde este serviço está sendo executado, pois o coordinator vai usar esta informação para avisar aos processos client do Grid quais agentes foram alocados para ele.

São muitos os fatores limitantes que influenciam na decisão de quantos processos podem ser inseridos para cada Agente no ambiente de Grid. Desta forma, configurar um número alto de instâncias por agente pode degradar a performance do ambiente inteiro ou atingir os limites de infraestrutura em uso, como por exemplo a CPU da máquina de banco de dados e/ou o tráfego de rede entres os servidores, prejudicando a performance de todos os usuários conectados no ambiente.

Desta forma, inicialmente, deve-se configurar apenas uma instância, ou no máximo duas instâncias do processo Agente para cada serviço slave do TOTVS | Application Server para então executar um programa que utilize a infraestrutura do Grid e verificar se com esses parâmetros não foi criado nenhum gargalo na infraestrutura (utilização de CPUs a 100%, verificando inclusive na máquina de Banco de Dados x TOTVS | DBAccess, e na máquina Master (c-tree Server, TOTVS | License Server e afins).

Não havendo perda significativa de performance constatada na aplicação, e havendo sobra de recursos para este processo, pode-se aumentar em uma unidade as instâncias para os Agentes e refazer o teste.

Informações Adicionais

  • Consumo de licenças    

O grid de processamento AdvPL, é um componente do Framework AdvPL, que provê uma camada de controle para distribuição de processamentos. O consumo de licenças para os processos do Grid depende da implementação da funcionalidade do ERP codificada pela equipe de desenvolvimento de produto para utilizar o Grid. Por exemplo, o cálculo de folha de pagamento é um processo que pode ser executado em Grid. Para saber as regras de consumo do cálculo da folha de pagamento em Grid, deve ser aberto um chamado para direcionar este questionamento ao time de desenvolvimento do módulo SIGAGPE.

  • Sem rótulos