diff options
Diffstat (limited to 'Konzept/Design.txt')
-rw-r--r-- | Konzept/Design.txt | 54 |
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 |