Conceptos básicos de AWS Flow Framework: estructura de la aplicación - 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.

Conceptos básicos de AWS Flow Framework: estructura de la aplicación

Conceptualmente, una aplicación de AWS Flow Framework está formada por tres componentes básicos: iniciadores del flujo de trabajo, procesos de trabajo de flujo de trabajo y procesos de trabajo de actividad. Una o más aplicaciones de host son responsables del registro de los procesos de trabajo (flujo de trabajo y actividad) en Amazon SWF, de comenzar los procesos de trabajo y de encargarse de la limpieza. Los procesos de trabajo se encargan de la mecánica de la ejecución del flujo de trabajo y pueden implementarse en varios hosts.

Este diagrama representa una aplicación de AWS Flow Framework básica:

Aplicación esquemática de AWS Flow Framework
nota

La implementación de estos componentes en tres aplicaciones separadas es cómodo desde el punto de vista conceptual pero puede crear aplicaciones para implementar esta funcionalidad de diferentes formas. Por ejemplo, puede utilizar una aplicación de host individual para los procesos de trabajo de flujo de trabajo y de actividad, o utilizar hosts de flujo de trabajo y actividad separados. También puede tener múltiples procesos de trabajo de actividad, cada uno de ellos controla un conjunto diferente de actividades en hosts separados, etc.

Los tres componentes de AWS Flow Framework interactúan indirectamente enviando solicitudes HTTP a Amazon SWF, que se encarga de administrarlas. Amazon SWF hace lo siguiente:

  • Mantiene una o más listas de tareas de decisiones que determinan el siguiente paso que tiene que realizar un proceso de trabajo de flujo de trabajo.

  • Mantiene una o más listas de tareas de actividades que determinan qué tareas realizará un proceso de trabajo de actividad.

  • Mantiene un historial paso a paso detallado de la ejecución del flujo de trabajo.

Con el AWS Flow Framework, el código de la aplicación no tiene que tratar directamente con muchos de los detalles que se muestran en la figura, como por ejemplo, enviar solicitudes HTTP a Amazon SWF. Basta con llamar a los métodos de AWS Flow Framework y el marco de trabajo se ocupa de los detalles en segundo plano.

Función del proceso de trabajo de actividad

Un proceso de trabajo de actividad realiza varias tareas que el flujo de trabajo debe llevar a cabo. Consisten en lo siguiente:

  • La implementación de actividades, que incluye un conjunto de métodos de actividad que realizan tareas particulares para el flujo de trabajo.

  • Un objeto ActivityWorker, que utiliza solicitudes de sondeo de larga duración de HTTP para sondear Amazon SWF con el fin de obtener las tareas de actividad que se deban realizar. Cuando se necesita una tarea, Amazon SWF responde a la solicitud enviando la información necesaria para realizar la tarea. A continuación, el objeto ActivityWorker llama al método de actividad apropiado, y devuelve los resultados a Amazon SWF.

Función del proceso de trabajo de flujo de trabajo

El proceso de trabajo de flujo de trabajo organiza la ejecución de las diferentes actividades, administra el flujo de datos y administra las actividades que han producido un error. Consisten en lo siguiente:

  • La implementación de flujo de trabajo, que incluye la lógica de la organización de la actividad, gestiona las actividades que han producido un error, etc.

  • Un cliente de actividades, que actúa como proxy para el proceso de trabajo de actividad y permite que el proceso de trabajo de flujo de trabajo programe actividades que se ejecutarán de manera asíncrona.

  • Un objeto WorkflowWorker, que utiliza solicitudes de sondeo de larga duración de HTTP para sondear Amazon SWF para obtener tareas de decisión. Si hay tareas en la lista de tareas de flujo de trabajo, Amazon SWF responde a la solicitud devolviendo la información necesaria para realizar la tarea. A continuación, el marco de trabajo ejecuta el flujo de trabajo para realizar la tarea y devuelve los resultados a Amazon SWF.

Función del iniciador del flujo de trabajo

El iniciador de flujo de trabajo inicia una instancia de flujo de trabajo, conocida también como ejecución de flujo de trabajo y puede interactuar con una instancia durante la ejecución para pasar datos adicionales al proceso de trabajo de flujo de trabajo u obtener el actual estado de flujo de trabajo.

El iniciador del flujo de trabajo utiliza un cliente de flujo de trabajo para comenzar la ejecución del flujo de trabajo, interactúa con el flujo de trabajo según sea necesario durante la ejecución y se encarga de la limpieza. El iniciador del flujo de trabajo puede ser una aplicación que se ejecuta localmente, una aplicación web, la AWS CLI o incluso la AWS Management Console.

Cómo interactúa Amazon SWF con la aplicación

Amazon SWF se encarga de la interacción entre los componentes del flujo de trabajo y mantiene un historial detallado del flujo de trabajo. Amazon SWF no inicia la comunicación con los componentes, sino que espera las solicitudes HTTP de los componentes y las gestiona según sea necesario. Por ejemplo:

  • Si la solicitud viene de un proceso de trabajo, que sondea para detectar tareas disponibles, Amazon SWF responderá directamente al proceso de trabajo si hay alguna tarea disponible. Para obtener más información sobre cómo funciona el sondeo, consulte Sondeo de tareas en la guía para desarrolladores de Amazon Simple Workflow Service.

  • Si la solicitud es una notificación de un proceso de trabajo de actividad indicando que una tarea está completa, Amazon SWF registra la información en el historial de ejecución y añade una tarea a la lista de tareas de decisión para informar al proceso de trabajo de flujo de trabajo que la tarea está completa, lo que permite continuar con el siguiente paso.

  • Si la solicitud procede de un proceso de trabajo de flujo de trabajo para la ejecución de una actividad, Amazon SWF registra la información en el historial de ejecución y añade una tarea a la lista de tareas de actividad para ordenar a un proceso de trabajo de actividad que ejecute el método de actividad apropiado.

Este enfoque permite la ejecución de los procesos de trabajo en cualquier sistema con conexión a Internet, entre los que se incluyen instancias de Amazon EC2, centros de datos corporativos, equipos cliente, etc. Ni siquiera tienen que ejecutar el mismo sistema operativo. Dado que las solicitudes de HTTP tienen su origen en los procesos de trabajo, no se necesitan puertos visibles externamente, los procesos de trabajo pueden ejecutarse detrás de un firewall.

Para obtener más información

Para obtener información más detallada sobre el funcionamiento de Amazon SWF, consulte la Guía para desarrolladores de Amazon Simple Workflow Service.