From 5bf3e2229015d93808bb0c2f4729c2c4f4da414e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 29 Apr 2009 23:12:24 +0200 Subject: Konzept aktualisiert --- Konzept/Design.txt | 54 ++++++++++++++++++++++++++++++++++------------------- Konzept/Konzept.txt | 22 ++++++++++++---------- 2 files changed, 47 insertions(+), 29 deletions(-) (limited to 'Konzept') 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) -- cgit v1.2.3