Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Balanceamento entre Smart Client desktop e servidor Protheus

Neste caso cenário um servidor Protheus é configurado como proxy entre um Smart Client vários smart clients desktop e um servidor vários servidores Protheus rodando o ERP. Além do servidor Protheus que funciona como proxy é necessária a utilização de um utilitário adicional chamado "Totvs Broker Client", que funciona como forwarding proxy ao qual o Smart Client se conecta. O Totvs Broker Client é utilizado como uma biblioteca, atendendo ao Smart Client cujo binário está localizado na mesma pasta onde está localizada esta biblioteca. (Obs. : Smart Client "desktop" refere-se ao Smart Client usado como uma aplicação normal do sistema, e não ao Smart Client acessado através de uma página web no navegador de internet.) É importante notar que o servidor Protheus configurado como proxy terá apenas esta função, isto é, não será usado para rodar o ERP. Informalmente, chamamos o proxy Protheus como "broker server" e o aplicativo Totvs Broker Client como "broker client", e estes serão os termos utilizados neste documento.

Image Removed

Este servidor Protheus configurado como proxy é chamado de broker.

                    +--------------+                                    +--------------+
| smart client-|--------+ +--------| ERP Protheus |
+--------------+ | | +--------------+
... | | ...
+--------------+ | +--------+ | +--------------+
| smart client |--------+----| broker |----+--------| ERP Protheus |
+--------------+ | +--------+ | +--------------+
... | | ...
+--------------+ | | +--------------+
| smart client |--------+ +--------| ERP Protheus |
+--------------+ +--------------+


Uso do broker torna mais resiliente a comunicação entre smart clients e servidores Protheus. Quando ocorrem problemas de comunicação entre o smart client e o broker, o smart client tenta restabelecer a conexão com o broker por algum tempo (por padrão 180 segundos). Caso a conexão seja restabelecida, o usuário poderá continuar a trabalhar normalmente, sem necessidade de fazer novo login no servidor Protheus.

Uso do broker em conexões seguras. O broker pode ser utilizado mesmo em conexões seguras configuradas entre o smart client e os servidores ProtheusUma característica interessante deste caso é que a conexão entre o cliente e o servidor se torna mais resiliente, isto é, resistente a pequenas interrupções. Isto é conseguido porque tanto o broker server (Protheus utilizado como proxy) como o broker client (Totvs Broker Client) fazem um cache das últimas mensagens de comunicação trocadas entre si. Quando a conexão é perdida o broker client continua tentando por algum tempo retomar a conexão com o broker server. Após a retomada da conexão, se houve alguma mensagem perdida em qualquer direção ela é reenviada, e a comunicação continua ocorrendo normalmente, sem que o Smart Client ou o ERP Protheus percebam que houve queda na comunicação.
Outro ponto interessante é que esta solução pode ser utilizada mesmo quando o Smart Client esteja se comunicando com o Protheus ERP através de uma conexão segura (SSL), porque tanto o broker client quanto o broker server não examinam o conteúdo das mensagens que passam por eles.

Importante: Nunca deve se configurar o Protheus Master como uma das estações (um dos servidores Protheus ERP) que irão receber conexões pelo Brokerbroker, pois o seu mecanismo de balanceamento é excludente ao do Brokerdo Protheus Master é incompatível com o broker.

Quando se utiliza o proxy client são necessários 2 arquivos de configuração, um para o Smart Client e um para o broker server: smartclient.ini (Smart Client) e appserver.ini (broker server Protheus). No arquivo de configuração do Protheus ERP não existe alteraçãoPara se utilizar o broker é necessário configurar tanto o arquivo smartclient.ini do smart client, quanto um novo arquivo appserver.ini específico para o broker. Não é necessário alterar o arquivo de configuração (appserver.ini) dos servidores Protheus.

Num exemplo hipotético, vamos supor que o servidor Protheus ERP esteja atendendo nos endereços 172.16.50.42:5000172.16.50.42:5001 e 172.16.50.42:5002, e o broker server esteja atendendo no endereço 172.16.50.42:4000.

Note que Neste cenário os servidores Protheus ERP e o broker server Protheus estão na mesma máquina. É uma configuração típicacomum, mas não existe restrição alguma por parte do broker client ou do broker server que eles estejam na mesma máquinaobrigatória. Em princípio o broker pode estar em execução qualquer máquina na rede, desde que haja rotas (na rede) entre os smart clients e o broker, e entre o broker e os servidores Protheus.

Abaixo, um exemplo de configuração possível para este cenário:

Bloco de código
languagetext
firstline1
titleappserver.ini
linenumberstrue
[GENERAL]
CONSOLELOG=1

[BALANCE_SMART_CLIENT_DESKTOP]

; porta onde este broker server atende pedidos de conexão dos broker clients
LOCAL_SERVER_PORT = 4000

; hostname ou endereço ip, e porta TCP dos servidores Protheus ERP que serão destino
; das conexões vindas dos broker clients
REMOTE_SERVER_01 = 172.16.50.42 5000
REMOTE_SERVER_02 = 172.16.50.42 5001
REMOTE_SERVER_03 = 172.16.50.42 5002
; etc
; esta chave 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, pode ser qualquer nome que não contenha espaços
; só tem importância se o broker server for instalado como um serviço Window
SERVICE_NAME = XXX_TOTVS_BALANCE_SC_001

; (opcional, disponível a partir de 01/dez/2017)
; "display name" do serviço Windows
SERVICE_DISPLAY_NAME = "BROKER SERVICE" 


O broker client é utilizado como uma biblioteca não é necessário um arquivo de configuração específico. Uma seção no No arquivo de configuração do Smart Client (smartclient.ini) deve-se indicar o hostname ou endereço IP do broker server, a porta do broker server, e a opção chave "BrokerProxy=1"

Bloco de código
languagetext
firstline1
titlesmartclient.ini
linenumberstrue
; ------------------------

[config]
lastmainprog=...
envserver=...

; outras configurações

; ---------------------

[sem_broker]
; para conexão direta do Smart Client com um ERP específico,
; ou usando o esquema de Protheus Master e Protheus Slave
server=...
port=...

; ---------------------

[com_broker]

; para conexão Smart Client com o ERP via broker client
; rodando na mesma máquina do Smart Client

; máquina onde o *broker server* está rodando
server=172.16.50.42

; porta onde o *broker server* está atendendo
port=4000

; importante!!!
BrokerProxy = 1

; ---------------------

[drivers]
; opção ativa: conexão via proxy
active=com_broker

; ------------------------
; obs.: os nomes "com_broker" e "sem_broker" não possuem qualquer
; significado intrínseco, qualquer nome poderia ser utilizado,
; por exemplo "AAA" e "BBB"
; ------------------------

Obs. No SmartClient smart client é necessário ter a biblioteca totvsbrokercg para totvsbrokercg para a conexão resiliente com o Broker Server.

...

Biblioteca para Linux 32 bits: libtotvsbrokercg-2.1.11b1

Obs. A partir da versão 17.3.0.0 do smart client estes arquivos (.dll ou .so) não são mais necessários.