quinta-feira, 27 de novembro de 2014

As medições estão no PC só que elas têm é que estar na Internet. E agora !?



Os dados desejados estavam todos dentro de um PC com sistema operacional Windows em uma estação de medição em um canto da cidade, e o que o cliente queria era que eles estivessem disponíveis na Internet.
Esta é uma situação bem comum para os clientes do Iplenix. Muitos sistemas de telemetria, telemedição e monitoramento remoto usam um PC rodando Windows para fazer a coleta dos dados de sensores locais como qualidade de água, consumo de energia elétrica, dados ambientais como temperatura, pressão, humidade, qualidade do ar, emissões de gases, e muitos outros.  Estas estações contendo os sensores e o PC estão em geral em locais de difícil acesso por estarem próximas dos alvos das medições. Não que estejam em locais remotos, apenas pouco acessíveis.
O Iplenix tem as soluções para que os dados saiam das suas “ilhas” e passem a estar disponíveis na Internet de forma automática, sem a necessidade da ação de pessoas ou visitas ao local onde eles estão armazenados. Temos duas soluções muito interessantes para a transferência para a Internet dos dados armazenados em PC’s que podem ser usadas conforme as necessidades do cliente.

Roteador 3G e cgi de leitura dos dados

Esta é uma solução razoavelmente simples de implementar. Utiliza componentes disponíveis no mercado. Os desafios estão em colocar todos os componentes a funcionar com as configurações corretas, e em programar o cgi para fazer a transmissão dos dados.
A solução traz benefícios adicionais além da transferência dos dados para a Internet. Ela também permite o acesso remoto ao PC para a realização de manutenções. E permite que outros equipamentos que estejam dentro da estação de medição  possam acessar serviços na Internet. Basta para isso configurar corretamente o roteador para que as portas de acesso remoto estejam abertas. Em contrapartida isso pode ser um risco de segurança para o sistema contra ataques vindos da Internet.
O processo de leitura dos dados funciona da seguinte forma. Nos servidores do Iplenix estão configurados para fazem, em uma frequência determinada, a requisição de uma determinada página na Internet que aponta para o PC da estação de medição. Esta página é respondida pelo “cgi” programado para isso. Por exemplo, a página que o servidor do Iplenix acessa pode ser algo como:


 A implementação é feita com os seguintes componentes:

  • Roteador 3G industrial que garanta a conectividade da estação de medição com a Internet.
  • Chip de dados de uma operadora celular.
  • Um serviço de DNS dinâmico como o No-IP ou o DynDNS.
  • Servidor de páginas instalado no PC, de preferencia o IIS da própria Microsoft.
  • Uma linguagem de programação para o cgi.



O roteador 3G deve ser um modelo industrial e não um modelo de roteador caseiro por 2 motivos. Primeiro porque ele deve suportar ambientes um pouco mais hostis do que uma casa ou escritório, e segundo por ficar desassistido, ou seja, não haverá ninguém por perto para fazer resets periódicos caso pare de funcionar. Portanto o roteador deve se manter conectado à Internet através da rede celular sem a necessidade de intervenção humana pelo máximo tempo possível. De preferência por anos. Outro requisito interessante é que este roteador seja homologado pela Anatel. Isso é interessante para que o cliente tenha segurança do equipamento que está usando. O roteador Netair 301 da Parks é uma opção interessante que cumpre com os requisitos.
Por questão de segurança o equipamento deve ser programado com filtros que permitam acessos externos somente de determinados IP’s e somente a portas de determinados serviços. No nosso caso os filtros permitem acesso dos servidores do Iplenix somente para a porta 80.
O serviço de DNS dinâmico é necessário pela seguinte razão. A cada vez que o roteador se conecta na rede 3G ele ganha um IP diferente da operadora celular. E em geral estas conexões de Internet tem uma durabilidade restrita, algumas horas e talvez nem isso dependendo da região, a troca de IP do roteador é frequente. Este serviço de DNS dinâmico divulga com a frequência necessária o IP do roteador permitindo assim que sejam feitos acessos a ele a partir de qualquer ponto da Internet. A escolha do provedor de DNS dinâmico é uma opção do cliente. Temos experiência com os serviços do DynDNS e do NO-IP estando ambos funcionando a contento.
O funcionamento do DNS dinâmico depende de um programa cliente que se mantém rodando e que periodicamente divulga o IP que o roteador recebeu da operadora celular. Em geral este programa é configurado para rodar no próprio PC como um serviço do Windows. É possível configurar para que rode no roteador, porém experimentamos conflitos entre os filtros de segurança e o bom funcionamento do cliente de DNS dinâmico do roteador.
O servidor de páginas selecionado foi o IIS (Internet Information Service) da própria Microsoft por ser nativo do sistema operacional e, portanto ser o mais integrado e fácil de ser instalado.  A instalação e configuração do servidor de páginas IIS são bem simples. Tem muita documentação na Internet que facilita esta tarefa.
E por fim a programação do programa “cgi” para a leitura e entrega dos dados. Este programa depende muito da forma como os dados estão armazenados no PC. A linguagem de programação PHP foi escolhida porque ela já tem bibliotecas para acessar a maioria das formas de armazenamento de dados usadas como bancos de dados sql, arquivos .ini, arquivos csv, binários e outros. E porque é uma linguagem que foi desenvolvida especificamente para rodar como uma página web em um servidor de páginas como o IIS.
O ponto forte desta forma de retirar os dados do PC está na simplicidade dos componentes. Quase todos, exceto o programa “cgi” está disponível na Internet com muita documentação e suporte. Os pontos fracos estão na questão de segurança porque deixa a estação de medição sujeita a possíveis ataques via Internet, e na necessidade muitos componentes, o que aumenta a possibilidade de falha. Por exemplo, o programa cliente do DNS dinâmico pode travar por algum motivo deixando os dados indisponíveis.



Conheça mais sobre os serviços doIplenix
 



Modem serial / celular e serviço de envio dos dados



Outra solução que temos para oferecer que tira os dados de um PC rodando Windows e leva para a Internet é usando um modem conversor serial para celular, e instalar no PC um programa desenvolvido por nós e que roda como um serviço no Windows e usa este modem para enviar os dados para os servidores do Iplenix.
Nesta solução o IP da estação de medição não precisa ser conhecido na Internet. Por não estar o IP disponível, e o modem não aceita receber conexões, é possível acesso externo a partir da Internet a nenhum equipamento, nem ao modem e nem ao PC. Isso traz mais segurança ao sistema, apenas tira a possibilidade de acesso remoto para manutenções. Também reduz o número de componentes necessários, e programas que devem ser instalados no PC. São dispensados de instalação o servidor de páginas IIS, e o programam cliente do DNS dinâmico, reduzindo assim possíveis pontos de falha. E por fim, o custo do modem industrial conversor serial para celular em geral é menor do que o custo de um roteador 3G industrial.
O processo de envio dos dados é feito do PC para o servidor do Iplenix. Se inverte a direção do inicio da conexão entre as partes. Neste caso, o programa que roda como um serviço no Windows é que toma a iniciativa de enviar os dados para os servidores do Iplenix. Como a conexão entre os equipamentos é iniciada pela estação de medição, mais precisamente pelo modem instalado na estação, não é necessário que o IP seja conhecido, e não é necessário que seja permitido que conexões sejam iniciadas de computadores da Internet aumentando assim a segurança. No caso o modem é que mantém a conexão estabelecida entre a estação de medição e os servidores do Iplenix, e o programa local usa o modem como canal de comunicação.

A implementação é feita com os seguintes componentes: 
  • Modem conversor serial celular.
  • Chip de dados de uma operadora celular.
  • Linguagem PHP instalada no PC 
  • Programa especifico que executa como um serviço no Windows.



O modem conversor serial se utiliza de uma porta serial do PC que pode ser uma RS232 ou uma RS485. Caso o PC não tenha uma porta serial, o que atualmente é muito comum, existem cabos conversores USB para serial que são baratos e funcionam perfeitamente. Em nossos clientes temos usado os modems dos fornecedores ABS Ltda e da iTech, e ambos nos tem dado muito bom resultado. Estes modems são de fácil configuração com documentação disponível e suporte por parte dos fabricantes. O Iplenix pode fazer a configuração dos modems para o cliente se este assim desejar. O objetivo dos modems é manter um canal sempre estabelecido via rede celular entre o servidor do Iplenix e a porta serial do PC. São de padrão industrial e estão prontos para trabalhar em ambientes hostis.
A linguagem PHP também foi usada para esta solução. Ela oferece funções de acesso aos diferentes tipos de armazenamento usados em PC’s, o que facilita a retirada dos dados coletados dos sensores. Também tem as facilidades para colocar seus programas como serviços no Windows, o que, quando bem programado e configurado garante que o programa vá executar sempre, enquanto o PC estiver funcionando. E também tem as funções de acesso à porta serial para que possa ler e escrever os dados trocados com os servidores do Iplneix através do modem.
O programa feito pelo Iplenix está separado em duas partes. Existe a parte variável que depende de cada caso que é a leitura dos dados obtidos pelos sensores. Isso depende exclusivamente da implementação local de cada cliente e por isso é feito sob medida para cada aplicação. A parte fixa que faz a troca de dados com os servidores do Iplenix através do modem conversor. Esta é uma parte que trabalha sempre da mesma forma. Trabalha segundo o protocolo do Iplenix onde o programa espera os comandos de leitura. Uma vez que o modem se conecte com os servidores do Iplenix estes verificam se está na hora de ler mais dados. Sempre que for este momento é enviado um comando para o programa pedindo os dados mais atuais. Neste momento é acionada a parte variável que lê os dados coletados e retorna para os servidores do Iplenix. Esta forma onde os servidores do Iplenix enviam os comandos de leitura concentra as configurações no servidor tornando mais fácil a manutenção das configurações, e evitando a necessidade do deslocamento de uma equipe até a estação de medição.


Esta solução é um pouco mais complicada de desenvolver porque utiliza componentes menos populares como os modems conversores e cabos conversores USB para serial, mas que estão disponíveis no marcado. Também a programação do serviço Windows é um pouco mais sofisticada. A solução com um todo é mais segura no que diz respeito a possibilidade de ataques contra a estação de medição porque tira qualquer acesso externo via Internet a ela. É mais confiável porque elimina componentes de software que podem falhar. E mais barata porque um modem conversor serial para celular é mais barato do que um roteador 3G industrial.
Como o Iplenix tem a sua plataforma CONECTA com toda a infraestrutura pronta para receber os dados, e as bibliotecas para montar o programa que roda como um serviço do Windows para a leitura dos dados coletados dos sensores, a montagem de uma nova solução é muito simples e rápida. Entre em contato conosco que colocamos os seus dados de telemetria e telemedi;cão na Internet.

Conheça mais sobre os serviços doIplenix