Histórico da Página
Balanceamento entre
...
SmartClient Desktop e servidor Inclusão de trecho Application Server Application Server nopanel true
Application Server | |
Application Server | |
nopanel | true |
Neste cenário um
Neste caso um servidor Protheus é configurado como proxy entre um Smart Client desktop e um servidor 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 vários SmartClient Desktop e vários servidores Inclusão de trecho Application Server Application Server nopanel true
executando o ERP. É importante notar que o Inclusão de trecho Application Server Application Server nopanel true
configurado como proxy terá apenas esta função, isto é, não será usado para rodar executar 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. Inclusão de trecho Application Server Application Server nopanel true
Este
configurado como proxy é chamado de broker. Inclusão de trecho Application Server Application Server nopanel true
+--------------+ +--------------+
| smartclient -|--------+ +--------| ERP |
+--------------+ | | +--------------+
... | | ...
+--------------+ | +--------+ | +--------------+
| smartclient |--------+----| broker |----+--------| ERP |
+--------------+ | +--------+ | +--------------+
... | | ...
+--------------+ | | +--------------+
| smartclient |--------+ +--------| ERP |
+--------------+ +--------------+
Uso do broker torna mais resiliente a comunicação entre smartclients e
. Quando ocorrem problemas de comunicação entre o smartclient e o broker, o smartclient 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 ERP que está sendo utilizado. Inclusão de trecho Application Server Application Server nopanel true
Uso do broker em conexões seguras. O broker pode ser utilizado mesmo em conexões seguras configuradas entre o smartclient e os
Uma 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. Inclusão de trecho Application Server Application Server nopanel true
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 (servidores Protheus ERP)
Master como um dos servidores de ERP que irão receber conexões pelo Brokerbroker, pois o seu mecanismo de balanceamento é excludente ao do Broker.do Inclusão de trecho Application Server Application Server nopanel true
Master é incompatível com o broker. Inclusão de trecho Application Server Application Server nopanel true
Para se utilizar o broker é necessário configurar tanto o arquivo smartclient.ini do smartclient, 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 ERPQuando 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ção.
Num exemplo hipotético, vamos supor que o Protheus servidor ERP esteja atendendo nos endereços 172.16.50.42:5000
, 172.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 smartclients e o broker, e entre o broker e os servidores
. Inclusão de trecho Application Server Application Server nopanel true
Abaixo, um exemplo de configuração possível para este cenário:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[GENERAL] CONSOLELOG=1; configuracao recomendada para gravação de log ConsoleLog=1 ConsoleLogDate = 0 [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" ; IMPORTANTE ; as linhas que contem um nome de chave não devem conter um ";" de comentário ; dependendo do caso, as linhas com chave e ";" podem não reconhecidas como válidas |
No arquivo de configuração do SmartClient O broker client é utilizado como uma biblioteca não é necessário um arquivo de configuração específico. Uma seção 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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
; ------------------------ [config] lastmainprog=... envserver=... ; outras configurações ; --------------------- [sem_broker] ; para conexão direta do Smart ClientSmartClient com um ERP específico, ; ou usando o esquema de Protheus Master e Protheus SlaveLoadBalance server=... port=... ; --------------------- [com_broker] ; para conexão SmartSmartClient 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 é necessário ter a biblioteca totvsbrokercg para a conexão resiliente com o Broker Server.
Biblioteca para Windows 32 bits: totvsbrokercg-2.1.11b1
.: A partir da versão 20.3.0.4 do binário do Application Server é possível utilizar o SmartClient via Broker com a chave BrokerProxy desabilitada (ou inexistente) no arquivo smartclient.ini. Neste caso, o SmartClient comporta-se como se não estivesse usando o Broker, isto é, não vai haver recuperação de conexões caso ocorra interrupção na rede. E também neste caso esta conexão do SmartClient não será contabilizada na tela de status do Broker. Esta alteração no comportamento foi necessária para permitir o uso da interface PO-UI no SmartClient com Broker e conexões encriptadas. Este cenário (uso de interface PO-UI no SmartClient com Broker e conexões encriptadas) está disponível a partir da versão 20.3.0.2 do SmartClient.
Para mais informações sobre a interface PO-UI consultar a página Nova interface do Protheus com PO UI.
--- //---Biblioteca para Linux 32 bits: totvsbrokercg-2.1.11b1