Das DIETER-Backend wurde um eine visuelle Workflow-Engine erweitert. Sie ermöglicht die Konfiguration und Ausführung von Abläufen, die Sensordaten auswerten und definierte Aktionen auslösen. Ergänzend wurden Datenzugriff, Dashboard und automatisierte Tests überarbeitet.
Die Workflow-Engine baut auf der bisherigen Verarbeitung von Sensordaten im digitalen Bergwerksmonitoring auf. Sie ergänzt die bestehenden Warnregeln um Abläufe, die mehrere Bedingungen, zeitliche Schritte und Benachrichtigungen miteinander verbinden.
Abläufe aus Datenzugriffen, Bedingungen und Aktionen
Im visuellen Workflow-Builder werden einzelne Verarbeitungsschritte als Knoten miteinander verbunden. Für diese Knoten stehen unterschiedliche Handler bereit. Ein Handler ist die Softwarekomponente, die den jeweiligen Schritt ausführt.
Zu den umgesetzten Bausteinen gehören Sensordatenabfragen, Vergleiche, Wartezeiten, die Prüfung des Sensorstatus sowie E-Mails und Webhooks. Webhooks übermitteln ein Ereignis an eine definierte Schnittstelle eines anderen Systems.
Ein möglicher Ablauf liest eine Messgröße ein, vergleicht sie mit einem konfigurierten Wert und versendet abhängig vom Ergebnis eine E-Mail. Zusätzliche Bedingungen und zeitliche Schritte können diesen Ablauf ergänzen. Das Beispiel beschreibt eine Einsatzmöglichkeit der Engine; die konkrete Konfiguration richtet sich nach der fachlichen Überwachungsaufgabe.
Von der grafischen Konfiguration zur Ausführung
Die gezeichneten Verbindungen und Einstellungen müssen in eine verarbeitbare Ablaufstruktur überführt werden. Dafür wurden ein Parser, ein Validator und ein Ausführungskontext implementiert.
Der Parser liest die Konfiguration ein. Der Validator prüft sie anhand der vorgesehenen technischen Regeln. Für die Ausführung stehen anschließend die jeweiligen Knoten-Handler und ein gemeinsamer Ausführungskontext zur Verfügung.
Ein zusätzlicher Sensor-Kontext stellt den Bezug zu den betroffenen Sensoren und Messdaten her. Für zeitbezogene Konfigurationen wurden außerdem ein Schedule Inspector und die Verarbeitung von Cron-Ausdrücken ergänzt. Solche Ausdrücke beschreiben wiederkehrende Zeitpunkte nach einem festgelegten Schema.
Die technische Prüfung einer Ablaufstruktur und die fachliche Festlegung ihrer Bedingungen bleiben dabei getrennte Aufgaben. Vergleichswerte, Zeitvorgaben und Empfänger müssen zur jeweiligen Mess- und Überwachungsaufgabe passen.
Datenaktualität als eigene Bedingung
Die Engine berücksichtigt neben Messwertvergleichen auch Bedingungen für ausbleibende Daten und den Sensorstatus. Damit kann ausdrücklich geprüft werden, ob innerhalb eines festgelegten Zeitraums ein neuer Wert eingetroffen ist.
Diese Information ist für die Interpretation einer Messreihe wesentlich. Ein zuletzt gespeicherter Wert beschreibt den Zustand zum Messzeitpunkt. Wie aktuell diese Aussage ist, ergibt sich erst aus dem zugehörigen Zeitstempel.
Auf der Detailseite wird deshalb das Datum der letzten Messung angezeigt. Zusammen mit den neuen Bedingungen lässt sich die Verfügbarkeit der Daten eigenständig betrachten. Eine erkannte Datenlücke liefert dabei einen Anlass zur Prüfung; ihre Ursache ergibt sich aus weiteren Informationen zum Sensor und zur Übertragung.
Diagrammdaten werden bei Bedarf nachgeladen
Für das Dashboard wurde das Nachladen verdichteter Diagrammdaten eingeführt. Dieses Lazy Loading reduziert die Datenmenge, die beim initialen Aufbau der Seite verarbeitet werden muss. Die Zeitachse der Diagramme richtet sich nach dem ausgewählten Betrachtungszeitraum.
Ergänzend wurden Filter, benutzerspezifische Einstellungen für die Datentypdarstellung und die mobile Ansicht überarbeitet. Zeitraumauswahl und Datenauflösung bleiben dabei für die Interpretation entscheidend: Ein längeres angezeigtes Intervall bedeutet nicht automatisch, dass jeder einzelne Messwert in der Darstellung enthalten ist.
Simulator und Tests für die Weiterentwicklung
Ein Sensor-Datensimulator erzeugt Daten für Entwicklung und Demonstration. Dadurch lassen sich Ansichten und Abläufe mit vorbereiteten Messreihen erproben, ohne auf entsprechende Werte aus einer laufenden Messung warten zu müssen.
Die PHPUnit-Abdeckung wurde unter anderem für Sensoren, Datentypen, Benutzer, Dashboard und Workflows ausgebaut. Für Workflow-Tests wurde zusätzlich ein Mock-Interface ergänzt. Es ermöglicht den Einsatz von Test-Doubles, also kontrollierten Ersatzimplementierungen für beteiligte Komponenten. Damit lassen sich Teile der Ausführungslogik unter definierten Testbedingungen prüfen.
