Per favore sopporti me perché trovo questo difficile da articolare esattamente quello che sto cercando (probabilmente non è un buon segno ...).
Ho impostato diversi servizi che possono essere combinati in un ordine particolare per creare flussi di lavoro. Ad esempio, immagina di avere i seguenti servizi:
- 1) HTTP - > File Store (prende un file su HTTP e lo memorizza)
- 2) FTP - > Archivio file
- 3) File Store- > FTP (prende un file su HTTP e lo spinge su FTP)
- 4) File Store- > Trasformazione: > Archivio file (applica una trasformazione a un file in File Store).
Potrei voler combinare servizi per creare un particolare flusso di lavoro, per esempio.
1) - > 4) - > 3)
O
2) - > 4) - > 3)
E potrebbe accadere che io esegua esattamente la stessa operazione, ad es. nei flussi di lavoro precedenti, il passaggio 4 potrebbe essere applicato sullo stesso elemento due volte, se lo stesso elemento viene inviato su HTTP e FTP. Potrei anche voler attivare i flussi di lavoro secondari, ad esempio:
4) - > 3)
Sarebbe un flusso di lavoro valido. Esiste un modello di progettazione / approccio noto per gestire questi flussi di lavoro "a cascata"? Vorrei evitare operazioni duplicate, ove possibile, ma anche progettare flussi di lavoro in modo separato e contenuto. L'unica cosa che mi viene in mente è una sorta di approccio basato sulla composizione in cui i flussi di lavoro sono composti da diversi flussi di lavoro secondari.
Spero che abbia senso!