Kern-Design: Netzwerk-Stack - Von allen Teilen genutze Klasse - Server-Connection und Client-Connection-Klassen - Server-Connections werden von einer Listener-Klasse erzeugt - Paket-Klasse; einzelne Paket-Typen werden abgeleitet - Nicht-blockierende Sockets (Implementierung ohne Multithreading möglich) 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 ???