AWS Flow FrameworkConcetti 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 FrameworkConcetti di base: struttura dell'applicazione

Da un punto di vista concettuale, un'applicazione AWS Flow Framework è costituita da tre componenti di base: starter di flusso di lavoro, lavoratori di flusso di lavoro e lavoratori di attività. Una o più applicazioni host sono responsabili della registrazione dei lavoratori (flusso di lavoro e attività) in 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.

Il diagramma seguente rappresenta un'applicazione di AWS Flow Framework di base:

AWS Flow FrameworkApplicazione schematica
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 treAWS Flow Framework componenti interagiscono indirettamente inviando richieste HTTP ad Amazon SWF, che gestisce le richieste. EAmazon 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à.

  • Mantiene una step-by-step cronologia dettagliata dell'esecuzione del flusso di lavoro.

Con ilAWS Flow Framework, il codice dell'applicazione non deve gestire direttamente molti dei dettagli mostrati nella figura, come l'invio di richieste HTTP ad Amazon SWF. È sufficiente chiamare dei metodi AWS Flow Framework per permettere al framework di gestire i dettagli in background.

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 ActivityWorkeroggetto che utilizza richieste di poll lunghe HTTP per interrogare Amazon SWF sulle attività da eseguire. Quando è necessaria un'attività, Amazon SWF risponde alla richiesta inviando le informazioni necessarie per eseguire l'operazione. 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 WorkflowWorkeroggetto che utilizza richieste di sondaggio HTTP lunghe per interrogare Amazon SWF per le attività decisionali. Se ci sono attività nell'elenco delle attività del flusso di lavoro, Amazon SWF risponde alla richiesta restituendo le informazioni necessarie per eseguire l'operazione. 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. Lo starter del flusso di lavoro potrebbe essere un'applicazione eseguita localmente, un'applicazione Web,AWS CLI o anche ilAWS Management Console.

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 le gestisce come richiesto. Ad esempio:

  • Se la richiesta proviene da un lavoratore, analizzando le 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 addetto all'attività che l'attività è stata completata, Amazon SWF registra le informazioni nella cronologia dell'esecuzione e aggiunge un'attività all'elenco delle attività decisionali per informare l'operatore del flusso di lavoro che l'attività è completa, consentendogli di procedere al passaggio successivo.

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

Questo approccio consente ai lavoratori di funzionare su qualsiasi sistema con 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.