summaryrefslogtreecommitdiffstats
path: root/Konzept/Design.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Konzept/Design.txt')
-rw-r--r--Konzept/Design.txt54
1 files changed, 35 insertions, 19 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