Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Acteurs d'Amazon SWF
Rubriques
Qu'est-ce qu'un acteur dans Amazon SWF ?
Dans le cadre de ses opérations, Amazon SWF interagit avec différents types d'acteurs programmatiques. Il peut s'agir de démarreurs de flux de travail, de décideurs ou d'outils de traitement d'activité. Ces acteurs communiquent avec Amazon SWF par le biais de son API. Vous pouvez développer ces acteurs dans n'importe quel langage de programmation.
Le schéma suivant montre l'architecture Amazon SWF, y compris Amazon SWF et ses acteurs.

Démarreurs de flux de travail
Un démarreur de flux de travail est une application qui permettre d'initier des exécutions de flux de travail. Dans l'exemple de commerce en ligne, il peut s'agir du site Web sur lequel le client passe une commande. Un autre démarreur de flux de travail peut être une application mobile ou un système utilisé par le service client pour passer commande au nom du client.
Décideurs
Un décideur est l'implémentation de la logique de coordination d'un flux de travail. Les décideurs contrôlent le flux des tâches d'activité d'une exécution de flux de travail. Dès qu'un changement se produit pendant une exécution de flux de travail, tel que l'achèvement d'une tâche, une tâche de décision qui contient la totalité de l'historique de flux de travail est transmise à un décideur. Lorsque le décideur reçoit la tâche de décision d'Amazon SWF, il analyse l'historique d'exécution du flux de travail afin de déterminer les prochaines étapes appropriées de l'exécution du flux de travail. Le décideur communique ces étapes à Amazon SWF à l'aide de décisions. Une décision est un type de données Amazon SWF qui peut représenter les différentes actions suivantes. Pour obtenir la liste des décisions possibles, consultez la section Décision du manuel Amazon Simple Workflow Service API Reference.
Voici un exemple de décision au format JSON, le format dans lequel elle est transmise à Amazon SWF. Cette décision planifie une nouvelle tâche d'activité.
{ "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" } }
Un décideur reçoit une tâche de décision lorsque l'exécution du flux de travail commence et qu'elle change d'état. Les décideurs continuent de faire avancer l'exécution du flux de travail en recevant des tâches de décision et en répondant à Amazon SWF avec d'autres décisions jusqu'à ce que le décideur détermine que l'exécution du flux de travail est terminée. Il renvoie alors une décision de fermeture de l'exécution de flux de travail. Une fois l'exécution du flux de travail terminée, Amazon SWF ne planifiera pas de tâches supplémentaires pour cette exécution.
Dans l'exemple de commerce en ligne, le décideur détermine si chaque étape a été effectuée correctement, puis planifie l'étape suivante ou gère les conditions d'erreur.
Un décideur représente un thread ou un processus informatique unique. Plusieurs décideurs peuvent traiter les tâches du même type de flux de travail.
Outils de traitement d'activité
Un outil de traitement d'activité est un processus ou un thread qui exécute les tâches d'activité faisant partie de votre flux de travail. La tâche d'activité représente une des tâches que vous avez identifiées dans votre application.
Pour utiliser une tâche d'activité dans votre flux de travail, vous devez l'enregistrer à l'aide de la console Amazon SWF ou de l'RegisterActivityTypeaction.
Chaque travailleur d'activité interroge Amazon SWF pour de nouvelles tâches qu'il doit effectuer ; certaines tâches ne peuvent être effectuées que par certains travailleurs d'activité. Après avoir reçu une tâche, le responsable de l'activité la traite jusqu'à son terme, puis indique à Amazon SWF que la tâche est terminée et fournit le résultat. Il recherche ensuite une nouvelle tâche. Les outils de traitement d'activité associés à une exécution de flux de travail continuent de cette façon : il traitent les tâches jusqu'à ce que l'exécution de flux de travail soit terminée. Dans l'exemple de commerce en ligne, les outils de traitement d'activité sont des applications et des processus indépendants utilisés par des personnes, telles que des opérateurs de traitement de carte de crédit et des employés d'entrepôt, qui effectuent les différentes étapes du processus.
Un outil de traitement d'activité représente un processus (ou un thread) informatique unique. Plusieurs outils de traitement d'activité peuvent traiter les tâches du même type d'activité.
Echange de données entre les acteurs
Les données d'entrée peuvent être transmises à une exécution de flux de travail lorsqu'il démarre. De même, elles peuvent être transmises aux outils de traitement d'activité lorsqu'ils planifient des tâches d'activité. Lorsqu'une tâche d'activité est terminée, le responsable de l'activité peut renvoyer les résultats à Amazon SWF. De même, un décideur peut signaler les résultats d'une exécution de flux de travail lorsque celle-ci est terminée. Chaque acteur peut envoyer des données à Amazon SWF et en recevoir des données par le biais de chaînes dont la forme est définie par l'utilisateur. En fonction de la taille et de la sensibilité des données, vous pouvez transmettre les données directement ou transmettre un pointeur vers des données stockées sur un autre système ou service (tel qu'Amazon S3 ou DynamoDB). Les données transmises directement et les pointeurs vers d'autres magasins de données sont enregistrés dans l'historique d'exécution du flux de travail ; cependant, Amazon SWF ne copie ni ne met en cache aucune des données provenant de magasins externes dans le cadre de l'historique.
Dans la mesure où Amazon SWF conserve l'état d'exécution complet de chaque exécution de flux de travail, y compris les entrées et les résultats des tâches, tous les acteurs peuvent être apatrides. Par conséquent, le traitement des flux de travail est hautement évolutif. Lorsque la charge système augmente, il vous suffit d'ajouter des acteurs pour accroître la capacité.