Um pouco sobre a complexidade do Winthor

A operação do Winthor numa empresa de varejo hoje requer quatro servidores:

  • Servidor principal Linux (Oracle) – requer a assistência de um DBA Oracle pois a TOTVS não dá suporte a ele;
  • Servidor DocFiscal Windows – Responsável por toda comunicação com a SEFAZ;
  • Servidor WTA (Winthor Anywhere) Windows – Requerido para atualização dos programas (rotinas) e para a operação do DocFiscal;
  • Servidor de faturamento Windows – responsável por coletar as vendas dos caixas e enviar para o servidor principal;

Eu estou atendendo a uma empresa que tem duas operações desse tipo e por isso tem oito servidores dedicados ao Winthor.

Por um lado eu acho que usar servidores distintos reduz o risco de uma atualização em um requisito do sistema conflitar com a operação de outro e facilita a manutenção e a redundância. Por outro lado gera um problema para manter quatro máquinas rodando e sincronizadas. Você só percebe esse último problema quando se depara com a necessidade de mover uma ou mais delas entre redes e alterar os respectivos endereços IP e se pergunta: “onde eu tenho que configurar cada um dos servidores e cada um dos clientes que acessam esses servidores para não quebrar a operação?”

Depois que você sabe é “fácil”, mas como eu esperava as configurações são espalhadas:

  • Mudança no endereço IP do servidor principal:
    • No próprio servidor, além da óbvia mudança do IP na configuração do Linux é preciso editar o arquivo listener.ora;
    • Cada estação que acessa o chamado “menu Winthor” precisa ter o arquivo tnsnames.ora editado;
    • Cada caixa precisa ter o “dblink” recriado pelo menu F5 “Manutenção checkout” da 2075 pois do contrário apesar de supostamente a operação da 2075 ser “offline” existe uma carga obrigatória no início do dia que não poderá ser feita e a rotina se recusará a abrir o caixa;
    • O servidor DocFiscal precisa ser reconfigurado com novo endereço via sua interface web.
  • Mudança no endereço IP do servidor DocFiscal precisa ser informada na rotina 132;
  • Mudança no endereço IP do servidor WTA precisa ser informada na rotina 132;
  • Mudança no endereço IP dos caixas precisa ser informada ao servidor de faturamento no programa de gerenciamento;

Virtualizar todas as máquinas Windows é uma possibilidade, mas o número de outros problemas que tenho a resolver é tão alto que isso vai ficando para depois.

Sobre o servidor principal, no início eu estranhei a TOTVS não dar suporte a ele mas depois a razão disso ficou mais clara. Aparentemente a TOTVS quer deixar evidente que os dados pertencem ao cliente e que ela só fornece um conjunto de programas para manipulá-los. Na maioria dos sistemas comerciais que eu já vi só quem sabe a senha do banco de dados é o suporte técnico do sistema comercial mas com o Winthor, pelo contrário, a TOTVS não sabe a senha, o que já sugere que ela seja diferente para cada cliente, o que por sua vez dificulta a criação de um vírus que tenha como alvo o servidor principal Winthor nacionalmente. E é o cliente que precisa digitar as credenciais durante a instalação dos softwares. Infelizmente o fato de ser usado um SGBD tão complexo quanto o Oracle e ser necessária a contratação de um DBA para cuidar de seus problemas é um ponto negativo.

E justamente o fato do cliente saber a senha permitiu a existência de processos paralelos para obter informações do banco. Um deles já existia quando eu cheguei e eu acabei tendo que criar outro: um programa para consultar o banco de dados e gerar etiquetas de preços com código de barras para os produtos nas gôndolas. O processo anterior era enrolado demais até para mim e estava com uns bugs muito estranhos (do tipo que faz você arregalar os olhos e dizer baixinho: “mas que p***ra é essa?!”) então decidi que criar um software, além de ser um exercício de programação para Oracle, iria me poupar de dores de cabeça com as chamadas de suporte para o processo existente.

O servidor da faturamento roda também um servidor FTP Filezilla. Na primeira vez que vi isso rodando eu não sabia ainda o propósito e tive ânsia de desativar, mas me contive porque tudo era possível nessa empresa. Mais tarde fiquei sabendo que é por FTP que os caixas transferem informações para o servidor de faturamento.  Um problema aí: as credenciais são padrão para toda instalação do Winthor: usuário “caixa” e senha “caixa”. O mesmo ocorre nos caixas: cada um deles tem um servidor Oracle XE com as mesmas credenciais, onde estão armazenadas todas as informações sobre as vendas. Por que o servidor de faturamento precisa de um servidor de FTP para receber as informações quando poderia buscar as informações diretamente nos servidores em cada caixa ainda é um mistério para mim. Um vírus dedicado ao Winthor (ou um funcionário mal intencionado) pode apagar/alterar todas as informações dos caixas (testado) e, se o usuário FTP tiver permissões de apagamento (acaba de me ocorrer que tenho que checar isso) bagunçar tudo no servidor de faturamento também.

 

 

12 comentários
  • Vitor - 1 Comentário

    Já estava com saudades dos seus posts haha.
    Por curiosidade, em qual linguagem programou a solução para gerar as etiquetas de preços?

    • Jefferson - 6.606 Comentários

      Delphi. É a única linguagem com a qual me sinto confortável. Hoje mesmo eu tive que escrever dois programas em Java na faculdade, mas detesto essa linguagem.

  • Jefferson - 6.606 Comentários

    Encontrei outro problema provocado pela mudança no IP do servidor Oracle. O “CCW Agente”, necessário para a operação da Central de Controle Winthor (CCW) deixa de funcionar e você não consegue mais usar a CCW para atualizar o sistema. Eu não sei se é possível corrigir isso em alguma configuração, mas atualizar o CCW Agente resolveu, porque o instalador pergunta tudo de novo.

  • Marcos - 2 Comentários

    Jefferson, tudo bem?

    Estou querendo instalar o WinThor para avaliar melhor as funcionalidades, sabe informar como posso encontrar os scripts para instalar o banco de dados.

    Atualmente tenho o seguinte link que disponibiliza diversos arquivos porém não tem uma documentação para ser seguida.

    Link: http://servicos.pcinformatica.com.br/autoservico/instaladores/

    • Jefferson - 6.606 Comentários

      Até onde sei essa informação não é pública e apenas os DBAs credenciados pela PCSistemas/TOTVS sabem oficialmente como fazer. O banco de dados é instalado pelo DBA durante a implantação do sistema.

      Tenha me mente que ter um DBA responsável pelo banco (não precisa ser um funcionário em tempo integral, pode ser um contrato) é um dos requerimentos da contratação do sistema Winthor.

    • Jefferson - 6.606 Comentários

      Outra coisa: este link que você encontrou é apenas para os softwares do “autoserviço”, que é como eles chamam o faturamento/caixas. Uma instalação completa do Winthor tem centenas de outros módulos (“rotinas”) e mesmo que você consiga achar o instalador do cliente ou baixar as centenas de rotinas manualmente e ainda conseguir instalar/configurar o servidor Oracle, eu acho difícil você conseguir rodar alguma coisa sem o arquivo de licença.

  • Renan - 4 Comentários

    QUAL LINGUAGEM É UTILIZADA PARA CRIAR AS ROTINAS NO WINTHOR?
    EU CONSIGO CRIAR ALGUMAS COISAS UTILIZANDO JAVA E CONECTANDO NO BANCO DE DADOS, PORÉM AINDA ASSIM, VEJO QUE NÃO É A MESMA COISA, PQ NÃO SEI COMO QUE É CADASTRADO COMO ROTINA DENTRO DO PROPRIO WINTHOR.

    • Jefferson - 6.606 Comentários

      A linguagem parece ser Delphi, mas não creio que saber a linguagem vá te ajudar.

      • Renan - 4 Comentários

        Então mano, como eu te falei, eu faço alguns programas, não necessariamente rotinas, utilizo o acesso e tenho conhecimento das tabelas do banco.

        Inclusive fiz um programa para coletores a quinze dias atrás, porém só estava querendo saber mesmo pra ver se me ajuda em alguma coisa.

        Eu só não entendi o que quis dizer quando falou que saber a linguagem não me ajudaria muito.

        Tem alguma complexidade além?
        Algo que não saiba? É isso?

        Eu quero começar a fazer de forma correta igual o pessoal faz, porém eles cobram muito caro por coisas que eu sei que é simples pq eu sou desenvolvedor, mas cobrar 10k em um programa que faz apenas um select no bd é foda.

        E outra, seria pra fazer pra empresa que eu trabalho mesmo sabe.

        Deixar de fazer no Java e passar a fazer como é de fato feito.

        Me Desculpa pela caixa alta anteriormente, não tinha percebido.

        Gostei de seu site, estou terminando de desenvolver um também, quero fazer algumas postagens voltado a desenvolvimento web e desktop

        • Jefferson - 6.606 Comentários

          Você disse que não sabe “como é cadastrado como rotina dentro do próprio Winthor”

          A PC Sistemas (agora TOTVS) pode ter implementado uma API para isso, pode haver um arquivo de configuração em algum lugar, a lista pode estar em uma tabela no banco de dados ou a rotina pode até ser “hardcoded” no programa menu. Nada disso tem a ver com linguagem usada.

          Já coisas como a agilidade do programa, sim, tem a ver com a linguagem/compilador usado.

          • Renan - 4 Comentários

            Obrigado,
            Descobri todas as resposta para minhas dúvidas sobre o Winthor, sou curioso demais, cavei cavei até achar.

            Obrigado pelas dicas.

            Mas agora já sei como o sistema funciona e posso continuar desenvolvendo as rotinas de forma mais prazerosa e de forma correta.

            Abraços.

Deixe um comentário para Renan Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »