Implémentation des applications de flux de travail avec AWS Flow Framework - 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.

Implémentation des applications de flux de travail avec AWS Flow Framework

Les étapes classiques qui composent le développement d'un flux de travail avec AWS Flow Framework sont les suivantes :

  1. Définir les contrats d'activité et de flux de travail. Analysez les exigences de votre application, puis déterminez les activités et la topologie de flux de travail requises. Les activités gèrent les tâches de traitement requises, tandis que la topologie de flux de travail définit la structure de base de flux de travail et la logique métier.

    Prenons l'exemple d'une application de traitement multimédia ayant besoin de télécharger un fichier, de le traiter, puis de charger le fichier traité dans un compartiment Amazon Simple Storage Service (S3). Cette opération peut être divisée en quatre tâches d'activités :

    1. Télécharger le fichier à partir d'un serveur

    2. Traiter le fichier (par exemple, en le transcodant dans un format multimédia différent)

    3. Charger le fichier dans le compartiment S3

    4. Effectuer un nettoyage en supprimant les fichiers locaux

    Ce flux de travail aurait une méthode de point d'entrée et implémenterait une topologie linéaire simple qui exécute les activités séquentiellement, à l'image de la HelloWorldWorkflow Demande.

  2. Implémenter les interfaces d'activité et de flux de travail. Les contrats d'activité et de flux de travail sont définis par des interfaces Java, en rendant leurs conventions d'appel prévisibles par SWF, et en vous offrant de la flexibilité lorsque vous implémentez votre logique de flux de travail et vos tâches d'activité. Les différentes parties de votre programme peuvent utiliser les données des autres, mais n'ont pas besoin d'être au courant des détails d'implémentation des autres parties.

    Par exemple, vous pouvez définir une interface FileProcessingWorkflow et fournir différentes implémentations de flux de travail pour l'encodage vidéo, la compression, les miniatures, etc. Chacun de ces flux de travail peut avoir différents flux de contrôle et peut appeler différentes méthodes d'activité ; votre démarreur de flux de travail n'a pas besoin de savoir. Grâce à des interfaces, vous pouvez aussi tester simplement vos flux de travail en utilisant des implémentations fictives qui peuvent être remplacées ultérieurement avec du code pratique.

  3. Générer des clients d'activité et de flux de travail. AWS Flow Framework vous évite de devoir implémenter les détails de gestion de l'exécution asynchrone, de l'envoi des demandes HTTP, du regroupement des données, etc. À la place, le démarreur de flux de travail crée une instance de flux de travail en appelant une méthode sur le client de flux de travail, et l'implémentation du flux de travail exécute les activités en appelant des méthodes sur le client d'activité. L'infrastructure gère les détails de ces interactions en arrière-plan.

    Si vous utilisez Eclipse et avez configuré votre projet, comme dans Configuration duAWS Flow Frameworkpour Java, le processeur d'annotation AWS Flow Framework utilise les définitions d'interface pour générer automatiquement des clients de flux de travail et d'activité qui exposent le même ensemble de méthodes que l'interface correspondante.

  4. Implémenter les applications hôtes d'activité et de flux de travail. Vos implémentations de flux de travail et d'activités doivent être intégrées dans des applications hôtes qui interrogent Amazon SWF pour les tâches, rassemblent toutes les données et appellent les méthodes d'implémentation appropriées. AWS Flow Frameworkpour Java, des WorkflowWorkerinclusions et ActivityWorkerdes classes qui simplifient et simplifient la mise en œuvre des applications hôtes.

  5. Testez votre flux de travail. AWS Flow Frameworkpour Java fournit une intégration JUnit que vous pouvez utiliser pour tester vos flux de travail en ligne et localement.

  6. Déployer les exécuteurs. Vous pouvez déployer vos collaborateurs comme il convient. Par exemple, vous pouvez les déployer sur des instances Amazon EC2 ou sur des ordinateurs de votre centre de données. Une fois le déploiement et le démarrage terminés, les collaborateurs commencent à interroger Amazon SWF pour les tâches et les gèrent selon les besoins.

  7. Lancer des exécutions. Une application lance une instance de flux de travail à l'aide du client de flux de travail pour appeler le point d'entrée de flux de travail. Vous pouvez également démarrer des flux de travail à l'aide de la console Amazon SWF. Quelle que soit la manière dont vous démarrez une instance de flux de travail, vous pouvez utiliser la console Amazon SWF pour surveiller l'instance de flux de travail en cours et examiner l'historique des flux de travail pour les instances en cours, terminées et ayant échoué.

AWS SDK for Javainclut un ensembleAWS Flow Framework d'exemples Java que vous pouvez parcourir et exécuter en suivant les instructions du fichier readme.html dans le répertoire racine. Il existe également un ensemble de recettes (des applications simples) qui montrent comment gérer divers problèmes de programmation spécifiques, qui sont disponibles sur AWS Flow FrameworkRecipes.