Aplicación HelloWorld - AWS Flow Framework para Java

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Aplicación HelloWorld

Para presentar de qué manera se estructuran las aplicaciones de Amazon SW, crearemos una aplicación de Java que se comporta como flujo de trabajo, pero que se ejecuta localmente en un proceso individual. No será necesario conectarse a Amazon Web Services.

nota

El ejemplo de HelloWorldWorkflow se basa en este, y se conecta a Amazon SW para controlar la administración del flujo de trabajo.

Una aplicación de flujo de trabajo consta de tres componentes básicos:

  • Un proceso de trabajo de actividades admite un conjunto de actividades, cada uno de ellos es un método que se ejecuta de manera independiente para realizar una tarea en particular.

  • Un proceso de trabajo de flujo de trabajo organiza la ejecución de las actividades y administra el flujo de datos. Se trata de una realización programática de una topología de flujo de trabajo, que es básicamente un diagrama que define cuándo se ejecutan las diferentes actividades, si se ejecutan secuencial o simultáneamente, etc.

  • Un iniciador de flujo de trabajo comienza una instancia de flujo de trabajo, que se denomina ejecución, y puede interactuar con ella durante la ejecución.

HelloWorld se implementa como tres clases y dos interfases relacionadas, las cuales se describen en las siguientes secciones. Antes de empezar, debería configurar su entorno de desarrollo y crear un nuevo proyecto de Java de AWS como se describe en Configuración del AWS Flow Framework para Java. Los paquetes utilizados para los siguientes tutoriales se denominan todos helloWorld.XYZ. Para utilizar esos nombre, configure el atributo within en aop.xml tal y como se indica a continuación:

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

Para implementar HelloWorld, cree un nuevo paquete de Java en su proyecto de SDK de AWS denominado helloWorld.HelloWorld y añada los siguientes archivos:

  • Un archivo de interfaz denominado GreeterActivities.java

  • Un archivo de clase denominado GreeterActivitiesImpl.java, que implementa el proceso de trabajo de actividades.

  • Un archivo de interfaz denominado GreeterWorkflow.java.

  • Un archivo de clase denominado GreeterWorkflowImpl.java, que implementa el proceso de trabajo de flujo de trabajo.

  • Un archivo de clase denominado GreeterMain.java, que implementa el iniciador de flujo de trabajo.

Los detalles se discuten en las siguientes secciones e incluyen el código completo para cada componente, que puede añadir al archivo apropiado.

Implementación de las actividades de HelloWorld

HelloWorld divide la tarea general de impresión de un saludo de "Hello World!" a la consola en tres tareas, cada una de las cuales se realiza mediante un método de actividad. Los métodos de la actividad se definen en la interfaz GreeterActivities de la siguiente manera.

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

HelloWorld implementa una actividad, GreeterActivitiesImpl, que proporciona los métodos GreeterActivities como se muestra:

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); } }

Las actividades son independientes entre sí y con frecuencia pueden ser utilizadas por diferentes flujos de trabajo. Por ejemplo, cualquier flujo de trabajo puede usar la actividad say para imprimir una cadena en la consola. Los flujos de trabajo también pueden tener implementaciones de múltiples actividades, cada una de las cuales realiza un conjunto diferentes de tareas.

Proceso de trabajo de flujo de trabajo de HelloWorld

Para imprimir “Hello World!” en la consola, las tareas de actividades se deben ejecutar en secuencia en el orden correcto y con los datos correctos. El proceso de trabajo de flujo de trabajo HelloWorld organiza la ejecución de actividades en función de una sencilla topología de flujo de trabajo lineal, que se muestra en la siguiente figura.

Topología de flujo de trabajo lineal

Las tres actividades se ejecutan en secuencia y los datos fluyen de una actividad a la siguiente.

El proceso de trabajo de flujo de trabajo HelloWorld tiene un único método, el punto de entrada de flujo de trabajo, que se define en la interfaz GreeterWorkflow, de la siguiente manera:

public interface GreeterWorkflow { public void greet(); }

La clase GreeterWorkflowImpl implementa esta interfaz de la siguiente manera:

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); } }

El método greet implementa la topología HelloWorld creando una instancia de GreeterActivitiesImpl, llamando a cada método de actividad en el orden correcto y pasando los datos apropiados a cada método.

Iniciador de flujo de trabajo de HelloWorld

Un iniciador del flujo de trabajo es una aplicación que inicia la ejecución de un flujo de trabajo y que también podría comunicarse con el flujo de trabajo mientras se está ejecutando. La clase GreeterMain implementa el iniciador de flujo de trabajo de HelloWorld de la siguiente manera:

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

GreeterMain crea una instancia de GreeterWorkflowImpl y llama a greet para ejecutar el proceso de trabajo del flujo de trabajo. Ejecute GreeterMain como una aplicación de Java; al hacerlo, debería poder ver "Hello World!" en la consola.