Bachelorarbeit: Eventverknüpfungssprache
Thema: Konzeption und Implementierung einer Eventverknüpfungssprache für Video-Sicherheitstechnik.
Projektkontext & Herausforderung
In der modernen Sicherheitstechnik (CCTV) generieren Kameras und Rekorder eine Vielzahl von Events (Bewegungserkennung, Kontakt-Eingänge, Video-Analyse, System-Meldungen). Die Herausforderung bestand darin, ein flexibles System zu schaffen, das es ermöglicht, diese atomaren Events logisch zu verknüpfen (z.B. “Wenn Kamera 1 Bewegung meldet UND Kontakt 3 offen ist DANN Alarm auslösen”), ohne für jede neue Anforderung den Quellcode der Firmware anpassen zu müssen.
Lösungsansatz: Domain Specific Language (DSL)
Statt hardcodierter Logik wurde eine eigene Skriptsprache entwickelt, die speziell auf die Anforderungen von Ereignisverarbeitungen (“Event Processing”) zugeschnitten ist. Dies ermöglichte eine dynamische Konfiguration zur Laufzeit.
- Sprachdefinition: Entwurf der Syntax mittels EBNF (Extended Backus-Naur Form) und Metasyntax zur formalen Beschreibung der Grammatik.
- Compiler-Technik: Implementierung eines Parsers (basierend auf PEG - Parsing Expression Grammars), der den Skriptcode validiert, tokenisiert und in einen Abstract Syntax Tree (AST) überführt.
Technische Umsetzung (Event Engine)
Das Herzstück der Arbeit war die Laufzeitumgebung (“Event Engine”), die als Hochleistungs-Backend fungierte:
- Multithreading-Architektur: Einsatz von Worker-Threads für eine effiziente, parallele Verarbeitung eingehender Event-Ströme, um Latenzen zu minimieren (Echtzeit-Anforderung).
- Netzwerkkommunikation: Socket-basierte Schnittstellen (TCP/IP) zur Anbindung an Dallmeier-Rekorder und Peripheriegeräte.
- Logik-Prozessor: Auswertung von Abhängigkeiten im AST, inklusive boolescher Operatoren (
AND,OR,NOT), Zählern (Event Counts) und Timeouts. - System-Integration: Die Engine steuerte physische I/O-Ausgänge und interagierte bidirektional mit dem Management-System SeMSy (Security Management System) zur Visualisierung von Alarmen auf Lageplänen (Maps).
Ergebnis
Das entwickelte System abstrahierte die Komplexität der darunterliegenden Hardware. Es ermöglichte Inbetriebnehmern, komplexe Alarmszenarien über einfache Konfigurationsdateien abzubilden. Die klare Trennung von Logik-Definition (DSL) und Verarbeitungs-Engine erhöhte die Flexibilität, Wartbarkeit und Skalierbarkeit der Sicherheitslösungen signifikant.