Unter einem Backend versteht man in der Regel den funktionalen Teil eines digitalen Produkts wie etwa einer Website, oder eines Programms. Während das Frontend näher am Benutzer ist, ist das Backend näher am System.
Im Backend finden zum Beispiel Berechnungen statt, werden Datenbankanfragen gestellt und erhaltene Ergebnisse aufbereitet, sodass sie weiter verwendet werden können, oder Daten in eine Datenbank geschrieben. In Falle des Universalsensors erhält das Backend die Sensor Readings vom Sensor, bereitet diese auf, speichert sie in die Datenbank und ruft sie für das Frontend wieder auf.

Für das Backend benutzen wir die Programmiersprache Python.

Das Backend des Universalsensors besteht aus X unterschiedlichen Teilen:

Jeder Teil hat eine eigene Funktion auf die im Folgenden kurz eingegangen wird und die detailliert in der Dokumentation des entsprechendem Teilbereichs erläutert wird.

Zudem verwenden wir noch eine MongoDB Datenbank um unsere Messdaten zu speichern.

Die Datenbank

MongoDB ist eine sogenannte “non relational database” und ist somit nicht an das Tabellenformat, wie es von SQL Datenbanken bekannt ist, gebunden, sondern kann stattdessen einfach “documents” in JSON Form speichern. Dies ist besonders nützlich in Verbindung mit der Sprache Python, da einer der Datentypen von Python das “dictionary” im Endeffekt im JSON Format ist. So kann einfach ein Python dictionary als document in die Datenbank gespeichert werden.

Ein weiterer Vorteil von MongoDB ist, das bis zu einer Speichergrenze von 512MB die Nutzung kostenlos ist. 512MB reichen für die Art und Menge von Daten die gespeichert werden komplett aus da ein Datenset in der Datenbank einem document von ca. 12kb entspricht und jede Minute für eine Woche ein Set gespeichert wird das entspricht 10080 documents also 120960kb an Daten und das sind etwa 121MB.

Die Datenbankanbindung

Dieser Teil ist dafür verantwortlich, dass Daten in die Daten geschrieben und aus der Datenbank gelesen werden können.

Der Notifier

Der Notifier erhält jede Minute die sensor readings per MQTT vom Universalsensor prüft dann mit dem threshold test ob einer der Werte einen Grenzwert überschreitet, ist dies der Fall wird mithilfe des message builders eine Nachricht erstellt die dann als push notification an das mobile Endgerät des Nutzer gesendet wird.
In jeden Fall schreibt der Notifier den vom Sensor erhaltenen Datensatz in die Datenbank

Der Threshold Test

Dem Threshold Test werden vom Notifier die sensor readings übergeben. Dieser prüft dann jeden Wert gegen einen festgelegten Grenzwert und gibt dann eine Liste mit den Werten zurück die einen Grenzwert überschritten haben

Der Message Builder

Dem Message Builder wird die Liste übergeben die der Threshold Test zurückgibt und baut dann entsprechend der Werte und Art der Grenzwertüberschreitung eine Notification Nachricht. Diese gibt er dann an den Notifier zurück.

Sequenzdiagramm Backend

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *