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.

Neues Element erstellen

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.

Tooltips in Elementen

Um Elemente zu verbinden, wird aus dem etwas dunklerem Kreis in der Mitte die dann erscheinende Linie zum Ziel-Element gezogen.

Flow erstellen

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.

Unterschiedliche Verbindungstypen setzen

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.

Verbindungstypen

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.

Anpassung der Kanten

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.

Prozessor ausführen

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.

Start dauerhaftes laufen

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.

Sucess Relation

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.

Failure Relation

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.

Fehlerbehebung

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.

InvokeHttp Relationen

Im Falle des Duplicate-Prozessors gibt es drei weitere Relationen, die spezifisch zu diesem Prozessor gehören und die Success-Relation ersetzen.

InvokeHttp Relationen

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 im Diagramm

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.

Isolierte Ausführung

Dabei ist zu berücksichtigen, dass es eine tatsächliche Ausführung in IGUASU mit den eingestellten Daten gibt.
Dies ist harmlos, wenn es sich beispielsweise um einen Compressor handelt. Problematisch kann es aber sein, wenn z.B. Daten im Filesystem verändert oder in einer Datenbank gelöscht werden.

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.