summaryrefslogtreecommitdiffstats
path: root/Konzept
diff options
context:
space:
mode:
Diffstat (limited to 'Konzept')
-rw-r--r--Konzept/Design.txt54
-rw-r--r--Konzept/Konzept.txt22
2 files changed, 47 insertions, 29 deletions
diff --git a/Konzept/Design.txt b/Konzept/Design.txt
index c9baaca..5bcb8ff 100644
--- a/Konzept/Design.txt
+++ b/Konzept/Design.txt
@@ -1,38 +1,54 @@
-Kern-Design:
+Grundlegendes Design:
Netzwerk-Stack
-* Von allen Teilen genutze Klassen
* Server-Connection und Client-Connection-Klassen
* Server-Connections werden von einer Listener-Klasse erzeugt
* Nicht-blockierende Sockets (Implementierung ohne Multithreading möglich)
-+ größtenteils implementiert
++ implementiert
-Config-Manager
+Initializable:
+* Verwaltet Informationen über die Reihenfolge der Initialisierungen von Objekten
+* Wird beim Beenden die Objekte in umgekehrter Reihenfolge deinitialisieren
++ implementiert
+
+ConfigManager
* Liest Konfiguration aus Dateien und Datenbanken
-* Von allen Teilen genutzte Klasse
* Backends:
- - Kern: Dateien, MySQL
- - Dämonen, Clients: Dateien, Kern
+ - Server: Dateien, MySQL
+ - Dämonen, Clients: Dateien, Server
* siehe Config.txt
++ teilweise implementiert
-Connection-Manager
-* Wartet auf Verbindungen von Dämonen und Clients (implementiert)
-* Verwaltet Liste mit Dämonen
-
-Request-Manager
-* Von allen Teilen genutze Klasse
+RequestManager
* Verwaltet die Request-Liste mit Quelle und Ziel jedes Requests
* Sendet und beantwortet Requests
-+ größtenteils implementiert
++ implementiert
-User-Manager
-* Stellt ein Backend-unabhängiges Interface zur Benutzer-Verwaltung zur Verfügung
+ThreadManager:
+* Erstellt einen Worker-Thread, der die meiste Arbeit übernimmt; bei längeren Arbeiten kann ein neuer Worker-Thread den alten ersetzen
++ teilweise implementiert
+
+ModuleManager:
+* Erlaubt es, Module zu laden
+* Abhängigkeiten zwischen Modulen sind möglich
+* Module können sich an vielen Stellen in das Hauptprogramm einfügen
++ teilweise implementiert
-Logging-Manager
+LogManager
* Loggt alle Aktivitäten
-+ Jakob
+* Ausgabe in eigenem Thread
++ implementiert
+
+Server-Design:
+
+ConnectionManager
+* Wartet auf Verbindungen von Dämonen und Clients (implementiert)
+* Verwaltet Liste mit Dämonen
+
+UserManager
+* Stellt ein Backend-unabhängiges Interface zur Benutzer-Verwaltung zur Verfügung
-Backends
+Backends (Module)
- MySQL
- Dateisystem
- Kerberos-Verwaltung
diff --git a/Konzept/Konzept.txt b/Konzept/Konzept.txt
index e284bd8..471650d 100644
--- a/Konzept/Konzept.txt
+++ b/Konzept/Konzept.txt
@@ -1,10 +1,10 @@
-1. Dreiteilung in Kern, Per-Host-Dämon und Client
-2. Kerberos-Authentifikation zwischen den Teilen
+1. Dreiteilung in Server, Per-Host-Dämon und Client
+2. Kerberos-Authentifikation zwischen den Teilen möglich
Funktionen der Teile:
-1. Kern:
+1. Server:
* Konfiguration
* Benutzerverwaltung
* Verwaltung der Dämonen (teilweise implementiert)
@@ -38,22 +38,24 @@ Funktionen der Teile:
Elemente, die von allen Teilen gebraucht werden:
* Netzwerkstack (siehe Netzwerk.txt)
-* Kerberos
-* Auslesen von Konfigurationsdateien
- - sollte der Kern Teile seiner Konfiguration in einer MySQL-Datenbank ablegen?
+* Kerberos (als Modul)
+* Auslesen von Konfigurationsdateien & -datenbanken
+* Logger
+ - Backends: Konsole, als Modul: Datei, Datenbanken
+ - Logs haben Priorität und Kategorie
-Elemente des Kerns:
+Elemente des Servers:
* Benutzerverwaltung:
- Daten-Backend (MySQL, FS)
- Passwort-Backend (Kerberos)
* Kommando-Weiterleitung
* System-Backend (Server-Status)
* Log-Verwaltung (Backend: MySQL?)
- - der Kern sollte alle größeren Aktivitäten loggen
+ - der Server sollte alle größeren Aktivitäten loggen
Elemente des Dämons:
-* System-Backend (Verwaltung & Statusinformationen, Logging)
+* System-Backend (Verwaltung & Statusinformationen)
Elemente des Clients:
* Frontend: Konsole (Shell-artig)
@@ -62,5 +64,5 @@ Elemente des Clients:
Elemente, die noch nicht eingeordnet sind:
-* Migration von Benutzerlisten (müssten Kern und Client gemeinsam machen)
+* Migration von Benutzerlisten (müssten Server und Client gemeinsam machen)