5. Instalação no Cliente e Acesso aos Dados
Este artigo explica como a Ema.IA passa a ser instalada diretamente no ambiente do cliente, o que muda no processo de implantação, e como os aplicativos (celular, desktop e navegador) conseguem consultar os dados do ERP sem que a TI do cliente precise abrir portas ou expor o servidor na internet.
Este artigo descreve o novo modelo de instalação, com registro automático. Clientes configurados pelo modelo anterior (token gerado no Painel Administrador) continuam funcionando normalmente e serão migrados aos poucos.
Como a Ema.IA acessa os dados do cliente
Os dados do cliente estão no banco de dados do ERP, dentro da rede dele. Já o usuário pode estar em qualquer lugar — inclusive no celular, usando os dados móveis. A pergunta que a TI do cliente sempre faz é:
"Então vocês precisam que eu abra uma porta ou exponha o servidor na internet?"
Não. E o motivo é simples: invertemos o sentido da conexão.
Junto com a Ema.IA é instalado no servidor do cliente um componente chamado Runtime Local. Assim que ele sobe, é ele quem liga para o servidor da Ema — e deixa essa ligação aberta o tempo todo. Quando a Ema precisa de alguma informação, ela apenas fala na linha que já está aberta.
Pense assim: em vez de a Ema tocar a campainha da casa do cliente (e para isso precisar do endereço e de alguém para abrir o portão), é o cliente que liga para a Ema quando acorda e deixa o telefone fora do gancho.
Para o firewall do cliente, isso é apenas uma saída HTTPS — o mesmo tipo de tráfego de um navegador abrindo um site. Praticamente toda rede corporativa já libera isso por padrão.
- O caminho de uma pergunta
Quando o usuário pergunta algo no celular, acontece o seguinte:
- O Runtime Local, no servidor do cliente, já está conectado ao servidor da Ema desde que o serviço subiu.
- O celular envia a pergunta apenas para o servidor da Ema, pela internet normal.
- O servidor da Ema repassa o pedido pela conexão que já estava aberta.
- O Runtime Local consulta o banco do ERP ali mesmo, dentro da rede do cliente.
- O resultado volta pelo mesmo caminho até o celular.
O ponto que resolve tudo: o celular nunca fala com o servidor do cliente. Ele nem sabe onde esse servidor fica. Os dois lados falam com a Ema, e a Ema faz a ponte. Isso vale igualmente para o aplicativo desktop e para o navegador — nenhum deles precisa estar dentro da rede do cliente.
- O que o Runtime Local pode e não pode fazer
A conexão aberta não dá acesso livre ao servidor. O Runtime Local só sabe executar aquilo que veio programado dentro dele, e hoje isso é uma coisa só: consulta de leitura no banco de dados.
- Ele recusa qualquer comando que não seja uma consulta. Não existe caminho para alterar, apagar ou incluir dados.
- O volume de linhas retornado por consulta é limitado.
- Não existe pasta onde seja possível "soltar" uma função nova: ampliar o que o runtime faz exige uma nova versão do programa, assinada e distribuída pela Ema.
- Cada cliente tem sua própria credencial, e o pedido de um cliente nunca alcança o runtime de outro.
Para interromper o acesso a qualquer momento, basta parar o serviço no servidor do cliente ou revogar a credencial daquele cliente no Painel Administrador.
O que muda na implantação: o registro é automático
No modelo anterior era necessário gerar um token no Painel Administrador e colá-lo no assistente de configuração dentro do Ema ERP. Isso não é mais necessário.
Agora, na primeira vez que sobe, o Runtime Local se registra sozinho:
- Ele lê a chave de registro que já existe na base do cliente e identifica de qual cliente Ema se trata.
- Consulta o servidor da Ema, que confere se a licença é válida e se o cliente tem a Ema.IA contratada.
- Recebe a credencial, grava na própria base e já conecta.
Se o processo for interrompido no meio (queda de internet, por exemplo), ele simplesmente tenta de novo na próxima vez, sem duplicar nada e sem perder a credencial já criada.
O registro automático depende da licença do cliente estar em dia e com a Ema.IA contratada. Se o cliente não aparecer no Painel Administrador depois da instalação, verifique a licença antes de acionar o suporte.
Onde a Ema.IA é instalada
A instalação varia conforme o ambiente do cliente:
- Cliente com Ema ERP em servidor
É o caso mais comum. A Ema.IA e o Runtime Local são instalados na pasta do Contas ERP, e o Runtime Local é registrado como um serviço do Windows, para subir sozinho junto com o servidor, sem depender de alguém estar logado na máquina.
- Estação de trabalho
Nas máquinas dos usuários é instalado apenas o aplicativo da Ema.IA, na pasta do próprio usuário, sem necessidade de permissão de administrador. Essas máquinas não têm Runtime Local — elas usam o que está no servidor.
- Cliente sem Ema ERP
Apenas o aplicativo, com atalho no menu iniciar. Não existe Runtime Local nesse caso, pois não há banco do ERP para consultar.
As atualizações são automáticas nos três casos. Quando o Runtime Local é atualizado, ele espera as consultas em andamento terminarem antes de reiniciar, e se a nova versão falhar ao subir ele volta sozinho para a versão anterior.
O que precisa ser liberado na rede do cliente
Somente a saída para o domínio ema.ia.br, em HTTPS. Nada de entrada.
Para conferir se está liberado, no servidor do cliente abra o link https://ema.ia.br/api/v1/ no navegador. Se estiver tudo certo, aparece:
{"status":"Running"}
Ou, se preferir, pelo PowerShell:
(Invoke-WebRequest https://ema.ia.br/api/v1/).StatusDescription
Se a resposta for diferente de OK, existe algo bloqueando a conexão — normalmente o firewall ou o proxy da rede.
Conferindo se a instalação deu certo
- O serviço do Runtime Local está em execução no servidor (Serviços do Windows).
- O cliente aparece no Painel Administrador Ema.IA.
- Uma pergunta feita no aplicativo que dependa de dados do ERP é respondida com os dados corretos.
Se algo não funcionar, os registros de funcionamento ficam na pasta runtime\logs, dentro da pasta de instalação da Ema.IA no servidor, organizados por data. Eles são o primeiro lugar a olhar e o que o suporte vai pedir.
- Situações comuns
- O serviço sobe e fica tentando conectar: normal enquanto o banco de dados ainda está subindo. Ele tenta sozinho, esperando um pouco mais a cada tentativa.
- O serviço sobe e para logo em seguida: normalmente configuração de banco incorreta ou credencial recusada. Nesses casos ele para de propósito, para não mascarar o problema — confira o log.
- O cliente não aparece no Painel Administrador: o registro não foi concluído. Confira a licença e a chave de registro na base.
- A conexão cai quando a máquina hiberna ou troca de rede: esperado. O runtime percebe sozinho e reconecta, sem precisar de intervenção.
Perguntas frequentes da TI do cliente
Precisa abrir porta no firewall? Não. Apenas saída HTTPS para ema.ia.br.
Precisa de IP fixo, DNS público ou VPN? Não.
O banco de dados fica exposto na internet? Não. Só o Runtime Local, de dentro da rede, conversa com o banco.
A Ema consegue alterar dados no sistema? Não. A única operação disponível é consulta de leitura.
Como interromper o acesso? Parando o serviço no servidor ou revogando a credencial do cliente no Painel Administrador.
Ficou alguma dúvida?
Entre em contato com o suporte da Ema.IA. Se a dúvida for recorrente, atualizaremos este artigo — sugestões são bem-vindas.