Verteilte_Systeme/README.md

30 lines
1.6 KiB
Markdown

# Verteilte_Systeme
Bearbeitung Prüfungsvorleistung für Verteilte Systeme
# Syslog-Logging-System (RFC 5424)
Dieses Projekt implementiert einen Syslog-Server und einen Test-Client auf Basis von UDP. Es beinhaltet eine automatische Service-Discovery.
## Projektstruktur & Klassen
* **`pom.xml`**: Die Maven-Konfigurationsdatei. Sie verwaltet Abhängigkeiten und die Java-Version.
* **`justfile`**: Automatisierungsskript für Windows (PowerShell) und Linux, um Befehle wie `just clean` oder `just exec` zu nutzen.
* **`vs.SyslogServer`**: Der Hauptdienst. Er startet zwei parallele Threads:
* **Syslog-Service**: Empfängt Log-Nachrichten auf Port 514.
* **Discovery-Service**: Antwortet auf Broadcast-Anfragen auf Port 8888.
* **`vs.SyslogClient`**: Test-Client, der den Server via Broadcast sucht und eine standardkonforme Nachricht sendet.
* **`vs.SyslogMessage`**: Repräsentiert eine Nachricht gemäß RFC 5424.
* **`vs.AsciiChars` / `vs.StructuredData`**: Hilfsklassen zur Validierung und Formatierung von Zeichenketten gemäß Spezifikation.
## Funktionsablauf (Service Discovery)
1. **Broadcast**: Der Client sendet ein UDP-Paket an `255.255.255.255:8888`.
2. **Antwort**: Der Server empfängt den Broadcast und sendet ein leeres UDP-Paket an den Client zurück.
3. **Identifikation**: Der Client liest die IP-Adresse des Absenders aus dem Antwort-Paket aus.
4. **Logging**: Der Client sendet die eigentliche Syslog-Nachricht direkt an die ermittelte IP auf Port 514.
## Ausführung
* Server starten: `just exec SyslogServer`
* Client starten: `just exec SyslogClient`
* Aufräumen: `just clean`