Implementazione di applicazioni di flusso di lavoro con AWS Flow Framework - AWS Flow Framework per Java

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementazione di applicazioni di flusso di lavoro con AWS Flow Framework

Lo sviluppo di un flusso di lavoro mediante AWS Flow Framework comporta in genere le seguenti fasi:

  1. Definizione dei contratti di attività e flusso di lavoro. Analizza i requisiti della tua applicazione, quindi determina le attività e la topologia di flusso di lavoro necessarie. Le attività gestiscono i task di elaborazione richiesti mentre la topologia di flusso di lavoro definisce la logica di business e la struttura di base del flusso di lavoro.

    Ad esempio, è possibile che per un'applicazione di elaborazione di contenuti multimediali sia necessario scaricare ed elaborare un file e quindi caricarlo in un bucket Amazon Simple Storage Service (S3). Questa procedura potrebbe essere suddivisa in quattro task di attività:

    1. Download del file da un server

    2. Elaborazione del file (ad esempio, transcodificandolo in un formato multimediale differente)

    3. Caricamento del file nel bucket S3

    4. Pulizia con eliminazione dei file locali

    Questo flusso di lavoro avrebbe un metodo del punto di ingresso e implementerebbe una topologia lineare semplice che esegue le attività in sequenza, come l'HelloWorldWorkflow Applicazione.

  2. Implementazione delle interfacce di attività e flusso di lavoro. I contratti di flusso di lavoro e attività sono definiti dalle interfacce Java, rendendo le relative convenzioni di chiamata previsibili con SWF e fornendo flessibilità nell'implementazione della logica di flusso di lavoro e dei task di attività. Le differenti parti del programma possono agire da consumer dei dati delle altre parti, ma non devono essere necessariamente a conoscenza dei dettagli di implementazione delle altre parti.

    Ad esempio, puoi definire un'interfaccia FileProcessingWorkflow e fornire differenti implementazioni di flusso di lavoro per codifica di video, compressione, anteprime e così via. Ognuno di questi flussi di lavoro può avere differenti flussi di controllo nonché chiamare differenti metodi di attività e non è necessario che lo starter di flusso di lavoro ne sia a conoscenza. Grazie alle interfacce, risulta semplice anche testare i flussi di lavoro utilizzando implementazioni fittizie che possono essere sostituite in seguito con codice funzionale.

  3. Generazione di client di attività e flusso di lavoro. AWS Flow Framework elimina la necessità di implementare i dettagli relativi alla gestione dell'esecuzione asincrona, all'invio di richieste HTTP, al marshaling dei dati e così via. In effetti, lo starter di flusso di lavoro esegue un'istanza di flusso di lavoro chiamando un metodo sul client di flusso di lavoro e l'implementazione di flusso di lavoro esegue le attività chiamando metodi sul client di attività. Il framework gestisce i dettagli di queste interazioni in background.

    Se utilizzi Eclipse e hai configurato il progetto, come in Configurazione diAWS Flow Frameworkper Java, il processore di annotazione di AWS Flow Framework utilizza le definizioni di interfaccia per generare automaticamente client di flusso di lavoro e di attività che espongono lo stesso set di metodi dell'interfaccia corrispondente.

  4. Implementazione delle applicazioni host di attività e flusso di lavoro. Le implementazioni del flusso di lavoro e delle attività devono essere incorporate in applicazioni host che interrogano Amazon SWF per le attività, raggruppano tutti i dati e richiamano i metodi di implementazione appropriati. AWS Flow Frameworkper Java include WorkflowWorkere ActivityWorkerclassi che rendono l'implementazione di applicazioni host semplice e facile da eseguire.

  5. Metti alla prova il tuo flusso di lavoro. AWS Flow Frameworkfor Java fornisce l'integrazione con JUnit che puoi usare per testare i tuoi flussi di lavoro in linea e localmente.

  6. Distribuzione dei lavoratori. Puoi distribuire i tuoi dipendenti nel modo appropriato, ad esempio puoi distribuirli su istanze Amazon EC2 o sui computer del tuo data center. Una volta implementato e avviato, i dipendenti iniziano a interrogare Amazon SWF per le attività e le gestiscono come richiesto.

  7. Avvio delle esecuzioni. Un'applicazione avvia un'istanza di flusso di lavoro utilizzando il client di flusso di lavoro per chiamare il punto di ingresso del flusso di lavoro. Puoi anche avviare i flussi di lavoro utilizzando la console Amazon SWF. Indipendentemente da come avvii un'istanza del flusso di lavoro, puoi utilizzare la console Amazon SWF per monitorare l'istanza del flusso di lavoro in esecuzione ed esaminare la cronologia del flusso di lavoro per le istanze in esecuzione, completate e non riuscite.

AWS SDK for JavaInclude un set di esempiAWS Flow Framework per Java che è possibile sfogliare ed eseguire seguendo le istruzioni nel file readme.html nella directory principale. Esistono anche una serie di ricette, semplici applicazioni, che mostrano come gestire una serie di problemi di programmazione specifici, disponibili su AWS Flow FrameworkRecipes.