Actores de Amazon SWF - Amazon Simple Workflow Service

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.

Actores de Amazon SWF

¿Qué es un actor en Amazon SWF?

En el curso de sus operaciones, Amazon SWF interactúa con varios tipos diferentes de actores programáticos. Los actores pueden ser iniciadores de flujo de trabajo, decisores o procesos de trabajo de actividad. Estos actores se comunican con Amazon SWF por medio de sus API. Puede desarrollar estos actores en cualquier lenguaje de programación.

En el siguiente diagrama, se muestra la arquitectura de Amazon SWF, incluido Amazon SWF y sus actores.


               Las diferentes entidades o “actores” de un flujo de trabajo de Amazon SWF.

Iniciadores de flujo de trabajo

Un iniciador de flujo de trabajo es cualquier aplicación que permite iniciar ejecuciones de flujos de trabajo. En el ejemplo de e-commerce, un iniciador de flujo de trabajo puede ser el sitio web en el que el cliente realiza un pedido. Otro iniciador de flujo de trabajo puede ser un sistema o aplicación móvil usado por un representante de servicio al cliente para realizar un pedido en nombre del cliente.

Decisores

Un decisor es una implementación de la lógica de coordinación de un flujo de trabajo. Los decisores controlan el flujo de las tareas de actividad en una ejecución de flujo de trabajo. Siempre que se produce un cambio durante una ejecución de flujo de trabajo, como la finalización de una tarea, se transmite a un decisor una tarea de decisión que incluye todo el historial del flujo de trabajo. Cuando el decisor recibe una tarea de decisión de Amazon SWF, analiza el historial de ejecución del flujo de trabajo para determinar los siguientes pasos apropiados en la ejecución del flujo de trabajo. El decisor comunica estos pasos a Amazon SWF mediante decisiones. Una decisión es un tipo de datos de Amazon SWF que puede representar varias acciones siguientes. Para obtener una lista de las posibles decisiones, consulte Decisión en la referencia de la API de Amazon Simple Workflow Service.

Este es un ejemplo de una decisión en formato JSON, que es el formato en el que se transmite a Amazon SWF. Esta decisión programa una tarea de actividad nueva.

{ "decisionType" : "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes" : { "activityType" : { "name" : "activityVerify", "version" : "1.0" }, "activityId" : "verification-27", "control" : "digital music", "input" : "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout" : "900", "taskList" : { "name": "specialTaskList" }, "scheduleToStartTimeout" : "300", "startToCloseTimeout" : "600", "heartbeatTimeout" : "120" } }

El decisor recibe una tarea de decisión cuando comienza la ejecución del flujo de trabajo y cada vez que se produce un cambio en la ejecución del flujo de trabajo. Los decisores siguen impulsando la ejecución del flujo de trabajo mediante la recepción de tareas de decisión y el envío de respuestas a Amazon SWF con más decisiones, hasta que el decisor determine que la ejecución de flujo de trabajo se ha completado. Entonces responde con una decisión para cerrar la ejecución del flujo de trabajo. Después del cierre de la ejecución del flujo de trabajo, Amazon SWF no programará tareas adicionales para esa ejecución.

En el ejemplo de e-commerce, el decisor determinar si cada paso se ha realizado correctamente, y luego programa el paso siguiente o aborda las condiciones de error si las hubiera.

Un decisor representa un proceso o subproceso informático único. Diversos decisores pueden procesar tareas para el mismo tipo de flujo de trabajo.

Procesos de trabajo de actividad

Un trabajo de actividad es un proceso o subproceso que realiza tareas de actividad que forman parte de su flujo de trabajo. La tarea de actividad representa una de las tareas que usted identificó en su aplicación.

Para utilizar una tarea de actividad en el flujo de trabajo, tiene que registrarla, bien con la consola de Amazon SWF o bien con la acción RegisterActivityType.

Cada proceso de trabajo de actividad sondea Amazon SWF para obtener nuevas tareas que ese trabajo de actividad pueda realizar; ciertas tareas solo las pueden realizar determinados procesos de trabajo de actividad. Tras recibir una tarea, el proceso de trabajo de actividad la procesa hasta su finalización y, a continuación, comunica a Amazon SWF que la tarea se ha completado y proporciona el resultado. A continuación, el trabajo de actividad busca una nueva tarea. Los procesos de trabajo de actividad asociados con una ejecución de flujo de trabajo continúan procesando tareas de esta forma hasta que se complete la ejecución del flujo de trabajo. En el ejemplo de e-commerce, los procesos de trabajo de actividad son procesos y aplicaciones independientes utilizados por las personas, como procesadores de tarjeta de crédito y empleados de almacén, que realizan pasos individuales en el proceso.

Un trabajo de actividad representa un proceso (o subproceso) informático único. Diversos procesos de trabajo de actividad pueden procesar tareas del mismo tipo de actividad.

Intercambio de datos entre actores

Los datos de entradas pueden transmitirse a una ejecución de flujo de trabajo cuando se inicia. Igualmente, los datos de entrada pueden proporcionarse a los procesos de trabajo de actividad cuando estos programan las tareas de actividad. Cuando se completa una tarea de actividad, el proceso de trabajo de actividad puede devolver los resultados a Amazon SWF. Igualmente, el decisor puede comunicar los resultados de la ejecución del flujo de trabajo una vez completada dicha ejecución. Los actores pueden enviar datos a Amazon SWF o recibir datos de este a través de cadenas, cuya forma está definida por el usuario. En función del tamaño y la confidencialidad de los datos, puede transmitir los datos directamente o pasar un puntero a los datos almacenados en otro sistema o servicio (como Amazon S3 o DynamoDB). Tanto los datos transmitidos directamente como los punteros a otros almacenes de datos se registran en el historial de ejecución del flujo de trabajo; sin embargo, Amazon SWF no copia ni guarda en la caché datos de almacenes externos como parte del historial.

Puesto que Amazon SWF mantiene el estado completo de cada ejecución del flujo de trabajo, incluidas las entradas y los resultados de las tareas, no es necesario que los actores tengan estado. Como resultado, el procesamiento del flujo de trabajo es altamente escalable. A medida que crece la carga en su sistema, simplemente puede añadir más actores para aumentar la capacidad.