AWS Flow FrameworkConcepts de base : structure de l'application - AWS Flow Framework pour Java

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.

AWS Flow FrameworkConcepts de base : structure de l'application

D'un point de vue conceptuel, une application AWS Flow Framework est constituée de trois composants de base : des démarreurs de flux de travail, des exécuteurs de flux de travail et des exécuteurs d'activité. Une ou plusieurs applications hôtes sont chargées d'enregistrer les collaborateurs (flux de travail et activité) auprès d'Amazon SWF, de démarrer les travailleurs et de gérer le nettoyage. Les exécuteurs gèrent les mécanismes d'exécution du flux de travail et peuvent être implémentés sur plusieurs hôtes.

Ce schéma représente une application AWS Flow Framework de base :

AWS Flow FrameworkApplication schématique
Note

L'implémentation de ces composants dans trois applications distinctes est pratique d'un point de vue conceptuel, mais vous pouvez créer des applications pour implémenter cette fonctionnalité de différentes façons. Par exemple, vous pouvez utiliser une application hôte unique pour les exécuteurs d'activité et de flux de travail, ou utiliser des hôtes d'activité et de flux de travail distincts. Vous pouvez également avoir plusieurs exécuteurs d'activité, traitant chacun un ensemble d'activités différent sur des hôtes distincts, etc.

Les troisAWS Flow Framework composants interagissent indirectement en envoyant des requêtes HTTP à Amazon SWF, qui gère les demandes. Amazon SWF opérations suivantes :

  • Il gère une ou plusieurs listes de tâches de décision, qui déterminent l'étape suivante à exécuter par un exécuteur de flux de travail.

  • Il gère une ou plusieurs listes de tâches d'activité, qui déterminent les tâches qui seront exécutées par un exécuteur d'activité.

  • Conserve un step-by-step historique détaillé de l'exécution du flux de travail.

Grâce àAWS Flow Framework, le code de votre application n'a pas besoin de traiter directement de nombreux détails présentés dans la figure, tels que l'envoi de requêtes HTTP à Amazon SWF. Il vous suffit simplement d'appeler des méthodes AWS Flow Framework; ; l'infrastructure gère les détails en arrière-plan.

Rôle de l'exécuteur d'activité

L'exécuteur d'activité exécute les différentes tâches que le flux de travail doit réaliser. Il comprend les éléments suivants :

  • L'implémentation des activités, qui comprend un ensemble de méthodes d'activité exécutant des tâches particulières pour le flux de travail.

  • Un ActivityWorkerobjet qui utilise de longues demandes d'interrogation HTTP pour interroger Amazon SWF sur les tâches d'activité à effectuer. Lorsqu'une tâche est requise, Amazon SWF répond à la demande en envoyant les informations nécessaires à l'exécution de la tâche. L'ActivityWorkerobjet appelle ensuite la méthode d'activité appropriée et renvoie les résultats à Amazon SWF.

Rôle de l'exécuteur de flux de travail

L'exécuteur de flux de travail orchestre l'exécution des différentes activités, gère le flux de données et traite les activités ayant échoué. Il comprend les éléments suivants :

  • L'implémentation de flux de travail, qui comprend la logique d'orchestration des activités, gère les activités ayant échoué, etc.

  • Un client d'activités, qui tient lieu de proxy pour l'exécuteur d'activité et permet au travail de flux de travail de planifier des activités à exécuter de façon asynchrone.

  • Un WorkflowWorkerobjet qui utilise de longues demandes d'interrogation HTTP pour interroger Amazon SWF pour des tâches de décision. S'il existe des tâches dans la liste des tâches du flux de travail, Amazon SWF répond à la demande en renvoyant les informations nécessaires à l'exécution de la tâche. Le framework exécute ensuite le flux de travail pour effectuer la tâche et renvoie les résultats à Amazon SWF.

Rôle du démarreur de flux de travail

Le démarreur de flux de travail démarre une instance de flux de travail, également appelée exécution de flux de travail, et peut interagir avec une instance lors de l'exécution pour transmettre des données supplémentaires à l'exécuteur de flux de travail ou obtenir l'état actuel du flux de travail.

Le démarreur de flux de travail utilise un client de flux de travail pour lancer l'exécution de flux de travail, interagit avec le flux de travail si nécessaire lors de l'exécution et gère le nettoyage. Le démarreur du flux de travail peut être une application exécutée localement, une application Web,AWS CLI ou même leAWS Management Console.

Comment Amazon SWF interagit avec votre application

Amazon SWF assure l'interaction entre les composants du flux de travail et conserve un historique détaillé du flux de travail. Amazon SWF n'initie pas de communication avec les composants ; il attend les demandes HTTP émanant des composants et gère les demandes selon les besoins. Par exemple :

  • Si la demande provient d'un collaborateur qui recherche les tâches disponibles, Amazon SWF répond directement au collaborateur si une tâche est disponible. Pour plus d'informations sur le fonctionnement de l'interrogation, consultez Attente active des tâches dans le Manuel du développeur Amazon Simple Workflow Service.

  • Si la demande est une notification émanant d'un intervenant indiquant qu'une tâche est terminée, Amazon SWF enregistre les informations dans l'historique d'exécution et ajoute une tâche à la liste des tâches de décision pour informer le travailleur du flux de travail que la tâche est terminée, lui permettant ainsi de passer à l'étape suivante.

  • Si la demande provient du travailleur du flux de travail pour exécuter une activité, Amazon SWF enregistre les informations dans l'historique d'exécution et ajoute une tâche à la liste des tâches des activités afin de demander à l'intervenant d'exécuter la méthode d'activité appropriée.

Cette approche permet aux collaborateurs de s'exécuter sur n'importe quel système doté d'une connexion Internet, y compris les instances Amazon EC2, les centres de données d'entreprise, les ordinateurs clients, etc. Les travaux n'ont même pas besoin d'être exécutés sur le même système d'exploitation. Comme les demandes HTTP sont initiées avec les exécuteurs, aucun port visible en externe n'est nécessaire ; les exécuteurs peuvent s'exécuter derrière un pare-feu.

Pour en savoir plus

Pour une discussion plus approfondie sur le fonctionnement d'Amazon SWF, consultez le guide du développeur Amazon Simple Workflow Service.