2.9 KiB
PU 1: "Praktikum Service-Discovery"
Dieses Projekt wurde von der Gruppe D entwickelt: Antoniadis Dimitrios, Dexheimer Fynn, Schmitt Corinna
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 und Maven voraus. Die Nutzung von Just ist optional und dient lediglich der vereinfachten Ausführung der Befehle.
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 und Maven auf Ihrem System installiert sind. Die Installation von Just wird empfohlen, ist jedoch optional.
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
Hinweise:
- Weitere Befehle (z. B. für Tests oder Javadoc) finden Sie direkt im
justfile. - Falls Sie Just nicht verwenden möchten, können die entsprechenden Maven-Befehle (z. B.
mvn compileodermvn exec:java...) direkt genutzt werden.