SORGES / SORGES LIGHT – Sincronizando Servidores

Neste artigo aprenderemos a usar a função de sincronização de servidores. O vídeo contém uma explicação resumida, mais visual, enquanto no texto do artigo abaixo procuro explicar em mais detalhes.

Antes de entender a função em si é preciso saber pelo menos o básico do acesso a dados. o SORGES é um software que oferece cadastros, consultas, estatísticas e relatórios. Para organizar isso as informações são salvas num arquivo estruturado, o banco de dados. Existem vários bancos de dados no mercado, nosso software utiliza o Firebird.

Se você usa o software num só computador, terá um banco de dados nele, e ele será considerado um “servidor”. Se você usa o programa em rede, em vários computadores, terá um computador com o banco de dados (o servidor), e os demais computadores da rede sem banco de dados, os clientes ou terminais, como preferir chamar. Estes terminais conectam-se ao servidor para acessar o banco de dados. Desta forma, se você inclui uma informação num terminal (ou no servidor mesmo), todos os computadores da rede terão acesso a aquela informação instantaneamente.

A vantagem de usar o programa desta forma é que as informações são trocadas em rede instantaneamente. O cliente passou lá no balcão, ao chegar no caixa a venda dele está lá, pronta para ser finalizada. Um usuário acabou de fechar uma venda lá num terminal, ela já aparece nas estatísticas de qualquer computador.

Por outro lado, a desvantagem é que se o servidor for removido da rede, o programa para de funcionar em todos os computadores. Se você precisa levar o computador para casa, ou mesmo se ele queimou ou deu defeito, isso pode acontecer. É aí que entra a sincronização de servidores, recurso que desenvolvemos e que explicaremos a seguir. Porém ela também não é só maravilhas e tem os seus defeitos. Neste artigo abordaremos tudo.

ENTENDENDO A FUNÇÃO

Acima vimos que numa rede você terá um servidor e vários terminais. Mas que se o servidor sair da rede todos param. Para resolver isso uma alternativa seria você ter mais de um servidor. Porém, os servidores normalmente não se comunicam uns com os outros. Diferente dos terminais, cada servidor tem seu banco de dados totalmente independente, e manipula só o seu banco de dados.

A função de sincronização de servidores é um recurso que desenvolvemos e permite que eles fiquem trocando informações entre si. Ou seja, um cadastro que fez no SERVIDOR A pode ir parar também no SERVIDOR B, e vice versa, assim como ocorreria se um fosse terminal do outro. O sistema não sincroniza 100% a base de dados. As configurações não entram na sincronização para permitir que cada servidor tenha a sua. E os logs também não entram, para não sobrecarregar a rotina. Porém todo o resto entra na sincronização, incluindo os cadastros e o movimento da empresa.

Para configurar a função você deve usar a mesma lógica da instalação em rede. Precisa eleger um computador que será o “servidor principal” da rede, o os outros serão “servidores secundários”. Isso porque a comunicação é bidirecional, ou seja, o servidor secundário envia e recebe os dados do servidor principal, e o servidor principal não precisa fazer nada. Tomando o exemplo acima, poderíamos configurar a função apenas no SERVIDOR B, e isso já faria com que ele e o SERVIDOR A fiquem com os mesmos dados.

REQUISITOS

Para a função funcionar é preciso atender a estes requisitos:

  • Se você tem um balcão de atendimento, os computadores do balcão e dos caixas precisam todos estarem conectados a um mesmo servidor. Ou seja, você precisa ter a estrutura clássica de rede, com um servidor e os terminais. Isso porque sincronização demora um pouco, e pode ocasionar muitos erros, como valores divergentes nas comandas, ou mesmo comandas que foram lançadas no balcão e ainda não apareceram no caixa;
  • Os servidores principal e secundários precisam estar em rede. Não precisam ficar o tempo todo em rede, mas em algum momento devem ser conectados para que a sincronização role e deixe as bases de dados iguais;
  • Ao inserir um novo servidor secundário na rede, marque a opção para sincronizar tudo quando configurar a sincronização. Isso fará ele receber a base toda do servidor com o qual será sincronizado;
  • Evite copiar a base de um servidor para outro. Cada base tem um identificador único, que ajuda a identificá-la. Procure fazer a instalação do zero e obter todos os dados na base de dados via sincronização, mesmo que a primeira sincronização demore;
  • Todos os servidores tem que estar com licença ativada. Ou seja, precisa comprar a licença de cada um deles, e precisa ativa ela;
  • Todos os computadores devem estar usando a mesma versão do sistema. Por exemplo, não pode ter um servidor na versão 300 e outro na 350;
  • Todos os computadores devem usar a mesma edição do sistema. Ou seja, não pode ter um computador usando o SORGES e outro usando o SORGES LIGHT, e tentar sincronizar os dois.

PRÓS E CONTRAS

O principal pró deste recurso é a independência entre os computadores. Você pode levar um deles para casa, um vendedor pode levar para rua, ou mesmo um deles pode ficar como segurança para casa o servidor principal pare.

Porém, a função tem seus contras, e o principal é o fato de a sincronização não ser em tempo real. Isso pode ocasionar vários problemas:

  • Se duas pessoas mexem no mesmo cadastro antes da sincronização rolar, somente as alterações feitas por uma delas prevalecerão. Isso porque a sincronização não atualiza campos específicos, ela atualiza o cadastro inteiro. Então o cadastro de um computador vai sobrescrever totalmente o do outro;
  • Se há um balcão de atendimento e o caixa está num servidor diferente dele, pode ocorrer do atendente lançar uma comanda no balcão e ela não aparecer no caixa a tempo. Além disso, pode acontecer também de o valor da comanda ficar errado durante sincronização;
  • Esse problema acima aliás vai afetar outros módulos do sistema. Módulos que tem listas com soma de valores, como vendas, compras, ordens de serviço, despesas de veículos, fretamentos, notas fiscais, entre vários outros, podem apresentar divergências de cálculos. Imagine que dois usuários estão adicionando produtos numa mesma venda em servidores separados. Quando a sincronização ocorrer os produtos serão combinados, porém o valor total da venda será o que estava num dos computadores, e não a soma do itens, ocasionando essa divergência.

E claro, o fato de precisar de uma licença para cada servidor também pode ser considerado um contra, pois terá que gastar mais.

CONFIGURANDO A FUNÇÃO

Veja esta imagem:

esquema de uma rede com 4 computadores

Neste exemplo, temos 4 computadores. Elegemos um deles como servidor principal, e os demais são servidores secundários, como se fossem clientes da rede. A função de sincronização deve ser configurada nestes servidores secundários, no servidor principal não vai fazer nada, exceto talvez liberar o Firewall do Windows. Caso precise liberar o Firewall no servidor, abra nele o módulo FERRAMENTAS:

atalhos

E clique em LIBERAR FIREWALL:

ferramentas

Voltando a configuração, para configurar o sincronizador de servidores, também irá no mesmo módulo de ferramentas:

atalho

Porém, precisará ir na aba SERVIÇOS, e clicar em ADICIONAR:

ferramentas

E selecione a opção SINCRONIZADOR DE SERVIDORES:

sincronizador

Feito isso verá uma tela de configuração:

configuração

No primeiro campo vai configurar o intervalo, recomendamos que não seja muito alto nem muito baixo. A sincronização é um processo demorado, então se configurar intervalos pequenos pode ocorrer alguma sobrecarga.

O segundo campo é o número IP do servidor. Assim como numa instalação cliente de rede, usará o mesmo ip do servidor, se não souber qual é, abra o SORGES no servidor e observe o rodapé da tela, ele aparece na frente de NET:

tela inicial do sorges

O terceiro campo será o caminho do banco de dados, e normalmente fica em branco. Se estiver em branco o sistema vai considerar que o SORGES está instalado no servidor principal exatamente como está no secundário, e vai usar o mesmo caminho. Se por algum motivo você mexeu nas instalações aí sim pode precisar indicar o caminho aqui.

Por fim, há um campo que manda sincronizar tudo. Na primeira sincronização é interessante marcar ele. O sistema automaticamente vai desmarcar após fazer esta sincronização total.

Uma vez que configurou o serviço ele vai ficar rodando:

ferramentas

Ele exibirá o status e o contador de tempo, indicando quando será a próxima execução. Se ocorrer algum erro ele aparece no status e na aba LOG. O módulo ferramentas vai iniciar com o Windows automaticamente enquanto houverem serviços na lista.

Veja um exemplo do recurso funcionando:

Nesse vídeo de exemplo criei duas instalações, SORGES A (verde) e SORGES B (vermelho), sendo que A é a mestre e B é a secundária, onde vai ficar rodando a sincronização. Para demonstrar de forma mais clara as duas instalações foram feitas no mesmo computador, e por isso foi necessário especificar o caminho do banco de dados, o que não precisa fazer numa situação real onde estão em computadores diferentes. Também restringi a demonstração a alteração do cadastro da empresa, porém ela funciona com inclusão, alteração e exclusão de registros em todos os módulos. O objetivo dessa demonstração é apenas exemplificar como a sincronização vai funcionar.