summaryrefslogtreecommitdiffstats
path: root/Konzept
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-06-11 03:30:59 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-06-11 03:30:59 +0200
commit86315eee08beea75d92eb506d46de4d357ec659a (patch)
treefdc8c4e131056d766df01f74353e0e7e03d40588 /Konzept
parentfda583fd83f27d6754891a77c24bdec9ddc19d4f (diff)
downloadmad-86315eee08beea75d92eb506d46de4d357ec659a.tar
mad-86315eee08beea75d92eb506d46de4d357ec659a.zip
Build-Infrastruktur erstellt
Diffstat (limited to 'Konzept')
-rw-r--r--Konzept/Design.txt45
-rw-r--r--Konzept/Konzept.txt57
-rw-r--r--Konzept/Netzwerk.txt54
3 files changed, 156 insertions, 0 deletions
diff --git a/Konzept/Design.txt b/Konzept/Design.txt
new file mode 100644
index 0000000..2b621b3
--- /dev/null
+++ b/Konzept/Design.txt
@@ -0,0 +1,45 @@
+Kern-Design:
+
+Netzwerk-Stack
+- Von allen Teilen genutze Klasse
+
+Dämon-Manager
+* Wartet auf Verbindungen von Dämonen
+* Verwaltet Liste mit Dämonen
+* Erlaubt die Abgabe von Befehlen an Dämonen
+ - sind Multi- bzw. Broadcast-Befehle möglich (z.B. Shutdown all), oder müssen die Clients einzeln Befehle an alle schicken?
+
+Client-Manager
+* Wartet auf Verbindungen von Clients
+* Nimmt Befehle von Clients entgegen
+
+Request-Manager
+* Verwaltet die Request-Liste mit Quelle und Ziel jedes Requests
+
+User-Manager
+* Stellt ein Backend-unabhängiges Interface zur Benutzer-Verwaltung zur Verfügung
+
+Logging-Manager
+* Loggt alle Aktivitäten
+
+Backends
+- MySQL
+- Dateisystem
+- Kerberos-Verwaltung
+
+
+Dämon-Design:
+
+Netzwerk-Stack
+
+System-Backend
+* Führt alle Befehle aus, die der Server schickt
+* Schickt Logs an den Server
+
+
+Client-Design:
+
+Netzwerk-Stack
+
+???
+
diff --git a/Konzept/Konzept.txt b/Konzept/Konzept.txt
new file mode 100644
index 0000000..5fe7480
--- /dev/null
+++ b/Konzept/Konzept.txt
@@ -0,0 +1,57 @@
+1. Dreiteilung in Kern, Per-Host-Dämon und Client
+2. Kerberos-Authentifikation zwischen den Teilen
+
+Idee: Web-Interface statt Client?
+
+
+Funktionen der Teile:
+
+1. Kern:
+* Konfiguration (?)
+* Benutzerverwaltung
+* Verwaltung der Dämonen
+* Verwaltung von Logdaten
+* Status
+* (Statistik)
+* (Serververwaltung)
+* (Webinterface)
+
+2. Dämon
+* Verbindung zum Server zum Empfang von Befehlen
+* Rechnerverwaltung (Herunterfahren, etc.)
+* Bereitstellung von Statusinformationen (z.B. aktueller Benutzer)
+* Weitergabe von Logdaten
+
+3. Client
+* Bereitstellung aller Funktionen
+* Authentifikation über Kerberos
+
+
+Elemente, die von allen Teilen gebraucht werden:
+* Netzwerkstack (siehe Netzwerk.txt)
+* Kerberos
+* Auslesen von Konfigurationsdateien
+
+
+Elemente des Kerns:
+* 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
+* (Webinterface: PHP oder Mini-Server?)
+
+Elemente des Dämons:
+* System-Backend (Verwaltung & Statusinformationen, Logging)
+
+Elemente des Clients:
+* Frontend: Konsole (Shell-artig)
+* (Frontend: Gtk)
+* Einlesen von Benutzerlisten
+
+
+Elemente, die noch nicht eingeordnet sind:
+* Migration von Benutzerlisten (müssten Kern und Client gemeinsam machen)
+
diff --git a/Konzept/Netzwerk.txt b/Konzept/Netzwerk.txt
new file mode 100644
index 0000000..4536e37
--- /dev/null
+++ b/Konzept/Netzwerk.txt
@@ -0,0 +1,54 @@
+Ideen zum Netzwerkstack:
+
+
+Alles TLS-verschlüsselt?
+
+
+Initalisierung der Verbindung:
+
+Client -> Server
++---+---+---+---+-------+---------------------+---------------------+
+| 1 | 2 | 3 | 4 | 5 - 6 | 7 | 8 |
++---+---+---+---+-------+---------------------+---------------------+
+|'M'|'A'|'D'| 0 |Version|min. Protokollversion|max. Protokollversion|
++---+---+---+---+-------+---------------------+---------------------+
+
+Server -> Client
++---+---+---+---+-------+----------------+---+
+| 1 | 2 | 3 | 4 | 5 - 6 | 7 | 8 |
++---+---+---+---+-------+----------------+---+
+|'M'|'A'|'D'| 0 |Version|Protokollversion| 0 |
++---+---+---+---+-------+----------------+---+
+
+8er Gruppen schön oder unnötig?
+
+
+Datenpakete:
+
++-------------------+--------------+-----------------------+-----
+| 1 - 2 | 3 - 4 | 5 - 8 | 9 - ...
++-------------------+--------------+-----------------------+-----
+|Typ des Datenpakets|Request-ID (*)|Größe der Nutzdaten (*)|Nutzdaten
++-------------------+--------------+-----------------------+-----
+
+* (könnte abhängig vom Typ auch weggelassen werden)
+
+Frage: Verwaltet der Server die Request-IDs? Sollten Clients also beim Server eine Request-ID erfragen, wenn sie was anderes schicken wollen?
+
+
+Mögliche Pakettypen:
+
+* Keep-Alive (unnötig?)
+* Request-ID-Anfrage?
+* Login-Anfrage -> Übertragung von Kerberos-Daten
+* Login-Antwort
+* Dämon-Discovery
+* Anfrage an Dämon (Kapselt anderes Paket?) -> wird weitergeleitet
+* Antwort von Dämon (Kapselt anderes Paket?) -> zurück zum Client
+* Status-Anfrage
+* Status-Antwort
+* Kommando (Shutdown, etc.)
+* Kommando-Antwort
+* Error
++ weitere Anfragen und Antworten...
+