馃 Amazon Simple Workflow Service (SWF)

馃嵖 驴En qu茅 consiste el servicio Amazon Simple Workflow Service (SWF)?

SWF hace sencillo crear aplicaciones que coordinan trabajo a traves de componentes distribuidos. En SWF una tarea representa una unidad l贸gica de trabajo y es realizada por un componente en su aplicaci贸n. El coordinar tareas a traves de su aplicaci贸n implica el manejo de dependencias internas entre tareas, calendarizar, y acceso concurrente en concordancia con el flujo l贸gico de la aplicaci贸n. SWF brinda control total sobre la implementaci贸n y coordinaci贸n de tareas sin tener que preocuparse por la complejidad de monitorear el progreso y mantenimiento de su estado.

Cuando se usa SWS, se implementan workers que realizan las tareas. Estos workers pueden ejecutarlas en la infraestructura de la nube, como EC2, o en sus instalaciones. Se pueden crear tareas de larga ejecuci贸n que pueden fallar, exceder el tiempo m谩ximo de ejecuci贸n, requerir reiniciarse, o tareas que se puedan completar variando el rendimiento y la latencia. SWF almacena las tareas, las asigna a workers cuando estos est谩n listos, monitorea su progreso, y mantiene su estado, incluyendo detalles de su terminaci贸n. Para coordinar tareas, se escribe un programa que obtenga el 煤ltimo estado de cada tarea desde SWF y lo utilice para iniciar tareas subsecuentes. SWF mantiene la aplicaci贸n en estado de ejecuci贸n con durabilidad, de tal forma que la aplicaci贸n es resistente a los fallos en los componentes individuales. Con SWF se pueden implementar despliegues, escalamiento y modificar estos componentes de aplicaciones independientemente.

馃嵖 Flujos de Trabajo (Workflows)

Al usar SWF, se pueden implementar aplicaciones como flujos de trabajo distribuidos y as铆ncronos. Los flujos de trabajo coordinan y manejan la ejecuci贸n de actividades que pueden ejecutarse de forma s铆ncrona a traves de m煤ltiples dispositivos de computo y que pueden incluir tanto procesamiento secuencial como paralelo.

Cuando se dise帽a un workflow, analice la aplicaci贸n para identificar las tareas de sus componentes, que est谩n representadas como actividades de SWF. La l贸gica de coordinaci贸n del flujo de trabajo determina el orden en el cual las actividades son ejecutadas.

馃イ Dominio del flujo de trabajo (Workflow domains)

Los dominios proveen una forma de definir el 谩mbito de los recursos de SWF dentro de una cuenta de AWS. Se debe especificar un dominio para todos los componentes del flujo de trabajo, como el tipo de flujo de trabajo y los tipos de actividades. Es posible tener uno o mas flujos de trabajo en un dominio, sin embargo los flujos de trabajo en diferentes dominios no pueden interactuar el uno con el otro.

馃イ Historia del flujo de trabajo (Workflow history)

El workflow history es un registro detallado, completo y consistente de cada evento que ocurre desde que la ejecuci贸n del flujo de trabajo es inicializado. Un evento representa un cambio discreto en el estado de la ejecuci贸n del flujo de trabajo, como una actividad completa, un timeout o una se帽al.

馃嵖 Actores en SWF

Los actores en SWF con un n煤mero de diferentes tipos de de caracter铆sticas program谩ticas.

馃イ 驴Qu茅 tipos de actores existen en SWF?

work starters
Es cualquier aplicaci贸n que inicie la ejecuci贸n de un workflow. Por ejemplo un cliente que env铆a una orden en un sitio de ecommerce.
deciders
Es la l贸gica que coordina las taras en un flujo de trabajo. Las actividades dentro de un workflow pueden correr secuencialmente, en paralelo, s铆ncronas o as铆ncronas. Los deciders tambi茅n procesan eventos que llevan mientras el workflow esta en progresos y cierran el workflow cuando el objetivo se ha cumplido.
activity worker
Es un proceso de computadora sencillo o thread, que realiza una actividad en su workflow. Diferentes tipos de trabajares procesan tareas de diferentes tipos de actividades, y m煤ltiples tipos de workers pueden procesar el mismo tipo de tarea. Despu茅s de recibir la tarea, el activity worker procesar la tarea hasta su terminaci贸n y regresa el estatus y resultado a SWF. Entonces retrae otra nueva actividad.

馃嵖 Tareas (Tasks)

馃イ 驴Que tipos de tareas existen?

Activity Tasks
Le indica al activity worker que realice su funci贸n.
Lambda Tasks
Realiza una lambda function en lugar de una SWF Activity.
Decision Tasks
Le indica al decider que el estado de ejecuci贸n del workflow a cambiado de tal forma que el decider pueda determinar la siguiente actividad que tiene que ser realizada, esta decision task contiene el actual workflow history. SWF agenda un decision task cuando el workflow inicia y cuando el estado cambia, como cuando una actividad se completa. Cada decision task contiene un view paginado del historial de ejecuci贸n. Los decididores analizan el workflow y la historia de ejecuci贸n y responden a SWF con un grupo de decisiones que especifican que debe ocurren en la proxima ejecuci贸n del workflow.

馃嵖 Listas de Tareas (Task Lists)

Proveen una forma de organizar varias tareas asociadas con un workflow. Se puede pensar en una lista de tareas como una cola din谩mica. Cuando una tarea es agendada en SWF, se puede especificar una cola (lista de tareas). De forma similar cuando se retrae de SWF una tarea, se determina de que cola (lista de tareas) obtener la tarea.

Las listas de tareas proveen un mecanismo flexible de enrutar tareas a los workers como el caso lo necesite. Las lista de tareas son din谩micas de modo que no se requiere registrar una task list o crear a traves de una acci贸n, simplemente agendando una tarea se crea una lista de tareas si esta no existe.

馃嵖 Long Polling

Los decididores y activity workers se comunican con SWF utilizando long polling. Cualquiera de estos inicia comunicaci贸n peri贸dica con SWF notificando a SWF de su disponibilidad para aceptar una tarea, y despu茅s especificando una lista de tareas de donde obtener tareas. Long polling funciona bien para altos vol煤menes de procesamiento de taras. Los deciders y activity workers pueden manejar su propia capacidad.

馃嵖 Object identifiers (identificadores de objetos)

Los objetos de SWF son identificados por workflow type, activity type, decision y activity tasks, y ejecuci贸n del workflow.

馃嵖 Cierre de ejecuci贸n del flujo de trabajo (Workflow execution closure)

Despu茅s de iniciar la ejecuci贸n de un workflow, este se encuentra abierto. On workflow abierto puede puede estar cerrado o completado, cancelado, fallido, o superado el timeout.

馃嵖 Ciclo de vida del la ejecuci贸n de un workflow

Desde el inicio de la ejecuci贸n de un workflow hasta su terminaci贸n, SWF interact煤a con los actores asign谩ndoles tareas apropiadas ya sean activity tasks o decision tasks.

Amazon Simple Queue Service (SQS) Amazon Simple Notification Service (SNS)
comments powered by Disqus