

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 Bewerbung
<a name="getting-started-example-helloworld"></a>

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

**Anmerkung**  
Das [HelloWorldWorkflow](getting-started-example-helloworldworkflow.md)Beispiel baut auf diesem auf und stellt eine Verbindung zu Amazon SWF her, um die Verwaltung des Workflows zu übernehmen.

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 ist in drei Klassen und zwei verwandte Schnittstellen implementiert, die in den folgenden Abschnitten beschrieben werden. Bevor Sie beginnen, sollten Sie Ihre Entwicklungsumgebung einrichten und ein neues AWS Java-Projekt erstellen, wie unter beschrieben[Einrichtung des AWS Flow Framework für Java](setup.md). 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 zur Implementierung HelloWorld ein neues Java-Paket in Ihrem AWS SDK-Projekt mit dem Namen `helloWorld.HelloWorld` und 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.

## HelloWorld Implementierung der Aktivitäten
<a name="getting-started-example-helloworld.activityworker"></a>

HelloWorld unterteilt die allgemeine Aufgabe, eine `"Hello World!"` Begrüßung auf der Konsole zu drucken, in drei Aufgaben, von denen jede mit einer *Aktivitätsmethode* ausgeführt wird. 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 hat eine Aktivitätsimplementierung`GreeterActivitiesImpl`, die die `GreeterActivities` folgenden Methoden 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-Mitarbeiter
<a name="getting-started-example-helloworld.workflowworker"></a>

Um „Hello World\$1“ zu drucken auf der Konsole müssen die Aktivitätsaufgaben nacheinander in der richtigen Reihenfolge mit den richtigen Daten ausgeführt werden. Der HelloWorld Workflow-Worker orchestriert die Ausführung der Aktivitäten auf der Grundlage einer einfachen *linearen Workflow-Topologie*, die in der folgenden Abbildung dargestellt ist.

![\[Lineare Workflow-Topologie\]](http://docs.aws.amazon.com/de_de/amazonswf/latest/awsflowguide/images/helloworld_topology.png)


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

Der HelloWorld Workflow-Worker hat eine einzige Methode, den Einstiegspunkt des Workflows, der in der `GreeterWorkflow` Benutzeroberfläche 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 sie eine Instanz von erstellt`GreeterActivitiesImpl`, jede Aktivitätsmethode in der richtigen Reihenfolge aufruft und die entsprechenden Daten an jede Methode weitergibt.

## HelloWorld Workflow-Starter
<a name="getting-started-example-helloworld.starter"></a>

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 `GreeterMain` es als Java-Anwendung aus und Sie sollten „Hello World\$1“ sehen in der Konsolenausgabe.