翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
HelloWorld アプリケーション
Amazon SWF アプリケーションの開発方法を導入するために、ワークフローのように動作するが、1 つのプロセスでローカルに実行する Java アプリケーションを作成します。アマゾン ウェブ サービスへの接続は必要ありません。
注記
HelloWorldWorkflow の例では、これを基に構成されており、Amazon SWF に接続してワークフローを管理します。
ワークフローアプリケーションは、3 つの基本コンポーネントで構成されています。
-
アクティビティワーカーは、一連のアクティビティをサポートしており、各アクティビティは、特定のタスクを実行するために個別に実行するメソッドです。
-
ワークフローワーカーは、アクティビティの実行を調整し、データフローを管理します。ワークフロートポロジーのプログラムによる結論です。これは、基本的に、順番または同時に実行されるかどうかに関係なく、さまざまなアクティビティを実行する際に定義するフローチャートです。
-
ワークフロースターターは、実行と呼ばれるワークフローインスタンスを開始し、実行時にそのインスタンスと通信できます。
HelloWorld は 3 つのクラスと 2 つの関連インターフェイスとして実装されます。詳細については、次のセクションで説明しています。開始する前に、「AWS Flow Framework for Java のセットアップ」に記載されているように、開発環境をセットアップし、新しい AWS Java プロジェクトを作成する必要があります。次のウォークスルーで使用されているパッケージの名前はすべて、helloWorld.
です。このような名前を使用するには、次のように aop.xml で XYZ
within
属性を設定します。
... <weaver options="-verbose"> <include within="helloWorld..*"/> </weaver>
HelloWorld を実装するには、AWS SDK プロジェクトに新しい Java パッケージ (helloWorld.HelloWorld
) を作成し、次のファイルを追加します。
-
インターフェイス (
GreeterActivities.java
) -
クラスファイル (
GreeterActivitiesImpl.java
)。アクティビティワーカーを実装します。 -
インターフェイス (
GreeterWorkflow.java
)。 -
クラスファイル (
GreeterWorkflowImpl.java
)。ワークフローワーカーを実装します。 -
クラスファイル (
GreeterMain.java
)。ワークフロースターターを実装します。
各コンポーネントの完全なコードなどの詳細は、以下のセクションに記載されています。このコードは適切なファイルに追加できます。
HelloWorld アクティビティの実装
HelloWorld は、あいさつ ("Hello World!"
) をコンソールに出力する全体的なタスクを 3 つのタスクに分割します。各タスクは、 アクティビティメソッド で実行されます。このアクティビティメソッドは、次のように GreeterActivities
インターフェイスで定義されています。
public interface GreeterActivities { public String getName(); public String getGreeting(String name); public void say(String what); }
HelloWorld には 1 つのアクティビティ (GreeterActivitiesImpl
) が実装されています。このアクティビティでは、次のように GreeterActivities
メソッドが使用されます。
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); } }
アクティビティは互いに独立しており、多くの場合、異なるワークフローで使用できます。たとえば、どのワークフローでも、say
アクティビティを使用して文字列をコンソールに出力できます。ワークフローでは、複数のアクティビティを実装して、それぞれ異なるタスクセットを実行できます。
HelloWorld ワークフローワーカー
「Hello World!」を コンソールに出力するには、正しいデータのアクティビティタスクを適切な順序で実行します。HelloWorld ワークフローワーカーは、以下の図に示すように、シンプルなリニアワークフロートポロジーに基づき、アクティビティの実行を調整します。
![リニアワークフロートポロジー](images/helloworld_topology.png)
3 つのアクティビティは、順番に実行され、そのデータはアクティビティからアクティビティに流れます。
HelloWorld ワークフローワーカーには、ワークフローのエントリポイントとなる 1 つのメソッドがあります。このメソッドは、次のように GreeterWorkflow
インターフェイスで定義されています。
public interface GreeterWorkflow { public void greet(); }
GreeterWorkflowImpl
クラスは、次のようにこのインターフェイスを実装します。
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); } }
greet
メソッドは、GreeterActivitiesImpl
のインスタンスを作成して、適切な順番で各アクティビティメソッドを呼び出し、各メソッドに適切なデータを渡して、HelloWorld トポロジーを実装します。
HelloWorld ワークフロースターター
ワークフロースターターは、ワークフロー実行を開始するアプリケーションです。実行中にワークフローと通信することもあります。GreeterMain
クラスは、次のように、HelloWorld ワークフロースターターを実装します。
public class GreeterMain { public static void main(String[] args) { GreeterWorkflow greeter = new GreeterWorkflowImpl(); greeter.greet(); } }
GreeterMain
は GreeterWorkflowImpl
のインスタンスを作成し、greet
を呼び出してワークフローワーカーを実行します。Java アプリケーションとして GreeterMain
を実行すると、「Hello World!」が コンソール出力に表示されます。