Balanceamento entre cliente Web Services e servidor Protheus
O servidor Protheus pode ser utilizado como um proxy transparente de balanceamento para acesso de clientes de web services a um servidor Protheus ERP.
Além do balanceamento das conexões pode ser feito um controle do número máximo de pedidos simultâneos de web services que serão repassados a um servidor Protheus ERP. Quando este limite for atingido o servidor Protheus ERP em questão não mais participará do balanceamento de conexões (não serão mais repassadas conexões para esse servidor). Se todos os servidores Protheus ERP já estiverem no limite então um novo pedido de web services que chegar será colocado em uma fila, esperando que um dos servidores Protheus ERP se torne novamente disponível (isto é, que o número de pedidos de web services sendo atendidos simultaneamente fique novamente abaixo do máximo configurado). Essa espera tem um tempo configurável, com valor inicial de 15 segundos. Após esse tempo, se o pedido de web services não for atendido então sua conexão será fechada pelo proxy de balanceamento (isto é, vai ocorrer uma falha no cliente de web services). Caso o número máximo de pedido de web services para um servidor Protheus ERP não seja configurado então não haverá limitação no número de pedido simultâneos de web services que serão repassados pelo proxy de balanceamento a esse servidor Protheus ERP.
Exemplo de arquivo de configuração:
[GENERAL] CONSOLELOG=1 [BALANCE_WEB_SERVICES] ; porta de atendimento aos clientes de web services LOCAL_SERVER_PORT = 4001 ; hostnames e endereços ip, porta TCP e número máximo de conexões ; dos servidores Protheus atendendo web services ; atende no máximo 5 pedidos simultâneos de web services REMOTE_SERVER_01 = 172.16.50.171 8098 5 ; atende no máximo 10 pedidos simultâneos de web services REMOTE_SERVER_02 = 172.16.50.172 8098 10 ; nao tem limite de pedidos simultâneos de web services REMOTE_SERVER_03 = 172.16.50.173 8098 ; etc ; a chave REMOTE_SERVER_xx aceita letras e números para identificar servidores, ; por exemplo REMOTE_SERVER_0A, REMOTE_SERVER_XY, etc, e as chaves ; podem estar em qualquer ordem ; nome do serviço Windows, caso seja utilizado ; (não pode conter espaços) SERVICE_NAME=XXX_TOTVS_BALANCE_WS_001 ; (opcional, disponível a partir de 01/dez/2017) ; "display name" do serviço Windows SERVICE_DISPLAY_NAME = "BROKER SERVICE"
Importante: Além da configuração acima referente ao broker server (Protheus rodando como proxy de balanceamento de web services) é necessário especificar no arquivo de configurações do Protheus ERP as instâncias de web services que serão recebidas através do broker server. As definições de web services devem ser repetidas, substituindo o hostname (ou endereço ip) e porta originais pelo hostname (ou endereço ip) e porta do broker server.
Exemplo de arquivo de configuração do Protheus ERP:
... ... ... ; definição original do web service [172.16.50.171:8098/WS] ENABLE = 1 PATH = c:\protheus\protheus12\protheus_data\webservices\web ENVIRONMENT = ENV_WEB_SERVICES INSTANCENAME = WS_TESTE RESPONSEJOB = JOB_WS DEFAULTPAGE = wsindex.apw ; definição do mesmo web service para uso com broker server ; assume que broker server está rodando na mesma máquina mas em outra porta [172.16.50.171:4001/WS] ENABLE = 1 PATH = c:\protheus\protheus12\protheus_data\webservices\web ENVIRONMENT = ENV_WEB_SERVICES INSTANCENAME = WS_TESTE RESPONSEJOB = JOB_WS DEFAULTPAGE = wsindex.apw ... ... ...
Com o arquivo de configuração acima o web service que normalmente é acessado através da url http://172.16.50.171:8098/WS
também estará disponível através do broker server através da url http://172.16.50.171:4001/WS
(assumindo neste exemplo que o Proxy ERP e o broker server estão instalados na mesma máquina).
Veja também: