Uma maneira para sincronizar dados entre um dispositivo externo e um banco de dados?
-
06-07-2019 - |
Pergunta
No aplicativo que eu estou projetando, eu tenho que comunicar com um dispositivo e armazenar um histórico de leituras de dados em um banco de dados. O dispositivo é essencialmente um sensor que expelir números através da porta serial. A extremidade do utilizador da aplicação é uma RubyOnRails interface que permite ao utilizador ver estes dados e configurar o dispositivo.
Eu estou querendo saber que tipo de conexão entre o banco de dados e o dispositivo que você poderia recomendar para este tipo de configuração.
Até este ponto, eu tinha um aplicativo personalizado executado em um computador host (um computador com o dispositivo conectado diretamente através de uma porta serial) que serviria como uma ponte para um banco de dados MySQL. O aplicativo poderia conectar diretamente ao banco de dados MySQL e executar consultas. Ele funciona razoavelmente bem, mas eu não tenho certeza se esta é a melhor solução.
A única outra alternativa que eu vejo é ter uma aplicação intermediária que meu aplicativo personalizado pode se conectar a, em vez de ir diretamente para o banco de dados. Esta poderia ser uma parte do pedido principal, ou algo separar. Isso seria uma solução melhor?
Você recomendaria outra abordagem?
Obrigado,
Solução
Eu tenho uma estrutura semelhante, embora eu vou buscar os meus dados a partir de um Web Service. A maneira que eu organizar é:
- Criar classes em
lib/imports
, por exemploDailyDataImport
,DailyDataSummarize
(você pode organizar a hierarquia e nomes como por seu desejo ou vontade). - Criar uma tarefa
rake
sob um novo namespace, dizemimport
e adicioná-lo ao seu trabalho cron dependendo da frequência. Dê uma olhada na Cron em Ruby . Sua útil.
Isso me permite ter um melhor controle sobre o que se passa no meu banco de dados.
Algumas questões a considerar:
- O cronograma faz o acompanhamento de dispositivos para preencher os dados?
- Do que você precisa os dados tal como está ou você quer um pouco controle sobre ele ou você precisa para processá-lo, como resumindo e agregar etc.
Outras dicas
MS SQL Server 2008 tem um grande suporte a sincronização de dados.
SQL Server 2008 Express é gratuito e pode agir como um assinante de replicação (mas não editor) para os clientes.