Skip to content
This repository has been archived by the owner on Apr 12, 2021. It is now read-only.

Der ServerManager

firesoft-de edited this page Feb 8, 2018 · 3 revisions

Sobald mehr als eine Person an der Datenbank arbeiten möchte, ergibt sich die Problemstellung das allen ein direkter Zugang zur Datenbank ermöglicht werden muss. Dadurch besteht das Risiko, dass es gewollt oder ungewollt zur Beschädigung der Daten kommt.

Um dieses Problem zu umgehen, exisitiert der ServerManager. Mit diesem können mehrere Benutzer ohne direkten Zugriff auf die Datenbank an dieser Arbeiten. Der ServerManager besteht aus einer Windows Desktopanwendung und einem Serverskript.

Desweiteren wird der Umgang mit der Datenbank allgemein erleichtert, da kein Zugriff über das Webinterface notwendig ist.

Verwendung

Der ServerManager dient nur als Schnittstelle zur Serverdatenbank. Die Datenerzeugung und -verwaltung ist momentan nicht implementiert. Ich nutze hierzu eine Exceltabelle. Die Vorlage ist unter server/tools zu finden.

Ablauf des Datenuploads

  1. Als erstes wird der Button "Exceldatei laden" verwendet um die Daten zu laden. Nachdem die Datei im nachfolgenden Dateidialog ausgewählt und die Eingabe mit OK bestätigt wurde, beginnt der Ladevorgang.
  2. Parallel kann nun schon die Serverversion über den Button "Server abfragen" abgerufen werden. Dazu müssen zunächst die Anmeldeinformationen sowie die Server-Url eingegeben werden. Url und Benutzername werden dabei in der settings.xml gespeichert. Der erfolgreiche Datenabruf ist durch eine Meldung im Ausgabefenster und eine Zahl im Feld "Serverinformationen" zu erkennen. Zusätzlich wird der Passwort-Hash im entsprechenden Feld angezeigt.
  3. Nachdem beide Prozesse beendet sind, können die Tabellen ausgewählt werden, welche geändert werden sollen. Dies erfolgt durch anhaken dieser. Dann kann noch ausgewählt werden, ob die Serverversion automatisch erhöht werden soll. Gestartet wird der Upload mittels des Buttons "Upload starten". Es erfolgt eine Ausgabe für jeden Eintrag in dem Erfolg oder Misserfolg gemeldet wird. Diese haben die Form ID 12 - SUCCESS oder ID 12 - SQL ERROR. Letztere Meldung kann bspw. auf Einträge hindeuten die sich nicht verändert haben (eine genauere Fehlerkennung findet im Serverskript nicht statt).

Entwicklungshinweise

Umgebungsdaten

Zur korrekten Funktionsweise des ServerManagers ist die Datei environment.xml notwendig. In ihr sind Fehlermeldungen für Serverfehler definiert. Außerdem enthält sie serverseitige Sortierung der Spalten sowie die Namen dieser.

Primär werden diese Daten dazu verwendet, die Daten in einen JSON-String zu verpacken und dabei die korrekten Tabellennamen zu verwenden. Daneben wird durch den ServerManager auch eine Sortierung durchgeführt (falls die Reihenfolge der Spalten innerhalb von Excel geändert wurde).

Struktur

Der Import der Daten aus einer externen Quelle erfolgt über die LoadManager Klasse. Sie übernimmt die Verwaltung der einzelnen Loader Klassen. Um die GUI während des Datenimports nicht einfrieren zu lassen, wird dieser in gesonderten Tasks ausgeführt. Die Organisiation dieser Task wird ebenfalls durch den LoadManager übernommen.

Load - Klassen

Der eigentliche Datenimport wird in sogenannten Load Klassen durchgeführt. Sie sind durch die abstrakte Klasse AbstractLoader standartisiert und mit zwei Hilfsmethoden ausgestattet.

Die abstrakte Klasse erwartet die Definition einer Load Methode. Diese wird asynchron ausgeführt und muss die Anweisungen zum Datenimport enthalten. Die geladenen Daten werden nicht als Rückgabewert ausgegeben, sondern als sogenannte UploadObjects in einer Liste (Data) gespeichert.

Das erstellen von Loadern für viele verschiedene Datenquellen ist durch diese Struktur stark vereinfacht.