Entwicklung und Test
Flows
Erstellte Elemente können beliebig im Editiermodus verschoben und verbunden werden. Eine Kette von Verbindungen der Elemente im Diagramm, also ein Datenfluss, wird als Flow bezeichnet.
Neue Elemente können entweder per Drag&Drop aus der Toolbar oder durch Loslassen einer Linie auf eine leere Stelle im Diagramm erstellt werden.
Außerdem können die Elemente direkt Success- und Failure-Beziehungen erzeugen. Die dunkleren Kreise auf jedem Element enthalten Tooltips. Diese bieten eine detailliertere Beschreibung der möglichen Beziehungen.
Um Elemente zu verbinden, wird aus dem etwas dunklerem Kreis in der Mitte die dann erscheinende Linie zum Ziel-Element gezogen.
Verbindungstypen
Für die meisten Prozessoren stehen standardmäßig die "success"- und "failure"-Verbindungsoption zur Verfügung, die je nach Erfolg oder Misserfolg des Prozesses ausgeführt werden.
Der graue Pfeil stellt die Default-Verbindung dar, welche letztlich alle Verbindungstypen enthält.
Bei der Verbindung öffnet sich ein zusätzliches Fenster, in dem der spezifische Typ der Verbindung ausgewählt werden kann.
Darüber hinaus haben bestimmte Prozessoren zusätzliche Typen der Verbindung, die für spezifische Ergebnisse oder Ereignisse genutzt werden können.
Zusätzlich besteht bei einigen Prozessoren die Möglichkeit, mit dynamischen Properties eigene Verbindungstypen zu erstellen.
Zur Verbesserung der Übersichtlichkeit sind die dargestellten Kanten der Verbindungen farblich kodiert oder im Falle von dynamischen Properties oder spezifischen Ereignissen beschrieben.
Bei der Verschiebung von bereits verbundenen Elementen bleiben die Verknüpfungen weiterhin erhalten und passen sich der Neupositionierung dynamisch an.
Zur Erstellung eines einfachen Flows siehe 5-Minuten-Tutorial.
Veränderung der Kanten
Die angelegten Verbindungen können zusätzlich optisch verändert und gebogen werden, um eine bessere Übersicht im Datenfluss zu erreichen. Werden die Kanten im Editiermodus verschoben, erscheinen Punkte auf der Kante, die zur Formung genutzt werden können.
Durchgeführte Veränderungen können über das Kontextmenü erneut zurückgesetzt werden.
Ausführung von Flows
Prozessoren oder Flows können auf unterschiedliche Arten, vereinzelt oder in der gesamten Prozessgruppe, ausgeführt werden.
Die Zustände von Prozessoren können über das Kontextmenü (per Rechtsklick auf das Element) angepasst und dadurch gestartet oder gestoppt werden.
Wenn hingegen das Kontextmenü auf einer leeren Fläche aufgerufen und der Status verändert wird, bezieht sich diese Aktion auf alle Prozessoren in der aktuellen und allen untergeordneten Prozessgruppen.
Die Konfiguration der Ausführung, wie beispielsweise die Häufigkeit der Ausführung, erfolgt im Konfigurationsbereich.
Während Prozessoren sich im Zustand RUNNING
befinden, wird diese Konfiguration berücksichtigt.
Dieser Zustand wird durch die Auswahl des Kommandos Start aktiviert.
Wird hingegen über das Kontextmenü Run Once
ausgeführt, wird der Prozessor nur einmal ausgeführt.
Alle vorhergehenden Ausführungen können in einer Event-Tabelle eingesehen werden.
Success Relation
Die Success Relation ist eine Verbindung, die allen Prozessoren zur Verfügung steht. FlowFiles werden immer dann an die Success Relation weitergeleitet, wenn die Verarbeitung im Prozessor erfolgreich war.
Zu erkennen ist die Success Relation im Diagramm durch die grüne Farbe, welche von keiner anderen Relation verwendet wird.
Failure Relation
Die Failure Relation die den meisten Prozessoren als Option zur Verfügung steht ist oftmals der erste Schritt für eine angemessene Fehlerbehandlung. An diese Relation werden FlowFile immer dann weitergegeben, wenn es bei der Verarbeitung innerhalb des Prozessors zu einem Fehler gekommen ist. Dadurch können auftretende Fehler einfach abgefangen werden, um in einem dafür vorgesehenen Zweig durch die Anbindung von weiteren Prozessoren angemessen darauf zu reagieren. Zu erkennen ist die Success Relation im Diagramm durch die rote Farbe, welche von keiner anderen Relation verwendet wird.
Oft werden als erste Endpunkte Funnel eingesetzt, um kenntlich zu machen, dass an der entsprechenden Stelle weitere Verarbeitungsschritte hinzugefügt werden sollten. Dies unterstützt die Nutzer*innen zudem dadurch in der Fehlererkennung, dass die FlowFiles entsprechend auf der Failure-Kante ersichtlich sind.
FlowFiles können an dieser Stelle analysiert werden, um die Ursache des Fehlers zu identifizieren. Hierzu bietet die Event-Tabelle weitere Informationen zum fehlerhaften Event des Prozessors.
Zur angemessenen Fehlerbehandlung ist es allerdings wichtig, die FlowFiles eines Fehlers nicht nur in einem Funnel zu sammeln, sondern in weiteren Schritten zu bearbeiten, um vorhanden Fehler angemessen zu adressieren.
Zusätzlich besteht die Möglichkeit, generierte Fehler mit den Metro-Prozessoren zu sammeln und die Fehlerbehandlung gebündelt durchzuführen.
Weitere Relationen
Für unterschiedliche Prozessortypen gibt es noch weitere andere Relationstypen neben den Relationen Failure oder Success.
Beim InvokeHttp-Prozessor gibt es vier weitere Relationen, die genutzt werden können. Dazu gehören Retry, Response, Original und No Retry.
-
Retry
Wenn der Response-Code zwischen 500 und 599 ist, wird es hier weitergeleitet. -
Response
Wenn der Prozessor einen Request herausschickt und die Response successful ist, wird die originale Anfrage (FlowFile) über diese Relation weitergeleitet. -
Original
Wenn an den Prozessor ein Request angefragt wird und dieser successful ist, wird die originale Anfrage (FlowFile) über diese Relation weitergeleitet. -
No Retry
Wenn der Response-Code zwischen 400 und 499 ist, wird es hier weitergeleitet.
Im Falle des Duplicate-Prozessors gibt es drei weitere Relationen, die spezifisch zu diesem Prozessor gehören und die Success-Relation ersetzen.
FlowFiles
Datenpakete, die über die dadurch entstandenen Kanten übermittelt werden, werden als FlowFiles bezeichnet. FlowFiles werden jeweils auf der erstellten Kante selbst im Diagramm dargestellt und können zudem durch einen Klick auf die Kante in der Queue des Prozessors angesehen werden.
FlowFiles besitzen zum einen Inhalt und Metadaten, die im Rahmen von IGUASU als Attribute bezeichnet werden. Sowohl der Inhalt als auch die Attribute können zum Routing oder zur Übermittlung von Informationen an andere Prozessoren oder externe Systeme genutzt werden.
Testen einzelner Prozessoren
Wie zuvor erwähnt, kann ein Prozessor im Config Panel durch den Button in der Toolbar getestet werden. Für die Tests werden die Daten aus dem Data Panel geladen, die manuell oder durch die Auswahl eines Events aus der Event-Tabelle hinterlegt wurden.
Dabei ist zu berücksichtigen, dass es eine tatsächliche Ausführung in IGUASU mit den eingestellten Daten gibt. |
Die Ausführung öffnet ein Result-Panel im unteren Bereich.
Über die Buttons wird angezeigt, welche Prozessor-Ausgänge die Daten genommen hätten.
Je nach Auswahl dieser Buttons werden die zugehörigen Daten der Ausführung angezeigt.
Gab es bei der Ausführung Logs oder auch Konsolen-Ausgaben, werden diese ebenfalls angezeigt.
Die Ausführung kann beliebig oft wiederholt werden. Hierbei werden geänderte Daten der Properties, aber auch der Eingangsdaten und Attribute aus der Ausführungssicht berücksichtigt.
In dem Screenshot werden die Ausführungsdaten und die Konfiguration des Prozessors untereinander angezeigt. Die zuvor erwähnte simultane Anzeige des Config Panels und Data Panels kann bei der isolierten Ausführen genutzt werden, um die Eingangsdaten, auf die sich die Ausführung des Prozessors bezieht, ebenfalls anzeigen und sogar anpassen zu können.