View a markdown version of this page

AWS Flow Framework Concetti di base: struttura dell'applicazione - 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à.

AWS Flow Framework Concetti di base: struttura dell'applicazione

Concettualmente, un' AWS Flow Framework applicazione è costituita da tre componenti di base: elementi di avvio del flusso di lavoro , lavoratori del flusso di lavoro e addetti alle attività. Una o più applicazioni host sono responsabili della registrazione dei lavoratori (flusso di lavoro e attività) con Amazon SWF, dell'avvio dei lavoratori e della gestione della pulizia. I lavoratori gestiscono i meccanismi di esecuzione del flusso di lavoro e possono essere implementati su vari host.

Questo diagramma rappresenta un'applicazione di base: AWS Flow Framework

Applicazione schematica AWS Flow Framework
Nota

L'implementazione di questi componenti in tre applicazioni distinte è vantaggiosa da un punto di vista concettuale, ma puoi comunque creare applicazioni per implementare questa funzionalità in vari modi. Ad esempio, puoi utilizzare una singola applicazione host per i lavoratori di flusso di lavoro e di attività oppure host di flusso di lavoro e di attività distinti. Puoi inoltre avere molteplici lavoratori di attività, ognuno dei quali gestisce un set di attività differente su host distinti, ecc.

I tre AWS Flow Framework componenti interagiscono indirettamente inviando richieste HTTP ad Amazon SWF, che gestisce le richieste. Amazon SWF esegue le seguenti operazioni:

  • Gestione di uno o più elenchi di task di decisione, i quali determinano l'operazione successiva che deve essere eseguita da un lavoratore di flusso di lavoro.

  • Gestione di uno o più elenchi di task di attività, i quali determinano quali task saranno eseguiti da un lavoratore di attività.

  • Gestione di una cronologia dettagliata dell'esecuzione del flusso di lavoro.

Grazie a AWS Flow Framework, il codice dell'applicazione non deve occuparsi direttamente di molti dei dettagli mostrati nella figura, come l'invio di richieste HTTP ad Amazon SWF. Basta chiamare AWS Flow Framework i metodi e il framework gestisce i dettagli dietro le quinte.

Ruolo del lavoratore di attività

Il lavoratore di attività esegue i vari task che il flusso di lavoro deve realizzare e comprende quanto segue:

  • L'implementazione di attività, che include un set di metodi di attività che eseguono task particolari per il flusso di lavoro.

  • Un ActivityWorker oggetto che utilizza richieste di polling HTTP lunghe per interrogare Amazon SWF in merito alle attività da eseguire. Quando è necessaria un'attività, Amazon SWF risponde alla richiesta inviando le informazioni necessarie per eseguire l'attività. L'ActivityWorkeroggetto chiama quindi il metodo di attività appropriato e restituisce i risultati ad Amazon SWF.

Ruolo del lavoratore di flusso di lavoro

Il lavoratore di flusso di lavoro orchestra l'esecuzione di varie attività e gestisce il flusso di dati e le attività non riuscite. e comprende quanto segue:

  • L'implementazione di flusso di lavoro, che include la logica di orchestrazione delle attività, gestisce le attività non riuscite, ecc.

  • Un client di attività, che funge da proxy per il lavoratore di attività e consente al lavoratore di flusso di lavoro di pianificare le attività da eseguire in modo asincrono.

  • Un WorkflowWorker oggetto che utilizza richieste di polling HTTP lunghe per interrogare Amazon SWF e svolgere attività decisionali. Se sono presenti attività nell'elenco delle attività del flusso di lavoro, Amazon SWF risponde alla richiesta restituendo le informazioni necessarie per eseguire l'attività. Il framework esegue quindi il flusso di lavoro per eseguire l'operazione e restituisce i risultati ad Amazon SWF.

Ruolo dello starter di flusso di lavoro

Lo starter di flusso di lavoro avvia un'istanza di flusso di lavoro, denominata anche esecuzione di flusso di lavoro, e può interagire con un'istanza durante l'esecuzione per passare ulteriori dati al lavoratore di flusso di lavoro o ottenere lo stato corrente del flusso di lavoro.

Lo starter di flusso di lavoro utilizza un client di flusso di lavoro per avviare l'esecuzione di flusso di lavoro, interagisce con il flusso di lavoro come necessario durante l'esecuzione e gestisce la pulizia. L'avvio del flusso di lavoro potrebbe essere un'applicazione eseguita localmente, un'applicazione web o anche il. AWS CLI Console di gestione AWS

In che modo Amazon SWF interagisce con la tua applicazione

Amazon SWF media l'interazione tra i componenti del flusso di lavoro e mantiene una cronologia dettagliata del flusso di lavoro. Amazon SWF non avvia la comunicazione con i componenti; attende le richieste HTTP dai componenti e gestisce le richieste come richiesto. Ad esempio:

  • Se la richiesta proviene da un lavoratore, che esegue il polling delle attività disponibili, Amazon SWF risponde direttamente al lavoratore se un'attività è disponibile. Per ulteriori informazioni sul polling, consulta Polling delle attività nella Guida per sviluppatori di Amazon Simple Workflow Service.

  • Se la richiesta è una notifica da parte di un operatore che indica il completamento di un'attività, Amazon SWF registra le informazioni nella cronologia delle esecuzioni e aggiunge un'attività all'elenco delle attività decisionali per informare il lavoratore del flusso di lavoro che l'attività è completa, consentendogli di procedere alla fase successiva.

  • Se la richiesta di esecuzione di un'attività proviene dall'operatore del flusso di lavoro, Amazon SWF registra le informazioni nella cronologia di esecuzione e aggiunge un'attività all'elenco delle attività per indirizzare un operatore all'attività a eseguire il metodo di attività appropriato.

Questo approccio consente ai lavoratori di funzionare su qualsiasi sistema dotato di una connessione Internet, comprese le istanze Amazon EC2, i data center aziendali, i computer client e così via. Non è nemmeno necessario che siano eseguiti sullo stesso sistema operativo. Poiché le richieste HTTP provengono dai lavoratori, non sono richieste porte visibili esternamente; i lavoratori possono essere eseguiti protetti da un firewall.

Ulteriori informazioni

Per una discussione più approfondita su come funziona Amazon SWF, consulta la Amazon Simple Workflow Service Developer Guide.