|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| README.md | ||
| justfile | ||
| pom.xml | ||
README.md
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 wiejust cleanoderjust execzu 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)
- Broadcast: Der Client sendet ein UDP-Paket an
255.255.255.255:8888. - Antwort: Der Server empfängt den Broadcast und sendet ein leeres UDP-Paket an den Client zurück.
- Identifikation: Der Client liest die IP-Adresse des Absenders aus dem Antwort-Paket aus.
- 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