Supponiamo che ci sia un sistema per raccogliere informazioni sulle attività di sistema. C'è una parte client con un'interfaccia e ci sono parti agente che sono installate su ciascuna macchina. Stimo che ora potrebbero esserci max 20 computer. Più tardi potrebbe essere più simile a 50.
Le mie soluzioni:
-
L'agente memorizza i dati nel database locale, ad es. SQLite. Esiste anche un servizio che può essere utilizzato da un cliente per interrogare i dati. Quindi, se un cliente desidera visualizzare i dati per 50 computer, invia una query a 50 computer. Sono su questa soluzione ora, ma forse è completamente sbagliato.
-
L'agente memorizza i dati nel database locale (non ne conosco uno buono). C'è anche un server (database principale) e i database locali sono sincronizzati con il server. In questo caso, un client si connette al database principale per visualizzare i dati.
-
L'agente invia i dati in tempo reale al database principale. Così come il punto 2, ma non c'è sincronizzazione.
-
Come nel punto 3, ma l'agente memorizza i dati nel database locale e li invia in piccoli blocchi al database principale.
Qual è l'approccio migliore?