Embedded-SQL-Datenbanken Über die Wolke synchronisieren und visualisieren

Embedded-SQL-Datenbanken
Über die Wolke synchronisieren und visualisieren

Aufgrund komplexerer Softwarefunktionen fallen auch die Konfigurationseinstellungen auf vielen Embedded-Systemen immer umfangreicher aus. Eine eingebettete SQL-Datenbank im Zusammenspiel mit einem Cloud-Service schafft neue Möglichkeiten zur zentralen Konfigurationsdatenverwaltung für dezentrale Systeme. Mit dem gleichen Konzept lassen sich darüber hinaus auf einfache Art und Weise die Zustandsdaten dieser Systeme per Web visualisieren.

Embeddedsysteme mit einem 32Bit-Prozessor und einem integrierten Betriebssystem besitzen in der Regel auch Flash-Speicherkapazitäten im (Multi-) GByte-Bereich. Entsprechend umfangreich ist die auf diesen Systemen installierte Software. Vielfach sind gleich mehrere Anwendungen im Dateisystem des jeweiligen Embedded-Betriebssystems abgespeichert, deren Prozesse dann unter der Kontrolle des Betriebssystems-Scheduler parallel ablaufen. Andere Programme werden nur zu bestimmten Zeiten bzw. Zeitpunkten – z.B. als Linux-CRON-Jobs – geladen und ausgeführt. Insgesamt wird es auf solchen Systemen außerordentlich vielfältige und umfangreiche Konfigurationseinstellungen geben. Dadurch ergeben sich drei wichtige Fragestellungen:
1. Wie und wo werden die Konfigurationsdaten gespeichert, damit sie allen Anwendungen zur Verfügung stehen? 2. Wie lässt sich der Overhead (Codegröße, Speicherressourcen usw.) für die Lese- und Schreibzugriffe auf die Konfigurationsdaten möglichst gering halten? 3. Wie und wo lassen sich die Konfigurationsdaten sichern (Setup-Daten-Backup), damit beim Austausch eines Systems sofort wieder die aktuellen Einstellungen zur Verfügung stehen?

SQL-Datenbank als Lösung

In der IT-Welt werden beliebige Daten in Datenbanken gespeichert. Dabei hat sich im Laufe der vergangenen Jahrzehnte mit SQL (eigentlich Structured Query Language – der Begriff trifft allerdings nur bedingt zu, es handelt sich um eine Abfragesprache und einen eigenständigen Namen für Datenbanksysteme) eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken etabliert. SQL-Datenbanken sind auf Rechnern unterschiedlicher Größenordnung implementiert. Dabei kommt ein Client/Server-Konzept zum Einsatz. Für typische Embedded-systeme sind die SQL-Datenbanken aus der IT wegen des recht hohen Ressourcenbedarfs allerdings nicht geeignet. Eine Ausnahme bildet hier SQLite. Diese Spezialentwicklung aus dem Jahr 2000 implementiert ein vollständiges SQL-Datenbanksystem in einer sehr kompakten Programmbibliothek. Die SQLite-Bibliothek lässt sich direkt in entsprechende Embedded-System-Anwendungen integrieren. Ein spezieller SQL-Server wird nicht benötigt. Eine SQLite-Datenbank besteht aus einer einzigen Datei, die im Dateisystem eines Embedded-Systems gespeichert wird. Nutzt man auf einem Embedded-System SQLite zum Speichern der Konfigurationsdaten, sind die zuvor gestellten Fragen hinsichtlich des ‚Wie und wo‘ beantwortet. Auch der Ressourcenbedarf ist geklärt, da die SQLite-Bibliothek nur wenige hundert KByte je Anwendung benötigt. Es bleibt noch die Fragestellung des Setup-Daten-Backups: Da nahezu alle komplexeren Embedded-Systeme über eine IP-fähige Schnittstelle (z.B. Ethernet-LAN oder WLAN) verfügen und darüber hinaus in Umgebungen installiert werden, die zumindest einen Internet-Zugriff von ‚innen nach außen‘ gestatten, ist technisch ohne Weiteres ein Backup im Internet möglich. Dadurch lassen sich sehr viele weitere Praxisprobleme – wie z.B. der Austausch eines defekten Systems und die Übernahme aller Konfigurationseinstellungen in die neue Baugruppe – lösen. Es fehlt eigentlich nur die entsprechende Infrastruktur für derartige Aufgabenstellungen. Diese lässt sich mithilfe geeigneter Cloud-Services realisieren. Der Setup-Daten-Backup einer SQLite-Datenbank kann dann über einen solchen ‚Cloud-Service‘ auf einem zentralen Server im Internet erfolgen.

Was genau ist eigentlich ein Cloud-Service?

Unter einem ‚Cloud-Service‘ versteht man einen speziellen Dienst im Internet, der mithilfe des Cloud-Computing realisiert wird. Der Begriff ‚Cloud‘ basiert im Übrigen auf dem Sachverhalt, dass das Internet in Grafiken und Abbildungen stets als (Netzwerk-) Wolke dargestellt wird. ‚Cloud-Service‘ bedeutet demzufolge, dass ein wie auch immer gearteter Service irgendwo in der (Internet-) Wolke zur Verfügung steht. Das einem Cloud-Service zugrunde liegende Cloud-Computing kann man sich als Modell dreier übereinander liegender Schichten vorstellen, auf die jeweils einzeln per Internet zugegriffen werden kann. Die unterste Ebene bildet die Infrastructure as a Service (IaaS), im Allgemeinen eine virtuelle Rechenzentrums- oder Serverinfrastruktur. Direkt darüber findet man die Platform as a Service (PaaS). In dieser Schicht wird eine Laufzeitumgebung (Computing Platform) mit Betriebssystem, Webserver, Bibliotheken (Library Support), speziellen Sprachinterpretern, Datenbank usw. zur Verfügung gestellt, um selbst entwickelte Anwendungen ablaufen zu lassen. Software as a Service (SaaS) bildet die oberste Ebene. Hier sind die bereits angesprochenen Webanwendungen zu finden. Sie laufen in der PaaS-Ebene und bieten eine per Internet erreichbare Serviceschnittstelle, über welche die jeweiligen Dienste in Anspruch genommen werden können. Die SaaS-Schicht ist für den Zugriff durch Anwender oder dezentrale Subsysteme gedacht – im ersten Fall handelt es sich um manuelle, im zweiten Fall um automatische Zugriffe.

Der Zweifachnutzen

Zwei besonders geeignete Cloud-Services für typische Embedded-System-Anwendungen sind der Setup-Daten-Backup und das Monitoring per Internet. Derartige Services lassen sich mit vertretbarem Aufwand realisieren und bieten einen hohen Nutzen, sowohl für den Embedded-System-Hersteller als auch für den -Anwender. Die Funktionen hinter solchen Services sind:

Setup-Daten-Backup

Auf einem Internet-Server wird eine spezielle ‚Geräte-Datenbank‘ eingerichtet. Jedes Embedded-System, das dieser Datenbank zugeordnet wurde, kann über einen besonderen Schlüssel als Zugangsberechtigung und einen Identifier (Geräte-ID) als Adresse die jeweils aktuellen Konfigurationsdaten in der Datenbank speichern bzw. die zuletzt gespeicherten Daten abrufen. Bei Austausch eines Systems werden durch eine solche Abfrage die aktuellen Einstellungen übertragen. Auf dem Setup-Daten-Server stehen dadurch immer die Konfigurationseinstellungen aller Systeme zur Verfügung. Im Servicefall kann ein entsprechend autorisierter Support-Mitarbeiter diese Daten einsehen und dadurch zumindest schon einmal die in der Praxis recht häufigen Konfigurationsfehler analysieren und korrigieren.

Monitoring-Website

Auf einem Webserver im Internet wird eine Website zur Visualisierung wichtiger Embedded-System-Systemparameter und einer Ereignisprotokolldatei (Logdatei) eingerichtet. Das Embedded-System sendet periodisch Zustandsdaten und -meldungen an diesen Webserver. Das Ergebnis – also den aktuellen Zustand des Embedded-Systems und die letzten wichtigen Systemmeldungen (z.B. Datum/Uhrzeit des letzten Bootvorgangs) – kann sich ein autorisierter Nutzer jederzeit mit einem beliebigen Webbrowser per PC oder Smartphone anschauen. Die auf dem Webserver gespeicherten Embedded-System-Daten können darüber hinaus durch entsprechende Skripte permanent überwacht werden, um bei gravierenden Zustandsabweichungen automatisch Alarmmeldungen per SMS oder E-Mail zu verschicken. Neben den Embedded-System-Zustandsdaten selbst, kann ein solcher Service auch für die Daten des Systems oder der Anlage genutzt werden, in dem das Embedded-System zum Einsatz kommt.

Ein Beispiel aus der Praxis

Die Vorteile Cloud-Services-basierter Lösungen sollen am Beispiel eines BHKW-Anlagenherstellers verdeutlicht werden, der Anlagen mittlerer Leistung (z.b. 250KW elektrische Leistung) anbietet. Blockheizkraftwerke (BHKWs) sind sogenannte Kraft-Wärme-Kopplungs-Anlagen (KWK-Anlagen), die in der Regel aus einem Gasantrieb und einem Generator bestehen. Die Abwärme des Gasantriebs dient als Nutzwärme. Der durch den Generator erzeugte Strom kann in das öffentliche Netz eingespeist oder vor Ort selbst verbraucht werden. Solche BHKWs kommen weltweit in Biogas-Anlagen oder in größeren Gebäuden (Schulen, Kaufhäusern, Krankenhäusern usw.) als dezentrale Energiequellen zum Einsatz. Durch die gleichzeitige Nutzung der Abwärme und des Stroms besitzt eine KWK-Anlage einen besonders hohen Wirkungsgrad. Gesteuert wird ein solches BHKW in vielen Fällen durch ein Embedded-System der oberen Leistungsklasse, auf dem eine Soft-SPS (Speicherprogrammierbare Steuerung in Software) und andere Anwendungen zum Einsatz kommen. Die Vernetzung der gesamten Anlagentechnik erfolgt vielfach per Ethernet-LAN. Hinzu kommen häufig noch RS485-basierte Anbindungen weiterer Datenpunkte. Das Monitoring wird in erster Linie durch die BHKW-Betreiber genutzt. Zusammen mit jeder Anlage liefert der Hersteller ein Apple-iPhone aus. Mit diesem Smartphone kann der Betreiber jederzeit die wichtigsten Anlagenparameter per Internet in Echtzeit betrachten. Dafür greift der Safari-Browser des iPhones auf eine spezielle Monitoring-Webseite zu, in welcher jeweils die Daten einer Anlage gespeichert werden. Mithilfe des Monitorings kann der Embedded-System-Hersteller darüber hinaus dem Anlagenhersteller eine Gewährleistungsverlängerung anbieten. Dazu werden zusätzlich die Versorgungsspannung, die Anzahl der Flash-Schreibzugriffe, Baugruppen und Umgebungstemperatur usw. permanent überwacht. Dadurch wird sichergestellt, dass eine Embedded-System-Baugruppe während der Gewährleistungszeit innerhalb der zulässigen Umgebungsbedingungen betrieben wird. Der Zugriff eines Embedded-Systems auf die beiden Cloud-Services muss immer ‚von innen nach außen‘ (also vom Embedded System in Richtung Internet) erfolgen. Das heißt: ein Embedded-System kontaktiert den Cloud-Service und nicht umgekehrt. Dadurch spielt die IP-Adresse, unter welcher ein Embedded-System mit dem Internet verbunden ist, keine Rolle. Dieses Verfahren funktioniert auch dann problemlos, wenn sich das Embedded-System eines BHKWs in einer Anlage mit einem Router und einer Firewall befindet.

Fazit

Eine eingebettete SQL-Datenbank löst auf elegante Art und Weise die Probleme der Konfigurations-
datenspeicherung und -verwaltung. Die vorgestellten Cloud-Services für SQL-Setup-Daten-Backups und Monitoring sind recht einfach zu realisieren und bieten für den Embedded-System-Anwender einen recht hohen Nutzenvorteil. Sie ermöglichen einen deutlich besseren Service hinsichtlich eventueller Konfigurationsprobleme und bieten darüber hinaus eine vielfach nutzbare Benutzerschnittstelle zur Zustandsvisualisierung.

SSV Software Systems GmbH
www.ssv-embedded.de

Das könnte Sie auch Interessieren