In SOA, è possibile adattare il modo di elaborazione Biztalk o SAP BusinessObjects Data Integrator. Fondamentalmente, è un lavoro di scheduler/windows service, o qualcosa di simile. Fornire due punti di servizio, 1 per lo scheduler per recuperare i dati e un altro per lo scheduler per l'invio dei dati. La responsabilità dello scheduler qui è solo quella di eseguire periodicamente e trasformare i dati.
Così, i passaggi fondamentali saranno:
Fase 1: La corsa di pianificazione e ottenere i dati dal servizio A
Scheduler --get--> Service A
Service A --data--> Scheduler
Fase 2: I dati di pianificazione facendo trasformazione
[ Conversion --> Conversion --> Conversion --> Conversion ]
Passaggio 3: lo scheduler invia i dati a un altro servizio
Scheduler --data--> Service B
In Biztalk e SAP BusinessObject Data Integrator, i passaggi sono configurabili (possono essere recuperati da qualsiasi servizio e possono eseguire la trasformazione dei dati di script), quindi è più flessibile.
Tuttavia, ci sono ancora problemi usuali che possono verificarsi con l'elaborazione ETL. Ad esempio: i dati sono troppo grandi, l'impatto sulle prestazioni della rete, le RTO, i dati duplicati, ecc. Quindi le best practice ETL sono ancora un requisito qui (uso della tabella di staging, registrazione, ecc.).
Ma il degrado delle prestazioni e altri punti di guasto ne vale la pena?
L'impatto sulle prestazioni si verificherà da quando si dispone di passaggio aggiuntivo di connessione/autenticazione (al servizio web) e passaggio di trasporto (da webservice a scheduler tramite protocollo). Ma a causa di errori, penso che sia lo stesso errore che è necessario gestire con altre chiamate di servizio.
Ne vale la pena? Dipende. Se stai lavorando nello stesso ambiente (stesso database), allora è discutibile. Se si sta lavorando in un ambiente diverso (ad esempio due sistemi diversi, da Asp.Net a SAP o almeno un'istanza di database diversa), questa architettura è la soluzione migliore per gestire ETL.
Osservando questo aspetto, sembra che tu abbia posto una domanda, ricevuto 3 risposte, scritto il tuo riassunto di quelle risposte, e poi accettato il tuo sommario come risposta corretta. Se possibile, suggerirei di dare il segno di spunta verde a una delle persone che si sono prodigate per rispondere alla tua domanda ... – Owen