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 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 de programmationacteurs. 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 au travers de son API. Vous pouvez développer ces acteurs dans n'importe quel langage de programmation.
Le schéma suivant illustre 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 pour en déterminer les étapes ultérieures. Il renvoie ensuite ces étapes à sous Amazon SWFdécisions. Une décision est un type de données Amazon SWF qui peut représenter diverses actions à venir. Pour obtenir la liste des décisions possibles, consultez le manuelLa décisiondans la Référence d'API Amazon Simple Workflow Service.
Voici un exemple de décision au format JSON (format auquel 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 à faire avancer l'exécution du flux de travail en recevant les tâches de décision et en renvoyant à Amazon SWF avec de nouvelles décisions, jusqu'à ce qu'ils aient déterminé que l'exécution du flux de travail était terminée. Il renvoie alors une décision de fermeture de l'exécution de flux de travail. Après la fermeture de l'exécution du flux de travail, Amazon SWF ne planifie 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 duRegisterActivityTypeaction.
Chaque outil de traitement d'activité recherche dans Amazon SWF pour obtenir de nouvelles tâches qu'il peut exécuter. Certaines tâches ne peuvent être effectuées que par certains outils de traitement d'activité. Après avoir reçu une tâche, l'outil de traitement d'activité la traite jusqu'à la fin, puis indique à Amazon SWF qu'elle est terminée et lui 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é. Quand une tâche d'activité est terminée, l'outil de traitement d'activité renvoie 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 au travers de chaînes dont la forme est définie par l'utilisateur. Selon la taille et la sensibilité des données, vous pouvez les transmettre directement ou via un pointeur vers les données stockées sur un autre système ou service (par exemple, Amazon S3 ou DynamoDB). Les données transmises directement et les pointeurs renvoyant 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 les données issues de magasins externes dans le cadre de l'historique.
Comme Amazon SWF gère l'état 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 sans état. 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é.