2011-01-16 6 views
0

Ich brauche einen Ratschlag für eine Lösung für ein Datenspeicherproblem, das wir an dem Ort haben, an dem ich arbeite.Struktur für die Überwachung von vielen Systemvariablen unterschiedlichen Typs

Das Problem ist wie folgt:

Wir haben eine eingebettete Anwendung, die Daten von einigen Geräten überwachen müssen. Die Daten sind einfach, wie z. B. Statusflags, einzelne ganzzahlige/schwebende Variablen, die eine Einstellung/Temperatur/was auch immer anzeigen, aber wir haben Hunderte von ihnen.

Was wir jetzt diskutieren, ist eine einfache Möglichkeit, diese Variablen in der Anwendung zu speichern. Einige Teile des Systems lesen die Ausrüstung und schreiben ihren Zustand in diese Variablen. Andere Teile des Systems müssen benachrichtigt werden, wenn sich eine dieser Variablen ändert.

Also im Grunde ein < Consumer> < -----> < Datenspeicher> < -----> < Producer> Struktur.

Da ich noch nie an einer professionellen Software wie dieser gearbeitet habe (frisch von der Universität :)) hatte ich gehofft, dass es in diesen Foren einige brillante Leute geben würde, die mir ihre Weisheit beibringen könnten.


Was ich in so weit ausgesehen haben, ist:

SQLite: Sehr einfache Datenbank, und einfach zu bedienen. Aber vielleicht ist es übertrieben, wenn die zu speichernden Daten sich nicht wirklich für eine tabellarische Struktur eignen?

Hashmaps: Speichern Sie einfach jeden Datenknoten mit einem Schlüssel als Index, und abonnieren Sie dann Änderungen an bestimmten Indizes.


Ich hoffe, ich mache Sinn, und Entschuldigung für die Wand des Textes :) Vielen Dank im Voraus für die Hilfe.

+1

Ich denke, Sie müssen Ihre Daten ein wenig mehr beschreiben. Zum Beispiel, erhalten Sie einen neuen Datenpunkt von jedem Sensor/was auch immer auf einer periodischen Basis? Wieviele Daten (in der Zeit) müssen Sie speichern? –

+0

... und welche Arten von Abfragen möchten Sie effizient unterstützen? Das könnte eine entscheidende Rolle für die Eignung von SQLite spielen. –

+0

Sie müssen auch das Timing-Verhalten Ihrer Sensoren beschreiben. Wenn zum Beispiel die Sensoren X und Y semantisch verwandt sind (z. B. eine Aktualisierungsmenge und eine mit einer "leeren" Anzeige überlappt), werden sie zur gleichen Zeit aktualisiert? Wenn sie nicht synchronisiert sind, müssen Sie darüber nachdenken, wann das Bild für die Überwachung konsistent ist. – Uri

Antwort

0

Mit begrenzten Daten, würde ich sagen, versuchen Sie die HashMap-Implementierung mit einem Observer pattern wie Sie erwähnt. Ich denke, das wegen zwei Dingen ein guter Ansatz sein kann:

  1. Es scheint, dass Sie lernen. Daher ist es wichtig, schnell etwas zu ändern, nur um zu sehen, ob es funktioniert.
  2. Es scheint einfacher (in Bezug auf Abhängigkeiten) als SQLLite zu verwenden. In einem Kampf, in dem es eine einfache Lösung und eine komplexe Lösung gibt (und beide das Gleiche erreichen), wette ich auf die einfache Lösung.
0

Sie können sich das SNMP-Protokoll ansehen.

Verwandte Themen