HelloWorld-Anwendung - AWS Flow Framework für Java

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

HelloWorld-Anwendung

Um einen ersten Einstieg in die Strukturierung von Amazon SWF SWF-Anwendungen zu erhalten, erstellen wir eine Java-Anwendung, die sich wie ein Workflow verhält, aber lokal in einem einzelnen Prozess ausgeführt wird. Es ist keine Verbindung zu Amazon Web Services erforderlich.

Anmerkung

DieHelloWorldWorkflow-Beispiel basiert auf diesem Beispiel und stellt eine Verbindung zu Amazon SWF her, um den Workflow zu verwalten.

Eine Workflow-Anwendung besteht aus drei Grundkomponenten:

  • Ein Aktivitätsauftragnehmer unterstützt eine Reihe von Aktivitäten, die jeweils eine Methode sind, die unabhängig ausgeführt wird, um eine bestimmte Aufgabe zu erfüllen.

  • Ein Workflow-Auftragnehmer orchestriert die Ausführung der Aktivitäten und verwaltet den Datenfluss. Er ist eine programmgesteuerte Umsetzung einer Workflow-Topologie. Dabei handelt es sich im Grunde um ein Flussdiagramm, in dem definiert wird, wann die verschiedenen Aktivitäten ausgeführt werden, ob sie nacheinander oder parallel ausgeführt werden usw.

  • Ein Workflow-Starter startet eine Workflow-Instance, eine sogenannte Ausführung, und kann während der Ausführung mit ihr interagieren.

HelloWorld wird in Form von drei Klassen und zwei verbundenen Schnittstellen implementiert, wie in den folgenden Abschnitten beschrieben. Bevor Sie beginnen, sollten Sie Ihre Entwicklungsumgebung einrichten und eine neue erstellenAWSJava-Projekt wie unter beschriebenEinrichten vonAWS Flow Frameworkfür Javaaus. Die für die folgenden Anleitungen verwendeten Pakete heißen helloWorld.XYZ. Um diese Namen zu verwenden, legen Sie das within-Attribut in aop.xml wie folgt fest:

... <weaver options="-verbose"> <include within="helloWorld..*"/> </weaver>

Erstellen Sie zum Implementieren von HelloWorld ein neues Java-Paket in IhremAWSSDK-Projekt namenshelloWorld.HelloWorldund fügen Sie die folgenden Dateien hinzu:

  • Eine Schnittstellendatei namens GreeterActivities.java

  • Eine Klassendatei namens GreeterActivitiesImpl.java, die den Aktivitätenauftragnehmer implementiert

  • Eine Schnittstellendatei namens GreeterWorkflow.java

  • Eine Klassendatei namens GreeterWorkflowImpl.java, die den Workflow-Auftragnehmer implementiert

  • Eine Klassendatei namens GreeterMain.java, die den Workflow-Starter implementiert

Die Details werden in den folgenden Abschnitten erläutert und enthalten den vollständigen Code der einzelnen Komponenten, den Sie in die jeweilige Datei einfügen können.

Implementierung der HelloWorld-Aktivitäten

HelloWorld unterteilt die Gesamtaufgabe, die Begrüßung "Hello World!" auf der Konsole auszugeben, in drei Aufgaben, die jeweils von einer Aktivitätsmethode ausgeführt werden. Die Aktivitätsmethoden sind in der Schnittstelle GreeterActivities wie folgt definiert.

public interface GreeterActivities { public String getName(); public String getGreeting(String name); public void say(String what); }

HelloWorld enthält eine Aktivitätsimplementierung, GreeterActivitiesImpl, die die GreeterActivities-Methoden wie folgt bereitstellt:

public class GreeterActivitiesImpl implements GreeterActivities { @Override public String getName() { return "World"; } @Override public String getGreeting(String name) { return "Hello " + name + "!"; } @Override public void say(String what) { System.out.println(what); } }

Aktivitäten sind unabhängig voneinander und können häufig in unterschiedlichen Workflows verwendet werden. Beispielsweise kann jeder Workflow die Aktivität say verwenden, um eine Zeichenfolge auf der Konsole auszugeben. Workflows können auch über mehrere Aktivitätsimplementierungen verfügen, die jeweils unterschiedliche Aufgaben ausführen.

HelloWorld-Workflow-Auftragnehmer

Um „Hello World!“ auszugeben In der Konsole müssen die Aktivitätsaufgaben in der richtigen Reihenfolge mit den korrekten Daten nacheinander ausgeführt werden. Der HelloWorld-Workflow-Auftragnehmer orchestriert die Ausführung der Aktivitäten basierend auf einer einfachen linearen Workflow-Topologie, die in der folgenden Abbildung dargestellt ist.

Lineare Workflow-Topologie

Die drei Aktivitäten werden nacheinander ausgeführt und die Daten werden von einer Aktivität an die nächste übergeben.

Der HelloWorld-Workflow-Auftragnehmer enthält eine einzelne Methode, den Eintrittspunkt des Workflows, der in der GreeterWorkflow-Schnittstelle wie folgt definiert ist:

public interface GreeterWorkflow { public void greet(); }

Die GreeterWorkflowImpl-Klasse implementiert diese Schnittstelle wie folgt:

public class GreeterWorkflowImpl implements GreeterWorkflow{ private GreeterActivities operations = new GreeterActivitiesImpl(); public void greet() { String name = operations.getName(); String greeting = operations.getGreeting(name); operations.say(greeting); } }

Die greet-Methode implementiert die HelloWorld-Topologie, indem eine Instance von GreeterActivitiesImpl erstellt wird, die einzelnen Aktivitätsmethoden in der richtigen Reihenfolge aufgerufen werden und die passenden Daten an die jeweilige Methode übergeben werden.

HelloWorld-Workflow-Starter

Ein Workflow-Starter ist eine Anwendung, die eine Workflow-Instance startet und während der Ausführung mit dem Workflow kommunizieren kann. Die GreeterMain-Klasse implementiert den HelloWorld-Workflow-Starter wie folgt:

public class GreeterMain { public static void main(String[] args) { GreeterWorkflow greeter = new GreeterWorkflowImpl(); greeter.greet(); } }

GreeterMain erstellt eine Instance von GreeterWorkflowImpl und ruft greet auf, um den Workflow-Auftragnehmer auszuführen. Führen Sie Folgendes aus:GreeterMainals Java-Anwendung sollten Sie „Hello World!“ sehen.“ in der Konsolenausgabe.