|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| README.md | ||
| justfile | ||
| pom.xml | ||
README.md
PU 1: "Praktikum Service-Discovery"
Dieses Projekt wurde von der Gruppe D entwickelt: Antoniadis Dimitrios, Dexheimer Fynn, Corina Schmitt
Dieses Projekt implementiert einen Syslog-Server auf Basis von UDP gemäß dem RFC 5424 Standard. Es beinhaltet eine automatische Service-Discovery via Broadcast.
Hinweis: Um den Server zu testen, wird ein entsprechender Client benötigt. Das System setzt die installierten Technologien Java, Maven voraus. Just ist Optional.
Projektstruktur & Klassen
pom.xml: Maven-Konfigurationsdatei für Abhängigkeiten und Build-Prozess.justfile: Automatisierungsskript für einfache Ausführung (just server).vs.SyslogServer: Der Hauptdienst. Er startet zwei parallele Threads:- Syslog-Service: Empfängt Log-Nachrichten auf Port 514, validiert die Länge und trennt Metadaten optisch vom Nachrichteninhalt.
- Discovery-Service: Antwortet auf Broadcast-Anfragen auf Port 8888, um Clients die Server-IP mitzuteilen.
vs.SyslogMessage: Kernklasse zur Erzeugung/Repräsentation standardkonformer Nachrichten (inkl. Header, Zeitstempel und Structured Data).vs.AsciiChars/vs.StructuredData: Hilfsklassen zur Einhaltung der RFC-Spezifikationen.
Funktionsablauf (Service Discovery & Logging)
- Broadcast: Ein Client sendet ein UDP-Paket an die Broadcast-Adresse
255.255.255.255:8888. - Antwort: Der Server empfängt den Suchruf und sendet ein Bestätigungs-Paket an den Client zurück.
- Identifikation: Der Client extrahiert die IP-Adresse des Servers aus dem Antwort-Paket.
- Logging: Der Client formatiert die Nachricht nach RFC 5424 und sendet sie direkt an den Server (Port 514).
- Verarbeitung: Der Server empfängt das Datenpaket, validiert die Länge, entfernt das Byte Order Mark (BOM) und trennt die RFC-Metadaten optisch vom eigentlichen Nachrichteninhalt für eine strukturierte Konsolenausgabe.
Ausführung
Stellen Sie sicher, dass Java, Maven und Just auf Ihrem System installiert sind.
1. Konfiguration für Linux/macOS
Da das justfile standardmäßig für die PowerShell optimiert ist, passen Sie bei der Nutzung von Unix-basierten Systemen bitte die erste Zeile im justfile an:
- Ändern Sie
set shell := ["powershell.exe", "-c"]zuset shell := ["sh", "-c"].
2. Wichtige Befehle
Nutzen Sie just, um die folgenden Aufgaben automatisiert auszuführen:
- Kompilieren:
just compile - Server starten:
just server - Projekt aufräumen:
just clean
Hinweis: Weitere Befehle für Tests oder die Javadoc-Generierung finden Sie direkt im justfile.