Backend

Einleitung

Das Backend ist in unserem Projekt eine server-basierte Anwendung, die als Zentrale zur Steuerung eines drahtlosen Netzes dient.
Es ist mit Ruby-On-Rails programmiert. Hier kann der Zustand des Netzes abgefragt werden. Es bildet auch die Schnittstelle, um mit dem drahtlosen Netz zu kommunizieren.

Komponenten

Im Folgenden werden die einzelnen Teile beschrieben, aus denen das Backend besteht.

CoAP-Modul

Im in Ruby realisierten CoAP-Modul ist die Spezifikation des CoAP-Protokolles implementiert. CoAP ist ein Protokoll, das speziell zur Kommunikation in drahtlosen Netzen entwickelt wurde, die über eingeschränkte Ressourcen verfügen. Das CoAP-Modul wurde von Carsten Bormann entwickelt und wird bei SAHARA von der AG-Backend erweitert.

Eventmachine

Zur Netzkommunikation wird im Backend das Ruby-Modul eventmachine verwendet. Dieser Dienst verarbeitet Nachrichten in effizienterer Weise. Eventmachine ist in der Lage, mehrere Anfragen von Clients gleichzeitig zu bearbeiten, ohne dabei auf Threads zurückzugreifen, was Probleme bei Nebenläufigkeit bringt. Zur Anwendung kommt dabei das sogenannte [Reaktor-Entwurfsmuster]. Eventmachine besitzt eine Zuordnung von Nachrichten zu entsprechenden Ereignis-Routinen, die beim Auftreten einer Nachricht ausgeführt werden sollen.
Es geht darum, eintreffende Nachrichten an die adressierte Ressource zuzustellen.

Datenbank

In einer relationalen Datenbank werden Informationen über den Zustand eines Knotens gespeichert. Der Knoten meldet sich nach dem Anschalten beim Backend, um sich dort bekannt zu machen. Das Backend protokolliert den Vorgang und merkt sich, welcher Knoten sich wann schon einmal angemeldet hat.

Logik

Im Backend ist die Logik implementiert. Das beinhaltet Regeln, wie auf welches Ereignis eines Sensor-Knotens reagiert werden soll. Der Sensor-Knoten steuert nach einem eintreffenden Ereignis nicht direkt den Aktuator, der die Aktion ausführt, sondern delegiert es an das Backend zu, das diese Aufgabe übernimmt. Wir arbeiten allerdings daran, diese Konfigurationen auf die Knoten “runter” zu synchronisieren.

Webfrontend

Das Webfrontend bietet dem Anwender eine Schnittstelle, per HTTP direkt aus dem Browser heraus in Interaktion mit einem drahtlosen Netz zu treten. Hier ist es möglich, über entsprechende Steuerelemente innerhalb der Webseite Aktionen auf den Knoten auszulösen.

Anwendung

Test

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>